/**
 * ClaudeCodeExecutor - Claude Code 执行器
 * 参考 Rust 实现: crates/executors/src/executors/claude.rs
 */
import { AgentType } from '../types/index.js';
import { BaseExecutor, AvailabilityInfo, AgentCapability, ExecutorSpawnConfig, SpawnedChild } from './base.executor.js';
import { CommandBuilder, CmdOverrides } from './command-builder.js';
/**
 * Claude Code 权限模式
 */
export declare enum PermissionMode {
    /** 默认模式 - 需要审批 */
    Default = "default",
    /** 计划模式 - 只有 ExitPlanMode 需要审批 */
    Plan = "plan",
    /** 绕过权限 - 自动批准所有操作 */
    BypassPermissions = "bypassPermissions"
}
/**
 * Claude Code 配置
 */
export interface ClaudeCodeConfig {
    /** 追加到 prompt 的文本 */
    appendPrompt?: string;
    /** 是否使用 claude-code-router */
    claudeCodeRouter?: boolean;
    /** 计划模式 */
    plan?: boolean;
    /** 审批模式 */
    approvals?: boolean;
    /** 模型选择 */
    model?: string;
    /** 推理努力程度 (low | medium | high | xhigh | max) */
    effort?: string;
    /** 跳过权限检查 */
    dangerouslySkipPermissions?: boolean;
    /** 禁用 API Key */
    disableApiKey?: boolean;
    /** 命令覆盖 */
    cmd?: CmdOverrides;
    /** CLI 原生配置 JSON 字符串，直接传给 --settings */
    settings?: string;
}
export declare class ClaudeCodeExecutor extends BaseExecutor {
    readonly agentType = AgentType.CLAUDE_CODE;
    readonly displayName = "Claude Code";
    private config;
    constructor(config?: ClaudeCodeConfig);
    /**
     * 获取可用性信息
     */
    getAvailabilityInfo(): Promise<AvailabilityInfo>;
    /**
     * 获取 Agent 能力
     */
    getCapabilities(): AgentCapability[];
    /**
     * 获取默认 MCP 配置路径
     */
    getDefaultMcpConfigPath(): string | null;
    /**
     * 获取权限模式
     */
    getPermissionMode(): PermissionMode;
    /**
     * 构建 --settings 参数，用于覆盖 ~/.claude/settings.json 中的 env 配置
     *
     * 优先使用 config.settings（用户通过 CLI 原生配置面板填写的完整 settings），
     * 同时将 cmdOverrides.env 中的 ANTHROPIC_* 合并到 settings.env 中。
     * 无 settings 时 fallback 到原有逻辑：从 env 中提取 ANTHROPIC_* 构造 settings。
     */
    private buildSettingsOverride;
    /**
     * 构建命令（用于普通文本 prompt）
     */
    protected buildCommandBuilder(): CommandBuilder;
    /**
     * 构建命令（用于包含图片的 stream-json 输入）
     * 使用 -p 模式配合 --input-format=stream-json
     */
    protected buildCommandBuilderForStreamJson(): CommandBuilder;
    /**
     * 启动新会话
     */
    spawn(config: ExecutorSpawnConfig): Promise<SpawnedChild>;
    /**
     * 继续现有会话
     */
    spawnFollowUp(config: ExecutorSpawnConfig, sessionId: string, resetToMessageId?: string): Promise<SpawnedChild>;
    /**
     * 组合 prompt
     * 注意: appendPrompt 已通过 --append-system-prompt CLI 参数传入，不再拼接到用户 prompt
     */
    private combinePrompt;
}
//# sourceMappingURL=claude-code.executor.d.ts.map