/** * API Response Compression Middleware * * Implements gzip and brotli compression for API responses */ interface CompressionOptions { threshold?: number; level?: number; preferBrotli?: boolean; excludeTypes?: string[]; } /** * Compress API response */ export declare function compressResponse(request: Request, response: Response, options?: CompressionOptions): Promise; /** * Create compression middleware */ export declare function createCompressionMiddleware(options?: CompressionOptions): (request: Request, next: () => Promise) => Promise; /** * Calculate compression ratio */ export declare function getCompressionRatio(originalSize: number, compressedSize: number): number; /** * Get compression stats */ export interface CompressionStats { originalSize: number; compressedSize: number; compressionRatio: number; encoding: string; savings: number; } export declare function getCompressionStats(originalBody: string | Uint8Array, compressedBody: Uint8Array, encoding: string): CompressionStats; /** * Preset compression configurations */ export declare const COMPRESSION_PRESETS: { readonly fast: { readonly threshold: 512; readonly level: 3; readonly preferBrotli: false; }; readonly balanced: { readonly threshold: 1024; readonly level: 6; readonly preferBrotli: true; }; readonly max: { readonly threshold: 512; readonly level: 9; readonly preferBrotli: true; }; readonly static: { readonly threshold: 1024; readonly level: 9; readonly preferBrotli: true; }; readonly api: { readonly threshold: 512; readonly level: 6; readonly preferBrotli: true; readonly excludeTypes: readonly ["image/png", "image/jpeg", "image/gif", "image/webp", "video/mp4", "application/zip", "application/gzip", "application/pdf"]; }; }; /** * Compress JSON response */ export declare function compressJSON(data: unknown, encoding?: 'gzip' | 'br', level?: number): Promise; /** * Decompress response */ export declare function decompressBody(body: Uint8Array, encoding: string): Promise; /** * Check if compression is supported */ export declare function isCompressionSupported(request: Request): { gzip: boolean; brotli: boolean; }; export {}; //# sourceMappingURL=compression.d.ts.map