import type { GlyphInfo } from "../../types.ts"; /** * Georgian shaper * Handles Georgian script (Mkhedruli, Asomtavruli, Nuskhuri) * * Georgian is relatively simple compared to other complex scripts: * - No complex reordering * - No joining behavior * - Case transformations (Mkhedruli lowercase, Mtavruli uppercase) * - Historical scripts (Asomtavruli, Nuskhuri) * * Main complexity: * - Mtavruli (uppercase) added in Unicode 11.0 * - Stylistic variants between scripts * - Small caps via 'smcp' feature */ /** * Georgian character categories */ export declare enum GeorgianCategory { Other = 0, Mkhedruli = 1,// Modern lowercase (10D0-10FA, 10FC, 10FD-10FF) Mtavruli = 2,// Modern uppercase (1C90-1CBA, 1CBD-1CBF) Asomtavruli = 3,// Old Church uppercase (10A0-10C5, 10C7, 10CD) Nuskhuri = 4,// Old Church lowercase (2D00-2D25, 2D27, 2D2D) Modifier = 5,// Modifiers (10FB) Punctuation = 6,// Punctuation (10FB) Digit = 7,// Digits (using Latin digits with Georgian) Letter = 8 } /** * Get Georgian category for codepoint */ export declare function getGeorgianCategory(cp: number): GeorgianCategory; /** * Check if character is a Georgian letter */ export declare function isGeorgianLetter(cp: number): boolean; /** * Georgian case mapping (Mkhedruli <-> Mtavruli) * Returns the corresponding uppercase/lowercase codepoint, or 0 if none */ export declare function georgianToUpper(cp: number): number; export declare function georgianToLower(cp: number): number; /** * Georgian feature masks */ export declare const GeorgianFeatureMask: { readonly ccmp: 1; readonly locl: 2; readonly calt: 4; readonly liga: 8; readonly smcp: 16; readonly c2sc: 32; readonly case_: 64; readonly cpsp: 128; }; /** * Set up masks for Georgian shaping */ export declare function setupGeorgianMasks(infos: GlyphInfo[]): void; /** * Get default Georgian features in order */ export declare function getGeorgianFeatures(): string[]; /** * Check if script uses Georgian shaper */ export declare function usesGeorgian(script: string): boolean;