/**
 * Google Gemini Provider Implementation
 *
 * Integrates with Google's Gemini models through the official @google/genai SDK
 * (the successor to the deprecated @google/generative-ai package).
 *
 * Key Features:
 * - Support for Gemini 1.5 / 2.0 / 2.5 model families
 * - Streaming responses with real-time chunk delivery
 * - Multimodal capabilities and configurable safety filtering
 * - System instruction handling separate from conversation flow
 *
 * @author Jan-Marlon Leibl
 * @see https://ai.google.dev/docs
 */
import type { SafetySetting } from '@google/genai';
import type { AIProviderConfig, CompletionParams, CompletionResponse, CompletionChunk, ProviderInfo } from '../types/index.js';
import { BaseAIProvider } from './base.js';
import { AIProviderError } from '../types/index.js';
/**
 * Configuration interface for Gemini provider with Google-specific options.
 */
export interface GeminiConfig extends AIProviderConfig {
    /**
     * Default Gemini model to use for requests.
     *
     * Recommended models:
     * - 'gemini-2.5-flash': Latest fast model, great default
     * - 'gemini-2.5-pro': Flagship reasoning model
     * - 'gemini-2.0-flash': Previous generation fast model
     * - 'gemini-1.5-pro': Long-context flagship from the 1.5 generation
     *
     * @default 'gemini-2.5-flash'
     */
    defaultModel?: string;
    /** Safety settings for content filtering and harm prevention. */
    safetySettings?: SafetySetting[];
    /** Default generation configuration applied to every request. */
    generationConfig?: {
        temperature?: number;
        topP?: number;
        topK?: number;
        maxOutputTokens?: number;
        stopSequences?: string[];
    };
}
/**
 * Google Gemini provider implementation backed by @google/genai.
 *
 * The new SDK is stateless w.r.t. model selection — each `generateContent` call
 * specifies the model directly, so this class only holds a single client.
 */
export declare class GeminiProvider extends BaseAIProvider {
    private client;
    private readonly defaultModel;
    private readonly safetySettings?;
    private readonly defaultGenerationConfig?;
    constructor(config: GeminiConfig);
    protected doInitialize(): Promise<void>;
    protected doComplete(params: CompletionParams): Promise<CompletionResponse<string>>;
    protected doStream<T = any>(params: CompletionParams<T>): AsyncIterable<CompletionChunk>;
    getInfo(): ProviderInfo;
    protected getModelNamePatterns(): RegExp[];
    protected sendValidationProbe(): Promise<void>;
    protected providerErrorMessages(): Partial<Record<number, string>>;
    protected mapProviderError(error: any): AIProviderError | null;
    private convertMessages;
    private buildConfig;
    private processStreamChunks;
    private formatCompletionResponse;
}
