import { AsyncIteratorClass } from '@orpc/shared'; import { AnyProcedure, AnyRouter, inferRouterContext } from '@trpc/server'; import { inferRouterMeta } from '@trpc/server/unstable-core-do-not-import'; import * as ORPC from '@orpc/server'; interface ORPCMeta { route?: ORPC.Route; } type ToORPCOutput = T extends AsyncIterable ? AsyncIteratorClass : T; type ToORPCRouterResult> = { [K in keyof TRecord]: TRecord[K] extends AnyProcedure ? ORPC.Procedure, ORPC.Schema>, object, TMeta> : TRecord[K] extends Record ? ToORPCRouterResult : never; }; /** * Convert a tRPC router to an oRPC router. * * @warning You should set the `meta` type to `ORPCMeta` when creating your tRPC builder, to ensure OpenAPI features work correctly. */ declare function toORPCRouter(router: T): ToORPCRouterResult, inferRouterMeta, T['_def']['record']>; export { toORPCRouter }; export type { ORPCMeta, ToORPCOutput, ToORPCRouterResult };