import type { ChatFinishReason } from "../../chat/protocol.js"; import type { ChatUiMessage, ChatUiMessageChunk, MessageMetadata } from "../../chat/types.js"; /** Public API contract for chat UI message stream finish part. */ export type ChatUiMessageStreamFinishPart = { type: "finish"; finishReason: ChatFinishReason; rawFinishReason: ChatFinishReason; totalUsage: { 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"; }; }; /** Public API contract for chat UI message stream finish. */ export type ChatUiMessageStreamFinish = { messages: Array>; isContinuation: false; responseMessage: ChatUiMessage; isAborted: false; finishReason: ChatFinishReason; }; /** Options accepted by chat UI message stream. */ export type ChatUiMessageStreamOptions = { generateMessageId?: () => string; sendReasoning?: boolean; onError?: (error: unknown) => string; messageMetadata?: (input: { part: ChatUiMessageStreamFinishPart; }) => TMessageMetadata | undefined; onFinish?: (finish: ChatUiMessageStreamFinish) => void | Promise; onOrphanedToolInput?: (input: { toolCallId: string; inputText: string; }) => void; }; /** Create chat UI message stream from data stream. */ export declare function createChatUiMessageStreamFromDataStream(input: { stream: ReadableStream; }, options?: ChatUiMessageStreamOptions): AsyncIterable>; //# sourceMappingURL=chat-ui-message-stream.d.ts.map