import type { DhfDocument } from './document-ir.js'; /** A snapshot of a DHF document at a point in time */ export interface DhfSnapshot { /** Snapshot ID (timestamp-based) */ id: string; /** Document type ID */ documentId: string; /** Creation timestamp */ timestamp: string; /** Label/description for this snapshot */ label?: string; /** Section summaries */ sections: Array<{ id: string; title: string; status: string; elementCount: number; gapCount: number; /** Hash of section content for change detection */ contentHash: string; }>; /** Overall stats */ totalElements: number; totalGaps: number; status: string; } /** Create a snapshot from a compiled DHF document */ export declare function createSnapshot(doc: DhfDocument, label?: string): DhfSnapshot; /** Save a snapshot to the .memo/dhf-snapshots/ directory */ export declare function saveSnapshot(projectDir: string, snapshot: DhfSnapshot): string; /** Load all snapshots for a document type */ export declare function loadSnapshots(projectDir: string, documentId: string): DhfSnapshot[]; /** Load the latest snapshot for a document type */ export declare function loadLatestSnapshot(projectDir: string, documentId: string): DhfSnapshot | undefined; /** Diff result between two snapshots */ export interface DhfDiffResult { /** Baseline snapshot */ baseline: DhfSnapshot; /** Current snapshot */ current: DhfSnapshot; /** Sections that changed */ changedSections: Array<{ id: string; title: string; changeType: 'added' | 'removed' | 'modified' | 'unchanged'; baselineStatus?: string; currentStatus?: string; elementDelta: number; gapDelta: number; }>; /** Summary metrics */ elementDelta: number; gapDelta: number; statusChange: string; } /** Compare two snapshots */ export declare function diffSnapshots(baseline: DhfSnapshot, current: DhfSnapshot): DhfDiffResult; /** Generate a redline Document IR from a diff */ export declare function generateRedlineDocument(diff: DhfDiffResult): DhfDocument; //# sourceMappingURL=snapshot.d.ts.map