/** 读取结果:文件不存在、不可读、是目录都归为「没有内容」。 */ type FileRead = { ok: true; text: string; } | { ok: false; }; /** 写入结果:失败带回原因文本(不含路径之外的敏感信息)。 */ export type FileWrite = { ok: true; } | { ok: false; reason: string; }; /** 原子写全文:同目标路径串行(见 `writeChains`),失败用返回值表达。 */ export declare function writeTextAtomic(file: string, text: string): Promise; /** 读全文。只在装配路径上使用:设置必须在 `apply` 返回时就已是最终值,否则「读面第一次被调用」与「文件加载完成」 * 之间会开一个窗口。不区分「不存在」与「读失败」——两者处置一致(调用方回落空值),区分只会多一个分支。 */ export declare function readTextFileSync(file: string): FileRead; /** * 原子写全文(同步版)。只给装配路径上的小文件用(升级链每次推进都要落一次版本号):同步写换掉的是「装配还没 * 返回,磁盘上却已是新版本」这类顺序问题。 * * **不进写链**:同步函数没有 promise 可挂,`writeChains` 对它不成立——不假装它也被串行化了。它的服务面是升级期的 * 独占路径(`upgrade/impl/steps/*` 与 `upgrade/impl/version/`,装配尚未对外服务、没有并发的第二写方), * 此刻读到的必然是本进程刚落下的内容。将来若把它挪到有并发写的面上,`rename` 先后就重新变成调度说了算。 */ export declare function writeTextAtomicSync(file: string, text: string): FileWrite; export {};