/// declare type sortDirectionType = 'ASC' | 'DESC' | 'NONE'; interface TableState { data: Array; sortColumn: string | number; sortDirection: sortDirectionType; perPage: number; from: number; to: number; selectedRows: Array; allSelected: boolean; selectionId: string | number; selecting: boolean; sorting: boolean; paging: boolean; } declare type setSortingAction = (sortColumn: string | number) => void; declare type setPageAction = (forward: boolean) => void; declare type setPerPageAction = (perPage: number) => void; declare type setSelectRowAction = (rowId: string | number) => void; declare type setSelectAllAction = () => void; declare type tableStateAction = { type: 'CHANGE_PAGE'; forward: boolean; } | { type: 'CHANGE_PER_PAGE'; perPage: number; } | { type: 'SORT_COLUMN'; sortColumn: string | number; } | { type: 'SET_DATA'; data: Array; } | { type: 'SELECT_ROW' | 'DESELECT_ROW'; id: string | number; } | { type: 'SELECT_ALL' | 'DESELECT_ALL'; }; declare type TableStateHookType = [TableState, { setSorting: setSortingAction; setPage: setPageAction; setPerPage: setPerPageAction; setSelectRow: setSelectRowAction; setSelectAll: setSelectAllAction; dispatch: React.Dispatch; }]; declare type TableStateArgs = { data: Array; } & ({ sorting: true; sortColumn: string | number; sortDirection?: sortDirectionType; } | {}) & ({ paging: true; perPage?: number; from?: number; to?: number; } | {}) & ({ selecting: true; selectionId: string | number; allSelected?: boolean; selectedRows?: Array; } | {}); export declare function useTableState(args: TableStateArgs): TableStateHookType; export {};