import { ModelCollection } from 'aimodels';
import { OpenAILang, OpenAILangOptions } from "./openai/openai-lang";
import { AnthropicLang, AnthropicLangOptions } from "./anthropic/anthropic-lang";
import { OllamaLang, OllamaLangOptions } from "./ollama/ollama-lang";
import { GroqLang, GroqLangOptions } from "./groq/groq-lang";
import { DeepSeekLang, DeepSeekLangOptions } from "./deepseek/deepseek-lang";
import { XAILang, XAILangOptions } from "./xai/xai-lang";
import { GoogleLang, GoogleLangOptions } from "./google/google-lang";
import { CohereLang, CohereLangOptions } from "./cohere/cohere-lang";
import { OpenRouterLang, OpenRouterLangOptions } from "./openrouter/openrouter-lang";
import { MistralLang, MistralLangOptions } from "./mistral/mistral-lang";
import { OpenAILikeLang } from "./openai-like/openai-like-lang";
/**
 * Lang is a factory class for using language models from different providers.
 */
export declare abstract class Lang {
    /** Get all language models */
    static get models(): ModelCollection;
    /** Create an OpenAI provider instance */
    static openai(options: OpenAILangOptions): OpenAILang;
    /** Create an Anthropic provider instance */
    static anthropic(options: AnthropicLangOptions): AnthropicLang;
    /** Create an Ollama provider instance */
    static ollama(options: OllamaLangOptions): OllamaLang;
    /** Create a Groq provider instance */
    static groq(options: GroqLangOptions): GroqLang;
    /** Create a DeepSeek provider instance */
    static deepseek(options: DeepSeekLangOptions): DeepSeekLang;
    /** Create an xAI provider instance */
    static xai(options: XAILangOptions): XAILang;
    /** Create a Google provider instance */
    static google(options: GoogleLangOptions): GoogleLang;
    /** Create a Cohere provider instance */
    static cohere(options: CohereLangOptions): CohereLang;
    /** Create an OpenRouter provider instance */
    static openrouter(options: OpenRouterLangOptions): OpenRouterLang;
    /** Create a Mistral provider instance */
    static mistral(options: MistralLangOptions): MistralLang;
    /**
     * Creates an instance for custom OpenAI-compatible APIs
     * @param options Configuration options for the custom API
     * @returns A new OpenAILikeLang instance
     */
    static openaiLike(options: {
        apiKey?: string;
        model: string;
        baseURL: string;
        systemPrompt?: string;
        maxTokens?: number;
        headers?: Record<string, string>;
        bodyProperties?: Record<string, unknown>;
    }): OpenAILikeLang;
    static [Symbol.iterator](): ArrayIterator<Function>;
    static [key: string]: any;
}
