import type { QueryKey, UseInfiniteQueryOptions, UseMutationOptions, UseQueryOptions } from "@tanstack/react-query"; type MaybePromise = T | Promise; type AnyFn = (...payload: TArgs) => MaybePromise; type MutationVariables = TArgs extends [] ? void : TArgs extends [infer Only] ? Only : TArgs; type BaseQueryKey = readonly unknown[]; type QueryOptionOverrides = Omit, "queryKey" | "queryFn"> & { queryKey?: QueryKey; appendQueryKey?: readonly unknown[]; args?: TArgs; mapArgs?: (args: TArgs) => TArgs; queryFn?: (context: { queryKey: BaseQueryKey; signal: AbortSignal; meta: Record | undefined; args: TArgs; }) => MaybePromise; }; type MutationOptionOverrides> = Omit, "mutationKey" | "mutationFn"> & { mutationKey?: QueryKey; appendMutationKey?: readonly unknown[]; mapVariablesToArgs?: (variables: TVariables) => TArgs; mutationFn?: (context: { variables: TVariables; args: TArgs; }) => MaybePromise; }; type InfiniteOptionOverrides = Omit, "queryKey" | "queryFn"> & { queryKey?: QueryKey; appendQueryKey?: readonly unknown[]; args?: TArgs; mapArgs?: (args: TArgs) => TArgs; pageParamToArgs?: (pageParam: TPageParam, args: TArgs) => TArgs; queryFn?: (context: { queryKey: BaseQueryKey; signal: AbortSignal; meta: Record | undefined; pageParam: TPageParam; direction: unknown; args: TArgs; }) => MaybePromise; }; interface QueryOptionFactory { (...payload: TArgs): UseQueryOptions; withOptions: (overrides: QueryOptionOverrides, ...payload: TArgs) => UseQueryOptions; } interface MutationOptionFactory> { (): UseMutationOptions; withOptions: (overrides?: MutationOptionOverrides) => UseMutationOptions; } interface MutationOptionConfig> { mapVariablesToArgs?: (variables: TVariables) => TArgs; } interface InfiniteOptionFactory { (...payload: TArgs): UseInfiniteQueryOptions; withOptions: (overrides: InfiniteOptionOverrides, ...payload: TArgs) => UseInfiniteQueryOptions; } type QueryOptionType = (key: readonly unknown[], fn: AnyFn) => QueryOptionFactory; type MutationOptionType = >(key: readonly unknown[], fn: AnyFn, config?: MutationOptionConfig) => MutationOptionFactory; type InfiniteOptionType = (key: readonly unknown[], fn: AnyFn) => InfiniteOptionFactory; export declare const queryOption: QueryOptionType; export declare const mutationOption: MutationOptionType; export declare const infiniteOption: InfiniteOptionType; export {}; //# sourceMappingURL=query.d.ts.map