local ____lualib = require("lualib_bundle")
local __TS__New = ____lualib.__TS__New
local ____exports = {}
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
local CollectibleType = ____isaac_2Dtypescript_2Ddefinitions.CollectibleType
local ItemType = ____isaac_2Dtypescript_2Ddefinitions.ItemType
local ____ReadonlySet = require("types.ReadonlySet")
local ReadonlySet = ____ReadonlySet.ReadonlySet
local DEFAULT_ITEM_TYPE = ItemType.NULL
local DEFAULT_SUB_TYPE = CollectibleType.NULL
function ____exports.newPickingUpItem(self)
    return {itemType = DEFAULT_ITEM_TYPE, subType = DEFAULT_SUB_TYPE}
end
function ____exports.resetPickingUpItem(self, pickingUpItem)
    pickingUpItem.itemType = DEFAULT_ITEM_TYPE
    pickingUpItem.subType = DEFAULT_SUB_TYPE
end
local COLLECTIBLE_ITEM_TYPES = __TS__New(ReadonlySet, {ItemType.PASSIVE, ItemType.ACTIVE, ItemType.FAMILIAR})
--- Helper function to narrow the type of `PickingUpItem`.
function ____exports.isPickingUpItemNull(self, pickingUpItem)
    return pickingUpItem.itemType == ItemType.NULL
end
--- Helper function to narrow the type of `PickingUpItem`.
function ____exports.isPickingUpItemCollectible(self, pickingUpItem)
    return COLLECTIBLE_ITEM_TYPES:has(pickingUpItem.itemType)
end
--- Helper function to narrow the type of `PickingUpItem`.
function ____exports.isPickingUpItemTrinket(self, pickingUpItem)
    return pickingUpItem.itemType == ItemType.TRINKET
end
return ____exports
