import { Component } from "react";
import { Options, SortableEvent } from "sortablejs";
import { AllMethodsExceptMove, HandledMethodNames, ItemInterface, ReactSortableProps } from "./types";
export declare class ReactSortable<T extends ItemInterface> extends Component<ReactSortableProps<T>> {
    static defaultProps: Partial<ReactSortableProps<any>>;
    private ref;
    constructor(props: ReactSortableProps<T>);
    componentDidMount(): void;
    render(): JSX.Element;
    private getChildren;
    /** Appends the `sortable` property to this component */
    private get sortable();
    /** Converts all the props from `ReactSortable` into the `options` object that `Sortable.create(el, [options])` can use. */
    makeOptions(): Options;
    /** Prepares a method that will be used in the sortable options to call an `on[Handler]` prop & an `on[Handler]` ReactSortable method.  */
    prepareOnHandlerPropAndDOM(evtName: HandledMethodNames): (evt: SortableEvent) => void;
    /** Prepares a method that will be used in the sortable options to call an `on[Handler]` prop */
    prepareOnHandlerProp(evtName: Exclude<AllMethodsExceptMove, HandledMethodNames>): (evt: SortableEvent) => void;
    /** Calls the `props.on[Handler]` function */
    callOnHandlerProp(evt: SortableEvent, evtName: AllMethodsExceptMove): void;
    onAdd(evt: MultiDragEvent): void;
    onRemove(evt: MultiDragEvent): void;
    onUpdate(evt: MultiDragEvent): void;
    onStart(): void;
    onEnd(): void;
    onChoose(evt: SortableEvent): void;
    onUnchoose(evt: SortableEvent): void;
    onSpill(evt: SortableEvent): void;
    onSelect(evt: MultiDragEvent): void;
    onDeselect(evt: MultiDragEvent): void;
}
interface MultiIndices {
    multiDragElement: HTMLElement;
    index: number;
}
export interface MultiDragEvent extends SortableEvent {
    clones: HTMLElement[];
    oldIndicies: MultiIndices[];
    newIndicies: MultiIndices[];
    swapItem: HTMLElement | null;
}
export {};
//# sourceMappingURL=react-sortable.d.ts.map