import type { MeasureKind } from "./rule-measure-kind.js"; export interface RuleMeasurement { ruleId: string; kind: MeasureKind; nSamples: number; /** Total findings harvested before the detection sampling cap was applied. * Populated only for detection rules when a cap was applied (nTotal > nSamples). * Absent for structural/render-only rules. */ nTotal?: number; precisionMeasured: number | null; precisionWilsonLowerBound: number | null; recallSynthetic: number | null; labelSource: "auto" | "llm-provisional" | "human-validated" | "none"; verdict: "promotable" | "walled" | "pending-human" | "not-measured"; } export declare function buildReport(perRule: RuleMeasurement[]): { md: string; json: RuleMeasurement[]; };