import * as React from "react"; import { ListChildComponentProps, VariableSizeListProps, ListItemKeySelector, Align, } from "react-window"; import { CSSProperties, Ref, RefObject } from "react"; export interface MouseEvent { clientY: number; } export declare type ChildrenProps = ListChildComponentProps & { onSortMouseDown(e: MouseEvent): void; ref?: Ref; className?: string; }; declare type Props = { children: React.ComponentType; autoScrollWhenDistanceLessThan?: number; autoScrollSpeed?: number; draggingElementClassName?: string; draggingElementStyle?: CSSProperties; dropElement?: any; onSortOrderChanged(params: { originalIndex: number; newIndex: number }): void; itemKey?: ListItemKeySelector; } & Omit; interface State { dragging: null | ListChildComponentProps; } declare type AutoScrollKeyword = "up" | "down" | "none"; interface ScrollCompatibleList { scrollTo(scrollOffset: number): void; scrollToItem(index: number, align?: Align): void; } export declare const SortableFixedSizeList: any; declare type Timeout = any; export declare class SortableVariableSizeList extends React.Component< Props, State > { dragRef: RefObject; dropZoneRef: RefObject; listRef: RefObject; startClientY: number; startDragObjOffsetY: number; hoverIndex: number | null; autoScroll: AutoScrollKeyword; autoScrollTimer: Timeout | null; constructor(props: any); getAutoScrollWhenDistanceLessThan(): any; getAutoScrollSpeed(): any; componentWillUnmount(): void; mouseDown(e: MouseEvent, params: ListChildComponentProps): void; onMouseMove(event: MouseEvent): void; updateDragElementPositioning(mouseY: number): void; getHoverDetails( offsetY: number ): { offsetTop: number; index: number; }; getScrollOffsetTop(list: ScrollCompatibleList): number; getScrollRef(list: ScrollCompatibleList): HTMLDivElement; checkAutoScroll(mouseY: number): void; setAutoScroll(scroll: AutoScrollKeyword, mouseY: number): void; onMouseUp(): void; renderDropZoneElement(): JSX.Element | undefined; renderDraggingElement(): JSX.Element | null; renderInnerElement(): any; sortableContext: ISortableContext; getSortableContext(): ISortableContext; dragContext: IDragContext | null; getDragContext(): IDragContext | null; render(): JSX.Element; } interface ISortableContext { Child: React.ComponentType; itemKey?: ListItemKeySelector; onMouseDown(e: MouseEvent, params: ListChildComponentProps): void; } export declare const SortableContext: any; interface IDragContext { dragging: ListChildComponentProps; dragRef: Ref; dropZoneRef: Ref; draggingElementClassName?: string; draggingElementStyle?: CSSProperties; dropElement?: any; Child: React.ComponentType; } export declare const DragContext: any; export declare const InnerElementContext: any; export {};