import type { KeyMetadata } from '../types.js'; export type SoftDeleteOptions = { retentionDays: number; enablePurgeProtection: boolean; }; export type DeletedKeyState = { keyId: string; deletedAt: Date; recoverableUntil: Date; originalMetadata: KeyMetadata; }; /** * Soft delete and purge protection for keys * Phase 1: Data protection with recovery capabilities */ export declare class KeySoftDeleteManager { private readonly options; private readonly deletedKeys; private readonly purgeProtectedKeys; constructor(options: SoftDeleteOptions); /** * Soft delete a key (recoverable within retention period) */ softDeleteKey(keyId: string, metadata: KeyMetadata): Promise; /** * Check if a key is soft deleted */ isDeleted(keyId: string): boolean; /** * Check if a key can be recovered */ canRecover(keyId: string): boolean; /** * Recover a soft-deleted key */ recoverKey(keyId: string): Promise; /** * Permanently purge a soft-deleted key */ purgeKey(keyId: string): Promise; /** * Enable purge protection for a key */ enablePurgeProtection(keyId: string): void; /** * Disable purge protection for a key */ disablePurgeProtection(keyId: string): void; /** * Check if a key has purge protection */ hasPurgeProtection(keyId: string): boolean; /** * Get state of soft-deleted key */ getDeletedKeyState(keyId: string): DeletedKeyState | undefined; /** * List all soft-deleted keys */ listSoftDeletedKeys(): DeletedKeyState[]; /** * Clean up expired soft-deleted keys */ purgeExpiredKeys(): number; } //# sourceMappingURL=soft-delete.d.ts.map