import type { ToolInstallStatus } from '../types.js'; import { type ClaudeCodeConfig, type CodexConfig, type OpenCodeConfig } from './ai-config-service.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; applyClaudeCodeConfig(config: ClaudeCodeConfig): Promise; applyCodexConfig(config: CodexConfig): Promise; applyOpenCodeConfig(config: OpenCodeConfig): Promise; } export interface ApplyCurrentAiConfigOptions { template: AiSourceTemplateInput | null | undefined; requestedSources?: RequestedAiSources; toolStatus: Record; 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; }; } export declare function applyCurrentAiConfigToInstalledTools(options: ApplyCurrentAiConfigOptions): Promise;