import { y as XlingConfig } from "./config-Dcd8WufG.js";
import { t as ProviderRegistry } from "./providerRegistry-BSW4cdkC.js";
import { a as PromptResponse, i as PromptRequest } from "./types-BWB8Eif2.js";
import { StreamTextResult } from "ai";

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

/**
* Logger interface for structured logging
*/
interface Logger {
  debug(message: string, ...args: ReadonlyArray<unknown>): void;
  info(message: string, ...args: ReadonlyArray<unknown>): void;
  warn(message: string, ...args: ReadonlyArray<unknown>): void;
  error(message: string, ...args: ReadonlyArray<unknown>): void;
}
/**
* Model Router with intelligent provider selection and fallback
*/
declare class ModelRouter {
  #private;
  constructor(config: XlingConfig, logger?: Logger);
  /**
  * Execute a prompt request with automatic provider selection and fallback
  */
  execute(request: PromptRequest): Promise<PromptResponse>;
  /**
  * Execute a prompt request with streaming support
  * Simplified version without retry logic for interactive mode
  */
  executeStream(request: PromptRequest): Promise<StreamTextResult<Record<string, never>, never>>;
  /**
  * Get registry instance
  */
  getRegistry(): ProviderRegistry;
  /**
  * Clear client cache (useful for testing)
  */
  clearClients(): void;
  /**
  * Reload provider registry from disk and reset clients
  */
  reloadConfig(): Promise<void>;
}
/**
* Factory method to create router from config file
*/
declare function createRouter(logger?: Logger): Promise<ModelRouter>;
//#endregion
export { createRouter as n, ModelRouter as t };