import { EventRelay } from "lifecycle-utils";
import { Token } from "../types.js";
import { LlamaText } from "../utils/LlamaText.js";
import { LlamaModel } from "./LlamaModel.js";
export type LlamaEmbeddingContextOptions = {
    model: LlamaModel;
    /** text context size */
    contextSize?: number;
    /** prompt processing batch size */
    batchSize?: number;
    /**
     * number of threads to use to evaluate tokens.
     * set to 0 to use the maximum threads supported by the current machine hardware
     */
    threads?: number;
};
export declare class LlamaEmbeddingContext {
    readonly onDispose: EventRelay<void>;
    constructor({ model, contextSize, batchSize, threads }: LlamaEmbeddingContextOptions);
    getEmbeddingFor(input: Token[] | string | LlamaText): Promise<LlamaEmbedding>;
    dispose(): void;
    /** @hidden */
    [Symbol.dispose](): void;
    get disposed(): boolean;
}
export type LlamaEmbeddingJSON = {
    type: "LlamaEmbedding";
    vector: number[];
};
export declare class LlamaEmbedding {
    readonly vector: number[];
    constructor({ vector }: {
        vector: number[];
    });
    toJSON(): LlamaEmbeddingJSON;
    static fromJSON(json: LlamaEmbeddingJSON): LlamaEmbedding;
}
