import type { ProjectSnapshot, StoredSnapshot } from "../types.js"; export interface SaveSnapshotOptions { /** Path to save the snapshot (default: `.flowlock/snapshot.json`). */ outputPath?: string; /** Base directory for path validation (default: process.cwd()). */ baseDir?: string; /** Git ref this snapshot represents (e.g. `main`, `v1.0.0`). */ gitRef?: string; /** Git commit SHA for reproducibility. */ gitSha?: string; } /** * Saves a project snapshot to disk with metadata for later comparison. * Creates the output directory if it does not exist. * * @param snapshot - The snapshot to persist * @param tsConfigPath - Path to the tsconfig used to generate the snapshot * @param options - Optional output path and git metadata * @returns The path where the snapshot was saved * * @example * ```ts * const snapshot = analyzeProject("./tsconfig.json"); * saveSnapshot(snapshot, "./tsconfig.json", { outputPath: ".flowlock/main.json", gitRef: "main" }); * ``` */ export declare function saveSnapshot(snapshot: ProjectSnapshot, tsConfigPath: string, options?: SaveSnapshotOptions): string; /** * Loads a previously saved snapshot from disk. * * @param path - Path to the stored snapshot file * @returns The stored snapshot with metadata * @throws If the file does not exist, is invalid JSON, or has an unsupported version * * @example * ```ts * const stored = loadSnapshot(".flowlock/main.json"); * const report = compareSnapshots(stored.snapshot, analyzeProject("./tsconfig.json")); * ``` */ export interface LoadSnapshotOptions { /** Base directory for path validation (default: process.cwd()). */ baseDir?: string; } export declare function loadSnapshot(path: string, options?: LoadSnapshotOptions): StoredSnapshot; //# sourceMappingURL=snapshotStorage.d.ts.map