interface DragSortProps { sortOnDraggable: boolean; onDragSort?: (context: DragSortContext) => void; onDragOverCheck?: { x?: boolean; targetClassNameRegExp?: RegExp; }; } type DragFnType = (e?: DragEvent, index?: number, record?: any) => void; interface DragSortInnerData { dragging?: boolean; draggable?: boolean; onDragStart?: DragFnType; onDragOver?: DragFnType; onDrop?: DragFnType; onDragEnd?: DragFnType; } export interface DragSortInnerProps extends DragSortInnerData { getDragProps?: (index?: number, record?: any) => DragSortInnerData; } export interface DragSortContext { currentIndex: number; current: T; targetIndex: number; target: T; } declare class useDragSorter implements DragSortInnerProps { props: DragSortProps; draggingIndex: number; dragStartData: any; isDropped: any; startInfo: { nodeX: number; nodeWidth: number; mouseX: number; }; constructor(props: DragSortProps); onDragOver: (e: any, index: any, record: any) => void; onDragStart: (e: any, index: any, record: T) => void; onDrop: () => void; onDragEnd: () => void; getDragProps: (index: any, record: T) => { draggable: boolean; onDragStart: (e: any) => void; onDragOver: (e: any) => void; onDrop: () => void; onDragEnd: () => void; } | { draggable?: undefined; onDragStart?: undefined; onDragOver?: undefined; onDrop?: undefined; onDragEnd?: undefined; }; } export default useDragSorter;