import type { Usage } from '../../../../src/execution/Usage'; import type { ModelPricing } from './modelPricing'; /** * Options for estimating the usage of one harness run. */ export type EstimateUsageFromTextLengthOptions = { /** * Human-readable harness name used when the estimation itself fails. */ readonly harnessLabel: string; /** * The prompt that was sent to the harness. */ readonly prompt: string; /** * The output which the harness has printed. */ readonly output: string; /** * Reads the pricing of the model which was used for this run. * * It is resolved lazily so that a broken pricing table degrades to an uncertain estimate * instead of failing the coding round, because a price estimate must never block coding work. */ readonly resolvePricing: () => ModelPricing; }; /** * Estimates the usage of one harness run from the length of its prompt and its output. * * Harnesses which do not report their own token counts are billed per token anyway, so the * character counts are the only signal available for a price estimate. */ export declare function estimateUsageFromTextLength(options: EstimateUsageFromTextLengthOptions): Usage;