import { Request, Response } from 'express';
import { MockRoute } from '../types.d.js';

interface HandlerOptions {
    [key: string]: any;
}
declare abstract class BaseResponseHandler {
    protected options: HandlerOptions;
    constructor(options?: HandlerOptions);
    /**
     * 处理响应
     * @param {Request} req - 请求对象
     * @param {Response} res - 响应对象
     * @param {MockRoute} route - 路由配置
     * @returns {Promise<void>}
     */
    abstract handle(req: Request, res: Response, route: MockRoute): Promise<void>;
    /**
     * 设置响应头
     * @param {Response} res - 响应对象
     * @param {string} contentType - 内容类型
     */
    protected setHeaders(res: Response, contentType: string): void;
    /**
     * 处理文件响应
     * @param {string} filePath - 文件路径
     * @returns {Promise<Buffer>}
     */
    protected readFile(filePath: string): Promise<Buffer>;
    /**
     * 处理错误
     * @param {Response} res - 响应对象
     * @param {Error} error - 错误对象
     */
    protected handleError(res: Response, error: Error): void;
}

export { BaseResponseHandler };
