import type { AnyMutationProcedure, AnyProcedure, AnyQueryProcedure, AnyRouter, AnySubscriptionProcedure, IntersectionError, ProcedureArgs, ProcedureRouterRecord } from '@trpc/server'; import type { Unsubscribable } from '@trpc/server/observable'; import { inferTransformedProcedureOutput, inferTransformedSubscriptionOutput } from '@trpc/server/shared'; import { TRPCClientError } from './TRPCClientError'; import { TRPCClient } from './createTRPCClient'; import { CreateTRPCClientOptions } from './createTRPCUntypedClient'; import { TRPCSubscriptionObserver, UntypedClientProperties } from './internals/TRPCUntypedClient'; /** @public */ export declare type inferRouterProxyClient = DecoratedProcedureRecord; declare type Resolver = (...args: ProcedureArgs) => Promise>; declare type SubscriptionResolver = (...args: [ input: ProcedureArgs[0], opts: ProcedureArgs[1] & Partial, TRPCClientError>> ]) => Unsubscribable; declare type DecorateProcedure = TProcedure extends AnyQueryProcedure ? { query: Resolver; } : TProcedure extends AnyMutationProcedure ? { mutate: Resolver; } : TProcedure extends AnySubscriptionProcedure ? { subscribe: SubscriptionResolver; } : never; /** * @internal */ declare type DecoratedProcedureRecord = { [TKey in keyof TProcedures]: TProcedures[TKey] extends AnyRouter ? DecoratedProcedureRecord : TProcedures[TKey] extends AnyProcedure ? DecorateProcedure : never; }; export declare type CreateTRPCProxyClient = DecoratedProcedureRecord extends infer TProcedureRecord ? UntypedClientProperties & keyof TProcedureRecord extends never ? TProcedureRecord : IntersectionError : never; /** * @deprecated use `createTRPCProxyClient` instead * @internal */ export declare function createTRPCClientProxy(client: TRPCClient): CreateTRPCProxyClient; export declare function createTRPCProxyClient(opts: CreateTRPCClientOptions): CreateTRPCProxyClient; export {}; //# sourceMappingURL=createTRPCClientProxy.d.ts.map