import { EventEmitter } from 'events';
import { Request, RequestHandler, Response } from 'express';
export interface TimeoutConfig {
    timeout?: number;
    message?: string;
    onTimeout?: (req: Request, res: Response) => void;
    skipPaths?: string[];
    dynamicTimeout?: (req: Request) => number;
}
export declare class TimeoutMiddleware extends EventEmitter {
    private config;
    private stats;
    constructor(config?: TimeoutConfig);
    middleware(overrideTimeout?: number): RequestHandler;
    private updateAverageResponseTime;
    getStats(): {
        timeoutRate: number;
        totalRequests: number;
        timedOutRequests: number;
        averageResponseTime: number;
    };
    resetStats(): void;
}
export declare function createTimeoutMiddleware(config?: TimeoutConfig): TimeoutMiddleware;
//# sourceMappingURL=timeout-middleware.d.ts.map