/** * Fuzzy Matching Algorithm * * Implements fuzzy string matching with support for: * - Exact matches * - Prefix matches * - Substring matches * - Character-by-character fuzzy matching * - Word boundary bonuses (camelCase, snake_case) * * @since v1.68.0 */ import type { FuzzyMatchResult } from './search-types.js'; /** * Configuration for fuzzy matching */ export interface FuzzyMatchConfig { /** Bonus for exact match */ exactMatchBonus: number; /** Bonus for prefix match */ prefixMatchBonus: number; /** Bonus for contains match */ containsMatchBonus: number; /** Bonus for consecutive character matches */ consecutiveBonus: number; /** Bonus for word boundary matches */ wordBoundaryBonus: number; /** Penalty for gaps between matches */ gapPenalty: number; /** Case sensitivity */ caseSensitive: boolean; } /** * Default fuzzy match configuration */ export declare const DEFAULT_FUZZY_CONFIG: FuzzyMatchConfig; /** * Perform fuzzy matching between query and target */ export declare function fuzzyMatch(query: string, target: string, config?: Partial): FuzzyMatchResult; /** * Calculate Levenshtein distance between two strings */ export declare function levenshteinDistance(a: string, b: string): number; /** * Calculate similarity score based on Levenshtein distance */ export declare function levenshteinSimilarity(a: string, b: string): number; /** * Find best fuzzy match from a list of candidates */ export declare function findBestMatch(query: string, candidates: string[], config?: Partial): { match: string; score: number; index: number; } | null; /** * Sort candidates by fuzzy match score */ export declare function sortByFuzzyScore(query: string, candidates: string[], config?: Partial): Array<{ value: string; score: number; }>; /** * Highlight matched portions of text */ export declare function highlightMatch(text: string, query: string, highlightStart?: string, highlightEnd?: string, config?: Partial): string; /** * Split text into searchable tokens */ export declare function tokenizeText(text: string): string[]; /** * Generate n-grams from text for fuzzy indexing */ export declare function generateNgrams(text: string, n?: number): string[]; //# sourceMappingURL=fuzzy-matcher.d.ts.map