import React, { DetailedHTMLProps, HTMLAttributes, ReactElement } from "react";
type Events = "order-stop" | "order-start";
export declare enum OrderableListReorderMode {
    VERTICAL = "v",
    TWO_DIMENSIONS = "hv"
}
/**
 * This component displays a list of items that can be reordered by dragging them with your mouse or touch.
 * It supports simple vertical dragging and more advanced 2D reordering, with smooth animations
 * when items move around.
 */
export default function OrderableList({ children, className, mode, shrinkToOnOrder, reorderingClassName, cloneClassName, ...props }: {
    children: ReactElement[];
    className?: string;
    mode?: OrderableListReorderMode;
    /**
     * If provided, makes the elements shrink to this value in px when ordering elements
     */
    shrinkToOnOrder?: number;
    /**
     * A class to apply when reordering
     */
    reorderingClassName?: string;
    /**
     * A class to apply to the clone el
     */
    cloneClassName?: string;
} & ({
    keyOrder?: string[];
    onChangeKeyOrder: (newOrder: string[]) => void;
} | {
    currentOrder?: string[];
}) & DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
export declare function useOrderableListAnchor(): {
    anchorRef: React.RefObject<HTMLDivElement> | undefined;
};
export declare function useOrderableEvents(events: {
    [k in Events]: () => void;
}): void;
export {};
