import { SelectionType } from '../Table.types';
export interface UseTableSelectionOptions<T> {
    data: T[];
    rowKey?: keyof T | ((row: T, index: number) => string | number);
    selectable?: boolean;
    selectionType?: SelectionType;
    selectedRows?: string[];
    onSelectionChange?: (selectedRows: string[]) => void;
}
export interface UseTableSelectionReturn {
    isAllSelected: boolean;
    isIndeterminate: boolean;
    handleSelectAll: (checked: boolean) => void;
    handleSelectionChange: (rowId: string, selected: boolean) => void;
    handleClearSelection: () => void;
}
export declare function useTableSelection<T extends Record<string, any>>({ data, rowKey, selectionType, selectedRows, onSelectionChange, }: UseTableSelectionOptions<T>): UseTableSelectionReturn;
