import debounce from 'debounce'; export declare function useTableItems(items: T[], keyFn: (item: T) => string | number, defaults?: { search?: string | null; }): { allSelected: boolean; filtered: T[]; isSelected: (item: T) => boolean; page: number; paged: T[]; perPage: number; search: string; searched: T[]; selectAll: () => void; selectItem: (item: T) => void; selectPage: () => void; selectedItems: T[]; setFilterFn: (filterFn: ((item: T) => boolean) | undefined) => void; setPage: import("react").Dispatch>; setPerPage: import("react").Dispatch>; setSearch: debounce.DebouncedFunction<(search: string) => void>; setSearchFn: (searchFn: (item: T, search: string) => number) => void; setSort: import("react").Dispatch | undefined>>; sort: ISort | undefined; sorted: T[]; unselectAll: () => void; unselectItem: (item: T) => void; }; export interface ISelected { selectedItems: T[]; selectItem: (item: T) => void; selectItems: (items: T[]) => void; unselectItem: (item: T) => void; unselectItems: (items: T[]) => void; isSelected: (item: T) => boolean; selectAll: () => void; unselectAll: () => void; allSelected: boolean; keyFn: (item: T) => string | number; } export declare function useSelected(items: T[], keyFn: (item: T) => string | number, defaultSelection?: T[]): ISelected; export declare function useSelectedInMemory(items: T[] | undefined, keyFn: (item: T) => string | number): { selectedItems: T[]; selectItem: (item: T) => void; unselectItem: (item: T) => void; isSelected: (item: T) => boolean; selectItems: (items: T[]) => void; selectAll: () => void; unselectAll: () => void; allSelected: boolean; keyFn: (item: T) => string | number; unselectItems: (items: T[]) => void; }; export interface ISort { id: string; sortFn: (l: T, r: T) => number; direction: 'asc' | 'desc'; } export declare function useSorted(items: T[] | undefined): { sorted: T[]; sort: ISort | undefined; setSort: import("react").Dispatch | undefined>>; }; export declare function useFiltered(items: T[], keyFn: (item: T) => string | number): { filtered: T[]; setFilterFn: (filterFn: ((item: T) => boolean) | undefined) => void; }; export declare function usePaged(source: T[]): { paged: T[]; page: number; setPage: import("react").Dispatch>; perPage: number; setPerPage: import("react").Dispatch>; };