import type { ClientOptions as OpenAIClientOptions } from "openai";
import type { AzureOpenAIConfig } from "../llm/azure.js";
import type { OpenAISession } from "../llm/openai.js";
import { BaseEmbedding } from "./types.js";
export declare const ALL_OPENAI_EMBEDDING_MODELS: {
    "text-embedding-ada-002": {
        dimensions: number;
        maxTokens: number;
    };
    "text-embedding-3-small": {
        dimensions: number;
        dimensionOptions: number[];
        maxTokens: number;
    };
    "text-embedding-3-large": {
        dimensions: number;
        dimensionOptions: number[];
        maxTokens: number;
    };
};
export declare class OpenAIEmbedding extends BaseEmbedding {
    /** embeddding model. defaults to "text-embedding-ada-002" */
    model: string;
    /** number of dimensions of the resulting vector, for models that support choosing fewer dimensions. undefined will default to model default */
    dimensions: number | undefined;
    /** api key */
    apiKey?: string;
    /** maximum number of retries, default 10 */
    maxRetries: number;
    /** timeout in ms, default 60 seconds  */
    timeout?: number;
    /** other session options for OpenAI */
    additionalSessionOptions?: Omit<Partial<OpenAIClientOptions>, "apiKey" | "maxRetries" | "timeout">;
    /** session object */
    session: OpenAISession;
    /**
     * OpenAI Embedding
     * @param init - initial parameters
     */
    constructor(init?: Partial<OpenAIEmbedding> & {
        azure?: AzureOpenAIConfig;
    });
    /**
     * Get embeddings for a batch of texts
     * @param texts
     * @param options
     */
    private getOpenAIEmbedding;
    /**
     * Get embeddings for a batch of texts
     * @param texts
     */
    getTextEmbeddings(texts: string[]): Promise<number[][]>;
    /**
     * Get embeddings for a single text
     * @param texts
     */
    getTextEmbedding(text: string): Promise<number[]>;
}
