import * as React from 'react'; export interface IVoiceover { item: (position: number) => string; lifted: (position: number) => string; dropped: (from: number, to: number) => string; moved: (position: number, up: boolean) => string; canceled: (position: number) => string; } interface IItemProps { key?: number; tabIndex?: number; onKeyDown?: (e: React.KeyboardEvent) => void; onMouseDown?: (e: React.MouseEvent) => void; onTouchStart?: (e: React.TouchEvent) => void; onWheel?: (e: React.WheelEvent) => void; style?: React.CSSProperties; ref?: React.RefObject; } interface IListProps { renderItem: (params: { value: Value; props: IItemProps; index?: number; isDragged: boolean; isSelected: boolean; }) => React.ReactNode; renderList: (props: { children: any; isDragged: boolean; props: { ref: React.RefObject; }; }) => React.ReactNode; values: Value[]; onChange: (meta: { oldIndex: number; newIndex: number; }) => void; transitionDuration: number; lockVertically: boolean; voiceover: IVoiceover; } declare type TEvent = React.MouseEvent | React.TouchEvent | React.KeyboardEvent; declare class List extends React.Component> { listRef: React.RefObject; ghostRef: React.RefObject; topOffsets: number[]; itemTranslateOffsets: number[]; initialYOffset: number; lastScroll: number; needle: number; afterIndex: number; state: { itemDragged: number; selectedItem: number; initialX: number; initialY: number; targetX: number; targetY: number; targetHeight: number; targetWidth: number; liveText: string; }; componentDidMount(): void; getChildren: () => Element[]; static defaultProps: { transitionDuration: number; lockVertically: boolean; voiceover: { item: (position: number) => string; lifted: (position: number) => string; moved: (position: number, up: boolean) => string; dropped: (from: number, to: number) => string; canceled: (position: number) => string; }; }; calculateOffsets: () => void; getTargetIndex: (e: TEvent) => number; onMouseDown: (e: React.MouseEvent) => void; onTouchStart: (e: React.TouchEvent) => void; getYOffset: () => number; onStart: (target: HTMLElement, clientX: number, clientY: number, index: number) => void; onMouseMove: (e: MouseEvent) => null | undefined; onTouchMove: (e: TouchEvent) => null | undefined; onWheel: (e: React.WheelEvent) => void; onMove: (clientX: number, clientY: number) => null | undefined; moveOtherItems: () => void; animateItems: (needle: number, movedItem: number, offset: number, animateMovedItem?: boolean) => void; onEnd: () => void; onKeyDown: (e: React.KeyboardEvent) => void; render(): JSX.Element; } export default List;