import type { AgencyConfig } from "../../config/config.js"; /** `eval.limits.maxBatchCostUsd`, or undefined when the config sets no * batch-wide cap. Unlike the per-run cap there is no default: a suite's * size is the user's, so is its budget. */ export declare function batchCostCapFromConfig(config: AgencyConfig): number | undefined; export type BatchBudget = { /** Record one finished run's spend; true when this crossed the cap. */ add(costUsd: number): boolean; exhausted(): boolean; spentUsd(): number; exceededMessage(): string; }; /** Spend across one `eval run` invocation, summed from finished runs. The * suite stops STARTING runs once the cap is crossed; runs already in flight * finish under their own per-run cap, so the worst case is the batch cap * plus `parallel` per-run caps. */ export declare function makeBatchBudget(capUsd: number | undefined): BatchBudget; /** A finished run's LLM spend, read from its statelog; 0 when it left none. */ export declare function runCostUsd(statelogPath: string | null): number;