/** Fold case + diacritics for matching, so search is forgiving: `cafe` matches * `Café`, `dieu` matches `Điều`, `da giac` matches `Đa Giác`. Still * substring-based (predictable — no subsequence/typo noise); the typed value * keeps its original accents. * * ONE definition, because every list in the kit that filters must agree on what * a query matches. Two of them is not a style problem: a reader who found a row * by typing unaccented text in one list and finds nothing in the next reads the * second as missing data, and nothing on either screen says the rule differed. * `Đ`/`đ` needs the explicit fold — NFD leaves it a single codepoint with no * combining mark to strip, so it survives the diacritic pass unchanged. */ export declare function normalizeForSearch(s: string): string; /** * A CODE the way a person types it — a plate, a container number, a voucher * number. `14B-031.02` is punctuated three different ways across one yard's * paperwork and nobody typing fast reproduces any of them, so both sides drop * everything that is not a letter or a digit before matching: `14b031` finds * it, and so does `031.02`. Still a substring test, never a subsequence one, or * `1402` would match half the register. */ export declare function codeKey(s: string): string; /** Does any of these fields answer the query, as a code? An empty query matches everything. */ export declare function codeMatches(query: string, ...fields: string[]): boolean;