| TResponse | void;
export declare type BaseRequest = {
params: P;
query: Q;
headers: IncomingHttpHeaders;
url: URL;
};
export interface IRequest
extends BaseRequest
{
body: () => Promise;
json: () => Promise;
request: http.IncomingMessage;
response: http.ServerResponse;
}
export interface IController, TResponse extends IResponse, TContext, TLocalContext = TContext> {
handle(handler: RouteHandler): ILayer;
context(resolver: ContextResolver): IController;
}
export declare type SyncContextResolver = (originalContext: TOriginal) => TNew;
export declare type AsyncContextResolver = (originalContext: TOriginal) => Promise;
export declare type ContextResolver = SyncContextResolver | AsyncContextResolver;