type LegacyStorageMigrationMode = "preserve" | "copy" | "transform"; interface LegacyStorageMigrationEntry { findingId: string; api: string; sourceKey: string | null; targetKey: string | null; dynamic: boolean; mode: LegacyStorageMigrationMode; preserveSource: boolean; backupRequired: boolean; } interface LegacyStorageMigrationManifest { manifestChecksum: string; storage: LegacyStorageMigrationEntry[]; } interface LegacyStorageMigrationResult { status: "applied" | "already-applied" | "not-required"; copied: number; backupKeys: string[]; } interface LegacyStorageMigrationOptions { localStorage?: Storage | null; sessionStorage?: Storage | null; } /** * Low-level engine for a caller-verified, static, copy-only storage manifest. * * The operation preflights every source and target, writes a backup before any * target, never removes source keys, and rolls back newly created targets if a * write fails. The caller must establish manifest provenance with the migration * CLI before invoking this browser API. Transform migrations require app-owned * code and are rejected. */ declare function applyLegacyStorageMigration(manifest: LegacyStorageMigrationManifest, options?: LegacyStorageMigrationOptions): LegacyStorageMigrationResult; export { type LegacyStorageMigrationEntry, type LegacyStorageMigrationManifest, type LegacyStorageMigrationMode, type LegacyStorageMigrationOptions, type LegacyStorageMigrationResult, applyLegacyStorageMigration };