import { z } from "zod"; import type { TimeoutOptions as TimeoutOptionsType, RetryNotification } from "./timeout-utils"; export declare class Signal { private _value; constructor(_value?: boolean); set(): void; clear(): void; isSet(): boolean; private _resolver?; waitUntilReset(): Promise; } export declare class BaseModel { generateText(options: GenerateTextOptions): Promise; } export type TokenUsage = { inputTokens: number; outputTokens: number; totalTokens: number; cachedInputTokens: number; cacheCreationInputTokens: number; reasoningTokens: number; apiCalls: number; }; export declare function createEmptyTokenUsage(): TokenUsage; export type generateTextReturn = { addedMessages: BaseMessage[]; text: string; usage: TokenUsage; }; export type BaseSystemMessage = { role: "system"; text: string; }; export type BaseTextMessage = { role: "user" | "assistant"; text: string; thoughtSignature?: string; }; export type BaseImageMessage = { role: "user" | "assistant"; content: { type: "image_url"; image_url: { url: string; detail?: "auto" | "high" | "low"; }; }[]; }; export type BaseAudioMessage = { role: "user"; content: { type: "audio_url"; audio_url: { mime_type: string; data: string; }; }[]; }; export type BaseVideoMessage = { role: "user"; content: { type: "video_url"; video_url: { mime_type: string; data: string; }; }[]; }; export type BaseToolCall = { role: "assistant"; functionCall: { id: string; name: string; args: any; }; thoughtSignature?: string; }; export type BaseToolResponse = { role: "function"; functionResponse: { id: string; name: string; response: any; }; }; export type BaseMessage = BaseSystemMessage | BaseTextMessage | BaseImageMessage | BaseAudioMessage | BaseVideoMessage | BaseToolCall | BaseToolResponse; export type BaseToolOptions = { forceStop?: boolean; }; export type BaseTool = { description: string; parameters: z.AnyZodObject; execute: (args: any, options: BaseToolOptions) => any; }; export type TimeoutOptions = TimeoutOptionsType; export type { RetryNotification }; export type GenerateTextOptions = { model: BaseModel; messages?: BaseMessage[]; maxToolRoundtrips?: number; tools?: Record; toolChoice?: "auto" | "none" | "required"; stopSignal?: Signal; timeoutOptions?: TimeoutOptions; textMessageGenerated?: (message: BaseTextMessage) => Promise; }; export declare function generateText(options: GenerateTextOptions): Promise; //# sourceMappingURL=AIBase.d.ts.map