import { TableState, TableColumn, SortOrder, AllRowsAction, SingleRowAction, SortAction } from '../DataTable/types';
interface UseTableStateProps<T> {
    data: T[];
    keyField: string;
    defaultSortColumn: TableColumn<T>;
    defaultSortDirection: SortOrder;
    paginationDefaultPage: number;
    paginationPerPage: number;
    paginationServer: boolean;
    paginationServerOptions: {
        persistSelectedOnSort?: boolean;
        persistSelectedOnPageChange?: boolean;
    };
    paginationTotalRows: number;
    pagination: boolean;
    selectableRowsSingle: boolean;
    selectableRowsVisibleOnly: boolean;
    selectableRowSelected: ((row: T) => boolean) | null;
    clearSelectedRows: boolean;
    paginationResetDefaultPage: boolean;
    onSelectedRowsChange: (state: {
        allSelected: boolean;
        selectedCount: number;
        selectedRows: T[];
    }) => void;
    onSort: (selectedColumn: TableColumn<T>, sortDirection: SortOrder, sortedRows: T[]) => void;
    onChangePage: (page: number, totalRows: number) => void;
    onChangeRowsPerPage: (currentRowsPerPage: number, currentPage: number) => void;
}
interface UseTableStateReturn<T> {
    tableState: TableState<T>;
    handleSort: (action: SortAction<T>) => void;
    handleSelectAllRows: (action: AllRowsAction<T>) => void;
    handleSelectedRow: (action: SingleRowAction<T>) => void;
    handleChangePage: (page: number) => void;
    handleChangeRowsPerPage: (newRowsPerPage: number, tableRowsLength: number) => void;
}
export default function useTableState<T>(props: UseTableStateProps<T>): UseTableStateReturn<T>;
export {};
