---@meta

---@return string name The name of the spell or effect of the debuff, or nil if no debuff was found with the specified name or at the specified index. This is the name shown in yellow when you mouse over the icon.
---@return string icon The identifier of (path and filename to) the indicated debuff, or nil if no debuff
---@return number count The number of times the debuff has been applied to the target. Returns 0 for any debuff which doesn't stack.
---@return string debuffType The type of debuff, e.g. "Magic", "Disease", "Poison", "Curse", or "none". Returns nil if the debuff type is not known.
---@return number duration The full duration of the debuff in seconds; nil if the debuff was not cast by the player.
---@return number expirationTime Time at which the debuff expires (GetTime() as a reference frame).
---@return string unitCaster Reference to the unit that cast the buff/debuff.
---@return boolean isStealable 1 if it is stealable otherwise nil
---@return boolean shouldConsolidate 1 if the buff should be placed in a buff consolidation box (usually long-term effects).
---@return number spellId spell ID of the aura.
---@overload fun(unit: string, index: number)
---@overload fun(unit: string, index: number, filter: string)
---@overload fun(unit: string, name: string)
---@overload fun(unit: string, name: string, rank: string|nil)
---@overload fun(unit: string, name: string, rank: string|nil, filter: auraFilter)
UnitDebuff = function() end
