import { SortableContextProps } from '@dnd-kit/sortable';
import { default as React } from 'react';
interface SortableItemContextValue {
    attributes: Record<string, any>;
    listeners: Record<string, any>;
    isDragging: boolean;
}
export declare const useSortableItem: () => SortableItemContextValue;
export interface SortableListProps<T extends {
    id: string | number;
}> extends Omit<React.HTMLAttributes<HTMLDivElement>, "id"> {
    /** Array of items to be rendered. Each must have a unique `id` */
    items: T[];
    /** Callback fired when items are successfully reordered */
    onReorder: (items: T[]) => void;
    /** React children */
    children: React.ReactNode;
    /** Render prop for the DragOverlay. This dictates how the item looks while being dragged. */
    renderOverlay?: (activeItem: T) => React.ReactNode;
    /** Sorting strategy. Defaults to rectSortingStrategy which supports both grids and lists. */
    strategy?: SortableContextProps["strategy"];
    /** Render as a different element or merge onto a child via Radix Slot */
    asChild?: boolean;
}
export declare const SortableListRoot: <T extends {
    id: string | number;
}>(props: SortableListProps<T> & {
    ref?: React.ForwardedRef<HTMLDivElement>;
}) => React.ReactElement;
export interface SortableItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "id"> {
    /** Must match the item's unique id in the data array */
    id: string | number;
    /** Disables dragging for this specific item */
    disabled?: boolean;
    /** Render as a different element or merge onto a child via Radix Slot */
    asChild?: boolean;
}
export interface SortableDragHandleProps extends React.HTMLAttributes<HTMLElement> {
    asChild?: boolean;
}
export declare const SortableList: (<T extends {
    id: string | number;
}>(props: SortableListProps<T> & {
    ref?: React.ForwardedRef<HTMLDivElement>;
}) => React.ReactElement) & {
    Item: React.ForwardRefExoticComponent<SortableItemProps & React.RefAttributes<HTMLElement>>;
    DragHandle: React.ForwardRefExoticComponent<SortableDragHandleProps & React.RefAttributes<HTMLElement>>;
};
export {};
