local ____lualib = require("lualib_bundle")
local __TS__Class = ____lualib.__TS__Class
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
local ____exports = {}
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
local ____CustomCallback = require("classes.private.CustomCallback")
local CustomCallback = ____CustomCallback.CustomCallback
____exports.PreRoomEntitySpawnFilter = __TS__Class()
local PreRoomEntitySpawnFilter = ____exports.PreRoomEntitySpawnFilter
PreRoomEntitySpawnFilter.name = "PreRoomEntitySpawnFilter"
__TS__ClassExtends(PreRoomEntitySpawnFilter, CustomCallback)
function PreRoomEntitySpawnFilter.prototype.____constructor(self)
    CustomCallback.prototype.____constructor(self)
    self.shouldFire = function(____, fireArgs, optionalArgs)
        local entityTypeOrGridEntityXMLType, variant, subType = table.unpack(fireArgs)
        local callbackEntityTypeOrGridEntityXMLType, callbackVariant, callbackSubType = table.unpack(optionalArgs)
        return (callbackEntityTypeOrGridEntityXMLType == nil or callbackEntityTypeOrGridEntityXMLType == entityTypeOrGridEntityXMLType) and (callbackVariant == nil or callbackVariant == variant) and (callbackSubType == nil or callbackSubType == subType)
    end
    self.preRoomEntitySpawn = function(____, entityTypeOrGridEntityXMLType, variant, subType, gridIndex, initSeed) return self:fire(
        entityTypeOrGridEntityXMLType,
        variant,
        subType,
        gridIndex,
        initSeed
    ) end
    self.callbacksUsed = {{ModCallback.PRE_ROOM_ENTITY_SPAWN, self.preRoomEntitySpawn}}
end
return ____exports
