import type { LoadResult } from "../loader/load-model.js"; import type { T0Result } from "./types.js"; export interface T0Options { /** * Absolute path to the repo the anchors should resolve against. * Omit to skip anchor-existence entirely (format-only checking) — the * right default when there's no target repo checked out yet, e.g. in * loopgraph's own CI which only tests the engine against fixtures. */ repoRoot?: string | undefined; /** Promote anchor-existence to a blocking check. Default: advisory (warning). */ strictAnchorExistence?: boolean | undefined; } /** * Runs the full T0 layer: schema validity, id uniqueness, file-per-node * filename==id (advisory), cross-node referential integrity, graph acyclicity * (Loop.parent / Flow.references — the only two same-kind reference fields, see * checkGraphAcyclic), anchor format, cross-node consistency (duplicate anchor * claims / dangling free-text id references, both advisory), and (optionally) * anchor existence. * Deliberately * excludes: INV-1's whole-repo AST writer scan, T1's queue-derivation- * chain check, and anything baseline-growth related (that needs a * two-snapshot diff, see checkBaselineOnlyDecreases — it's not part of a * single-snapshot T0 run). All of T0 must stay cheap and deterministic: * no network calls, no LLM. */ export declare function runT0(load: LoadResult, options?: T0Options): Promise; //# sourceMappingURL=t0.d.ts.map