import ItemJSON from '../interface/ItemJSON'; import ItemSetJSON from '../interface/ItemSetJSON'; import EnchantJSON from '../interface/EnchantJSON'; import MagicSchool from '../enum/MagicSchool'; import ItemQuality from '../enum/ItemQuality'; import ItemClass from '../enum/ItemClass'; import ArmorSubclass from '../enum/ArmorSubclass'; import WeaponSubclass from '../enum/WeaponSubclass'; import PlayableClass from '../enum/PlayableClass'; import PvPRank from '../enum/PvPRank'; import Faction from '../enum/Faction'; import TargetType from '../enum/TargetType'; import ItemSlot from '../enum/ItemSlot'; export default class Item { slot: ItemSlot; itemJSON: ItemJSON | undefined; enchantJSON: EnchantJSON | undefined; constructor(slot: ItemSlot, itemJSON?: ItemJSON, enchantJSON?: EnchantJSON); static sortScoreAsc(a: ItemJSON | EnchantJSON, b: ItemJSON | EnchantJSON): number; static sortScoreDes(a: ItemJSON | EnchantJSON, b: ItemJSON | EnchantJSON): number; static calcTargetDamage(targetType: number, targetTypes: number, spellDamage: number): number; static scoreItem(item: ItemJSON, magicSchool: MagicSchool, targetType: TargetType, spellHitWeight: number, spellCritWeight: number): number; static scoreItemSetBonus(itemSet: ItemSetJSON, magicSchool: MagicSchool, targetType: TargetType, spellHitWeight: number, spellCritWeight: number): number; static scoreEnchant(enchant: EnchantJSON, magicSchool: MagicSchool, spellHitWeight: number, spellCritWeight: number): number; static score(magicSchool: MagicSchool, spellDamage: number, arcaneDamage: number, natureDamage: number, spellHit: number, spellCrit: number, intellect: number, spellHitWeight: number, spellCritWeight: number): number; get id(): number; get suffixId(): number; get enchantId(): number; get name(): string; get class(): ItemClass; get isWeapon(): boolean; get isArmor(): boolean; get subclass(): WeaponSubclass | ArmorSubclass; get subclassName(): string; get slotName(): string; get slotDisplayName(): string; get isEmpty(): boolean; get quality(): ItemQuality; get qualityName(): string; get level(): number; get reqLevel(): number; get isBop(): boolean; get isUnique(): boolean; get allowableClasses(): PlayableClass[]; get allowableClassesText(): string; get targetTypes(): TargetType; get phase(): number; get pvpRank(): PvPRank; get icon(): string; get location(): string; get boss(): string; get worldBoss(): boolean; get faction(): Faction; get score(): number; get onUseText(): string; get hasOnUse(): boolean; get bindText(): string; get _stamina(): number; get stamina(): number; get _spirit(): number; get spirit(): number; get _spellHealing(): number; get spellHealing(): number; get _spellDamage(): number; get spellDamage(): number; get spellPenetration(): number; get _arcaneDamage(): number; get arcaneDamage(): number; get _natureDamage(): number; get natureDamage(): number; get _spellHit(): number; get spellHit(): number; get _spellCrit(): number; get spellCrit(): number; get _intellect(): number; get intellect(): number; get _mp5(): number; get mp5(): number; get _armor(): number; get armor(): number; get durability(): number; get minDmg(): number; get maxDmg(): number; get dmgText(): string; get speed(): number; get speedText(): string; get dps(): number; get dpsText(): string; get enchantText(): string; get enchantClass(): string; get bonusesList(): string[]; get statsList(): Object[]; get chanceOnHitList(): string[]; toJSON(): any; }