import { Range } from "../util/range.js"; import { TokenizedFile } from "..//file/tokenizedFile.js"; import { SharedFingerprint } from "./sharedFingerprint.js"; import { ASTRegion } from "./pairedOccurrence.js"; import { Pair } from "./pair.js"; export type Hash = number; export interface FileEntry { file: TokenizedFile; kgrams: Array; shared: Set; ignored: Set; isIgnored: boolean; } export interface Occurrence { file: TokenizedFile; side: ASTRegion; } export declare class FingerprintIndex { private readonly kgramLength; private readonly kgramsInWindow; private maxFingerprintFileCount; private readonly hashFilter; private readonly files; private readonly ignoredFiles; private readonly index; private readonly ignoredHashes; /** * Creates a Fingerprint Index which is able to compare files with each other * based on their winnowed fingerprints (kgrams of tokens). * */ constructor(kgramLength: number, kgramsInWindow: number, kgramData?: boolean, maxFingerprintFileCount?: number); addIgnoredFile(file: TokenizedFile): void; getMaxFingerprintFileCount(): number; updateMaxFingerprintFileCount(maxFingerprintFileCount: number | undefined): void; addFiles(tokenizedFiles: TokenizedFile[]): Map; private addEntry; addIgnoredHashes(hashes: Array): void; private ignoreSharedFingerprint; private unIgnoreSharedFingerprint; sharedFingerprints(): Array; entries(): Array; ignoredEntries(): Array; getPair(file1: TokenizedFile, file2: TokenizedFile): Pair; allPairs(sortBy?: string): Array; } //# sourceMappingURL=fingerprintIndex.d.ts.map