import { AnyRouter } from '@trpc/server';
import { NodeHTTPCreateContextFnOptions, NodeHTTPHandlerOptions } from '@trpc/server/adapters/node-http';
import { Middleware } from 'koa';
import { IncomingMessage, ServerResponse } from 'http';
declare module 'koa' {
    interface Request {
        body?: any;
    }
}
declare module 'http' {
    interface IncomingMessage {
        body?: any;
    }
    interface ServerResponse {
        body?: any;
    }
}
export type CreateTrpcKoaContextOptions = NodeHTTPCreateContextFnOptions<IncomingMessage, ServerResponse<IncomingMessage>>;
export type AdditionalMiddlewareOpts = {
    prefix?: `/${string}`;
};
export type CreateKoaMiddlewareOptions<TRouter extends AnyRouter> = NodeHTTPHandlerOptions<TRouter, IncomingMessage, ServerResponse<IncomingMessage>> & AdditionalMiddlewareOpts;
export declare const createKoaMiddleware: <TRouter extends AnyRouter>(opts: CreateKoaMiddlewareOptions<TRouter>) => Middleware;
