/**
 * Adapter 注册表 —— 管理 Provider ID → Adapter 实例的映射
 */
import type { BaseProviderAdapter } from './types.js';
export type AdapterType = 'claude-sdk' | 'codex-sdk' | 'opencode-sdk';
/**
 * Adapter 注册表
 * 管理所有 Provider Adapter 实例的生命周期
 */
export declare class AdapterRegistry {
    private adapters;
    /**
     * 注册 Adapter 实例
     * @param adapter Adapter 实例（providerId 作为 key）
     * @throws 如果该 providerId 已注册
     */
    register(adapter: BaseProviderAdapter): void;
    /**
     * 按 Provider ID 获取 Adapter
     * @param providerId Provider 标识（如 'claude-code', 'opencode'）
     * @throws 如果该 providerId 未注册
     */
    get(providerId: string): BaseProviderAdapter;
    /**
     * 按 AdapterType 获取 Adapter
     * @param adapterType 适配器类型
     * @throws 如果该类型未注册
     */
    getByType(adapterType: AdapterType): BaseProviderAdapter;
    /**
     * 检查是否已注册
     * @param providerId Provider 标识
     */
    has(providerId: string): boolean;
    /**
     * 获取所有已注册的 Provider ID
     */
    getRegisteredIds(): string[];
    /**
     * 获取所有已注册 Adapter。
     */
    getAll(): BaseProviderAdapter[];
    /**
     * 清理所有 Adapter 资源
     */
    cleanup(): void;
    /**
     * Provider ID → AdapterType 匹配
     */
    private matchType;
}
export declare const adapterRegistry: AdapterRegistry;
//# sourceMappingURL=AdapterRegistry.d.ts.map