import { type ClaudeCodeConfig, type CodexConfig, type OpenCodeConfig } from '@cc-switch/sdk';
import type { ToolInstallStatus } from '../types.js';
export interface AiSourceTemplateInput {
    baseUrl?: unknown;
    apiKey?: unknown;
    model?: unknown;
    models?: unknown;
}
export interface RequestedAiSources {
    acode?: unknown;
    claudecode?: unknown;
    codex?: unknown;
    opencode?: unknown;
}
export interface AiConfigApplier {
    applyAcodeConfig(config: OpenCodeConfig): Promise<OpenCodeConfig>;
    applyClaudeCodeConfig(config: ClaudeCodeConfig): Promise<ClaudeCodeConfig>;
    applyCodexConfig(config: CodexConfig): Promise<CodexConfig>;
    applyOpenCodeConfig(config: OpenCodeConfig): Promise<OpenCodeConfig>;
}
export interface ApplyCurrentAiConfigOptions {
    template: AiSourceTemplateInput | null | undefined;
    requestedSources?: RequestedAiSources;
    toolStatus: Record<string, ToolInstallStatus>;
    aiConfigService: AiConfigApplier;
}
export interface AppliedAiConfigSummary {
    generatedFromUnifiedTemplate: boolean;
    applied: {
        acode: string[];
        claudecode: string[];
        codex: string[];
        opencode: string[];
    };
    skippedTools: string[];
    merged: {
        acode: OpenCodeConfig | null;
        claudecode: ClaudeCodeConfig | null;
        codex: CodexConfig | null;
        opencode: OpenCodeConfig | null;
    };
}
/**
 * 主流程：用当前统一 AI 配置覆盖各 Agent CLI 配置，并跳过未安装 CLI。
 */
export declare function applyCurrentAiConfigToInstalledTools(options: ApplyCurrentAiConfigOptions): Promise<AppliedAiConfigSummary>;
//# sourceMappingURL=ai-source-apply.d.ts.map