/** numerator/denominator, or null on a zero denominator (undefined, never a silent 0). */ export declare function ratio(numerator: number, denominator: number): number | null; /** Percent render for a scorecard cell; null → "n/a". */ export declare function pct(value: number | null): string; /** * Which way a metric has to move to count as a regression. * - `lower-is-better` (hallucination RATE): regressed when the current value RISES. * - `higher-is-better` (cache-hit RATIO): regressed when the current value FALLS. */ export type RegressionDirection = "higher-is-better" | "lower-is-better"; /** * The single gate predicate both oracles draw from: did `current` regress against * `baseline`, in the given direction? `epsilon` absorbs floating-point noise so a * byte-identical re-run never trips. * * - A `null` current value carries no signal and cannot regress. * - A `null` baseline is treated as 0 — the floor a ratio cannot drop below * (`higher-is-better` never trips), and the floor any positive rate exceeds * (`lower-is-better` trips on any positive current). */ export declare function valueRegressed(current: number | null, baseline: number | null | undefined, direction: RegressionDirection, epsilon?: number): boolean; //# sourceMappingURL=scoreShared.d.ts.map