import { p as ProviderConfig, y as XlingConfig } from "./config-Dcd8WufG.js";

//#region src/services/prompt/providerRegistry.d.ts

/**
* Registry for managing AI providers and model routing
*
* Responsibilities:
* - Load and cache configuration
* - Sort providers by priority
* - Index models for quick lookup
* - Provide routing API for model requests
*/
declare class ProviderRegistry {
  #private;
  constructor(config: XlingConfig);
  /**
  * Get all providers that support a specific model, sorted by priority
  * Returns empty array if model is not supported
  */
  getProvidersForModel(modelId: string): ProviderConfig[];
  /**
  * Get all available models across all providers
  */
  getAllModels(): string[];
  /**
  * Get all registered providers
  */
  getAllProviders(): ProviderConfig[];
  /**
  * Get provider by name
  */
  getProviderByName(name: string): ProviderConfig | undefined;
  /**
  * Get default model
  */
  getDefaultModel(): string | undefined;
  /**
  * Check if a model is supported by any provider
  */
  isModelSupported(modelId: string): boolean;
  /**
  * Get statistics about the registry
  */
  getStats(): {
    providerCount: number;
    modelCount: number;
    defaultModel?: string;
  };
  /**
  * Reload configuration from disk
  */
  reload(): Promise<void>;
  /**
  * Factory method to create registry from configuration file
  */
  static fromConfig(): Promise<ProviderRegistry>;
  /**
  * Get providers for a model, with fallback to default model if specified model is not found
  */
  getProvidersWithFallback(modelId?: string): {
    model: string;
    providers: ProviderConfig[];
  } | null;
}
/**
* Get the global registry instance
* Creates it if it doesn't exist
*/
declare function getRegistry(): Promise<ProviderRegistry>;
/**
* Reset the global registry instance
* Useful for testing or forcing a reload
*/
declare function resetRegistry(): void;
//#endregion
export { getRegistry as n, resetRegistry as r, ProviderRegistry as t };