import type { AgentEvent, Provider, ProviderMessage, ProviderRequest, ProviderResponseFormat, ProviderUsage } from "../providers/ProviderTypes.js"; import { ToolRegistry } from "../tools/ToolRegistry.js"; import type { ToolContext } from "../tools/ToolTypes.js"; import type { RunLogger } from "./RunLogger.js"; export interface RunnerOptions { provider: Provider; tools: ToolRegistry; context: ToolContext; maxSteps: number; maxToolCalls: number; maxTokens?: number; temperature?: number; responseFormat?: ProviderResponseFormat; toolChoice?: ProviderRequest["toolChoice"]; stream?: boolean; onEvent?: (event: AgentEvent) => void; onToken?: (token: string) => void; streamFlushMs?: number; timeoutMs?: number; logger?: RunLogger; } export interface RunnerResult { finalMessage: ProviderMessage; messages: ProviderMessage[]; toolCallsExecuted: number; usage?: ProviderUsage; } export type RunnerBudgetReasonCode = "runner_timeout_exceeded" | "runner_tool_call_limit_exceeded" | "runner_step_limit_exceeded"; export declare class RunnerBudgetError extends Error { readonly code: RunnerBudgetReasonCode; readonly metadata: { reason_code: RunnerBudgetReasonCode; step: number; tool_calls_executed: number; max_steps: number; max_tool_calls: number; timeout_ms?: number; }; constructor(code: RunnerBudgetReasonCode, metadata: { step: number; tool_calls_executed: number; max_steps: number; max_tool_calls: number; timeout_ms?: number; }); } export declare class Runner { private provider; private tools; private context; private maxSteps; private maxToolCalls; private maxTokens?; private temperature?; private responseFormat?; private toolChoice?; private stream?; private onEvent?; private onToken?; private streamFlushMs?; private timeoutMs?; private logger?; constructor(options: RunnerOptions); run(initialMessages: ProviderMessage[]): Promise; } //# sourceMappingURL=Runner.d.ts.map