import { Embeddings } from '@langchain/core/embeddings';
/**
 * Embeddings implementation using Xenova's Transformers.js with the all-MiniLM-L6-v2 model
 */
export declare class XenovaEmbeddings extends Embeddings {
    private model;
    private embeddingPipeline;
    private dimensions;
    private ready;
    /**
     * Initialize the Xenova embeddings model
     * @param model Model name to use, defaults to 'Xenova/all-MiniLM-L6-v2'
     */
    constructor(model?: string);
    /**
     * Initialize the embedding pipeline with Docker-friendly error handling
     */
    private initialize;
    /**
     * Create embeddings for an array of texts
     * @param texts Array of texts to embed
     * @returns Promise resolving to a 2D array of embeddings
     */
    embedDocuments(texts: string[]): Promise<number[][]>;
    /**
     * Create an embedding for a single query text
     * @param text Text to embed
     * @returns Promise resolving to an embedding vector
     */
    embedQuery(text: string): Promise<number[]>;
    /**
     * Preprocess text before embedding to improve quality
     * @param text Text to preprocess
     * @returns Processed text
     */
    private preprocessText;
    /**
     * Get the dimensionality of the embeddings
     * @returns The number of dimensions in the embedding vectors
     */
    getDimension(): number;
}
