/** * Unicode Script Detection * Detects the script of text based on codepoints */ /** * Unicode script values (ISO 15924) */ export declare enum Script { Common = "Zyyy", Inherited = "Zinh", Unknown = "Zzzz", Latin = "Latn", Greek = "Grek", Cyrillic = "Cyrl", Armenian = "Armn", Hebrew = "Hebr", Arabic = "Arab", Syriac = "Syrc", Thaana = "Thaa", Devanagari = "Deva", Bengali = "Beng", Gurmukhi = "Guru", Gujarati = "Gujr", Oriya = "Orya", Tamil = "Taml", Telugu = "Telu", Kannada = "Knda", Malayalam = "Mlym", Sinhala = "Sinh", Thai = "Thai", Lao = "Laoo", Tibetan = "Tibt", Myanmar = "Mymr", Georgian = "Geor", Hangul = "Hang", Ethiopic = "Ethi", Cherokee = "Cher", CanadianAboriginal = "Cans", Ogham = "Ogam", Runic = "Runr", Khmer = "Khmr", Mongolian = "Mong", Hiragana = "Hira", Katakana = "Kana", Bopomofo = "Bopo", Han = "Hani", Yi = "Yiii", OldItalic = "Ital", Gothic = "Goth", Deseret = "Dsrt", Tagalog = "Tglg", Hanunoo = "Hano", Buhid = "Buhd", Tagbanwa = "Tagb", Limbu = "Limb", TaiLe = "Tale", LinearB = "Linb", Ugaritic = "Ugar", Shavian = "Shaw", Osmanya = "Osma", Cypriot = "Cprt", Braille = "Brai", Buginese = "Bugi", Coptic = "Copt", NewTaiLue = "Talu", Glagolitic = "Glag", Tifinagh = "Tfng", SylotiNagri = "Sylo", OldPersian = "Xpeo", Kharoshthi = "Khar", Balinese = "Bali", Cuneiform = "Xsux", Phoenician = "Phnx", PhagsPa = "Phag", Nko = "Nkoo", Sundanese = "Sund", Lepcha = "Lepc", OlChiki = "Olck", Vai = "Vaii", Saurashtra = "Saur", KayahLi = "Kali", Rejang = "Rjng", Lycian = "Lyci", Carian = "Cari", Lydian = "Lydi", Cham = "Cham", TaiTham = "Lana", TaiViet = "Tavt", Avestan = "Avst", EgyptianHieroglyphs = "Egyp", Samaritan = "Samr", Lisu = "Lisu", Bamum = "Bamu", Javanese = "Java", MeeteiMayek = "Mtei", ImperialAramaic = "Armi", OldSouthArabian = "Sarb", InscriptionalParthian = "Prti", InscriptionalPahlavi = "Phli", OldTurkic = "Orkh", Kaithi = "Kthi", Batak = "Batk", Brahmi = "Brah", Mandaic = "Mand", Chakma = "Cakm", MeroiticCursive = "Merc", MeroiticHieroglyphs = "Mero", Miao = "Plrd", Sharada = "Shrd", SoraSompeng = "Sora", Takri = "Takr", CaucasianAlbanian = "Aghb", BassaVah = "Bass", Duployan = "Dupl", Elbasan = "Elba", Grantha = "Gran", PahawhHmong = "Hmng", Khojki = "Khoj", LinearA = "Lina", Mahajani = "Mahj", Manichaean = "Mani", MendeKikakui = "Mend", Modi = "Modi", Mro = "Mroo", OldNorthArabian = "Narb", Nabataean = "Nbat", Palmyrene = "Palm", PauCinHau = "Pauc", OldPermic = "Perm", PsalterPahlavi = "Phlp", Siddham = "Sidd", Khudawadi = "Sind", Tirhuta = "Tirh", WarangCiti = "Wara", Ahom = "Ahom", AnatolianHieroglyphs = "Hluw", Hatran = "Hatr", Multani = "Mult", OldHungarian = "Hung", SignWriting = "Sgnw", Adlam = "Adlm", Bhaiksuki = "Bhks", Marchen = "Marc", Newa = "Newa", Osage = "Osge", Tangut = "Tang", MasaramGondi = "Gonm", Nushu = "Nshu", Soyombo = "Soyo", ZanabazarSquare = "Zanb", Dogra = "Dogr", GunjalaGondi = "Gong", Makasar = "Maka", Medefaidrin = "Medf", HanifiRohingya = "Rohg", Sogdian = "Sogd", OldSogdian = "Sogo", Elymaic = "Elym", Nandinagari = "Nand", NyiakengPuachueHmong = "Hmnp", Wancho = "Wcho", Yezidi = "Yezi", Chorasmian = "Chrs", DivesAkuru = "Diak", KhitanSmallScript = "Kits", Vithkuqi = "Vith", OldUyghur = "Ougr", Cypro_Minoan = "Cpmn", Tangsa = "Tnsa", Toto = "Toto", Kawi = "Kawi", NagMundari = "Nagm" } /** * Get script for a codepoint using binary search * @param cp Unicode codepoint to check * @returns The script for the given codepoint */ export declare function getScript(cp: number): Script; /** * Get script for a string (returns the dominant non-Common/Inherited script) * @param text Text string to analyze * @returns The dominant script found in the text (most frequent non-Common/Inherited script) */ export declare function detectScript(text: string): Script; /** * Get all scripts present in text * @param text Text string to analyze * @returns Array of all scripts found in the text */ export declare function getScripts(text: string): Script[]; /** * Check if text contains only characters from a specific script * (Common and Inherited are allowed) * @param text Text string to check * @param script Script to check against * @returns True if text contains only characters from the specified script (plus Common/Inherited) */ export declare function isScript(text: string, script: Script): boolean; /** * Script run - a contiguous sequence of characters with the same script */ export interface ScriptRun { script: Script; start: number; end: number; text: string; } /** * Split text into script runs * @param text Text string to split * @returns Array of script runs, where each run is a contiguous sequence of characters with the same script */ export declare function getScriptRuns(text: string): ScriptRun[]; /** * Get OpenType script tag for a Unicode script * @param script Unicode script to convert * @returns OpenType script tag (4-character string like "latn", "arab", etc.) */ export declare function getScriptTag(script: Script): string; /** * Check if a script requires complex shaping * @param script Script to check * @returns True if the script requires complex shaping (e.g., Arabic, Devanagari, Thai) */ export declare function isComplexScript(script: Script): boolean; /** * Get script direction (LTR or RTL) * @param script Script to check * @returns Direction of the script: "ltr" for left-to-right or "rtl" for right-to-left */ export declare function getScriptDirection(script: Script): "ltr" | "rtl";