import { Config, GenerateContentRequest, GenerateContentResponse, Tool, Content } from '../types';
import { OpenAIStreamProcessor, StreamOptions } from '../strategies/stream/openai.stream';
import { OpenAIRequest, OpenAIResponse } from '../types';
export declare class OpenAIClient {
    private httpClient;
    private retryHandler;
    private streamProcessor;
    constructor(config: Config);
    private convertReadableToResponse;
    private convertToOpenAIRequest;
    private convertContentsToMessages;
    private convertToolsToOpenAI;
    private convertFromOpenAIResponse;
    generateContent(request: GenerateContentRequest): Promise<GenerateContentResponse>;
    generateContentStream(request: GenerateContentRequest, options?: StreamOptions): Promise<GenerateContentResponse>;
    generateContentStreamAsync(request: GenerateContentRequest): AsyncGenerator<any>;
    chat(message: string, options?: {
        systemInstruction?: string;
        generationConfig?: Config['GenerationConfig'];
        tools?: Tool[];
        sessionId?: string;
    }): Promise<GenerateContentResponse>;
    chatStream(message: string, options?: {
        systemInstruction?: string;
        generationConfig?: Config['GenerationConfig'];
        tools?: Tool[];
        sessionId?: string;
        streamOptions?: StreamOptions;
    }): Promise<GenerateContentResponse>;
    continueConversation(contents: Content[], options?: {
        generationConfig?: Config['GenerationConfig'];
        tools?: Tool[];
    }): Promise<GenerateContentResponse>;
    analyzeImage(base64Image: string, mimeType: string, prompt: string, options?: {
        generationConfig?: Config['GenerationConfig'];
    }): Promise<GenerateContentResponse>;
    analyzeDocument(base64Document: string, mimeType: string, prompt: string, options?: {
        generationConfig?: Config['GenerationConfig'];
        useCache?: boolean;
        cacheTtl?: string;
    }): Promise<GenerateContentResponse>;
    callFunction(message: string, tools: Tool[], options?: {
        generationConfig?: Config['GenerationConfig'];
        systemInstruction?: string;
    }): Promise<GenerateContentResponse>;
    generateWithThinking(message: string, thinkingBudget?: number, options?: {
        systemInstruction?: string;
        onThinking?: (thinking: string) => void;
        effort?: 'low' | 'medium' | 'high';
        jsonSchema?: any;
    }): Promise<GenerateContentResponse>;
    handleOpenAIRequest(openAIRequest: OpenAIRequest): Promise<OpenAIResponse>;
    get stream(): OpenAIStreamProcessor;
    updateConfig(newConfig: Partial<Config>): void;
    getConfig(): Config;
}
