import type { ProviderStreamEvent } from "./plugin-types.js"; import type { RunContext } from "./run-context.js"; import type { AcpEvent, AcpHost, ToolResultPart } from "./types.js"; export type AcpModelToolDefinition = { name: string; description?: string; inputSchema?: unknown; }; export type AcpModelResponse = { events: AsyncIterable; }; export type AcpModelRequestMessage = { role: "system" | "user" | "assistant" | "tool"; content: string | ToolResultPart[]; reasoning_content?: string; reasoning?: string; thinking?: Array<{ text: string; signature?: string; }>; redacted_thinking?: Array<{ data: string; }>; reasoning_details?: unknown[]; name?: string; tool_call_id?: string; tool_calls?: Array<{ id: string; type: "function"; function: { name: string; arguments: string; }; }>; }; export type AcpModel = { complete(request: { messages: AcpModelRequestMessage[]; tools: AcpModelToolDefinition[]; signal: AbortSignal; }): Promise; }; export type RunAcpCoreOptions = { prompt: string; runContext: RunContext; host: AcpHost; model: AcpModel; baseSystemPrompt?: string; maxIterations?: number; signal?: AbortSignal; onPromptSubmitted?(prompt: string): void | Promise; disposeRun?(): void | Promise; }; export declare function runAcpCore(options: RunAcpCoreOptions): AsyncIterable;