---@diagnostic disable: missing-return, lowercase-global
---@meta

---
--- C_LossOfControl is a namespace for functions related to loss-of-control effects.
---
--- @class C_LossOfControl
C_LossOfControl = {
	---@class LossOfControlEvent
	---@field locType string Effect type, e.g. "SCHOOL_INTERRUPT"
	---@field spellID number Spell ID causing the effect
	---@field displayText string Name of the effect, e.g. "Interrupted"
	---@field iconTexture number FileID
	---@field startTime number? Time at which this effect began, as per GetTime()
	---@field timeRemaining number? Number of seconds remaining.
	---@field duration number? Duration of the effect, in seconds.
	---@field lockoutSchool number Locked out spell school identifier; can be fed into GetSchoolString() to retrieve school name.
	---@field priority number
	---@field displayType number An integer specifying how this event should be displayed to the player, per the Interface-configured options:
	---         0: the effect should not be displayed.
	---         1: the effect should be displayed as a brief alert when it occurs.
	---         2: the effect should be displayed for its full duration.

	--- Returns info about an active loss-of-control effect.
	--- @param index number
	--- @return LossOfControlEvent
	GetActiveLossOfControlData = function(index) end,

	--- Returns info about an active loss-of-control effect for a specific unit.
	--- @param unitToken string
	--- @param index number
	--- @return LossOfControlEvent
	GetActiveLossOfControlDataByUnit = function(unitToken, index) end,

	--- Returns the number of active loss-of-control effects.
	--- @return number count
	GetActiveLossOfControlDataCount = function() end,

	--- Returns the number of active loss-of-control effects for a specific unit.
	--- @param unitToken string
	--- @return number count
	GetActiveLossOfControlDataCountByUnit = function(unitToken) end,

	--- Returns the start and duration of the loss-of-control cooldown for a specific action slot.
	--- @param slot number
	--- @return number start
	--- @return number duration
	GetActionLossOfControlCooldown = function(slot) end,
}
