/**
 * 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<FuzzyMatchConfig>): 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<FuzzyMatchConfig>): {
    match: string;
    score: number;
    index: number;
} | null;
/**
 * Sort candidates by fuzzy match score
 */
export declare function sortByFuzzyScore(query: string, candidates: string[], config?: Partial<FuzzyMatchConfig>): Array<{
    value: string;
    score: number;
}>;
/**
 * Highlight matched portions of text
 */
export declare function highlightMatch(text: string, query: string, highlightStart?: string, highlightEnd?: string, config?: Partial<FuzzyMatchConfig>): 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