export type TermVector = Record<string, number>;
export declare class SimilarityEngine {
    private readonly stopWords;
    private readonly tokenCache;
    private readonly cacheExpiration;
    constructor();
    private normalize;
    private tokenize;
    private computeTermFrequency;
    private computeInverseDocumentFrequency;
    private buildVector;
    private buildVectorsFromTokens;
    calculateCosineSimilarity(vectorA: TermVector, vectorB: TermVector): number;
    generateVectors(texts: string[]): Promise<TermVector[]>;
    getVector(text: string, corpus?: string[]): Promise<TermVector>;
    findSimilarTexts(referenceText: string, candidateTexts: string[], limit?: number, threshold?: number): Promise<Array<{
        text: string;
        score: number;
    }>>;
    calculateTextSimilarity(textA: string, textB: string): Promise<number>;
}
