import { type HTMLAttributes, type MouseEvent, type ReactNode } from 'react';
export interface SDraggableGroupMoveEvent {
group: string;
itemKey: string;
fromListId: string;
fromIndex: number;
toListId: string;
toIndex: number;
}
interface GroupContextValue {
defaultGroup?: string;
dragging: {
group: string;
listId: string;
index: number;
itemKey: string;
} | null;
drop: {
group: string;
listId: string;
index: number;
} | null;
registerList: (group: string, listId: string, element: HTMLDivElement | null, items: unknown[], onChange?: (items: unknown[]) => void) => void;
startDrag: (event: MouseEvent, group: string, listId: string, index: number, itemKey: string) => void;
}
export declare function useSDraggableGroup(): GroupContextValue | null;
export interface SDraggableGroupProps extends HTMLAttributes {
children: ReactNode;
onMove: (event: SDraggableGroupMoveEvent) => void;
}
export interface SDraggableProviderProps {
children: ReactNode;
}
export declare function SDraggableProvider({ children }: SDraggableProviderProps): import("react").JSX.Element;
export declare function SDraggableGroup({ children, onMove, ...rest }: SDraggableGroupProps): import("react").JSX.Element;
export {};