/** * Layout-preserving text masking. * * Masked text must occupy the same rendered width as the original: if it * re-wraps, everything below it shifts, and replayed clicks/scrolls * (recorded against the real layout) land in the wrong place. * * Two layers: * - Measured (main path): per word, build a placeholder from the symbol * alphabet * # _ & @ whose width (computed from canvas-measured per-font * glyph advances) matches the original within WIDTH_TOLERANCE. * - Static (fallback, never throws): per-grapheme substitution — CJK and * emoji → *, anything else → *. Used when measurement is unavailable or * not worth it. */ export declare function isSeparatorCode(code: number): boolean; /** Layer 1: static width-class masking. Never throws, needs no DOM access. */ export declare function staticMaskText(value: string): string; /** * Mask `value` while preserving its rendered layout. Uses measured * placeholders when `element` and canvas metrics are available, otherwise * the static width-class map. */ export declare function maskTextValue(value: string, element: HTMLElement | null): string; /** Test-only: reset module-level caches and canvas state. */ export declare function resetTextMaskStateForTesting(): void; //# sourceMappingURL=text-mask.d.ts.map