---@meta

---@class StatusBar : Frame
StatusBar = {
	--- Gets the minimum and maximum values of the bar.
	--- @return number min, number max The minimum and maximum values.
	--- @example
	--- local min, max = myStatusBar:GetMinMaxValues()
	GetMinMaxValues = function(self) end,

	--- Gets the orientation of the status bar.
	--- @return string orientation The orientation ("HORIZONTAL" or "VERTICAL").
	--- @example
	--- local orientation = myStatusBar:GetOrientation()
	GetOrientation = function(self) end,

	--- Gets the color of the status bar.
	--- @return number r, number g, number b, number a The color components.
	--- @example
	--- local r, g, b, a = myStatusBar:GetStatusBarColor()
	GetStatusBarColor = function(self) end,

	--- Gets the texture object for the bar.
	--- @return Texture texture The status bar texture.
	--- @example
	--- local texture = myStatusBar:GetStatusBarTexture()
	GetStatusBarTexture = function(self) end,

	--- Gets the current value of the bar.
	--- @return number value The current value.
	--- @example
	--- local value = myStatusBar:GetValue()
	GetValue = function(self) end,

	--- Sets the minimum and maximum values of the bar.
	--- @param min number The minimum value.
	--- @param max number The maximum value.
	--- @example
	--- myStatusBar:SetMinMaxValues(0, 100)
	SetMinMaxValues = function(self, min, max) end,

	--- Sets the orientation of the status bar.
	--- @param orientation string The orientation ("HORIZONTAL" or "VERTICAL").
	--- @example
	--- myStatusBar:SetOrientation("HORIZONTAL")
	SetOrientation = function(self, orientation) end,

	--- Sets the color of the status bar.
	--- @param r number The red component.
	--- @param g number The green component.
	--- @param b number The blue component.
	--- @param a number? Optional. The alpha component.
	--- @example
	--- myStatusBar:SetStatusBarColor(1, 0, 0, 1)
	SetStatusBarColor = function(self, r, g, b, a) end,

	--- Sets the texture of the bar.
	--- @param texture string|Texture The texture path or texture object.
	--- @param layer? string Optional. The layer to set the texture in.
	--- @example
	--- myStatusBar:SetStatusBarTexture("Interface\\TargetingFrame\\UI-StatusBar")
	SetStatusBarTexture = function(self, texture, layer) end,

	--- Sets the current value of the bar.
	--- @param value number The value to set.
	--- @example
	--- myStatusBar:SetValue(50)
	SetValue = function(self, value) end,
}
