import type { MutationHooks, QueryHooks } from './buildHooks'; import type { EndpointDefinitions, QueryDefinition, MutationDefinition, QueryArgFrom } from '@reduxjs/toolkit/dist/query/endpointDefinitions'; import type { Module } from '../apiTypes'; import type { BaseQueryFn } from '@reduxjs/toolkit/dist/query/baseQueryTypes'; import type { HooksWithUniqueNames } from './versionedTypes'; import type { QueryKeys } from '../core/apiState'; import type { PrefetchOptions } from '../core/module'; export declare const reactHooksModuleName: unique symbol; export declare type ReactHooksModule = typeof reactHooksModuleName; declare module '@reduxjs/toolkit/dist/query/apiTypes' { interface ApiModules { [reactHooksModuleName]: { /** * Endpoints based on the input endpoints provided to `createApi`, containing `select`, `hooks` and `action matchers`. */ endpoints: { [K in keyof Definitions]: Definitions[K] extends QueryDefinition ? QueryHooks : Definitions[K] extends MutationDefinition ? MutationHooks : never; }; /** * A hook that accepts a string endpoint name, and provides a callback that when called, pre-fetches the data for that endpoint. */ usePrefetch>(endpointName: EndpointName, options?: PrefetchOptions): (arg: QueryArgFrom, options?: PrefetchOptions) => void; } & HooksWithUniqueNames; } } declare type RR = typeof import('react-redux'); export interface ReactHooksModuleOptions { /** * The version of the `batchedUpdates` function to be used */ batch?: RR['batch']; /** * The version of the `useDispatch` hook to be used */ useDispatch?: RR['useDispatch']; /** * The version of the `useSelector` hook to be used */ useSelector?: RR['useSelector']; /** * The version of the `useStore` hook to be used */ useStore?: RR['useStore']; } /** * Creates a module that generates react hooks from endpoints, for use with `buildCreateApi`. * * @example * ```ts * const MyContext = React.createContext(null as any); * const customCreateApi = buildCreateApi( * coreModule(), * reactHooksModule({ useDispatch: createDispatchHook(MyContext) }) * ); * ``` * * @returns A module for use with `buildCreateApi` */ export declare const reactHooksModule: ({ batch, useDispatch, useSelector, useStore, }?: ReactHooksModuleOptions) => Module; export {};