import { EndpointDefinitions, QueryDefinition, MutationDefinition, QueryArgFrom, ResultTypeFrom } from '../endpointDefinitions'; import type { QueryThunkArg, MutationThunkArg } from './buildThunks'; import { AnyAction, AsyncThunk, ThunkAction } from '@reduxjs/toolkit'; import { QuerySubState, SubscriptionOptions } from './apiState'; import { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'; import { Api } from '../apiTypes'; import { BaseQueryResult } from '../baseQueryTypes'; declare module './module' { interface ApiEndpointQuery, Definitions extends EndpointDefinitions> { initiate: StartQueryActionCreator; } interface ApiEndpointMutation, Definitions extends EndpointDefinitions> { initiate: StartMutationActionCreator; } } export interface StartQueryActionCreatorOptions { subscribe?: boolean; forceRefetch?: boolean | number; subscriptionOptions?: SubscriptionOptions; } declare type StartQueryActionCreator> = (arg: QueryArgFrom, options?: StartQueryActionCreatorOptions) => ThunkAction, any, any, AnyAction>; export declare type QueryActionCreatorResult> = Promise> & { arg: QueryArgFrom; requestId: string; subscriptionOptions: SubscriptionOptions | undefined; abort(): void; unsubscribe(): void; refetch(): void; updateSubscriptionOptions(options: SubscriptionOptions): void; }; declare type StartMutationActionCreator> = (arg: QueryArgFrom, options?: { /** * If this mutation should be tracked in the store. * If you just want to manually trigger this mutation using `dispatch` and don't care about the * result, state & potential errors being held in store, you can set this to false. * (defaults to `true`) */ track?: boolean; }) => ThunkAction, any, any, AnyAction>; export declare type MutationActionCreatorResult> = Promise ? BaseQuery : never>>> & { arg: QueryArgFrom; requestId: string; abort(): void; unwrap(): Promise>; unsubscribe(): void; }; export declare function buildInitiate({ serializeQueryArgs, queryThunk, mutationThunk, api, }: { serializeQueryArgs: InternalSerializeQueryArgs; queryThunk: AsyncThunk, {}>; mutationThunk: AsyncThunk, {}>; api: Api; }): { buildInitiateQuery: (endpointName: string, endpointDefinition: QueryDefinition) => StartQueryActionCreator; buildInitiateMutation: (endpointName: string, definition: MutationDefinition) => StartMutationActionCreator; }; export {}; //# sourceMappingURL=buildInitiate.d.ts.map