import type { AIProvider, SupportedModelName, NeurolinkCredentials, UnknownRecord, ProviderPairResult } from "../types/index.js";
import { AIProviderName } from "../constants/enums.js";
/**
 * Factory for creating AI provider instances with centralized configuration
 */
export declare class AIProviderFactory {
    /**
     * Normalize provider name using ProviderFactory
     */
    private static normalizeProviderName;
    /**
     * Initialize dynamic model provider with timeout protection
     * Prevents hanging on non-responsive endpoints
     */
    private static initializeDynamicProviderWithTimeout;
    private static resolveModelFromEnvironment;
    private static resolveDynamicModelName;
    private static createResolvedProvider;
    /**
     * Create a provider instance for the specified provider type
     * @param providerName - Name of the provider ('vertex', 'bedrock', 'openai')
     * @param modelName - Optional model name override
     * @param enableMCP - Optional flag to enable MCP integration (default: true)
     * @param sdk - SDK instance
     * @param region - Optional region override for cloud providers
     * @returns AIProvider instance
     */
    static createProvider(providerName: string, modelName?: string | null, enableMCP?: boolean, sdk?: UnknownRecord, region?: string, credentials?: NeurolinkCredentials): Promise<AIProvider>;
    /**
     * Create a provider instance with specific provider enum and model
     * @param provider - Provider enum value
     * @param model - Specific model enum value
     * @returns AIProvider instance
     */
    static createProviderWithModel(provider: AIProviderName, model: SupportedModelName): Promise<AIProvider>;
    /**
     * Create the best available provider automatically
     * @param requestedProvider - Optional preferred provider
     * @param modelName - Optional model name override
     * @param enableMCP - Optional flag to enable MCP integration (default: true)
     * @returns AIProvider instance
     */
    static createBestProvider(requestedProvider?: string, modelName?: string | null, enableMCP?: boolean, sdk?: UnknownRecord): Promise<AIProvider>;
    /**
     * Create primary and fallback provider instances
     * @param primaryProvider - Primary provider name
     * @param fallbackProvider - Fallback provider name
     * @param modelName - Optional model name override
     * @param enableMCP - Optional flag to enable MCP integration (default: true)
     * @returns Object with primary and fallback providers
     */
    static createProviderWithFallback(primaryProvider: string, fallbackProvider: string, modelName?: string | null, enableMCP?: boolean): Promise<ProviderPairResult<AIProvider>>;
}
