import { type LanguageModel, type Schema } from "ai";
import type { AIProviderName } from "../constants/enums.js";
import { BaseProvider } from "../core/baseProvider.js";
import type { StreamOptions, StreamResult, ZodUnknownSchema } from "../types/index.js";
/**
 * OpenAI Compatible Provider - BaseProvider Implementation
 * Provides access to one of the OpenAI-compatible endpoint (OpenRouter, vLLM, LiteLLM, etc.)
 */
export declare class OpenAICompatibleProvider extends BaseProvider {
    private model?;
    private config;
    private discoveredModel?;
    private customOpenAI;
    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 OpenAI Compatible endpoints
     * Handles auto-discovery if no model was specified
     */
    protected getAISDKModel(): Promise<LanguageModel>;
    protected formatProviderError(error: unknown): Error;
    /**
     * OpenAI Compatible endpoints support tools for compatible models
     */
    supportsTools(): boolean;
    /**
     * Provider-specific streaming implementation
     * Note: This is only used when tools are disabled
     */
    protected executeStream(options: StreamOptions, _analysisSchema?: ZodUnknownSchema | Schema<unknown>): Promise<StreamResult>;
    /**
     * Get available models from OpenAI Compatible endpoint
     *
     * Fetches from the /v1/models endpoint to discover available models.
     * This is useful for auto-discovery when no model is specified.
     */
    getAvailableModels(): Promise<string[]>;
    /**
     * Get the first available model for auto-selection
     */
    getFirstAvailableModel(): Promise<string>;
    /**
     * Fallback models when discovery fails
     */
    private getFallbackModels;
}
