///
import { ServerRequest, ServerResponse } from "http";
import { Context } from "./context";
import { Middleware, MiddlewareHandle, ErrorReason, ContextConstructor, ParsedRoutePathResult, RegExpOptions } from "./define";
import { Request } from "./request";
import { Response } from "./response";
export declare class Core> {
/** 中间件堆栈 */
protected readonly stack: Middleware[];
/** Context对象构造函数 */
protected contextConstructor: ContextConstructor;
/** 解析路由选项 */
protected readonly routeOptions: RegExpOptions;
/** use()当前中间件时的路由规则 */
protected route: ParsedRoutePathResult | null;
/**
* 创建Context对象
*
* @param req 原始ServerRequest对象
* @param res 原始ServerResponse对象
*/
protected createContext(req: ServerRequest, res: ServerResponse): C;
/**
* 解析路由规则
*
* @param isPrefix 是否为前缀模式
* @param route 路由规则
*/
protected parseRoutePath(isPrefix: boolean, route: string | RegExp): ParsedRoutePathResult;
/**
* 生成中间件
*/
toMiddleware(): (ctx: C) => void;
/**
* 注册中间件
*
* @param route 路由规则
* @param handles 中间件对象或处理函数
*/
use(route: string | RegExp, ...handles: Array | Core>): void;
/**
* 注册中间件
*
* @param route 路由
* @param handles 中间件对象或处理函数
*/
protected add(route: ParsedRoutePathResult, ...handles: MiddlewareHandle[]): void;
/**
* 添加中间件到末尾
*
* @param route 路由
* @param handles 中间件对象或处理函数
*/
protected addToEnd(route: ParsedRoutePathResult, ...handles: MiddlewareHandle[]): void;
/**
* 通过原始ServerRequest和ServerResponse对象处理请求
* @param req 原始ServerRequest对象
* @param res 原始ServerResponse对象
* @param done 未处理请求回调函数
*/
protected handleRequestByRequestResponse(req: ServerRequest, res: ServerResponse, done: (err?: ErrorReason) => void): void;
/**
* 通过Context对象处理请求
*
* @param ctx Context对象
* @param done 未处理请求回调函数
*/
protected handleRequestByContext(ctx: C, done: (err?: ErrorReason) => void): void;
}