/**
 * runAgent — local-process agent runner. The TypeScript equivalent of the
 * backend's run_simple_agent().
 *
 * Takes a config (system prompt, tools, model) + query, runs the
 * chat → tools → check loop to completion, returns the result. No AgentSession,
 * no extensions, no persistence, no TUI.
 *
 * Use cases:
 *  - Subagent child processes
 *  - Local agent that mirrors what the server does
 *  - Tests that need a real agent loop without app infrastructure
 */
import type { Message, Model } from '../ai/types.js';
import { type AgentEngineOptions } from '../core/agent-engine.js';
import type { AgentLoopEvent, AgentMessage, StreamFn, ThinkingLevel, ToolDefinition } from '../core/core-types.js';
export interface RunAgentConfig {
    systemPrompt: string;
    tools: ToolDefinition[];
    model: Model<any>;
    thinkingLevel?: ThinkingLevel;
    convertToLlm?: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;
    getApiKey?: (provider: string) => Promise<string | undefined> | string | undefined;
    onEvent?: (event: AgentLoopEvent) => void;
    streamFn?: StreamFn;
    signal?: AbortSignal;
    requestAssistantResponse?: AgentEngineOptions['requestAssistantResponse'];
}
export interface RunAgentResult {
    messages: AgentMessage[];
    finalContent: string;
    error?: string;
    cancelled: boolean;
}
export declare function runAgent(config: RunAgentConfig, query: string): Promise<RunAgentResult>;
//# sourceMappingURL=run-agent.d.ts.map