import { type EvalKind } from "./eval-define.js"; import { type ArmsCheckReport, type CheckReport, type EvalReport, type TriggerRateReport } from "./eval.js"; import { type SelectionReport } from "./scan-behavioral.js"; /** Every report this entry can produce. */ type AnyReport = EvalReport | CheckReport | ArmsCheckReport | TriggerRateReport | SelectionReport; /** * How many trials this run should use, or `undefined` to leave the spec alone. * `vigiles eval --trials=N` arrives as `VIGILES_TRIALS`; a spec's own `trials` is * the default. Pure — exported for the tests. * * A non-numeric or non-positive value is IGNORED rather than treated as zero: a * typo'd `--trials=` must not silently turn a measurement into a no-op. */ export declare function trialsOverride(raw: string | undefined): number | undefined; /** * How many runs a report is built from, or `undefined` when the shape carries no * such count. Pure. Every measurement has one, but under two different names and * at two different depths, which is exactly why each eval file used to * hand-write its own `report.n === 0` check (and why several forgot to). */ export declare function runsIn(report: AnyReport): number | undefined; /** * The exit code of an eval file whose report has an unanswered stub call. Its * own code — not 2 (the CLI's usage error), 1 (a bad declaration, zero runs) or * 77 (skip) — so the runner can say WHICH cause it is from a code only this path * produces. `vigiles eval` itself exits {@link UNANSWERED_STUB_VERB_EXIT} for it. */ export declare const UNANSWERED_STUB_EXIT_CODE = 78; /** * What `vigiles eval` exits with when a file exited {@link UNANSWERED_STUB_EXIT_CODE}: * 2, the CLI's "error" — the run did not fail an assertion, it produced something * that is not a measurement. Documented in docs/cli.md. */ export declare const UNANSWERED_STUB_VERB_EXIT = 2; /** * The author-facing failure when a `runEval` report carries a stub call no rule * answered, or undefined. Only `runEval` has `stubs`. Pure — the rule itself is * `unansweredInReport`, which the lock's refusal reads too. */ export declare function unansweredFailure(kind: EvalKind, report: AnyReport, spec: unknown): string | undefined; /** * Why a finished run fails before its `assert` runs — with the exit code — or * undefined. Two reasons: it ran ZERO trials (exit 1; the check every file used * to hand-write), or a stub call went unanswered (exit 2). Pure. */ export declare function runFailure(file: string, kind: EvalKind, report: AnyReport, spec: unknown): { readonly code: number; readonly message: string; } | undefined; /** * `evalDriver` is only wired on `measureTriggerRate` — the only measurement with * a public driver seam. Naming it beside any other measurement is a mistake the * runner REFUSES rather than ignores: a field that silently does nothing would * send a Codex user's eval to Claude Code and report the number as theirs. */ export declare function driverMisplaced(kind: EvalKind, hasDriver: boolean): string | undefined; /** * The message for a file that is not a description. Separate from the flow so a * test can assert the WORDS — this is the ONLY thing an author sees when their * pre-migration eval file stops working, so it has to teach the new shape. */ export declare function notADescriptionMessage(file: string, why: string): string; /** The `why` line for each way a default export can fail to be a declaration. */ export declare function declarationProblem(d: { why: "not-a-definition" | "declares-nothing" | "declares-several"; kinds?: readonly EvalKind[]; }): string; export {}; //# sourceMappingURL=eval-entry.d.ts.map