import type { LlmStreamEvent, ProviderConfig, ProviderMessage, ProviderTool, ProviderToolCall } from "./types.js"; import type { ToolLoopParams } from "./toolLoop.js"; export interface LlmDriverStreamParams { messages: ProviderMessage[]; tools: ProviderTool[]; signal?: AbortSignal; } export interface LlmDriverCompleteParams extends LlmDriverStreamParams { messages: ProviderMessage[]; tools: ProviderTool[]; signal?: AbortSignal; } export interface LlmDriverCompleteResult { text: string; toolCalls: ProviderToolCall[]; } /** Pluggable LLM backend for the native tool loop. */ export interface LlmDriver { readonly managesToolLoop?: boolean; stream(params: LlmDriverStreamParams): AsyncGenerator; complete(params: LlmDriverCompleteParams): Promise; streamToolLoop?(params: ToolLoopParams): AsyncGenerator; runToolLoopNonStreaming?(params: ToolLoopParams): Promise<{ content: string; toolCalls: { toolName: string; args: Record; result: unknown; }[]; }>; } export declare function createLlmDriver(config: ProviderConfig): LlmDriver; //# sourceMappingURL=driver.d.ts.map