import { O as Tool, a as AssistantMessageEventStreamContract, i as AssistantMessageEvent, k as ToolCall, r as AssistantMessage } from "./types-TBVs22cZ.js";

//#region packages/llm-core/src/utils/event-stream.d.ts
declare class EventStream<T, R = T> implements AsyncIterable<T> {
  private queue;
  private waiting;
  private done;
  private finalResultPromise;
  private resolveFinalResult;
  private isComplete;
  private extractResult;
  constructor(isComplete: (event: T) => boolean, extractResult: (event: T) => R);
  push(event: T): void;
  end(result?: R): void;
  [Symbol.asyncIterator](): AsyncIterator<T>;
  result(): Promise<R>;
}
declare class AssistantMessageEventStream extends EventStream<AssistantMessageEvent, AssistantMessage> implements AssistantMessageEventStreamContract {
  constructor();
}
/** Factory function for AssistantMessageEventStream (for use in extensions) */
declare function createAssistantMessageEventStream(): AssistantMessageEventStream;
//#endregion
//#region packages/llm-core/src/validation.d.ts
declare function validateToolCall(tools: Tool[], toolCall: ToolCall): unknown;
declare function validateToolArguments(tool: Tool, toolCall: ToolCall): unknown;
//#endregion
export { createAssistantMessageEventStream as a, EventStream as i, validateToolCall as n, AssistantMessageEventStream as r, validateToolArguments as t };