import type { ServiceName } from '../types'; import { BaseProvider } from './base-provider'; /** * Registry for managing LLM providers * Handles registration, lookup, and listing of providers */ export declare class ProviderRegistry { private providers; private static instance; /** * Get the singleton instance of the registry */ static getInstance(): ProviderRegistry; /** * Reset the singleton instance (useful for testing) */ static resetInstance(): void; /** * Register a provider with the registry * @param name - The service name to register under * @param provider - The provider instance * @throws ValidationError if name is empty */ register(name: string, provider: BaseProvider): void; /** * Get a provider by service name * @param name - The service name to look up * @returns The provider instance * @throws ValidationError if provider is not found */ get(name: ServiceName): BaseProvider; /** * Check if a provider is registered * @param name - The service name to check * @returns True if the provider is registered */ has(name: ServiceName): boolean; /** * List all registered provider names * @returns Array of registered service names */ list(): ServiceName[]; /** * Unregister a provider * @param name - The service name to unregister * @returns True if the provider was unregistered */ unregister(name: string): boolean; /** * Clear all registered providers */ clear(): void; } /** * Get the global provider registry instance */ export declare function getProviderRegistry(): ProviderRegistry; /** * Register a provider globally * @param name - The service name to register under * @param provider - The provider instance */ export declare function registerProvider(name: string, provider: BaseProvider): void; /** * Get a provider from the global registry * @param name - The service name to look up * @returns The provider instance */ export declare function getProvider(name: ServiceName): BaseProvider; //# sourceMappingURL=registry.d.ts.map