/** * grapheme-cluster + display-width helpers. layoutText needs these so wrapping and hard-breaking * never split a surrogate pair or an emoji ZWJ sequence in half, and so CJK/emoji text is measured * at its real on-screen width instead of the latin-average estimate. */ /** split text into user-perceived characters — never breaks a surrogate pair or a ZWJ sequence. */ export declare function graphemes(text: string): string[]; /** width of one grapheme cluster in "latin-char" units (1 = the base char cell, 2 = wide/emoji). */ export declare function clusterWidth(cluster: string): number; /** total width of a string in "latin-char" units — sums per-grapheme, not per-code-unit. */ export declare function textWidthUnits(text: string): number; /** first grapheme of `name`, upper-cased if it's a letter — safe avatar/contact initial. */ export declare function initialOf(name: string): string; //# sourceMappingURL=unicode.d.ts.map