import { EmbedOpts } from './model_provider.js';
import { ProviderStreamEvent, ResponseInput, AgentDefinition, ImageGenerationOpts, VoiceGenerationOpts, TranscriptionOpts, TranscriptionAudioSource, TranscriptionEvent, LiveConfig, LiveOptions, LiveSession } from '../types/types.js';
import { BaseModelProvider } from './base_provider.js';
export declare function getImageMimeType(imageData: string): string;
export declare function cleanBase64Data(imageData: string): string;
export declare class GeminiProvider extends BaseModelProvider {
    private _client?;
    private apiKey?;
    constructor(apiKey?: string);
    private get client();
    createEmbedding(input: string | string[], model: string, agent: AgentDefinition, opts?: EmbedOpts): Promise<number[] | number[][]>;
    private retryStreamOnIncompleteJson;
    createResponseStream(messages: ResponseInput, model: string, agent: AgentDefinition, requestId?: string): AsyncGenerator<ProviderStreamEvent>;
    createImage(prompt: string, model: string, agent: AgentDefinition, opts?: ImageGenerationOpts): Promise<string[]>;
    private getImageCost;
    createVoice(text: string, model: string, agent: AgentDefinition, opts?: VoiceGenerationOpts): Promise<ReadableStream<Uint8Array> | ArrayBuffer>;
    private mapVoiceToGemini;
    createTranscription(audio: TranscriptionAudioSource, agent: AgentDefinition, model: string, opts?: TranscriptionOpts): AsyncGenerator<TranscriptionEvent>;
    createLiveSession(config: LiveConfig, agent: AgentDefinition, model: string, opts?: LiveOptions): Promise<LiveSession>;
}
export declare const geminiProvider: GeminiProvider;
//# sourceMappingURL=gemini.d.ts.map