import { R as RowData, f as Row, c as Table, U as Updater } from '../types-CwNe64f5.js'; interface RowDragState { /** The row id currently being dragged, or null */ draggingRowId: string | null; /** The row id that is the current drop target (row being hovered over) */ overRowId: string | null; /** Position of the drop indicator relative to the target row */ dropPosition: 'before' | 'after' | null; } interface RowDragStartEvent { rowId: string; rowIndex: number; row: Row; } interface RowDragEndEvent { rowId: string; row: Row; cancelled: boolean; } interface RowReorderEvent { fromIndex: number; toIndex: number; rowId: string; } declare function getInitialRowDragState(): RowDragState; /** * Returns a new data array with the row at `fromIndex` moved to `toIndex`. * Does NOT mutate the original array. */ declare function moveRow(data: TData[], fromIndex: number, toIndex: number): TData[]; /** * Wire row dragging capabilities onto a table instance. * Call this after createTable() to add drag methods and state. */ declare function createRowDragIntegration(table: Table, options: { onReorder?: (data: TData[], event: RowReorderEvent) => void; getData: () => TData[]; setData: (data: TData[]) => void; }): { getRowDragState: () => RowDragState; setRowDragState: (updater: Updater) => void; startDrag: (rowId: string) => void; updateDragOver: (overRowId: string, position: 'before' | 'after') => void; endDrag: () => void; cancelDrag: () => void; moveRow: (fromIndex: number, toIndex: number) => void; }; export { type RowDragEndEvent, type RowDragStartEvent, type RowDragState, type RowReorderEvent, createRowDragIntegration, getInitialRowDragState, moveRow };