import type { GlyphInfo } from "../../types.ts"; /** * Ethiopic shaper * Handles Ethiopic/Ge'ez script * * Ethiopic is an abugida (alphasyllabary) where: * - Base consonants have inherent vowel 'a' * - Vowels modify the base consonant shape * - No joining behavior (unlike Arabic) * - Left-to-right direction * * Key features: * - Syllable-based writing (CV or CVC) * - Labialization marks (W modifier) * - Extended character sets for various languages */ /** * Ethiopic character categories */ export declare enum EthiopicCategory { Other = 0, Syllable = 1,// Main syllabic characters (consonant + vowel) Digit = 2,// Ethiopic digits Punctuation = 3,// Ethiopic punctuation Modifier = 4,// Combining marks ToneMark = 5 } /** * Get Ethiopic category for codepoint */ export declare function getEthiopicCategory(cp: number): EthiopicCategory; /** * Check if codepoint is an Ethiopic syllable */ export declare function isEthiopicSyllable(cp: number): boolean; /** * Get the vowel form of an Ethiopic syllable (0-7) * 0 = First form (inherent ä or a) * 1 = Second form (u) * 2 = Third form (i) * 3 = Fourth form (a) * 4 = Fifth form (e) * 5 = Sixth form (ə or no vowel) * 6 = Seventh form (o) * 7 = Eighth form (wa) - labialized */ export declare function getEthiopicVowelForm(cp: number): number; /** * Ethiopic feature masks */ export declare const EthiopicFeatureMask: { readonly ccmp: 1; readonly locl: 2; readonly calt: 4; readonly liga: 8; readonly ss01: 16; readonly ss02: 32; }; /** * Set up masks for Ethiopic shaping */ export declare function setupEthiopicMasks(infos: GlyphInfo[]): void; /** * Get default Ethiopic features in order */ export declare function getEthiopicFeatures(): string[]; /** * Check if script uses Ethiopic shaper */ export declare function usesEthiopic(script: string): boolean;