/**
 * Structural-check library for the verify stage. Each check is a
 * (parsedSpec) -> StructuralCheckResult function. Checks are SpecVerse-
 * semantic invariants that go beyond schema validation: things that
 * are syntactically valid YAML matching the JSON schema, but
 * semantically odd (e.g. an action with no steps and no cured shorthand).
 *
 * Design: each check is pure, fast, and reads only the parsed spec.
 * No filesystem I/O, no LLM calls.
 *
 * Adding a new check:
 *   1. Define the check function below
 *   2. Add it to ALL_CHECKS at the bottom
 *   3. Add a unit test in __tests__/verify-checks.test.ts
 */
import type { StructuralCheckResult } from './verify-recorder.js';
type Spec = any;
/** Each action either declares step bullets or is shorthand-mapped via cured. */
export declare function checkActionsHaveStepsOrCured(spec: Spec): StructuralCheckResult;
/** Every model has at least one attribute marked as primary key (id, isPrimary, or auto). */
export declare function checkModelsHavePrimaryKey(spec: Spec): StructuralCheckResult;
/** Every emit references a declared event. */
export declare function checkEmitsReferenceDeclaredEvents(spec: Spec): StructuralCheckResult;
/** No two model declarations with the same name across components (collision risk at realize). */
export declare function checkNoDuplicateModelNames(spec: Spec): StructuralCheckResult;
/** Every action has at least one step bullet OR explicit cured shorthand. Also checks step bullets are non-empty strings. */
export declare function checkStepBulletsWellFormed(spec: Spec): StructuralCheckResult;
export declare const ALL_CHECKS: (typeof checkActionsHaveStepsOrCured)[];
/** Run every check against the parsed spec and return all results. */
export declare function runAllChecks(spec: Spec): StructuralCheckResult[];
export {};
//# sourceMappingURL=verify-checks.d.ts.map