export declare function createAiConfigService(): AiConfigService; export interface AiConfigTemplate { baseUrl: string; apiKey: string; model: string; models?: string[]; } export interface ClaudeCodeConfig { env?: { ANTHROPIC_BASE_URL?: string; ANTHROPIC_AUTH_TOKEN?: string; ANTHROPIC_MODEL?: string; }; } export interface OpenCodeProviderConfig { npm?: string; model?: string; options?: { baseURL?: string; apiKey?: string; }; models?: Record; } export interface OpenCodeConfig { provider?: { default?: OpenCodeProviderConfig; }; } export interface CodexModelProviderConfig { name?: string; base_url?: string; wire_api?: "responses" | "chat" | string; env_key?: string; env_key_instructions?: string; requires_openai_auth?: boolean; } export interface CodexConfig { model?: string; model_provider?: string; openai_base_url?: string; model_providers?: Record; } export interface AiConfigPaths { acodeConfigFile: string; claudecodeConfigFile: string; codexConfigFile: string; opencodeConfigFile: string; } export declare function buildToolSpecificAiConfig(template: AiConfigTemplate): { acode: OpenCodeConfig; claudecode: ClaudeCodeConfig; codex: CodexConfig; opencode: OpenCodeConfig; } | null; export declare class AiConfigService { private readonly paths; constructor(paths: AiConfigPaths); readClaudeCodeConfig(): Promise; readAcodeConfig(): Promise; readOpenCodeConfig(): Promise; readCodexConfig(): Promise; writeClaudeCodeConfig(config: ClaudeCodeConfig): Promise; writeAcodeConfig(config: OpenCodeConfig): Promise; writeOpenCodeConfig(config: OpenCodeConfig): Promise; writeCodexConfig(config: CodexConfig): Promise; applyClaudeCodeConfig(patch: ClaudeCodeConfig): Promise; applyOpenCodeConfig(patch: OpenCodeConfig): Promise; applyAcodeConfig(patch: OpenCodeConfig): Promise; applyCodexConfig(patch: CodexConfig): Promise; applyAiConfigTemplate(template: AiConfigTemplate): Promise<{ acode: OpenCodeConfig; claudecode: ClaudeCodeConfig; codex: CodexConfig; opencode: OpenCodeConfig; } | null>; }