import * as React from "react"; import { FixedSizeListProps, 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; }; export 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; export interface State { dragging: null | ListChildComponentProps; } export declare type AutoScrollKeyword = "up" | "down" | "none"; export interface ScrollCompatibleList { scrollTo(scrollOffset: number): void; scrollToItem(index: number, align?: Align): void; } export declare const SortableFixedSizeList: React.ForwardRefExoticComponent< { children: React.ComponentType; autoScrollWhenDistanceLessThan?: number | undefined; autoScrollSpeed?: number | undefined; draggingElementClassName?: string | undefined; draggingElementStyle?: React.CSSProperties | undefined; dropElement?: any; onSortOrderChanged(params: { originalIndex: number; newIndex: number; }): void; itemKey?: ListItemKeySelector | undefined; } & Pick< FixedSizeListProps, | "style" | "innerElementType" | "itemSize" | "itemKey" | "height" | "itemCount" | "width" | "direction" | "layout" | "initialScrollOffset" | "overscanCount" | "onItemsRendered" | "onScroll" | "className" | "innerRef" | "innerTagName" | "itemData" | "outerElementType" | "outerRef" | "outerTagName" | "useIsScrolling" > & React.RefAttributes >; export 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(): number; getAutoScrollSpeed(): number; 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(): React.ForwardRefExoticComponent< React.RefAttributes >; sortableContext: ISortableContext; getSortableContext(): ISortableContext; dragContext: IDragContext | null; getDragContext(): IDragContext | null; render(): JSX.Element; } export interface ISortableContext { Child: React.ComponentType; itemKey?: ListItemKeySelector; onMouseDown(e: MouseEvent, params: ListChildComponentProps): void; } export declare const SortableContext: React.Context; export interface IDragContext { dragging: ListChildComponentProps; dragRef: Ref; dropZoneRef: Ref; draggingElementClassName?: string; draggingElementStyle?: CSSProperties; dropElement?: any; Child: React.ComponentType; } export declare const DragContext: React.Context;