import { Fetch } from '..'; import { Dispatch, SetStateAction } from 'react'; export interface Paginate { data: T[]; totalSize: number; } export type OrderBy = 'desc' | 'asc'; export interface ISearch { limit: number; offset: number; orderBy?: OrderBy; sortBy?: keyof T; } export interface UsePaginate { list?: Paginate; error?: E; fetching: boolean; fetch: Fetch<(...args: any[]) => Promise>>; filters: S; updateFilters: (_: SetStateAction, params?: UpdateFiltersParams) => void; setEntity: Dispatch | undefined>>; clearFilters: () => void; pageNumber: number; initialFilters: S; clearCache: () => void; } export interface UpdateFiltersParams { preserveOffset?: boolean; } export declare const usePaginate: , E = any>(fetcher: (search: S) => Promise>, initialFilters: S, mapError?: (_: any) => E) => UsePaginate;