import { Message, Request, Response } from "./message"; import { Log } from "./log"; import { IVia } from "./_via"; export interface Context { id: string; connection: IVia; err?: any; in?: Message; out?: Message; req?: Request; res?: Response; params?: { [key: string]: string; }; isReq(inbound?: boolean): this is RequestContext; isRes(inbound?: boolean): this is ResponseContext; [key: string]: any; } export interface ContextConstructor { new (init: { connection: IVia; in: Message; log: Log; }): C; new (init: { connection: IVia; out: Message; log: Log; }): C; } export declare class DefaultContext implements Context { id: string; connection: IVia; in?: Message; out?: Message; constructor(init: { connection: IVia; in?: Message; out?: Message; }); isReq(inbound?: boolean): this is RequestContext; isRes(inbound?: boolean): this is ResponseContext; private defaultResponse; send(msg: Message): void; } export interface RequestContext extends ResponseContext { req: Request; } export interface ResponseContext extends Context { res: Response; }