import type { GlyphInfo } from "../../types.ts"; /** * Mongolian shaper * Handles Traditional Mongolian, Manchu, and Sibe scripts * * Mongolian is written vertically (top to bottom, left to right columns). * Like Arabic, it has context-sensitive letter forms: * - Initial, Medial, Final, and Isolated forms * * Key characteristics: * - Vertical writing * - Positional forms (like Arabic joining) * - Free variation selectors (FVS1-FVS4) * - Vowel separators (MVS, NNBSP) */ /** * Mongolian character categories */ export declare enum MongolianCategory { Other = 0, Letter = 1,// Regular letters Vowel = 2,// Vowels Digit = 3,// Digits Punctuation = 4,// Punctuation FVS = 5,// Free Variation Selector MVS = 6,// Mongolian Vowel Separator (180E) NNBSP = 7,// Narrow No-Break Space (202F) ZWJ = 8,// Zero Width Joiner ZWNJ = 9 } /** * Mongolian joining types (like Arabic) */ export declare enum MongolianJoining { NonJoining = 0, RightJoining = 1,// Joins to right (previous in text order) DualJoining = 2,// Joins both sides LeftJoining = 3,// Joins to left (next in text order) - rare Transparent = 4,// Invisible control characters Causing = 5 } /** * Get Mongolian category */ export declare function getMongolianCategory(cp: number): MongolianCategory; /** * Get Mongolian joining type for a codepoint */ export declare function getMongolianJoining(cp: number): MongolianJoining; /** * Mongolian positional forms */ export declare enum MongolianForm { Isolated = 0, Initial = 1, Medial = 2, Final = 3 } /** * Determine positional form for a Mongolian character */ export declare function getMongolianForm(prev: MongolianJoining, current: MongolianJoining, next: MongolianJoining): MongolianForm; /** * Mongolian feature masks */ export declare const MongolianFeatureMask: { readonly ccmp: 1; readonly locl: 2; readonly isol: 4; readonly init: 8; readonly medi: 16; readonly fina: 32; readonly rlig: 64; readonly calt: 128; readonly liga: 256; readonly vert: 512; }; /** * Set up masks for Mongolian shaping */ export declare function setupMongolianMasks(infos: GlyphInfo[]): void; /** * Get default Mongolian features in order */ export declare function getMongolianFeatures(): string[]; /** * Check if script uses Mongolian shaper */ export declare function usesMongolian(script: string): boolean;