/**
 * dispatch_agent (L3 DISPATCH) — LISA launches another CLI agent with a task
 * and tracks it, turning observation into orchestration.
 *
 * Each supported agent has a non-interactive ("headless") invocation:
 *   claude    → claude -p "<task>"
 *   codex     → codex exec "<task>"
 *   opencode  → opencode run "<task>"
 *   aider     → aider --message "<task>" --yes
 *
 * The agent is spawned detached so it keeps running independently; it then
 * shows up in the orchestrator hub via its normal session file (the same
 * path the observers already watch). This tool returns immediately with a
 * handle — it does NOT block on completion.
 *
 * SAFETY: spawning an autonomous agent is an explicit-permission action
 * (it can read/write files + run commands). The tool surfaces the exact
 * argv it will run; the host's approval layer (ToolContext.onObjection /
 * the approval mode) gates it. The task string is passed as a single argv
 * element — never interpolated into a shell — so there's no shell-injection
 * surface (same lesson as the iMessage argv fix).
 */
import type { ToolDefinition } from "../types.js";
interface DispatchInput {
    agent: "claude" | "codex" | "opencode" | "aider";
    task: string;
    cwd?: string;
    /** Override the L4 same-cwd conflict guard (default false). */
    force?: boolean;
}
/** Build the argv for an agent's headless invocation. Pure + tested. */
export declare function buildDispatchArgv(agent: DispatchInput["agent"], task: string): {
    cmd: string;
    args: string[];
};
export declare const dispatchAgentTool: ToolDefinition<DispatchInput, string>;
export {};
//# sourceMappingURL=dispatch_agent.d.ts.map