/**
 * Provider-agnostic agent loop — streams LLM responses, collects tool calls,
 * executes them via a caller-provided executor, and iterates.
 *
 * The loop never touches provider internals. Adding a new provider (Codex,
 * Gemini, etc.) requires zero loop changes — just implement AgentProvider.
 */
import type { AgentProvider, AgentMessage, ToolDefinition, ToolExecutor, AgentLoopOptions, AgentLoopResult } from './types.js';
export declare function runAgentLoop(provider: AgentProvider, tools: ToolDefinition[], executor: ToolExecutor, messages: AgentMessage[], options?: AgentLoopOptions): Promise<AgentLoopResult>;
//# sourceMappingURL=agent-loop.d.ts.map