import React from "react"; import { QueryObserverResult, UseQueryOptions } from "@tanstack/react-query"; import { BaseRecord, CrudFilters, CrudSorting, GetListResponse, SuccessErrorNotification, HttpError, MetaDataQuery, LiveModeProps } from "../../interfaces"; declare type SetFilterBehavior = "merge" | "replace"; export declare type useTableProps = { /** * Resource name for API data interactions * @default Resource name that it reads from route */ resource?: string; /** * Initial page index * @default 1 */ initialCurrent?: number; /** * Initial number of items per page * @default 10 */ initialPageSize?: number; /** * Initial sorter state */ initialSorter?: CrudSorting; /** * Default and unchangeable sorter state * @default `[]` */ permanentSorter?: CrudSorting; /** * Initial filter state */ initialFilter?: CrudFilters; /** * WDefault and unchangeable filter state * @default `[]` */ permanentFilter?: CrudFilters; /** *Default behavior of the `setFilters` function * @default `"merge"` */ defaultSetFilterBehavior?: SetFilterBehavior; /** * Whether to use server side pagination or not. * @default `true` */ hasPagination?: boolean; /** * Sortings, filters, page index and records shown per page are tracked by browser history * @default Value set in [Refine](/docs/api-reference/core/components/refine-config/#syncwithlocation). If a custom resource is given, it will be `false` */ syncWithLocation?: boolean; /** * react-query's [useQuery](https://tanstack.com/query/v4/docs/reference/useQuery) options */ queryOptions?: UseQueryOptions, TError>; /** * Metadata query for dataProvider */ metaData?: MetaDataQuery; /** * If there is more than one `dataProvider`, you should use the `dataProviderName` that you will use. */ dataProviderName?: string; } & SuccessErrorNotification & LiveModeProps; declare type ReactSetState = React.Dispatch>; declare type SyncWithLocationParams = { pagination: { current?: number; pageSize?: number; }; sorter: CrudSorting; filters: CrudFilters; }; export declare type useTablePaginationKeys = "current" | "setCurrent" | "pageSize" | "setPageSize" | "pageCount"; export declare type useTableReturnType = { tableQueryResult: QueryObserverResult, TError>; sorter: CrudSorting; setSorter: (sorter: CrudSorting) => void; filters: CrudFilters; setFilters: ((filters: CrudFilters, behavior?: SetFilterBehavior) => void) & ((setter: (prevFilters: CrudFilters) => CrudFilters) => void); createLinkForSyncWithLocation: (params: SyncWithLocationParams) => string; current: number; setCurrent: ReactSetState; pageSize: number; setPageSize: ReactSetState; pageCount: number; }; export declare type useTableNoPaginationReturnType = Omit, useTablePaginationKeys> & Record; export declare function useTable(props?: useTableProps & { hasPagination?: true; }): useTableReturnType; export declare function useTable(props?: useTableProps & { hasPagination: false; }): useTableNoPaginationReturnType; export {}; //# sourceMappingURL=index.d.ts.map