---@meta
---@diagnostic disable

--$Factorio 1.1.70
--$Overlay 5
--$Section LuaItemPrototype
-- This file is automatically generated. Edits will be overwritten.

---Prototype of an item.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html)
---
---### Example
---```
---game.item_prototypes["iron-plate"]
---```
---@class LuaItemPrototype:LuaObject
---[R]  
---The alt entity filter mode used by this selection tool.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.alt_entity_filter_mode)
---
---_Can only be used if this is SelectionTool_
---@field alt_entity_filter_mode? string 
---[R]  
---The alt entity filters used by this selection tool indexed by entity name.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.alt_entity_filters)
---
---_Can only be used if this is SelectionTool_
---@field alt_entity_filters? {[string]: LuaEntityPrototype} 
---[R]  
---The alt entity type filters used by this selection tool indexed by entity type.
---
---**Note:** The boolean value is meaningless and is used to allow easy lookup if a type exists in the dictionary.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.alt_entity_type_filters)
---
---_Can only be used if this is SelectionTool_
---@field alt_entity_type_filters? {[string]: boolean} 
---[R]  
---The color used when doing alt selection with this selection tool prototype.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.alt_selection_border_color)
---
---_Can only be used if this is SelectionTool_
---@field alt_selection_border_color? Color 
---[R]
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.alt_selection_cursor_box_type)
---
---_Can only be used if this is SelectionTool_
---@field alt_selection_cursor_box_type? string 
---[R]  
---Flags that affect which entities will be selected during alternate selection.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.alt_selection_mode_flags)
---
---_Can only be used if this is SelectionTool_
---@field alt_selection_mode_flags? SelectionModeFlags 
---[R]  
---The alt tile filter mode used by this selection tool.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.alt_tile_filter_mode)
---
---_Can only be used if this is SelectionTool_
---@field alt_tile_filter_mode? string 
---[R]  
---The alt tile filters used by this selection tool indexed by tile name.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.alt_tile_filters)
---
---_Can only be used if this is SelectionTool_
---@field alt_tile_filters? {[string]: LuaTilePrototype} 
---[R]  
---If tiles area always included when doing selection with this selection tool prototype.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.always_include_tiles)
---
---_Can only be used if this is SelectionTool_
---@field always_include_tiles? boolean 
---[R]  
---The gun attack parameters.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.attack_parameters)
---
---_Can only be used if this is Gun_
---@field attack_parameters? AttackParameters 
---[R]  
---The result of burning this item as fuel, if any.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.burnt_result)
---@field burnt_result? LuaItemPrototype 
---[R]  
---If this item can be mod-opened.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.can_be_mod_opened)
---@field can_be_mod_opened boolean 
---[R]  
---The capsule action for this capsule item prototype.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.capsule_action)
---
---_Can only be used if this is Capsule_
---@field capsule_action? CapsuleAction 
---[R]  
---The name of a [LuaModuleCategoryPrototype](https://lua-api.factorio.com/latest/LuaModuleCategoryPrototype.html). Used when upgrading modules: Ctrl + click modules into an entity and it will replace lower tier modules of the same category with higher tier modules.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.category)
---
---_Can only be used if this is ModuleItem_
---@field category? string 
---[R]  
---The curved rail prototype used for this rail planner prototype.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.curved_rail)
---
---_Can only be used if this is RailPlanner_
---@field curved_rail? LuaEntityPrototype 
---[R]  
---The default label color used for this item with label, if any.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.default_label_color)
---
---_Can only be used if this is ItemWithLabel_
---@field default_label_color? Color 
---[R]  
---The default request value.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.default_request_amount)
---@field default_request_amount uint 
---[R]  
---If true, and this item with label has a label it is drawn in place of the normal number when held in the cursor.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.draw_label_for_cursor_render)
---
---_Can only be used if this is ItemWithLabel_
---@field draw_label_for_cursor_render? boolean 
---[R]  
---The durability of this tool item.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.durability)
---
---_Can only be used if this is ToolItem_
---@field durability? double 
---[R]  
---The durability message key used when displaying the durability of this tool.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.durability_description_key)
---
---_Can only be used if this is ToolItem_
---@field durability_description_key? string 
---[R]  
---The entity filter mode used by this selection tool.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.entity_filter_mode)
---
---_Can only be used if this is SelectionTool_
---@field entity_filter_mode? string 
---[R]  
---The number of entity filters this deconstruction item has.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.entity_filter_slots)
---
---_Can only be used if this is DeconstructionItem_
---@field entity_filter_slots? uint 
---[R]  
---The entity filters used by this selection tool indexed by entity name.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.entity_filters)
---
---_Can only be used if this is SelectionTool_
---@field entity_filters? {[string]: LuaEntityPrototype} 
---[R]  
---The entity type filters used by this selection tool indexed by entity type.
---
---**Note:** The boolean value is meaningless and is used to allow easy lookup if a type exists in the dictionary.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.entity_type_filters)
---
---_Can only be used if this is SelectionTool_
---@field entity_type_filters? {[string]: boolean} 
---[R]  
---The prototype of this armor equipment grid, if any.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.equipment_grid)
---
---_Can only be used if this is Armor_
---@field equipment_grid? LuaEquipmentGridPrototype 
---[R]  
---If this item with inventory extends the inventory it resides in by default.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.extend_inventory_by_default)
---
---_Can only be used if this is ItemWithInventory_
---@field extend_inventory_by_default? boolean 
---[R]  
---The filter mode used by this item with inventory.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.filter_mode)
---
---_Can only be used if this is ItemWithInventory_
---@field filter_mode? string 
---[R]  
---The flags for this item prototype.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.flags)
---@field flags ItemPrototypeFlags 
---[R]  
---The acceleration multiplier when this item is used as fuel in a vehicle.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.fuel_acceleration_multiplier)
---@field fuel_acceleration_multiplier double 
---[R]  
---The fuel category of this item prototype, if any.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.fuel_category)
---@field fuel_category? string 
---[R]  
---The emissions multiplier if this is used as fuel.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.fuel_emissions_multiplier)
---@field fuel_emissions_multiplier double 
---[R]  
---The fuel top speed multiplier when this item is used as fuel in a vehicle.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.fuel_top_speed_multiplier)
---@field fuel_top_speed_multiplier double 
---[R]  
---Fuel value when burned.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.fuel_value)
---@field fuel_value float 
---[R]  
---The group this prototype belongs to.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.group)
---@field group LuaGroup 
---[R]  
---If this tool item has infinite durability.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.infinite)
---
---_Can only be used if this is ToolItem_
---@field infinite? boolean 
---[R]  
---The insertion priority mode used by this item with inventory.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.insertion_priority_mode)
---
---_Can only be used if this is ItemWithInventory_
---@field insertion_priority_mode? string 
---[R]  
---The main inventory size for item-with-inventory-prototype.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.inventory_size)
---
---_Can only be used if this is ItemWithInventoryPrototype_
---@field inventory_size? uint 
---[R]  
---The inventory size bonus for this armor prototype.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.inventory_size_bonus)
---
---_Can only be used if this is ArmorPrototype_
---@field inventory_size_bonus? uint 
---[R]
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.item_filters)
---
---_Can only be used if this is ItemWithInventory_
---@field item_filters? {[string]: LuaItemPrototype} 
---[R]
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.item_group_filters)
---
---_Can only be used if this is ItemWithInventory_
---@field item_group_filters? {[string]: LuaGroup} 
---[R]
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.item_subgroup_filters)
---
---_Can only be used if this is ItemWithInventory_
---@field item_subgroup_filters? {[string]: LuaGroup} 
---[R]  
---The limitation message key used when the player attempts to use this modules in some place it's not allowed.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.limitation_message_key)
---
---_Can only be used if this is ModuleItem_
---@field limitation_message_key? string 
---[R]  
---An array of recipe names this module is allowed to work with. Empty when all recipes are allowed.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.limitations)
---
---_Can only be used if this is ModuleItem_
---@field limitations? string[] 
---[R]
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.localised_description)
---@field localised_description LocalisedString 
---[R]  
---The localised string used when the player attempts to put items into this item with inventory that aren't allowed.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.localised_filter_message)
---
---_Can only be used if this is ItemWithInventory_
---@field localised_filter_message? LocalisedString 
---[R]
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.localised_name)
---@field localised_name LocalisedString 
---[R]  
---Size of full magazine.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.magazine_size)
---
---_Can only be used if this is AmmoItem_
---@field magazine_size? float 
---[R]  
---How many filters an upgrade item has.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.mapper_count)
---
---_Can only be used if this is UpgradeItem_
---@field mapper_count? uint 
---[R]  
---Effects of this module.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.module_effects)
---
---_Can only be used if this is ModuleItem_
---@field module_effects? ModuleEffects 
---[R]  
---Name of this prototype.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.name)
---@field name string 
---[R]  
---The class name of this object. Available even when `valid` is false. For LuaStruct objects it may also be suffixed with a dotted path to a member of the struct.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.object_name)
---@field object_name string 
---[R]  
---The string used to alphabetically sort these prototypes. It is a simple string that has no additional semantic meaning.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.order)
---@field order string 
---[R]  
---Prototype of the equipment that will be created by placing this item in an equipment grid, if any.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.place_as_equipment_result)
---@field place_as_equipment_result? LuaEquipmentPrototype 
---[R]  
---The place-as-tile result if one is defined, if any.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.place_as_tile_result)
---@field place_as_tile_result? PlaceAsTileResult 
---[R]  
---Prototype of the entity that will be created by placing this item, if any.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.place_result)
---@field place_result? LuaEntityPrototype 
---[R]  
---Amount of extra time (in ticks) it takes to reload the weapon after depleting the magazine.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.reload_time)
---
---_Can only be used if this is AmmoItem_
---@field reload_time? float 
---[R]  
---The repair result of this repair tool prototype.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.repair_result)
---
---_Can only be used if this is RepairTool_
---@field repair_result? TriggerItem[] 
---[R]  
---Resistances of this armor item, if any, indexed by damage type name.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.resistances)
---
---_Can only be used if this is Armor_
---@field resistances? {[string]: Resistance} 
---[R]  
---The reverse entity filter mode used by this selection tool.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.reverse_alt_entity_filter_mode)
---
---_Can only be used if this is SelectionTool_
---@field reverse_alt_entity_filter_mode? string 
---[R]  
---The reverse entity filters used by this selection tool indexed by entity name.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.reverse_entity_filters)
---
---_Can only be used if this is SelectionTool_
---@field reverse_entity_filters? {[string]: LuaEntityPrototype} 
---[R]  
---The reverse entity type filters used by this selection tool indexed by entity type.
---
---**Note:** The boolean value is meaningless and is used to allow easy lookup if a type exists in the dictionary.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.reverse_entity_type_filters)
---
---_Can only be used if this is SelectionTool_
---@field reverse_entity_type_filters? {[string]: boolean} 
---[R]  
---The color used when doing reverse selection with this selection tool prototype.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.reverse_selection_border_color)
---
---_Can only be used if this is SelectionTool_
---@field reverse_selection_border_color? Color 
---[R]
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.reverse_selection_cursor_box_type)
---
---_Can only be used if this is SelectionTool_
---@field reverse_selection_cursor_box_type? string 
---[R]  
---Flags that affect which entities will be selected during reverse selection.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.reverse_selection_mode_flags)
---
---_Can only be used if this is SelectionTool_
---@field reverse_selection_mode_flags? SelectionModeFlags 
---[R]  
---The reverse tile filter mode used by this selection tool.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.reverse_tile_filter_mode)
---
---_Can only be used if this is SelectionTool_
---@field reverse_tile_filter_mode? string 
---[R]  
---The reverse tile filters used by this selection tool indexed by tile name.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.reverse_tile_filters)
---
---_Can only be used if this is SelectionTool_
---@field reverse_tile_filters? {[string]: LuaTilePrototype} 
---[R]  
---The results of launching this item in a rocket.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.rocket_launch_products)
---@field rocket_launch_products Product[] 
---[R]  
---The color used when doing normal selection with this selection tool prototype.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.selection_border_color)
---
---_Can only be used if this is SelectionTool_
---@field selection_border_color? Color 
---[R]
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.selection_cursor_box_type)
---
---_Can only be used if this is SelectionTool_
---@field selection_cursor_box_type? string 
---[R]  
---Flags that affect which entities will be selected.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.selection_mode_flags)
---
---_Can only be used if this is SelectionTool_
---@field selection_mode_flags? SelectionModeFlags 
---[R]  
---The repairing speed if this is a repairing tool.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.speed)
---
---_Can only be used if this is RepairTool_
---@field speed? float 
---[R]  
---Maximum stack size of the item specified by this prototype.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.stack_size)
---@field stack_size uint 
---[R]  
---Is this item allowed to stack at all?
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.stackable)
---@field stackable boolean 
---[R]  
---The straight rail prototype used for this rail planner prototype.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.straight_rail)
---
---_Can only be used if this is RailPlanner_
---@field straight_rail? LuaEntityPrototype 
---[R]  
---The subgroup this prototype belongs to.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.subgroup)
---@field subgroup LuaGroup 
---[R]  
---Tier of the module inside its category. Used when upgrading modules: Ctrl + click modules into an entity and it will replace lower tier modules with higher tier modules if they have the same category.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.tier)
---
---_Can only be used if this is ModuleItem_
---@field tier? uint 
---[R]  
---The tile filter mode used by this selection tool.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.tile_filter_mode)
---
---_Can only be used if this is SelectionTool_
---@field tile_filter_mode? string 
---[R]  
---The number of tile filters this deconstruction item has.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.tile_filter_slots)
---
---_Can only be used if this is DeconstructionItem_
---@field tile_filter_slots? uint 
---[R]  
---The tile filters used by this selection tool indexed by tile name.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.tile_filters)
---
---_Can only be used if this is SelectionTool_
---@field tile_filters? {[string]: LuaTilePrototype} 
---[R]  
---Type of this prototype. E.g. `"gun"` or `"mining-tool"`.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.type)
---@field type string 
---[R]  
---Is this object valid? This Lua object holds a reference to an object within the game engine. It is possible that the game-engine object is removed whilst a mod still holds the corresponding Lua object. If that happens, the object becomes invalid, i.e. this attribute will be `false`. Mods are advised to check for object validity if any change to the game state might have occurred between the creation of the Lua object and its access.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.valid)
---@field valid boolean 
---[R]  
---The number of items needed to connect two entities with this as wire.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.wire_count)
---@field wire_count uint 
local LuaItemPrototype={
---The type of this ammo prototype.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.get_ammo_type)
---
---_Can only be used if this is AmmoItem_
---@param ammo_source_type string?@One of `"default"`, `"player"`, `"turret"`, or `"vehicle"`. Defaults to `"default"`.
---@return AmmoType?
get_ammo_type=function(ammo_source_type)end,
---Does this prototype have a flag enabled?
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.has_flag)
---@param flag string@The flag to check. Can be one of [ItemPrototypeFlags](https://lua-api.factorio.com/latest/Concepts.html#ItemPrototypeFlags). Any other value will cause an error.
---@return boolean
has_flag=function(flag)end,
---All methods and properties that this object supports.
---
---[View documentation](https://lua-api.factorio.com/latest/LuaItemPrototype.html#LuaItemPrototype.help)
---@return string
help=function()end,
}


