@league-of-foundry-developers/foundry-vtt-types 13.340.0 → 13.340.1

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 (543) hide show
  1. package/README.md +6 -3
  2. package/package.json +40 -18
  3. package/src/configuration/configuration.d.mts +24 -23
  4. package/src/configuration/documents.d.mts +295 -0
  5. package/src/configuration/globals.d.mts +8 -2
  6. package/src/configuration/index.d.mts +1 -0
  7. package/src/foundry/client/apps/app.d.mts +121 -119
  8. package/src/foundry/client/apps/av/av-config.d.mts +13 -8
  9. package/src/foundry/client/apps/av/cameras.d.mts +11 -11
  10. package/src/foundry/client/apps/dice/dice-config.d.mts +22 -8
  11. package/src/foundry/client/apps/form.d.mts +112 -94
  12. package/src/foundry/client/apps/forms/actor.d.mts +22 -12
  13. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +13 -8
  14. package/src/foundry/client/apps/forms/adventure-importer.d.mts +15 -7
  15. package/src/foundry/client/apps/forms/base-sheet.d.mts +14 -7
  16. package/src/foundry/client/apps/forms/card-config.d.mts +17 -9
  17. package/src/foundry/client/apps/forms/cards-config.d.mts +13 -14
  18. package/src/foundry/client/apps/forms/combat-config.d.mts +7 -7
  19. package/src/foundry/client/apps/forms/combatant-config.d.mts +4 -4
  20. package/src/foundry/client/apps/forms/default-sheets-config.d.mts +1 -1
  21. package/src/foundry/client/apps/forms/effect-config.d.mts +6 -6
  22. package/src/foundry/client/apps/forms/folder-config.d.mts +5 -5
  23. package/src/foundry/client/apps/forms/fonts.d.mts +42 -35
  24. package/src/foundry/client/apps/forms/grid-config.d.mts +11 -11
  25. package/src/foundry/client/apps/forms/image-popout.d.mts +28 -22
  26. package/src/foundry/client/apps/forms/item.d.mts +6 -6
  27. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +17 -15
  28. package/src/foundry/client/apps/forms/journal-sheet.d.mts +46 -37
  29. package/src/foundry/client/apps/forms/macro-config.d.mts +6 -6
  30. package/src/foundry/client/apps/forms/measure-template.d.mts +8 -8
  31. package/src/foundry/client/apps/forms/ownership.d.mts +5 -5
  32. package/src/foundry/client/apps/forms/playlist-config.d.mts +7 -9
  33. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +6 -6
  34. package/src/foundry/client/apps/forms/roll-table-config.d.mts +9 -10
  35. package/src/foundry/client/apps/forms/scene-config.d.mts +39 -39
  36. package/src/foundry/client/apps/forms/sheet-config.d.mts +8 -8
  37. package/src/foundry/client/apps/forms/user-config.d.mts +11 -11
  38. package/src/foundry/client/apps/hud/chatbubble.d.mts +14 -9
  39. package/src/foundry/client/apps/hud/container.d.mts +3 -3
  40. package/src/foundry/client/apps/hud/controls.d.mts +124 -84
  41. package/src/foundry/client/apps/hud/hotbar.d.mts +12 -12
  42. package/src/foundry/client/apps/hud/hud.d.mts +4 -4
  43. package/src/foundry/client/apps/hud/menu.d.mts +6 -6
  44. package/src/foundry/client/apps/hud/navigation.d.mts +11 -11
  45. package/src/foundry/client/apps/hud/pause.d.mts +7 -7
  46. package/src/foundry/client/apps/hud/players.d.mts +11 -11
  47. package/src/foundry/client/apps/i18n.d.mts +31 -27
  48. package/src/foundry/client/apps/placeables/drawing-config.d.mts +41 -33
  49. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +4 -4
  50. package/src/foundry/client/apps/placeables/index.d.mts +0 -2
  51. package/src/foundry/client/apps/placeables/note-config.d.mts +27 -17
  52. package/src/foundry/client/apps/placeables/tile-config.d.mts +23 -10
  53. package/src/foundry/client/apps/placeables/tile-hud.d.mts +8 -8
  54. package/src/foundry/client/apps/placeables/token-config.d.mts +84 -63
  55. package/src/foundry/client/apps/placeables/token-hud.d.mts +10 -10
  56. package/src/foundry/client/apps/placeables/wall-config.d.mts +19 -16
  57. package/src/foundry/client/apps/sidebar/apps/chat-popout.d.mts +5 -5
  58. package/src/foundry/client/apps/sidebar/apps/client-settings.d.mts +2 -2
  59. package/src/foundry/client/apps/sidebar/apps/compendium.d.mts +13 -10
  60. package/src/foundry/client/apps/sidebar/apps/invitation-links.d.mts +3 -3
  61. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +1 -1
  62. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +6 -6
  63. package/src/foundry/client/apps/sidebar/apps/permission-config.d.mts +6 -6
  64. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +33 -28
  65. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +1 -1
  66. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +12 -9
  67. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +40 -32
  68. package/src/foundry/client/apps/sidebar/document-directory.d.mts +44 -37
  69. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +3 -3
  70. package/src/foundry/client/apps/sidebar/sidebar-tab.d.mts +3 -3
  71. package/src/foundry/client/apps/sidebar/sidebar.d.mts +7 -7
  72. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +4 -4
  73. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +4 -4
  74. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +34 -29
  75. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +15 -15
  76. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +21 -12
  77. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +4 -4
  78. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +4 -4
  79. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +8 -8
  80. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +21 -21
  81. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +4 -4
  82. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +6 -6
  83. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +12 -12
  84. package/src/foundry/client/apps/templates.d.mts +2 -2
  85. package/src/foundry/client/av/clients/simplepeer.d.mts +4 -4
  86. package/src/foundry/client/av/settings.d.mts +16 -13
  87. package/src/foundry/client/config.d.mts +1982 -1823
  88. package/src/foundry/client/core/document-index.d.mts +12 -4
  89. package/src/foundry/client/core/hooks.d.mts +0 -2
  90. package/src/foundry/client/core/image.d.mts +13 -11
  91. package/src/foundry/client/core/issues.d.mts +11 -6
  92. package/src/foundry/client/core/keybindings.d.mts +3 -3
  93. package/src/foundry/client/core/nue.d.mts +1 -1
  94. package/src/foundry/client/core/packages.d.mts +393 -63
  95. package/src/foundry/client/core/settings.d.mts +34 -12
  96. package/src/foundry/client/core/socket.d.mts +2 -2
  97. package/src/foundry/client/core/sorting.d.mts +6 -6
  98. package/src/foundry/client/core/time.d.mts +6 -3
  99. package/src/foundry/client/core/tooltip.d.mts +1 -1
  100. package/src/foundry/client/core/tour.d.mts +58 -49
  101. package/src/foundry/client/core/tours.d.mts +1 -1
  102. package/src/foundry/client/core/utils.d.mts +3 -3
  103. package/src/foundry/client/core/workers.d.mts +24 -17
  104. package/src/foundry/client/data/abstract/canvas-document.d.mts +9 -15
  105. package/src/foundry/client/data/abstract/client-document.d.mts +133 -172
  106. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +14 -36
  107. package/src/foundry/client/data/abstract/document-collection.d.mts +89 -65
  108. package/src/foundry/client/data/abstract/world-collection.d.mts +47 -53
  109. package/src/foundry/client/data/collections/actors.d.mts +24 -31
  110. package/src/foundry/client/data/collections/cards.d.mts +10 -6
  111. package/src/foundry/client/data/collections/combats.d.mts +12 -8
  112. package/src/foundry/client/data/collections/compendium-collection.d.mts +79 -66
  113. package/src/foundry/client/data/collections/compendium-folders.d.mts +6 -6
  114. package/src/foundry/client/data/collections/compendium-packs.d.mts +4 -4
  115. package/src/foundry/client/data/collections/fog.d.mts +10 -6
  116. package/src/foundry/client/data/collections/folder.d.mts +15 -10
  117. package/src/foundry/client/data/collections/items.d.mts +11 -7
  118. package/src/foundry/client/data/collections/journal.d.mts +16 -10
  119. package/src/foundry/client/data/collections/macros.d.mts +15 -22
  120. package/src/foundry/client/data/collections/messages.d.mts +14 -10
  121. package/src/foundry/client/data/collections/playlists.d.mts +12 -9
  122. package/src/foundry/client/data/collections/scenes.d.mts +19 -31
  123. package/src/foundry/client/data/collections/settings.d.mts +10 -6
  124. package/src/foundry/client/data/collections/tables.d.mts +11 -7
  125. package/src/foundry/client/data/collections/users.d.mts +14 -11
  126. package/src/foundry/client/data/documents/active-effect.d.mts +652 -88
  127. package/src/foundry/client/data/documents/actor-delta.d.mts +672 -28
  128. package/src/foundry/client/data/documents/actor.d.mts +722 -60
  129. package/src/foundry/client/data/documents/adventure.d.mts +482 -49
  130. package/src/foundry/client/data/documents/ambient-light.d.mts +426 -21
  131. package/src/foundry/client/data/documents/ambient-sound.d.mts +474 -15
  132. package/src/foundry/client/data/documents/card.d.mts +570 -39
  133. package/src/foundry/client/data/documents/cards.d.mts +742 -78
  134. package/src/foundry/client/data/documents/chat-message.d.mts +578 -45
  135. package/src/foundry/client/data/documents/combat.d.mts +701 -71
  136. package/src/foundry/client/data/documents/combatant.d.mts +510 -28
  137. package/src/foundry/client/data/documents/drawing.d.mts +543 -16
  138. package/src/foundry/client/data/documents/fog-exploration.d.mts +413 -27
  139. package/src/foundry/client/data/documents/folder.d.mts +461 -40
  140. package/src/foundry/client/data/documents/item.d.mts +679 -25
  141. package/src/foundry/client/data/documents/journal-entry-page.d.mts +587 -21
  142. package/src/foundry/client/data/documents/journal-entry.d.mts +621 -20
  143. package/src/foundry/client/data/documents/macro.d.mts +530 -25
  144. package/src/foundry/client/data/documents/measured-template.d.mts +480 -16
  145. package/src/foundry/client/data/documents/note.d.mts +495 -18
  146. package/src/foundry/client/data/documents/playlist-sound.d.mts +429 -27
  147. package/src/foundry/client/data/documents/playlist.d.mts +666 -75
  148. package/src/foundry/client/data/documents/region-behavior.d.mts +468 -38
  149. package/src/foundry/client/data/documents/region.d.mts +661 -35
  150. package/src/foundry/client/data/documents/scene.d.mts +986 -149
  151. package/src/foundry/client/data/documents/setting.d.mts +397 -15
  152. package/src/foundry/client/data/documents/table-result.d.mts +479 -17
  153. package/src/foundry/client/data/documents/table.d.mts +663 -80
  154. package/src/foundry/client/data/documents/tile.d.mts +502 -16
  155. package/src/foundry/client/data/documents/token.d.mts +1114 -90
  156. package/src/foundry/client/data/documents/user.d.mts +495 -27
  157. package/src/foundry/client/data/documents/wall.d.mts +550 -15
  158. package/src/foundry/client/game.d.mts +58 -92
  159. package/src/foundry/client/head.d.mts +5 -6
  160. package/src/foundry/client/hooks.d.mts +237 -221
  161. package/src/foundry/client/pixi/board.d.mts +95 -89
  162. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +6 -5
  163. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +5 -5
  164. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +2 -2
  165. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +3 -3
  166. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +3 -3
  167. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +23 -21
  168. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +5 -5
  169. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +5 -5
  170. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +57 -51
  171. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +3 -3
  172. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +7 -7
  173. package/src/foundry/client/pixi/core/interaction/ping.d.mts +19 -11
  174. package/src/foundry/client/pixi/core/interaction/pings/chevron.d.mts +7 -2
  175. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +29 -23
  176. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +83 -38
  177. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +3 -3
  178. package/src/foundry/client/pixi/core/interaction/targets.d.mts +9 -9
  179. package/src/foundry/client/pixi/core/loader.d.mts +8 -8
  180. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +9 -4
  181. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +3 -3
  182. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +3 -3
  183. package/src/foundry/client/pixi/core/shapes/ray.d.mts +23 -17
  184. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +19 -14
  185. package/src/foundry/client/pixi/extensions/circle.d.mts +1 -1
  186. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +3 -3
  187. package/src/foundry/client/pixi/groups/effects.d.mts +4 -4
  188. package/src/foundry/client/pixi/groups/environment.d.mts +5 -5
  189. package/src/foundry/client/pixi/groups/hidden.d.mts +3 -3
  190. package/src/foundry/client/pixi/groups/interface.d.mts +6 -6
  191. package/src/foundry/client/pixi/groups/overlay.d.mts +3 -3
  192. package/src/foundry/client/pixi/groups/primary.d.mts +11 -11
  193. package/src/foundry/client/pixi/groups/rendered.d.mts +3 -3
  194. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +3 -3
  195. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +13 -13
  196. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +279 -233
  197. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +17 -8
  198. package/src/foundry/client/pixi/layers/controls/door.d.mts +26 -14
  199. package/src/foundry/client/pixi/layers/controls/layer.d.mts +89 -79
  200. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +121 -96
  201. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +4 -5
  202. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +6 -4
  203. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +7 -4
  204. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +19 -16
  205. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +101 -84
  206. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +13 -4
  207. package/src/foundry/client/pixi/layers/effects/weather/particles/leaves.d.mts +31 -2
  208. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +134 -59
  209. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +13 -3
  210. package/src/foundry/client/pixi/layers/grid/layer.d.mts +89 -87
  211. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +36 -15
  212. package/src/foundry/client/pixi/layers/masks/depth.d.mts +3 -3
  213. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +4 -4
  214. package/src/foundry/client/pixi/layers/masks/vision.d.mts +6 -6
  215. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +15 -11
  216. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +11 -10
  217. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +47 -28
  218. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +25 -12
  219. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +81 -63
  220. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +10 -11
  221. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +28 -17
  222. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +67 -46
  223. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +50 -51
  224. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +22 -16
  225. package/src/foundry/client/pixi/perception/detection-mode.d.mts +123 -51
  226. package/src/foundry/client/pixi/perception/fog.d.mts +34 -19
  227. package/src/foundry/client/pixi/perception/perception-manager.d.mts +137 -137
  228. package/src/foundry/client/pixi/perception/vision-mode.d.mts +92 -67
  229. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +3 -3
  230. package/src/foundry/client/pixi/placeable.d.mts +241 -146
  231. package/src/foundry/client/pixi/placeables/drawing.d.mts +260 -134
  232. package/src/foundry/client/pixi/placeables/light.d.mts +204 -66
  233. package/src/foundry/client/pixi/placeables/note.d.mts +150 -55
  234. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +7 -6
  235. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +3 -3
  236. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +2 -2
  237. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +4 -4
  238. package/src/foundry/client/pixi/placeables/region.d.mts +219 -110
  239. package/src/foundry/client/pixi/placeables/sound.d.mts +211 -68
  240. package/src/foundry/client/pixi/placeables/template.d.mts +186 -100
  241. package/src/foundry/client/pixi/placeables/tile.d.mts +211 -142
  242. package/src/foundry/client/pixi/placeables/token.d.mts +911 -568
  243. package/src/foundry/client/pixi/placeables/wall.d.mts +253 -130
  244. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +27 -5
  245. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +3 -3
  246. package/src/foundry/client/pixi/webgl/helpers/framebuffer-snapshot.d.mts +3 -3
  247. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +13 -5
  248. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +6 -6
  249. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +2 -2
  250. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +5 -5
  251. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +4 -4
  252. package/src/foundry/client/pixi/webgl/shaders/filters/base-mask-filter.d.mts +3 -3
  253. package/src/foundry/client/pixi/webgl/shaders/filters/blur.d.mts +5 -5
  254. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +6 -3
  255. package/src/foundry/client/pixi/webgl/shaders/filters/environment.d.mts +3 -3
  256. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +4 -4
  257. package/src/foundry/client/pixi/webgl/shaders/filters/invisibility.d.mts +3 -3
  258. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +4 -4
  259. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +6 -6
  260. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +8 -5
  261. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +3 -3
  262. package/src/foundry/client/pixi/webgl/shaders/filters/void.d.mts +3 -3
  263. package/src/foundry/client/pixi/webgl/shaders/filters/weather-occlusion-masks.d.mts +4 -4
  264. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +1 -1
  265. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +4 -4
  266. package/src/foundry/client/pixi/webgl/shaders/lighting/background-lighting.d.mts +3 -3
  267. package/src/foundry/client/pixi/webgl/shaders/lighting/base-lighting.d.mts +3 -3
  268. package/src/foundry/client/pixi/webgl/shaders/lighting/coloration-lighting.d.mts +3 -3
  269. package/src/foundry/client/pixi/webgl/shaders/lighting/darkness-lighting.d.mts +3 -3
  270. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/bewitching-wave.d.mts +5 -5
  271. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/black-hole.d.mts +3 -3
  272. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/chroma.d.mts +3 -3
  273. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/emanation.d.mts +3 -3
  274. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/energy-field.d.mts +3 -3
  275. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +6 -6
  276. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/flame.d.mts +5 -5
  277. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fog.d.mts +3 -3
  278. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/force-grid.d.mts +3 -3
  279. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/ghost-light.d.mts +5 -5
  280. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/hexa-dome.d.mts +3 -3
  281. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/light-dome.d.mts +3 -3
  282. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/magical-gloom.d.mts +3 -3
  283. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/pulse.d.mts +5 -5
  284. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/radial-rainbow.d.mts +3 -3
  285. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/revolving-light.d.mts +3 -3
  286. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/roiling-mass.d.mts +3 -3
  287. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/siren-light.d.mts +5 -5
  288. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/smoke-patch.d.mts +6 -5
  289. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/star-light.d.mts +3 -3
  290. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/sunburst.d.mts +5 -5
  291. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/swirling-rainbow.d.mts +4 -3
  292. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/torch.d.mts +5 -5
  293. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/vortex.d.mts +5 -5
  294. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/wave.d.mts +5 -5
  295. package/src/foundry/client/pixi/webgl/shaders/lighting/illumination-lighting.d.mts +3 -3
  296. package/src/foundry/client/pixi/webgl/shaders/region/adjust-darkness-level.d.mts +7 -7
  297. package/src/foundry/client/pixi/webgl/shaders/region/base.d.mts +4 -4
  298. package/src/foundry/client/pixi/webgl/shaders/region/highlight.d.mts +3 -3
  299. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +4 -4
  300. package/src/foundry/client/pixi/webgl/shaders/samplers/baseline-illumination.d.mts +3 -3
  301. package/src/foundry/client/pixi/webgl/shaders/samplers/color-adjustment.d.mts +5 -5
  302. package/src/foundry/client/pixi/webgl/shaders/samplers/depth.d.mts +3 -3
  303. package/src/foundry/client/pixi/webgl/shaders/samplers/fog-of-war.d.mts +3 -3
  304. package/src/foundry/client/pixi/webgl/shaders/samplers/occlusion.d.mts +3 -3
  305. package/src/foundry/client/pixi/webgl/shaders/samplers/primary.d.mts +4 -4
  306. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +4 -6
  307. package/src/foundry/client/pixi/webgl/shaders/vision/background-vision.d.mts +3 -3
  308. package/src/foundry/client/pixi/webgl/shaders/vision/base-vision.d.mts +3 -3
  309. package/src/foundry/client/pixi/webgl/shaders/vision/coloration-vision.d.mts +3 -3
  310. package/src/foundry/client/pixi/webgl/shaders/vision/effects/amplification.d.mts +3 -3
  311. package/src/foundry/client/pixi/webgl/shaders/vision/effects/wave.d.mts +5 -5
  312. package/src/foundry/client/pixi/webgl/shaders/vision/illumination-vision.d.mts +3 -3
  313. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +14 -15
  314. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +20 -27
  315. package/src/foundry/client/pixi/webgl/shaders/weather/fog.d.mts +5 -5
  316. package/src/foundry/client/pixi/webgl/shaders/weather/rain.d.mts +5 -5
  317. package/src/foundry/client/pixi/webgl/shaders/weather/snow.d.mts +5 -5
  318. package/src/foundry/client/pixi/workers/texture-worker.d.mts +5 -5
  319. package/src/foundry/client/tours/setup-tour.d.mts +15 -10
  320. package/src/foundry/client/ui/dialog.d.mts +3 -3
  321. package/src/foundry/client/ui/dragdrop.d.mts +33 -27
  322. package/src/foundry/client/ui/editor.d.mts +29 -21
  323. package/src/foundry/client/ui/filepicker.d.mts +42 -37
  324. package/src/foundry/client/ui/filter.d.mts +60 -48
  325. package/src/foundry/client/ui/forms.d.mts +22 -22
  326. package/src/foundry/client/ui/prosemirror.d.mts +15 -7
  327. package/src/foundry/client/ui/secrets.d.mts +43 -28
  328. package/src/foundry/client/ui/tabs.d.mts +40 -33
  329. package/src/foundry/client-esm/_module.d.mts +5 -5
  330. package/src/foundry/client-esm/_types.d.mts +2 -1
  331. package/src/foundry/client-esm/applications/api/application.d.mts +93 -31
  332. package/src/foundry/client-esm/applications/api/dialog.d.mts +23 -23
  333. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +85 -32
  334. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +1 -1
  335. package/src/foundry/client-esm/applications/apps/av/camera-popout.d.mts +1 -1
  336. package/src/foundry/client-esm/applications/apps/av/cameras.d.mts +2 -2
  337. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +4 -5
  338. package/src/foundry/client-esm/applications/apps/file-picker.d.mts +2 -2
  339. package/src/foundry/client-esm/applications/apps/grid-config.d.mts +3 -3
  340. package/src/foundry/client-esm/applications/apps/image-popout.d.mts +1 -1
  341. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +1 -1
  342. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +4 -4
  343. package/src/foundry/client-esm/applications/elements/file-picker.d.mts +1 -1
  344. package/src/foundry/client-esm/applications/elements/prosemirror-editor.d.mts +1 -1
  345. package/src/foundry/client-esm/applications/hud/drawing-hud.d.mts +1 -1
  346. package/src/foundry/client-esm/applications/hud/tile-hud.d.mts +1 -1
  347. package/src/foundry/client-esm/applications/hud/token-hud.d.mts +1 -1
  348. package/src/foundry/client-esm/applications/sheets/active-effect-config.d.mts +3 -3
  349. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +2 -2
  350. package/src/foundry/client-esm/applications/sheets/adventure-exporter.d.mts +3 -3
  351. package/src/foundry/client-esm/applications/sheets/adventure-importer.d.mts +3 -3
  352. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +5 -5
  353. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +4 -4
  354. package/src/foundry/client-esm/applications/sheets/card-config.d.mts +3 -3
  355. package/src/foundry/client-esm/applications/sheets/cards-config.d.mts +2 -2
  356. package/src/foundry/client-esm/applications/sheets/combatant-config.d.mts +3 -3
  357. package/src/foundry/client-esm/applications/sheets/drawing-config.d.mts +3 -3
  358. package/src/foundry/client-esm/applications/sheets/folder-config.d.mts +3 -3
  359. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +2 -2
  360. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-category-config.d.mts +3 -3
  361. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-sheet.d.mts +3 -3
  362. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-sheet.d.mts +3 -3
  363. package/src/foundry/client-esm/applications/sheets/macro-config.d.mts +3 -3
  364. package/src/foundry/client-esm/applications/sheets/note-config.d.mts +3 -3
  365. package/src/foundry/client-esm/applications/sheets/playlist-config.d.mts +3 -3
  366. package/src/foundry/client-esm/applications/sheets/playlist-sound-config.d.mts +3 -3
  367. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +3 -3
  368. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +3 -3
  369. package/src/foundry/client-esm/applications/sheets/roll-table-config.d.mts +3 -3
  370. package/src/foundry/client-esm/applications/sheets/roll-table-sheet.d.mts +3 -3
  371. package/src/foundry/client-esm/applications/sheets/scene-config.d.mts +3 -3
  372. package/src/foundry/client-esm/applications/sheets/table-result-config.d.mts +3 -3
  373. package/src/foundry/client-esm/applications/sheets/template-config.d.mts +3 -3
  374. package/src/foundry/client-esm/applications/sheets/tile-config.d.mts +3 -3
  375. package/src/foundry/client-esm/applications/sheets/token/mixin.d.mts +1 -0
  376. package/src/foundry/client-esm/applications/sheets/token/token-config.d.mts +3 -3
  377. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +4 -4
  378. package/src/foundry/client-esm/applications/sheets/wall-config.d.mts +3 -3
  379. package/src/foundry/client-esm/applications/sidebar/apps/chat-popout.d.mts +1 -1
  380. package/src/foundry/client-esm/applications/sidebar/sidebar-tab.d.mts +2 -2
  381. package/src/foundry/client-esm/applications/sidebar/tabs/actor-directory.d.mts +1 -1
  382. package/src/foundry/client-esm/applications/sidebar/tabs/cards-directory.d.mts +1 -1
  383. package/src/foundry/client-esm/applications/sidebar/tabs/combat-tracker.d.mts +242 -1
  384. package/src/foundry/client-esm/applications/sidebar/tabs/item-directory.d.mts +1 -1
  385. package/src/foundry/client-esm/applications/sidebar/tabs/journal-directory.d.mts +1 -1
  386. package/src/foundry/client-esm/applications/sidebar/tabs/macro-directory.d.mts +1 -1
  387. package/src/foundry/client-esm/applications/sidebar/tabs/playlist-directory.d.mts +1 -1
  388. package/src/foundry/client-esm/applications/sidebar/tabs/roll-table-directory.d.mts +1 -1
  389. package/src/foundry/client-esm/applications/sidebar/tabs/scene-directory.d.mts +1 -1
  390. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +2 -2
  391. package/src/foundry/client-esm/applications/ux/context-menu.d.mts +56 -36
  392. package/src/foundry/client-esm/audio/_types.d.mts +2 -0
  393. package/src/foundry/client-esm/audio/biquad.d.mts +76 -26
  394. package/src/foundry/client-esm/audio/cache.d.mts +31 -20
  395. package/src/foundry/client-esm/audio/convolver.d.mts +47 -25
  396. package/src/foundry/client-esm/audio/helper.d.mts +124 -80
  397. package/src/foundry/client-esm/audio/sound.d.mts +202 -97
  398. package/src/foundry/client-esm/audio/timeout.d.mts +28 -12
  399. package/src/foundry/client-esm/canvas/edges/collision.d.mts +12 -4
  400. package/src/foundry/client-esm/canvas/edges/edge.d.mts +13 -8
  401. package/src/foundry/client-esm/canvas/edges/edges.d.mts +3 -2
  402. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +12 -10
  403. package/src/foundry/client-esm/canvas/regions/geometry.d.mts +14 -7
  404. package/src/foundry/client-esm/canvas/regions/mesh.d.mts +25 -14
  405. package/src/foundry/client-esm/canvas/regions/polygon-tree.d.mts +50 -19
  406. package/src/foundry/client-esm/canvas/regions/shape.d.mts +45 -34
  407. package/src/foundry/client-esm/canvas/scene-manager.d.mts +7 -6
  408. package/src/foundry/client-esm/canvas/smaa/blend.d.mts +14 -3
  409. package/src/foundry/client-esm/canvas/smaa/edges.d.mts +25 -3
  410. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +119 -20
  411. package/src/foundry/client-esm/canvas/smaa/weights.d.mts +26 -3
  412. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +69 -39
  413. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +66 -40
  414. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +78 -19
  415. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +37 -20
  416. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +39 -20
  417. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +41 -12
  418. package/src/foundry/client-esm/canvas/sources/point-movement-source.d.mts +15 -4
  419. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +29 -14
  420. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +84 -39
  421. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +115 -41
  422. package/src/foundry/client-esm/canvas/tokens/ring-config.d.mts +83 -21
  423. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +66 -93
  424. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +146 -51
  425. package/src/foundry/client-esm/client.d.mts +16 -16
  426. package/src/foundry/client-esm/data/_module.d.mts +1 -1
  427. package/src/foundry/client-esm/data/calendar.d.mts +26 -39
  428. package/src/foundry/client-esm/data/client-backend.d.mts +6 -6
  429. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +1 -1
  430. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +5 -5
  431. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +2 -2
  432. package/src/foundry/client-esm/data/terrain-data.d.mts +1 -1
  433. package/src/foundry/client-esm/dice/parser.d.mts +5 -27
  434. package/src/foundry/client-esm/dice/roll.d.mts +63 -80
  435. package/src/foundry/client-esm/dice/terms/coin.d.mts +4 -8
  436. package/src/foundry/client-esm/dice/terms/dice.d.mts +85 -64
  437. package/src/foundry/client-esm/dice/terms/die.d.mts +7 -7
  438. package/src/foundry/client-esm/dice/terms/fate.d.mts +5 -5
  439. package/src/foundry/client-esm/dice/terms/function.d.mts +13 -16
  440. package/src/foundry/client-esm/dice/terms/numeric.d.mts +2 -4
  441. package/src/foundry/client-esm/dice/terms/operator.d.mts +1 -1
  442. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +8 -9
  443. package/src/foundry/client-esm/dice/terms/pool.d.mts +13 -28
  444. package/src/foundry/client-esm/dice/terms/string.d.mts +3 -3
  445. package/src/foundry/client-esm/dice/terms/term.d.mts +10 -5
  446. package/src/foundry/client-esm/dice/twister.d.mts +3 -3
  447. package/src/foundry/client-esm/documents/_module.d.mts +1 -1
  448. package/src/foundry/client-esm/helpers/_types.d.mts +12 -46
  449. package/src/foundry/client-esm/helpers/compendium-art.d.mts +57 -4
  450. package/src/foundry/client-esm/packages/_module.d.mts +1 -1
  451. package/src/foundry/client-esm/packages/_types.d.mts +2 -0
  452. package/src/foundry/client-esm/utils/_module.d.mts +1 -1
  453. package/src/foundry/client-esm/utils/_types.d.mts +2 -1
  454. package/src/foundry/common/_types.d.mts +1 -1
  455. package/src/foundry/common/abstract/_module.d.mts +1 -0
  456. package/src/foundry/common/abstract/_types.d.mts +60 -54
  457. package/src/foundry/common/abstract/backend.d.mts +28 -16
  458. package/src/foundry/common/abstract/data.d.mts +133 -116
  459. package/src/foundry/common/abstract/document.d.mts +1233 -440
  460. package/src/foundry/common/abstract/embedded-collection.d.mts +2 -2
  461. package/src/foundry/common/abstract/singleton-collection.d.mts +1 -1
  462. package/src/foundry/common/abstract/type-data.d.mts +35 -43
  463. package/src/foundry/common/config.d.mts +3 -3
  464. package/src/foundry/common/constants.d.mts +27 -26
  465. package/src/foundry/common/data/_types.d.mts +2 -0
  466. package/src/foundry/common/data/data.d.mts +189 -87
  467. package/src/foundry/common/data/fields.d.mts +579 -258
  468. package/src/foundry/common/data/validation-failure.d.mts +9 -4
  469. package/src/foundry/common/documents/_types.d.mts +16 -9
  470. package/src/foundry/common/documents/active-effect.d.mts +280 -180
  471. package/src/foundry/common/documents/actor-delta.d.mts +317 -70
  472. package/src/foundry/common/documents/actor.d.mts +304 -103
  473. package/src/foundry/common/documents/adventure.d.mts +254 -140
  474. package/src/foundry/common/documents/ambient-light.d.mts +267 -76
  475. package/src/foundry/common/documents/ambient-sound.d.mts +267 -110
  476. package/src/foundry/common/documents/card.d.mts +267 -176
  477. package/src/foundry/common/documents/cards.d.mts +299 -128
  478. package/src/foundry/common/documents/chat-message.d.mts +276 -160
  479. package/src/foundry/common/documents/combat.d.mts +300 -91
  480. package/src/foundry/common/documents/combatant.d.mts +283 -88
  481. package/src/foundry/common/documents/drawing.d.mts +286 -207
  482. package/src/foundry/common/documents/fog-exploration.d.mts +258 -72
  483. package/src/foundry/common/documents/folder.d.mts +248 -85
  484. package/src/foundry/common/documents/item.d.mts +305 -101
  485. package/src/foundry/common/documents/journal-entry-page.d.mts +279 -190
  486. package/src/foundry/common/documents/journal-entry.d.mts +294 -70
  487. package/src/foundry/common/documents/macro.d.mts +254 -134
  488. package/src/foundry/common/documents/measured-template.d.mts +293 -137
  489. package/src/foundry/common/documents/note.d.mts +274 -151
  490. package/src/foundry/common/documents/playlist-sound.d.mts +260 -96
  491. package/src/foundry/common/documents/playlist.d.mts +279 -122
  492. package/src/foundry/common/documents/region-behavior.d.mts +305 -64
  493. package/src/foundry/common/documents/region.d.mts +309 -90
  494. package/src/foundry/common/documents/roll-table.d.mts +286 -104
  495. package/src/foundry/common/documents/scene.d.mts +276 -344
  496. package/src/foundry/common/documents/setting.d.mts +229 -55
  497. package/src/foundry/common/documents/table-result.d.mts +267 -96
  498. package/src/foundry/common/documents/tile.d.mts +301 -172
  499. package/src/foundry/common/documents/token.d.mts +350 -452
  500. package/src/foundry/common/documents/user.d.mts +256 -146
  501. package/src/foundry/common/documents/wall.d.mts +272 -157
  502. package/src/foundry/common/grid/_types.d.mts +2 -0
  503. package/src/foundry/common/grid/base.d.mts +58 -37
  504. package/src/foundry/common/grid/hexagonal.d.mts +19 -19
  505. package/src/foundry/common/grid/square.d.mts +1 -1
  506. package/src/foundry/common/packages/_module.d.mts +5 -5
  507. package/src/foundry/common/packages/_types.d.mts +2 -0
  508. package/src/foundry/common/packages/base-module.d.mts +6 -24
  509. package/src/foundry/common/packages/base-package.d.mts +18 -16
  510. package/src/foundry/common/packages/base-system.d.mts +6 -78
  511. package/src/foundry/common/packages/base-world.d.mts +7 -60
  512. package/src/foundry/common/packages/sub-types.d.mts +1 -1
  513. package/src/foundry/common/primitives/array.d.mts +3 -3
  514. package/src/foundry/common/primitives/math.d.mts +7 -1
  515. package/src/foundry/common/primitives/number.d.mts +1 -1
  516. package/src/foundry/common/primitives/set.d.mts +17 -14
  517. package/src/foundry/common/prosemirror/_types.d.mts +2 -0
  518. package/src/foundry/common/prosemirror/dropdown.d.mts +1 -1
  519. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +1 -1
  520. package/src/foundry/common/prosemirror/menu.d.mts +3 -3
  521. package/src/foundry/common/prosemirror/plugin.d.mts +1 -1
  522. package/src/foundry/common/prosemirror/schema/index.d.mts +0 -1
  523. package/src/foundry/common/prosemirror/util.d.mts +1 -1
  524. package/src/foundry/common/utils/bitmask.d.mts +4 -1
  525. package/src/foundry/common/utils/collection.d.mts +59 -24
  526. package/src/foundry/common/utils/event-emitter.d.mts +46 -19
  527. package/src/foundry/common/utils/helpers.d.mts +13 -13
  528. package/src/foundry/common/utils/http.d.mts +2 -2
  529. package/src/foundry/common/utils/string-tree.d.mts +45 -39
  530. package/src/foundry/common/utils/word-tree.d.mts +10 -23
  531. package/src/tsconfig.json +1 -5
  532. package/src/types/augments/pixi.d.mts +28 -28
  533. package/src/types/config.d.mts +12 -12
  534. package/src/types/documentConfiguration.d.mts +282 -597
  535. package/src/types/lib.d.mts +4 -4
  536. package/src/types/workers/image-compressor.d.mts +1 -1
  537. package/src/utils/index.d.mts +255 -60
  538. package/tsconfig.json +29 -0
  539. package/tsconfig.main.json +8 -0
  540. package/tsconfig.miscellaneous.json +16 -0
  541. package/src/foundry/client/apps/placeables/light-config.d.mts +0 -100
  542. package/src/foundry/client/apps/placeables/sound-config.d.mts +0 -44
  543. package/src/foundry/common/documents/module.d.mts +0 -35
@@ -1,15 +1,14 @@
1
1
  import type {
2
- ArrayOverlaps,
3
- InexactPartial,
4
- NullishProps,
5
- ValueOf,
2
+ Brand,
6
3
  FixedInstanceType,
7
4
  HandleEmptyObject,
8
- } from "../../../../../utils/index.d.mts";
9
- import type Document from "../../../../common/abstract/document.d.mts";
10
- import type EmbeddedCollection from "../../../../common/abstract/embedded-collection.d.mts";
11
-
12
- type ConcretePlaceableOrPlaceableObject<T> = T extends PlaceableObject ? T : PlaceableObject;
5
+ Identity,
6
+ InexactPartial,
7
+ IntentionalPartial,
8
+ NullishProps,
9
+ } from "fvtt-types/utils";
10
+ import type Document from "#common/abstract/document.d.mts";
11
+ import type EmbeddedCollection from "#common/abstract/embedded-collection.d.mts";
13
12
 
14
13
  declare global {
15
14
  /**
@@ -18,24 +17,26 @@ declare global {
18
17
  * @typeParam DocumentName - The key of the configuration which defines the object and document class.
19
18
  * @typeParam Options - The type of the options in this layer.
20
19
  */
21
- class PlaceablesLayer<DocumentName extends PlaceablesLayer.Type> extends InteractionLayer {
22
- constructor();
23
-
20
+ // TODO(LukeAbby): Make `DocumentName` covariant.
21
+ class PlaceablesLayer<DocumentName extends PlaceablesLayer.DocumentNames> extends InteractionLayer {
24
22
  /**
25
23
  * Sort order for placeables belonging to this layer
26
24
  * @defaultValue `0`
25
+ * @remarks Unused in v12.331
27
26
  */
28
27
  static SORT_ORDER: number;
29
28
 
30
29
  /**
31
30
  * Placeable Layer Objects
32
31
  * @defaultValue `null`
32
+ * @remarks Set to `new PIXI.Container()` on draw, `null` on tearDown
33
33
  */
34
34
  objects: PIXI.Container | null;
35
35
 
36
36
  /**
37
37
  * Preview Object Placement
38
38
  * @defaultValue `null`
39
+ * @remarks Only `null` prior to first draw, does not get reset on tearDown
39
40
  */
40
41
  preview: PIXI.Container | null;
41
42
 
@@ -43,20 +44,21 @@ declare global {
43
44
  * Keep track of history so that CTRL+Z can undo changes
44
45
  * @defaultValue `[]`
45
46
  */
46
- history: Array<CanvasHistory<DocumentName>>;
47
+ history: PlaceablesLayer.HistoryEntry<DocumentName>[];
47
48
 
48
49
  /**
49
50
  * Keep track of an object copied with CTRL+C which can be pasted later
50
51
  * @defaultValue `[]`
52
+ * @privateRemarks Accessed externally in `ClientKeybinds#_onPaste`, which is marked `@private`
51
53
  */
52
- protected _copy: ConcretePlaceableOrPlaceableObject<Document.ConfiguredObjectInstanceForName<DocumentName>>[];
54
+ protected _copy: Document.ObjectFor<DocumentName>[];
53
55
 
54
56
  /**
55
57
  * A Quadtree which partitions and organizes Walls into quadrants for efficient target identification.
58
+ * @remarks Is `new CanvasQuadtree()` if `quadtree` is truthy in `this.constructor.layerOptions`, else `null`
56
59
  */
57
- quadtree: CanvasQuadtree<
58
- ConcretePlaceableOrPlaceableObject<Document.ConfiguredObjectInstanceForName<DocumentName>>
59
- > | null;
60
+ // TODO: If dynamic static stuff can be worked out, this can be conditional on `options.quadtree`
61
+ quadtree: CanvasQuadtree<Document.ObjectFor<DocumentName>> | null;
60
62
 
61
63
  /**
62
64
  * @remarks Override not in foundry docs but implicit from layerOptions
@@ -80,72 +82,73 @@ declare global {
80
82
 
81
83
  /**
82
84
  * A reference to the named Document type which is contained within this Canvas Layer.
83
- * @remarks This getter is abstract in {@link PlaceablesLayer}.
85
+ * @defaultValue `undefined`
86
+ * @abstract
84
87
  */
85
- static documentName: PlaceablesLayer.Type;
88
+ static documentName: PlaceablesLayer.DocumentNames;
86
89
 
87
90
  /**
88
91
  * Creation states affected to placeables during their construction.
89
92
  */
90
- static CREATION_STATES: PlaceablesLayer.CREATION_STATES;
93
+ static CREATION_STATES: PlaceablesLayer.CreationStates;
91
94
 
92
95
  /**
93
96
  * Obtain a reference to the Collection of embedded Document instances within the currently viewed Scene
97
+ * @remarks Returns `null` if `canvas.scene` does not have an EmbeddedCollection for the layer's `static documentName`
94
98
  */
95
- get documentCollection(): EmbeddedCollection<
96
- Document.ConfiguredInstanceForName<DocumentName>,
97
- Scene.ConfiguredInstance
98
- > | null;
99
+ get documentCollection(): EmbeddedCollection<Document.ImplementationFor<DocumentName>, Scene.Implementation> | null;
99
100
 
100
101
  /**
101
102
  * Define a Container implementation used to render placeable objects contained in this layer
103
+ * @privateRemarks Would be `Document.ConfiguredObjectInstanceForName<DocumentName>` if statics could see type params
102
104
  */
103
105
  static get placeableClass(): PlaceableObject.AnyConstructor;
104
106
 
105
107
  /**
106
108
  * If objects on this PlaceablesLayer have a HUD UI, provide a reference to its instance
107
- * @remarks Returns `null` unless overridden
109
+ * @remarks Returns `null` unless overridden by subclass
108
110
  */
109
- get hud(): BasePlaceableHUD<Document.ConfiguredObjectInstanceForName<DocumentName>> | null;
111
+ get hud(): BasePlaceableHUD<Document.ObjectFor<DocumentName>> | null;
110
112
 
111
113
  /**
112
114
  * A convenience method for accessing the placeable object instances contained in this layer
113
115
  */
114
- get placeables(): Document.ConfiguredObjectInstanceForName<DocumentName>[];
116
+ get placeables(): Document.ObjectFor<DocumentName>[];
115
117
 
116
118
  /**
117
119
  * An Array of placeable objects in this layer which have the _controlled attribute
118
120
  */
119
- get controlled(): Document.ConfiguredObjectInstanceForName<DocumentName>[];
121
+ get controlled(): Document.ObjectFor<DocumentName>[];
120
122
 
121
123
  /**
122
124
  * Iterates over placeable objects that are eligible for control/select.
123
- * @remarks yields A placeable object
125
+ * @yields A placeable object
124
126
  */
125
- // TODO: Update remark with proper @yields tag https://github.com/microsoft/tsdoc/issues/234
126
127
  controllableObjects(): Generator<PlaceableObject.Any>;
127
128
 
128
129
  /**
129
130
  * Track the set of PlaceableObjects on this layer which are currently controlled.
130
131
  */
131
- get controlledObjects(): Map<string, PlaceableObject>;
132
+ get controlledObjects(): Map<string, Document.ObjectFor<DocumentName>>;
132
133
 
133
134
  /**
134
135
  * Track the PlaceableObject on this layer which is currently hovered upon.
135
136
  */
136
- get hover(): PlaceableObject | null;
137
+ get hover(): Document.ObjectFor<DocumentName> | null;
137
138
 
138
139
  set hover(object);
139
140
 
140
141
  /**
141
142
  * Track whether "highlight all objects" is currently active
142
143
  * @defaultValue `false`
144
+ * @remarks Set by {@link Canvas.highlightObjects | `Canvas#highlightObjects`}
143
145
  */
144
146
  highlightObjects: boolean;
145
147
 
146
148
  /**
147
149
  * Get the maximum sort value of all placeables.
148
150
  * @returns The maximum sort value (-Infinity if there are no objects)
151
+ * @remarks Despite the above comment, returns `-Infinity` if the schema of the layer's document lacks a `sort` field, object count is not relevant
149
152
  */
150
153
  getMaxSort(): number;
151
154
 
@@ -153,8 +156,9 @@ declare global {
153
156
  * Send the controlled objects of this layer to the back or bring them to the front.
154
157
  * @param front - Bring to front instead of send to back?
155
158
  * @returns Returns true if the layer has sortable object, and false otherwise
159
+ * @remarks Same check as {@link PlaceablesLayer.getMaxSort | `PlaceablesLayer#getMaxSort`}
156
160
  */
157
- protected _sentToBackOrBringToFront(front: boolean): boolean;
161
+ protected _sendToBackOrBringToFront(front?: boolean | null): boolean;
158
162
 
159
163
  /**
160
164
  * Snaps the given point to grid. The layer defines the snapping behavior.
@@ -165,10 +169,9 @@ declare global {
165
169
 
166
170
  /**
167
171
  * Obtain an iterable of objects which should be added to this PlaceableLayer
172
+ * @remarks Returns the EmbeddedCollection for this layer's associated Document on the currently viewed scene, or an empty array if not found
168
173
  */
169
- getDocuments():
170
- | Exclude<this["documentCollection"], null>
171
- | FixedInstanceType<Document.ConfiguredClassForName<DocumentName>>[];
174
+ getDocuments(): NonNullable<this["documentCollection"]> | [];
172
175
 
173
176
  protected override _draw(options: HandleEmptyObject<PlaceablesLayer.DrawOptions>): Promise<void>;
174
177
 
@@ -176,9 +179,7 @@ declare global {
176
179
  * Draw a single placeable object
177
180
  * @param document - The Document instance used to create the placeable object
178
181
  */
179
- createObject(
180
- document: Document.ConfiguredInstanceForName<DocumentName>,
181
- ): Document.ConfiguredObjectInstanceForName<DocumentName>;
182
+ createObject(document: Document.ImplementationFor<DocumentName>): Document.ObjectFor<DocumentName>;
182
183
 
183
184
  protected override _tearDown(options: HandleEmptyObject<PlaceablesLayer.TearDownOptions>): Promise<void>;
184
185
 
@@ -197,7 +198,7 @@ declare global {
197
198
  * @param objectId - The ID of the contained object to retrieve
198
199
  * @returns The object instance, or undefined
199
200
  */
200
- get(objectId: string): Document.ConfiguredObjectInstanceForName<DocumentName> | undefined;
201
+ get(objectId: string): Document.ObjectFor<DocumentName> | undefined;
201
202
 
202
203
  /**
203
204
  * Acquire control over all PlaceableObject instances which are visible and controllable within the layer.
@@ -206,7 +207,9 @@ declare global {
206
207
  * (default: `{}`)
207
208
  * @returns An array of objects that were controlled
208
209
  */
209
- controlAll(options?: PlaceableObject.ControlOptions): Document.ConfiguredObjectInstanceForName<DocumentName>[];
210
+ controlAll(
211
+ options?: PlaceableObject.ControlOptions, // not:null (property set on it without checks)
212
+ ): Document.ObjectFor<DocumentName>[];
210
213
 
211
214
  /**
212
215
  * Release all controlled PlaceableObject instance from this layer.
@@ -215,7 +218,9 @@ declare global {
215
218
  * (default: `{}`)
216
219
  * @returns The number of PlaceableObject instances which were released
217
220
  */
218
- releaseAll(options?: PlaceableObject.ReleaseOptions): number;
221
+ releaseAll(
222
+ options?: PlaceableObject.ReleaseOptions, // not:null (`Placeable#release` behaviour depends on subclasses, cannot assume null allowed)
223
+ ): number;
219
224
 
220
225
  /**
221
226
  * Simultaneously rotate multiple PlaceableObjects using a provided angle or incremental.
@@ -225,12 +230,11 @@ declare global {
225
230
  * @param options - Options which configure how multiple objects are rotated
226
231
  * (default: `{}`)
227
232
  * @returns An array of objects which were rotated
228
- * @throws An error if explicitly provided id is not valid
229
- * @remarks Overload is necessary to ensure that one of `angle` or `delta` are numeric in `options`
233
+ * @throws If both `options.angle` and `options.delta` are nullish
234
+ * @remarks Overload is necessary to ensure that one of `angle` or `delta` are numeric in `options`, as neither has a parameter default
230
235
  */
231
- rotateMany(
232
- options?: PlaceablesLayer.RotationOptions,
233
- ): Promise<Document.ConfiguredObjectInstanceForName<DocumentName>[]>;
236
+ rotateMany(options: PlaceablesLayer.RotateManyOptionsWithAngle): Promise<Document.ObjectFor<DocumentName>[]>;
237
+ rotateMany(options: PlaceablesLayer.RotateManyOptionsWithDelta): Promise<Document.ObjectFor<DocumentName>[]>;
234
238
 
235
239
  /**
236
240
  * Simultaneously move multiple PlaceableObjects via keyboard movement offsets.
@@ -239,37 +243,37 @@ declare global {
239
243
  * @param options - Options which configure how multiple objects are moved
240
244
  * (default: `{}`)
241
245
  * @returns An array of objects which were moved during the operation
242
- * @throws An error if explicitly provided id is not valid
246
+ * @throws If an array is passed for `ids` and any of its contents are not a valid ID for a placeable on this layer
243
247
  */
244
248
  moveMany(
245
- options?: PlaceablesLayer.MovementOptions,
246
- ): Promise<Document.ConfiguredObjectInstanceForName<DocumentName>[]> | undefined;
249
+ options?: PlaceablesLayer.MoveManyOptions, // not:null (destructured)
250
+ ): Promise<Document.ObjectFor<DocumentName>[]> | undefined;
247
251
 
248
252
  /**
249
253
  * An internal helper method to identify the array of PlaceableObjects which can be moved or rotated.
250
254
  * @param ids - An explicit array of IDs requested.
251
255
  * @param includeLocked - Include locked objects which would otherwise be ignored?
252
256
  * @returns An array of objects which can be moved or rotated
253
- * @throws An error if any explicitly requested ID is not valid
254
- * @remarks Any non-array input for `ids` will default to using currently controlled objects,
255
- * allowing you to provide `true` to the includeLocked
257
+ * @throws If an array is passed for `ids` and any of its contents are not a valid ID for a placeable on this layer
258
+ * @remarks Any non-array input for `ids` will default to using currently controlled objects
256
259
  */
257
- protected _getMovableObjects<const T>(
258
- ids?: ArrayOverlaps<T, string>,
259
- includeLocked?: boolean,
260
- ): Document.ConfiguredObjectInstanceForName<DocumentName>[];
260
+ protected _getMovableObjects(
261
+ ids?: string[] | null,
262
+ includeLocked?: boolean | null,
263
+ ): Document.ObjectFor<DocumentName>[];
261
264
 
262
265
  /**
263
266
  * Undo a change to the objects in this layer
264
267
  * This method is typically activated using CTRL+Z while the layer is active
265
268
  */
266
- undoHistory(): Promise<Document.ConfiguredInstanceForName<DocumentName>[]>;
269
+ undoHistory(): Promise<Document.ImplementationFor<DocumentName>[]>;
267
270
 
268
271
  /**
269
272
  * A helper method to prompt for deletion of all PlaceableObject instances within the Scene
270
273
  * Renders a confirmation dialogue to confirm with the requester that all objects will be deleted
271
274
  * @returns An array of Document objects which were deleted by the operation
272
- * @throws An error if the calling user is not a GM or Assistant GM
275
+ * @throws If `!game.user.isGM`
276
+ * @remarks Returns `null` if the dialog spawned is closed by header button, `false` if cancelled by button, `undefined` if confirmed
273
277
  */
274
278
  deleteAll(): Promise<undefined | false | null>;
275
279
 
@@ -279,13 +283,17 @@ declare global {
279
283
  * @param data - The object data
280
284
  * @throws An error if any of the objects in the `data` array lack an `_id` key
281
285
  */
282
- storeHistory(type: PlaceablesLayer.HistoryEventType, data: Document.ConfiguredSourceForName<DocumentName>[]): void;
286
+ storeHistory<Operation extends Document.Database.Operation>(
287
+ type: Operation,
288
+ data: PlaceablesLayer.HistoryDataFor<Operation, DocumentName>,
289
+ ): void;
283
290
 
284
291
  /**
285
292
  * Copy currently controlled PlaceableObjects to a temporary Array, ready to paste back into the scene later
286
293
  * @returns The Array of copied PlaceableObject instances
294
+ * @remarks If the current layer doesn't allow objects to be controlled, copies the hovered object.
287
295
  */
288
- copyObjects(): Document.ConfiguredObjectInstanceForName<DocumentName>[];
296
+ copyObjects(): Document.ObjectFor<DocumentName>[];
289
297
 
290
298
  /**
291
299
  * Paste currently copied PlaceableObjects back to the layer by creating new copies
@@ -295,79 +303,34 @@ declare global {
295
303
  */
296
304
  pasteObjects(
297
305
  position: Canvas.Point,
298
- options?: NullishProps<{
299
- /**
300
- * Paste data in a hidden state, if applicable. Default is false.
301
- * @defaultValue `false`
302
- */
303
- hidden: boolean;
304
-
305
- /**
306
- * Snap the resulting objects to the grid. Default is true.
307
- * @defaultValue `true`
308
- */
309
- snap: boolean;
310
- }>,
311
- ): Promise<Document.ConfiguredInstanceForName<DocumentName>[]>;
306
+ options?: PlaceablesLayer.PasteOptions, // not:null (destructured)
307
+ ): Promise<Document.ImplementationFor<DocumentName>[]>;
312
308
 
313
309
  /**
314
310
  * Get the data of the copied object pasted at the position given by the offset.
315
- * Called by {@link PlaceablesLayer#pasteObjects} for each copied object.
311
+ * Called by {@link PlaceablesLayer.pasteObjects | `PlaceablesLayer#pasteObjects`} for each copied object.
316
312
  * @param copy - The copied object that is pasted
317
313
  * @param offset - The offset relative from the current position to the destination
318
- * @param options - Options of {@link PlaceablesLayer#pasteObjects}
314
+ * @param options - Options of {@link PlaceablesLayer.pasteObjects | `PlaceablesLayer#pasteObjects`}
319
315
  * @returns The update data
320
316
  */
321
- _pasteObject(
322
- copy: Document.ConfiguredObjectInstanceForName<DocumentName>,
317
+ protected _pasteObject(
318
+ copy: Document.ObjectFor<DocumentName>,
323
319
  offset: Canvas.Point,
324
- options?: NullishProps<{
325
- /**
326
- * Paste in a hidden state, if applicable.
327
- * @defaultValue `false`
328
- */
329
- hidden: boolean;
330
-
331
- /**
332
- * Snap to the grid.
333
- * @defaultValue `true`
334
- */
335
- snap: boolean;
336
- }>,
337
- ): Document.ConfiguredSourceForName<DocumentName>;
320
+ options?: PlaceablesLayer.PasteOptions, // not:null (destructured)
321
+ ): Omit<Document.ImplementationFor<DocumentName>["_source"], "_id">;
338
322
 
339
323
  /**
340
324
  * Select all PlaceableObject instances which fall within a coordinate rectangle.
341
- * @param options - (default: `{}`)
325
+ * @param options - (default: `{}`)
326
+ * @param additionalOptions - (default: `{}`)
342
327
  * @returns A boolean for whether the controlled set was changed in the operation
328
+ * @remarks Despite being a `={}` parameter, an `options` object with positive `width` and `height` properties
329
+ * is required for reasonable operation
343
330
  */
344
331
  selectObjects(
345
- /**
346
- * @remarks Can't be NullishProps because `controlOptions` is passed on to `PlaceableObject#control`
347
- * which provides a default of `{}` and then checks for `.releaseOthers` without further checks
348
- * */
349
- options?: InexactPartial<
350
- Canvas.Rectangle & {
351
- /**
352
- * Optional arguments provided to any called release() method
353
- * @defaultValue `{}`
354
- */
355
- releaseOptions: PlaceableObject.ReleaseOptions;
356
-
357
- /**
358
- * Optional arguments provided to any called control() method
359
- * @defaultValue `{ releaseOthers: false }`
360
- */
361
- controlOptions: PlaceableObject.ControlOptions;
362
- }
363
- >,
364
- secondOptions?: NullishProps<{
365
- /**
366
- * Whether to release other selected objects.
367
- * @defaultValue `true`
368
- */
369
- releaseOthers: boolean;
370
- }>,
332
+ options: PlaceablesLayer.SelectObjectsOptions,
333
+ additionalOptions?: PlaceablesLayer.SelectObjectsAdditionalOptions, // not:null (destructured)
371
334
  ): boolean;
372
335
 
373
336
  /**
@@ -379,17 +342,15 @@ declare global {
379
342
  * @param options - Additional options passed to Document.update
380
343
  * (default: `{}`)
381
344
  * @returns An array of updated data once the operation is complete
382
- * @throws An error if the `transformation` paramater is neither a function nor a plain object
345
+ * @throws An error if the `transformation` parameter is neither a function nor a plain object
383
346
  */
384
347
  updateAll(
385
348
  transformation:
386
- | ((
387
- placeable: Document.ConfiguredObjectInstanceForName<DocumentName>,
388
- ) => Partial<Document.ConfiguredSourceForName<DocumentName>>)
389
- | Partial<Document.ConfiguredSourceForName<DocumentName>>,
390
- condition?: ((placeable: Document.ConfiguredObjectInstanceForName<DocumentName>) => boolean) | null,
391
- options?: Document.OnUpdateOptions<DocumentName>,
392
- ): Promise<Array<Document.ConfiguredInstanceForName<DocumentName>>>;
349
+ | ((placeable: Document.ObjectFor<DocumentName>) => Document.UpdateDataForName<DocumentName>)
350
+ | Document.UpdateDataForName<DocumentName>,
351
+ condition?: ((placeable: Document.ObjectFor<DocumentName>) => boolean) | null,
352
+ options?: PlaceablesLayer.UpdateAllOptions<DocumentName>, // not:null (updateEmbeddedDocuments tries to set `parent` on it)
353
+ ): Promise<Array<Document.ImplementationFor<DocumentName>>>;
393
354
 
394
355
  /**
395
356
  * Get the world-transformed drop position.
@@ -397,47 +358,24 @@ declare global {
397
358
  */
398
359
  protected _canvasCoordinatesFromDrop(
399
360
  event: DragEvent,
400
- options?: NullishProps<{
401
- /**
402
- * Return the co-ordinates of the center of the nearest grid element.
403
- * @defaultValue `true`
404
- */
405
- center: boolean;
406
- }>,
407
- ): [tx: number, ty: number] | false;
361
+ options?: PlaceablesLayer.CanvasCoordinatesFromDropOptions, // not:null (destructured)
362
+ ): Canvas.PointTuple | false;
408
363
 
409
364
  /**
410
365
  * Create a preview of this layer's object type from a world document and show its sheet to be finalized.
411
366
  * @param createData - The data to create the object with.
412
367
  * @param options - Options which configure preview creation
413
368
  * @returns The created preview object
369
+ * @remarks Returns a temporary (`new PlaceableDocument()`) document
414
370
  */
415
371
  protected _createPreview(
416
- createData: Document.ConfiguredSourceForName<DocumentName>,
417
- options?: NullishProps<{
418
- /**
419
- * Render the preview object config sheet?
420
- * @defaultValue `true`
421
- */
422
- renderSheet: boolean;
423
-
424
- /**
425
- * The offset-top position where the sheet should be rendered
426
- * @defaultValue `0`
427
- */
428
- top: number;
429
-
430
- /**
431
- * The offset-left position where the sheet should be rendered
432
- * @defaultValue `0`
433
- */
434
- left: number;
435
- }>,
436
- ): Promise<Document.ConfiguredObjectInstanceForName<DocumentName>>;
372
+ createData: Document.CreateDataForName<DocumentName>,
373
+ options?: PlaceablesLayer.CreatePreviewOptions, // not:null (destructured)
374
+ ): Promise<Document.ObjectFor<DocumentName>>;
437
375
 
438
376
  protected override _onClickLeft(event: PIXI.FederatedEvent): void;
439
377
 
440
- protected override _canDragLeftStart(user: User.ConfiguredInstance, event: PIXI.FederatedEvent): boolean;
378
+ protected override _canDragLeftStart(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
441
379
 
442
380
  protected override _onDragLeftStart(event: PIXI.FederatedEvent): void;
443
381
 
@@ -449,8 +387,9 @@ declare global {
449
387
 
450
388
  protected override _onClickRight(event: PIXI.FederatedEvent): void;
451
389
 
390
+ /** @privateRemarks `void` added to return union for TokenLayer reasons */
452
391
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
453
- protected override _onMouseWheel(event: WheelEvent): ReturnType<this["rotateMany"]>;
392
+ protected override _onMouseWheel(event: WheelEvent): Promise<Document.ObjectFor<DocumentName>[] | void>;
454
393
 
455
394
  protected override _onDeleteKey(event: KeyboardEvent): Promise<void>;
456
395
 
@@ -473,49 +412,36 @@ declare global {
473
412
  set _highlight(state);
474
413
  }
475
414
 
476
- interface CanvasHistory<DocumentName extends PlaceablesLayer.Type> {
477
- /**
478
- * The type of operation stored as history (create, update, delete)
479
- */
480
- type: PlaceablesLayer.HistoryEventType;
481
-
482
- /**
483
- * The data corresponding to the action which may later be un-done
484
- */
485
- data: FixedInstanceType<Document.ConfiguredClassForName<DocumentName>>["_source"][];
486
- }
487
-
488
- type PlaceablesLayerOptions<DocumentName extends Document.PlaceableType> = PlaceablesLayer.LayerOptions<DocumentName>;
415
+ /** @deprecated {@link PlaceablesLayer.LayerOptions | `PlaceablesLayer.LayerOptions`} */
416
+ export import PlaceablesLayerOptions = PlaceablesLayer.LayerOptions;
489
417
 
490
418
  namespace PlaceablesLayer {
491
- type Any = PlaceablesLayer<any>;
492
-
493
- type AnyConstructor = typeof AnyPlaceablesLayer;
494
-
495
- type Type = Document.PlaceableType;
496
-
497
- type HistoryEventType = "create" | "update" | "delete";
419
+ interface Any extends AnyPlaceablesLayer {}
420
+ interface AnyConstructor extends Identity<typeof AnyPlaceablesLayer> {}
498
421
 
499
- type CreationState = ValueOf<(typeof PlaceablesLayer)["CREATION_STATES"]>;
422
+ type DocumentNames = Document.PlaceableType;
500
423
 
501
- type ConfiguredClassForName<Name extends Document.PlaceableType> = CONFIG[Name]["layerClass"];
424
+ type ImplementationClassFor<Name extends DocumentNames> = CONFIG[Name]["layerClass"];
425
+ type ImplementationFor<Name extends DocumentNames> = FixedInstanceType<CONFIG[Name]["layerClass"]>;
502
426
 
503
427
  interface DrawOptions extends InteractionLayer.DrawOptions {}
504
428
 
505
429
  interface TearDownOptions extends CanvasLayer.DrawOptions {}
506
430
 
507
- interface CREATION_STATES {
508
- readonly NONE: 0;
509
- readonly POTENTIAL: 1;
510
- readonly CONFIRMED: 2;
511
- readonly COMPLETED: 3;
431
+ type CREATION_STATES = Brand<number, "PlaceablesLayer.CREATION_STATES">;
432
+
433
+ /** Creation states affected to placeables during their construction. */
434
+ interface CreationStates {
435
+ NONE: 0 & CREATION_STATES;
436
+ POTENTIAL: 1 & CREATION_STATES;
437
+ CONFIRMED: 2 & CREATION_STATES;
438
+ COMPLETED: 3 & CREATION_STATES;
512
439
  }
513
440
 
514
- /**
515
- * @typeParam DocumentName - The key of the configuration which defines the object and document class.
516
- */
517
- interface LayerOptions<DocumentName extends Type> extends InteractionLayer.LayerOptions {
441
+ interface LayerOptions<ConcretePlaceable extends PlaceableObject.AnyConstructor>
442
+ extends InteractionLayer.LayerOptions {
518
443
  baseClass: typeof PlaceablesLayer;
444
+
519
445
  /**
520
446
  * Can placeable objects in this layer be controlled?
521
447
  * @defaultValue `false`
@@ -538,7 +464,7 @@ declare global {
538
464
  * The class used to represent an object on this layer.
539
465
  * @defaultValue `CONFIG[this.documentName]?.objectClass`
540
466
  */
541
- objectClass: Document.ConfiguredObjectClassForName<DocumentName>;
467
+ objectClass: ConcretePlaceable;
542
468
 
543
469
  /**
544
470
  * Does this layer use a quadtree to track object positions?
@@ -548,84 +474,204 @@ declare global {
548
474
  }
549
475
 
550
476
  namespace LayerOptions {
551
- type Any = LayerOptions<any>;
477
+ interface Any extends LayerOptions<any> {}
552
478
  }
553
479
 
554
- interface RotationOptions {
480
+ /** @internal */
481
+ type _RotateManyOptions = NullishProps<{
555
482
  /**
556
- * A target angle of rotation (in degrees) where zero faces "south"
557
- *
558
- * @remarks If both `angle` and `delta` are provided then `angle` is used.
483
+ * Snap the resulting angle to a multiple of some increment (in degrees)
484
+ * @remarks Passed to {@link PlaceableObject._updateRotation | `PlaceableObject#_updateRotation`} where it is checked for `> 0` before being passed to the non-null-safe `Number#toNearest`
559
485
  */
560
- angle?: number | null | undefined;
561
-
486
+ snap: number;
562
487
  /**
563
- * An incremental angle of rotation (in degrees)
564
- *
565
- * @remarks If both `angle` and `delta` are provided then `angle` is used.
488
+ * An Array of object IDs to target for rotation
489
+ * @remarks Passed to {@link PlaceablesLayer._getMovableObjects | `PlaceablesLayer#_getMovableObjects`}
566
490
  */
567
- delta?: number | null | undefined;
568
-
491
+ ids: string[];
569
492
  /**
570
- * Snap the resulting angle to a multiple of some increment (in degrees)
493
+ * Rotate objects whose documents are locked?
494
+ * @defaultValue `false`
571
495
  */
572
- snap?: number | null | undefined;
496
+ includeLocked: boolean;
497
+ }>;
573
498
 
499
+ /** @internal */
500
+ interface _RotateManyOptionsAngle {
574
501
  /**
575
- * An Array of object IDs to target for rotation
502
+ * A target angle of rotation (in degrees) where zero faces "south"
576
503
  */
577
- ids?: string[] | null | undefined;
504
+ angle: number;
505
+ }
578
506
 
507
+ /** @internal */
508
+ interface _RotateManyOptionsDelta {
579
509
  /**
580
- * Rotate objects whose documents are locked?
581
- * @defaultValue `false`
510
+ * An incremental angle of rotation (in degrees)
582
511
  */
583
- includeLocked?: boolean | null | undefined;
512
+ delta: number;
584
513
  }
585
514
 
586
- interface _MovementOptions {
515
+ interface RotateManyOptionsWithAngle
516
+ extends _RotateManyOptions,
517
+ NullishProps<_RotateManyOptionsDelta>,
518
+ _RotateManyOptionsAngle {}
519
+
520
+ interface RotateManyOptionsWithDelta
521
+ extends _RotateManyOptions,
522
+ NullishProps<_RotateManyOptionsAngle>,
523
+ _RotateManyOptionsDelta {}
524
+
525
+ /** @internal */
526
+ type _MoveManyOptions = InexactPartial<{
587
527
  /**
588
528
  * Horizontal movement direction
589
529
  * @defaultValue `0`
590
- *
591
- * @remarks dx cannot be `null` because it must be in `[-1, 0, 1]`. However it may be
592
- * `undefined` because it has a parameter default of `0`.
530
+ * @remarks Can't be `null` because it only has a parameter default
593
531
  */
594
- dx?: -1 | 0 | 1 | undefined;
532
+ dx: -1 | 0 | 1;
595
533
 
596
534
  /**
597
535
  * Vertical movement direction
598
536
  * @defaultValue `0`
599
- *
600
- * @remarks dx cannot be `null` because it must be in `[-1, 0, 1]`. However it may be
601
- * `undefined` because it has a parameter default of `0`.
537
+ * @remarks Can't be `null` because it only has a parameter default
602
538
  */
603
- dy?: -1 | 0 | 1 | undefined;
539
+ dy: -1 | 0 | 1;
540
+ }> &
541
+ NullishProps<{
542
+ /**
543
+ * Rotate the placeable to the keyboard direction instead of moving
544
+ * @defaultValue `false`
545
+ */
546
+ rotate: boolean;
547
+
548
+ /**
549
+ * An Array of object IDs to target for movement. The default is the IDs of controlled objects.
550
+ * @defaultValue `this.controlled.filter(o => !o.data.locked).map(o => o.id)`
551
+ */
552
+ ids: string[];
604
553
 
554
+ /**
555
+ * Move objects whose documents are locked?
556
+ * @defaultValue `false`
557
+ */
558
+ includeLocked: boolean;
559
+ }>;
560
+
561
+ interface MoveManyOptions extends _MoveManyOptions {}
562
+
563
+ /** @privateRemarks Handled like this rather than an interface mapping to avoid extraneous type calculation */
564
+ type HistoryDataFor<Operation extends Document.Database.Operation, DocumentName extends DocumentNames> =
565
+ | (Operation extends "create" ? { _id: string } : never)
566
+ | (Operation extends "update" ? Document.UpdateDataForName<DocumentName> & { _id: string } : never)
567
+ | (Operation extends "delete" ? Document.CreateDataForName<DocumentName> & { _id: string } : never);
568
+
569
+ type HistoryEntry<DocumentName extends DocumentNames> =
570
+ | { type: "create"; data: HistoryDataFor<"create", DocumentName>[] }
571
+ | {
572
+ type: "update";
573
+ data: HistoryDataFor<"update", DocumentName>[];
574
+ }
575
+ | {
576
+ type: "delete";
577
+ data: HistoryDataFor<"delete", DocumentName>[];
578
+ };
579
+
580
+ /** @internal */
581
+ type _PasteOptions = NullishProps<{
605
582
  /**
606
- * Rotate the placeable to the keyboard direction instead of moving
607
- * @defaultValue
583
+ * Paste data in a hidden state, if applicable. Default is false.
584
+ * @defaultValue `false`
608
585
  */
609
- rotate?: boolean | null | undefined;
586
+ hidden: boolean;
610
587
 
611
588
  /**
612
- * An Array of object IDs to target for movement. The default is the IDs of controlled objects.
613
- * @defaultValue `this.controlled.filter(o => !o.data.locked).map(o => o.id)`
589
+ * Snap the resulting objects to the grid. Default is true.
590
+ * @defaultValue `true`
614
591
  */
615
- ids?: string[] | null | undefined;
592
+ snap: boolean;
593
+ }>;
616
594
 
595
+ interface PasteOptions extends _PasteOptions {}
596
+
597
+ /**
598
+ * @internal
599
+ * @privateRemarks Only marking `x` and `y` from `Canvas.Rectangle` optional, as the `PIXI.Rectangle` defaults of `0` make no sense for `width` or `height` in this context
600
+ */
601
+ type _SelectObjectsOptions = NullishProps<Canvas.Rectangle, "x" | "y"> &
602
+ InexactPartial<{
603
+ /**
604
+ * Optional arguments provided to any called release() method
605
+ * @defaultValue `{}`
606
+ * @remarks Can't be null as it only has a parameter default
607
+ */
608
+ releaseOptions: PlaceableObject.ReleaseOptions;
609
+
610
+ /**
611
+ * Optional arguments provided to any called control() method
612
+ * @defaultValue `{}`
613
+ * @remarks Can't be null as it only has a parameter default
614
+ */
615
+ controlOptions: PlaceableObject.ControlOptions;
616
+ }>;
617
+
618
+ interface SelectObjectsOptions extends _SelectObjectsOptions {}
619
+
620
+ /**
621
+ * @internal
622
+ * @privateRemarks This is functionally identical to `PlaceableObject.ControlOptions`, but only the one key gets checked,
623
+ * and it's not passed on anywhere, so it gets its own type to not cause confusion with `SelectObjectsOptions["controlOptions"]`
624
+ */
625
+ type _SelectObjectAdditionalOptions = NullishProps<{
617
626
  /**
618
- * Move objects whose documents are locked?
619
- * @defaultValue `false`
627
+ * Whether to release other selected objects.
628
+ * @defaultValue `true`
620
629
  */
621
- includeLocked?: boolean | null | undefined;
622
- }
630
+ releaseOthers: boolean;
631
+ }>;
632
+
633
+ interface SelectObjectsAdditionalOptions extends _SelectObjectAdditionalOptions {}
634
+
635
+ type UpdateAllOptions<DocumentName extends DocumentNames> = IntentionalPartial<
636
+ Document.UpdateDataForName<DocumentName>
637
+ >;
638
+
639
+ /** @internal */
640
+ type _CanvasCoordinatesFromDropOptions = NullishProps<{
641
+ /**
642
+ * Return the co-ordinates of the center of the nearest grid element.
643
+ * @defaultValue `true`
644
+ */
645
+ center: boolean;
646
+ }>;
647
+
648
+ interface CanvasCoordinatesFromDropOptions extends _CanvasCoordinatesFromDropOptions {}
649
+
650
+ /** @internal */
651
+ type _CreatePreviewOptions = NullishProps<{
652
+ /**
653
+ * Render the preview object config sheet?
654
+ * @defaultValue `true`
655
+ */
656
+ renderSheet: boolean;
657
+
658
+ /**
659
+ * The offset-top position where the sheet should be rendered
660
+ * @defaultValue `0`
661
+ */
662
+ top: number;
663
+
664
+ /**
665
+ * The offset-left position where the sheet should be rendered
666
+ * @defaultValue `0`
667
+ */
668
+ left: number;
669
+ }>;
623
670
 
624
- /** @remarks can't be NullishProps because `dx` and `dy` must be in `[-1, 0, 1]` */
625
- interface MovementOptions extends InexactPartial<_MovementOptions> {}
671
+ interface CreatePreviewOptions extends _CreatePreviewOptions {}
626
672
  }
627
673
  }
628
674
 
629
- declare abstract class AnyPlaceablesLayer extends PlaceablesLayer<any> {
630
- constructor(arg0: never, ...args: never[]);
675
+ declare abstract class AnyPlaceablesLayer extends PlaceablesLayer<PlaceablesLayer.DocumentNames> {
676
+ constructor(...args: never);
631
677
  }