@tanstack/ai
Version:
Type-safe TypeScript AI SDK for streaming chat, tool calling, agents, structured outputs, and multimodal generation.
25 lines (24 loc) • 1.11 kB
TypeScript
import { TokenUsage } from '../types.js';
/** AG-UI spec `usage[]` item (provider/model labels + token counts only). */
export interface SpecTokenUsage {
provider?: string;
model?: string;
inputTokens?: number;
outputTokens?: number;
totalTokens?: number;
reasoningTokens?: number;
cachedInputTokens?: number;
}
export interface ToSpecTokenUsageOptions {
provider?: string;
model?: string;
}
/** TokenUsage fields that have no AG-UI `usage[]` equivalent. */
export type TokenUsageLeftover = Omit<TokenUsage, 'promptTokens' | 'completionTokens' | 'totalTokens'>;
export declare function isTanstackUsage(usage: unknown): usage is TokenUsage;
export declare function toSpecTokenUsage(usage: TokenUsage, options?: ToSpecTokenUsageOptions): {
usage: Array<SpecTokenUsage>;
leftover?: TokenUsageLeftover;
};
export declare function rebuildTokenUsage(usage: unknown, leftover?: TokenUsageLeftover): TokenUsage | undefined;
export declare function fromSpecTokenUsage(usage: ReadonlyArray<SpecTokenUsage> | undefined, leftover?: TokenUsageLeftover): TokenUsage | undefined;