/**
 * Unicode Confusable Folding
 *
 * Cross-script homoglyph attacks swap a single Latin letter for an
 * identical-looking glyph from another script (e.g. Cyrillic `е` U+0435 for
 * Latin `e`), so `ignorе all previous instructions` reads as English but never
 * matches an ASCII regex. `foldConfusables` normalises such text back to its
 * Latin skeleton so the instruction detector can match the real intent.
 *
 * Two stages:
 *   1. NFKC normalisation — folds fullwidth forms, many mathematical
 *      alphanumerics, ligatures, etc. down to their ASCII compatibility forms.
 *   2. A curated cross-script lookalike table — the high-frequency Cyrillic and
 *      Greek glyphs that NFKC does NOT touch (NFKC preserves script identity for
 *      these). This is deliberately NOT exhaustive: it targets the glyphs that
 *      actually show up in homoglyph injection attacks, not the full Unicode
 *      confusables database.
 */
/**
 * Fold a string to its Latin skeleton: NFKC first, then map curated
 * cross-script confusables to their Latin lookalikes.
 */
export declare function foldConfusables(s: string): string;
/**
 * True when a cross-script confusable substitution changed something beyond
 * what plain NFKC normalisation does — i.e. one of the curated Cyrillic/Greek
 * glyphs was present and got folded to a different Latin letter. Genuine
 * NFKC-only changes (fullwidth, ligatures) do NOT count.
 */
export declare function hasConfusables(s: string): boolean;
