import { EmbeddingService, type EmbeddingModelInfo } from './EmbeddingService.js'; /** * Configuration for local embedding service using transformers.js */ export interface LocalEmbeddingConfig { /** * Model name from Hugging Face (e.g., 'Xenova/bge-base-en-v1.5') */ model?: string; /** * Override dimensions (auto-detected from model if not provided) */ dimensions?: number; /** * Version string for tracking */ version?: string; /** * Pooling strategy ('mean' or 'cls') */ pooling?: 'mean' | 'cls'; } /** * Service implementation that generates embeddings locally using transformers.js and ONNX Runtime */ export declare class LocalEmbeddingService extends EmbeddingService { private model; private dimensions; private version; private pooling; private extractor; private initPromise; /** * Create a new local embedding service * * @param config - Configuration for the service */ constructor(config?: LocalEmbeddingConfig); /** * Initialize the transformers.js pipeline * * @private */ private _initialize; /** * Generate an embedding for a single text * * @param text - Text to generate embedding for * @returns Promise resolving to embedding vector */ generateEmbedding(text: string): Promise; /** * Generate embeddings for multiple texts * * @param texts - Array of texts to generate embeddings for * @returns Promise resolving to array of embedding vectors */ generateEmbeddings(texts: string[]): Promise; /** * Get information about the embedding model * * @returns Model information */ getModelInfo(): EmbeddingModelInfo; /** * Extract error message from error object * * @private * @param error - Error object * @returns Error message string */ private _getErrorMessage; /** * Normalize a vector to unit length (L2 norm) * * @private * @param vector - Vector to normalize in-place */ private _normalizeVector; /** * Get information about the embedding provider * * @returns Provider information */ getProviderInfo(): { provider: string; model: string; dimensions: number; }; }