/** A single usage record: one model and the tokens it consumed in each direction. */
export interface TokenUsage {
    model?: string;
    inputTokens?: number;
    outputTokens?: number;
    cacheReadTokens?: number;
    cacheCreationTokens?: number;
}
/**
 * USD cost of one usage record. Returns 0 when the model is missing or unpriced
 * (cost is additive — an unknown model contributes nothing, not NaN). Cache
 * read/write tokens are priced at their dedicated rates when the table exposes
 * them, otherwise they fall back to the input rate (the standard LiteLLM
 * convention for models that don't publish a separate cache price).
 */
export declare function costOfUsage(u: TokenUsage): number;
/**
 * USD cost of one usage record priced as if caching were OFF: cache-read and
 * cache-write tokens are billed at the model's full INPUT rate rather than their
 * discounted cache rates. This is the "what would this have cost with no prompt
 * caching?" scenario that `agents insights output --pricing no-cache` models. Output and
 * uncached input are unchanged — only the cache tokens are repriced. Returns 0
 * for a missing/unpriced model, exactly like {@link costOfUsage}.
 */
export declare function costOfUsageNoCache(u: TokenUsage): number;
/** Sum the USD cost of every usage record in a session. */
export declare function costOfSession(usages: TokenUsage[]): number;
/**
 * Format a USD amount for human display. Cents-precise, with a "<$0.01" floor
 * so tiny-but-nonzero sessions don't render as "$0.00" and read as free.
 */
export declare function formatUsd(usd: number): string;
/** Token bundle accepted by the #346 estimator/actual-cost helpers. */
interface EstimatorTokens {
    inputTokens: number;
    outputTokens: number;
    cacheReadTokens?: number;
    cacheCreationTokens?: number;
}
/**
 * Pre-flight cost estimate for a model + token bundle (issue #346's budget
 * gate). Returns the resolved canonical model id (`modelMatched`) so callers
 * can warn when an estimate fell back to $0 because the model is unpriced.
 */
export declare function estimateCost(model: string, tokens: EstimatorTokens): {
    usd: number;
    modelMatched: string | null;
};
/** Actual (post-hoc) cost of a model + observed usage. Thin alias over costOfUsage. */
export declare function actualCost(model: string, usage: EstimatorTokens): {
    usd: number;
};
/** True when the model resolves to a priced entry in the table. */
export declare function isModelPriced(model: string): boolean;
export {};
