---@meta

---@class MessageFrame : Frame, FontInstance
MessageFrame = {
	--- Adds a message to the frame.
	--- @param text string The message text.
	--- @param r? number Optional. The red color component.
	--- @param g? number Optional. The green color component.
	--- @param b? number Optional. The blue color component.
	--- @param id? number Optional. A message identifier.
	--- @param holdTime? number Optional. How long to display the message.
	--- @example
	--- myMessageFrame:AddMessage("Hello", 1, 0, 0)
	AddMessage = function(self, text, r, g, b, id, holdTime) end,

	--- Clears all messages from the frame.
	--- @example
	--- myMessageFrame:Clear()
	Clear = function(self) end,

	--- Gets the fade duration for messages.
	--- @return number duration The fade duration in seconds.
	--- @example
	--- local duration = myMessageFrame:GetFadeDuration()
	GetFadeDuration = function(self) end,

	--- Gets whether fading is enabled.
	--- @return boolean enabled True if fading is enabled.
	--- @example
	--- local enabled = myMessageFrame:GetFading()
	GetFading = function(self) end,

	--- Gets the time messages remain visible.
	--- @return number time The time in seconds.
	--- @example
	--- local time = myMessageFrame:GetTimeVisible()
	GetTimeVisible = function(self) end,

	--- Sets the fade duration for messages.
	--- @param duration number The fade duration in seconds.
	--- @example
	--- myMessageFrame:SetFadeDuration(0.3)
	SetFadeDuration = function(self, duration) end,

	--- Sets whether fading is enabled.
	--- @param enabled boolean True to enable fading.
	--- @example
	--- myMessageFrame:SetFading(true)
	SetFading = function(self, enabled) end,

	--- Sets how long messages remain visible.
	--- @param time number The time in seconds.
	--- @example
	--- myMessageFrame:SetTimeVisible(5)
	SetTimeVisible = function(self, time) end,
}
