declare namespace org {
    namespace bukkit {
        namespace event {
            namespace entity {
                namespace CreatureSpawnEvent {
                    // @ts-ignore
                     class SpawnReason extends java.lang.Enum {
                        // @ts-ignore
                        public static NATURAL: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static JOCKEY: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static CHUNK_GEN: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static SPAWNER: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static EGG: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static SPAWNER_EGG: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static LIGHTNING: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static BUILD_SNOWMAN: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static BUILD_IRONGOLEM: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static BUILD_WITHER: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static VILLAGE_DEFENSE: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static VILLAGE_INVASION: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static BREEDING: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static SLIME_SPLIT: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static REINFORCEMENTS: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static NETHER_PORTAL: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static DISPENSE_EGG: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static INFECTION: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static CURED: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static OCELOT_BABY: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static SILVERFISH_BLOCK: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static MOUNT: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static TRAP: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static ENDER_PEARL: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static SHOULDER_ENTITY: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static DROWNED: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static SHEARED: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static EXPLOSION: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static CUSTOM: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static DEFAULT: org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                        // @ts-ignore
                        public static values(): org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason[];
                        // @ts-ignore
                        public static valueOf(name: string): org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
                    }
                }
            }
        }
    }
}
