local ____lualib = require("lualib_bundle")
local __TS__Class = ____lualib.__TS__Class
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
local Set = ____lualib.Set
local __TS__New = ____lualib.__TS__New
local ____exports = {}
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
local ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
local ____frames = require("functions.frames")
local isAfterRoomFrame = ____frames.isAfterRoomFrame
local ____roomData = require("functions.roomData")
local getRoomVisitedCount = ____roomData.getRoomVisitedCount
local ____shouldFire = require("shouldFire")
local shouldFirePickup = ____shouldFire.shouldFirePickup
local ____CustomCallback = require("classes.private.CustomCallback")
local CustomCallback = ____CustomCallback.CustomCallback
____exports.PostPickupInitFirst = __TS__Class()
local PostPickupInitFirst = ____exports.PostPickupInitFirst
PostPickupInitFirst.name = "PostPickupInitFirst"
__TS__ClassExtends(PostPickupInitFirst, CustomCallback)
function PostPickupInitFirst.prototype.____constructor(self)
    CustomCallback.prototype.____constructor(self)
    self.v = {room = {firedSet = __TS__New(Set)}}
    self.shouldFire = shouldFirePickup
    self.postPickupInit = function(____, pickup)
        local roomVisitedCount = getRoomVisitedCount(nil)
        if isAfterRoomFrame(nil, 0) or roomVisitedCount == 0 then
            self:fire(pickup)
        end
    end
    self.callbacksUsed = {{ModCallback.POST_PICKUP_INIT, self.postPickupInit}}
end
return ____exports
