---@diagnostic disable: missing-return, lowercase-global
---@meta

---@class C_PetBattles
C_PetBattles = {
	---@return nil
	AcceptPVPDuel = function() end,

	---@return nil
	AcceptQueuedPVPMatch = function() end,

	---@return boolean canAccept
	CanAcceptQueuedPVPMatch = function() end,

	---@return boolean usable
	CanActivePetSwapOut = function() end,

	---@param petIndex number
	---@return nil
	CanPetSwapIn = function(petIndex) end,

	---@return nil
	CancelPVPDuel = function() end,

	---@param petIndex number
	---@return nil
	ChangePet = function(petIndex) end,

	---@return nil
	DeclineQueuedPVPMatch = function() end,

	---@return nil
	ForfeitGame = function() end,

	---@param abilityID number
	---@param turnIndex number
	---@param effectIndex number
	---@param effectName string
	---@return number value
	GetAbilityEffectInfo = function(abilityID, turnIndex, effectIndex, effectName) end,

	---@param id number
	---@return number id
	---@return string name
	---@return string icon
	---@return number maxCooldown
	---@return string unparsedDescription
	---@return number numTurns
	---@return number petType
	---@return boolean noStrongWeakHints
	GetAbilityInfoByID = function(id) end,

	---@param petOwner ownerType
	---@param petIndex number
	---@param abilityIndex number
	---@return number id
	---@return string name
	---@return string icon
	---@return number maxCooldown
	---@return string unparsedDescription
	---@return number numTurns
	---@return number petType
	---@return boolean noStrongWeakHints
	GetAbilityInfo = function(petOwner, petIndex, abilityIndex) end,

	---@param abilityID number
	---@param procType number
	---@return number turnIndex
	GetAbilityProcTurnIndex = function(abilityID, procType) end,

	---@param abilityID number
	---@param stateID number
	---@return number abilityStateMod
	GetAbilityStateModification = function(abilityID, stateID) end,

	---@param petOwner ownerType
	---@param petIndex number
	---@param actionIndex number
	---@return boolean isUsable
	---@return number currentCooldown
	---@return number currentLockdown
	GetAbilityState = function(petOwner, petIndex, actionIndex) end,

	---@param petOwner number
	---@return number petIndex
	GetActivePet = function(petOwner) end,

	---@return table
	GetAllEffectNames = function() end,

	---@param stateEnv table
	---@return number
	GetAllStates = function(stateEnv) end,

	---@param petType number
	---@param enemyPetType number
	---@return number modifier
	GetAttackModifier = function(petType, enemyPetType) end,

	---@param petOwner ownerType
	---@param petIndex number
	---@param auraIndex number
	---@return number auraID
	---@return number instanceID
	---@return number turnsRemaining
	---@return boolean isBuff
	GetAuraInfo = function(petOwner, petIndex, auraIndex) end,

	---@return number battleState
	GetBattleState = function() end,

	---@param petOwner ownerType
	---@param slot number
	---@return number quality
	GetBreedQuality = function(petOwner, slot) end,

	---@param petOwner ownerType
	---@param petIndex number
	---@return number displayID
	GetDisplayID = function(petOwner, petIndex) end,

	---@return number forfeitPenalty
	GetForfeitPenalty = function() end,

	---@param petOwner ownerType
	---@param petIndex number
	---@return number health
	GetHealth = function(petOwner, petIndex) end,

	---@param petOwner ownerType
	---@param slot number
	---@return number iconFileID
	GetIcon = function(petOwner, slot) end,

	---@param petOwner ownerType
	---@param petIndex number
	---@return number level
	GetLevel = function(petOwner, petIndex) end,

	---@param petOwner ownerType
	---@param petIndex number
	---@return number maxHealth
	GetMaxHealth = function(petOwner, petIndex) end,

	---@param petOwner ownerType
	---@param slot number
	---@return string customName
	---@return string speciesName
	GetName = function(petOwner, slot) end,

	---@param petOwner ownerType
	---@param petIndex number
	---@return number numAuras
	GetNumAuras = function(petOwner, petIndex) end,

	---@alias ownerType
	---| 1 The player
	---| 2 The opponent

	---@param petOwner ownerType
	---@return number numPets
	GetNumPets = function(petOwner) end,

	---@return string queueState
	---@return number estimatedTime
	---@return number queuedTime
	GetPVPMatchmakingInfo = function() end,

	---@param petOwner number
	---@param petIndex number
	---@return number speciesID
	GetPetSpeciesID = function(petOwner, petIndex) end,

	---@param petOwner number
	---@param petIndex number
	---@return number petType
	GetPetType = function(petOwner, petIndex) end,

	---@return number trapAbilityID
	GetPlayerTrapAbility = function() end,

	---@param petOwner number
	---@param petIndex number
	---@return number power
	GetPower = function(petOwner, petIndex) end,

	---@alias selectedActionType
	---| 2 Ability
	---| 3 Switch Pet
	---| 4 Trap
	---| 5 Skip Turn

	---@return selectedActionType selectedActionType
	---@return number selectedActionIndex
	GetSelectedAction = function() end,

	---@param petOwner number
	---@param petIndex number
	---@return number speed
	GetSpeed = function(petOwner, petIndex) end,

	---@param petOwner number
	---@param petIndex number
	---@param stateID number
	---@return number stateValue
	GetStateValue = function(petOwner, petIndex, stateID) end,

	---@return number timeRemaining
	---@return number turnTime
	GetTurnTimeInfo = function() end,

	---@param petOwner number
	---@param petIndex number
	---@return number xp
	---@return number maxXp
	GetXP = function(petOwner, petIndex) end,

	---@return boolean inBattle
	IsInBattle = function() end,

	---@param player string
	---@return boolean isPlayerNPC
	IsPlayerNPC = function(player) end,

	---@return boolean usable
	IsSkipAvailable = function() end,

	---@return boolean usable
	IsTrapAvailable = function() end,

	---@return boolean isWaiting
	IsWaitingOnOpponent = function() end,

	---@return boolean isWildBattle
	IsWildBattle = function() end,

	---@param petIndex number
	SetPendingReportBattlePetTarget = function(petIndex) end,

	---@param unit string
	SetPendingReportTargetFromUnit = function(unit) end,

	---@return boolean shouldShow
	ShouldShowPetSelect = function() end,

	---@return nil
	SkipTurn = function() end, -- #hwevent

	---@return nil
	StartPVPDuel = function() end,

	---@return nil
	StartPVPMatchmaking = function() end,

	---@return nil
	StopPVPMatchmaking = function() end,

	---@param actionIndex number
	---@return nil
	UseAbility = function(actionIndex) end, -- #hwevent

	---@return nil
	UseTrap = function() end, -- #hwevent
}
