import { EventEmitter } from 'events';
export interface KeyMetadata {
    createdAt: Date;
    lastRotated: Date;
    compromised: boolean;
    usageCount: number;
}
export declare class KeyManager extends EventEmitter {
    private keys;
    private metadata;
    private readonly logger;
    private forwardSecrecyEnabled;
    private quantumResistantEnabled;
    constructor();
    enableForwardSecrecy(): void;
    enableQuantumResistance(): void;
    generateKey(type: string): string;
    getKey(type: string): string | undefined;
    getKeyMetadata(type: string): KeyMetadata | undefined;
    rotateKey(type: string): void;
    private scheduleKeyRotation;
    markKeyAsCompromised(type: string): void;
    onKeyGenerated(callback: (data: {
        type: string;
        timestamp: Date;
    }) => void): void;
    onKeyRotated(callback: (data: {
        type: string;
        oldKey: string | undefined;
        newKey: string;
        timestamp: Date;
    }) => void): void;
    onKeyCompromised(callback: (data: {
        type: string;
        timestamp: Date;
    }) => void): void;
}
