export interface IConfig {
    encryption?: {
        forwardSecrecy?: boolean;
        quantumResistant?: boolean;
        algorithm?: 'AES-256-GCM' | 'ChaCha20-Poly1305';
        keyRotationInterval?: number;
    };
    streaming?: {
        audio?: boolean;
        video?: boolean;
        videoQuality?: '480p' | '720p' | '1080p';
        audioQuality?: 'low' | 'medium' | 'high';
    };
    monitoring?: {
        encryptionLogs?: boolean;
        keyMonitoring?: boolean;
        performanceMetrics?: boolean;
        eventHandlers?: {
            onKeyRotation?: (event: IKeyEvent) => void;
            onEncryption?: (stats: IEncryptionStats) => void;
            onMetricsUpdate?: (metrics: IKeyMetrics & IEncryptionMetrics) => void;
        };
    };
    telemetryLevel?: 'Basic' | 'Standard' | 'Advanced' | 'Comprehensive';
}
export interface IKeyEvent {
    type: 'generated' | 'rotated' | 'compromised' | 'revoked';
    status: 'active' | 'compromised' | 'revoked';
    timestamp: Date;
    metadata: Record<string, unknown>;
}
export interface IEncryptionStats {
    operationId: string;
    type: 'encrypt' | 'decrypt';
    success: boolean;
    latency: number;
    timestamp: Date;
    metadata: Record<string, unknown>;
}
export interface IKeyMetrics {
    totalKeys: number;
    activeKeys: number;
    compromisedKeys: number;
    lastUpdated: Date;
}
export interface IEncryptionMetrics {
    totalOperations: number;
    successRate: number;
    averageLatency: number;
    lastUpdated: Date;
}
