import type { Budget } from "../interp/budget.js";
import type { ParseResult } from "../parse/parser.js";
export type SnapshotValidationCode = "budgetExceeded" | "danglingReference" | "duplicateId" | "invalidCycle" | "invalidState" | "invalidType" | "invalidValue" | "unknownTag" | "unsupportedVersion";
export declare class SnapshotValidationError extends Error {
    readonly code: SnapshotValidationCode;
    readonly path: string;
    constructor(code: SnapshotValidationCode, path: string, detail: string);
}
export declare function validateDumpEnvelope(snapshot: unknown): asserts snapshot is Record<string, unknown>;
export declare function validateInterpreterSnapshot(snapshot: unknown, nodeById: ReadonlyMap<number, ParseResult>, budget: Budget): asserts snapshot is Record<string, unknown>;
export declare function validateSnapshotSourceHash(snapshot: unknown): asserts snapshot is {
    sourceHash: string;
};
