/** * CI gate — classifies diff issues by severity for scan --check. */ import type { SutraDiff } from "./diff.js"; import type { Severity, SutraIssue, SutraGraph } from "./types.js"; export interface GateResult { exitCode: number; newErrors: SutraIssue[]; newWarns: SutraIssue[]; newInfos: SutraIssue[]; resolvedCount: number; graphVersion: number; diff: SutraDiff; } export declare class GraphVersionMismatchError extends Error { readonly baselineVersion: number; readonly currentVersion: number; constructor(baselineVersion: number, currentVersion: number); } /** Severity rank for --fail-on threshold (higher = more severe). */ export declare function severityRank(severity: Severity): number; export declare function assertGraphVersionsMatch(baseline: SutraGraph, current: SutraGraph): void; /** Partition new issues and compute exit code from diff (issues only). */ export declare function gateFromDiff(diff: SutraDiff, opts: { failOn: Severity; }): GateResult; /** Human-readable gate summary (candidate language). */ export declare function formatGateSummary(result: GateResult): string; export interface GateJsonOutput { graphVersion: number; exitCode: number; newErrors: SutraIssue[]; newWarns: SutraIssue[]; newInfos: SutraIssue[]; resolvedCount: number; diff: SutraDiff; } export declare function gateToJson(result: GateResult): GateJsonOutput;