import type { Embedder } from './embedder.js';
/** Minimal interface for the subset of @google/genai SDK we use. */
interface GeminiAI {
    models: {
        embedContent(req: {
            model: string;
            contents: {
                parts: {
                    text: string;
                }[];
            }[];
            config: {
                taskType: string;
                outputDimensionality: number;
            };
        }): Promise<{
            embeddings?: {
                values?: number[];
            }[];
        }>;
    };
}
/**
 * Dynamically import the @google/genai SDK.
 * It's an optional peer dep in @mmnto/totem — only required when provider is 'gemini'.
 */
export declare function importGeminiSdk(): Promise<{
    GoogleGenAI: new (opts: {
        apiKey: string;
    }) => GeminiAI;
}>;
/**
 * Gemini embedding via the @google/genai SDK.
 * Supports task-type awareness for retrieval-optimized embeddings.
 */
export declare class GeminiEmbedder implements Embedder {
    readonly dimensions: number;
    private model;
    private apiKey;
    constructor(model?: string, dimensions?: number);
    embed(texts: string[]): Promise<number[][]>;
    private embedWithRetry;
}
export {};
//# sourceMappingURL=gemini-embedder.d.ts.map