import { RenderBodyRow } from '../context/TableRenderContext';
import { TableRowData, TableRowId } from '../Table.types';
type UseInternalTableSelectionStateOptions<RowType extends TableRowData> = {
    bodyRows: RenderBodyRow<RowType>[];
    selectedRowIds?: TableRowId[];
    onSelectionChange?: (rowIds: TableRowId[]) => void;
};
type UseInternalTableSelectionStateReturn = {
    currentSelectedRowIds: TableRowId[];
    selectedRowIdSet: Set<TableRowId>;
    selectableRowIdSet: Set<TableRowId>;
    isAllRowsSelected: boolean;
    isSomeRowsSelected: boolean;
    hasSelectableRows: boolean;
    handleToggleAllSelection: () => void;
    handleToggleRowSelection: (rowId: TableRowId) => void;
};
declare const useInternalTableSelectionState: <RowType extends TableRowData>(props: UseInternalTableSelectionStateOptions<RowType>) => UseInternalTableSelectionStateReturn;
export default useInternalTableSelectionState;
