/**
 * Provider 配置管理
 *
 * Provider = AgentType + 名称 + 环境变量(连接配置) + 运行参数
 *
 * 数据结构: { providers: Provider[] }
 * - 内置默认配置 (default-providers.json)
 * - 用户自定义 ($AGENT_TOWER_DATA_DIR/providers.json)
 * - 合并策略: 内置 providers 始终存在，用户可新增或覆盖内置 provider 的配置
 */
import type { ProviderBackupFile, ProviderImportPreview, ProviderImportResult } from '@agent-tower/shared';
import { AgentType } from '../types/index.js';
export interface Provider {
    id: string;
    name: string;
    agentType: AgentType | string;
    /** 环境变量，启动进程时注入（API URL、API Key 等） */
    env: Record<string, string>;
    /** Agent 运行参数（如 dangerouslySkipPermissions、model、plan 等） */
    config: Record<string, unknown>;
    /** CLI 原生配置字符串（Claude Code: JSON, Codex: TOML） */
    settings?: string;
    /** 是否为该 AgentType 的默认 provider */
    isDefault: boolean;
    /** 是否内置（不可删除） */
    builtIn?: boolean;
    createdAt?: string;
}
export interface ProvidersData {
    providers: Provider[];
}
/**
 * 加载 providers（内置 + 用户合并）
 */
export declare function loadProviders(): Provider[];
/**
 * 获取所有 providers（带缓存）
 */
export declare function getAllProviders(): Provider[];
/**
 * 重新加载
 */
export declare function reloadProviders(): Provider[];
/**
 * 根据 ID 获取 provider
 */
export declare function getProviderById(id: string): Provider | null;
/**
 * 根据 agentType 获取所有 providers
 */
export declare function getProvidersByAgentType(agentType: AgentType | string): Provider[];
/**
 * 获取某个 agentType 的默认 provider
 */
export declare function getDefaultProvider(agentType: AgentType | string): Provider | null;
export declare function getUserProviders(): Provider[];
export declare function createProviderBackup(): ProviderBackupFile;
export declare function previewProviderImport(backup: ProviderBackupFile): ProviderImportPreview;
export declare function importProvidersFromBackup(backup: ProviderBackupFile): ProviderImportResult;
export declare function createProvider(data: Omit<Provider, 'id' | 'createdAt' | 'builtIn'>): Provider;
export declare function updateProvider(id: string, data: Partial<Omit<Provider, 'id' | 'builtIn'>>): Provider | null;
export declare function deleteProvider(id: string): boolean;
export declare function canDeleteProvider(provider: Provider): boolean;
/**
 * 获取内置默认 providers（不含用户自定义）
 */
export declare function getDefaultProviders(): Provider[];
//# sourceMappingURL=providers.d.ts.map