@league-of-foundry-developers/foundry-vtt-types 12.331.3-beta → 12.331.5

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