import { DefaultErrorShape, ErrorFormatter, ErrorFormatterShape } from './error/formatter'; import { CreateRootConfigTypes, RootConfig, RootConfigTypes, RuntimeConfig } from './internals/config'; import { mergeRouters } from './internals/mergeRouters'; import { PickFirstDefined, ValidateShape } from './internals/utils'; import { DataTransformerOptions, DefaultDataTransformer } from './transformer'; import { Unwrap } from './types'; type PartialRootConfigTypes = Partial; type CreateRootConfigTypesFromPartial = CreateRootConfigTypes<{ ctx: TTypes['ctx'] extends RootConfigTypes['ctx'] ? TTypes['ctx'] : object; meta: TTypes['meta'] extends RootConfigTypes['meta'] ? TTypes['meta'] : object; errorShape: TTypes['errorShape']; transformer: DataTransformerOptions; }>; /** * TODO: This can be improved: * - We should be able to chain `.meta()`/`.context()` only once * - Simplify typings * - Doesn't need to be a class but it doesn't really hurt either */ declare class TRPCBuilder { context RootConfigTypes['ctx'])>(): TRPCBuilder]: K extends "ctx" ? { ctx: Unwrap; }[K] : K extends keyof TParams ? TParams[K] : never; } : { ctx: Unwrap; }>; meta(): TRPCBuilder]: K extends "meta" ? { meta: TNewMeta; }[K] : K extends keyof TParams ? TParams[K] : never; } : { meta: TNewMeta; }>; create>>>(options?: ValidateShape>>> | undefined): { /** * These are just types, they can't be used * @internal */ _config: RootConfig<{ ctx: TParams["ctx"] extends object ? TParams["ctx"] : object; meta: TParams["meta"] extends object ? TParams["meta"] : object; errorShape: ErrorFormatterShape>>; transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] : DefaultDataTransformer; }>; /** * Builder object for creating procedures * @see https://trpc.io/docs/server/procedures */ procedure: import("./internals/procedureBuilder").ProcedureBuilder; /** * Create reusable middlewares * @see https://trpc.io/docs/server/middlewares */ middleware: <$ContextOverrides>(fn: import("./middleware").MiddlewareFunction) => import("./middleware").MiddlewareBuilder; /** * Create a router * @see https://trpc.io/docs/server/routers */ router: (procedures: TProcRouterRecord) => import("./router").CreateRouterInner>>; transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] : DefaultDataTransformer; }>, TProcRouterRecord>; /** * Merge Routers * @see https://trpc.io/docs/server/merging-routers */ mergeRouters: typeof mergeRouters; /** * Create a server-side caller for a router * @see https://trpc.io/docs/server/server-side-calls */ createCallerFactory: >>; transformer: TOptions["transformer"] extends DataTransformerOptions ? TOptions["transformer"] : DefaultDataTransformer; }>>>>(router: TRouter) => import("./router").RouterCaller; }; } /** * Initialize tRPC - done exactly once per backend */ export declare const initTRPC: TRPCBuilder; export {}; //# sourceMappingURL=initTRPC.d.ts.map