import { ClientContext, Client, NestedClient } from '@orpc/client'; import { OperationType, OperationKeyOptions } from '@orpc/tanstack-query'; export { OperationKeyOptions as BuildKeyOptions, OperationType as KeyType, generateOperationKey as buildKey } from '@orpc/tanstack-query'; import { QueryKey, SkipToken, QueryObserverOptions, QueryFunctionContext, InfiniteQueryObserverOptions, MutationObserverOptions, InfiniteData } from '@tanstack/vue-query'; import { AnyFunction, MaybeOptionalOptions } from '@orpc/shared'; import { MaybeRef, MaybeRefOrGetter, ComputedRef, Ref } from 'vue'; interface GeneralUtils { /** * Generate a query/mutation key for checking status, invalidate, set, get, etc. * * @see {@link https://orpc.dev/docs/integrations/tanstack-query-old/basic#query-mutation-key Tanstack Query/Mutation Key Docs} */ key(options?: OperationKeyOptions): QueryKey; } declare function createGeneralUtils(path: string[]): GeneralUtils; /** * Since `@tanstack/vue-query` is not exporting the type `MaybeRefDeep` we need to copy it from the source code. * https://github.com/TanStack/query/blob/7ff544e12e79388e513b1cd886aeb946f80f0153/packages/vue-query/src/types.ts#L19C1-L27C2 */ type MaybeRefDeep = MaybeRef; } : T>; type QueryOptionsIn = (undefined extends TInput ? { input?: MaybeRefDeep; } : { input: MaybeRefDeep; }) & (Record extends TClientContext ? { context?: MaybeRefDeep; } : { context: MaybeRefDeep; }) & { [P in keyof Omit, 'queryKey' | 'enabled'>]: MaybeRefDeep[P]>; } & { enabled?: MaybeRefOrGetter['enabled']>; queryKey?: MaybeRefDeep['queryKey']>; shallow?: boolean; }; interface QueryOptionsBase { queryKey: ComputedRef; queryFn(ctx: QueryFunctionContext): Promise; throwOnError?(error: TError): boolean; retryDelay?: (count: number, error: TError) => number; enabled: ComputedRef; } type InfiniteOptionsIn = (Record extends TClientContext ? { context?: MaybeRefDeep; } : { context: MaybeRefDeep; }) & { [Property in keyof Omit, 'queryKey' | 'enabled'>]: MaybeRefDeep[Property]>; } & { input: MaybeRef<((pageParam: TPageParam) => MaybeRefDeep) | SkipToken>; enabled?: MaybeRefOrGetter['enabled']>; queryKey?: MaybeRefDeep['queryKey']>; shallow?: boolean; }; interface InfiniteOptionsBase { queryKey: ComputedRef; queryFn(ctx: QueryFunctionContext): Promise; throwOnError?(error: TError): boolean; retryDelay?: (count: number, error: TError) => number; enabled: ComputedRef; } type MutationOptionsIn = (Record extends TClientContext ? { context?: TClientContext; } : { context: TClientContext; }) & MutationOptions; type MutationOptions = { [P in keyof MutationObserverOptions]: MaybeRefDeep[P]>; } & { shallow?: MaybeRef; }; interface ProcedureUtils { /** * Calling corresponding procedure client * * @see {@link https://orpc.dev/docs/integrations/tanstack-query-old/basic#calling-procedure-clients Tanstack Calling Procedure Client Docs} */ call: Client; /** * Generate options used for useQuery/prefetchQuery/... * * @see {@link https://orpc.dev/docs/integrations/tanstack-query-old/basic#query-options-utility Tanstack Query Options Utility Docs} */ queryOptions(...rest: MaybeOptionalOptions>): NoInfer, keyof U>>; /** * Generate options used for useInfiniteQuery/prefetchInfiniteQuery/... * * @see {@link https://orpc.dev/docs/integrations/tanstack-query-old/basic#infinite-query-options-utility Tanstack Infinite Query Options Utility Docs} */ infiniteOptions>(options: U & InfiniteOptionsIn): NoInfer, keyof U>>; /** * Generate options used for useMutation/... * * @see {@link https://orpc.dev/docs/integrations/tanstack-query-old/basic#mutation-options Tanstack Mutation Options Docs} */ mutationOptions(...rest: MaybeOptionalOptions>): MutationOptions; } interface CreateProcedureUtilsOptions { path: string[]; } declare function createProcedureUtils(client: Client, options: CreateProcedureUtilsOptions): ProcedureUtils; type RouterUtils> = T extends Client ? ProcedureUtils & GeneralUtils : { [K in keyof T]: T[K] extends NestedClient ? RouterUtils : never; } & GeneralUtils; interface CreateRouterUtilsOptions { path?: string[]; } /** * Create a router utils from a client. * * @info Both client-side and server-side clients are supported. * @see {@link https://orpc.dev/docs/integrations/tanstack-query-old/vue Tanstack Query Vue Docs} */ declare function createRouterUtils>(client: T, options?: CreateRouterUtilsOptions): RouterUtils; type UnrefDeep = T extends Ref ? UnrefDeep : T extends AnyFunction ? T : T extends object ? { [K in keyof T]: UnrefDeep; } : T; declare function unrefDeep(value: T): UnrefDeep; export { createGeneralUtils, createRouterUtils as createORPCVueQueryUtils, createProcedureUtils, createRouterUtils, unrefDeep }; export type { CreateProcedureUtilsOptions, CreateRouterUtilsOptions, GeneralUtils, InfiniteOptionsBase, InfiniteOptionsIn, MaybeRefDeep, MutationOptions, MutationOptionsIn, ProcedureUtils, QueryOptionsBase, QueryOptionsIn, RouterUtils, UnrefDeep };