/**
 * ExternalCliAdapter — generic factory for AgentRuntime implementations
 * that delegate to an external CLI tool.
 */
import type { AgentRuntime, AgentRunResult, RuntimeCapabilities } from "./agent-runtime.js";
import type { ContextCapsule } from "./context-capsule.js";
import { type ShellResult } from "../util/shell.js";
export type ExternalCliPromptTransport = "argv" | "stdin" | "tempfile";
export interface ExternalCliPromptContext {
    readonly promptFile?: string;
    readonly promptEnvName: string;
}
export interface ExternalCliAdapterOptions {
    id: string;
    displayName: string;
    bin: string;
    cwd?: string;
    env?: Record<string, string>;
    timeoutMs?: number;
    priority: number;
    capabilities: RuntimeCapabilities;
    promptTransport?: ExternalCliPromptTransport;
    promptFileEnvName?: string;
    buildArgs: (capsule: ContextCapsule, promptContext: ExternalCliPromptContext) => string[];
    buildInput?: (capsule: ContextCapsule) => string | undefined;
    buildEnv?: (capsule: ContextCapsule) => Record<string, string>;
    parseResult?: (shellResult: ShellResult, capsule: ContextCapsule) => AgentRunResult;
}
export declare function createExternalCliAdapter(options: ExternalCliAdapterOptions): AgentRuntime;
