import * as h3 from 'h3'; import { H3Event } from 'h3'; import { ResponseMeta } from '@trpc/server/http'; import { AnyRouter, inferRouterContext, inferRouterError, ProcedureType, TRPCError } from '@trpc/server'; import { TRPCResponse } from '@trpc/server/rpc'; type MaybePromise = T | Promise; type CreateContextFn = (event: H3Event) => MaybePromise>; interface ResponseMetaFnPayload { data: TRPCResponse>[]; ctx?: inferRouterContext; paths?: string[]; type: ProcedureType | 'unknown'; errors: TRPCError[]; } type ResponseMetaFn = (opts: ResponseMetaFnPayload) => ResponseMeta; interface OnErrorPayload { error: TRPCError; type: ProcedureType | 'unknown'; path: string | undefined; req: H3Event['node']['req']; input: unknown; ctx: undefined | inferRouterContext; } type OnErrorFn = (opts: OnErrorPayload) => void; interface ResolveHTTPRequestOptions { router: TRouter; createContext?: CreateContextFn; responseMeta?: ResponseMetaFn; onError?: OnErrorFn; batching?: { enabled: boolean; }; } declare function createTrpcNitroHandler({ router, createContext, responseMeta, onError, batching, }: ResolveHTTPRequestOptions): h3.EventHandler>; export { createTrpcNitroHandler }; export type { CreateContextFn, OnErrorFn, OnErrorPayload, ResolveHTTPRequestOptions, ResponseMetaFn, ResponseMetaFnPayload };