import { type LanguageModel, type Schema } from "ai";
import type { ZodType } from "zod";
import type { AIProviderName } from "../constants/enums.js";
import { BaseProvider } from "../core/baseProvider.js";
import type { StreamOptions, StreamResult } from "../types/index.js";
/**
 * LiteLLM Provider - BaseProvider Implementation
 * Provides access to 100+ models via LiteLLM proxy server
 */
export declare class LiteLLMProvider extends BaseProvider {
    private model;
    private credentials?;
    private static modelsCache;
    private static modelsCacheTime;
    private static readonly MODELS_CACHE_DURATION;
    constructor(modelName?: string, sdk?: unknown, _region?: string, credentials?: {
        apiKey?: string;
        baseURL?: string;
    });
    protected getProviderName(): AIProviderName;
    protected getDefaultModel(): string;
    /**
     * Returns the Vercel AI SDK model instance for LiteLLM
     */
    protected getAISDKModel(): LanguageModel;
    formatProviderError(error: unknown): Error;
    /**
     * LiteLLM supports tools for compatible models
     */
    supportsTools(): boolean;
    /**
     * Provider-specific streaming implementation
     * Note: This is only used when tools are disabled
     */
    protected executeStream(options: StreamOptions, analysisSchema?: ZodType | Schema<unknown>): Promise<StreamResult>;
    private createLiteLLMTransformedStream;
    /**
     * Generate an embedding for a single text input
     * Uses the LiteLLM proxy with OpenAI-compatible embedding API
     */
    embed(text: string, modelName?: string): Promise<number[]>;
    /**
     * Generate embeddings for multiple text inputs
     * Uses the LiteLLM proxy with OpenAI-compatible embedding API
     */
    embedMany(texts: string[], modelName?: string): Promise<number[][]>;
    /**
     * Get available models from LiteLLM proxy server
     * Dynamically fetches from /v1/models endpoint with caching and fallback
     */
    getAvailableModels(): Promise<string[]>;
    /**
     * Fetch available models from LiteLLM proxy /v1/models endpoint
     * @private
     */
    private fetchModelsFromAPI;
}
