---@meta

---@class Cooldown : Frame
Cooldown = {
	--- Gets whether the cooldown is showing the countdown numbers.
	--- @return boolean isShowing Whether the countdown numbers are showing.
	--- @example
	--- local isShowing = myCooldown:GetDrawEdge()
	GetDrawEdge = function(self) end,

	--- Gets whether the cooldown is showing the edge sparkle.
	--- @return boolean isShowing Whether the edge sparkle is showing.
	--- @example
	--- local isShowing = myCooldown:GetDrawSwipe()
	GetDrawSwipe = function(self) end,

	--- Gets whether the cooldown is reversed (filling up instead of emptying).
	--- @return boolean isReversed Whether the cooldown is reversed.
	--- @example
	--- local isReversed = myCooldown:GetReverse()
	GetReverse = function(self) end,

	--- Sets whether the cooldown shows countdown numbers.
	--- @param show boolean Whether to show countdown numbers.
	--- @example
	--- myCooldown:SetDrawEdge(true)
	SetDrawEdge = function(self, show) end,

	--- Sets whether the cooldown shows the edge sparkle.
	--- @param show boolean Whether to show the edge sparkle.
	--- @example
	--- myCooldown:SetDrawSwipe(true)
	SetDrawSwipe = function(self, show) end,

	--- Sets whether the cooldown fills up (true) or empties (false).
	--- @param reverse boolean Whether to reverse the cooldown.
	--- @example
	--- myCooldown:SetReverse(true)
	SetReverse = function(self, reverse) end,

	--- Sets the cooldown timer.
	--- @param start number Start time in seconds.
	--- @param duration number Duration in seconds.
	--- @param enable boolean? Optional. Whether to enable the cooldown.
	--- @example
	--- myCooldown:SetCooldown(GetTime(), 30)
	SetCooldown = function(self, start, duration, enable) end,
}
