/** * Ranks short labels (chat titles, action names) against what someone typed. * * Higher is better; `null` means no match. Tiers, best first: * whole label starts with the query, a word starts with it, it appears * anywhere, every query word appears in some order, and finally the query's * letters appear in order ("kbsh" → "Keyboard shortcuts"). Within a tier, * shorter labels and earlier positions win. Letters-in-order matches rank below * `LOOSE_MATCH_BELOW`, so a list can drop them once it has real matches. */ /** Ranks below this are letters-in-order guesses rather than real matches. */ export declare const LOOSE_MATCH_BELOW = 400; /** Case- and accent-insensitive form used for matching. */ export declare function foldForSearch(value: string): string; export declare function rankLabel(rawLabel: string, rawQuery: string): number | null; /** The best rank across a label and extra keywords (a keyword match ranks below the same match on the name). */ export declare function rankWithKeywords(label: string, keywords: readonly string[] | undefined, query: string): number | null;