@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,71 +1,89 @@
1
- import type { MakeConform } from "../../../types/helperTypes.d.mts";
2
- import type { ValueOf } from "../../../types/utils.d.mts";
3
- import type ApplicationV2 from "../../client-esm/applications/api/application.d.mts";
1
+ import type {
2
+ Identity,
3
+ InterfaceToObject,
4
+ HandleEmptyObject,
5
+ InexactPartial,
6
+ MakeConform,
7
+ NullishProps,
8
+ Titlecase,
9
+ GetKey,
10
+ } from "#utils";
4
11
  import type { Document } from "../../common/abstract/module.d.mts";
12
+ import type {
13
+ DatabaseCreateOperation,
14
+ DatabaseDeleteOperation,
15
+ DatabaseUpdateOperation,
16
+ } from "../../common/abstract/_types.d.mts";
5
17
 
6
18
  // Gets a key with a required shape to conform to which is also used as a fallback when the key doesn't exist.
7
- type GetKeyWithShape<T, K, S> = K extends keyof T ? MakeConform<T[K], S> : S;
19
+ type GetKeyWithShape<T, K extends PropertyKey, S> = MakeConform<GetKey<T, K>, S>;
8
20
 
9
21
  declare global {
10
22
  /**
11
23
  * An Abstract Base Class which defines a Placeable Object which represents a Document placed on the Canvas
12
24
  */
13
25
  abstract class PlaceableObject<
14
- D extends Document<any, any, Scene.ConfiguredInstance | null> = Document<any, any, Scene.ConfiguredInstance | null>,
26
+ CanvasDocument extends PlaceableObject.AnyCanvasDocument = PlaceableObject.AnyCanvasDocument,
15
27
  > extends RenderFlagsMixin(PIXI.Container) {
16
28
  /**
17
29
  * @param document - The Document instance which is represented by this object
18
30
  */
19
- constructor(document: D);
31
+ constructor(document: CanvasDocument);
20
32
 
21
33
  /**
22
34
  * Retain a reference to the Scene within which this Placeable Object resides
35
+ * @privateRemarks Not defined in the class body, set during construction
23
36
  */
24
- scene: Scene.ConfiguredInstance;
37
+ scene: Scene.Implementation;
25
38
 
26
39
  /**
27
40
  * A reference to the Scene embedded Document instance which this object represents
41
+ * @privateRemarks Not defined in the class body, set during construction
28
42
  */
29
- document: D;
43
+ document: CanvasDocument;
30
44
 
31
45
  /**
32
46
  * A control icon for interacting with the object
33
47
  * @defaultValue `null`
34
- * @remarks `undefined` is returned by subclasses only
48
+ * @remarks Set to `null` in {@link PlaceableObject | `PlaceableObject#constructor`} and {@link AmbientSound.clear | `AmbientSound#clear`}.
49
+ *
50
+ * In placeables which render an icon ({@link AmbientLight | `AmbientLight`}, {@link AmbientSound | `AmbientSound`},
51
+ * {@link Note | `Note`}, and {@link MeasuredTemplate | `MeasuredTemplate`}), it's only `null` prior to first draw; In all others, it is never set to other than `null`
52
+ *
53
+ * @privateRemarks Not defined in the class body, set during construction
35
54
  */
36
- controlIcon: ControlIcon | null | undefined;
55
+ controlIcon: ControlIcon | null;
37
56
 
38
57
  /**
39
58
  * A mouse interaction manager instance which handles mouse workflows related to this object.
40
59
  * @defaultValue `null`
60
+ * @privateRemarks Not defined in the class body, set during construction
41
61
  */
42
62
  mouseInteractionManager: MouseInteractionManager<this> | null;
43
63
 
44
64
  /**
45
65
  * Allow objects to be culled when off-screen
46
66
  * @defaultValue `false`
67
+ * @privateRemarks Override of `PIXI.Container` property in the constructor, only typed here for the defaultValue
47
68
  */
48
- cullable: boolean;
69
+ override cullable: boolean;
49
70
 
50
71
  /**
51
72
  * Identify the official Document name for this PlaceableObject class
52
- * @remarks This is abstract in {@link PlaceableObject}.
73
+ * @remarks This is abstract in {@link PlaceableObject | `PlaceableObject`}.
53
74
  */
54
75
  static embeddedName: string;
55
76
 
56
77
  /**
57
78
  * The flags declared here are required for all PlaceableObject subclasses to also support.
79
+ * @privateRemarks `InterfaceToObject` is required here, but not in the subclasses, to bridge the assignability gap
80
+ * between interfaces (subclasses) and an index signature (super)
58
81
  */
59
- static override RENDER_FLAGS: {
60
- /** @defaultValue `{ propagate: ["refresh"] }` */
61
- redraw: RenderFlag<PlaceableObject.RenderFlags>;
62
-
63
- /** @defaultValue `{ propagate: ["refreshState"], alias: true }` */
64
- refresh: RenderFlag<PlaceableObject.RenderFlags>;
82
+ static override RENDER_FLAGS: InterfaceToObject<PlaceableObject.RENDER_FLAGS>;
65
83
 
66
- /** @defaultValue `{}` */
67
- refreshState: RenderFlag<PlaceableObject.RenderFlags>;
68
- };
84
+ // Note: This isn't a "real" override but `renderFlags` is set corresponding to the
85
+ // `RENDER_FLAGS` and so it has to be adjusted here.
86
+ renderFlags: RenderFlags<PlaceableObject.RENDER_FLAGS>;
69
87
 
70
88
  /**
71
89
  * The object that this object is a preview of if this object is a preview
@@ -80,7 +98,7 @@ declare global {
80
98
  /**
81
99
  * The mouse interaction state of this placeable.
82
100
  */
83
- get interactionState(): ValueOf<typeof MouseInteractionManager.INTERACTION_STATES> | undefined;
101
+ get interactionState(): MouseInteractionManager.INTERACTION_STATES | undefined;
84
102
 
85
103
  /**
86
104
  * The bounding box for this PlaceableObject.
@@ -90,9 +108,8 @@ declare global {
90
108
 
91
109
  /**
92
110
  * The central coordinate pair of the placeable object based on it's own width and height
93
- * @remarks `{ x: number, y: number }` has been added because of `Token.center`
94
111
  */
95
- get center(): PIXI.Point | { x: number; y: number };
112
+ get center(): PIXI.Point;
96
113
 
97
114
  /**
98
115
  * The id of the corresponding Document which this PlaceableObject represents.
@@ -123,13 +140,13 @@ declare global {
123
140
  /**
124
141
  * Provide a reference to the CanvasLayer which contains this PlaceableObject.
125
142
  */
126
- get layer(): GetKeyWithShape<D, "layer", PIXI.Container>;
143
+ get layer(): PlaceableObject.Layer<CanvasDocument>;
127
144
 
128
145
  /**
129
146
  * A Form Application which is used to configure the properties of this Placeable Object or the Document it
130
147
  * represents.
131
148
  */
132
- get sheet(): GetKeyWithShape<D, "sheet", FormApplication | ApplicationV2.Any | null>;
149
+ get sheet(): PlaceableObject.Sheet<CanvasDocument>;
133
150
 
134
151
  /**
135
152
  * An indicator for whether the object is currently controlled
@@ -138,6 +155,7 @@ declare global {
138
155
 
139
156
  /**
140
157
  * An indicator for whether the object is currently a hover target
158
+ * @remarks In JS the setter treats all non-boolean values as `false`
141
159
  */
142
160
  get hover(): boolean;
143
161
 
@@ -152,8 +170,9 @@ declare global {
152
170
  * Get the snapped position for a given position or the current position
153
171
  * @param position - The position to be used instead of the current position
154
172
  * @returns The snapped position
173
+ * @remarks Calls `this#layer#getSnappedPoint`. If `position` is not provided or nullish, the document's values are used
155
174
  */
156
- getSnappedPosition(position?: Canvas.Point): Canvas.Point;
175
+ getSnappedPosition(position?: Canvas.Point | null): Canvas.Point;
157
176
 
158
177
  override applyRenderFlags(): void;
159
178
 
@@ -166,29 +185,34 @@ declare global {
166
185
  /**
167
186
  * Clear the display of the existing object
168
187
  * @returns The cleared object
169
- * @remarks Some subclasses return void
188
+ * @remarks {@link Tile.clear | `Tile`} and {@link Token.clear | `Token`} return void
170
189
  */
171
190
  clear(): this | void;
172
191
 
173
- override destroy(options?: Parameters<PIXI.Container["destroy"]>[0]): void;
192
+ // options: not null (PIXI signature)
193
+ override destroy(options?: PIXI.IDestroyOptions | boolean): void;
174
194
 
175
195
  /**
176
196
  * The inner _destroy method which may optionally be defined by each PlaceableObject subclass.
177
197
  * @param options - Options passed to the initial destroy call
198
+ * @remarks The options passed to {@link PlaceableObject.destroy | `PlaceableObject#destroy`} get forwarded here.
199
+ * `| undefined` since `destroy` has no `={}` for its `options`
178
200
  */
179
- protected _destroy(options?: PIXI.IDestroyOptions | boolean): void;
201
+ protected _destroy(options: PIXI.IDestroyOptions | boolean | undefined): void;
180
202
 
181
203
  /**
182
204
  * Draw the placeable object into its parent container
183
205
  * @returns The drawn object
184
206
  */
185
- draw(options?: Record<string, unknown>): Promise<this>;
207
+ // options: not null (will likely be destructured if any options ever materialize, parameter default)
208
+ draw(options?: HandleEmptyObject<PlaceableObject.DrawOptions>): Promise<this>;
186
209
 
187
210
  /**
188
211
  * The inner _draw method which must be defined by each PlaceableObject subclass.
189
212
  * @param options - Options which may modify the draw workflow
213
+ * @remarks The options passed to {@link PlaceableObject.draw | `PlaceableObject#draw`} get forwarded here
190
214
  */
191
- protected abstract _draw(options?: Record<string, unknown>): Promise<void>;
215
+ protected abstract _draw(options: HandleEmptyObject<PlaceableObject.DrawOptions>): Promise<void>;
192
216
 
193
217
  /**
194
218
  * Execute a partial draw.
@@ -203,10 +227,11 @@ declare global {
203
227
  * @param options - Options which may modify the refresh workflow
204
228
  * @returns The refreshed object
205
229
  */
206
- refresh(options?: Record<string, unknown>): this;
230
+ refresh(options?: HandleEmptyObject<PlaceableObject.RefreshOptions>): this;
207
231
 
208
232
  /**
209
233
  * Update the quadtree.
234
+ * @remarks Foundry marked `@internal`
210
235
  */
211
236
  protected _updateQuadtree(): void;
212
237
 
@@ -215,6 +240,7 @@ declare global {
215
240
  /**
216
241
  * Is this PlaceableObject within the selection rectangle?
217
242
  * @param rectangle - The selection rectangle
243
+ * @remarks Foundry marked `@internal`
218
244
  */
219
245
  protected _overlapsSelection(rectangle: PIXI.Rectangle): boolean;
220
246
 
@@ -226,26 +252,26 @@ declare global {
226
252
  /**
227
253
  * Register pending canvas operations which should occur after a new PlaceableObject of this type is created
228
254
  */
255
+ // TODO: should be `MaybePromise<void>` to allow async subclassing?
229
256
  protected _onCreate(
230
- data: foundry.data.fields.SchemaField.InnerAssignmentType<D["schema"]["fields"]>,
231
- options: Document.OnCreateOptions<D["documentName"]>,
257
+ data: foundry.data.fields.SchemaField.CreateData<CanvasDocument["schema"]["fields"]>,
258
+ options: Document.Database.CreateOptions<DatabaseCreateOperation>,
232
259
  userId: string,
233
260
  ): void;
234
261
 
235
262
  /**
236
263
  * Define additional steps taken when an existing placeable object of this type is updated with new data
237
- * @remarks Called without options and userId in Drawing._onUpdate
238
264
  */
239
265
  protected _onUpdate(
240
- changed: foundry.data.fields.SchemaField.InnerAssignmentType<D["schema"]["fields"]>,
241
- options?: Document.OnUpdateOptions<D["documentName"]>,
242
- userId?: string,
266
+ changed: foundry.data.fields.SchemaField.UpdateData<CanvasDocument["schema"]["fields"]>,
267
+ options: Document.Database.UpdateOptions<DatabaseUpdateOperation>,
268
+ userId: string,
243
269
  ): void;
244
270
 
245
271
  /**
246
272
  * Define additional steps taken when an existing placeable object of this type is deleted
247
273
  */
248
- protected _onDelete(options: Document.OnDeleteOptions<D["documentName"]>, userId: string): void;
274
+ protected _onDelete(options: Document.Database.DeleteOptions<DatabaseDeleteOperation>, userId: string): void;
249
275
 
250
276
  /**
251
277
  * Assume control over a PlaceableObject, flagging it as controlled and enabling downstream behaviors
@@ -253,13 +279,15 @@ declare global {
253
279
  * (default: `{}`)
254
280
  * @returns A flag denoting whether control was successful
255
281
  */
282
+ // options: not null (property access with only a parameter default)
256
283
  control(options?: PlaceableObject.ControlOptions): boolean;
257
284
 
258
285
  /**
259
286
  * Additional events which trigger once control of the object is established
260
287
  * @param options - Optional parameters which apply for specific implementations
288
+ * @remarks The options passed to {@link PlaceableObject.control | `PlaceableObject#control`} get forwarded here
261
289
  */
262
- protected _onControl(options?: PlaceableObject.ControlOptions): void;
290
+ protected _onControl(options: PlaceableObject.ControlOptions): void;
263
291
 
264
292
  /**
265
293
  * Release control over a PlaceableObject, removing it from the controlled set
@@ -267,13 +295,15 @@ declare global {
267
295
  * (default: `{}`)
268
296
  * @returns A Boolean flag confirming the object was released.
269
297
  */
270
- release(options?: PlaceableObject.ReleaseOptions): boolean;
298
+ // options: not null (parameter default only, forwarded to `_onRelease`)
299
+ release(options?: HandleEmptyObject<PlaceableObject.ReleaseOptions>): boolean;
271
300
 
272
301
  /**
273
302
  * Additional events which trigger once control of the object is released
274
303
  * @param options - Options which modify the releasing workflow
304
+ * @remarks The options passed to {@link PlaceableObject.release | `PlaceableObject#release`} get forwarded here
275
305
  */
276
- protected _onRelease(options?: PlaceableObject.ReleaseOptions): void;
306
+ protected _onRelease(options: HandleEmptyObject<PlaceableObject.ReleaseOptions>): void;
277
307
 
278
308
  /**
279
309
  * Clone the placeable object, returning a new object with identical attributes.
@@ -281,7 +311,7 @@ declare global {
281
311
  * If you plan to use it permanently you should call the create method.
282
312
  * @returns A new object with identical data
283
313
  */
284
- clone(): PlaceableObject;
314
+ clone(): this;
285
315
 
286
316
  /**
287
317
  * Rotate the PlaceableObject to a certain angle of facing
@@ -289,48 +319,24 @@ declare global {
289
319
  * @param snap - Snap the angle of rotation to a certain target degree increment
290
320
  * @returns A Promise which resolves once the rotation has completed
291
321
  */
292
- rotate(angle: number, snap: number): Promise<this>;
322
+ // snap: not null (forwarded to _updateRotation with only a parameter default)
323
+ rotate(angle: number, snap?: number): Promise<this>;
293
324
 
294
325
  /**
295
326
  * Determine a new angle of rotation for a PlaceableObject either from an explicit angle or from a delta offset.
296
327
  * @param options - An object which defines the rotation update parameters
297
- * @param angle - An explicit angle, either this or delta must be provided
298
- * (default: `null`)
299
- * @param delta - A relative angle delta, either this or the angle must be provided
300
- * (default: `0`)
301
- * @param snap - A precision (in degrees) to which the resulting angle should snap.
302
- * (default: `0`)
303
328
  * @returns The new rotation angle for the object
304
329
  */
305
- protected _updateRotation({
306
- angle,
307
- delta,
308
- snap,
309
- }?: {
310
- /**
311
- * An explicit angle, either this or delta must be provided
312
- * @defaultValue `undefined`
313
- */
314
- angle?: number;
315
-
316
- /**
317
- * A relative angle delta, either this or the angle must be provided
318
- * @defaultValue `0`
319
- */
320
- delta?: number;
321
-
322
- /**
323
- * A precision (in degrees) to which the resulting angle should snap. Default is 0.
324
- * @defaultValue `0`
325
- */
326
- snap?: number;
327
- }): number;
330
+ // options: not null (destructured)
331
+ protected _updateRotation(options?: PlaceableObject.UpdateRotationOptions): number;
328
332
 
329
333
  /**
330
334
  * Obtain a shifted position for the Placeable Object
331
335
  * @param dx - The number of grid units to shift along the X-axis
332
336
  * @param dy - The number of grid units to shift along the Y-axis
333
337
  * @returns The shifted target coordinates
338
+ * @remarks Despite the parameter descriptions saying 'number of grid units', they're only checked for sign.
339
+ * @privateRemarks Foundry types this correctly, but describes it wrong, logged
334
340
  */
335
341
  protected _getShiftedPosition(dx: -1 | 0 | 1, dy: -1 | 0 | 1): Canvas.Point;
336
342
 
@@ -349,11 +355,9 @@ declare global {
349
355
  * @param user - The User performing the action
350
356
  * @param action - The named action being attempted
351
357
  * @returns Does the User have rights to perform the action?
358
+ * @see {@link PlaceableObject.Action | `PlaceableObject.Action`}
352
359
  */
353
- can(
354
- user: User.ConfiguredInstance,
355
- action: "HUD" | "configure" | "control" | "view" | "create" | "drag" | "hover" | "update" | "delete" | string,
356
- ): boolean;
360
+ can(user: User.Implementation, action: PlaceableObject.Action): boolean;
357
361
 
358
362
  /**
359
363
  * Can the User access the HUD for this Placeable Object?
@@ -361,7 +365,7 @@ declare global {
361
365
  * @param event - The event object.
362
366
  * @returns The returned status.
363
367
  */
364
- protected _canHUD(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
368
+ protected _canHUD(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
365
369
 
366
370
  /**
367
371
  * Does the User have permission to configure the Placeable Object?
@@ -369,7 +373,7 @@ declare global {
369
373
  * @param event - The event object.
370
374
  * @returns The returned status.
371
375
  */
372
- protected _canConfigure(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
376
+ protected _canConfigure(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
373
377
 
374
378
  /**
375
379
  * Does the User have permission to control the Placeable Object?
@@ -377,7 +381,7 @@ declare global {
377
381
  * @param event - The event object.
378
382
  * @returns The returned status.
379
383
  */
380
- protected _canControl(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
384
+ protected _canControl(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
381
385
 
382
386
  /**
383
387
  * Does the User have permission to view details of the Placeable Object?
@@ -385,7 +389,7 @@ declare global {
385
389
  * @param event - The event object.
386
390
  * @returns The returned status.
387
391
  */
388
- protected _canView(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
392
+ protected _canView(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
389
393
 
390
394
  /**
391
395
  * Does the User have permission to create the underlying Document?
@@ -393,7 +397,7 @@ declare global {
393
397
  * @param event - The event object.
394
398
  * @returns The returned status.
395
399
  */
396
- protected _canCreate(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
400
+ protected _canCreate(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
397
401
 
398
402
  /**
399
403
  * Does the User have permission to drag this Placeable Object?
@@ -401,7 +405,7 @@ declare global {
401
405
  * @param event - The event object.
402
406
  * @returns The returned status.
403
407
  */
404
- protected _canDrag(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
408
+ protected _canDrag(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
405
409
 
406
410
  /**
407
411
  * Does the User have permission to left-click drag this Placeable Object?
@@ -409,7 +413,7 @@ declare global {
409
413
  * @param event - The event object.
410
414
  * @returns The returned status
411
415
  */
412
- protected _canDragLeftStart(user: User.ConfiguredInstance, event: DragEvent): boolean;
416
+ protected _canDragLeftStart(user: User.Implementation, event: DragEvent): boolean;
413
417
 
414
418
  /**
415
419
  * Does the User have permission to hover on this Placeable Object?
@@ -417,7 +421,7 @@ declare global {
417
421
  * @param event - The event object.
418
422
  * @returns The returned status.
419
423
  */
420
- protected _canHover(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
424
+ protected _canHover(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
421
425
 
422
426
  /**
423
427
  * Does the User have permission to update the underlying Document?
@@ -425,7 +429,7 @@ declare global {
425
429
  * @param event - The event object.
426
430
  * @returns The returned status.
427
431
  */
428
- protected _canUpdate(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
432
+ protected _canUpdate(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
429
433
 
430
434
  /**
431
435
  * Does the User have permission to delete the underlying Document?
@@ -433,63 +437,81 @@ declare global {
433
437
  * @param event - The event object.
434
438
  * @returns The returned status.
435
439
  */
436
- protected _canDelete(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
440
+ protected _canDelete(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
437
441
 
438
442
  /**
439
443
  * Actions that should be taken for this Placeable Object when a mouseover event occurs.
440
444
  * Hover events on PlaceableObject instances allow event propagation by default.
441
- * @see MouseInteractionManager##handlePointerOver
445
+ * @see `MouseInteractionManager##handlePointerOver`
442
446
  * @param event - The triggering canvas interaction event
443
447
  * @param options - Options which customize event handling
444
- * (default: `{}`)
448
+ * @remarks {@link Wall._onHoverIn | `Wall#_onHoverIn`} can return `false`, otherwise this is always `void`
445
449
  */
450
+ // options: not null (destructured)
446
451
  protected _onHoverIn(event: PIXI.FederatedEvent, options?: PlaceableObject.HoverInOptions): false | void;
447
452
 
448
453
  /**
449
454
  * Actions that should be taken for this Placeable Object when a mouseout event occurs
450
- * @see MouseInteractionManager##handlePointerOut
455
+ * @see `MouseInteractionManager##handlePointerOut`
451
456
  * @param event - The triggering canvas interaction event
452
- * @returns True if the event was handled, otherwise false
453
457
  */
454
- protected _onHoverOut(event: PIXI.FederatedEvent): boolean | void;
458
+ protected _onHoverOut(event: PIXI.FederatedEvent): void;
455
459
 
456
460
  /**
457
461
  * Should the placeable propagate left click downstream?
458
- * @defaultValue `false`
462
+ * @remarks Unconditionally returns `false` in `PlaceableObject`
459
463
  */
460
- protected _propagateLeftClick(event: PIXI.FederatedEvent): boolean;
464
+ protected _propagateLeftClick(_event: PIXI.FederatedEvent): boolean;
461
465
 
462
466
  /**
463
467
  * Callback actions which occur on a single left-click event to assume control of the object
464
- * @see MouseInteractionManager##handleClickLeft
468
+ * @see `MouseInteractionManager##handleClickLeft`
465
469
  * @param event - The triggering canvas interaction event
466
470
  */
467
471
  protected _onClickLeft(event: PIXI.FederatedEvent): void;
468
472
 
473
+ /**
474
+ * Callback actions which occur on a single left-unclick event to assume control of the object
475
+ * @param event - The triggering canvas interaction event
476
+ */
477
+ protected _onUnclickLeft(event: PIXI.FederatedEvent): void;
478
+
469
479
  /**
470
480
  * Callback actions which occur on a double left-click event to activate
471
- * @see MouseInteractionManager##handleClickLeft2
481
+ * @see `MouseInteractionManager##handleClickLeft2`
472
482
  * @param event - The triggering canvas interaction event
473
483
  */
474
484
  protected _onClickLeft2(event: PIXI.FederatedEvent): void;
475
485
 
486
+ /**
487
+ * Should the placeable propagate right click downstream?
488
+ * @remarks Unconditionally returns `false` in `PlaceableObject`
489
+ */
490
+ protected _propagateRightClick(_event: PIXI.FederatedEvent): boolean;
491
+
476
492
  /**
477
493
  * Callback actions which occur on a single right-click event to configure properties of the object
478
- * @see MouseInteractionManager##handleClickRight
494
+ * @see `MouseInteractionManager##handleClickRight`
479
495
  * @param event - The triggering canvas interaction event
480
496
  */
481
497
  protected _onClickRight(event: PIXI.FederatedEvent): void;
482
498
 
499
+ /**
500
+ * Callback actions which occur on a single right-unclick event
501
+ * @param event - The triggering canvas interaction event
502
+ */
503
+ protected _onUnclickRight(event: PIXI.FederatedEvent): void;
504
+
483
505
  /**
484
506
  * Callback actions which occur on a double right-click event to configure properties of the object
485
- * @see MouseInteractionManager##handleClickRight2
507
+ * @see `MouseInteractionManager##handleClickRight2`
486
508
  * @param event - The triggering canvas interaction event
487
509
  */
488
510
  protected _onClickRight2(event: PIXI.FederatedEvent): void;
489
511
 
490
512
  /**
491
513
  * Callback actions which occur when a mouse-drag action is first begun.
492
- * @see MouseInteractionManager##handleDragStart
514
+ * @see `MouseInteractionManager##handleDragStart`
493
515
  * @param event - The triggering canvas interaction event
494
516
  */
495
517
  protected _onDragLeftStart(event: PIXI.FederatedEvent): void;
@@ -508,14 +530,14 @@ declare global {
508
530
 
509
531
  /**
510
532
  * Callback actions which occur on a mouse-move operation.
511
- * @see MouseInteractionManager##handleDragMove
533
+ * @see `MouseInteractionManager##handleDragMove`
512
534
  * @param event - The triggering canvas interaction event
513
535
  */
514
536
  protected _onDragLeftMove(event: PIXI.FederatedEvent): void;
515
537
 
516
538
  /**
517
539
  * Callback actions which occur on a mouse-move operation.
518
- * @see MouseInteractionManager##handleDragDrop
540
+ * @see `MouseInteractionManager##handleDragDrop`
519
541
  * @param event - The triggering canvas interaction event
520
542
  */
521
543
  protected _onDragLeftDrop(event: PIXI.FederatedEvent): void;
@@ -524,49 +546,48 @@ declare global {
524
546
  * Perform the database updates that should occur as the result of a drag-left-drop operation.
525
547
  * @param event - The triggering canvas interaction event
526
548
  * @returns An array of database updates to perform for documents in this collection
549
+ * @remarks `| null` in the return because of the `Wall` override
527
550
  */
528
- _prepareDragLeftDropUpdates(
529
- event: PIXI.FederatedEvent,
530
- ): foundry.data.fields.SchemaField.InnerAssignmentType<D["schema"]["fields"]>[] | null;
551
+ protected _prepareDragLeftDropUpdates(event: PIXI.FederatedEvent): PlaceableObject.AnyDragLeftDropUpdate[] | null;
531
552
 
532
553
  /**
533
554
  * Callback actions which occur on a mouse-move operation.
534
- * @see MouseInteractionManager##handleDragCancel
555
+ * @see `MouseInteractionManager##handleDragCancel`
535
556
  * @param event - The triggering mouse click event
536
557
  */
537
558
  protected _onDragLeftCancel(event: PIXI.FederatedEvent): void;
538
559
 
539
560
  /**
540
561
  * Callback actions which occur on a right mouse-drag operation.
541
- * @see MouseInteractionManager##handleDragStart
562
+ * @see `MouseInteractionManager##handleDragStart`
542
563
  * @param event - The triggering mouse click event
543
564
  */
544
565
  protected _onDragRightStart(event: PIXI.FederatedEvent): void;
545
566
 
546
567
  /**
547
568
  * Callback actions which occur on a right mouse-drag operation.
548
- * @see MouseInteractionManager##handleDragMove
569
+ * @see `MouseInteractionManager##handleDragMove`
549
570
  * @param event - The triggering canvas interaction event
550
571
  */
551
572
  protected _onDragRightMove(event: PIXI.FederatedEvent): void;
552
573
 
553
574
  /**
554
575
  * Callback actions which occur on a right mouse-drag operation.
555
- * @see MouseInteractionManager##handleDragDrop
576
+ * @see `MouseInteractionManager##handleDragDrop`
556
577
  * @param event - The triggering canvas interaction event
557
578
  */
558
579
  protected _onDragRightDrop(event: PIXI.FederatedEvent): void;
559
580
 
560
581
  /**
561
582
  * Callback actions which occur on a right mouse-drag operation.
562
- * @see MouseInteractionManager##handleDragDrop
583
+ * @see `MouseInteractionManager##handleDragDrop`
563
584
  * @param event - The triggering mouse click event
564
585
  */
565
586
  protected _onDragRightCancel(event: PIXI.FederatedEvent): void;
566
587
 
567
588
  /**
568
589
  * Callback action which occurs on a long press.
569
- * @see MouseInteractionManager##handleLongPress
590
+ * @see `MouseInteractionManager##handleLongPress`
570
591
  * @param event - The triggering canvas interaction event
571
592
  * @param origin - The local canvas coordinates of the mousepress.
572
593
  */
@@ -574,21 +595,48 @@ declare global {
574
595
  }
575
596
 
576
597
  namespace PlaceableObject {
577
- type Any = PlaceableObject<any>;
598
+ interface Any extends AnyPlaceableObject {}
599
+ interface AnyConstructor extends Identity<typeof AnyPlaceableObject> {}
600
+
601
+ type AnyCanvasDocument = Scene.Embedded;
578
602
 
579
- type AnyConstructor = typeof AnyPlaceableObject;
603
+ type RenderFlags = RenderFlagsMixin.ToBooleanFlags<RENDER_FLAGS>;
580
604
 
581
- interface RenderFlags {
582
- redraw: boolean;
605
+ interface RENDER_FLAGS {
606
+ /** @defaultValue `{ propagate: ["refresh"] }` */
607
+ redraw: RenderFlag<this, "redraw">;
583
608
 
584
- refresh: boolean;
609
+ /** @defaultValue `{ propagate: ["refreshState"], alias: true }` */
610
+ refresh: RenderFlag<this, "refresh">;
585
611
 
586
- refreshState: boolean;
612
+ /** @defaultValue `{}` */
613
+ refreshState: RenderFlag<this, "refreshState">;
587
614
  }
588
615
 
616
+ // Note(LukeAbby): Switch back to `GetKeyWithShape` once `TilesLayer` etc. is assignable to `PlaceablesLayer.Any`.
617
+ // There's no clear reason why it isn't but it's breaking this type.
618
+ type Layer<CanvasDocument extends AnyCanvasDocument> = GetKey<
619
+ CanvasDocument,
620
+ "layer"
621
+ // PlaceablesLayer.Any
622
+ >;
623
+
624
+ type Sheet<CanvasDocument extends AnyCanvasDocument> = GetKey<
625
+ CanvasDocument,
626
+ "sheet"
627
+ // FormApplication.Any | ApplicationV2.Any | null
628
+ >;
629
+
630
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
631
+ interface DrawOptions {}
632
+
633
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
634
+ interface RefreshOptions {}
635
+
589
636
  interface ControlOptions {
590
637
  /**
591
638
  * Release any other controlled objects first
639
+ * @remarks Checked via `!== false`, so no nullish values allowed
592
640
  */
593
641
  releaseOthers?: boolean;
594
642
  }
@@ -597,35 +645,89 @@ declare global {
597
645
  * @privateRemarks `PlaceableObject#_onDelete` is the only place in foundry code that calls `PlaceableObject#release` with any options at all,
598
646
  * where it passes `{trigger: false}`. This is passed on to `PlaceableObject#_onRelease`, which does not check for any options, including trigger.
599
647
  * `Drawing`, `Region`, and `Token` extend `_onRelease` and pass the options back to `super`, but do no further checks.
648
+ *
649
+ * As it is completely unused and has been removed in v13, it is not included in this interface
600
650
  * */
601
- interface ReleaseOptions {
602
- trigger?: boolean;
603
- }
651
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
652
+ interface ReleaseOptions {}
604
653
 
605
- interface HoverInOptions {
654
+ /** @internal */
655
+ type __UpdateRotationOptions = NullishProps<{
656
+ /**
657
+ * An explicit angle, either this or delta must be provided
658
+ * @defaultValue `undefined`
659
+ * @remarks Checked before `delta`. If non-numeric, ignored in favour of `delta`.
660
+ */
661
+ angle: number;
662
+ }> &
663
+ InexactPartial<{
664
+ /**
665
+ * A relative angle delta, either this or the angle must be provided
666
+ * @defaultValue `0`
667
+ * @remarks Can't be `null` as it only has a parameter default.
668
+ *
669
+ * Only used if `angle` is non-numeric.
670
+ */
671
+ delta: number;
672
+
673
+ /**
674
+ * A precision (in degrees) to which the resulting angle should snap. Default is 0.
675
+ * @defaultValue `0`
676
+ * @remarks Can't be `null` as it only has a parameter default.
677
+ *
678
+ * @see {@link Number.toNearest | `Number#toNearest`}
679
+ */
680
+ snap: number;
681
+ }>;
682
+ interface UpdateRotationOptions extends __UpdateRotationOptions {}
683
+
684
+ /** @internal */
685
+ type _HoverInOptions = NullishProps<{
606
686
  /**
607
687
  * Trigger hover-out behavior on sibling objects
608
688
  * @defaultValue `false`
609
689
  */
610
690
  hoverOutOthers: boolean;
611
- }
612
- }
613
- }
691
+ }>;
614
692
 
615
- interface Vision {
616
- /**
617
- * @privateRemarks Documentation says PIXI.Circle, but determined by Atropos to be out of date.
618
- * Likely to be removed in future version as it's no longer used generally.
619
- */
620
- fov?: PIXI.Polygon | undefined;
693
+ interface HoverInOptions extends _HoverInOptions {}
621
694
 
622
- /**
623
- * @remarks
624
- * This is required but has been set to optional because of PointSource
625
- */
626
- los?: PointSourcePolygon | undefined;
695
+ /**
696
+ * @remarks {@link PlaceableObject.can | `PlaceableObject#can`} calls `#titleCase()` on this
697
+ * before prepending `"_can"`, rendering any actions with more than a single capital in their
698
+ * name (e.g `"DragLeftStart"`), including `"HUD"` (as there's no `PlaceableObject#_canHud()`),
699
+ * effectively inert, so they have been omitted here. This also means these are case
700
+ * -insensitive at runtime, but TS doesn't have a good way to type that. Allowing lowercase or
701
+ * title case is the best we can do.
702
+ *
703
+ * While in theory a custom action could be added through a custom `_can*` method method Atropos
704
+ * has indicated that this is not intended to be user-extensible.
705
+ */
706
+ type BaseAction = "configure" | "control" | "view" | "create" | "drag" | "hover" | "update" | "delete";
707
+
708
+ type Action = Titlecase<BaseAction> | BaseAction;
709
+
710
+ /** @remarks Foundry does some unsound subclassing around {@link PlaceableObject._prepareDragLeftDropUpdates | `PlaceableObject#_prepareDragLeftDropUpdates`} */
711
+ type AnyDragLeftDropUpdate = DragLeftDropUpdate | Token.DragLeftDropUpdate | Wall.DragLeftDropUpdate;
712
+
713
+ /**
714
+ * @remarks The type {@link PlaceableObject._prepareDragLeftDropUpdates | `PlaceableObject#_prepareDragLeftDropUpdates`}
715
+ * returns if not overridden by the specific placeable
716
+ */
717
+ interface DragLeftDropUpdate {
718
+ _id: string;
719
+ x: number;
720
+ y: number;
721
+
722
+ /**
723
+ * @remarks Possibly `undefined` as this is set to `clone.document.rotation` and not all canvas documents
724
+ * have a `rotation` field.
725
+ */
726
+ rotation: number | undefined;
727
+ }
728
+ }
627
729
  }
628
730
 
629
- declare abstract class AnyPlaceableObject extends PlaceableObject<any> {
630
- constructor(arg0: never, ...args: never[]);
731
+ declare abstract class AnyPlaceableObject extends PlaceableObject<PlaceableObject.AnyCanvasDocument> {
732
+ constructor(...args: never);
631
733
  }