interface DragSortContext { currentIndex: number; current: T; targetIndex: number; target: T; } export interface DragSortProps { sortOnDraggable: boolean; onDragSort?: (context: DragSortContext) => void; onDragOverCheck?: { x?: boolean; targetClassNameRegExp?: RegExp; }; } declare type DragFnType = (e?: DragEvent, index?: number, record?: any) => void; interface DragSortInnerData { dragging?: boolean; onDragStart?: DragFnType; onDragOver?: DragFnType; onDrop?: DragFnType; onDragEnd?: DragFnType; } export interface DragProps { (index?: number, record?: any): { draggable: boolean; onDragstart?: DragFnType; onDragover?: DragFnType; onDrop?: DragFnType; onDragend?: DragFnType; }; } export interface DragSortInnerProps extends DragSortInnerData { getDragProps?: DragProps; } export {};