import type { ProviderDescriptor } from '../plugins/plugin-api.types.js'; import type { LLMProvider, ProviderFactory } from '../types/llm.types.js'; import type { MCPSamplingService } from '../types/mcp.types.js'; import { ProviderError } from '../utils/error-handler.js'; export interface RegisterProviderOptions { override?: boolean; owner?: string; } type ProviderClass = new (config: Record) => LLMProvider; type ProviderEntry = ProviderClass | ProviderFactoryFn; type ProviderFactoryFn = (config: Record) => LLMProvider; export declare class LLMProviderRegistry implements ProviderFactory { private providerDescriptors; private providerOwners; private providers; constructor(); createProvider(providerName: string, config: Record, mcpSampling?: MCPSamplingService): LLMProvider; getAvailableProviders(): string[]; getDescriptor(name: string): ProviderDescriptor | undefined; getOwner(name: string): string | undefined; hasProvider(name: string): boolean; registerProvider(name: string, providerEntry: ProviderEntry, options?: RegisterProviderOptions, descriptor?: ProviderDescriptor): void; } export declare class ProviderConflictError extends ProviderError { readonly existingOwner: string; readonly incomingOwner: string; readonly providerKey: string; constructor(key: string, existingOwner: string, incomingOwner: string); } export declare function getProviderRegistry(): LLMProviderRegistry; export declare function resetProviderRegistry(): void; export {}; //# sourceMappingURL=registry.d.ts.map