import type { ChatStopReason, StreamDelta } from './interface.js'; import type { OpenAIToolCall } from './tool-formats.js'; import { fromOpenAIToolCalls } from './tool-formats.js'; /** Accumulated state for one streaming tool-call slot. */ export interface OpenAIToolCallSlot { id: string; name: string; args: string; } /** Usage fields found on OpenAI streaming chunks. */ export interface OpenAIChunkUsage { prompt_tokens?: number | undefined; completion_tokens?: number | undefined; prompt_tokens_details?: { cached_tokens?: number; } | undefined; } /** * Update the tool-call accumulator map with one streaming tool_call delta. * Fires onDelta if provided. */ export declare function accumOpenAIToolCall(acc: Map, tc: { index: number; id?: string | undefined; function?: { name?: string | undefined; arguments?: string | undefined; } | undefined; }, onDelta: ((delta: StreamDelta) => void) | undefined): void; /** * Finalise accumulated tool-call slots into the raw OpenAI wire format, * sorted by stream index. */ export declare function finalizeOpenAIToolCalls(acc: Map): OpenAIToolCall[]; /** * Apply token counts from a streaming chunk's usage field. * Absent fields keep the value from current (so initial 0 stays 0 * if the provider never sends those fields). */ export declare function applyOpenAIChunkUsage(usage: OpenAIChunkUsage | null | undefined, current: { inputTokens: number; outputTokens: number; cacheReadTokens: number; }): { inputTokens: number; outputTokens: number; cacheReadTokens: number; }; /** * Convert finalized raw tool-calls to canonical form and apply the text-based * tool-call fallback for models that emit tool calls as raw text tokens. * * Returns the final toolCalls list plus (possibly mutated) response text, * stop reason, and raw stop reason. */ export declare function resolveOpenAIToolCallsAndFallback(rawToolCalls: OpenAIToolCall[], responseText: string, stopReason: ChatStopReason, rawStopReason: string | undefined): { toolCalls: ReturnType; responseText: string; stopReason: ChatStopReason; rawStopReason: string | undefined; }; //# sourceMappingURL=openai-stream-helpers.d.ts.map