import { RowConfig } from '../../../shared/types/table'; export interface UseTableSelectionOptions { /** Si devuelve false, la fila no se puede seleccionar (checkbox deshabilitado en UI). */ isRowSelectable?: (row: RowConfig) => boolean; /** * Called whenever the table selection ids change (initial mount included, with `[]` until rows are selected). * Uses a ref so callers may pass an inline handler without re-running this effect every render. */ onSelectionChange?: (selectedIds: (string | number)[]) => void; /** * When defined (including `[]`), selection is controlled by the parent: it must update this list in response * to `onSelectionChange`. Fixes consumers that pass `selection.selectedIds` while the table used to ignore it. */ controlledSelectedIds?: (string | number)[]; /** * Si true (default), el checkbox del header acumula la página visible sin borrar otras páginas. * Si false, "seleccionar todo" reemplaza la selección por la página visible y al desmarcar limpia todo. */ accumulativeSelection?: boolean; } export declare const useTableSelection: (rows: RowConfig[], multiple?: boolean, options?: UseTableSelectionOptions) => { selectedIds: (string | number)[]; selectedCount: number; allSelected: boolean; someSelected: boolean; handleRowSelect: (row: RowConfig) => void; handleSelectAll: (checked: boolean) => void; clearSelection: () => void; selectRows: (ids: (string | number)[]) => void; isSelected: (rowId: string | number) => boolean; }; //# sourceMappingURL=useTableSelection.d.ts.map