import { LLMConfig, GenerateContentRequest, GenerateContentResponse, Tool, Content } from '../types';
import { GoogleStreamProcessor, StreamOptions } from '../strategies/stream/google.stream';
/**
 *
 * "generationConfig": {
      "temperature": 0.45,
      "thinkingConfig": {
        "thinkingBudget": -1,
      },
      "responseMimeType": "text/plain",
    },
 */
export declare class GeminiClient {
    private httpClient;
    private retryHandler;
    private streamProcessor;
    private endpoint;
    constructor(config: LLMConfig);
    private convertFromGeminiResponse;
    generateContent(request: GenerateContentRequest): Promise<GenerateContentResponse>;
    private convertReadableToResponse;
    generateContentStream(request: GenerateContentRequest, options?: StreamOptions): Promise<GenerateContentResponse>;
    generateContentStreamAsync(request: GenerateContentRequest): AsyncGenerator<any>;
    chat(message: string, options?: {
        systemInstruction?: string;
        configs?: LLMConfig;
        tools?: Tool[];
        sessionId?: string;
    }): Promise<GenerateContentResponse>;
    chatStream(message: string, options?: {
        systemInstruction?: string;
        configs?: LLMConfig;
        tools?: Tool[];
        sessionId?: string;
        streamOptions?: StreamOptions;
    }): Promise<GenerateContentResponse>;
    continueConversation(contents: Content[], options?: {
        generationConfig?: LLMConfig['generationConfig'];
        tools?: Tool[];
    }): Promise<GenerateContentResponse>;
    callFunction(message: string, tools: Tool[], options?: {
        generationConfig?: LLMConfig['generationConfig'];
        systemInstruction?: string;
    }): Promise<GenerateContentResponse>;
    generateWithThinking(message: string, thinkingBudget?: number, // -1 for dynamic thinking
    options?: {
        systemInstruction?: string;
        onThinking?: (thinking: string) => void;
    }): Promise<GenerateContentResponse>;
    get stream(): GoogleStreamProcessor;
    updateConfig(newConfig: Partial<LLMConfig>): void;
    getConfig(): LLMConfig;
}
export * from '../types';
export * from '../strategies/retry/expo';
export * from '../core/http-client';
export * from '../builder/ai.builder';
export * from '../strategies/stream/google.stream';
