import type { LanguageModelUsage } from "ai";
type UsageLike = {
    [K in "inputTokens" | "outputTokens" | "totalTokens" | "cachedInputTokens"]?: LanguageModelUsage[K];
} & {
    inputTokenDetails?: Partial<NonNullable<LanguageModelUsage["inputTokenDetails"]>>;
};
export declare function getNonCachedInputTokens(usage: UsageLike): number;
export declare function getTotalInputTokens(usage: UsageLike): number;
/**
 * Tokens consumed against the model's input context window, for display in the
 * UI's context-usage indicator. This is the sum of fresh, cache-read, and
 * cache-write input tokens — cache reads/writes occupy the input window just
 * like fresh input (cache is a cost discount, not a context-window discount).
 *
 * Excludes outputTokens and reasoningTokens: those do not consume the input
 * window. (Note: for Anthropic, extended-thinking tokens are bundled inside
 * `output_tokens` in the raw API response and are not separately surfaced as
 * `reasoningTokens` by @ai-sdk/anthropic, so this function's exclusion of
 * reasoning tokens is defensive for other providers.)
 */
export declare function computeContextUsed(usage: UsageLike): number;
export declare function isOverflow(usage: LanguageModelUsage, contextLimit: number, outputReserve: number): boolean;
export declare function getTotalTokens(usage: LanguageModelUsage): number;
export {};
//# sourceMappingURL=token-tracker.d.ts.map