interface UseRowSelectionProps { /** All row IDs in current view (after filtering/pagination) */ allRowIds: (string | number)[]; /** Initial selected rows */ initialSelectedRows?: (string | number)[]; /** Controlled selected rows */ selectedRows?: (string | number)[]; /** Selection change handler */ onSelectionChange?: (selectedRows: (string | number)[]) => void; /** Whether to persist selection across pagination */ persistAcrossPagination?: boolean; } interface UseRowSelectionReturn { /** Currently selected row IDs */ selectedRows: (string | number)[]; /** Whether all visible rows are selected */ isAllSelected: boolean; /** Whether some (but not all) visible rows are selected */ isIndeterminate: boolean; /** Toggle selection for a single row */ toggleRow: (rowId: string | number, event?: { shiftKey?: boolean; ctrlKey?: boolean; metaKey?: boolean; }) => void; /** Toggle selection for all visible rows */ toggleAll: () => void; /** Select a range of rows (for shift+click) */ selectRange: (fromId: string | number, toId: string | number) => void; /** Clear all selections */ clearSelection: () => void; /** Select all rows (including those not currently visible if persistAcrossPagination is true) */ selectAll: (allPossibleIds?: (string | number)[]) => void; /** Get number of selected rows */ selectionCount: number; /** Check if a specific row is selected */ isRowSelected: (rowId: string | number) => boolean; } export declare function useRowSelection({ allRowIds, initialSelectedRows, selectedRows: controlledSelectedRows, onSelectionChange, persistAcrossPagination }: UseRowSelectionProps): UseRowSelectionReturn; export {};