/** * Crash-safe file writes. * * `writeFileSync` truncates the target before writing its bytes, so a crash * or kill mid-write leaves a half-written (often empty) file. For Franklin * that means a wiped portfolio (cross-session P&L — the Trading vertical's * headline feature) or a wiped content library (budget `spentUsd`). We * instead write to a sibling temp file and `renameSync` it into place: * rename is atomic on the same filesystem, so a reader ever sees only the * complete old file or the complete new one — never a torn write. The * previous good copy is preserved as `.bak` for recovery. */ export declare function atomicWriteFileSync(filePath: string, data: string): void;