import type { CostEstimate } from '../types/planning.js'; /** * Currency and cost-budget enforcement, with no dependency on the model registry. * * Split out of `optimizer/cost.ts` because enforcing a budget only compares two numbers, while * looking a price up needs the 101-model catalogue. Keeping them in one module meant every family * that merely enforces a budget — embeddings among them — dragged 30 KB of model data into its * import graph to do arithmetic. `optimizer/cost.ts` re-exports everything here, so no public * import changes. * * Distinct from `optimizer/budget.ts`, which enforces *token* budgets on a request before it is * sent. This module deals in money after a usage figure exists. */ export declare const DEFAULT_CURRENCY = "USD"; /** Raised when a request's estimated cost exceeds its budget. */ export declare class CostBudgetError extends Error { constructor(message: string); } /** Formats an amount the way `ResponseMeta.estimatedCost` has always presented it. */ export declare function formatCost(amount: number): string; /** Throws `CostBudgetError` when an estimate exceeds the budget. Does nothing without a budget. */ export declare function assertWithinCostBudget(estimate: CostEstimate, maxEstimatedCost?: number): void;