import { GoogleGenerativeAI, HarmBlockThreshold, HarmCategory } from "@google/generative-ai";
import { LlmCoreProvider, LlmGenerationConfig, LlmMessage, LlmResponse, LlmStreamResponse, LlmStreamResponseChunk, LlmStreamResponseWithToolCalls } from "../../providers";
export interface GoogleGenerativeAIConfig {
    apiKey?: string;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[];
    name?: string;
}
export declare class GoogleGenerativeAIProvider implements LlmCoreProvider {
    readonly name: string;
    readonly client: GoogleGenerativeAI;
    private readonly safetySettings?;
    constructor({ apiKey, safetySettings, name }?: GoogleGenerativeAIConfig);
    generateResponse(model: string, messages: LlmMessage[], config?: LlmGenerationConfig): Promise<LlmResponse>;
    generateResponseStream(model: string, messages: LlmMessage[], config?: LlmGenerationConfig): AsyncGenerator<LlmStreamResponseChunk | LlmStreamResponse | LlmStreamResponseWithToolCalls>;
    getAvailableModels(): Promise<string[]>;
    createEmbedding(model: string, text: string): Promise<number[]>;
    private prepareTools;
    private prepareToolConfig;
    private prepareGenerationConfig;
}
