/**
 * Provider Plugin Registry
 *
 *  Registry for managing plugin-based LLM providers.
 */
import type { ProviderPlugin, ProviderRegistry, ProviderModelDefinition } from '../extensions/types/providers.js';
export declare class ProviderPluginRegistry implements ProviderRegistry {
    private providers;
    /**
     * Register a new provider
     */
    register(provider: ProviderPlugin): void;
    /**
     * Get a provider by ID
     */
    get(id: string): ProviderPlugin | undefined;
    /**
     * List all registered providers
     */
    listAll(): ProviderPlugin[];
    /**
     * Get models for a specific provider
     */
    getModels(providerId: string): ProviderModelDefinition[];
    /**
     * Check if a provider is registered
     */
    has(id: string): boolean;
    /**
     * Unregister a provider
     */
    unregister(id: string): boolean;
    /**
     * Get all available model IDs across all providers
     */
    getAllModelIds(): string[];
    /**
     * Find a model across all providers
     */
    findModel(modelId: string): {
        provider: ProviderPlugin;
        model: ProviderModelDefinition;
    } | undefined;
    /**
     * Get provider by model ID
     */
    getProviderForModel(modelId: string): ProviderPlugin | undefined;
}
export declare function getProviderRegistry(): ProviderPluginRegistry;
export declare function setProviderRegistry(registry: ProviderPluginRegistry): void;
