import type { Spec } from "../spec/index.ts"; import { type Bounds, type CheckOptions } from "./explore.ts"; /** What became of one property that needs a rule, in the design without the rule. */ export interface NeededBy { property: string; /** "breaks": the claim holds. "holds": the rule was not needed (it fails the check). "unfinished": held, but the search stopped early. */ verdict: "breaks" | "holds" | "unfinished"; /** With "breaks": the events in its shortest counterexample. */ events?: number; } export interface RuleVerdict { name: string; description: string; neededBy: NeededBy[]; } /** Each rule some property needs, checked in the design without it. */ export declare function checkRules(spec: Spec, bounds: Partial, options?: CheckOptions): Promise;