/**
 * @license
 * Copyright 2025 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import type { AIProvider, ProviderConfig, UsageLimits } from './types.js';
/**
 * Manages the registration and discovery of AI providers
 */
export declare class ProviderRegistry {
    private providers;
    private configs;
    /**
     * Register a provider instance
     */
    register(provider: AIProvider): void;
    /**
     * Register a provider configuration
     */
    registerConfig(config: ProviderConfig): void;
    /**
     * Get a provider by name
     */
    getProvider(name: string): AIProvider | undefined;
    /**
     * Get provider configuration
     */
    getConfig(name: string): ProviderConfig | undefined;
    /**
     * Get all available provider names
     */
    getAvailableProviders(): string[];
    /**
     * Get all enabled providers sorted by priority
     */
    getEnabledProviders(): AIProvider[];
    /**
     * Get the default provider (highest priority enabled provider)
     */
    getDefaultProvider(): AIProvider | undefined;
    /**
     * Check if a provider is available and enabled
     */
    isProviderAvailable(name: string): boolean;
    /**
     * Remove a provider
     */
    unregister(name: string): void;
    /**
     * Get usage statistics across all providers
     */
    getUsageStats(): Promise<Record<string, UsageLimits['currentUsage']>>;
}
