import { type LLMInstanceOptions, type LLMProviders, LLMPurposes, type LLMServiceByPurpose, type LLMServiceOptions } from './LLMService.typedefs'; import { type LLMReporterInterface } from './utilities/reporter'; export declare class LLMServiceFactory { /** * Gets a service for the specified LLM purpose and provider * * @private * @static * @template Purpose - The purpose of the LLM service (Completion or Assistance) * @template Provider - The LLM provider (OpenAI, GoogleGenerativeAI) * @template Reporter - The reporter type * @param {Purpose} purpose - The purpose of the service * @param {Provider} provider - The LLM provider * @param {LLMLogger | undefined} logger - Logger instance (optional) * @param {LLMReporterInterface | undefined} reporter - Reporter instance (optional) * @param {LLMInstanceOptions[Provider]} options - Provider-specific options * @returns {LLMServiceByPurpose[Purpose]} The LLM service instance * @throws {Error} If the provider is not supported */ private static getService; /** * Gets a completion service for the specified LLM provider * * @static * @template Provider - The LLM provider type * @template Reporter - The reporter type * @param {LLMServiceOptions} options - Service options * @returns {LLMServiceByPurpose[LLMPurposes.Completion]} A completion service instance */ static getCompletionService | undefined = undefined>(options: LLMServiceOptions): LLMServiceByPurpose[LLMPurposes.Completion]; /** * Gets an assistance service for the specified LLM provider * * @static * @template Provider - The LLM provider type * @template Reporter - The reporter type * @param {LLMServiceOptions} options - Service options * @returns {LLMServiceByPurpose[LLMPurposes.Assistance]} An assistance service instance */ static getAssistanceService | undefined>(options: LLMServiceOptions): LLMServiceByPurpose[LLMPurposes.Assistance]; /** * Gets a speech-to-text service for the specified LLM provider * * @static * @template Provider - The LLM provider type * @template Reporter - The reporter type * @param {LLMServiceOptions} options - Service options * @returns {LLMServiceByPurpose[LLMPurposes.SpeechToText]} A speech-to-text service instance */ static getSpeechToTextService | undefined>(options: LLMServiceOptions): LLMServiceByPurpose[LLMPurposes.SpeechToText]; /** * Gets a text-to-speech service for the specified LLM provider * * @static * @template Provider - The LLM provider type * @template Reporter - The reporter type * @param {LLMServiceOptions} options - Service options * @returns {LLMServiceByPurpose[LLMPurposes.TextToSpeech]} A text-to-speech service instance */ static getTextToSpeechService | undefined>(options: LLMServiceOptions): LLMServiceByPurpose[LLMPurposes.TextToSpeech]; /** * Resolves the options for the specified provider from an options map * * @static * @template Provider - The LLM provider type * @param {Provider} provider - The LLM provider to get options for * @param {Record} options - Map of provider options * @returns {LLMInstanceOptions[Provider]} The options for the specified provider */ static resolveProviderOptions(provider: Provider, options: Record): LLMInstanceOptions[Provider]; }