/**
 * Claude Launcher — Concern H
 *
 * Handles final argument assembly, trace context injection, Windows shell
 * escaping, spawning the Claude CLI process, starting the runtime quota
 * monitor, and wiring up cleanup handlers.
 */
/// <reference types="node" />
/// <reference types="bun-types" />
/// <reference types="node" />
import { ChildProcess } from 'child_process';
import { CLIProxyProvider, ExecutorConfig } from '../types';
import { CodexReasoningProxy } from '../ai-providers/codex-reasoning-proxy';
import { ToolSanitizationProxy } from '../proxy/tool-sanitization-proxy';
import { HttpsTunnelProxy } from '../proxy/https-tunnel-proxy';
export interface ClaudeLaunchContext {
    /** Path to the Claude CLI executable */
    claudeCli: string;
    /** Pre-filtered Claude args (CCS flags already stripped) */
    claudeArgs: string[];
    /** Fully assembled environment variables (without trace additions) */
    env: NodeJS.ProcessEnv;
    /** Resolved executor config */
    cfg: ExecutorConfig;
    /** Active CLIProxy provider */
    provider: CLIProxyProvider;
    /** Providers derived from composite tiers (empty for simple providers) */
    compositeProviders: CLIProxyProvider[];
    /** Whether local OAuth was skipped (remote proxy auth in use) */
    skipLocalAuth: boolean;
    /** Session ID for cleanup tracking */
    sessionId: string | undefined;
    /** Whether image analysis MCP is ready */
    imageAnalysisMcpReady: boolean;
    /** Browser runtime environment variables (undefined if browser not active) */
    browserRuntimeEnv: NodeJS.ProcessEnv | undefined;
    /** Inherited Claude config dir for continuity */
    inheritedClaudeConfigDir: string | undefined;
    /** Active Codex reasoning proxy (if any) */
    codexReasoningProxy: CodexReasoningProxy | null;
    /** Active tool sanitization proxy (if any) */
    toolSanitizationProxy: ToolSanitizationProxy | null;
    /** Active HTTPS tunnel proxy (if any) */
    httpsTunnel: HttpsTunnelProxy | null;
    /** Whether verbose logging is enabled */
    verbose: boolean;
}
/**
 * Assemble final Claude CLI arguments, inject trace context, spawn the process,
 * start the runtime quota monitor, and wire cleanup handlers.
 *
 * @returns The spawned ChildProcess for the Claude CLI.
 */
export declare function launchClaude(context: ClaudeLaunchContext): Promise<ChildProcess>;
//# sourceMappingURL=claude-launcher.d.ts.map