/**
 * 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 `<file>.bak` for recovery.
 */
export declare function atomicWriteFileSync(filePath: string, data: string): void;
