import { Chunk, RagEmbeddings } from "./interfaces.js";
/**
 * Implementation of RagEmbeddings using Xenova transformers library.
 */
export declare class XenovaEmbeddings implements RagEmbeddings {
    private model;
    private embedder;
    private chunkSize;
    private chunkOverlap;
    static DEFAULT_MODEL: string;
    /**
     * Creates a new instance of XenovaEmbeddings.
     * @param model The model name to use for embeddings
     * @param chunkSize The size of text chunks to create
     * @param chunkOverlap The amount of overlap between chunks
     */
    constructor(model?: string, // 'nomic-ai/nomic-embed-text-v1'
    chunkSize?: number, chunkOverlap?: number);
    /**
     * Initializes the embedder pipeline.
     * Must be called before using the embed method.
     * @throws Error if already initialized
     */
    start(): Promise<void>;
    /**
     * Returns the name of the model used for embeddings
     * @returns The model name
     */
    getModelName(): string;
    getVectorSize(): Promise<number>;
    /**
     * Splits text into chunks with specified size and overlap.
     * @param text The text to split
     * @returns Array of chunks
     */
    private splitTextIntoChunks;
    /**
     * Embeds a single chunk of text.
     * @param text The text to embed
     * @returns The embedding vector
     * @throws Error if start() has not been called
     */
    private embedText;
    /**
     * Embeds the given text by splitting it into chunks and generating embeddings.
     * @param text The text to embed
     * @returns Promise resolving to an array of chunks with their embeddings
     */
    embed(text: string): Promise<Chunk[]>;
}
