"""Type stubs for translit._enums."""

import enum
from typing import TypedDict

class Script(enum.Enum):
    # Major world scripts
    LATIN = ...
    CYRILLIC = ...
    GREEK = ...
    ARABIC = ...
    HEBREW = ...
    # Indic scripts
    DEVANAGARI = ...
    BENGALI = ...
    GURMUKHI = ...
    GUJARATI = ...
    ORIYA = ...
    TAMIL = ...
    TELUGU = ...
    KANNADA = ...
    MALAYALAM = ...
    MEETEI_MAYEK = ...
    OL_CHIKI = ...
    SINHALA = ...
    # East Asian scripts
    HAN = ...
    HIRAGANA = ...
    KATAKANA = ...
    HANGUL = ...
    LISU = ...
    # Southeast Asian scripts
    THAI = ...
    LAO = ...
    MYANMAR = ...
    KHMER = ...
    BALINESE = ...
    BUGINESE = ...
    CHAM = ...
    JAVANESE = ...
    SUNDANESE = ...
    TAGALOG = ...
    TAI_LE = ...
    TAI_THAM = ...
    NEW_TAI_LUE = ...
    # Central/North Asian scripts
    TIBETAN = ...
    MONGOLIAN = ...
    # Caucasian scripts
    GEORGIAN = ...
    ARMENIAN = ...
    # African scripts
    ETHIOPIC = ...
    NKO = ...
    BAMUM = ...
    TIFINAGH = ...
    VAI = ...
    # Middle Eastern scripts
    SYRIAC = ...
    THAANA = ...
    COPTIC = ...
    # Americas
    CHEROKEE = ...
    CANADIAN_ABORIGINAL = ...
    # Historical European scripts
    RUNIC = ...
    OGHAM = ...
    GOTHIC = ...
    # Ancient Near Eastern scripts
    OLD_PERSIAN = ...
    CUNEIFORM = ...
    LINEAR_B = ...
    # Meta-scripts
    COMMON = ...
    INHERITED = ...

# European languages
LANG_BG: str
LANG_CA: str
LANG_CS: str
LANG_CY: str
LANG_DA: str
LANG_DE: str
LANG_EL: str
LANG_ES: str
LANG_ET: str
LANG_FI: str
LANG_FR: str
LANG_GA: str
LANG_HR: str
LANG_HU: str
LANG_IS: str
LANG_IT: str
LANG_LT: str
LANG_LV: str
LANG_MT: str
LANG_NL: str
LANG_NO: str
LANG_PL: str
LANG_PT: str
LANG_RO: str
LANG_SK: str
LANG_SL: str
LANG_SQ: str
LANG_SR: str
LANG_SV: str
LANG_TR: str
LANG_UK: str
LANG_VI: str
# Non-European languages
LANG_AR: str
LANG_FA: str
LANG_JA: str
LANG_KO: str
LANG_RU: str
LANG_ZH: str
# Semitic
LANG_HE: str
# Caucasian
LANG_HY: str
LANG_KA: str
# South Asian (non-Indic)
LANG_SI: str
# Southeast Asian (Tai)
LANG_LO: str
LANG_TH: str
# Southeast Asian (Brahmic)
LANG_KM: str
LANG_MY: str
# Tibetan
LANG_BO: str
# Ethiopian
LANG_AM: str
# Indic
LANG_AS: str
LANG_BN: str
LANG_GU: str
LANG_HI: str
LANG_KN: str
LANG_ML: str
LANG_MR: str
LANG_NE: str
LANG_OR: str
LANG_PA: str
LANG_SA: str
LANG_TA: str
LANG_TE: str
# New scripts (v0.1.5)
LANG_DV: str
LANG_JV: str
LANG_MN: str
# New scripts (v0.3.0+)
LANG_BAN: str
LANG_BAX: str
LANG_BUG: str
LANG_CHR: str
LANG_CJM: str
LANG_COP: str
LANG_KHB: str
LANG_LIS: str
LANG_MNI: str
LANG_NOD: str
LANG_NQO: str
LANG_SAT: str
LANG_SU: str
LANG_SYR: str
LANG_TDD: str
LANG_TL: str
LANG_TZM: str
LANG_VAI: str
# Auto-detection
LANG_AUTO: str

class LangMeta(TypedDict):
    name: str
    script: str
    region: str

class ScriptMeta(TypedDict):
    name: str
    default_lang: str | None
    example: str

LANG_META: dict[str, LangMeta]
SCRIPT_META: dict[str, ScriptMeta]
