import { Dispatch, SetStateAction } from 'react'; import { ITableColumn } from './PageTable/PageTableColumn'; import { IFilterState, IToolbarFilter } from './PageToolbar/PageToolbarFilter'; export interface IView { page: number; setPage: (page: number) => void; perPage: number; setPerPage: (perPage: number) => void; sort: string; setSort: (sort: string) => void; sortDirection: 'asc' | 'desc'; setSortDirection: (sortDirection: 'asc' | 'desc') => void; filterState: IFilterState; setFilterState: Dispatch>; clearAllFilters: () => void; } export interface ViewOptions { defaultValues?: Partial> | undefined; disableQueryString?: boolean; ignoreQueryStringKeys?: string[]; filterQueryStringKeys?: string[]; } export type QueryParams = { [key: string]: string | string[]; }; export interface ViewExtendedOptions extends ViewOptions { url: string; keyFn: (item: T) => string | number; toolbarFilters?: IToolbarFilter[]; tableColumns?: ITableColumn[]; disableQueryString?: boolean; queryParams?: QueryParams; sortKey?: string; defaultFilters?: Record; } export declare function useView(options: ViewOptions): IView;