/** * Post-parse integrity checks: * - Connector from/to references known node ids * - Note targets reference known node or connector ids * - Region spans fit within cols×rows * - Region spans form a single 4-connected shape (no diagonal-only joins) * - Cell occupancy: at most one node-or-note per cell after auto-layout * * At this point the DiagramDef carries the raw user-input coordinates * (1-based / A1 forms). We normalize a temporary copy here so the * checks can reason in canonical 0-based space without mutating the * def that render-time foldLayers will later re-normalize. * * Duplicate-node-id detection happens in parser.ts because it needs to * see source attribution (DSL vs JSON) at parse time. */ import type { DiagramDef } from '../types.js'; import type { GgError } from './errors.js'; /** * Run the integrity checks against a diagram. When `frame` is given, * checks that specific frame only. When omitted, checks every frame * number explicitly referenced by the declarations (at least frame 1) * so errors that only manifest at frame N — e.g. two icons at the * same cell at frame 3 — are caught at parse time rather than * silently accepted until someone renders `--frame 3`. * * Duplicate messages across frames are deduplicated; frame-specific * errors are annotated with `(frame N)` so the reader can tell which * frame to look at. */ export declare function checkIntegrity(rawDef: DiagramDef, frame?: number): GgError[]; //# sourceMappingURL=integrity.d.ts.map