import { RnExecutorchError } from '../errors/errorUtils';
import { ResourceSource } from '../types/common';
/**
 * Union of all built-in text embeddings model names.
 * @category Types
 */
export type TextEmbeddingsModelName = 'all-minilm-l6-v2' | 'all-mpnet-base-v2' | 'multi-qa-minilm-l6-cos-v1' | 'multi-qa-mpnet-base-dot-v1' | 'clip-vit-base-patch32-text';
/**
 * Props for the useTextEmbeddings hook.
 * @category Types
 * @property {object} model - An object containing the model configuration.
 * @property {TextEmbeddingsModelName} model.modelName - Unique name identifying the model.
 * @property {ResourceSource} model.modelSource - The source of the text embeddings model binary.
 * @property {ResourceSource} model.tokenizerSource - The source of the tokenizer JSON file.
 * @property {boolean} [preventLoad] - Boolean that can prevent automatic model loading (and downloading the data if you load it for the first time) after running the hook.
 */
export interface TextEmbeddingsProps {
    model: {
        /**
         * The unique name of the text embeddings model.
         */
        modelName: TextEmbeddingsModelName;
        /**
         * The source of the text embeddings model binary.
         */
        modelSource: ResourceSource;
        /**
         * The source of the tokenizer JSON file.
         */
        tokenizerSource: ResourceSource;
    };
    preventLoad?: boolean;
}
/**
 * React hook state and methods for managing a Text Embeddings model instance.
 * @category Types
 */
export interface TextEmbeddingsType {
    /**
     * Contains the error message if the model failed to load or during inference.
     */
    error: null | RnExecutorchError;
    /**
     * Indicates whether the embeddings model has successfully loaded and is ready for inference.
     */
    isReady: boolean;
    /**
     * Indicates whether the model is currently generating embeddings.
     */
    isGenerating: boolean;
    /**
     * Tracks the progress of the model download process (value between 0 and 1).
     */
    downloadProgress: number;
    /**
     * Runs the text embeddings model on the provided input string.
     * @param input - The text string to embed.
     * @returns A promise resolving to a Float32Array containing the vector embeddings.
     * @throws {RnExecutorchError} If the model is not loaded or is currently processing another request.
     */
    forward(input: string): Promise<Float32Array>;
}
//# sourceMappingURL=textEmbeddings.d.ts.map