import type { ProviderConstructor } from '../base/provider.js';
import OpenAIProvider from './openai/index.js';
import OllamaProvider from './ollama/index.js';
import TimewebProvider from './timeweb/index.js';
import GeminiProvider from './gemini/index.js';
import GroqProvider from './groq/index.js';
import LemonadeProvider from './lemonade/index.js';
import AnthropicProvider from './anthropic/index.js';
import LMStudioProvider from './lmstudio/index.js';

export const providers: Record<string, ProviderConstructor<unknown>> = {
  openai: OpenAIProvider as unknown as ProviderConstructor<unknown>,
  ollama: OllamaProvider as unknown as ProviderConstructor<unknown>,
  timeweb: TimewebProvider as unknown as ProviderConstructor<unknown>,
  gemini: GeminiProvider as unknown as ProviderConstructor<unknown>,
  groq: GroqProvider as unknown as ProviderConstructor<unknown>,
  lemonade: LemonadeProvider as unknown as ProviderConstructor<unknown>,
  anthropic: AnthropicProvider as unknown as ProviderConstructor<unknown>,
  lmstudio: LMStudioProvider as unknown as ProviderConstructor<unknown>,
};
