import type { ClassKey } from "../classes/Classes";
import type { ProjectileKey } from "../projectiles/Projectiles";
import type { SetKey } from "../sets/Sets";
import type { WeaponType } from "./index";
export type WeaponKey = "axe3" | "basher" | "bataxe" | "blade" | "bow" | "bow4" | "bowofthedead" | "broom" | "candycanesword" | "carrotsword" | "cclaw" | "claw" | "crossbow" | "cupid" | "dagger" | "daggerofthedead" | "dartgun" | "dragondagger" | "fclaw" | "fireblade" | "firebow" | "firestaff" | "firestars" | "frostbow" | "froststaff" | "fsword" | "gbow" | "glolipop" | "gstaff" | "hammer" | "harbringer" | "harpybow" | "hbow" | "hdagger" | "heartwood" | "lmace" | "mace" | "maceofthedead" | "merry" | "mushroomstaff" | "ololipop" | "oozingterror" | "ornamentstaff" | "pinkie" | "pmace" | "pmaceofthedead" | "pouchbow" | "rapier" | "scythe" | "slimestaff" | "snowflakes" | "spear" | "spearofthedead" | "staff" | "staff2" | "staff3" | "staff4" | "staffofthedead" | "stinger" | "swifty" | "sword" | "swordofthedead" | "t2bow" | "t3bow" | "throwingstars" | "vdagger" | "vhammer" | "vstaff" | "vsword" | "wand" | "wbasher" | "wblade" | "weaver" | "woodensword" | "xmace";
export interface GWeapon {
    a?: boolean | number;
    ability?: string;
    apiercing?: number;
    armor?: number;
    attack: number;
    attr0?: number;
    attr1?: number;
    awesomeness?: number;
    blast?: number;
    charisma?: number;
    /** An array of classes that can use this item. */
    class?: [ClassKey];
    crit?: number;
    critdamage?: number;
    cx?: {
        accent?: string;
        border?: number;
        extension?: boolean;
        large?: boolean;
        lightborder?: boolean;
        scale?: number;
    };
    damage_type: string;
    delia?: string;
    dex?: number;
    evasion?: number;
    event?: boolean;
    exclusive?: boolean;
    explanation?: string;
    explosion?: number;
    firesistance?: number;
    for?: number;
    /** Cost of the item in gold, if an NPC were to sell this item. */
    g: number;
    /** The first number refers to what level the item begins being `high` grade, the second for `rare`. */
    grades: [number, number, number, number];
    ignore?: boolean;
    int?: number;
    lifesteal?: number;
    luck?: number;
    mp_cost?: number;
    mp_reduction?: number;
    /** The full display name of an item. */
    name: string;
    nopo?: string;
    projectile?: ProjectileKey;
    projectile_test?: ProjectileKey;
    range: number;
    reflection?: number;
    resistance?: number;
    rpiercing?: number;
    /** The set this item is part of `G.sets.wanderers`. */
    set?: SetKey;
    /** The skin of the item. */
    skin: string;
    skin_c?: string;
    skin_r?: string;
    speed?: number;
    str?: number;
    stun?: number;
    /** The tier of the item. */
    tier: number;
    trex?: string;
    /** The type of item, `shield`, `weapon`, `gloves`... */
    type: "weapon";
    /** Contains information about what stats the item will gain with each upgrade level. Set if the item is upgradable. */
    upgrade: {
        apiercing?: number;
        armor?: number;
        attack: number;
        attr0?: number;
        attr1?: number;
        awesomeness?: number;
        blast?: number;
        crit?: number;
        dex?: number;
        evasion?: number;
        explosion?: number;
        int?: number;
        range: number;
        reflection?: number;
        resistance?: number;
        rpiercing?: number;
        speed?: number;
        str?: number;
        stun?: number;
        vit?: number;
    };
    vit?: number;
    /** The type of `weapon` `wand` `axe` `mace`... */
    wtype: WeaponType;
}
