import { TokenAccountingCheck } from "./retrieval-eval.types"; /** * Cross-checks a turn's reported token aggregate against the sum of the calls * actually observed for it. * * Spec §6.5. The `2C + A` reducer bug inflated every archived chat figure and * went unnoticed for a full measurement cycle; this check is what makes the * same class of bug loud instead of silent. Provider-reported per-call figures * are the source of truth. */ export declare class TokenAccountingChecker { private readonly logger; private observedInput; private observedOutput; /** Record one provider call's reported usage for the question in flight. */ observe(params: { input: number; output: number; }): void; /** * Clears the accumulator WITHOUT producing a verdict. * * For the question that never completed a turn: it has nothing to compare, but * it may still have deposited observations before it threw. Leaving them in * place attributes them to the NEXT question — which either invents a mismatch * that is not there or, worse, masks one that is. `check()` resets as a side * effect of comparing; this is the same reset for the path that cannot compare. */ reset(): void; /** Compare and RESET, so the next question starts clean. */ check(params: { questionId: string; ledger: { input: number; output: number; }; }): TokenAccountingCheck; } //# sourceMappingURL=token-accounting.check.d.ts.map