import { EventEmitter } from 'events';
import { Request, RequestHandler, Response } from 'express';
export interface CompressionConfig {
    threshold?: number;
    level?: number;
    filter?: (req: Request, res: Response) => boolean;
    preferredEncoding?: 'gzip' | 'deflate' | 'br';
    skipTypes?: string[];
}
export declare class CompressionMiddleware extends EventEmitter {
    private config;
    private stats;
    constructor(config?: CompressionConfig);
    middleware(): RequestHandler;
    private shouldCompress;
    private parseAcceptEncoding;
    private selectEncoding;
    getStats(): {
        compressionRate: number;
        averageSavings: number;
        totalResponses: number;
        compressedResponses: number;
        bytesSaved: number;
    };
    resetStats(): void;
}
export declare function createCompressionMiddleware(config?: CompressionConfig): CompressionMiddleware;
//# sourceMappingURL=compression-middleware.d.ts.map