/// <reference types="node" />
import { RealEncryptionResult } from './CryptoEngine';
import { ApiKeyConfig, SecureVaultOptions } from '../types';
export declare class KeyVault {
    private cryptoEngine;
    private encryptedVault;
    private decryptedKeys;
    private isLocked;
    private options;
    private autoLockTimer;
    private lastAccessTime;
    private failedAttempts;
    private maxFailedAttempts;
    private lockoutDuration;
    constructor(options?: SecureVaultOptions);
    private extractApiKey;
    private normalizeApiKeys;
    createVault(password: string, apiKeys: ApiKeyConfig): Promise<RealEncryptionResult>;
    loadVault(vault: RealEncryptionResult): void;
    unlock(password: string): Promise<void>;
    lock(): void;
    getApiKey(provider: string): string;
    setApiKey(provider: string, apiKey: string, password: string): Promise<void>;
    removeApiKey(provider: string, password: string): Promise<void>;
    rotateKey(provider: string, newKey: string, options?: {
        gracePeriod?: number;
        password?: string;
        notifyRotation?: boolean;
    }): Promise<void>;
    rotateMultipleKeys(keyUpdates: Record<string, string>, options?: {
        password?: string;
        gracePeriod?: number;
        continueOnError?: boolean;
    }): Promise<{
        success: string[];
        failed: Record<string, string>;
    }>;
    setupKeyRotation(config: {
        providers: string[];
        rotationInterval: number;
        keyGenerator: (provider: string) => Promise<string>;
        password: string;
    }): NodeJS.Timeout;
    getStatus(): {
        isLocked: boolean;
        hasVault: boolean;
        keyCount: number;
        lastAccess: Date | null;
        autoLockEnabled: boolean;
        failedAttempts: number;
    };
    getProviders(): string[];
    testApiKey(provider: string): Promise<boolean>;
    exportVault(): RealEncryptionResult;
    private lockVault;
    private updateAccessTime;
    private setupAutoLock;
    private clearAutoLockTimer;
    private validatePassword;
    private calculatePasswordEntropy;
    private hasWeakPatterns;
    private validateApiKeys;
    private sanitizeProvider;
    private auditLog;
}
//# sourceMappingURL=KeyVault.d.ts.map