/** * 旧存储 → 新存储布局:有旧文件的搬过来,没有的建出初始形态。初始形态一律是**空结构**而不是默认值快照 * ——写全量默认值会把「用户覆盖过哪些键」这个语义冲掉(文件里每个键都会被读成用户显式提交的),而那份差别 * 正是设置页判断哪些字段该标记为「已改」的依据。逐文件独立(一个搬不动不影响其余),但**搬不动都抛出**: * 迁移没做完而启动照常,等于让各域按错误的形态去读数据。幂等:目标已存在即处理过,归档名固定、重跑不累积。 */ export declare function migrateStorageLayout(): void;