import { globby } from "globby";
import { extractStringsFromFile, StringOccurrence } from "@tools/string-duplication/string-extractor";
import { normalizeString } from "@tools/string-duplication/normalizer";
export interface StringOccurrenceWithNormalized extends StringOccurrence {
    normalized: string;
}
export interface AnalyzeDeps {
    includePatterns: readonly string[];
    excludePatterns: readonly string[];
    excludedStrings: readonly string[];
    glob: typeof globby;
    extract: typeof extractStringsFromFile;
    normalize: typeof normalizeString;
}
export type DuplicatesMap = Map<string, StringOccurrenceWithNormalized[]>;
export declare function buildDuplicatesMap(occurrences: readonly StringOccurrence[], normalize: typeof normalizeString): DuplicatesMap;
export declare function analyzeCodebase(deps: AnalyzeDeps): Promise<DuplicatesMap>;
export declare function hasDuplicates(duplicatesMap: Map<string, StringOccurrenceWithNormalized[]>): boolean;
