/**
 * GoogleGeminiProvider - Google Gemini AI 提供商
 * 直接调用 REST API（不依赖 SDK）
 *
 * v3: 统一消息格式 — chatWithTools() 接受 Provider-Agnostic 消息
 *     内部自动转换为 Gemini 原生 contents / functionDeclarations 格式
 *     支持 toolChoice: 'auto' | 'required' | 'none'
 */
import { AiProvider, type AiProviderConfig, type ApiResponse, type ChatContext, type ChatWithToolsOptions, type ChatWithToolsResult, type StructuredOutputOptions } from '../AiProvider.js';
export declare class GoogleGeminiProvider extends AiProvider {
    #private;
    constructor(config?: AiProviderConfig);
    /** 是否支持原生结构化函数调用 */
    get supportsNativeToolCalling(): boolean;
    chat(prompt: string, context?: ChatContext): Promise<any>;
    /**
     * 带工具声明的结构化对话 — Gemini 原生 Function Calling
     *
     * 接受统一消息格式，内部转换为 Gemini 原生 contents 格式。
     *
     * @param prompt 未使用 messages 时的 fallback prompt
     * @param opts.messages 统一格式消息
     * @param opts.toolSchemas [{name, description, parameters}]
     * @param opts.toolChoice 'auto' | 'required' | 'none'
     * @returns >|null}>}
     */
    chatWithTools(prompt: string, opts?: ChatWithToolsOptions): Promise<ChatWithToolsResult>;
    summarize(code: string): Promise<any>;
    /**
     * Structured Output — Gemini 原生 JSON mode
     *
     * 使用 responseMimeType: 'application/json' 强制 Gemini 返回合法 JSON。
     * 可选传入 responseSchema 做编译期校验（Gemini 1.5+ / Gemini 2+）。
     */
    chatWithStructuredOutput(prompt: string, opts?: StructuredOutputOptions): Promise<any>;
    embed(text: string | string[]): Promise<number[] | number[][]>;
    _post(url: string, body: Record<string, unknown>, externalSignal?: AbortSignal): Promise<ApiResponse>;
}
export default GoogleGeminiProvider;
