import type { EncryptionProvider } from '../interfaces/core.js'; import type { KeyMetadata } from '../types.js'; export type KeyRotationPolicy = { autoRotateEnabled: boolean; rotationIntervalDays: number; rotationWindowDays?: number; }; export type KeyRotationState = { keyId: string; lastRotatedAt: Date; nextRotationAt: Date; rotationCount: number; }; /** * Manages automatic key rotation with configurable policies * Phase 1: Automatic key rotation implementation */ export declare class KeyRotationManager { private readonly provider; private readonly rotationStates; constructor(provider: EncryptionProvider); /** * Initialize rotation tracking for a key */ initializeKeyRotation(keyId: string, policy: KeyRotationPolicy): Promise; /** * Check if a key needs rotation */ shouldRotate(keyId: string): boolean; /** * Perform automatic key rotation */ rotateKeyIfNeeded(keyId: string, policy: KeyRotationPolicy): Promise; /** * Get rotation state for a key */ getRotationState(keyId: string): KeyRotationState | undefined; private calculateNextRotationDate; /** * Schedule automatic rotations (use with external scheduler) */ scheduleRotations(keys: Array<{ keyId: string; policy: KeyRotationPolicy; }>): Promise>; } //# sourceMappingURL=key-rotation.d.ts.map