import * as React from 'react'; export interface UseDataTableColumnReorderEvent { /** * The original browser event. */ originalEvent: DragEvent; /** * Index of the column being dragged. */ dragIndex: number; /** * Adjusted index where the column is dropped (accounting for before/after position). */ dropIndex: number; } export interface UseDataTableColumnReorderOptions { reorderableColumns?: boolean; onColumnReorder?: (event: UseDataTableColumnReorderEvent) => void; } type DropSide = 'start' | 'end'; type DropTargetNotify = (state: { side: DropSide; } | null) => void; export declare function useDataTableColumnReorder(options: UseDataTableColumnReorderOptions): { state: Readonly<{}>; exposes: { onDragStart: (event: React.DragEvent, columnIndex: number) => void; onDragOver: (event: React.DragEvent, columnIndex: number) => void; onDragEnter: (event: React.DragEvent, columnIndex: number) => void; onDragLeave: (_event: React.DragEvent) => void; onDrop: (event: React.DragEvent, columnIndex: number) => void; onDragEnd: (_event: React.DragEvent) => void; registerDropTarget: (columnIndex: number, notify: DropTargetNotify) => () => void; getColumnReorderHandleProps: () => { 'data-scope': string; 'data-part': string; style: React.CSSProperties; }; getColumnReorderIndicatorUpProps: () => { 'data-scope': string; 'data-part': string; ref: (el: HTMLElement | null) => void; }; getColumnReorderIndicatorDownProps: () => { 'data-scope': string; 'data-part': string; ref: (el: HTMLElement | null) => void; }; }; registerRoot: (el: HTMLElement | null) => void; }; export {};