/** * `src/services/observability/results-baseline-rows.ts` * * WHY THIS MODULE EXISTS. The published rows and the old-vs-new metric * comparison are the two parts of the results baseline that decide what a * reader is shown, and both are big enough to push the computation module * over the repository's 300 raw-line file-size cap. * * THE RULE THE ROWS OBEY. Every published row is a RATE or a PEAK. A raw * count that grows with the number of slices ever recorded is a population * descriptor, not a baseline row — those live in their own block of the * artifact, and a reader must never mistake one for the other. * * THE RULE THE COMPARISON OBEY. Version 1 of the repair-cycle metric counted * qa-role slice-transition events — QA's own internal state transitions, * doubled by the duplicate emission — and was never a repair-cycle count. * Version 2 counts repair cycles. The two are recorded side by side so the * historical numbers are read as a DIFFERENT MEASUREMENT, not as a * regression. */ import type { RepairCycleReport, StatusAggregate } from './aggregation-types.js'; import type { BaselineRow, ResultsBaseline } from './results-baseline.js'; /** * The published rows. Every one of them is a RATE or a PEAK: a raw count that * grows with the number of slices ever recorded is a population descriptor, * not a baseline row. */ export declare function baselineRows(status: StatusAggregate, cycles: RepairCycleReport, slices: number): BaselineRow[]; /** * The old-vs-new comparison, recorded so a reader sees that the historical * numbers were a DIFFERENT MEASUREMENT and not a regression. */ export declare function metricComparison(cycles: RepairCycleReport, slices: number): ResultsBaseline['metricComparison'];