import { UseGetListOptions } from "../../dataProvider/index.cjs";
import type { FilterPayload, RaRecord, SortPayload } from "../../types.cjs";
/**
 * Get a callback to select all records of a resource (capped by the limit parameter)
 *
 * @param {Object} params The hook parameters { resource, sort, filter }
 * @returns {Function} handleSelectAll A function to select all items of a list
 *
 * @example
 * import { List, Datagrid, BulkActionsToolbar, BulkDeleteButton, useListContext, useSelectAll } from 'react-admin';
 *
 * const MySelectAllButton = () => {
 *   const { sort, filter } = useListContext();
 *   const handleSelectAll = useSelectAll({ resource: 'posts', sort, filter });
 *   const handleClick = () => handleSelectAll({
 *       queryOptions: { meta: { foo: 'bar' } },
 *       limit: 250,
 *   });
 *   return <button onClick={handleClick}>Select All</button>;
 * };
 *
 * const PostBulkActionsToolbar = () => (
 *     <BulkActionsToolbar actions={<MySelectAllButton/>}>
 *         <BulkDeleteButton />
 *     </BulkActionsToolbar>
 * );
 *
 * export const PostList = () => (
 *     <List>
 *         <Datagrid bulkActionsToolbar={<PostBulkActionsToolbar />}>
 *             ...
 *         </Datagrid>
 *     </List>
 * );
 */
export declare const useSelectAll: (params: UseSelectAllParams) => UseSelectAllResult;
export interface UseSelectAllParams {
    resource?: string;
    sort?: SortPayload;
    filter?: FilterPayload;
    storeKey?: string;
    disableSyncWithStore?: boolean;
}
export interface HandleSelectAllParams<RecordType extends RaRecord = any> {
    limit?: number;
    queryOptions?: UseGetListOptions<RecordType>;
}
export type UseSelectAllResult = (options?: HandleSelectAllParams) => void;
//# sourceMappingURL=useSelectAll.d.ts.map