---@meta

MESSAGE_SCROLLBUTTON_INITIAL_DELAY = 0
MESSAGE_SCROLLBUTTON_SCROLL_DELAY = 0.05
CHAT_BUTTON_FLASH_TIME = 0.5
CHAT_TELL_ALERT_TIME = 300
NUM_CHAT_WINDOWS = 7
DEFAULT_CHAT_FRAME = ChatFrame1
NUM_REMEMBERED_TELLS = 10
ChatTypeInfo = {  }
ChatTypeInfo["SAY"] = { sticky = 1 }
ChatTypeInfo["PARTY"] = { sticky = 1 }
ChatTypeInfo["RAID"] = { sticky = 1 }
ChatTypeInfo["GUILD"] = { sticky = 1 }
ChatTypeInfo["OFFICER"] = { sticky = 1 }
ChatTypeInfo["YELL"] = { sticky = 0 }
ChatTypeInfo["WHISPER"] = { sticky = 1 }
ChatTypeInfo["WHISPER_INFORM"] = { sticky = 0 }
ChatTypeInfo["REPLY"] = { sticky = 0 }
ChatTypeInfo["EMOTE"] = { sticky = 0 }
ChatTypeInfo["TEXT_EMOTE"] = { sticky = 0 }
ChatTypeInfo["SYSTEM"] = { sticky = 0 }
ChatTypeInfo["MONSTER_WHISPER"] = { sticky = 0 }
ChatTypeInfo["MONSTER_SAY"] = { sticky = 0 }
ChatTypeInfo["MONSTER_YELL"] = { sticky = 0 }
ChatTypeInfo["MONSTER_EMOTE"] = { sticky = 0 }
ChatTypeInfo["CHANNEL"] = { sticky = 1 }
ChatTypeInfo["CHANNEL_JOIN"] = { sticky = 0 }
ChatTypeInfo["CHANNEL_LEAVE"] = { sticky = 0 }
ChatTypeInfo["CHANNEL_LIST"] = { sticky = 0 }
ChatTypeInfo["CHANNEL_NOTICE"] = { sticky = 0 }
ChatTypeInfo["CHANNEL_NOTICE_USER"] = { sticky = 0 }
ChatTypeInfo["AFK"] = { sticky = 0 }
ChatTypeInfo["DND"] = { sticky = 0 }
ChatTypeInfo["IGNORED"] = { sticky = 0 }
ChatTypeInfo["SKILL"] = { sticky = 0 }
ChatTypeInfo["LOOT"] = { sticky = 0 }
ChatTypeInfo["COMBAT_ERROR"] = { sticky = 0 }
ChatTypeInfo["COMBAT_MISC_INFO"] = { sticky = 0 }
ChatTypeInfo["CHANNEL1"] = { sticky = 0 }
ChatTypeInfo["CHANNEL2"] = { sticky = 0 }
ChatTypeInfo["CHANNEL3"] = { sticky = 0 }
ChatTypeInfo["CHANNEL4"] = { sticky = 0 }
ChatTypeInfo["CHANNEL5"] = { sticky = 0 }
ChatTypeInfo["CHANNEL6"] = { sticky = 0 }
ChatTypeInfo["CHANNEL7"] = { sticky = 0 }
ChatTypeInfo["CHANNEL8"] = { sticky = 0 }
ChatTypeInfo["CHANNEL9"] = { sticky = 0 }
ChatTypeInfo["CHANNEL10"] = { sticky = 0 }
ChatTypeInfo["COMBAT_SELF_HITS"] = { sticky = 0 }
ChatTypeInfo["COMBAT_SELF_MISSES"] = { sticky = 0 }
ChatTypeInfo["COMBAT_PET_HITS"] = { sticky = 0 }
ChatTypeInfo["COMBAT_PET_MISSES"] = { sticky = 0 }
ChatTypeInfo["COMBAT_PARTY_HITS"] = { sticky = 0 }
ChatTypeInfo["COMBAT_PARTY_MISSES"] = { sticky = 0 }
ChatTypeInfo["COMBAT_FRIENDLYPLAYER_HITS"] = { sticky = 0 }
ChatTypeInfo["COMBAT_FRIENDLYPLAYER_MISSES"] = { sticky = 0 }
ChatTypeInfo["COMBAT_HOSTILEPLAYER_HITS"] = { sticky = 0 }
ChatTypeInfo["COMBAT_HOSTILEPLAYER_MISSES"] = { sticky = 0 }
ChatTypeInfo["COMBAT_CREATURE_VS_SELF_HITS"] = { sticky = 0 }
ChatTypeInfo["COMBAT_CREATURE_VS_SELF_MISSES"] = { sticky = 0 }
ChatTypeInfo["COMBAT_CREATURE_VS_PARTY_HITS"] = { sticky = 0 }
ChatTypeInfo["COMBAT_CREATURE_VS_PARTY_MISSES"] = { sticky = 0 }
ChatTypeInfo["COMBAT_CREATURE_VS_CREATURE_HITS"] = { sticky = 0 }
ChatTypeInfo["COMBAT_CREATURE_VS_CREATURE_MISSES"] = { sticky = 0 }
ChatTypeInfo["COMBAT_FRIENDLY_DEATH"] = { sticky = 0 }
ChatTypeInfo["COMBAT_HOSTILE_DEATH"] = { sticky = 0 }
ChatTypeInfo["COMBAT_XP_GAIN"] = { sticky = 0 }
ChatTypeInfo["COMBAT_HONOR_GAIN"] = { sticky = 0 }
ChatTypeInfo["SPELL_SELF_DAMAGE"] = { sticky = 0 }
ChatTypeInfo["SPELL_SELF_BUFF"] = { sticky = 0 }
ChatTypeInfo["SPELL_PET_DAMAGE"] = { sticky = 0 }
ChatTypeInfo["SPELL_PET_BUFF"] = { sticky = 0 }
ChatTypeInfo["SPELL_PARTY_DAMAGE"] = { sticky = 0 }
ChatTypeInfo["SPELL_PARTY_BUFF"] = { sticky = 0 }
ChatTypeInfo["SPELL_FRIENDLYPLAYER_DAMAGE"] = { sticky = 0 }
ChatTypeInfo["SPELL_FRIENDLYPLAYER_BUFF"] = { sticky = 0 }
ChatTypeInfo["SPELL_HOSTILEPLAYER_DAMAGE"] = { sticky = 0 }
ChatTypeInfo["SPELL_HOSTILEPLAYER_BUFF"] = { sticky = 0 }
ChatTypeInfo["SPELL_CREATURE_VS_SELF_DAMAGE"] = { sticky = 0 }
ChatTypeInfo["SPELL_CREATURE_VS_SELF_BUFF"] = { sticky = 0 }
ChatTypeInfo["SPELL_CREATURE_VS_PARTY_DAMAGE"] = { sticky = 0 }
ChatTypeInfo["SPELL_CREATURE_VS_PARTY_BUFF"] = { sticky = 0 }
ChatTypeInfo["SPELL_CREATURE_VS_CREATURE_DAMAGE"] = { sticky = 0 }
ChatTypeInfo["SPELL_CREATURE_VS_CREATURE_BUFF"] = { sticky = 0 }
ChatTypeInfo["SPELL_TRADESKILLS"] = { sticky = 0 }
ChatTypeInfo["SPELL_DAMAGESHIELDS_ON_SELF"] = { sticky = 0 }
ChatTypeInfo["SPELL_DAMAGESHIELDS_ON_OTHERS"] = { sticky = 0 }
ChatTypeInfo["SPELL_AURA_GONE_SELF"] = { sticky = 0 }
ChatTypeInfo["SPELL_AURA_GONE_PARTY"] = { sticky = 0 }
ChatTypeInfo["SPELL_AURA_GONE_OTHER"] = { sticky = 0 }
ChatTypeInfo["SPELL_ITEM_ENCHANTMENTS"] = { sticky = 0 }
ChatTypeInfo["SPELL_BREAK_AURA"] = { sticky = 0 }
ChatTypeInfo["SPELL_PERIODIC_SELF_DAMAGE"] = { sticky = 0 }
ChatTypeInfo["SPELL_PERIODIC_SELF_BUFFS"] = { sticky = 0 }
ChatTypeInfo["SPELL_PERIODIC_PARTY_DAMAGE"] = { sticky = 0 }
ChatTypeInfo["SPELL_PERIODIC_PARTY_BUFFS"] = { sticky = 0 }
ChatTypeInfo["SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE"] = { sticky = 0 }
ChatTypeInfo["SPELL_PERIODIC_FRIENDLYPLAYER_BUFFS"] = { sticky = 0 }
ChatTypeInfo["SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE"] = { sticky = 0 }
ChatTypeInfo["SPELL_PERIODIC_HOSTILEPLAYER_BUFFS"] = { sticky = 0 }
ChatTypeInfo["SPELL_PERIODIC_CREATURE_DAMAGE"] = { sticky = 0 }
ChatTypeInfo["SPELL_PERIODIC_CREATURE_BUFFS"] = { sticky = 0 }
ChatTypeInfo["SPELL_FAILED_LOCALPLAYER"] = { sticky = 0 }
ChatTypeInfo["BG_SYSTEM_NEUTRAL"] = { sticky = 0 }
ChatTypeInfo["BG_SYSTEM_ALLIANCE"] = { sticky = 0 }
ChatTypeInfo["BG_SYSTEM_HORDE"] = { sticky = 0 }
ChatTypeInfo["COMBAT_FACTION_CHANGE"] = { sticky = 0 }
ChatTypeInfo["MONEY"] = { sticky = 0 }
ChatTypeInfo["RAID_LEADER"] = { sticky = 0 }
ChatTypeInfo["RAID_WARNING"] = { sticky = 1 }
ChatTypeInfo["RAID_BOSS_EMOTE"] = { sticky = 0 }
ChatTypeInfo["FILTERED"] = { sticky = 0 }
ChatTypeInfo["BATTLEGROUND"] = { sticky = 1 }
ChatTypeInfo["BATTLEGROUND_LEADER"] = { sticky = 0 }
ChatTypeInfo["HARDCORE"] = { sticky = 1 }
ChatTypeGroup = {  }
ChatTypeGroup["SYSTEM"] = { "CHAT_MSG_SYSTEM", "CHAT_MSG_AFK", "CHAT_MSG_DND", "CHAT_MSG_IGNORED", "CHAT_MSG_CHANNEL_LIST", "TIME_PLAYED_MSG", "PLAYER_LEVEL_UP", "CHARACTER_POINTS_CHANGED", "CHAT_MSG_BG_SYSTEM_NEUTRAL", "CHAT_MSG_BG_SYSTEM_ALLIANCE", "CHAT_MSG_BG_SYSTEM_HORDE", "CHAT_MSG_FILTERED" }
ChatTypeGroup["SAY"] = { "CHAT_MSG_SAY", "CHAT_MSG_EMOTE", "CHAT_MSG_TEXT_EMOTE" }
ChatTypeGroup["YELL"] = { "CHAT_MSG_YELL" }
ChatTypeGroup["WHISPER"] = { "CHAT_MSG_WHISPER", "CHAT_MSG_WHISPER_INFORM" }
ChatTypeGroup["PARTY"] = { "CHAT_MSG_PARTY", "CHAT_MSG_RAID", "CHAT_MSG_RAID_LEADER", "CHAT_MSG_RAID_WARNING", "CHAT_MSG_BATTLEGROUND", "CHAT_MSG_BATTLEGROUND_LEADER" }
ChatTypeGroup["GUILD"] = { "CHAT_MSG_GUILD", "CHAT_MSG_OFFICER", "GUILD_MOTD" }
ChatTypeGroup["CREATURE"] = { "CHAT_MSG_MONSTER_SAY", "CHAT_MSG_MONSTER_YELL", "CHAT_MSG_MONSTER_EMOTE", "CHAT_MSG_MONSTER_WHISPER", "CHAT_MSG_RAID_BOSS_EMOTE" }
ChatTypeGroup["CHANNEL"] = { "CHAT_MSG_CHANNEL_JOIN", "CHAT_MSG_CHANNEL_LEAVE", "CHAT_MSG_CHANNEL_NOTICE", "CHAT_MSG_CHANNEL_NOTICE_USER" }
ChatTypeGroup["SKILL"] = { "CHAT_MSG_SKILL" }
ChatTypeGroup["LOOT"] = { "CHAT_MSG_LOOT", "CHAT_MSG_MONEY" }
ChatTypeGroup["COMBAT_ERROR"] = { "CHAT_MSG_COMBAT_ERROR" }
ChatTypeGroup["COMBAT_MISC_INFO"] = { "CHAT_MSG_COMBAT_MISC_INFO" }
ChatTypeGroup["COMBAT_SELF_HITS"] = { "CHAT_MSG_COMBAT_SELF_HITS" }
ChatTypeGroup["COMBAT_SELF_MISSES"] = { "CHAT_MSG_COMBAT_SELF_MISSES" }
ChatTypeGroup["COMBAT_PET_HITS"] = { "CHAT_MSG_COMBAT_PET_HITS" }
ChatTypeGroup["COMBAT_PET_MISSES"] = { "CHAT_MSG_COMBAT_PET_MISSES" }
ChatTypeGroup["COMBAT_PARTY_HITS"] = { "CHAT_MSG_COMBAT_PARTY_HITS" }
ChatTypeGroup["COMBAT_PARTY_MISSES"] = { "CHAT_MSG_COMBAT_PARTY_MISSES" }
ChatTypeGroup["COMBAT_FRIENDLYPLAYER_HITS"] = { "CHAT_MSG_COMBAT_FRIENDLYPLAYER_HITS" }
ChatTypeGroup["COMBAT_FRIENDLYPLAYER_MISSES"] = { "CHAT_MSG_COMBAT_FRIENDLYPLAYER_MISSES" }
ChatTypeGroup["COMBAT_HOSTILEPLAYER_HITS"] = { "CHAT_MSG_COMBAT_HOSTILEPLAYER_HITS" }
ChatTypeGroup["COMBAT_HOSTILEPLAYER_MISSES"] = { "CHAT_MSG_COMBAT_HOSTILEPLAYER_MISSES" }
ChatTypeGroup["COMBAT_CREATURE_VS_SELF_HITS"] = { "CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS" }
ChatTypeGroup["COMBAT_CREATURE_VS_SELF_MISSES"] = { "CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES" }
ChatTypeGroup["COMBAT_CREATURE_VS_PARTY_HITS"] = { "CHAT_MSG_COMBAT_CREATURE_VS_PARTY_HITS" }
ChatTypeGroup["COMBAT_CREATURE_VS_PARTY_MISSES"] = { "CHAT_MSG_COMBAT_CREATURE_VS_PARTY_MISSES" }
ChatTypeGroup["COMBAT_CREATURE_VS_CREATURE_HITS"] = { "CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS" }
ChatTypeGroup["COMBAT_CREATURE_VS_CREATURE_MISSES"] = { "CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_MISSES" }
ChatTypeGroup["COMBAT_FRIENDLY_DEATH"] = { "CHAT_MSG_COMBAT_FRIENDLY_DEATH" }
ChatTypeGroup["COMBAT_HOSTILE_DEATH"] = { "CHAT_MSG_COMBAT_HOSTILE_DEATH" }
ChatTypeGroup["COMBAT_XP_GAIN"] = { "CHAT_MSG_COMBAT_XP_GAIN" }
ChatTypeGroup["COMBAT_HONOR_GAIN"] = { "CHAT_MSG_COMBAT_HONOR_GAIN" }
ChatTypeGroup["SPELL_SELF_DAMAGE"] = { "CHAT_MSG_SPELL_SELF_DAMAGE" }
ChatTypeGroup["SPELL_SELF_BUFF"] = { "CHAT_MSG_SPELL_SELF_BUFF" }
ChatTypeGroup["SPELL_PET_DAMAGE"] = { "CHAT_MSG_SPELL_PET_DAMAGE" }
ChatTypeGroup["SPELL_PET_BUFF"] = { "CHAT_MSG_SPELL_PET_BUFF" }
ChatTypeGroup["SPELL_PARTY_DAMAGE"] = { "CHAT_MSG_SPELL_PARTY_DAMAGE" }
ChatTypeGroup["SPELL_PARTY_BUFF"] = { "CHAT_MSG_SPELL_PARTY_BUFF" }
ChatTypeGroup["SPELL_FRIENDLYPLAYER_DAMAGE"] = { "CHAT_MSG_SPELL_FRIENDLYPLAYER_DAMAGE" }
ChatTypeGroup["SPELL_FRIENDLYPLAYER_BUFF"] = { "CHAT_MSG_SPELL_FRIENDLYPLAYER_BUFF" }
ChatTypeGroup["SPELL_HOSTILEPLAYER_DAMAGE"] = { "CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE" }
ChatTypeGroup["SPELL_HOSTILEPLAYER_BUFF"] = { "CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF" }
ChatTypeGroup["SPELL_CREATURE_VS_SELF_DAMAGE"] = { "CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE" }
ChatTypeGroup["SPELL_CREATURE_VS_SELF_BUFF"] = { "CHAT_MSG_SPELL_CREATURE_VS_SELF_BUFF" }
ChatTypeGroup["SPELL_CREATURE_VS_PARTY_DAMAGE"] = { "CHAT_MSG_SPELL_CREATURE_VS_PARTY_DAMAGE" }
ChatTypeGroup["SPELL_CREATURE_VS_PARTY_BUFF"] = { "CHAT_MSG_SPELL_CREATURE_VS_PARTY_BUFF" }
ChatTypeGroup["SPELL_CREATURE_VS_CREATURE_DAMAGE"] = { "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE" }
ChatTypeGroup["SPELL_CREATURE_VS_CREATURE_BUFF"] = { "CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF" }
ChatTypeGroup["SPELL_TRADESKILLS"] = { "CHAT_MSG_SPELL_TRADESKILLS" }
ChatTypeGroup["SPELL_DAMAGESHIELDS_ON_SELF"] = { "CHAT_MSG_SPELL_DAMAGESHIELDS_ON_SELF" }
ChatTypeGroup["SPELL_DAMAGESHIELDS_ON_OTHERS"] = { "CHAT_MSG_SPELL_DAMAGESHIELDS_ON_OTHERS" }
ChatTypeGroup["SPELL_AURA_GONE_SELF"] = { "CHAT_MSG_SPELL_AURA_GONE_SELF" }
ChatTypeGroup["SPELL_AURA_GONE_PARTY"] = { "CHAT_MSG_SPELL_AURA_GONE_PARTY" }
ChatTypeGroup["SPELL_AURA_GONE_OTHER"] = { "CHAT_MSG_SPELL_AURA_GONE_OTHER" }
ChatTypeGroup["SPELL_ITEM_ENCHANTMENTS"] = { "CHAT_MSG_SPELL_ITEM_ENCHANTMENTS" }
ChatTypeGroup["SPELL_BREAK_AURA"] = { "CHAT_MSG_SPELL_BREAK_AURA" }
ChatTypeGroup["SPELL_PERIODIC_SELF_DAMAGE"] = { "CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE" }
ChatTypeGroup["SPELL_PERIODIC_SELF_BUFFS"] = { "CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS" }
ChatTypeGroup["SPELL_PERIODIC_PARTY_DAMAGE"] = { "CHAT_MSG_SPELL_PERIODIC_PARTY_DAMAGE" }
ChatTypeGroup["SPELL_PERIODIC_PARTY_BUFFS"] = { "CHAT_MSG_SPELL_PERIODIC_PARTY_BUFFS" }
ChatTypeGroup["SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE"] = { "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE" }
ChatTypeGroup["SPELL_PERIODIC_FRIENDLYPLAYER_BUFFS"] = { "CHAT_MSG_SPELL_PERIODIC_FRIENDLYPLAYER_BUFFS" }
ChatTypeGroup["SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE"] = { "CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE" }
ChatTypeGroup["SPELL_PERIODIC_HOSTILEPLAYER_BUFFS"] = { "CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_BUFFS" }
ChatTypeGroup["SPELL_PERIODIC_CREATURE_DAMAGE"] = { "CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE" }
ChatTypeGroup["SPELL_PERIODIC_CREATURE_BUFFS"] = { "CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS" }
ChatTypeGroup["SPELL_FAILED_LOCALPLAYER"] = { "CHAT_MSG_SPELL_FAILED_LOCALPLAYER" }
ChatTypeGroup["COMBAT_FACTION_CHANGE"] = { "CHAT_MSG_COMBAT_FACTION_CHANGE" }
ChatTypeGroup["HARDCORE"] = { "CHAT_MSG_HARDCORE" }
ChannelMenuChatTypeGroups = {  }
ChannelMenuChatTypeGroups[1] = "SAY"
ChannelMenuChatTypeGroups[2] = "YELL"
ChannelMenuChatTypeGroups[3] = "GUILD"
ChannelMenuChatTypeGroups[4] = "WHISPER"
ChannelMenuChatTypeGroups[5] = "PARTY"
ChannelMenuChatTypeGroups[6] = "HARDCORE"
ChannelMenuChatTypeGroups[7] = "SYSTEM"
CombatLogMenuChatTypeGroups = {  }
CombatLogMenuChatTypeGroups[1] = "COMBAT_MISC_INFO"
CombatLogMenuChatTypeGroups[2] = "COMBAT_SELF_HITS"
CombatLogMenuChatTypeGroups[3] = "COMBAT_SELF_MISSES"
CombatLogMenuChatTypeGroups[4] = "COMBAT_PET_HITS"
CombatLogMenuChatTypeGroups[5] = "COMBAT_PET_MISSES"
CombatLogMenuChatTypeGroups[6] = "COMBAT_PARTY_HITS"
CombatLogMenuChatTypeGroups[7] = "COMBAT_PARTY_MISSES"
CombatLogMenuChatTypeGroups[8] = "COMBAT_FRIENDLYPLAYER_HITS"
CombatLogMenuChatTypeGroups[9] = "COMBAT_FRIENDLYPLAYER_MISSES"
CombatLogMenuChatTypeGroups[10] = "COMBAT_HOSTILEPLAYER_HITS"
CombatLogMenuChatTypeGroups[11] = "COMBAT_HOSTILEPLAYER_MISSES"
CombatLogMenuChatTypeGroups[12] = "COMBAT_CREATURE_VS_SELF_HITS"
CombatLogMenuChatTypeGroups[13] = "COMBAT_CREATURE_VS_SELF_MISSES"
CombatLogMenuChatTypeGroups[14] = "COMBAT_CREATURE_VS_PARTY_HITS"
CombatLogMenuChatTypeGroups[15] = "COMBAT_CREATURE_VS_PARTY_MISSES"
CombatLogMenuChatTypeGroups[16] = "COMBAT_CREATURE_VS_CREATURE_HITS"
CombatLogMenuChatTypeGroups[17] = "COMBAT_CREATURE_VS_CREATURE_MISSES"
CombatLogMenuChatTypeGroups[18] = "COMBAT_FRIENDLY_DEATH"
CombatLogMenuChatTypeGroups[19] = "COMBAT_HOSTILE_DEATH"
CombatLogMenuChatTypeGroups[20] = "COMBAT_XP_GAIN"
CombatLogMenuChatTypeGroups[21] = "COMBAT_HONOR_GAIN"
CombatLogMenuChatTypeGroups[22] = "COMBAT_FACTION_CHANGE"
SpellLogMenuChatTypeGroups = {  }
SpellLogMenuChatTypeGroups[1] = "SPELL_SELF_DAMAGE"
SpellLogMenuChatTypeGroups[2] = "SPELL_SELF_BUFF"
SpellLogMenuChatTypeGroups[3] = "SPELL_PET_DAMAGE"
SpellLogMenuChatTypeGroups[4] = "SPELL_PET_BUFF"
SpellLogMenuChatTypeGroups[5] = "SPELL_PARTY_DAMAGE"
SpellLogMenuChatTypeGroups[6] = "SPELL_PARTY_BUFF"
SpellLogMenuChatTypeGroups[7] = "SPELL_FRIENDLYPLAYER_DAMAGE"
SpellLogMenuChatTypeGroups[8] = "SPELL_FRIENDLYPLAYER_BUFF"
SpellLogMenuChatTypeGroups[9] = "SPELL_HOSTILEPLAYER_DAMAGE"
SpellLogMenuChatTypeGroups[10] = "SPELL_HOSTILEPLAYER_BUFF"
SpellLogMenuChatTypeGroups[11] = "SPELL_CREATURE_VS_SELF_DAMAGE"
SpellLogMenuChatTypeGroups[12] = "SPELL_CREATURE_VS_SELF_BUFF"
SpellLogMenuChatTypeGroups[13] = "SPELL_CREATURE_VS_PARTY_DAMAGE"
SpellLogMenuChatTypeGroups[14] = "SPELL_CREATURE_VS_PARTY_BUFF"
SpellLogMenuChatTypeGroups[15] = "SPELL_CREATURE_VS_CREATURE_DAMAGE"
SpellLogMenuChatTypeGroups[16] = "SPELL_CREATURE_VS_CREATURE_BUFF"
SpellLogOtherMenuChatTypeGroups = {  }
SpellLogOtherMenuChatTypeGroups[1] = "SPELL_TRADESKILLS"
SpellLogOtherMenuChatTypeGroups[2] = "SPELL_DAMAGESHIELDS_ON_SELF"
SpellLogOtherMenuChatTypeGroups[3] = "SPELL_DAMAGESHIELDS_ON_OTHERS"
SpellLogOtherMenuChatTypeGroups[4] = "SPELL_AURA_GONE_SELF"
SpellLogOtherMenuChatTypeGroups[5] = "SPELL_AURA_GONE_PARTY"
SpellLogOtherMenuChatTypeGroups[6] = "SPELL_AURA_GONE_OTHER"
SpellLogOtherMenuChatTypeGroups[7] = "SPELL_ITEM_ENCHANTMENTS"
SpellLogOtherMenuChatTypeGroups[8] = "SPELL_BREAK_AURA"
SpellLogOtherMenuChatTypeGroups[9] = "SPELL_FAILED_LOCALPLAYER"
PeriodicLogMenuChatTypeGroups = {  }
PeriodicLogMenuChatTypeGroups[1] = "SPELL_PERIODIC_SELF_DAMAGE"
PeriodicLogMenuChatTypeGroups[2] = "SPELL_PERIODIC_SELF_BUFFS"
PeriodicLogMenuChatTypeGroups[3] = "SPELL_PERIODIC_PARTY_DAMAGE"
PeriodicLogMenuChatTypeGroups[4] = "SPELL_PERIODIC_PARTY_BUFFS"
PeriodicLogMenuChatTypeGroups[5] = "SPELL_PERIODIC_FRIENDLYPLAYER_DAMAGE"
PeriodicLogMenuChatTypeGroups[6] = "SPELL_PERIODIC_FRIENDLYPLAYER_BUFFS"
PeriodicLogMenuChatTypeGroups[7] = "SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE"
PeriodicLogMenuChatTypeGroups[8] = "SPELL_PERIODIC_HOSTILEPLAYER_BUFFS"
PeriodicLogMenuChatTypeGroups[9] = "SPELL_PERIODIC_CREATURE_DAMAGE"
PeriodicLogMenuChatTypeGroups[10] = "SPELL_PERIODIC_CREATURE_BUFFS"
OtherMenuChatTypeGroups = {  }
OtherMenuChatTypeGroups[1] = "CREATURE"
OtherMenuChatTypeGroups[2] = "SKILL"
OtherMenuChatTypeGroups[3] = "LOOT"
EmoteList = { "WAVE", "BOW", "DANCE", "APPLAUD", "BEG", "CHICKEN", "CRY", "COWER", "DANCESPECIAL", "EAT", "FLEX", "KISS", "LAUGH", "POINT", "ROAR", "RUDE", "SALUTE", "SHY", "TALK", "STAND", "SIT", "SLEEP", "KNEEL" }
TextEmoteSpeechList = { "HELPME", "INCOMING", "CHARGE", "FLEE", "ATTACKMYTARGET", "OOM", "FOLLOW", "WAIT", "HEALME", "CHEER", "OPENFIRE", "RASP", "HELLO", "BYE", "NOD", "NO", "THANK", "WELCOME", "CONGRATULATE", "FLIRT", "JOKE", "TRAIN" }
EMOTE1_TOKEN = "AGREE"
EMOTE2_TOKEN = "AMAZE"
EMOTE3_TOKEN = "ANGRY"
EMOTE4_TOKEN = "APOLOGIZE"
EMOTE5_TOKEN = "APPLAUD"
EMOTE6_TOKEN = "BASHFUL"
EMOTE7_TOKEN = "BECKON"
EMOTE8_TOKEN = "BEG"
EMOTE9_TOKEN = "BITE"
EMOTE10_TOKEN = "BLEED"
EMOTE11_TOKEN = "BLINK"
EMOTE12_TOKEN = "BLUSH"
EMOTE13_TOKEN = "BONK"
EMOTE14_TOKEN = "BORED"
EMOTE15_TOKEN = "BOUNCE"
EMOTE16_TOKEN = "BRB"
EMOTE17_TOKEN = "BOW"
EMOTE18_TOKEN = "BURP"
EMOTE19_TOKEN = "BYE"
EMOTE20_TOKEN = "CACKLE"
EMOTE21_TOKEN = "CHEER"
EMOTE22_TOKEN = "CHICKEN"
EMOTE23_TOKEN = "CHUCKLE"
EMOTE24_TOKEN = "CLAP"
EMOTE25_TOKEN = "CONFUSED"
EMOTE26_TOKEN = "CONGRATULATE"
EMOTE27_TOKEN = "UNUSED"
EMOTE28_TOKEN = "COUGH"
EMOTE29_TOKEN = "COWER"
EMOTE30_TOKEN = "CRACK"
EMOTE31_TOKEN = "CRINGE"
EMOTE32_TOKEN = "CRY"
EMOTE33_TOKEN = "CURIOUS"
EMOTE34_TOKEN = "CURTSEY"
EMOTE35_TOKEN = "DANCE"
EMOTE36_TOKEN = "DRINK"
EMOTE37_TOKEN = "DROOL"
EMOTE38_TOKEN = "EAT"
EMOTE39_TOKEN = "EYE"
EMOTE40_TOKEN = "FART"
EMOTE41_TOKEN = "FIDGET"
EMOTE42_TOKEN = "FLEX"
EMOTE43_TOKEN = "FROWN"
EMOTE44_TOKEN = "GASP"
EMOTE45_TOKEN = "GAZE"
EMOTE46_TOKEN = "GIGGLE"
EMOTE47_TOKEN = "GLARE"
EMOTE48_TOKEN = "GLOAT"
EMOTE49_TOKEN = "GREET"
EMOTE50_TOKEN = "GRIN"
EMOTE51_TOKEN = "GROAN"
EMOTE52_TOKEN = "GROVEL"
EMOTE53_TOKEN = "GUFFAW"
EMOTE54_TOKEN = "HAIL"
EMOTE55_TOKEN = "HAPPY"
EMOTE56_TOKEN = "HELLO"
EMOTE57_TOKEN = "HUG"
EMOTE58_TOKEN = "HUNGRY"
EMOTE59_TOKEN = "KISS"
EMOTE60_TOKEN = "KNEEL"
EMOTE61_TOKEN = "LAUGH"
EMOTE62_TOKEN = "LAYDOWN"
EMOTE63_TOKEN = "MASSAGE"
EMOTE64_TOKEN = "MOAN"
EMOTE65_TOKEN = "MOON"
EMOTE66_TOKEN = "MOURN"
EMOTE67_TOKEN = "NO"
EMOTE68_TOKEN = "NOD"
EMOTE69_TOKEN = "NOSEPICK"
EMOTE70_TOKEN = "PANIC"
EMOTE71_TOKEN = "PEER"
EMOTE72_TOKEN = "PLEAD"
EMOTE73_TOKEN = "POINT"
EMOTE74_TOKEN = "POKE"
EMOTE75_TOKEN = "PRAY"
EMOTE76_TOKEN = "ROAR"
EMOTE77_TOKEN = "ROFL"
EMOTE78_TOKEN = "RUDE"
EMOTE79_TOKEN = "SALUTE"
EMOTE80_TOKEN = "SCRATCH"
EMOTE81_TOKEN = "SEXY"
EMOTE82_TOKEN = "SHAKE"
EMOTE83_TOKEN = "SHOUT"
EMOTE84_TOKEN = "SHRUG"
EMOTE85_TOKEN = "SHY"
EMOTE86_TOKEN = "SIGH"
EMOTE87_TOKEN = "SIT"
EMOTE88_TOKEN = "SLEEP"
EMOTE89_TOKEN = "SNARL"
EMOTE90_TOKEN = "SPIT"
EMOTE91_TOKEN = "STARE"
EMOTE92_TOKEN = "SURPRISED"
EMOTE93_TOKEN = "SURRENDER"
EMOTE94_TOKEN = "TALK"
EMOTE95_TOKEN = "TALKEX"
EMOTE96_TOKEN = "TALKQ"
EMOTE97_TOKEN = "TAP"
EMOTE98_TOKEN = "THANK"
EMOTE99_TOKEN = "THREATEN"
EMOTE100_TOKEN = "TIRED"
EMOTE101_TOKEN = "VICTORY"
EMOTE102_TOKEN = "WAVE"
EMOTE103_TOKEN = "WELCOME"
EMOTE104_TOKEN = "WHINE"
EMOTE105_TOKEN = "WHISTLE"
EMOTE106_TOKEN = "WORK"
EMOTE107_TOKEN = "YAWN"
EMOTE108_TOKEN = "BOGGLE"
EMOTE109_TOKEN = "CALM"
EMOTE110_TOKEN = "COLD"
EMOTE111_TOKEN = "COMFORT"
EMOTE112_TOKEN = "CUDDLE"
EMOTE113_TOKEN = "DUCK"
EMOTE114_TOKEN = "INSULT"
EMOTE115_TOKEN = "INTRODUCE"
EMOTE116_TOKEN = "JK"
EMOTE117_TOKEN = "LICK"
EMOTE118_TOKEN = "LISTEN"
EMOTE119_TOKEN = "LOST"
EMOTE120_TOKEN = "MOCK"
EMOTE121_TOKEN = "PONDER"
EMOTE122_TOKEN = "POUNCE"
EMOTE123_TOKEN = "PRAISE"
EMOTE124_TOKEN = "PURR"
EMOTE125_TOKEN = "PUZZLE"
EMOTE126_TOKEN = "RAISE"
EMOTE127_TOKEN = "READY"
EMOTE128_TOKEN = "SHIMMY"
EMOTE129_TOKEN = "SHIVER"
EMOTE130_TOKEN = "SHOO"
EMOTE131_TOKEN = "SLAP"
EMOTE132_TOKEN = "SMIRK"
EMOTE133_TOKEN = "SNIFF"
EMOTE134_TOKEN = "SNUB"
EMOTE135_TOKEN = "SOOTHE"
EMOTE136_TOKEN = "STINK"
EMOTE137_TOKEN = "TAUNT"
EMOTE138_TOKEN = "TEASE"
EMOTE139_TOKEN = "THIRSTY"
EMOTE140_TOKEN = "VETO"
EMOTE141_TOKEN = "SNICKER"
EMOTE142_TOKEN = "TICKLE"
EMOTE143_TOKEN = "STAND"
EMOTE144_TOKEN = "VIOLIN"
EMOTE145_TOKEN = "SMILE"
EMOTE146_TOKEN = "RASP"
EMOTE147_TOKEN = "GROWL"
EMOTE148_TOKEN = "BARK"
EMOTE149_TOKEN = "PITY"
EMOTE150_TOKEN = "SCARED"
EMOTE151_TOKEN = "FLOP"
EMOTE152_TOKEN = "LOVE"
EMOTE153_TOKEN = "MOO"
EMOTE154_TOKEN = "COMMEND"
EMOTE155_TOKEN = "TRAIN"
EMOTE156_TOKEN = "HELPME"
EMOTE157_TOKEN = "INCOMING"
EMOTE158_TOKEN = "OPENFIRE"
EMOTE159_TOKEN = "CHARGE"
EMOTE160_TOKEN = "FLEE"
EMOTE161_TOKEN = "ATTACKMYTARGET"
EMOTE162_TOKEN = "OOM"
EMOTE163_TOKEN = "FOLLOW"
EMOTE164_TOKEN = "WAIT"
EMOTE165_TOKEN = "FLIRT"
EMOTE166_TOKEN = "HEALME"
EMOTE167_TOKEN = "JOKE"
EMOTE168_TOKEN = "WINK"
EMOTE169_TOKEN = "PAT"
EMOTE170_TOKEN = "GOLFCLAP"
EMOTE171_TOKEN = "DANCESPECIAL"

---@param msg any (type not inferred)
---@return any target (type not inferred)
---@return any server (type not inferred)
---@nodiscard
function GetSlashCmdTarget(msg) end
SlashCmdList = {  }

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CONSOLE"] = function(msg) end

---@return nil
SlashCmdList["CHATLOG"] = function() end

---@return nil
SlashCmdList["COMBATLOG"] = function() end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["INVITE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["UNINVITE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["PROMOTE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["REPLY"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["HELP"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["MACROHELP"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["TIME"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["PLAYED"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["ASSIST"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["TARGET"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["FOLLOW"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["TRADE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["INSPECT"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["LOGOUT"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["QUIT"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["JOIN"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["LEAVE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["LIST_CHANNEL"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_HELP"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_PASSWORD"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_OWNER"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_MODERATOR"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_UNMODERATOR"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_MODERATE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_MUTE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_UNMUTE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_CINVITE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_KICK"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_BAN"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_UNBAN"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_ANNOUNCE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["GUILD_INVITE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["GUILD_UNINVITE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["GUILD_PROMOTE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["GUILD_DEMOTE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["GUILD_LEADER"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["GUILD_MOTD"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["GUILD_LEAVE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["GUILD_DISBAND"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["GUILD_INFO"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["GUILD_ROSTER"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_AFK"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHAT_DND"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["WHO"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CHANNEL"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["FRIENDS"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["REMOVEFRIEND"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["IGNORE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["UNIGNORE"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["DUEL"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["DUEL_CANCEL"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["SCRIPT"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["LOOT_FFA"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["LOOT_ROUNDROBIN"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["LOOT_MASTER"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["RANDOM"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["MACRO"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["CAST"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["PVP"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["RAID_INFO"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["READYCHECK"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["GM"] = function(msg) end

---@param msg any (type not inferred)
---@return nil
SlashCmdList["RELOAD"] = function(msg) end

---@return nil
function ChatFrame_OnLoad() end



---@param chatFrame any (type not inferred)
---@param group any (type not inferred)
---@return nil
function ChatFrame_AddMessageGroup(chatFrame, group) end

---@param chatFrame any (type not inferred)
---@param group any (type not inferred)
---@return nil
function ChatFrame_RemoveMessageGroup(chatFrame, group) end

---@param chatFrame any (type not inferred)
---@return nil
function ChatFrame_RemoveAllMessageGroups(chatFrame) end

---@param chatFrame any (type not inferred)
---@param channel any (type not inferred)
---@return nil
function ChatFrame_AddChannel(chatFrame, channel) end

---@param chatFrame any (type not inferred)
---@param channel any (type not inferred)
---@return nil
function ChatFrame_RemoveChannel(chatFrame, channel) end

---@param chatFrame any (type not inferred)
---@return nil
function ChatFrame_RemoveAllChannels(chatFrame) end

---@param event any (type not inferred)
---@return nil
function ChatFrame_OnEvent(event) end

---@param elapsedSec any (type not inferred)
---@return nil
function ChatFrame_OnUpdate(elapsedSec) end

---@param link any (type not inferred)
---@param text any (type not inferred)
---@param button any (type not inferred)
---@return nil
function ChatFrame_OnHyperlinkShow(link, text, button) end

---@param value any (type not inferred)
---@return nil
function ChatFrame_OnMouseWheel(value) end

---@param text any (type not inferred)
---@param chatFrame any (type not inferred)
---@return nil
function ChatFrame_OpenChat(text, chatFrame) end

---@return nil
function ChatFrame_ScrollToBottom() end

---@return nil
function ChatFrame_ScrollUp() end

---@return nil
function ChatFrame_ScrollDown() end

---@return nil
function MessageFrameScrollButton_OnLoad() end

---@param elapsed any (type not inferred)
---@return nil
function MessageFrameScrollButton_OnUpdate(elapsed) end

---@return nil
function ChatFrame_OpenMenu() end

---@param name any (type not inferred)
---@param chatFrame any (type not inferred)
---@return nil
function ChatFrame_SendTell(name, chatFrame) end

---@param chatFrame any (type not inferred)
---@return nil
function ChatFrame_ReplyTell(chatFrame) end

---@param chatFrame any (type not inferred)
---@return nil
function ChatFrame_ReplyTell2(chatFrame) end

---@param frame any (type not inferred)
---@return nil
function ChatFrame_DisplayStartupText(frame) end

---@param frame any (type not inferred)
---@return nil
function ChatFrame_DisplayHelpText(frame) end

---@param frame any (type not inferred)
---@return nil
function ChatFrame_DisplayMacroHelpText(frame) end

---@param frame any (type not inferred)
---@return nil
function ChatFrame_DisplayChatHelp(frame) end

---@param frame any (type not inferred)
---@return nil
function ChatFrame_DisplayGuildHelp(frame) end

---@param frame any (type not inferred)
---@return nil
function ChatFrame_DisplayGameTime(frame) end

---@param time any (type not inferred)
---@return any days (type not inferred)
---@return any hours (type not inferred)
---@return any minutes (type not inferred)
---@return any seconds (type not inferred)
---@nodiscard
function ChatFrame_TimeBreakDown(time) end

---@param totalTime any (type not inferred)
---@param levelTime any (type not inferred)
---@return nil
function ChatFrame_DisplayTimePlayed(totalTime, levelTime) end

---@return nil
function ChatFrame_ChatPageUp() end

---@return nil
function ChatFrame_ChatPageDown() end

---@return nil
function ChatEdit_OnLoad() end

---@param elapsedSec any (type not inferred)
---@return nil
function ChatEdit_OnUpdate(elapsedSec) end

---@return nil
function ChatEdit_OnShow() end

---@param editBox any (type not inferred)
---@return any "" (type not inferred)
---@nodiscard
function ChatEdit_GetLastTellTarget(editBox) end

---@param editBox any (type not inferred)
---@return nil
function ChatEdit_GetLastToldTarget(editBox) end

---@param editBox any (type not inferred)
---@param name any (type not inferred)
---@return nil
function ChatEdit_SetLastToldTarget(editBox, name) end

---@param editBox any (type not inferred)
---@param target any (type not inferred)
---@return nil
function ChatEdit_SetLastTellTarget(editBox, target) end

---@param editBox any (type not inferred)
---@param target any (type not inferred)
---@return any undefined[1] (type not inferred)
---@nodiscard
function ChatEdit_GetNextTellTarget(editBox, target) end

---@param editBox any (type not inferred)
---@return nil
function ChatEdit_UpdateHeader(editBox) end

---@param editBox any (type not inferred)
---@return nil
function ChatEdit_AddHistory(editBox) end

---@param editBox any (type not inferred)
---@param addHistory any (type not inferred)
---@return nil
function ChatEdit_SendText(editBox, addHistory) end

---@return nil
function ChatEdit_OnEnterPressed() end

---@param editBox any (type not inferred)
---@return nil
function ChatEdit_OnEscapePressed(editBox) end

---@return nil
function ChatEdit_OnSpacePressed() end

---@return nil
function ChatEdit_OnTabPressed() end

---@return nil
function ChatEdit_OnTextChanged() end

---@return nil
function ChatEdit_OnTextSet() end

---@return nil
function ChatEdit_OnInputLanguageChanged() end

---@param editBox any (type not inferred)
---@param send any (type not inferred)
---@return nil
function ChatEdit_ParseText(editBox, send) end

---@param editBox any (type not inferred)
---@param msg any (type not inferred)
---@return nil
function ChatEdit_ExtractTellTarget(editBox, msg) end

---@param editBox any (type not inferred)
---@param msg any (type not inferred)
---@return nil
function ChatEdit_ExtractChannel(editBox, msg) end

---@param chatFrame any (type not inferred)
---@param type any (type not inferred)
---@return nil
function ChatMenu_SetChatType(chatFrame, type) end

---@return nil
function ChatMenu_Say() end

---@return nil
function ChatMenu_Party() end

---@return nil
function ChatMenu_Guild() end

---@return nil
function ChatMenu_Yell() end

---@return nil
function ChatMenu_Hardcore() end

---@return nil
function ChatMenu_Whisper() end

---@return nil
function ChatMenu_Emote() end

---@return nil
function ChatMenu_Reply() end

---@return nil
function ChatMenu_VoiceMacro() end

---@return nil
function ChatMenu_OnLoad() end

---@return nil
function ChatMenu_OnShow() end

---@return nil
function EmoteMenu_Click() end

---@param token1 any (type not inferred)
---@param token2 any (type not inferred)
---@return number 0
---@nodiscard
function TextEmoteSort(token1, token2) end

---@param list any (type not inferred)
---@param func any (type not inferred)
---@return nil
function OnMenuLoad(list, func) end

---@return nil
function EmoteMenu_OnLoad() end

---@return nil
function LanguageMenu_OnLoad() end

---@return nil
function VoiceMacroMenu_Click() end

---@return nil
function VoiceMacroMenu_OnLoad() end

---@param event any (type not inferred)
---@return nil
function LanguageMenu_OnEvent(event) end

---@return nil
function LanguageMenu_LoadLanguages() end

---@return nil
function LanguageMenu_Click() end

---@param chatFrame any (type not inferred)
---@return nil
function ChatFrame_ActivateCombatMessages(chatFrame) end

---@param dir any (type not inferred)
---@return nil
function ChatFrame_OnMouseWheel(dir) end