import type { GlyphInfo } from "../../types.ts"; /** * Universal Shaping Engine (USE) categories * Based on Unicode USE specification */ export declare enum UseCategory { O = 0,// Other B = 1,// Base CGJ = 2,// Combining Grapheme Joiner CM = 3,// Consonant modifier CS = 4,// Consonant with stacker F = 5,// Final FM = 6,// Final modifier GB = 7,// Generic base H = 8,// Halant/Virama HN = 9,// Halant or Nukta IND = 10,// Independent J = 11,// Joiner N = 12,// Nukta R = 13,// Repha S = 14,// Symbol SB = 15,// Symbol modifier SE = 16,// Syllable ending SUB = 17,// Subjoined VS = 18,// Variation selector WJ = 19,// Word joiner ZWJ = 20,// Zero Width Joiner ZWNJ = 21,// Zero Width Non-Joiner V = 22,// Vowel (independent) VD = 23,// Vowel dependent VMAbv = 24,// Vowel modifier above VMBlw = 25,// Vowel modifier below VMPre = 26,// Vowel modifier pre VMPst = 27,// Vowel modifier post VAbv = 28,// Vowel above VBlw = 29,// Vowel below VPre = 30,// Vowel pre VPst = 31,// Vowel post SMAbv = 32,// Syllable modifier above SMBlw = 33,// Syllable modifier below FAbv = 34,// Final above FBlw = 35,// Final below FPst = 36,// Final post MAbv = 37,// Medial above MBlw = 38,// Medial below MPre = 39,// Medial pre MPst = 40 } /** * Check if a script uses USE */ export declare function usesUSE(script: string): boolean; /** * Get USE category for a codepoint */ export declare function getUseCategory(cp: number): UseCategory; /** USE feature masks */ export declare const UseFeatureMask: { readonly rphf: 1; readonly pref: 2; readonly blwf: 4; readonly abvf: 8; readonly pstf: 16; readonly half: 32; readonly cjct: 64; readonly vatu: 128; readonly pres: 256; readonly abvs: 512; readonly blws: 1024; readonly psts: 2048; readonly haln: 4096; }; /** * Set up masks for USE shaping */ export declare function setupUseMasks(infos: GlyphInfo[]): void; /** * Reorder USE syllables (pre-base vowels, reph) */ export declare function reorderUSE(infos: GlyphInfo[]): void;