local ____lualib = require("lualib_bundle")
local __TS__New = ____lualib.__TS__New
local ____exports = {}
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
local CrawlSpaceVariant = ____isaac_2Dtypescript_2Ddefinitions.CrawlSpaceVariant
local GridEntityType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityType
local GridEntityXMLType = ____isaac_2Dtypescript_2Ddefinitions.GridEntityXMLType
local PitVariant = ____isaac_2Dtypescript_2Ddefinitions.PitVariant
local PoopGridEntityVariant = ____isaac_2Dtypescript_2Ddefinitions.PoopGridEntityVariant
local PressurePlateVariant = ____isaac_2Dtypescript_2Ddefinitions.PressurePlateVariant
local RockVariant = ____isaac_2Dtypescript_2Ddefinitions.RockVariant
local StatueVariant = ____isaac_2Dtypescript_2Ddefinitions.StatueVariant
local TrapdoorVariant = ____isaac_2Dtypescript_2Ddefinitions.TrapdoorVariant
local ____ReadonlyMap = require("types.ReadonlyMap")
local ReadonlyMap = ____ReadonlyMap.ReadonlyMap
--- This maps the GridEntityXMLType (i.e. the type contained in the room XML/STB file) to the
-- GridEntityType and the variant used by the game.
____exports.GRID_ENTITY_XML_MAP = __TS__New(ReadonlyMap, {
    {GridEntityXMLType.DECORATION, {GridEntityType.DECORATION, 0}},
    {GridEntityXMLType.ROCK, {GridEntityType.ROCK, RockVariant.NORMAL}},
    {GridEntityXMLType.ROCK_BOMB, {GridEntityType.ROCK_BOMB, 0}},
    {GridEntityXMLType.ROCK_ALT, {GridEntityType.ROCK_ALT, 0}},
    {GridEntityXMLType.ROCK_TINTED, {GridEntityType.ROCK_TINTED, 0}},
    {GridEntityXMLType.ROCK_ALT_2, {GridEntityType.ROCK_ALT_2, 0}},
    {GridEntityXMLType.ROCK_EVENT, {GridEntityType.ROCK_ALT_2, RockVariant.EVENT}},
    {GridEntityXMLType.ROCK_SPIKED, {GridEntityType.ROCK_SPIKED, 0}},
    {GridEntityXMLType.ROCK_GOLD, {GridEntityType.ROCK_GOLD, 0}},
    {GridEntityXMLType.TNT, {GridEntityType.TNT, 0}},
    {GridEntityXMLType.POOP_RED, {GridEntityType.POOP, PoopGridEntityVariant.RED}},
    {GridEntityXMLType.POOP_RAINBOW, {GridEntityType.POOP, PoopGridEntityVariant.RAINBOW}},
    {GridEntityXMLType.POOP_CORNY, {GridEntityType.POOP, PoopGridEntityVariant.CORNY}},
    {GridEntityXMLType.POOP_GOLDEN, {GridEntityType.POOP, PoopGridEntityVariant.GOLDEN}},
    {GridEntityXMLType.POOP_BLACK, {GridEntityType.POOP, PoopGridEntityVariant.BLACK}},
    {GridEntityXMLType.POOP_WHITE, {GridEntityType.POOP, PoopGridEntityVariant.WHITE}},
    {GridEntityXMLType.POOP, {GridEntityType.POOP, PoopGridEntityVariant.NORMAL}},
    {GridEntityXMLType.POOP_CHARMING, {GridEntityType.POOP, PoopGridEntityVariant.CHARMING}},
    {GridEntityXMLType.BLOCK, {GridEntityType.BLOCK, 0}},
    {GridEntityXMLType.PILLAR, {GridEntityType.PILLAR, 0}},
    {GridEntityXMLType.SPIKES, {GridEntityType.SPIKES, 0}},
    {GridEntityXMLType.SPIKES_ON_OFF, {GridEntityType.SPIKES_ON_OFF, 0}},
    {GridEntityXMLType.SPIDER_WEB, {GridEntityType.SPIDER_WEB, 0}},
    {GridEntityXMLType.WALL, {GridEntityType.WALL, 0}},
    {GridEntityXMLType.PIT, {GridEntityType.PIT, PitVariant.NORMAL}},
    {GridEntityXMLType.FISSURE_SPAWNER, {GridEntityType.PIT, PitVariant.FISSURE_SPAWNER}},
    {GridEntityXMLType.PIT_EVENT, {GridEntityType.PIT, PitVariant.NORMAL}},
    {GridEntityXMLType.LOCK, {GridEntityType.LOCK, 0}},
    {GridEntityXMLType.PRESSURE_PLATE, {GridEntityType.PRESSURE_PLATE, PressurePlateVariant.PRESSURE_PLATE}},
    {GridEntityXMLType.STATUE_DEVIL, {GridEntityType.STATUE, StatueVariant.DEVIL}},
    {GridEntityXMLType.STATUE_ANGEL, {GridEntityType.STATUE, StatueVariant.ANGEL}},
    {GridEntityXMLType.TELEPORTER, {GridEntityType.TELEPORTER, 0}},
    {GridEntityXMLType.TRAPDOOR, {GridEntityType.TRAPDOOR, TrapdoorVariant.NORMAL}},
    {GridEntityXMLType.CRAWL_SPACE, {GridEntityType.CRAWL_SPACE, CrawlSpaceVariant.NORMAL}},
    {GridEntityXMLType.GRAVITY, {GridEntityType.GRAVITY, 0}}
})
return ____exports
