import type { ConditionKey } from "../conditions/Conditions";
import type { ProjectileKey } from "../projectiles/Projectiles";
import type { WeaponKey } from "../items/Weapon";
export type MonsterKey = "a1" | "a2" | "a3" | "a4" | "a5" | "a6" | "a7" | "a8" | "arcticbee" | "armadillo" | "bat" | "bbpompom" | "bee" | "bgoo" | "bigbird" | "bluefairy" | "boar" | "booboo" | "bscorpion" | "cgoo" | "chestm" | "crab" | "crabx" | "crabxx" | "croc" | "cutebee" | "d_wiz" | "dknight2" | "dragold" | "dryad" | "eelemental" | "ent" | "felemental" | "fieldgen0" | "fireroamer" | "franky" | "frog" | "fvampire" | "gbluepro" | "ggreenpro" | "ghost" | "goblin" | "goldenbat" | "goldenbot" | "goo" | "gpurplepro" | "gredpro" | "greenfairy" | "greenjr" | "grinch" | "gscorpion" | "harpy" | "hen" | "icegolem" | "iceroamer" | "jr" | "jrat" | "kitty1" | "kitty2" | "kitty3" | "kitty4" | "ligerx" | "mechagnome" | "minimush" | "mole" | "mrgreen" | "mrpumpkin" | "mummy" | "mvampire" | "nelemental" | "nerfedbat" | "nerfedmummy" | "odino" | "oneeye" | "osnake" | "phoenix" | "pinkgoblin" | "pinkgoo" | "plantoid" | "poisio" | "porcupine" | "pppompom" | "prat" | "puppy1" | "puppy2" | "puppy3" | "puppy4" | "rat" | "redfairy" | "rgoo" | "rharpy" | "rooster" | "rudolph" | "scorpion" | "skeletor" | "slenderman" | "snake" | "snowman" | "sparkbot" | "spider" | "spiderbl" | "spiderbr" | "spiderr" | "squig" | "squigtoad" | "stompy" | "stoneworm" | "target" | "target_a500" | "target_a750" | "target_ar500red" | "target_ar900" | "target_r500" | "target_r750" | "targetron" | "tiger" | "tinyp" | "tortoise" | "vbat" | "wabbit" | "welemental" | "wolf" | "wolfie" | "xmagefi" | "xmagefz" | "xmagen" | "xmagex" | "xscorpion" | "zapper0";
export type MonsterName = "Angel" | "Angry Chest" | "Arctic Bee" | "Armadillo" | "Bat" | "Bee" | "Bill" | "Black Scorpion" | "Black Spider Queen" | "Boo Boo" | "Brawl Goo" | "Brown Spider Queen" | "Chicken" | "Croc" | "Cute Bee" | "Dark Hound" | "Dark Knight" | "Dark Mage" | "Dark Wizard" | "Dino" | "Dracul" | "Dragold" | "Dryad" | "Earth Elemental" | "Elena" | "Ent" | "Fairy" | "Field Generator" | "Fire Elemental" | "Fire Spirit" | "Franky" | "Froggie" | "Ghost" | "Giga Crab" | "Golden Bat" | "Golden Bot" | "Goo" | "Green Jr." | "Grinch" | "Harpy" | "Hawk" | "Huge Crab" | "Ice Golem" | "Irradiated Goo" | "Jr." | "Kitty" | "Lestat" | "Liger X" | "Love Goo" | "Lucinda" | "Mage" | "Marceline" | "Mech-a Gnome" | "Mole" | "Mr. Green" | "Mr. Pumpkin" | "Ms. Dracul" | "Mummy" | "Nature Elemental" | "One Eye" | "Orlok" | "Phoenix" | "Pink Goblin" | "Poisio" | "Pom Pom" | "Porcupine" | "Protector of Darkness" | "Protector of Fire" | "Protector of Frost" | "Protector of Nature" | "Puppy" | "Rainbow Goo" | "Rat" | "Rebel Harpy" | "Red Spider Queen" | "Reindeer" | "Scorpion" | "Skeletor" | "Slenderman" | "Snake" | "Sneaky Goblin" | "Snowman" | "Spark Bot" | "Spider" | "Spike" | "Sprawling" | "Squig" | "Squigtoad" | "Stompy" | "Stone Worm" | "Target Automatron" | "Targetron" | "Tiger" | "Tiny Crab" | "Tortoise" | "Vampire Rat" | "Vampireling" | "Wabbit" | "Water Elemental" | "Water Spirit" | "White Wolf" | "Wild Boar" | "Zapper";
export type GMonsterAbilities = {
    anger?: {
        cooldown: number;
        radius: number;
    };
    burn?: {
        attr0: number;
        unlimited: boolean;
    };
    curse_aura?: {
        aura: boolean;
        condition: ConditionKey;
        cooldown: number;
        radius: number;
    };
    dampening_aura?: {
        aura: boolean;
        condition: ConditionKey;
        cooldown: number;
        radius: number;
    };
    deepfreeze?: {
        cooldown: number;
        radius: number;
    };
    degen?: {
        amount: number;
        cooldown: number;
    };
    heal?: {
        cooldown: number;
        heal: number;
    };
    healing?: {
        cooldown: number;
        heal: number;
    };
    mlight?: {
        cooldown: number;
    };
    mtangle?: {
        cooldown: number;
    };
    multi_burn?: {
        cooldown: number;
        damage: number;
    };
    multi_freeze?: {
        cooldown: number;
        damage: number;
    };
    portal?: {
        cooldown: number;
    };
    putrid?: {
        curse: boolean;
        poison: boolean;
    };
    self_healing?: {
        cooldown: number;
        heal: number;
    };
    stone?: {
        cooldown: number;
    };
    tangle?: {
        cooldown: number;
    };
    warp_on_hit?: {
        attr0: number;
        unlimited: boolean;
    };
    warpstomp?: {
        cooldown: number;
        radius: number;
        stun: number;
    };
    weakness_aura?: {
        aura: boolean;
        condition: ConditionKey;
        cooldown: number;
        radius: number;
    };
    zap?: {
        amount: number;
        cooldown: number;
        pure: boolean;
        radius: number;
    };
};
export interface GMonster {
    "1hp"?: boolean;
    abilities?: GMonsterAbilities;
    achievements?: Array<[kills: number, effectType: "stat", stat: string, amount: number]>;
    aggro: number;
    announce?: string | boolean;
    apiercing?: number;
    armor?: number;
    article?: string;
    attack: number;
    avoidance?: number;
    balance?: string;
    cbuff?: Array<[number, ConditionKey]>;
    charge?: number;
    charge_skin?: string;
    cooperative?: boolean;
    crit?: number;
    cute?: boolean;
    damage_type: string;
    /** A multiplier for monsters' gold drops */
    difficulty?: number;
    dreturn?: number;
    drop_on_hit?: boolean;
    escapist?: boolean;
    evasion?: number;
    explanation?: string;
    explosion?: number;
    frequency: number;
    global?: boolean;
    goldsteal?: number;
    hide?: boolean;
    hit?: string;
    hp: number;
    humanoid?: boolean;
    immune?: boolean;
    lifesteal?: number;
    mp: number;
    max_hp: number;
    name: MonsterName;
    operator?: boolean;
    orientation?: number;
    passive?: boolean;
    peaceful?: boolean;
    pet?: {
        aggression: [number, number];
        brightness: number;
        chatter: [number, number];
        courage: [number, number];
        exponential: boolean;
        level: {
            armor: number;
            attack: number;
            charge: number;
            evasion: number;
            hp: number;
            resistance: number;
            speed: number;
        };
        obedience: [number, number];
        passion: [number, number];
        xp: number;
    };
    phresistance?: number;
    poisonous?: boolean;
    prefix?: string;
    projectile?: ProjectileKey;
    rage: number;
    range: number;
    rbuff?: ConditionKey;
    reflection?: number;
    resistance?: number;
    respawn: number;
    respawn_as?: MonsterKey;
    roam?: boolean;
    rpiercing?: number;
    s?: {
        [K in ConditionKey]?: {
            ms: number;
        };
    };
    size?: number;
    skin: string;
    slots?: {
        mainhand: {
            level: number;
            name: WeaponKey;
        };
        offhand?: {
            level: number;
            name: WeaponKey;
        };
    };
    spawns?: [[number, MonsterKey]];
    special?: boolean;
    speed: number;
    stationary?: boolean;
    supporter?: boolean;
    trap?: boolean;
    unlist?: boolean;
    xp: number;
    aa?: number;
}
