type Id = string | number; interface Props { storageKey?: string; items: T[]; getId: (item: T) => Id; initialSelectedIds?: Set; onSelectionChange?: (args: { selectedIds: Set; selectedItems: T[]; }) => void; selectionMode?: 'single' | 'multiple'; pruneToItems?: boolean; storage?: 'local' | 'session'; } export declare function useTableSelection({ storageKey, items, getId, initialSelectedIds, onSelectionChange, selectionMode, pruneToItems, storage, }: Props): { selectedIds: Set; selectedItems: T[]; selectedItemMap: Map; toggleItem: (item: T) => void; toggleId: (id: Id, selected?: boolean) => void; selectOnly: (id: Id) => void; clearSelection: () => void; allSelected: boolean; anySelected: boolean; toggleAll: (selected: boolean) => void; }; export {};