import type { Provider, TaskTypeName } from '../task/task-state.js'; import type { BaseProviderAdapter } from './base-adapter.js'; /** * Central registry for provider adapters. * * Supports: * - Registration by provider ID * - Default fallback provider * - Per-task-type routing overrides * - Bulk shutdown */ export declare class ProviderRegistry { private readonly adapters; private defaultProvider; private readonly taskTypeRoutes; /** Register an adapter. Keyed by its `id` property. */ register(adapter: BaseProviderAdapter): void; /** Set the fallback provider used when no task-type route matches. */ setDefault(provider: Provider): void; /** Override routing for a specific task type. */ setTaskTypeRoute(taskType: TaskTypeName, provider: Provider): void; /** Look up an adapter by provider ID. */ getAdapter(provider: Provider): BaseProviderAdapter | undefined; /** * Select the best adapter for a given task type. * * Resolution order: * 1. Explicit task-type route * 2. Default provider * 3. First registered adapter (arbitrary but deterministic) */ selectForTaskType(taskType: TaskTypeName): BaseProviderAdapter | undefined; /** Return all registered adapters. */ getAllAdapters(): BaseProviderAdapter[]; /** Shut down all registered adapters in parallel. */ shutdownAll(): Promise; }