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 ____cachedClasses = require("core.cachedClasses")
local game = ____cachedClasses.game
local ____CustomCallback = require("classes.private.CustomCallback")
local CustomCallback = ____CustomCallback.CustomCallback
local v = {run = {currentGreedWave = 0}}
____exports.PostGreedModeWave = __TS__Class()
local PostGreedModeWave = ____exports.PostGreedModeWave
PostGreedModeWave.name = "PostGreedModeWave"
__TS__ClassExtends(PostGreedModeWave, CustomCallback)
function PostGreedModeWave.prototype.____constructor(self)
    CustomCallback.prototype.____constructor(self)
    self.v = v
    self.postUpdate = function()
        if not game:IsGreedMode() then
            return
        end
        local level = game:GetLevel()
        local newWave = level.GreedModeWave
        local oldWave = v.run.currentGreedWave
        v.run.currentGreedWave = newWave
        if newWave > oldWave then
            self:fire(oldWave, newWave)
        end
    end
    self.callbacksUsed = {{ModCallback.POST_UPDATE, self.postUpdate}}
end
return ____exports
