import { RequestHandler } from 'express';
export interface CompressionConfig {
    enabled: boolean;
    type: 'gzip';
    level?: number;
    threshold?: number;
}
export interface HyperShieldConfig {
    compression?: CompressionConfig;
    cache?: {
        enabled?: boolean;
        provider?: 'redis' | 'memory';
        ttl?: number;
    };
    metrics?: {
        enabled?: boolean;
        path?: string;
    };
}
export interface CacheOptions {
    ttl?: number;
    tags?: string[];
}
export interface CompressionOptions {
    level?: number;
    threshold?: number;
    filter?: (req: any, res: any) => boolean;
}
export interface MetricsOptions {
    path?: string;
    labels?: Record<string, string>;
}
export declare class HyperShield {
    private config;
    private initialized;
    constructor(config?: HyperShieldConfig);
    private validateConfig;
    initialize(): void;
    compression(_options?: CompressionOptions): RequestHandler;
    cache(_options?: CacheOptions): RequestHandler;
    metrics(_options?: MetricsOptions): RequestHandler;
    getMetrics(): Promise<string>;
}
//# sourceMappingURL=index.d.ts.map