import type { AgUiRuntimeStreamEvent } from "./encoder.js"; import type { ChatFinishReason, ChatStreamEvent } from "../../chat/protocol.js"; /** Usage metadata captured from an AG-UI runtime finish event. */ export type AgUiRuntimeChatStreamUsage = { inputTokens: number; outputTokens: number; totalTokens: number; inputTokenDetails: { noCacheTokens?: number; cacheReadTokens?: number; cacheWriteTokens?: number; }; outputTokenDetails: { textTokens?: number; reasoningTokens?: number; }; billableInputTokens?: number; billableOutputTokens?: number; costUsd?: number; providerInputCostUsd?: number; providerOutputCostUsd?: number; providerCostUsd?: number; veryfrontInputChargeUsd?: number; veryfrontOutputChargeUsd?: number; veryfrontChargeUsd?: number; veryfrontBilledUsd?: number; costCredits?: number; costSource?: "gateway" | "missing" | "partial"; billingMode?: "direct" | "deferred"; usageCaptureStatus?: "complete" | "partial" | "missing"; }; /** State for AG-UI runtime chat stream encoder. */ export interface AgUiRuntimeChatStreamEncoderState { isStepOpen: boolean; finishReason: ChatFinishReason; totalUsage: AgUiRuntimeChatStreamUsage | null; } /** Public API contract for AG-UI runtime chat stream encoder. */ export interface AgUiRuntimeChatStreamEncoder { state: AgUiRuntimeChatStreamEncoderState; encode: (event: AgUiRuntimeStreamEvent) => ChatStreamEvent[]; } /** Options accepted by create AG-UI runtime chat stream encoder. */ export interface CreateAgUiRuntimeChatStreamEncoderOptions { responseMessageId: string; sendReasoning?: boolean; onError?: (error: unknown) => string; } /** Create AG-UI runtime chat stream encoder. */ export declare function createAgUiRuntimeChatStreamEncoder(options: CreateAgUiRuntimeChatStreamEncoderOptions): AgUiRuntimeChatStreamEncoder; //# sourceMappingURL=runtime-chat-stream-encoder.d.ts.map