import type { TRPCClientErrorLike } from '@trpc/client'; import type { AnyMutationProcedure, AnyProcedure, AnyQueryProcedure, AnyRootTypes, AnyRouter, inferProcedureInput, inferTransformedProcedureOutput, RouterRecord, } from '@trpc/server/unstable-core-do-not-import'; import type { UseTRPCMutationOptions, UseTRPCMutationResult, UseTRPCQueryOptions, UseTRPCQueryResult, } from '../shared'; /** * @internal */ export type InferQueryOptions< TRoot extends AnyRootTypes, TProcedure extends AnyProcedure, TData = inferTransformedProcedureOutput, > = Omit< UseTRPCQueryOptions< inferTransformedProcedureOutput, inferTransformedProcedureOutput, TRPCClientErrorLike, TData >, 'select' | 'queryFn' >; /** * @internal */ export type InferMutationOptions< TRoot extends AnyRootTypes, TProcedure extends AnyProcedure, TMeta = unknown, > = UseTRPCMutationOptions< inferProcedureInput, TRPCClientErrorLike, inferTransformedProcedureOutput, TMeta >; /** * @internal */ export type InferQueryResult< TRoot extends AnyRootTypes, TProcedure extends AnyProcedure, > = UseTRPCQueryResult< inferTransformedProcedureOutput, TRPCClientErrorLike >; /** * @internal */ export type InferMutationResult< TRoot extends AnyRootTypes, TProcedure extends AnyProcedure, TContext = unknown, > = UseTRPCMutationResult< inferTransformedProcedureOutput, TRPCClientErrorLike, inferProcedureInput, TContext >; type inferReactQueryProcedureOptionsInner< TRoot extends AnyRootTypes, TRecord extends RouterRecord, > = { [TKey in keyof TRecord]: TRecord[TKey] extends infer $Value ? $Value extends AnyQueryProcedure ? InferQueryOptions : $Value extends AnyMutationProcedure ? InferMutationOptions : $Value extends RouterRecord ? inferReactQueryProcedureOptionsInner : never : never; }; export type inferReactQueryProcedureOptions = inferReactQueryProcedureOptionsInner< TRouter['_def']['_config']['$types'], TRouter['_def']['record'] >;