export declare function levenshtein(a: string, b: string): number; /** * Find the candidate string closest to `name` by edit distance. Returns null * when no candidate is close enough to be a likely typo (max 2 edits, and the * distance must be strictly less than the input's own length so a totally * unrelated short name doesn't trigger). */ export declare function closestNameTo(name: string, candidates: Iterable): string | null; /** * Build the trailing " Did you mean 'X'?" hint for a rejection against a closed * set of names — the canonical way to satisfy the closest-name DX mandate (see * the error-consistency rules in CLAUDE.md). Returns "" when no candidate is * close enough, so the call site can interpolate the result unconditionally. * * `format` renders the suggestion the way the surrounding message spells the * name: the default is the instance-method form (`.foo()`); pass * `(s) => \`Class.\${s}\`` for statics, or `(s) => s` for bare names (stages). */ export declare function didYouMean(name: string, candidates: Iterable, format?: (s: string) => string): string; //# sourceMappingURL=levenshtein.d.ts.map