import { ContentBlock } from "../messages/content/index.js"; import { UsageMetadata } from "../messages/metadata.js"; import { AIMessage } from "../messages/ai.js"; import { ChatModelStreamEvent } from "./event.js"; //#region src/language_models/stream.d.ts /** * A buffer that caches emitted events for replay. * * Multiple consumers can independently iterate the same buffer — * each gets its own cursor. Events are never consumed or removed. * * @internal */ declare class ReplayBuffer { private events; private finished; private waiters; private error; push(event: ChatModelStreamEvent): void; finish(): void; setError(err: Error): void; iterate(): AsyncGenerator; } /** * Typed stream for text content. * * - **Iterate**: yields incremental text deltas. * - **Await**: resolves to the complete concatenated text. * - **`.full`**: yields the running accumulated text after each delta. */ declare class TextContentStream implements AsyncIterable, PromiseLike { /** @internal */ private _buffer; /** @internal */ constructor(buffer: ReplayBuffer); /** Yields the accumulated text so far after each delta. */ get full(): AsyncIterable; /** Yields incremental text deltas. */ [Symbol.asyncIterator](): AsyncIterator; then(onfulfilled?: ((value: string) => TResult1 | PromiseLike) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike) | null): PromiseLike; } /** * Typed stream for tool calls. * * - **Iterate**: yields individual `ToolCall` objects as each completes. * - **Await**: resolves to the full array. * - **`.full`**: yields the accumulated array after each new tool call. */ declare class ToolCallsStream implements AsyncIterable, PromiseLike> { /** @internal */ private _buffer; /** @internal */ constructor(buffer: ReplayBuffer); get full(): AsyncIterable>; [Symbol.asyncIterator](): AsyncIterator; then, TResult2 = never>(onfulfilled?: ((value: Array) => TResult1 | PromiseLike) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike) | null): PromiseLike; } /** * Typed stream for reasoning content (chain-of-thought). * Same interface as {@link TextContentStream} but for reasoning blocks. */ declare class ReasoningContentStream implements AsyncIterable, PromiseLike { /** @internal */ private _buffer; /** @internal */ constructor(buffer: ReplayBuffer); get full(): AsyncIterable; [Symbol.asyncIterator](): AsyncIterator; then(onfulfilled?: ((value: string) => TResult1 | PromiseLike) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike) | null): PromiseLike; } /** * Typed stream for usage metadata. */ declare class UsageMetadataStream implements AsyncIterable, PromiseLike { /** @internal */ private _buffer; /** @internal */ constructor(buffer: ReplayBuffer); [Symbol.asyncIterator](): AsyncIterator; then(onfulfilled?: ((value: UsageMetadata | undefined) => TResult1 | PromiseLike) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike) | null): PromiseLike; } /** * The main stream object returned by chat model streaming. * * Implements `AsyncIterable` for raw event access * and `PromiseLike` for simple `await` usage. */ declare class ChatModelStream implements AsyncIterable, PromiseLike { /** @internal */ private _buffer; /** @internal */ constructor(source: AsyncIterable); /** @internal */ private _consume; [Symbol.asyncIterator](): AsyncIterator; get text(): TextContentStream; get toolCalls(): ToolCallsStream; get reasoning(): ReasoningContentStream; get usage(): UsageMetadataStream; get output(): PromiseLike; then(onfulfilled?: ((value: AIMessage) => TResult1 | PromiseLike) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike) | null): PromiseLike; /** @internal */ private _assembleMessage; } //#endregion export { ChatModelStream, ReasoningContentStream, TextContentStream, ToolCallsStream, UsageMetadataStream }; //# sourceMappingURL=stream.d.ts.map