isaacscript-common 80.2.4 → 81.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/dist/functions/array.d.ts +1 -1
  2. package/dist/functions/array.d.ts.map +1 -1
  3. package/dist/functions/arrayLua.d.ts +2 -2
  4. package/dist/functions/arrayLua.d.ts.map +1 -1
  5. package/dist/functions/benchmark.d.ts +1 -1
  6. package/dist/functions/benchmark.d.ts.map +1 -1
  7. package/dist/functions/bitwise.d.ts +1 -1
  8. package/dist/functions/bitwise.d.ts.map +1 -1
  9. package/dist/functions/bosses.d.ts +2 -2
  10. package/dist/functions/bosses.d.ts.map +1 -1
  11. package/dist/functions/charge.d.ts +1 -1
  12. package/dist/functions/charge.d.ts.map +1 -1
  13. package/dist/functions/collectibles.d.ts +2 -1
  14. package/dist/functions/collectibles.d.ts.map +1 -1
  15. package/dist/functions/collectibles.lua +2 -1
  16. package/dist/functions/doors.d.ts +4 -4
  17. package/dist/functions/doors.d.ts.map +1 -1
  18. package/dist/functions/entities.d.ts +4 -4
  19. package/dist/functions/entities.d.ts.map +1 -1
  20. package/dist/functions/entitiesSpecific.d.ts +20 -20
  21. package/dist/functions/entitiesSpecific.d.ts.map +1 -1
  22. package/dist/functions/enums.d.ts +4 -4
  23. package/dist/functions/enums.d.ts.map +1 -1
  24. package/dist/functions/familiars.d.ts +1 -1
  25. package/dist/functions/familiars.d.ts.map +1 -1
  26. package/dist/functions/gridEntities.d.ts +11 -11
  27. package/dist/functions/gridEntities.d.ts.map +1 -1
  28. package/dist/functions/gridEntitiesSpecific.d.ts +18 -18
  29. package/dist/functions/gridEntitiesSpecific.d.ts.map +1 -1
  30. package/dist/functions/gridIndex.d.ts +1 -1
  31. package/dist/functions/gridIndex.d.ts.map +1 -1
  32. package/dist/functions/input.d.ts +2 -2
  33. package/dist/functions/input.d.ts.map +1 -1
  34. package/dist/functions/itemPool.d.ts +1 -1
  35. package/dist/functions/itemPool.d.ts.map +1 -1
  36. package/dist/functions/jsonRoom.d.ts +1 -1
  37. package/dist/functions/jsonRoom.d.ts.map +1 -1
  38. package/dist/functions/level.d.ts +1 -1
  39. package/dist/functions/level.d.ts.map +1 -1
  40. package/dist/functions/levelGrid.d.ts +1 -1
  41. package/dist/functions/levelGrid.d.ts.map +1 -1
  42. package/dist/functions/math.d.ts +2 -2
  43. package/dist/functions/math.d.ts.map +1 -1
  44. package/dist/functions/newArray.d.ts.map +1 -1
  45. package/dist/functions/npcs.d.ts +1 -1
  46. package/dist/functions/npcs.d.ts.map +1 -1
  47. package/dist/functions/pickups.d.ts +2 -2
  48. package/dist/functions/pickups.d.ts.map +1 -1
  49. package/dist/functions/pickupsSpecific.d.ts +22 -22
  50. package/dist/functions/pickupsSpecific.d.ts.map +1 -1
  51. package/dist/functions/playerCollectibles.d.ts +2 -2
  52. package/dist/functions/playerCollectibles.d.ts.map +1 -1
  53. package/dist/functions/playerEffects.d.ts +1 -1
  54. package/dist/functions/playerEffects.d.ts.map +1 -1
  55. package/dist/functions/playerIndex.d.ts +3 -3
  56. package/dist/functions/playerIndex.d.ts.map +1 -1
  57. package/dist/functions/playerTrinkets.d.ts +1 -1
  58. package/dist/functions/playerTrinkets.d.ts.map +1 -1
  59. package/dist/functions/players.d.ts +4 -4
  60. package/dist/functions/players.d.ts.map +1 -1
  61. package/dist/functions/pocketItems.d.ts +2 -2
  62. package/dist/functions/pocketItems.d.ts.map +1 -1
  63. package/dist/functions/positionVelocity.d.ts +5 -5
  64. package/dist/functions/positionVelocity.d.ts.map +1 -1
  65. package/dist/functions/projectiles.d.ts +2 -2
  66. package/dist/functions/projectiles.d.ts.map +1 -1
  67. package/dist/functions/rooms.d.ts +5 -5
  68. package/dist/functions/rooms.d.ts.map +1 -1
  69. package/dist/functions/run.d.ts +1 -1
  70. package/dist/functions/run.d.ts.map +1 -1
  71. package/dist/functions/set.d.ts.map +1 -1
  72. package/dist/functions/sort.d.ts.map +1 -1
  73. package/dist/functions/sprites.d.ts +1 -1
  74. package/dist/functions/sprites.d.ts.map +1 -1
  75. package/dist/functions/table.d.ts +3 -3
  76. package/dist/functions/table.d.ts.map +1 -1
  77. package/dist/functions/utils.d.ts +2 -2
  78. package/dist/functions/utils.d.ts.map +1 -1
  79. package/dist/index.rollup.d.ts +138 -137
  80. package/dist/isaacscript-common.lua +3 -2
  81. package/package.json +2 -2
  82. package/src/classes/ModUpgraded.ts +4 -2
  83. package/src/functions/array.ts +10 -1
  84. package/src/functions/arrayLua.ts +2 -2
  85. package/src/functions/benchmark.ts +1 -1
  86. package/src/functions/bitwise.ts +4 -1
  87. package/src/functions/bosses.ts +2 -2
  88. package/src/functions/charge.ts +1 -1
  89. package/src/functions/collectibles.ts +2 -1
  90. package/src/functions/deepCopy.ts +1 -1
  91. package/src/functions/doors.ts +6 -4
  92. package/src/functions/entities.ts +7 -7
  93. package/src/functions/entitiesSpecific.ts +20 -20
  94. package/src/functions/enums.ts +6 -4
  95. package/src/functions/familiars.ts +3 -1
  96. package/src/functions/gridEntities.ts +13 -13
  97. package/src/functions/gridEntitiesSpecific.ts +20 -18
  98. package/src/functions/gridIndex.ts +1 -1
  99. package/src/functions/input.ts +2 -2
  100. package/src/functions/itemPool.ts +1 -1
  101. package/src/functions/jsonRoom.ts +1 -1
  102. package/src/functions/level.ts +1 -1
  103. package/src/functions/levelGrid.ts +1 -1
  104. package/src/functions/math.ts +2 -2
  105. package/src/functions/newArray.ts +1 -0
  106. package/src/functions/npcs.ts +1 -1
  107. package/src/functions/pickups.ts +2 -2
  108. package/src/functions/pickupsSpecific.ts +31 -22
  109. package/src/functions/playerCollectibles.ts +2 -2
  110. package/src/functions/playerEffects.ts +3 -1
  111. package/src/functions/playerIndex.ts +5 -3
  112. package/src/functions/playerTrinkets.ts +1 -1
  113. package/src/functions/players.ts +6 -4
  114. package/src/functions/pocketItems.ts +5 -3
  115. package/src/functions/positionVelocity.ts +9 -5
  116. package/src/functions/projectiles.ts +2 -2
  117. package/src/functions/rooms.ts +8 -6
  118. package/src/functions/run.ts +1 -1
  119. package/src/functions/set.ts +1 -0
  120. package/src/functions/sort.ts +1 -0
  121. package/src/functions/sprites.ts +1 -1
  122. package/src/functions/table.ts +3 -3
  123. package/src/functions/utils.ts +2 -2
@@ -990,7 +990,7 @@ export declare function anyEasterEggEnabled(exceptions?: SeedEffect[]): boolean;
990
990
  */
991
991
  export declare type AnyEntity = Entity | EntityBomb | EntityEffect | EntityFamiliar | EntityKnife | EntityLaser | EntityNPC | EntityPickup | EntityPlayer | EntityProjectile | EntityTear;
992
992
 
993
- export declare function anyEntityCloserThan(entities: Entity[], position: Vector, distance: int): boolean;
993
+ export declare function anyEntityCloserThan(entities: Entity[] | readonly Entity[], position: Vector, distance: int): boolean;
994
994
 
995
995
  /**
996
996
  * Helper type to represent any function. This is safer than using the built-in `Function` type, as
@@ -1293,7 +1293,7 @@ export declare const AZAZEL_DEFAULT_BRIMSTONE_DISTANCE = 75.125;
1293
1293
  * @returns An array containing the average time in milliseconds for each function. (This will also
1294
1294
  * be printed to the log.)
1295
1295
  */
1296
- export declare function benchmark(numTrials: int, ...functions: Array<() => void>): int[];
1296
+ export declare function benchmark(numTrials: int, ...functions: Array<() => void>): readonly int[];
1297
1297
 
1298
1298
  /**
1299
1299
  * Helper function for casting a flag enum value to a `BitFlags` object.
@@ -1611,7 +1611,7 @@ export declare function clearRoomDisplayFlags(roomGridIndex: int): void;
1611
1611
  *
1612
1612
  * @allowEmptyVariadic
1613
1613
  */
1614
- export declare function clearSprite(sprite: Sprite, ...layerIDs: int[]): void;
1614
+ export declare function clearSprite(sprite: Sprite, ...layerIDs: readonly int[]): void;
1615
1615
 
1616
1616
  /**
1617
1617
  * In a `Map`, you can use the `clear` method to delete every element. However, in a `LuaMap`, the
@@ -1774,7 +1774,7 @@ export declare function convertBinaryToDecimal(bits: int[]): number;
1774
1774
  * side until the minimum length is met. Default is undefined (which will not cause
1775
1775
  * any padding).
1776
1776
  */
1777
- export declare function convertDecimalToBinary(num: number, minLength?: int): int[];
1777
+ export declare function convertDecimalToBinary(num: number, minLength?: int): readonly int[];
1778
1778
 
1779
1779
  /**
1780
1780
  * Helper function to convert the grid entity type found in a room XML file to the corresponding
@@ -4028,7 +4028,7 @@ export declare const DOGMA_ROOM_GRID_INDEX = 109;
4028
4028
 
4029
4029
  export declare const DOOR_HITBOX_RADIUS = 11;
4030
4030
 
4031
- export declare function doorSlotFlagsToDoorSlots(doorSlotFlags: BitFlags<DoorSlotFlag>): DoorSlot[];
4031
+ export declare function doorSlotFlagsToDoorSlots(doorSlotFlags: BitFlags<DoorSlotFlag>): readonly DoorSlot[];
4032
4032
 
4033
4033
  export declare function doorSlotFlagToDoorSlot(doorSlotFlag: DoorSlotFlag): DoorSlot;
4034
4034
 
@@ -4364,7 +4364,7 @@ export declare type ERange<Low extends number, High extends number> = Exclude<Na
4364
4364
  * first argument will be the end.
4365
4365
  * @param increment Optional. The increment to use. Default is 1.
4366
4366
  */
4367
- export declare function eRange(start: int, end?: int, increment?: number): int[];
4367
+ export declare function eRange(start: int, end?: int, increment?: number): readonly int[];
4368
4368
 
4369
4369
  declare type ErrorIsaacAPIClassIsNotSerializable = "Error: Isaac API classes (such as e.g. `Entity` or `RoomConfig`) are not serializable. For more information, see: https://isaacscript.github.io/main/gotchas#isaac-api-classes-are-not-serializable";
4370
4370
 
@@ -4554,7 +4554,7 @@ export declare function fillLevelWithRedRooms(): void;
4554
4554
  *
4555
4555
  * Internally, this just calls `array.filter`.
4556
4556
  */
4557
- export declare function filter<T>(array: T[], func: (value: T, index: number, array: T[]) => boolean): T[];
4557
+ export declare function filter<T>(array: T[], func: (value: T, index: number, array: T[]) => boolean): readonly T[];
4558
4558
 
4559
4559
  /**
4560
4560
  * Helper function to perform a map and a filter at the same time. Similar to `Array.map`, provide a
@@ -4610,7 +4610,7 @@ declare type FireArgs<T extends ModCallbackCustom> = Parameters<AddCallbackParam
4610
4610
  * `ProjectileParams()`.
4611
4611
  * @returns The fired projectile(s).
4612
4612
  */
4613
- export declare function fireProjectiles(npc: EntityNPC | undefined, position: Vector, velocity: Vector, projectilesMode?: ProjectilesMode, projectileParams?: ProjectileParams): EntityProjectile[];
4613
+ export declare function fireProjectiles(npc: EntityNPC | undefined, position: Vector, velocity: Vector, projectilesMode?: ProjectilesMode, projectileParams?: ProjectileParams): readonly EntityProjectile[];
4614
4614
 
4615
4615
  /**
4616
4616
  * Helper function to spawn projectiles in a circle around a position. Under the hood, this
@@ -4623,7 +4623,7 @@ export declare function fireProjectiles(npc: EntityNPC | undefined, position: Ve
4623
4623
  * @param numProjectiles The amount of projectiles to spawn.
4624
4624
  * @returns The fired projectile(s).
4625
4625
  */
4626
- export declare function fireProjectilesInCircle(npc: EntityNPC | undefined, position: Vector, speed: float, numProjectiles: int): EntityProjectile[];
4626
+ export declare function fireProjectilesInCircle(npc: EntityNPC | undefined, position: Vector, speed: float, numProjectiles: int): readonly EntityProjectile[];
4627
4627
 
4628
4628
  /** Equal to `Card.FOOL`. */
4629
4629
  export declare const FIRST_CARD_TYPE = CardType.FOOL;
@@ -4828,7 +4828,7 @@ declare class GameReorderedCallbacks extends Feature {
4828
4828
  * Helper function to find the active slots that the player has the corresponding collectible type
4829
4829
  * in. Returns an empty array if the player does not have the collectible in any active slot.
4830
4830
  */
4831
- export declare function getActiveItemSlots(player: EntityPlayer, collectibleType: CollectibleType): ActiveSlot[];
4831
+ export declare function getActiveItemSlots(player: EntityPlayer, collectibleType: CollectibleType): readonly ActiveSlot[];
4832
4832
 
4833
4833
  /**
4834
4834
  * Helper function to get the `PocketItemSlot` that the player's pocket active collectible item is
@@ -4893,7 +4893,7 @@ export declare function getAdjustedPrice(basePrice: int): int;
4893
4893
  * is -1, which matches every sub-type.
4894
4894
  * @param ignoreFriendly Optional. Default is false.
4895
4895
  */
4896
- export declare function getAliveBosses(entityType?: EntityType | -1, variant?: number, subType?: number, ignoreFriendly?: boolean): EntityNPC[];
4896
+ export declare function getAliveBosses(entityType?: EntityType | -1, variant?: number, subType?: number, ignoreFriendly?: boolean): readonly EntityNPC[];
4897
4897
 
4898
4898
  /**
4899
4899
  * Helper function to get all of the non-dead NPCs in the room.
@@ -4909,7 +4909,7 @@ export declare function getAliveBosses(entityType?: EntityType | -1, variant?: n
4909
4909
  * -1, which matches every sub-type.
4910
4910
  * @param ignoreFriendly Optional. Default is false.
4911
4911
  */
4912
- export declare function getAliveNPCs(entityType?: EntityType | -1, variant?: number, subType?: number, ignoreFriendly?: boolean): EntityNPC[];
4912
+ export declare function getAliveNPCs(entityType?: EntityType | -1, variant?: number, subType?: number, ignoreFriendly?: boolean): readonly EntityNPC[];
4913
4913
 
4914
4914
  /**
4915
4915
  * Helper function to get the set of every boss in the game (which is derived from the `BossID`
@@ -4938,7 +4938,7 @@ export declare function getAllBossesSet(includeStoryBosses?: boolean): ReadonlyS
4938
4938
  *
4939
4939
  * Under the hood, this uses the `Room.GetGridSize` method.
4940
4940
  */
4941
- export declare function getAllGridIndexes(): int[];
4941
+ export declare function getAllGridIndexes(): readonly int[];
4942
4942
 
4943
4943
  /**
4944
4944
  * Helper function to get an array with every non-null pill color. This includes all gold colors and
@@ -4953,7 +4953,7 @@ export declare function getAllPillColors(): readonly PillColor[];
4953
4953
  * This function is almost never what you want to use. For most purposes, use the `getPlayers`
4954
4954
  * helper function instead to get a filtered list of players.
4955
4955
  */
4956
- export declare function getAllPlayers(): EntityPlayer[];
4956
+ export declare function getAllPlayers(): readonly EntityPlayer[];
4957
4957
 
4958
4958
  /**
4959
4959
  * Helper function to get the room safe grid index for every room on the entire floor. This includes
@@ -5008,7 +5008,7 @@ export declare function getArrayCombinations<T>(array: T[] | readonly T[], inclu
5008
5008
  * due to implementation details of TypeScriptToLua, this results in an array of 1 through N
5009
5009
  * (instead of an array of 0 through N -1).
5010
5010
  */
5011
- export declare function getArrayIndexes<T>(array: T[] | readonly T[]): int[];
5011
+ export declare function getArrayIndexes<T>(array: T[] | readonly T[]): readonly int[];
5012
5012
 
5013
5013
  /**
5014
5014
  * Helper function to get how long Azazel's Brimstone laser should be. You can pass either an
@@ -5024,7 +5024,7 @@ export declare function getAzazelBrimstoneDistance(playerOrTearHeight: EntityPla
5024
5024
  * @param batterySubType Optional. If specified, will only get the batteries that match the
5025
5025
  * sub-type. Default is -1, which matches every sub-type.
5026
5026
  */
5027
- export declare function getBatteries(batterySubType?: BatterySubType | -1): EntityPickupBattery[];
5027
+ export declare function getBatteries(batterySubType?: BatterySubType | -1): readonly EntityPickupBattery[];
5028
5028
 
5029
5029
  /**
5030
5030
  * Helper function to get the name of a battery, as listed in the "entities2.xml" file. Returns
@@ -5061,7 +5061,7 @@ export declare function getBombName(bombSubType: BombSubType): string;
5061
5061
  * @param bombSubType Optional. If specified, will only get the bombs that match the sub-type.
5062
5062
  * Default is -1, which matches every sub-type.
5063
5063
  */
5064
- export declare function getBombPickups(bombSubType?: BombSubType | -1): EntityPickupBomb[];
5064
+ export declare function getBombPickups(bombSubType?: BombSubType | -1): readonly EntityPickupBomb[];
5065
5065
 
5066
5066
  /** Helper function to find out how large a bomb explosion is based on the damage inflicted. */
5067
5067
  export declare function getBombRadiusFromDamage(damage: float): float;
@@ -5084,7 +5084,7 @@ export declare function getBombRadiusFromDamage(damage: float): float;
5084
5084
  * @param subType Optional. If specified, will only get the bombs that match the sub-type. Default
5085
5085
  * is -1, which matches every sub-type.
5086
5086
  */
5087
- export declare function getBombs(bombVariant?: BombVariant | -1, subType?: number): EntityBomb[];
5087
+ export declare function getBombs(bombVariant?: BombVariant | -1, subType?: number): readonly EntityBomb[];
5088
5088
 
5089
5089
  /**
5090
5090
  * Helper function to safely get boolean values from a Lua table. Will throw an error if the
@@ -5092,7 +5092,7 @@ export declare function getBombs(bombVariant?: BombVariant | -1, subType?: numbe
5092
5092
  *
5093
5093
  * This function is variadic, meaning that you can specify N arguments to get N values.
5094
5094
  */
5095
- export declare function getBooleansFromTable(luaMap: LuaMap<string, unknown>, objectName: string, ...keys: string[]): boolean[];
5095
+ export declare function getBooleansFromTable(luaMap: LuaMap<string, unknown>, objectName: string, ...keys: string[]): readonly boolean[];
5096
5096
 
5097
5097
  /**
5098
5098
  * Helper function to get all of the bosses in the room.
@@ -5105,7 +5105,7 @@ export declare function getBooleansFromTable(luaMap: LuaMap<string, unknown>, ob
5105
5105
  * is -1, which matches every sub-type.
5106
5106
  * @param ignoreFriendly Optional. Default is false.
5107
5107
  */
5108
- export declare function getBosses(entityType?: EntityType, variant?: int, subType?: int, ignoreFriendly?: boolean): EntityNPC[];
5108
+ export declare function getBosses(entityType?: EntityType, variant?: int, subType?: int, ignoreFriendly?: boolean): readonly EntityNPC[];
5109
5109
 
5110
5110
  /**
5111
5111
  * Helper function to get the boss ID corresponding to the current room. Returns undefined if the
@@ -5182,7 +5182,7 @@ export declare function getCardName(cardType: CardType): string;
5182
5182
  * @param cardType Optional. If specified, will only get the cards that match the sub-type. Default
5183
5183
  * is -1, which matches every sub-type.
5184
5184
  */
5185
- export declare function getCards(cardType?: CardType | -1): EntityPickupCard[];
5185
+ export declare function getCards(cardType?: CardType | -1): readonly EntityPickupCard[];
5186
5186
 
5187
5187
  /**
5188
5188
  * Get the final boss of a challenge. This will only work for vanilla challenges.
@@ -5269,7 +5269,7 @@ export declare function getCharacterNamePNGFilePath(character: PlayerType): stri
5269
5269
  export declare function getCharacterPortraitPNGFilePath(character: PlayerType): string;
5270
5270
 
5271
5271
  /** Helper function to get an array containing the characters of all of the current players. */
5272
- export declare function getCharacters(): PlayerType[];
5272
+ export declare function getCharacters(): readonly PlayerType[];
5273
5273
 
5274
5274
  /**
5275
5275
  * Helper function to get the path to the sprite for a particular character.
@@ -5325,7 +5325,7 @@ export declare function getChestName(pickupVariant: PickupVariant): string;
5325
5325
  * @param subType Optional. If specified, will only get the chests that match the sub-type. Default
5326
5326
  * is -1, which matches every sub-type.
5327
5327
  */
5328
- export declare function getChests(subType?: number): EntityPickup[];
5328
+ export declare function getChests(subType?: number): readonly EntityPickup[];
5329
5329
 
5330
5330
  /**
5331
5331
  * Helper function to get an array of equidistant points on the circumference around a circle.
@@ -5339,7 +5339,7 @@ export declare function getChests(subType?: number): EntityPickup[];
5339
5339
  * @param initialDirection By default, the first point on the circle will be on the top center, but
5340
5340
  * this can be optionally changed by specifying this argument.
5341
5341
  */
5342
- export declare function getCircleDiscretizedPoints(centerPos: Vector, radius: float, numPoints: int, xMultiplier?: number, yMultiplier?: number, initialDirection?: Direction): Vector[];
5342
+ export declare function getCircleDiscretizedPoints(centerPos: Vector, radius: float, numPoints: int, xMultiplier?: number, yMultiplier?: number, initialDirection?: Direction): ReadonlyArray<Readonly<Vector>>;
5343
5343
 
5344
5344
  /**
5345
5345
  * Given an array of entities, this helper function returns the closest one to a provided reference
@@ -5392,7 +5392,7 @@ export declare function getCoinName(coinSubType: CoinSubType): string;
5392
5392
  * @param coinSubType Optional. If specified, will only get the coins that match the sub-type.
5393
5393
  * Default is -1, which matches every sub-type.
5394
5394
  */
5395
- export declare function getCoins(coinSubType?: CoinSubType | -1): EntityPickupCoin[];
5395
+ export declare function getCoins(coinSubType?: CoinSubType | -1): readonly EntityPickupCoin[];
5396
5396
 
5397
5397
  /**
5398
5398
  * Helper function to get the corresponding coin amount from a `CoinSubType`. Returns 1 for modded
@@ -5444,7 +5444,8 @@ export declare function getCollectibleGfxFilename(collectibleOrCollectibleType:
5444
5444
  * to an `InitCharge` value of -1. However, in some cases, this may be different. For example,
5445
5445
  * Eden's Soul starts without any charges, so it has an `InitCharge` value of 0.
5446
5446
  *
5447
- * This function returns 0 if the provided collectible type was not valid.
5447
+ * This function returns 0 if the provided collectible type was not valid. This function returns -1
5448
+ * if the provided collectible type was not an active collectible.
5448
5449
  */
5449
5450
  export declare function getCollectibleInitCharge(collectibleOrCollectibleType: EntityPickup | CollectibleType): int;
5450
5451
 
@@ -5489,7 +5490,7 @@ export declare function getCollectibleQuality(collectibleOrCollectibleType: Enti
5489
5490
  * @param collectibleType Optional. If specified, will only get the collectibles that match the
5490
5491
  * sub-type. Default is -1, which matches every sub-type.
5491
5492
  */
5492
- export declare function getCollectibles(collectibleType?: CollectibleType | -1): EntityPickupCollectible[];
5493
+ export declare function getCollectibles(collectibleType?: CollectibleType | -1): readonly EntityPickupCollectible[];
5493
5494
 
5494
5495
  /**
5495
5496
  * Helper function to get the tags of a collectible (which is the composition of zero or more
@@ -5514,7 +5515,7 @@ export declare function getCollectibleTags(collectibleOrCollectibleType: EntityP
5514
5515
  * Note that this function will not work properly in the `POST_NEW_ROOM` callback since entities do
5515
5516
  * not have collision yet in that callback.
5516
5517
  */
5517
- export declare function getCollidingEntitiesWithGridEntity(gridEntity: GridEntity): Entity[];
5518
+ export declare function getCollidingEntitiesWithGridEntity(gridEntity: GridEntity): readonly Entity[];
5518
5519
 
5519
5520
  /**
5520
5521
  * Helper function to get the set of vanilla bosses for a particular stage across all of the stage
@@ -5538,7 +5539,7 @@ export declare function getConstituentsFromGridEntityID(gridEntityID: GridEntity
5538
5539
  * @param crawlSpaceVariant Optional. If specified, will only get the crawl spaces that match the
5539
5540
  * variant. Default is -1, which matches every variant.
5540
5541
  */
5541
- export declare function getCrawlSpaces(crawlSpaceVariant?: CrawlSpaceVariant | -1): GridEntity[];
5542
+ export declare function getCrawlSpaces(crawlSpaceVariant?: CrawlSpaceVariant | -1): readonly GridEntity[];
5542
5543
 
5543
5544
  /**
5544
5545
  * Helper function to get the actual bit flag for modded curses.
@@ -5571,7 +5572,7 @@ export declare function getDefaultGlobals(): ReadonlySet<string>;
5571
5572
  * This function will automatically account for Greed Mode. In other words, it will not return the
5572
5573
  * "normal" item pools when playing in Greed Mode.
5573
5574
  */
5574
- export declare function getDefaultItemPoolsForCollectibleType(collectibleType: CollectibleType): ItemPoolType[];
5575
+ export declare function getDefaultItemPoolsForCollectibleType(collectibleType: CollectibleType): readonly ItemPoolType[];
5575
5576
 
5576
5577
  /**
5577
5578
  * Returns the starting stat that Isaac (the default character) starts with. For example, if you
@@ -5618,7 +5619,7 @@ export declare function getDoorEnterPosition(door: GridEntityDoor): Readonly<Vec
5618
5619
  *
5619
5620
  * @allowEmptyVariadic
5620
5621
  */
5621
- export declare function getDoors(...roomTypes: RoomType[]): GridEntityDoor[];
5622
+ export declare function getDoors(...roomTypes: RoomType[]): readonly GridEntityDoor[];
5622
5623
 
5623
5624
  /**
5624
5625
  * Helper function to get the position that a player will enter a room at corresponding to a door
@@ -5648,7 +5649,7 @@ export declare function getDoorSlotsForRoomShape(roomShape: RoomShape): Readonly
5648
5649
  * This function is variadic, meaning that you can specify N arguments to return all of the doors
5649
5650
  * that match any of the N room grid indexes.
5650
5651
  */
5651
- export declare function getDoorsToRoomIndex(...roomGridIndex: int[]): GridEntityDoor[];
5652
+ export declare function getDoorsToRoomIndex(...roomGridIndex: int[]): readonly GridEntityDoor[];
5652
5653
 
5653
5654
  /**
5654
5655
  * Helper function to account for Repentance floors being offset by 1. For example, Downpour 2 is
@@ -5674,13 +5675,13 @@ export declare function getEffectiveStage(): LevelStage;
5674
5675
  * @param subType Optional. If specified, will only get the effects that match the sub-type. Default
5675
5676
  * is -1, which matches every sub-type.
5676
5677
  */
5677
- export declare function getEffects(effectVariant?: EffectVariant | -1, subType?: number): EntityEffect[];
5678
+ export declare function getEffects(effectVariant?: EffectVariant | -1, subType?: number): readonly EntityEffect[];
5678
5679
 
5679
5680
  /**
5680
5681
  * Helper function to get an array of temporary effects for a player. This is helpful so that you
5681
5682
  * don't have to manually create an array from an `EffectsList` object.
5682
5683
  */
5683
- export declare function getEffectsList(player: EntityPlayer): TemporaryEffect[];
5684
+ export declare function getEffectsList(player: EntityPlayer): readonly TemporaryEffect[];
5684
5685
 
5685
5686
  export declare function getElapsedGameFramesSince(gameFrameCount: int): int;
5686
5687
 
@@ -5727,7 +5728,7 @@ export declare function getElapsedTimeSince(time: int | float, useSocketIfAvaila
5727
5728
  * returned. Default is false. Will only be taken into account if the
5728
5729
  * `entityType` is specified.
5729
5730
  */
5730
- export declare function getEntities(entityType?: EntityType | -1, variant?: number, subType?: number, ignoreFriendly?: boolean): Entity[];
5731
+ export declare function getEntities(entityType?: EntityType | -1, variant?: number, subType?: number, ignoreFriendly?: boolean): readonly Entity[];
5731
5732
 
5732
5733
  /**
5733
5734
  * Helper function to get all the fields on an entity. For example, this is useful for comparing it
@@ -5762,7 +5763,7 @@ export declare function getEntityIDFromConstituents(entityType: EntityType, vari
5762
5763
  * this with cached entities to avoid invoking the `Isaac.GetRoomEntities` method
5763
5764
  * multiple times.
5764
5765
  */
5765
- export declare function getEntityPositions(entities?: Entity[]): Map<PtrHash, Vector>;
5766
+ export declare function getEntityPositions(entities?: Entity[] | readonly Entity[]): Map<PtrHash, Vector>;
5766
5767
 
5767
5768
  export declare function getEntityTypeVariantFromBossID(bossID: BossID): readonly [EntityType, int];
5768
5769
 
@@ -5775,7 +5776,7 @@ export declare function getEntityTypeVariantFromBossID(bossID: BossID): readonly
5775
5776
  * this with cached entities to avoid invoking the `Isaac.GetRoomEntities` method
5776
5777
  * multiple times.
5777
5778
  */
5778
- export declare function getEntityVelocities(entities?: Entity[]): Map<PtrHash, Vector>;
5779
+ export declare function getEntityVelocities(entities?: Entity[] | readonly Entity[]): Map<PtrHash, Vector>;
5779
5780
 
5780
5781
  /**
5781
5782
  * TypeScriptToLua will transpile TypeScript number enums to Lua tables that have a double mapping.
@@ -5795,7 +5796,7 @@ export declare function getEntityVelocities(entities?: Entity[]): Map<PtrHash, V
5795
5796
  * For a more in depth explanation, see:
5796
5797
  * https://isaacscript.github.io/main/gotchas#iterating-over-enums
5797
5798
  */
5798
- export declare function getEnumEntries<T extends TranspiledEnum>(transpiledEnum: T): Array<[key: string, value: T[keyof T]]>;
5799
+ export declare function getEnumEntries<T extends TranspiledEnum>(transpiledEnum: T): ReadonlyArray<[key: string, value: T[keyof T]]>;
5799
5800
 
5800
5801
  /**
5801
5802
  * TypeScriptToLua will transpile TypeScript number enums to Lua tables that have a double mapping.
@@ -5814,7 +5815,7 @@ export declare function getEnumEntries<T extends TranspiledEnum>(transpiledEnum:
5814
5815
  * For a more in depth explanation, see:
5815
5816
  * https://isaacscript.github.io/main/gotchas#iterating-over-enums
5816
5817
  */
5817
- export declare function getEnumKeys(transpiledEnum: TranspiledEnum): string[];
5818
+ export declare function getEnumKeys(transpiledEnum: TranspiledEnum): readonly string[];
5818
5819
 
5819
5820
  /** Helper function to get the amount of entries inside of an enum. */
5820
5821
  export declare function getEnumLength(transpiledEnum: TranspiledEnum): int;
@@ -5836,7 +5837,7 @@ export declare function getEnumLength(transpiledEnum: TranspiledEnum): int;
5836
5837
  * For a more in depth explanation, see:
5837
5838
  * https://isaacscript.github.io/main/gotchas#iterating-over-enums
5838
5839
  */
5839
- export declare function getEnumNames(transpiledEnum: TranspiledEnum): string[];
5840
+ export declare function getEnumNames(transpiledEnum: TranspiledEnum): readonly string[];
5840
5841
 
5841
5842
  /**
5842
5843
  * TypeScriptToLua will transpile TypeScript number enums to Lua tables that have a double mapping.
@@ -5855,7 +5856,7 @@ export declare function getEnumNames(transpiledEnum: TranspiledEnum): string[];
5855
5856
  * For a more in depth explanation, see:
5856
5857
  * https://isaacscript.github.io/main/gotchas#iterating-over-enums
5857
5858
  */
5858
- export declare function getEnumValues<T extends TranspiledEnum>(transpiledEnum: T): Array<T[keyof T]>;
5859
+ export declare function getEnumValues<T extends TranspiledEnum>(transpiledEnum: T): ReadonlyArray<T[keyof T]>;
5859
5860
 
5860
5861
  /**
5861
5862
  * Helper function to get the associated pill effect after False PHD is acquired. If a pill effect
@@ -5880,13 +5881,13 @@ export declare function getFalsePHDPillEffect(pillEffect: PillEffect): PillEffec
5880
5881
  * @param subType Optional. If specified, will only get the familiars that match the sub-type.
5881
5882
  * Default is -1, which matches every sub-type.
5882
5883
  */
5883
- export declare function getFamiliars(familiarVariant?: FamiliarVariant | -1, subType?: number): EntityFamiliar[];
5884
+ export declare function getFamiliars(familiarVariant?: FamiliarVariant | -1, subType?: number): readonly EntityFamiliar[];
5884
5885
 
5885
5886
  /**
5886
5887
  * Helper function to compare two different arrays of entities. Returns the entities that are in the
5887
5888
  * second array but not in the first array.
5888
5889
  */
5889
- export declare function getFilteredNewEntities<T extends AnyEntity>(oldEntities: T[], newEntities: T[]): T[];
5890
+ export declare function getFilteredNewEntities<T extends AnyEntity>(oldEntities: T[] | readonly T[], newEntities: T[] | readonly T[]): readonly T[];
5890
5891
 
5891
5892
  /**
5892
5893
  * Helper function to return the player with the highest ID, according to the `Isaac.GetPlayer`
@@ -5982,7 +5983,7 @@ export declare function getGotoCommand(roomType: RoomType, roomVariant: int, use
5982
5983
  *
5983
5984
  * @allowEmptyVariadic
5984
5985
  */
5985
- export declare function getGridEntities(...gridEntityTypes: GridEntityType[]): GridEntity[];
5986
+ export declare function getGridEntities(...gridEntityTypes: GridEntityType[]): readonly GridEntity[];
5986
5987
 
5987
5988
  /**
5988
5989
  * Helper function to get every grid entity in the current room except for certain specific types.
@@ -5990,10 +5991,10 @@ export declare function getGridEntities(...gridEntityTypes: GridEntityType[]): G
5990
5991
  * This function is variadic, meaning that you can specify as many grid entity types as you want to
5991
5992
  * exclude.
5992
5993
  */
5993
- export declare function getGridEntitiesExcept(...gridEntityTypes: GridEntityType[]): GridEntity[];
5994
+ export declare function getGridEntitiesExcept(...gridEntityTypes: GridEntityType[]): readonly GridEntity[];
5994
5995
 
5995
5996
  /** Helper function to get all grid entities in a given radius around a given point. */
5996
- export declare function getGridEntitiesInRadius(targetPosition: Vector, radius: number): GridEntity[];
5997
+ export declare function getGridEntitiesInRadius(targetPosition: Vector, radius: number): readonly GridEntity[];
5997
5998
 
5998
5999
  /**
5999
6000
  * Helper function to get a map of every grid entity in the current room. The indexes of the map are
@@ -6039,7 +6040,7 @@ export declare function getGridIndexDelta(roomShape: RoomShape, doorSlot: DoorSl
6039
6040
  * This function will throw a run-time error if the two provided grid indexes are not on the same
6040
6041
  * horizontal or vertical line.
6041
6042
  */
6042
- export declare function getGridIndexesBetween(gridIndex1: int, gridIndex2: int, roomShape: RoomShape): int[];
6043
+ export declare function getGridIndexesBetween(gridIndex1: int, gridIndex2: int, roomShape: RoomShape): readonly int[];
6043
6044
 
6044
6045
  /**
6045
6046
  * Helper function to get the name of a heart, as listed in the "entities2.xml" file. Returns
@@ -6063,7 +6064,7 @@ export declare function getHeartRowLength(player: EntityPlayer): int;
6063
6064
  * @param heartSubType Optional. If specified, will only get the hearts that match the sub-type.
6064
6065
  * Default is -1, which matches every sub-type.
6065
6066
  */
6066
- export declare function getHearts(heartSubType?: HeartSubType | -1): EntityPickupHeart[];
6067
+ export declare function getHearts(heartSubType?: HeartSubType | -1): readonly EntityPickupHeart[];
6067
6068
 
6068
6069
  /**
6069
6070
  * Helper function to get the width of the first player's hearts on the UI. This is useful for
@@ -6166,7 +6167,7 @@ export declare function getJSONRoomOfVariant(jsonRooms: JSONRoom[] | readonly JS
6166
6167
  * @param jsonRooms The array of rooms to search through.
6167
6168
  * @param subType The sub-type to match.
6168
6169
  */
6169
- export declare function getJSONRoomsOfSubType(jsonRooms: JSONRoom[] | readonly JSONRoom[], subType: int): JSONRoom[];
6170
+ export declare function getJSONRoomsOfSubType(jsonRooms: JSONRoom[] | readonly JSONRoom[], subType: int): readonly JSONRoom[];
6170
6171
 
6171
6172
  /** Helper function to get the value of a specific but in a binary representation of a number. */
6172
6173
  export declare function getKBitOfN(k: int, n: int): int;
@@ -6187,7 +6188,7 @@ export declare function getKeyName(keySubType: KeySubType): string;
6187
6188
  * @param keySubType Optional. If specified, will only get the keys that match the sub-type. Default
6188
6189
  * is -1, which matches every sub-type.
6189
6190
  */
6190
- export declare function getKeys(keySubType?: KeySubType | -1): EntityPickupKey[];
6191
+ export declare function getKeys(keySubType?: KeySubType | -1): readonly EntityPickupKey[];
6191
6192
 
6192
6193
  /**
6193
6194
  * Helper function to get all of the knives in the room.
@@ -6206,7 +6207,7 @@ export declare function getKeys(keySubType?: KeySubType | -1): EntityPickupKey[]
6206
6207
  * @param subType Optional. If specified, will only get the knives that match the sub-type. Default
6207
6208
  * is -1, which matches every sub-type.
6208
6209
  */
6209
- export declare function getKnives(knifeVariant?: KnifeVariant | -1, subType?: number): EntityKnife[];
6210
+ export declare function getKnives(knifeVariant?: KnifeVariant | -1, subType?: number): readonly EntityKnife[];
6210
6211
 
6211
6212
  /**
6212
6213
  * Helper function to convert the language abbreviation from `Options.Language` to the "full"
@@ -6234,7 +6235,7 @@ export declare function getLanguageName(): string;
6234
6235
  * @param subType Optional. If specified, will only get the lasers that match the sub-type. Default
6235
6236
  * is -1, which matches every sub-type.
6236
6237
  */
6237
- export declare function getLasers(laserVariant?: LaserVariant | -1, subType?: number): EntityLaser[];
6238
+ export declare function getLasers(laserVariant?: LaserVariant | -1, subType?: number): readonly EntityLaser[];
6238
6239
 
6239
6240
  /**
6240
6241
  * Helper function that returns the number of the final frame in a particular animation for a
@@ -6256,7 +6257,7 @@ export declare function getLastFrameOfAnimation(sprite: Sprite, animation?: stri
6256
6257
  * Note that this will only look at Boss Rooms inside of the grid, so e.g. Reverse Emperor card
6257
6258
  * rooms will not count.
6258
6259
  */
6259
- export declare function getLevelBossIDs(): BossID[];
6260
+ export declare function getLevelBossIDs(): readonly BossID[];
6260
6261
 
6261
6262
  /**
6262
6263
  * Helper function to get the English name of the level. For example, "Caves 1".
@@ -6318,7 +6319,7 @@ export declare function getMapPartialMatch<T>(searchText: string, map: ReadonlyM
6318
6319
  *
6319
6320
  * If you want to match every variant, use the `getGridEntities` function instead.
6320
6321
  */
6321
- export declare function getMatchingGridEntities(gridEntityType: GridEntityType, variant: int): GridEntity[];
6322
+ export declare function getMatchingGridEntities(gridEntityType: GridEntityType, variant: int): readonly GridEntity[];
6322
6323
 
6323
6324
  /**
6324
6325
  * Helper function to get the door that leads to the Mega Satan Boss Room. (In vanilla, the door
@@ -6333,7 +6334,7 @@ export declare function getMegaSatanDoor(): GridEntityDoor | undefined;
6333
6334
  * pressing down. This returns an array because a player can be holding down more than one movement
6334
6335
  * key at a time.
6335
6336
  */
6336
- export declare function getMoveButtonActions(controllerIndex: ControllerIndex): ButtonAction[];
6337
+ export declare function getMoveButtonActions(controllerIndex: ControllerIndex): readonly ButtonAction[];
6337
6338
 
6338
6339
  /**
6339
6340
  * Helper function to get the corresponding music value for a stage and stage type combination.
@@ -6489,7 +6490,7 @@ export declare function getNormalTrinketType(trinketType: TrinketType): TrinketT
6489
6490
  * returned. Default is false. Will only be taken into account if the
6490
6491
  * `entityType` is specified.
6491
6492
  */
6492
- export declare function getNPCs(entityType?: EntityType | -1, variant?: number, subType?: number, ignoreFriendly?: boolean): EntityNPC[];
6493
+ export declare function getNPCs(entityType?: EntityType | -1, variant?: number, subType?: number, ignoreFriendly?: boolean): readonly EntityNPC[];
6493
6494
 
6494
6495
  /**
6495
6496
  * Helper function to safely get number values from specific keys on a Lua table. If the values are
@@ -6498,7 +6499,7 @@ export declare function getNPCs(entityType?: EntityType | -1, variant?: number,
6498
6499
  *
6499
6500
  * This function is variadic, meaning that you can specify N arguments to get N values.
6500
6501
  */
6501
- export declare function getNumbersFromTable(luaMap: LuaMap<string, unknown>, objectName: string, ...keys: string[]): number[];
6502
+ export declare function getNumbersFromTable(luaMap: LuaMap<string, unknown>, objectName: string, ...keys: string[]): readonly number[];
6502
6503
 
6503
6504
  /** Helper function to get the number of bits in a binary representation of a number. */
6504
6505
  export declare function getNumBitsOfN(n: int): int;
@@ -6556,7 +6557,7 @@ export declare function getOppositeDoorSlot(doorSlot: DoorSlot): DoorSlot | unde
6556
6557
  * Helper function to get all of the other players in the room besides the one provided. (This
6557
6558
  * includes "child" players.)
6558
6559
  */
6559
- export declare function getOtherPlayers(player: EntityPlayer): EntityPlayer[];
6560
+ export declare function getOtherPlayers(player: EntityPlayer): readonly EntityPlayer[];
6560
6561
 
6561
6562
  /**
6562
6563
  * Helper function to get the name and the line number of the current calling function.
@@ -6614,7 +6615,7 @@ export declare function getPHDPillEffect(pillEffect: PillEffect): PillEffect;
6614
6615
  * @param subType Optional. If specified, will only get the pickups that match the sub-type. Default
6615
6616
  * is -1, which matches every sub-type.
6616
6617
  */
6617
- export declare function getPickups(pickupVariant?: PickupVariant | -1, subType?: number): EntityPickup[];
6618
+ export declare function getPickups(pickupVariant?: PickupVariant | -1, subType?: number): readonly EntityPickup[];
6618
6619
 
6619
6620
  /**
6620
6621
  * Helper function to get the corresponding pill color from an effect by repeatedly using the
@@ -6670,7 +6671,7 @@ export declare function getPillEffectType(pillEffect: PillEffect): ItemConfigPil
6670
6671
  * @param pillColor Optional. If specified, will only get the pills that match the sub-type. Default
6671
6672
  * is -1, which matches every sub-type.
6672
6673
  */
6673
- export declare function getPills(pillColor?: PillColor | -1): EntityPickupPill[];
6674
+ export declare function getPills(pillColor?: PillColor | -1): readonly EntityPickupPill[];
6674
6675
 
6675
6676
  /**
6676
6677
  * Helper function to get all of the `GridEntityPit` in the room.
@@ -6678,7 +6679,7 @@ export declare function getPills(pillColor?: PillColor | -1): EntityPickupPill[]
6678
6679
  * @param pitVariant Optional. If specified, will only get the pits that match the variant. Default
6679
6680
  * is -1, which matches every variant.
6680
6681
  */
6681
- export declare function getPits(pitVariant?: PitVariant | -1): GridEntityPit[];
6682
+ export declare function getPits(pitVariant?: PitVariant | -1): readonly GridEntityPit[];
6682
6683
 
6683
6684
  /**
6684
6685
  * Returns the number of slots that the player has remaining for new heart containers, accounting
@@ -6714,7 +6715,7 @@ export declare function getPlayerCloserThan(position: Vector, distance: float):
6714
6715
  export declare function getPlayerCollectibleCount(player: EntityPlayer, ...collectibleTypes: CollectibleType[]): int;
6715
6716
 
6716
6717
  /** Helper function to get only the familiars that belong to a specific player. */
6717
- export declare function getPlayerFamiliars(player: EntityPlayer): EntityFamiliar[];
6718
+ export declare function getPlayerFamiliars(player: EntityPlayer): readonly EntityFamiliar[];
6718
6719
 
6719
6720
  /**
6720
6721
  * Helper function to get the player from a tear, laser, bomb, etc. Returns undefined if the entity
@@ -6840,7 +6841,7 @@ export declare function getPlayerNumHitsRemaining(player: EntityPlayer): int;
6840
6841
  * @param performCharacterExclusions Whether to exclude characters that are not directly controlled
6841
6842
  * by the player (i.e. Esau & Tainted Soul). Default is false.
6842
6843
  */
6843
- export declare function getPlayers(performCharacterExclusions?: boolean): EntityPlayer[];
6844
+ export declare function getPlayers(performCharacterExclusions?: boolean): readonly EntityPlayer[];
6844
6845
 
6845
6846
  /**
6846
6847
  * Helper function to get all of the players that are a certain character.
@@ -6848,7 +6849,7 @@ export declare function getPlayers(performCharacterExclusions?: boolean): Entity
6848
6849
  * This function is variadic, meaning that you can supply as many characters as you want to check
6849
6850
  * for. Returns true if any of the characters supplied are present.
6850
6851
  */
6851
- export declare function getPlayersOfType(...characters: PlayerType[]): EntityPlayer[];
6852
+ export declare function getPlayersOfType(...characters: PlayerType[]): readonly EntityPlayer[];
6852
6853
 
6853
6854
  /**
6854
6855
  * Helper function to get all of the players that are using keyboard (i.e.
@@ -6858,7 +6859,7 @@ export declare function getPlayersOfType(...characters: PlayerType[]): EntityPla
6858
6859
  * Note that this function includes players with a non-undefined parent like e.g. the Strawman
6859
6860
  * Keeper.
6860
6861
  */
6861
- export declare function getPlayersOnKeyboard(): EntityPlayer[];
6862
+ export declare function getPlayersOnKeyboard(): readonly EntityPlayer[];
6862
6863
 
6863
6864
  /**
6864
6865
  * Returns the number of soul hearts that the player has, excluding any black hearts. For example,
@@ -6882,7 +6883,7 @@ export declare function getPlayerStats(player: EntityPlayer): PlayerStats;
6882
6883
  * This function is variadic, meaning that you can supply as many collectible types as you want to
6883
6884
  * check for. It only returns the players that have all of the collectibles.
6884
6885
  */
6885
- export declare function getPlayersWithCollectible(...collectibleTypes: CollectibleType[]): EntityPlayer[];
6886
+ export declare function getPlayersWithCollectible(...collectibleTypes: CollectibleType[]): readonly EntityPlayer[];
6886
6887
 
6887
6888
  /**
6888
6889
  * Helper function to get all of the players that match the provided controller index. This function
@@ -6892,7 +6893,7 @@ export declare function getPlayersWithCollectible(...collectibleTypes: Collectib
6892
6893
  * Note that this function includes players with a non-undefined parent like e.g. the Strawman
6893
6894
  * Keeper.
6894
6895
  */
6895
- export declare function getPlayersWithControllerIndex(controllerIndex: ControllerIndex): EntityPlayer[];
6896
+ export declare function getPlayersWithControllerIndex(controllerIndex: ControllerIndex): readonly EntityPlayer[];
6896
6897
 
6897
6898
  /**
6898
6899
  * Helper function to get only the players that have a certain trinket.
@@ -6900,7 +6901,7 @@ export declare function getPlayersWithControllerIndex(controllerIndex: Controlle
6900
6901
  * This function is variadic, meaning that you can supply as many trinket types as you want to check
6901
6902
  * for. It only returns the players that have all of the trinkets.
6902
6903
  */
6903
- export declare function getPlayersWithTrinket(...trinketTypes: TrinketType[]): EntityPlayer[];
6904
+ export declare function getPlayersWithTrinket(...trinketTypes: TrinketType[]): readonly EntityPlayer[];
6904
6905
 
6905
6906
  /** Returns a set of the player's current transformations. */
6906
6907
  export declare function getPlayerTransformations(player: EntityPlayer): Set<PlayerForm>;
@@ -6921,7 +6922,7 @@ export declare function getPlayerTrinkets(player: EntityPlayer): readonly Trinke
6921
6922
  * cannot determine the identity of a particular slot, it will mark the type of the slot as
6922
6923
  * `PocketItemType.UNDETERMINABLE`.
6923
6924
  */
6924
- export declare function getPocketItems(player: EntityPlayer): PocketItemDescription[];
6925
+ export declare function getPocketItems(player: EntityPlayer): readonly PocketItemDescription[];
6925
6926
 
6926
6927
  /**
6927
6928
  * Helper function to get all of the `GridEntityPoop` in the room.
@@ -6929,7 +6930,7 @@ export declare function getPocketItems(player: EntityPlayer): PocketItemDescript
6929
6930
  * @param poopVariant Optional. If specified, will only get the poops that match the variant.
6930
6931
  * Default is -1, which matches every variant.
6931
6932
  */
6932
- export declare function getPoops(poopVariant?: PoopGridEntityVariant | -1): GridEntityPoop[];
6933
+ export declare function getPoops(poopVariant?: PoopGridEntityVariant | -1): readonly GridEntityPoop[];
6933
6934
 
6934
6935
  /**
6935
6936
  * Helper function to get all of the `GridEntityPressurePlate` in the room.
@@ -6937,7 +6938,7 @@ export declare function getPoops(poopVariant?: PoopGridEntityVariant | -1): Grid
6937
6938
  * @param pressurePlateVariant Optional. If specified, will only get the pressure plates that match
6938
6939
  * the variant. Default is -1, which matches every variant.
6939
6940
  */
6940
- export declare function getPressurePlates(pressurePlateVariant?: PressurePlateVariant | -1): GridEntityPressurePlate[];
6941
+ export declare function getPressurePlates(pressurePlateVariant?: PressurePlateVariant | -1): readonly GridEntityPressurePlate[];
6941
6942
 
6942
6943
  /**
6943
6944
  * Helper function to get all of the projectiles in the room.
@@ -6956,7 +6957,7 @@ export declare function getPressurePlates(pressurePlateVariant?: PressurePlateVa
6956
6957
  * @param subType Optional. If specified, will only get the projectiles that match the sub-type.
6957
6958
  * Default is -1, which matches every sub-type.
6958
6959
  */
6959
- export declare function getProjectiles(projectileVariant?: ProjectileVariant | -1, subType?: number): EntityProjectile[];
6960
+ export declare function getProjectiles(projectileVariant?: ProjectileVariant | -1, subType?: number): readonly EntityProjectile[];
6960
6961
 
6961
6962
  /**
6962
6963
  * Returns a random float between 0 and 1. It is inclusive on the low end, but exclusive on the high
@@ -7232,10 +7233,10 @@ export declare function getRandomVector(seedOrRNG: Seed | RNG | undefined): Read
7232
7233
  * method. This is the best way to see if off-grid rooms have been initialized, since it is possible
7233
7234
  * for mods to insert room data at non-official negative room grid indexes.
7234
7235
  */
7235
- export declare function getReadOnlyRooms(): Array<Readonly<RoomDescriptor>>;
7236
+ export declare function getReadOnlyRooms(): ReadonlyArray<Readonly<RoomDescriptor>>;
7236
7237
 
7237
7238
  /** Helper function to get all of the red heart pickup entities in the room. */
7238
- export declare function getRedHearts(): EntityPickupHeart[];
7239
+ export declare function getRedHearts(): readonly EntityPickupHeart[];
7239
7240
 
7240
7241
  /**
7241
7242
  * Helper function to get the door that leads to the "secret exit" off-grid room that takes you to
@@ -7302,7 +7303,7 @@ export declare function getRockPNGPath(): string;
7302
7303
  * `RockVariant` enum, since that only applies to `GridEntityType.ROCK`, and other
7303
7304
  * types of grid entities can be the `GridEntityRock` class.
7304
7305
  */
7305
- export declare function getRocks(variant?: number): GridEntityRock[];
7306
+ export declare function getRocks(variant?: number): readonly GridEntityRock[];
7306
7307
 
7307
7308
  /**
7308
7309
  * Helper function to get the grid indexes of all the rooms connected to the given room index,
@@ -7389,7 +7390,7 @@ export declare function getRoomDescriptorReadOnly(): Readonly<RoomDescriptor>;
7389
7390
  * This function is variadic, meaning that you can specify N arguments to get the combined room
7390
7391
  * descriptors for N room types.
7391
7392
  */
7392
- export declare function getRoomDescriptorsForType(...roomTypes: RoomType[]): RoomDescriptor[];
7393
+ export declare function getRoomDescriptorsForType(...roomTypes: RoomType[]): readonly RoomDescriptor[];
7393
7394
 
7394
7395
  /**
7395
7396
  * Helper function to get a particular room's minimap display flags (e.g. whether it is visible and
@@ -7488,7 +7489,7 @@ export declare function getRoomName(roomGridIndex?: int): string | undefined;
7488
7489
  * extra-dimensional rooms are automatically generated. Default is
7489
7490
  * false.
7490
7491
  */
7491
- export declare function getRooms(includeExtraDimensionalRooms?: boolean): RoomDescriptor[];
7492
+ export declare function getRooms(includeExtraDimensionalRooms?: boolean): readonly RoomDescriptor[];
7492
7493
 
7493
7494
  /**
7494
7495
  * Helper function to get the shape of the current room as it appears in the STB/XML data.
@@ -7627,7 +7628,7 @@ export declare function getRoomShapeWidth(roomShape: RoomShape): int;
7627
7628
  * extra-dimensional rooms are automatically be generated. Default
7628
7629
  * is false.
7629
7630
  */
7630
- export declare function getRoomsInsideGrid(includeExtraDimensionalRooms?: boolean): RoomDescriptor[];
7631
+ export declare function getRoomsInsideGrid(includeExtraDimensionalRooms?: boolean): readonly RoomDescriptor[];
7631
7632
 
7632
7633
  /**
7633
7634
  * Helper function to get the room descriptor for every room on the level in a specific dimension.
@@ -7635,7 +7636,7 @@ export declare function getRoomsInsideGrid(includeExtraDimensionalRooms?: boolea
7635
7636
  *
7636
7637
  * Room descriptors without any data are assumed to be non-existent and are not included.
7637
7638
  */
7638
- export declare function getRoomsOfDimension(dimension: Dimension): RoomDescriptor[];
7639
+ export declare function getRoomsOfDimension(dimension: Dimension): readonly RoomDescriptor[];
7639
7640
 
7640
7641
  /**
7641
7642
  * Helper function to get the room descriptor for every room on the level that is outside of the
@@ -7643,7 +7644,7 @@ export declare function getRoomsOfDimension(dimension: Dimension): RoomDescripto
7643
7644
  *
7644
7645
  * Room descriptors without any data are assumed to be non-existent and are not included.
7645
7646
  */
7646
- export declare function getRoomsOutsideGrid(): RoomDescriptor[];
7647
+ export declare function getRoomsOutsideGrid(): readonly RoomDescriptor[];
7647
7648
 
7648
7649
  /**
7649
7650
  * Helper function to get the stage ID for the current room as it appears in the STB/XML data.
@@ -7776,7 +7777,7 @@ export declare function getSackName(sackSubType: SackSubType): string;
7776
7777
  * @param sackSubType Optional. If specified, will only get the sacks that match the sub-type.
7777
7778
  * Default is -1, which matches every sub-type.
7778
7779
  */
7779
- export declare function getSacks(sackSubType?: SackSubType | -1): EntityPickupSack[];
7780
+ export declare function getSacks(sackSubType?: SackSubType | -1): readonly EntityPickupSack[];
7780
7781
 
7781
7782
  export declare function getScreenBottomCenterPos(): Readonly<Vector>;
7782
7783
 
@@ -7799,7 +7800,7 @@ export declare function getScreenTopRightPos(): Readonly<Vector>;
7799
7800
  /**
7800
7801
  * Helper function to get the seed effects (i.e. Easter Eggs) that are enabled for the current run.
7801
7802
  */
7802
- export declare function getSeedEffects(): SeedEffect[];
7803
+ export declare function getSeedEffects(): readonly SeedEffect[];
7803
7804
 
7804
7805
  /**
7805
7806
  * Helper function to get all possible combinations of the given set. This includes the combination
@@ -7827,7 +7828,7 @@ export declare function getSetCombinations<T>(set: Set<T> | ReadonlySet<T>, incl
7827
7828
  * pressing down. This returns an array because a player can be holding down more than one shooting
7828
7829
  * key at a time.
7829
7830
  */
7830
- export declare function getShootButtonActions(controllerIndex: ControllerIndex): ButtonAction[];
7831
+ export declare function getShootButtonActions(controllerIndex: ControllerIndex): readonly ButtonAction[];
7831
7832
 
7832
7833
  /**
7833
7834
  * Helper function to get the corresponding "Siren Helper" entity for a stolen familiar.
@@ -7870,7 +7871,7 @@ export declare function getSlotName(slotVariant: SlotVariant): string;
7870
7871
  * @param subType Optional. If specified, will only get the slots that match the sub-type. Default
7871
7872
  * is -1, which matches every sub-type.
7872
7873
  */
7873
- export declare function getSlots(slotVariant?: SlotVariant | -1, subType?: number): EntitySlot[];
7874
+ export declare function getSlots(slotVariant?: SlotVariant | -1, subType?: number): readonly EntitySlot[];
7874
7875
 
7875
7876
  /**
7876
7877
  * Helper function to get a sorted array based on the contents of a set.
@@ -7881,7 +7882,7 @@ export declare function getSlots(slotVariant?: SlotVariant | -1, subType?: numbe
7881
7882
  export declare function getSortedSetValues<T>(set: Set<T> | ReadonlySet<T>): T[];
7882
7883
 
7883
7884
  /** Helper function to get all of the `GridEntitySpikes` in the room. */
7884
- export declare function getSpikes(variant?: number): GridEntitySpikes[];
7885
+ export declare function getSpikes(variant?: number): readonly GridEntitySpikes[];
7885
7886
 
7886
7887
  /** Alias for the `Level.GetStage` method. */
7887
7888
  export declare function getStage(): LevelStage;
@@ -7918,7 +7919,7 @@ export declare function getStartSeedString(): string;
7918
7919
  *
7919
7920
  * This function is variadic, meaning that you can specify N arguments to get N values.
7920
7921
  */
7921
- export declare function getStringsFromTable(luaMap: LuaMap<string, unknown>, objectName: string, ...keys: string[]): string[];
7922
+ export declare function getStringsFromTable(luaMap: LuaMap<string, unknown>, objectName: string, ...keys: string[]): readonly string[];
7922
7923
 
7923
7924
  /**
7924
7925
  * Helper function to get a parent `EntityPlayer` object for a given `EntitySubPlayer` object. This
@@ -7933,7 +7934,7 @@ export declare function getSubPlayerParent(subPlayer: EntitySubPlayer): EntityPl
7933
7934
  * For example, if a rock was surrounded by rocks on all sides, this would return an array of 8
7934
7935
  * rocks (e.g. top-left + top + top-right + left + right + bottom-left + bottom + right).
7935
7936
  */
7936
- export declare function getSurroundingGridEntities(gridEntity: GridEntity): GridEntity[];
7937
+ export declare function getSurroundingGridEntities(gridEntity: GridEntity): readonly GridEntity[];
7937
7938
 
7938
7939
  /**
7939
7940
  * Helper function to get the grid indexes on the surrounding tiles from the provided grid index.
@@ -7982,7 +7983,7 @@ export declare function getTaintedMagdaleneNonTemporaryMaxHearts(player: EntityP
7982
7983
  * @param subType Optional. If specified, will only get the tears that match the sub-type. Default
7983
7984
  * is -1, which matches every sub-type.
7984
7985
  */
7985
- export declare function getTears(tearVariant?: TearVariant | -1, subType?: number): EntityTear[];
7986
+ export declare function getTears(tearVariant?: TearVariant | -1, subType?: number): readonly EntityTear[];
7986
7987
 
7987
7988
  /**
7988
7989
  * - The `EntityPlayer` object stores a player's tear rate in the `MaxFireDelay` field. This is
@@ -7999,7 +8000,7 @@ export declare function getTearsStat(fireDelay: float): float;
7999
8000
  * @param variant Optional. If specified, will only get the teleporters that match the variant.
8000
8001
  * Default is -1, which matches every variant.
8001
8002
  */
8002
- export declare function getTeleporters(variant?: number): GridEntity[];
8003
+ export declare function getTeleporters(variant?: number): readonly GridEntity[];
8003
8004
 
8004
8005
  /**
8005
8006
  * Helper function to get the current time for benchmarking / profiling purposes.
@@ -8022,7 +8023,7 @@ export declare function getTeleporters(variant?: number): GridEntity[];
8022
8023
  export declare function getTime(useSocketIfAvailable?: boolean): int | float;
8023
8024
 
8024
8025
  /** Helper function to get all of the `GridEntityTNT` in the room. */
8025
- export declare function getTNT(variant?: number): GridEntityTNT[];
8026
+ export declare function getTNT(variant?: number): readonly GridEntityTNT[];
8026
8027
 
8027
8028
  /**
8028
8029
  * Helper function to get the top left wall in the current room.
@@ -8090,7 +8091,7 @@ export declare function getTransformationsForCollectibleType(collectibleType: Co
8090
8091
  * @param trapdoorVariant Optional. If specified, will only get the trapdoors that match the
8091
8092
  * variant. Default is -1, which matches every variant.
8092
8093
  */
8093
- export declare function getTrapdoors(trapdoorVariant?: TrapdoorVariant | -1): GridEntity[];
8094
+ export declare function getTrapdoors(trapdoorVariant?: TrapdoorVariant | -1): readonly GridEntity[];
8094
8095
 
8095
8096
  /**
8096
8097
  * Helper function to log what is happening in functions that recursively move through nested data
@@ -8132,7 +8133,7 @@ export declare function getTrinketName(trinketType: TrinketType): string;
8132
8133
  * @param trinketType Optional. If specified, will only get the trinkets that match the sub-type.
8133
8134
  * Default is -1, which matches every sub-type.
8134
8135
  */
8135
- export declare function getTrinkets(trinketType?: TrinketType | -1): EntityPickupTrinket[];
8136
+ export declare function getTrinkets(trinketType?: TrinketType | -1): readonly EntityPickupTrinket[];
8136
8137
 
8137
8138
  /**
8138
8139
  * Helper function to get the constructor from an instantiated TypeScriptToLua class, which is
@@ -8158,14 +8159,14 @@ export declare function getTSTLClassName(object: unknown): string | undefined;
8158
8159
  * Helper function to find unused door slots in the current room that can be used to make custom
8159
8160
  * doors.
8160
8161
  */
8161
- export declare function getUnusedDoorSlots(): DoorSlot[];
8162
+ export declare function getUnusedDoorSlots(): readonly DoorSlot[];
8162
8163
 
8163
8164
  /**
8164
8165
  * Helper function to find the active slots that the player has the corresponding collectible type
8165
8166
  * in and have enough charge to be used. Returns an empty array if the player does not have the
8166
8167
  * collectible in any active slot or does not have enough charges.
8167
8168
  */
8168
- export declare function getUsableActiveItemSlots(player: EntityPlayer, collectibleType: CollectibleType): ActiveSlot[];
8169
+ export declare function getUsableActiveItemSlots(player: EntityPlayer, collectibleType: CollectibleType): readonly ActiveSlot[];
8169
8170
 
8170
8171
  /**
8171
8172
  * Returns an array containing every vanilla collectible type with the given quality.
@@ -8819,7 +8820,7 @@ export declare type IRange<Low extends number, High extends number> = Exclude<Na
8819
8820
  * first argument will be the end.
8820
8821
  * @param increment Optional. The increment to use. Default is 1.
8821
8822
  */
8822
- export declare function iRange(start: int, end?: int, increment?: number): int[];
8823
+ export declare function iRange(start: int, end?: int, increment?: number): readonly int[];
8823
8824
 
8824
8825
  /**
8825
8826
  * Helper function to determine if the provided room is equal to `RoomShape.1x2` or `RoomShape.2x1`.
@@ -10900,7 +10901,7 @@ export declare const MAIN_CHARACTERS: readonly [PlayerType.ISAAC, PlayerType.MAG
10900
10901
  *
10901
10902
  * Internally, this just calls `array.map`.
10902
10903
  */
10903
- export declare function map<T, U>(array: T[], func: (value: T, index: number, array: T[]) => U): U[];
10904
+ export declare function map<T, U>(array: T[], func: (value: T, index: number, array: T[]) => U): readonly U[];
10904
10905
 
10905
10906
  /**
10906
10907
  * Helper function to make using maps with an type of `PtrHash` easier. Use this instead of the
@@ -15655,7 +15656,7 @@ export declare interface PocketItemDescription {
15655
15656
  }
15656
15657
 
15657
15658
  /** Helper function to see if two sets of pocket item descriptions are identical. */
15658
- export declare function pocketItemsEquals(pocketItems1: PocketItemDescription[], pocketItems2: PocketItemDescription[]): boolean;
15659
+ export declare function pocketItemsEquals(pocketItems1: PocketItemDescription[] | readonly PocketItemDescription[], pocketItems2: PocketItemDescription[] | readonly PocketItemDescription[]): boolean;
15659
15660
 
15660
15661
  /** This is used in the various pocket item helper functions. */
15661
15662
  export declare enum PocketItemType {
@@ -16043,7 +16044,7 @@ export declare function removeAllActiveItems(player: EntityPlayer): void;
16043
16044
  * @param cap Optional. If specified, will only remove the given amount of cards.
16044
16045
  * @returns The batteries that were removed.
16045
16046
  */
16046
- export declare function removeAllBatteries(batterySubType?: BatterySubType | -1, cap?: int): EntityPickupBattery[];
16047
+ export declare function removeAllBatteries(batterySubType?: BatterySubType | -1, cap?: int): readonly EntityPickupBattery[];
16047
16048
 
16048
16049
  /**
16049
16050
  * Helper function to remove all of the bomb pickups in the room. (Specifically, this refers to bomb
@@ -16054,7 +16055,7 @@ export declare function removeAllBatteries(batterySubType?: BatterySubType | -1,
16054
16055
  * @param cap Optional. If specified, will only remove the given amount of bombs.
16055
16056
  * @returns The bombs that were removed.
16056
16057
  */
16057
- export declare function removeAllBombPickups(bombSubType?: BombSubType | -1, cap?: int): EntityPickupBomb[];
16058
+ export declare function removeAllBombPickups(bombSubType?: BombSubType | -1, cap?: int): readonly EntityPickupBomb[];
16058
16059
 
16059
16060
  /**
16060
16061
  * Helper function to remove all of the bombs in the room. (Specifically, this refers to the
@@ -16067,7 +16068,7 @@ export declare function removeAllBombPickups(bombSubType?: BombSubType | -1, cap
16067
16068
  * @param cap Optional. If specified, will only remove the given amount of bombs.
16068
16069
  * @returns An array of the bombs that were removed.
16069
16070
  */
16070
- export declare function removeAllBombs(bombVariant?: BombVariant | -1, subType?: number, cap?: int): EntityBomb[];
16071
+ export declare function removeAllBombs(bombVariant?: BombVariant | -1, subType?: number, cap?: int): readonly EntityBomb[];
16071
16072
 
16072
16073
  /**
16073
16074
  * Helper function to remove all of the cards in the room.
@@ -16077,7 +16078,7 @@ export declare function removeAllBombs(bombVariant?: BombVariant | -1, subType?:
16077
16078
  * @param cap Optional. If specified, will only remove the given amount of cards.
16078
16079
  * @returns The cards that were removed.
16079
16080
  */
16080
- export declare function removeAllCards(cardType?: CardType | -1, cap?: int): EntityPickupCard[];
16081
+ export declare function removeAllCards(cardType?: CardType | -1, cap?: int): readonly EntityPickupCard[];
16081
16082
 
16082
16083
  export declare function removeAllCharacters(string: string, character: string): string;
16083
16084
 
@@ -16090,7 +16091,7 @@ export declare function removeAllCharacters(string: string, character: string):
16090
16091
  * @param cap Optional. If specified, will only remove the given amount of chests.
16091
16092
  * @returns The chests that were removed.
16092
16093
  */
16093
- export declare function removeAllChests(subType?: number, cap?: int): EntityPickup[];
16094
+ export declare function removeAllChests(subType?: number, cap?: int): readonly EntityPickup[];
16094
16095
 
16095
16096
  /**
16096
16097
  * Helper function to remove all of the coins in the room.
@@ -16100,7 +16101,7 @@ export declare function removeAllChests(subType?: number, cap?: int): EntityPick
16100
16101
  * @param cap Optional. If specified, will only remove the given amount of coins.
16101
16102
  * @returns The coins that were removed.
16102
16103
  */
16103
- export declare function removeAllCoins(coinSubType?: CoinSubType, cap?: int): EntityPickupCoin[];
16104
+ export declare function removeAllCoins(coinSubType?: CoinSubType, cap?: int): readonly EntityPickupCoin[];
16104
16105
 
16105
16106
  /**
16106
16107
  * Helper function to remove all of the collectibles in the room.
@@ -16110,7 +16111,7 @@ export declare function removeAllCoins(coinSubType?: CoinSubType, cap?: int): En
16110
16111
  * @param cap Optional. If specified, will only remove the given amount of collectibles.
16111
16112
  * @returns The collectibles that were removed.
16112
16113
  */
16113
- export declare function removeAllCollectibles(collectibleType?: CollectibleType, cap?: int): EntityPickupCollectible[];
16114
+ export declare function removeAllCollectibles(collectibleType?: CollectibleType, cap?: int): readonly EntityPickupCollectible[];
16114
16115
 
16115
16116
  /**
16116
16117
  * Helper function to remove all of the `GridEntityType.CRAWL_SPACE` (18) in the room.
@@ -16123,7 +16124,7 @@ export declare function removeAllCollectibles(collectibleType?: CollectibleType,
16123
16124
  * @param cap Optional. If specified, will only remove the given amount of crawl spaces.
16124
16125
  * @returns The crawl spaces that were removed.
16125
16126
  */
16126
- export declare function removeAllCrawlSpaces(crawlSpaceVariant?: CrawlSpaceVariant | -1, updateRoom?: boolean, cap?: int): GridEntity[];
16127
+ export declare function removeAllCrawlSpaces(crawlSpaceVariant?: CrawlSpaceVariant | -1, updateRoom?: boolean, cap?: int): readonly GridEntity[];
16127
16128
 
16128
16129
  /**
16129
16130
  * Helper function to remove all of the doors in the room. By default, it will remove every door.
@@ -16145,7 +16146,7 @@ export declare function removeAllDoors(...roomTypes: RoomType[]): int;
16145
16146
  * @param cap Optional. If specified, will only remove the given amount of effects.
16146
16147
  * @returns An array of the effects that were removed.
16147
16148
  */
16148
- export declare function removeAllEffects(effectVariant?: EffectVariant | -1, subType?: number, cap?: int): EntityEffect[];
16149
+ export declare function removeAllEffects(effectVariant?: EffectVariant | -1, subType?: number, cap?: int): readonly EntityEffect[];
16149
16150
 
16150
16151
  /**
16151
16152
  * Helper function to remove all of the familiars in the room.
@@ -16157,7 +16158,7 @@ export declare function removeAllEffects(effectVariant?: EffectVariant | -1, sub
16157
16158
  * @param cap Optional. If specified, will only remove the given amount of familiars.
16158
16159
  * @returns An array of the familiars that were removed.
16159
16160
  */
16160
- export declare function removeAllFamiliars(familiarVariant?: FamiliarVariant | -1, subType?: number, cap?: int): EntityFamiliar[];
16161
+ export declare function removeAllFamiliars(familiarVariant?: FamiliarVariant | -1, subType?: number, cap?: int): readonly EntityFamiliar[];
16161
16162
 
16162
16163
  /**
16163
16164
  * Helper function to all grid entities in the room except for ones matching the grid entity types
@@ -16177,7 +16178,7 @@ export declare function removeAllFamiliars(familiarVariant?: FamiliarVariant | -
16177
16178
  *
16178
16179
  * @returns The grid entities that were removed.
16179
16180
  */
16180
- export declare function removeAllGridEntitiesExcept(...gridEntityTypes: GridEntityType[]): GridEntity[];
16181
+ export declare function removeAllGridEntitiesExcept(...gridEntityTypes: GridEntityType[]): readonly GridEntity[];
16181
16182
 
16182
16183
  /**
16183
16184
  * Helper function to remove all of the heart pickup entities in the room.
@@ -16187,7 +16188,7 @@ export declare function removeAllGridEntitiesExcept(...gridEntityTypes: GridEnti
16187
16188
  * @param cap Optional. If specified, will only remove the given amount of hearts.
16188
16189
  * @returns The hearts that were removed.
16189
16190
  */
16190
- export declare function removeAllHearts(heartSubType?: HeartSubType, cap?: int): EntityPickupHeart[];
16191
+ export declare function removeAllHearts(heartSubType?: HeartSubType, cap?: int): readonly EntityPickupHeart[];
16191
16192
 
16192
16193
  /**
16193
16194
  * Helper function to remove all of the keys in the room.
@@ -16197,7 +16198,7 @@ export declare function removeAllHearts(heartSubType?: HeartSubType, cap?: int):
16197
16198
  * @param cap Optional. If specified, will only remove the given amount of keys.
16198
16199
  * @returns The keys that were removed.
16199
16200
  */
16200
- export declare function removeAllKeys(keySubType?: KeySubType, cap?: int): EntityPickupKey[];
16201
+ export declare function removeAllKeys(keySubType?: KeySubType, cap?: int): readonly EntityPickupKey[];
16201
16202
 
16202
16203
  /**
16203
16204
  * Helper function to remove all of the knives in the room.
@@ -16209,7 +16210,7 @@ export declare function removeAllKeys(keySubType?: KeySubType, cap?: int): Entit
16209
16210
  * @param cap Optional. If specified, will only remove the given amount of knives.
16210
16211
  * @returns An array of the knives that were removed.
16211
16212
  */
16212
- export declare function removeAllKnives(knifeVariant?: KnifeVariant | -1, subType?: number, cap?: int): EntityKnife[];
16213
+ export declare function removeAllKnives(knifeVariant?: KnifeVariant | -1, subType?: number, cap?: int): readonly EntityKnife[];
16213
16214
 
16214
16215
  /**
16215
16216
  * Helper function to remove all of the lasers in the room.
@@ -16221,7 +16222,7 @@ export declare function removeAllKnives(knifeVariant?: KnifeVariant | -1, subTyp
16221
16222
  * @param cap Optional. If specified, will only remove the given amount of lasers.
16222
16223
  * @returns An array of the lasers that were removed.
16223
16224
  */
16224
- export declare function removeAllLasers(laserVariant?: LaserVariant | -1, subType?: number, cap?: int): EntityLaser[];
16225
+ export declare function removeAllLasers(laserVariant?: LaserVariant | -1, subType?: number, cap?: int): readonly EntityLaser[];
16225
16226
 
16226
16227
  /**
16227
16228
  * Helper function to remove all of the matching entities in the room.
@@ -16233,7 +16234,7 @@ export declare function removeAllLasers(laserVariant?: LaserVariant | -1, subTyp
16233
16234
  * @param cap Optional. If specified, will only remove the given amount of collectibles.
16234
16235
  * @returns An array of the entities that were removed.
16235
16236
  */
16236
- export declare function removeAllMatchingEntities(entityType: EntityType, entityVariant?: number, entitySubType?: number, cap?: int | undefined): Entity[];
16237
+ export declare function removeAllMatchingEntities(entityType: EntityType, entityVariant?: number, entitySubType?: number, cap?: int | undefined): readonly Entity[];
16237
16238
 
16238
16239
  /**
16239
16240
  * Helper function to remove all of the grid entities in the room that match the grid entity types
@@ -16254,7 +16255,7 @@ export declare function removeAllMatchingEntities(entityType: EntityType, entity
16254
16255
  *
16255
16256
  * @returns An array of the grid entities removed.
16256
16257
  */
16257
- export declare function removeAllMatchingGridEntities(...gridEntityType: GridEntityType[]): GridEntity[];
16258
+ export declare function removeAllMatchingGridEntities(...gridEntityType: GridEntityType[]): readonly GridEntity[];
16258
16259
 
16259
16260
  /**
16260
16261
  * Helper function to remove all of the NPCs in the room.
@@ -16268,7 +16269,7 @@ export declare function removeAllMatchingGridEntities(...gridEntityType: GridEnt
16268
16269
  * @param cap Optional. If specified, will only remove the given amount of NPCs.
16269
16270
  * @returns An array of the NPCs that were removed.
16270
16271
  */
16271
- export declare function removeAllNPCs(entityType?: EntityType | -1, variant?: number, subType?: number, cap?: int): EntityNPC[];
16272
+ export declare function removeAllNPCs(entityType?: EntityType | -1, variant?: number, subType?: number, cap?: int): readonly EntityNPC[];
16272
16273
 
16273
16274
  /**
16274
16275
  * Helper function to remove all of the pickups in the room.
@@ -16280,7 +16281,7 @@ export declare function removeAllNPCs(entityType?: EntityType | -1, variant?: nu
16280
16281
  * @param cap Optional. If specified, will only remove the given amount of pickups.
16281
16282
  * @returns An array of the pickups that were removed.
16282
16283
  */
16283
- export declare function removeAllPickups(pickupVariant?: PickupVariant | -1, subType?: number, cap?: int): EntityPickup[];
16284
+ export declare function removeAllPickups(pickupVariant?: PickupVariant | -1, subType?: number, cap?: int): readonly EntityPickup[];
16284
16285
 
16285
16286
  /**
16286
16287
  * Helper function to remove all of the pills in the room.
@@ -16290,7 +16291,7 @@ export declare function removeAllPickups(pickupVariant?: PickupVariant | -1, sub
16290
16291
  * @param cap Optional. If specified, will only remove the given amount of pills.
16291
16292
  * @returns The pills that were removed.
16292
16293
  */
16293
- export declare function removeAllPills(pillColor?: PillColor, cap?: int): EntityPickupPill[];
16294
+ export declare function removeAllPills(pillColor?: PillColor, cap?: int): readonly EntityPickupPill[];
16294
16295
 
16295
16296
  /**
16296
16297
  * Helper function to remove all of the `GridEntityPit` in the room.
@@ -16303,7 +16304,7 @@ export declare function removeAllPills(pillColor?: PillColor, cap?: int): Entity
16303
16304
  * @param cap Optional. If specified, will only remove the given amount of pits.
16304
16305
  * @returns The pits that were removed.
16305
16306
  */
16306
- export declare function removeAllPits(pitVariant?: PitVariant | -1, updateRoom?: boolean, cap?: int): GridEntityPit[];
16307
+ export declare function removeAllPits(pitVariant?: PitVariant | -1, updateRoom?: boolean, cap?: int): readonly GridEntityPit[];
16307
16308
 
16308
16309
  export declare function removeAllPlayerHealth(player: EntityPlayer): void;
16309
16310
 
@@ -16329,7 +16330,7 @@ export declare function removeAllPlayerTrinkets(player: EntityPlayer): void;
16329
16330
  * @param cap Optional. If specified, will only remove the given amount of poops.
16330
16331
  * @returns The poops that were removed.
16331
16332
  */
16332
- export declare function removeAllPoops(poopVariant?: PoopGridEntityVariant | -1, updateRoom?: boolean, cap?: int): GridEntityPoop[];
16333
+ export declare function removeAllPoops(poopVariant?: PoopGridEntityVariant | -1, updateRoom?: boolean, cap?: int): readonly GridEntityPoop[];
16333
16334
 
16334
16335
  /**
16335
16336
  * Helper function to remove all of the `GridEntityPressurePlate` in the room.
@@ -16342,7 +16343,7 @@ export declare function removeAllPoops(poopVariant?: PoopGridEntityVariant | -1,
16342
16343
  * @param cap Optional. If specified, will only remove the given amount of pressure plates.
16343
16344
  * @returns The pressure plates that were removed.
16344
16345
  */
16345
- export declare function removeAllPressurePlates(pressurePlateVariant?: PressurePlateVariant | -1, updateRoom?: boolean, cap?: int): GridEntityPressurePlate[];
16346
+ export declare function removeAllPressurePlates(pressurePlateVariant?: PressurePlateVariant | -1, updateRoom?: boolean, cap?: int): readonly GridEntityPressurePlate[];
16346
16347
 
16347
16348
  /**
16348
16349
  * Helper function to remove all of the projectiles in the room.
@@ -16354,7 +16355,7 @@ export declare function removeAllPressurePlates(pressurePlateVariant?: PressureP
16354
16355
  * @param cap Optional. If specified, will only remove the given amount of projectiles.
16355
16356
  * @returns An array of the projectiles that were removed.
16356
16357
  */
16357
- export declare function removeAllProjectiles(projectileVariant?: ProjectileVariant | -1, subType?: number, cap?: int): EntityProjectile[];
16358
+ export declare function removeAllProjectiles(projectileVariant?: ProjectileVariant | -1, subType?: number, cap?: int): readonly EntityProjectile[];
16358
16359
 
16359
16360
  /**
16360
16361
  * Helper function to remove all of the red heart pickup entities in the room.
@@ -16362,7 +16363,7 @@ export declare function removeAllProjectiles(projectileVariant?: ProjectileVaria
16362
16363
  * @param cap Optional. If specified, will only remove the given amount of hearts.
16363
16364
  * @returns The red hearts that were removed.
16364
16365
  */
16365
- export declare function removeAllRedHearts(cap?: int): EntityPickupHeart[];
16366
+ export declare function removeAllRedHearts(cap?: int): readonly EntityPickupHeart[];
16366
16367
 
16367
16368
  /**
16368
16369
  * Helper function to remove all of the `GridEntityRock` in the room.
@@ -16377,7 +16378,7 @@ export declare function removeAllRedHearts(cap?: int): EntityPickupHeart[];
16377
16378
  * @param cap Optional. If specified, will only remove the given amount of rocks.
16378
16379
  * @returns The rocks that were removed.
16379
16380
  */
16380
- export declare function removeAllRocks(variant?: number, updateRoom?: boolean, cap?: int): GridEntityRock[];
16381
+ export declare function removeAllRocks(variant?: number, updateRoom?: boolean, cap?: int): readonly GridEntityRock[];
16381
16382
 
16382
16383
  /**
16383
16384
  * Helper function to remove all of the sacks (i.e. grab bags) in the room.
@@ -16387,7 +16388,7 @@ export declare function removeAllRocks(variant?: number, updateRoom?: boolean, c
16387
16388
  * @param cap Optional. If specified, will only remove the given amount of sacks.
16388
16389
  * @returns The sacks that were removed.
16389
16390
  */
16390
- export declare function removeAllSacks(sackSubType?: SackSubType, cap?: int): EntityPickupSack[];
16391
+ export declare function removeAllSacks(sackSubType?: SackSubType, cap?: int): readonly EntityPickupSack[];
16391
16392
 
16392
16393
  /**
16393
16394
  * Helper function to remove all of the slots in the room.
@@ -16399,7 +16400,7 @@ export declare function removeAllSacks(sackSubType?: SackSubType, cap?: int): En
16399
16400
  * @param cap Optional. If specified, will only remove the given amount of slots.
16400
16401
  * @returns An array of the slots that were removed.
16401
16402
  */
16402
- export declare function removeAllSlots(slotVariant?: SlotVariant | -1, subType?: number, cap?: int): Entity[];
16403
+ export declare function removeAllSlots(slotVariant?: SlotVariant | -1, subType?: number, cap?: int): readonly Entity[];
16403
16404
 
16404
16405
  /**
16405
16406
  * Helper function to remove all of the `GridEntitySpikes` in the room.
@@ -16412,7 +16413,7 @@ export declare function removeAllSlots(slotVariant?: SlotVariant | -1, subType?:
16412
16413
  * @param cap Optional. If specified, will only remove the given amount of spikes.
16413
16414
  * @returns The spikes that were removed.
16414
16415
  */
16415
- export declare function removeAllSpikes(variant?: number, updateRoom?: boolean, cap?: int): GridEntitySpikes[];
16416
+ export declare function removeAllSpikes(variant?: number, updateRoom?: boolean, cap?: int): readonly GridEntitySpikes[];
16416
16417
 
16417
16418
  /**
16418
16419
  * Helper function to remove all of the tears in the room.
@@ -16424,7 +16425,7 @@ export declare function removeAllSpikes(variant?: number, updateRoom?: boolean,
16424
16425
  * @param cap Optional. If specified, will only remove the given amount of tears.
16425
16426
  * @returns An array of the tears that were removed.
16426
16427
  */
16427
- export declare function removeAllTears(tearVariant?: TearVariant | -1, subType?: number, cap?: int): EntityTear[];
16428
+ export declare function removeAllTears(tearVariant?: TearVariant | -1, subType?: number, cap?: int): readonly EntityTear[];
16428
16429
 
16429
16430
  /**
16430
16431
  * Helper function to remove all of the `GridEntityType.TELEPORTER` (23) in the room.
@@ -16437,7 +16438,7 @@ export declare function removeAllTears(tearVariant?: TearVariant | -1, subType?:
16437
16438
  * @param cap Optional. If specified, will only remove the given amount of teleporters.
16438
16439
  * @returns The teleporters that were removed.
16439
16440
  */
16440
- export declare function removeAllTeleporters(variant?: number, updateRoom?: boolean, cap?: int): GridEntity[];
16441
+ export declare function removeAllTeleporters(variant?: number, updateRoom?: boolean, cap?: int): readonly GridEntity[];
16441
16442
 
16442
16443
  /**
16443
16444
  * Helper function to remove all of the `GridEntityTNT` in the room.
@@ -16450,7 +16451,7 @@ export declare function removeAllTeleporters(variant?: number, updateRoom?: bool
16450
16451
  * @param cap Optional. If specified, will only remove the given amount of TNTs.
16451
16452
  * @returns The TNTs that were removed.
16452
16453
  */
16453
- export declare function removeAllTNT(variant?: number, updateRoom?: boolean, cap?: int): GridEntityTNT[];
16454
+ export declare function removeAllTNT(variant?: number, updateRoom?: boolean, cap?: int): readonly GridEntityTNT[];
16454
16455
 
16455
16456
  /**
16456
16457
  * Helper function to remove all of the `GridEntityType.TRAPDOOR` (17) in the room.
@@ -16463,7 +16464,7 @@ export declare function removeAllTNT(variant?: number, updateRoom?: boolean, cap
16463
16464
  * @param cap Optional. If specified, will only remove the given amount of trapdoors.
16464
16465
  * @returns The trapdoors that were removed.
16465
16466
  */
16466
- export declare function removeAllTrapdoors(trapdoorVariant?: TrapdoorVariant | -1, updateRoom?: boolean, cap?: int): GridEntity[];
16467
+ export declare function removeAllTrapdoors(trapdoorVariant?: TrapdoorVariant | -1, updateRoom?: boolean, cap?: int): readonly GridEntity[];
16467
16468
 
16468
16469
  /**
16469
16470
  * Helper function to remove all of the trinkets in the room.
@@ -16473,7 +16474,7 @@ export declare function removeAllTrapdoors(trapdoorVariant?: TrapdoorVariant | -
16473
16474
  * @param cap Optional. If specified, will only remove the given amount of trinkets.
16474
16475
  * @returns The trinkets that were removed.
16475
16476
  */
16476
- export declare function removeAllTrinkets(trinketType?: TrinketType, cap?: int): EntityPickupTrinket[];
16477
+ export declare function removeAllTrinkets(trinketType?: TrinketType, cap?: int): readonly EntityPickupTrinket[];
16477
16478
 
16478
16479
  /**
16479
16480
  * Helper function to remove all of the characters in a string before a given substring. Returns the
@@ -16542,7 +16543,7 @@ export declare function removeDoors(...doors: GridEntityDoor[]): void;
16542
16543
  * @param cap Optional. If specified, will only remove the given amount of entities.
16543
16544
  * @returns An array of the entities that were removed.
16544
16545
  */
16545
- export declare function removeEntities<T extends AnyEntity>(entities: T[], cap?: int): T[];
16546
+ export declare function removeEntities<T extends AnyEntity>(entities: T[] | readonly T[], cap?: int): readonly T[];
16546
16547
 
16547
16548
  /**
16548
16549
  * Helper function to remove all entities that just spawned from a grid entity breaking.
@@ -16551,7 +16552,7 @@ export declare function removeEntities<T extends AnyEntity>(entities: T[], cap?:
16551
16552
  *
16552
16553
  * You must specify an array of entities to look through.
16553
16554
  */
16554
- export declare function removeEntitiesSpawnedFromGridEntity(entities: Entity[], gridEntity: GridEntity): void;
16555
+ export declare function removeEntitiesSpawnedFromGridEntity(entities: Entity[] | readonly Entity[], gridEntity: GridEntity): void;
16555
16556
 
16556
16557
  /**
16557
16558
  * Helper function to remove a bit flag from an existing set of bit flags.
@@ -16584,7 +16585,7 @@ export declare function removeFlag<T extends BitFlag | BitFlag128>(flags: T | Bi
16584
16585
  * @param cap Optional. If specified, will only remove the given amount of entities.
16585
16586
  * @returns An array of the entities that were removed.
16586
16587
  */
16587
- export declare function removeGridEntities<T extends AnyGridEntity>(gridEntities: T[], updateRoom: boolean, cap?: int): T[];
16588
+ export declare function removeGridEntities<T extends AnyGridEntity>(gridEntities: T[] | readonly T[], updateRoom: boolean, cap?: int): readonly T[];
16588
16589
 
16589
16590
  /**
16590
16591
  * Helper function to remove a grid entity by providing the grid entity object or the grid index
@@ -17707,7 +17708,7 @@ export declare function setEntityOpacity(entity: Entity, alpha: float): void;
17707
17708
  * this with cached entities to avoid invoking the `Isaac.GetRoomEntities` method
17708
17709
  * multiple times.
17709
17710
  */
17710
- export declare function setEntityPositions(entityPositions: Map<PtrHash, Vector>, entities?: Entity[]): void;
17711
+ export declare function setEntityPositions(entityPositions: Map<PtrHash, Vector>, entities?: Entity[] | readonly Entity[]): void;
17711
17712
 
17712
17713
  export declare function setEntityRandomColor(entity: Entity): void;
17713
17714
 
@@ -17724,7 +17725,7 @@ export declare function setEntityRandomColor(entity: Entity): void;
17724
17725
  * this with cached entities to avoid invoking the `Isaac.GetRoomEntities` method
17725
17726
  * multiple times.
17726
17727
  */
17727
- export declare function setEntityVelocities(entityVelocities: Map<PtrHash, Vector>, entities?: Entity[]): void;
17728
+ export declare function setEntityVelocities(entityVelocities: Map<PtrHash, Vector>, entities?: Entity[] | readonly Entity[]): void;
17728
17729
 
17729
17730
  /**
17730
17731
  * Helper function to set the minimap `DisplayFlag` value for multiple rooms at once.
@@ -18660,7 +18661,7 @@ export declare function spawnWithSeed(entityType: EntityType, variant: int, subT
18660
18661
  * @param startAtZero Whether to start at 0. Defaults to false. If true, the chunks will start at 0
18661
18662
  * instead of 1.
18662
18663
  */
18663
- export declare function splitNumber(num: int, size: int, startAtZero?: boolean): Array<[min: int, max: int]>;
18664
+ export declare function splitNumber(num: int, size: int, startAtZero?: boolean): ReadonlyArray<readonly [min: int, max: int]>;
18664
18665
 
18665
18666
  /**
18666
18667
  * Helper function to check if two sprite layers have the same sprite sheet by using the