///
import { ServerRequest, ServerResponse } from "http";
import { EventEmitter } from "events";
import { Request } from "./request";
import { Response } from "./response";
import { NextFunction, ErrorReason, RequestConstructor, ResponseConstructor } from "./define";
export declare class Context extends EventEmitter {
/** 原始ServerRequest对象 */
protected _request: Q;
/** 原始ServerResponse对象 */
protected _response: S;
/** 用于存储next函数的堆栈 */
protected readonly nextHandleStack: NextFunction[];
/** Request对象的构造函数 */
protected requestConstructor: RequestConstructor;
/** Response对象的构造函数 */
protected responseConstructor: ResponseConstructor;
/**
* 创建Request对象
*
* @param req 原始ServerRequest对象
*/
protected createRequest(req: ServerRequest): Q;
/**
* 创建Response对象
*
* @param res 原始ServerResponse对象
*/
protected createResponse(res: ServerResponse): S;
/**
* 初始化
*
* @param req 原始ServerRequest对象
* @param res 原始ServerResponse对象
*/
init(req: ServerRequest, res: ServerResponse): this;
/**
* 初始化完成
*/
inited(): void;
/**
* 获取Request对象
*/
readonly request: Q;
/**
* 获取Response对象
*/
readonly response: S;
/**
* 转到下一个中间件
*
* @param err 出错信息
*/
next(err?: ErrorReason): void;
/**
* next函数堆栈入栈
*
* @param next 回调函数
*/
pushNextHandle(next: NextFunction): void;
/**
* next函数出栈
*/
popNextHandle(): NextFunction | void;
/**
* 注册中间件执行出错时的事件监听
*
* @param callback 回调函数
*/
onError(callback: (err: ErrorReason) => void): void;
/**
* 注册响应结束时的事件监听
*
* @param callback 回调函数
*/
onFinish(callback: () => void): void;
}