/** * Embedding Service Interface */ export interface IEmbeddingService { /** * Embed a single text string */ embed(text: string): Promise; /** * Embed multiple text strings in batch (performance optimized) */ embedBatch(texts: string[]): Promise; /** * Get the dimensions of the embedding model */ getDimensions(): number; /** * Get model information */ getModelInfo(): ModelInfo; } export interface ModelInfo { name: string; version: string; dimensions: number; maxTokens: number; } export declare class XenovaEmbeddingService implements IEmbeddingService { private extractor; private readonly modelId; private initPromise; /** * Lazy load the model (initialize on first call) */ private ensureInitialized; private initialize; embed(text: string): Promise; embedBatch(texts: string[]): Promise; getDimensions(): number; getModelInfo(): ModelInfo; /** * Text cleaning (remove noise, improve quality) */ private cleanText; }