/** * Atomic, immutable project snapshots for long-running runtime operations. * * A candidate is built completely before it replaces the current snapshot. * Failed candidates never expose partially-built state; callers may continue to * read the last good snapshot with `stale: true` and an attached failure. * * Acceptance: CTX-002, PERF-001. */ export interface ProjectSnapshot { readonly snapshotId: string; readonly sourceVersion: string; readonly value: T; readonly stale: boolean; readonly error?: string; } export declare class ProjectSnapshotMismatchError extends Error { readonly expectedSnapshotId: string; readonly currentSnapshotId: string; readonly code = "PROJECT_SNAPSHOT_MISMATCH"; constructor(expectedSnapshotId: string, currentSnapshotId: string); } export declare class ProjectSnapshotService { #private; current(): ProjectSnapshot | null; invalidate(): void; refresh(sourceVersion: string, buildCandidate: () => T): ProjectSnapshot; assertCurrent(snapshotId: string): void; } //# sourceMappingURL=project-snapshot.d.ts.map