import type { ProviderId } from "../types.js"; import type { ChatMessage } from "../types.js"; export interface TokenUsage { readonly promptTokens: number; readonly promptTokensKnown?: false | undefined; readonly completionTokens: number; readonly totalTokens: number; readonly exact: boolean; readonly cachedPromptTokens?: number | undefined; readonly cacheCreationTokens?: number | undefined; readonly uncachedPromptTokens?: number | undefined; readonly reasoningTokens?: number | undefined; readonly reasoningObserved?: true | undefined; } export interface CompatibleUsageAliases { readonly promptTokens?: string | undefined; readonly completionTokens?: string | undefined; readonly totalTokens?: string | undefined; readonly cachedPromptTokens?: string | undefined; readonly cacheCreationTokens?: string | undefined; readonly uncachedPromptTokens?: string | undefined; readonly reasoningTokens?: string | undefined; } export interface ContextUsageSnapshot { readonly contextTokens: number; readonly contextLimit: number; readonly lastCompletionTokens: number; readonly sessionPromptTokens: number; readonly sessionCompletionTokens: number; readonly exact: boolean; } export declare function isRecord(value: unknown): value is Record; export declare function nonNegInt(value: unknown): number | undefined; export declare function numericPathValue(raw: unknown, path: string): number | undefined; export declare function configuredPath(aliases: CompatibleUsageAliases | undefined, counter: UsageCounter): string | undefined; export declare function knownPrompt(usage: TokenUsage | undefined): usage is TokenUsage; export declare function firstDefined(values: readonly (T | undefined)[]): T | undefined; export declare function normalizeTokenUsage(input: { promptTokens?: number | undefined; completionTokens?: number | undefined; totalTokens?: number | undefined; exact?: boolean | undefined; cachedPromptTokens?: number | undefined; cacheCreationTokens?: number | undefined; uncachedPromptTokens?: number | undefined; reasoningTokens?: number | undefined; reasoningObserved?: boolean | undefined; }): TokenUsage | undefined; export declare function withReasoningObservation(usage: TokenUsage | undefined, observed: boolean): TokenUsage | undefined; export declare function effectivePromptTokens(usage: TokenUsage | undefined): number | undefined; export declare function estimateUsageFromMessages(messages: readonly ChatMessage[]): TokenUsage; import { UsageCounter } from "./usage/provider-parsers.js"; export { mergeAnthropicStreamUsage, parseAnthropicUsage, parseFireworksUsage, parseGeminiUsage, parseOllamaUsage, parseOpenAiUsage, } from "./usage/provider-parsers.js"; export { modelContextWindow, providerContextOverrideTokens, } from "./context-windows.js"; export declare function formatTokenCount(n: number, compact?: boolean): string; export declare function formatContextChip(snapshot: ContextUsageSnapshot, opts?: { compact?: boolean; }): string; export declare function applyUsageToSnapshot(prev: ContextUsageSnapshot | undefined, usage: TokenUsage, contextLimit: number): ContextUsageSnapshot; export declare function snapshotFromEstimate(messages: readonly ChatMessage[], model: string | undefined, provider?: ProviderId | undefined, prev?: ContextUsageSnapshot | undefined): ContextUsageSnapshot;