/** * SyncMetaManager — track sync state between local store and engine. * * File: `.forgeos/sync_meta.json` * * Records last sync timestamp, remote/local head hashes, and any * unresolved conflicts detected during sync. All writes are atomic * (write to .tmp, rename). * * Uses only Node.js built-ins (fs, path, crypto). No external dependencies. */ import type { SyncMeta, ConflictRecord } from "./types.js"; export declare class SyncMetaManager { private filePath; constructor(projectRoot: string); /** Load sync metadata from disk. Returns a default empty state if the file does not exist. */ load(): SyncMeta; /** Persist sync metadata to disk using an atomic write. */ save(meta: SyncMeta): void; /** * Record a new conflict. Auto-generates id and timestamp, sets resolved=false. * Loads, mutates, and saves in one operation. */ recordConflict(conflict: Omit): void; /** Mark a conflict as resolved by its ID. No-op if the ID is not found. */ resolveConflict(id: string): void; /** Return all conflicts that have not been resolved. */ getUnresolvedConflicts(): ConflictRecord[]; } //# sourceMappingURL=sync-meta.d.ts.map