---@meta
---
--- C_EquipmentSet is a namespace for functions related to equipment sets.
---
--- @class C_EquipmentSet
C_EquipmentSet = {
	--- @param setID number
	--- @param specID number
	--- Assigns a specialization to an equipment set
	AssignSpecToEquipmentSet = function(setID, specID) end,

	--- @return boolean
	--- Returns whether the player can use equipment sets
	CanUseEquipmentSets = function() end,

	--- Clears the list of equipment slots to be ignored when saving sets
	ClearIgnoredSlotsForSave = function() end,

	--- @param name string
	--- @param icon number
	--- @return number setID
	--- Creates a new equipment set
	CreateEquipmentSet = function(name, icon) end,

	--- @param name string
	--- Deletes an equipment set
	DeleteEquipmentSet = function(name) end,

	--- @param name string
	--- @return boolean isLocked
	--- Returns whether an equipment set contains locked items
	EquipmentSetContainsLockedItems = function(name) end,

	--- @param setID number
	--- @return number specID
	--- Returns the assigned specialization for an equipment set
	GetEquipmentSetAssignedSpec = function(setID) end,

	--- @param specID number
	--- @return number setID
	--- Returns the equipment set associated with a specialization
	GetEquipmentSetForSpec = function(specID) end,

	--- @param name string
	--- @return number setID
	--- Returns the ID of an equipment set by name
	GetEquipmentSetID = function(name) end,

	--- @return table setIDs
	--- Returns a table of equipment set IDs
	GetEquipmentSetIDs = function() end,

	--- @param index number
	--- @return string name
	--- @return string icon
	--- @return number setID
	--- @return boolean isEquipped
	--- @return number numItems
	--- @return number numEquipped
	--- @return number numInventory
	--- @return number numMissing
	--- @return number numIgnored
	--- Returns information about an equipment set (specified by index)
	GetEquipmentSetInfo = function(index) end,

	--- @return table ignoredSlots
	--- Returns a table of slots that are ignored when saving sets
	GetIgnoredSlots = function() end,

	--- @param name string
	--- @return table itemIDs
	--- Returns a table listing the item IDs in an equipment set
	GetItemIDs = function(name) end,

	--- @param name string
	--- @return table itemLocations
	--- Returns a table listing the locations of the items in an equipment set
	GetItemLocations = function(name) end,

	--- @return number numSets
	--- Returns the number of saved equipment sets
	GetNumEquipmentSets = function() end,

	--- @param slot number
	--- Ignores a slot when saving equipment sets
	IgnoreSlotForSave = function(slot) end,

	--- @param slot number
	--- @return boolean isIgnored
	--- Returns whether a slot is ignored when saving sets
	IsSlotIgnoredForSave = function(slot) end,

	--- @param oldSetName string
	--- @param newSetName string
	--- @param icon number
	--- Modifies the name and icon of an existing equipment set
	ModifyEquipmentSet = function(oldSetName, newSetName, icon) end,

	--- @param index number
	--- Puts an equipment set (specified by index) on the cursor
	PickupEquipmentSet = function(index) end,

	--- @param name string
	--- @param icon number
	--- Saves or creates an equipment set with the player's currently equipped items
	SaveEquipmentSet = function(name, icon) end,

	--- @param setID number
	--- Unassigns the specialization from an equipment set
	UnassignEquipmentSetSpec = function(setID) end,

	--- @param slot number
	--- Unignores a slot when saving equipment sets
	UnignoreSlotForSave = function(slot) end,

	--- @param name string
	--- @return boolean equipped
	--- Equips the items in an equipment set
	UseEquipmentSet = function(name) end,
}
