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.InputActionPlayer = __TS__Class()
local InputActionPlayer = ____exports.InputActionPlayer
InputActionPlayer.name = "InputActionPlayer"
__TS__ClassExtends(InputActionPlayer, CustomCallback)
function InputActionPlayer.prototype.____constructor(self)
    CustomCallback.prototype.____constructor(self)
    self.shouldFire = function(____, fireArgs, optionalArgs)
        local player, inputHook, buttonAction = table.unpack(fireArgs)
        local callbackPlayerVariant, callbackCharacter, callbackInputHook, callbackButtonAction = table.unpack(optionalArgs)
        local character = player:GetPlayerType()
        return (callbackPlayerVariant == nil or callbackPlayerVariant == player.Variant) and (callbackCharacter == nil or callbackCharacter == character) and (callbackInputHook == nil or callbackInputHook == inputHook) and (callbackButtonAction == nil or callbackButtonAction == buttonAction)
    end
    self.inputAction = function(____, entity, inputHook, buttonAction)
        if entity == nil then
            return nil
        end
        local player = entity:ToPlayer()
        if player == nil then
            return nil
        end
        return self:fire(player, inputHook, buttonAction)
    end
    self.callbacksUsed = {{ModCallback.INPUT_ACTION, self.inputAction}}
end
return ____exports
