/**
 * AiFactory - AI 提供商工厂
 *
 * 根据配置/环境变量创建对应的 AI Provider 实例
 * 支持: google-gemini, openai, deepseek, claude, ollama, mock
 */
import { ClaudeProvider } from './providers/ClaudeProvider.js';
import { GoogleGeminiProvider } from './providers/GoogleGeminiProvider.js';
import { MockProvider } from './providers/MockProvider.js';
import { OpenAiProvider } from './providers/OpenAiProvider.js';
/**
 * 创建 AI Provider 实例
 * @param options {provider, model, apiKey, baseUrl}
 */
export declare function createProvider(options?: Record<string, unknown>): ClaudeProvider | GoogleGeminiProvider | MockProvider | OpenAiProvider;
/**
 * 从环境变量自动探测并创建 Provider
 * 优先级: ASD_AI_PROVIDER 指定 > 有 key 的第一个
 */
export declare function autoDetectProvider(): ClaudeProvider | GoogleGeminiProvider | MockProvider | OpenAiProvider;
/** 获取可用的 fallback provider 列表（排除当前 provider） */
export declare function getAvailableFallbacks(currentProvider: string): string[];
/** 判断是否为地理限制 / 不可恢复的 provider 级错误（应触发 fallback） */
export declare function isGeoOrProviderError(err: unknown): boolean;
/**
 * 获取 AI Provider，带自动 fallback：
 * 当主 provider 调用失败（地理限制等）时自动切换到备选 provider
 */
export declare function getProviderWithFallback(): Promise<ClaudeProvider | GoogleGeminiProvider | MockProvider | OpenAiProvider | null>;
/**
 * 创建独立的 Embedding Provider
 *
 * 当 ASD_EMBED_PROVIDER 被设置时，创建一个专用于 embedding 的 provider 实例，
 * 使 embedding 和 LLM 生成可以使用不同的提供商/模型。
 *
 * 典型场景：LLM 用 Google Gemini，Embedding 用本地 Ollama + qwen3-embedding
 *
 * @returns 独立的 embed provider，或 null（未配置时）
 */
export declare function createEmbedProvider(): ReturnType<typeof createProvider> | null;
/** 获取当前 AI 配置信息（同步，用于 UI 展示） */
export declare function getAiConfigInfo(): {
    provider: string;
    model: string;
    embedProvider: string;
    embedModel: string;
    hasKey: boolean;
    keys: {
        google: boolean;
        openai: boolean;
        claude: boolean;
        deepseek: boolean;
    };
};
export { AiProvider } from './AiProvider.js';
export { ClaudeProvider } from './providers/ClaudeProvider.js';
export { GoogleGeminiProvider } from './providers/GoogleGeminiProvider.js';
export { MockProvider } from './providers/MockProvider.js';
export { OpenAiProvider } from './providers/OpenAiProvider.js';
declare const _default: {
    createProvider: typeof createProvider;
    createEmbedProvider: typeof createEmbedProvider;
    autoDetectProvider: typeof autoDetectProvider;
    getAiConfigInfo: typeof getAiConfigInfo;
    getProviderWithFallback: typeof getProviderWithFallback;
    getAvailableFallbacks: typeof getAvailableFallbacks;
    isGeoOrProviderError: typeof isGeoOrProviderError;
};
export default _default;
