---@meta
---
--- C_Container is a namespace for functions related to bags and containers.
---
--- @class C_Container
C_Container = {
	--- @param bagID number
	--- @return boolean
	--- Returns whether a bag exists.
	IsBagOpen = function(bagID) end,

	--- @param bagID number
	--- @return number
	--- Returns the number of slots in a bag.
	GetContainerNumSlots = function(bagID) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return table
	--- Returns information about an item in a container slot.
	GetContainerItemInfo = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return string
	--- Returns the item link for an item in a container slot.
	GetContainerItemLink = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return number
	--- Returns the cooldown information for an item in a container slot.
	GetContainerItemCooldown = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return number
	--- Returns the durability of an item in a container slot.
	GetContainerItemDurability = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @return number
	--- Returns the number of free slots in a bag.
	GetContainerNumFreeSlots = function(bagID) end,

	--- @param bagID number
	--- @return table
	--- Returns the family of items that can be stored in a bag.
	GetBagFamily = function(bagID) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return boolean
	--- Returns whether an item in a container slot is locked.
	IsContainerItemLocked = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return boolean
	--- Returns whether an item in a container slot can be used.
	IsContainerItemUsable = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return boolean
	--- Returns whether an item in a container slot is readable.
	IsContainerItemReadable = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return boolean
	--- Returns whether an item in a container slot is a quest item.
	IsContainerItemQuestItem = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return boolean
	--- Returns whether an item in a container slot is new.
	IsContainerItemNew = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return boolean
	--- Returns whether an item in a container slot is a profession container.
	IsProfessionBag = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return boolean
	--- Returns whether an item in a container slot can be deposited in the bank.
	CanContainerItemBeBanked = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return boolean
	--- Returns whether an item in a container slot can be sold.
	CanContainerItemBeSold = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return boolean
	--- Returns whether an item in a container slot can be traded.
	CanContainerItemBeTraded = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return boolean
	--- Returns whether an item in a container slot can be mailed.
	CanContainerItemBeMailed = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @param destBagID number
	--- @param destSlotIndex number
	--- @return boolean
	--- Splits a stack of items in a container.
	SplitContainerItem = function(bagID, slotIndex, destBagID, destSlotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return boolean
	--- Picks up an item from a container slot.
	PickupContainerItem = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return boolean
	--- Uses an item in a container slot.
	UseContainerItem = function(bagID, slotIndex) end,

	--- @param bagID number
	--- @param slotIndex number
	--- @return boolean
	--- Deletes an item in a container slot.
	DeleteContainerItem = function(bagID, slotIndex) end,
}
