import { type Tokenizers } from "@llamaindex/env"; import type { BaseNode } from "../Node.js"; import type { TransformComponent } from "../ingestion/types.js"; import type { MessageContentDetail } from "../llm/types.js"; import { SimilarityType } from "./utils.js"; type EmbedFunc = (values: T[]) => Promise>; export type EmbeddingInfo = { dimensions?: number; maxTokens?: number; tokenizer?: Tokenizers; }; export declare abstract class BaseEmbedding implements TransformComponent { embedBatchSize: number; embedInfo?: EmbeddingInfo; similarity(embedding1: number[], embedding2: number[], mode?: SimilarityType): number; abstract getTextEmbedding(text: string): Promise; getQueryEmbedding(query: MessageContentDetail): Promise; /** * Optionally override this method to retrieve multiple embeddings in a single request * @param texts */ getTextEmbeddings(texts: string[]): Promise>; /** * Get embeddings for a batch of texts * @param texts * @param options */ getTextEmbeddingsBatch(texts: string[], options?: { logProgress?: boolean; }): Promise>; transform(nodes: BaseNode[], _options?: any): Promise; truncateMaxTokens(input: string[]): string[]; } export declare function batchEmbeddings(values: T[], embedFunc: EmbedFunc, chunkSize: number, options?: { logProgress?: boolean; }): Promise>; export {};