---@meta
---
--- C_ChatInfo is a namespace for functions related to the chat system.
---
--- @class C_ChatInfo
C_ChatInfo = {
	--- @param channelID number
	--- @return boolean
	--- Returns whether a channel is active.
	IsChannelActive = function(channelID) end,

	--- @param channelID number
	--- @return string
	--- Returns the name of a channel.
	GetChannelName = function(channelID) end,

	--- @param channelID number
	--- @return table
	--- Returns information about a channel.
	GetChannelInfo = function(channelID) end,

	--- @param channelID number
	--- @return table
	--- Returns the list of players in a channel.
	GetChannelList = function(channelID) end,

	--- @param channelID number
	--- @return table
	--- Returns the rules for a channel.
	GetChannelRules = function(channelID) end,

	--- @param channelID number
	--- @param message string
	--- @return boolean
	--- Sends a message to a channel.
	SendChannelMessage = function(channelID, message) end,

	--- @param channelName string
	--- @return boolean
	--- Joins a channel.
	JoinChannel = function(channelName) end,

	--- @param channelName string
	--- @return boolean
	--- Leaves a channel.
	LeaveChannel = function(channelName) end,

	--- @param channelID number
	--- @param playerName string
	--- @return boolean
	--- Invites a player to a channel.
	InviteToChannel = function(channelID, playerName) end,

	--- @param channelID number
	--- @param playerName string
	--- @return boolean
	--- Kicks a player from a channel.
	KickFromChannel = function(channelID, playerName) end,

	--- @param channelID number
	--- @param playerName string
	--- @return boolean
	--- Bans a player from a channel.
	BanFromChannel = function(channelID, playerName) end,

	--- @param channelID number
	--- @param playerName string
	--- @return boolean
	--- Unbans a player from a channel.
	UnbanFromChannel = function(channelID, playerName) end,

	--- @param channelID number
	--- @param playerName string
	--- @return boolean
	--- Sets a player as moderator in a channel.
	SetChannelModerator = function(channelID, playerName) end,

	--- @param channelID number
	--- @param playerName string
	--- @return boolean
	--- Removes a player as moderator from a channel.
	RemoveChannelModerator = function(channelID, playerName) end,

	--- @param channelID number
	--- @param password string
	--- @return boolean
	--- Sets the password for a channel.
	SetChannelPassword = function(channelID, password) end,

	--- @param channelID number
	--- @return boolean
	--- Clears the password for a channel.
	ClearChannelPassword = function(channelID) end,

	--- @param channelID number
	--- @return table
	--- Returns the banned players in a channel.
	GetChannelBans = function(channelID) end,

	--- @param channelID number
	--- @return table
	--- Returns the moderators in a channel.
	GetChannelModerators = function(channelID) end,

	--- @return table
	--- Returns the list of registered addon prefixes.
	GetRegisteredAddonPrefixes = function() end,

	--- @param prefix string
	--- @return boolean
	--- Registers an addon prefix for addon communication.
	RegisterAddonPrefix = function(prefix) end,

	--- @param prefix string
	--- @param message string
	--- @param distribution string
	--- @param target string
	--- @return boolean
	--- Sends an addon message.
	SendAddonMessage = function(prefix, message, distribution, target) end,
}
