import * as React from 'react'; import * as PropTypes from 'prop-types'; import { HeightData } from './MoveContainer'; interface Drag { itemKey: string; startY: number; mouseY: number; mouseOffset: number; } export interface TemplateProps { item: I; itemSelected: number; anySelected: number; dragHandleProps: object; commonProps: C; } export interface Props { itemKey: string | ((item: I) => string); template: new (props: any, context?: any) => T; list: ReadonlyArray; onMoveEnd?: (newList: ReadonlyArray, movedItem: I, oldIndex: number, newIndex: number) => void; container?: () => HTMLElement | null | undefined; constrainDrag?: boolean; springConfig?: object; padding?: number; unsetZIndex?: boolean; autoScrollMaxSpeed?: number; autoScrollRegionSize?: number; commonProps?: C; onDragStart?: (draggedItem: I) => void; onDragEnd?: (draggedItem: I) => void; } interface State { useAbsolutePositioning: boolean; dragging: boolean; lastDrag: Drag | null; heights: { [key: string]: HeightData; } | null; } export default class DraggableList>>> extends React.Component, State> { static propTypes: { itemKey: PropTypes.Validator any) | null | undefined>>>; template: PropTypes.Requireable<(...args: any[]) => any>; list: PropTypes.Validator; onMoveEnd: PropTypes.Requireable<(...args: any[]) => any>; container: PropTypes.Requireable<(...args: any[]) => any>; springConfig: PropTypes.Requireable; constrainDrag: PropTypes.Requireable; padding: PropTypes.Requireable; unsetZIndex: PropTypes.Requireable; autoScrollMaxSpeed: PropTypes.Validator; autoScrollRegionSize: PropTypes.Validator; commonProps: PropTypes.Requireable; }; static defaultProps: Partial>; private readonly _itemRefs; private _autoScrollerTimer; private _listRef; state: State; getItemInstance(key: string): T; static getDerivedStateFromProps(newProps: Props, state: State): Partial | null; componentWillUnmount(): void; private _handleTouchStart; private _handleMouseDown; private _handleStartDrag; private _handleTouchMove; private _handleMouseMove; private _handleMouseUp; private _scrollContainer; private _lastScrollDelta; private _adjustScrollAtEnd; private static _getIndexOfItemWithKey; private _getDragListIndex; private _getDragVisualIndex; private _getVisualListDuringDrag; private _getItemHeight; private _getDistance; private _getDistanceFromTopDuringDrag; private _getContainer; private static _getKeyFn; private _getKeyFn; render(): React.JSX.Element; } export {};