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

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 +74 -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 +5 -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 +397 -61
  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 +21 -16
  110. package/src/foundry/client/data/abstract/client-document.d.mts +153 -183
  111. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +23 -39
  112. package/src/foundry/client/data/abstract/document-collection.d.mts +96 -68
  113. package/src/foundry/client/data/abstract/world-collection.d.mts +47 -55
  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 +81 -99
  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 +19 -7
  131. package/src/foundry/client/data/documents/active-effect.d.mts +677 -85
  132. package/src/foundry/client/data/documents/actor-delta.d.mts +670 -27
  133. package/src/foundry/client/data/documents/actor.d.mts +718 -64
  134. package/src/foundry/client/data/documents/adventure.d.mts +480 -46
  135. package/src/foundry/client/data/documents/ambient-light.d.mts +423 -19
  136. package/src/foundry/client/data/documents/ambient-sound.d.mts +473 -14
  137. package/src/foundry/client/data/documents/card.d.mts +567 -36
  138. package/src/foundry/client/data/documents/cards.d.mts +744 -87
  139. package/src/foundry/client/data/documents/chat-message.d.mts +574 -42
  140. package/src/foundry/client/data/documents/combat.d.mts +699 -69
  141. package/src/foundry/client/data/documents/combatant.d.mts +504 -24
  142. package/src/foundry/client/data/documents/drawing.d.mts +540 -14
  143. package/src/foundry/client/data/documents/fog-exploration.d.mts +416 -21
  144. package/src/foundry/client/data/documents/folder.d.mts +468 -35
  145. package/src/foundry/client/data/documents/index.d.mts +2 -0
  146. package/src/foundry/client/data/documents/item.d.mts +677 -20
  147. package/src/foundry/client/data/documents/journal-entry-page.d.mts +585 -19
  148. package/src/foundry/client/data/documents/journal-entry.d.mts +619 -18
  149. package/src/foundry/client/data/documents/macro.d.mts +528 -25
  150. package/src/foundry/client/data/documents/measured-template.d.mts +478 -14
  151. package/src/foundry/client/data/documents/note.d.mts +491 -15
  152. package/src/foundry/client/data/documents/playlist-sound.d.mts +426 -24
  153. package/src/foundry/client/data/documents/playlist.d.mts +665 -74
  154. package/src/foundry/client/data/documents/region-behavior.d.mts +507 -0
  155. package/src/foundry/client/data/documents/region.d.mts +784 -0
  156. package/src/foundry/client/data/documents/scene.d.mts +983 -147
  157. package/src/foundry/client/data/documents/setting.d.mts +395 -13
  158. package/src/foundry/client/data/documents/table-result.d.mts +476 -14
  159. package/src/foundry/client/data/documents/table.d.mts +661 -78
  160. package/src/foundry/client/data/documents/tile.d.mts +499 -14
  161. package/src/foundry/client/data/documents/token.d.mts +1111 -94
  162. package/src/foundry/client/data/documents/user.d.mts +493 -25
  163. package/src/foundry/client/data/documents/wall.d.mts +548 -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 +257 -237
  167. package/src/foundry/client/pixi/board.d.mts +106 -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 +76 -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 +238 -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 +199 -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 +36 -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 +141 -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 +57 -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 +115 -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 +132 -154
  446. package/src/foundry/common/abstract/document.d.mts +1306 -438
  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 +58 -55
  453. package/src/foundry/common/config.d.mts +5 -3
  454. package/src/foundry/common/constants.d.mts +261 -231
  455. package/src/foundry/common/data/data.d.mts +200 -94
  456. package/src/foundry/common/data/fields.d.mts +700 -644
  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 -50
  461. package/src/foundry/common/documents/active-effect.d.mts +280 -179
  462. package/src/foundry/common/documents/actor-delta.d.mts +318 -69
  463. package/src/foundry/common/documents/actor.d.mts +305 -117
  464. package/src/foundry/common/documents/adventure.d.mts +266 -141
  465. package/src/foundry/common/documents/ambient-light.d.mts +268 -75
  466. package/src/foundry/common/documents/ambient-sound.d.mts +268 -109
  467. package/src/foundry/common/documents/card.d.mts +267 -174
  468. package/src/foundry/common/documents/cards.d.mts +299 -126
  469. package/src/foundry/common/documents/chat-message.d.mts +276 -158
  470. package/src/foundry/common/documents/combat.d.mts +300 -89
  471. package/src/foundry/common/documents/combatant.d.mts +275 -88
  472. package/src/foundry/common/documents/drawing.d.mts +286 -206
  473. package/src/foundry/common/documents/fog-exploration.d.mts +258 -70
  474. package/src/foundry/common/documents/folder.d.mts +252 -81
  475. package/src/foundry/common/documents/item.d.mts +305 -99
  476. package/src/foundry/common/documents/journal-entry-page.d.mts +279 -189
  477. package/src/foundry/common/documents/journal-entry.d.mts +294 -68
  478. package/src/foundry/common/documents/macro.d.mts +254 -132
  479. package/src/foundry/common/documents/measured-template.d.mts +293 -139
  480. package/src/foundry/common/documents/note.d.mts +274 -149
  481. package/src/foundry/common/documents/playlist-sound.d.mts +260 -94
  482. package/src/foundry/common/documents/playlist.d.mts +279 -120
  483. package/src/foundry/common/documents/region-behavior.d.mts +329 -0
  484. package/src/foundry/common/documents/region.d.mts +327 -0
  485. package/src/foundry/common/documents/roll-table.d.mts +286 -102
  486. package/src/foundry/common/documents/scene.d.mts +276 -336
  487. package/src/foundry/common/documents/setting.d.mts +229 -54
  488. package/src/foundry/common/documents/table-result.d.mts +267 -94
  489. package/src/foundry/common/documents/tile.d.mts +301 -170
  490. package/src/foundry/common/documents/token.d.mts +351 -445
  491. package/src/foundry/common/documents/user.d.mts +256 -144
  492. package/src/foundry/common/documents/wall.d.mts +273 -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 +23 -21
  500. package/src/foundry/common/packages/base-system.d.mts +6 -63
  501. package/src/foundry/common/packages/base-world.d.mts +8 -61
  502. package/src/foundry/common/packages/module.d.mts +7 -7
  503. package/src/foundry/common/packages/sub-types.d.mts +2 -2
  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 +20 -312
  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 "fvtt-types/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
 
@@ -227,25 +253,24 @@ declare global {
227
253
  * Register pending canvas operations which should occur after a new PlaceableObject of this type is created
228
254
  */
229
255
  protected _onCreate(
230
- data: foundry.data.fields.SchemaField.InnerAssignmentType<D["schema"]["fields"]>,
231
- options: Document.OnCreateOptions<D["documentName"]>,
256
+ data: foundry.data.fields.SchemaField.CreateData<CanvasDocument["schema"]["fields"]>,
257
+ options: Document.Database.CreateOptions<DatabaseCreateOperation>,
232
258
  userId: string,
233
259
  ): void;
234
260
 
235
261
  /**
236
262
  * 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
263
  */
239
264
  protected _onUpdate(
240
- changed: foundry.data.fields.SchemaField.InnerAssignmentType<D["schema"]["fields"]>,
241
- options?: Document.OnUpdateOptions<D["documentName"]>,
242
- userId?: string,
265
+ changed: foundry.data.fields.SchemaField.UpdateData<CanvasDocument["schema"]["fields"]>,
266
+ options: Document.Database.UpdateOptions<DatabaseUpdateOperation>,
267
+ userId: string,
243
268
  ): void;
244
269
 
245
270
  /**
246
271
  * Define additional steps taken when an existing placeable object of this type is deleted
247
272
  */
248
- protected _onDelete(options: Document.OnDeleteOptions<D["documentName"]>, userId: string): void;
273
+ protected _onDelete(options: Document.Database.DeleteOptions<DatabaseDeleteOperation>, userId: string): void;
249
274
 
250
275
  /**
251
276
  * Assume control over a PlaceableObject, flagging it as controlled and enabling downstream behaviors
@@ -253,13 +278,15 @@ declare global {
253
278
  * (default: `{}`)
254
279
  * @returns A flag denoting whether control was successful
255
280
  */
281
+ // options: not null (property access with only a parameter default)
256
282
  control(options?: PlaceableObject.ControlOptions): boolean;
257
283
 
258
284
  /**
259
285
  * Additional events which trigger once control of the object is established
260
286
  * @param options - Optional parameters which apply for specific implementations
287
+ * @remarks The options passed to {@link PlaceableObject.control | `PlaceableObject#control`} get forwarded here
261
288
  */
262
- protected _onControl(options?: PlaceableObject.ControlOptions): void;
289
+ protected _onControl(options: PlaceableObject.ControlOptions): void;
263
290
 
264
291
  /**
265
292
  * Release control over a PlaceableObject, removing it from the controlled set
@@ -267,13 +294,15 @@ declare global {
267
294
  * (default: `{}`)
268
295
  * @returns A Boolean flag confirming the object was released.
269
296
  */
270
- release(options?: PlaceableObject.ReleaseOptions): boolean;
297
+ // options: not null (parameter default only, forwarded to `_onRelease`)
298
+ release(options?: HandleEmptyObject<PlaceableObject.ReleaseOptions>): boolean;
271
299
 
272
300
  /**
273
301
  * Additional events which trigger once control of the object is released
274
302
  * @param options - Options which modify the releasing workflow
303
+ * @remarks The options passed to {@link PlaceableObject.release | `PlaceableObject#release`} get forwarded here
275
304
  */
276
- protected _onRelease(options?: PlaceableObject.ReleaseOptions): void;
305
+ protected _onRelease(options: HandleEmptyObject<PlaceableObject.ReleaseOptions>): void;
277
306
 
278
307
  /**
279
308
  * Clone the placeable object, returning a new object with identical attributes.
@@ -281,7 +310,7 @@ declare global {
281
310
  * If you plan to use it permanently you should call the create method.
282
311
  * @returns A new object with identical data
283
312
  */
284
- clone(): PlaceableObject;
313
+ clone(): this;
285
314
 
286
315
  /**
287
316
  * Rotate the PlaceableObject to a certain angle of facing
@@ -289,48 +318,24 @@ declare global {
289
318
  * @param snap - Snap the angle of rotation to a certain target degree increment
290
319
  * @returns A Promise which resolves once the rotation has completed
291
320
  */
292
- rotate(angle: number, snap: number): Promise<this>;
321
+ // snap: not null (forwarded to _updateRotation with only a parameter default)
322
+ rotate(angle: number, snap?: number): Promise<this>;
293
323
 
294
324
  /**
295
325
  * Determine a new angle of rotation for a PlaceableObject either from an explicit angle or from a delta offset.
296
326
  * @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
327
  * @returns The new rotation angle for the object
304
328
  */
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;
329
+ // options: not null (destructured)
330
+ protected _updateRotation(options?: PlaceableObject.UpdateRotationOptions): number;
328
331
 
329
332
  /**
330
333
  * Obtain a shifted position for the Placeable Object
331
334
  * @param dx - The number of grid units to shift along the X-axis
332
335
  * @param dy - The number of grid units to shift along the Y-axis
333
336
  * @returns The shifted target coordinates
337
+ * @remarks Despite the parameter descriptions saying 'number of grid units', they're only checked for sign.
338
+ * @privateRemarks Foundry types this correctly, but describes it wrong, logged
334
339
  */
335
340
  protected _getShiftedPosition(dx: -1 | 0 | 1, dy: -1 | 0 | 1): Canvas.Point;
336
341
 
@@ -349,11 +354,9 @@ declare global {
349
354
  * @param user - The User performing the action
350
355
  * @param action - The named action being attempted
351
356
  * @returns Does the User have rights to perform the action?
357
+ * @see {@link PlaceableObject.Action | `PlaceableObject.Action`}
352
358
  */
353
- can(
354
- user: User.ConfiguredInstance,
355
- action: "HUD" | "configure" | "control" | "view" | "create" | "drag" | "hover" | "update" | "delete" | string,
356
- ): boolean;
359
+ can(user: User.Implementation, action: PlaceableObject.Action): boolean;
357
360
 
358
361
  /**
359
362
  * Can the User access the HUD for this Placeable Object?
@@ -361,7 +364,7 @@ declare global {
361
364
  * @param event - The event object.
362
365
  * @returns The returned status.
363
366
  */
364
- protected _canHUD(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
367
+ protected _canHUD(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
365
368
 
366
369
  /**
367
370
  * Does the User have permission to configure the Placeable Object?
@@ -369,7 +372,7 @@ declare global {
369
372
  * @param event - The event object.
370
373
  * @returns The returned status.
371
374
  */
372
- protected _canConfigure(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
375
+ protected _canConfigure(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
373
376
 
374
377
  /**
375
378
  * Does the User have permission to control the Placeable Object?
@@ -377,7 +380,7 @@ declare global {
377
380
  * @param event - The event object.
378
381
  * @returns The returned status.
379
382
  */
380
- protected _canControl(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
383
+ protected _canControl(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
381
384
 
382
385
  /**
383
386
  * Does the User have permission to view details of the Placeable Object?
@@ -385,7 +388,7 @@ declare global {
385
388
  * @param event - The event object.
386
389
  * @returns The returned status.
387
390
  */
388
- protected _canView(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
391
+ protected _canView(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
389
392
 
390
393
  /**
391
394
  * Does the User have permission to create the underlying Document?
@@ -393,7 +396,7 @@ declare global {
393
396
  * @param event - The event object.
394
397
  * @returns The returned status.
395
398
  */
396
- protected _canCreate(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
399
+ protected _canCreate(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
397
400
 
398
401
  /**
399
402
  * Does the User have permission to drag this Placeable Object?
@@ -401,7 +404,7 @@ declare global {
401
404
  * @param event - The event object.
402
405
  * @returns The returned status.
403
406
  */
404
- protected _canDrag(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
407
+ protected _canDrag(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
405
408
 
406
409
  /**
407
410
  * Does the User have permission to left-click drag this Placeable Object?
@@ -409,7 +412,7 @@ declare global {
409
412
  * @param event - The event object.
410
413
  * @returns The returned status
411
414
  */
412
- protected _canDragLeftStart(user: User.ConfiguredInstance, event: DragEvent): boolean;
415
+ protected _canDragLeftStart(user: User.Implementation, event: DragEvent): boolean;
413
416
 
414
417
  /**
415
418
  * Does the User have permission to hover on this Placeable Object?
@@ -417,7 +420,7 @@ declare global {
417
420
  * @param event - The event object.
418
421
  * @returns The returned status.
419
422
  */
420
- protected _canHover(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
423
+ protected _canHover(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
421
424
 
422
425
  /**
423
426
  * Does the User have permission to update the underlying Document?
@@ -425,7 +428,7 @@ declare global {
425
428
  * @param event - The event object.
426
429
  * @returns The returned status.
427
430
  */
428
- protected _canUpdate(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
431
+ protected _canUpdate(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
429
432
 
430
433
  /**
431
434
  * Does the User have permission to delete the underlying Document?
@@ -433,63 +436,81 @@ declare global {
433
436
  * @param event - The event object.
434
437
  * @returns The returned status.
435
438
  */
436
- protected _canDelete(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
439
+ protected _canDelete(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
437
440
 
438
441
  /**
439
442
  * Actions that should be taken for this Placeable Object when a mouseover event occurs.
440
443
  * Hover events on PlaceableObject instances allow event propagation by default.
441
- * @see MouseInteractionManager##handlePointerOver
444
+ * @see `MouseInteractionManager##handlePointerOver`
442
445
  * @param event - The triggering canvas interaction event
443
446
  * @param options - Options which customize event handling
444
- * (default: `{}`)
447
+ * @remarks {@link Wall._onHoverIn | `Wall#_onHoverIn`} can return `false`, otherwise this is always `void`
445
448
  */
449
+ // options: not null (destructured)
446
450
  protected _onHoverIn(event: PIXI.FederatedEvent, options?: PlaceableObject.HoverInOptions): false | void;
447
451
 
448
452
  /**
449
453
  * Actions that should be taken for this Placeable Object when a mouseout event occurs
450
- * @see MouseInteractionManager##handlePointerOut
454
+ * @see `MouseInteractionManager##handlePointerOut`
451
455
  * @param event - The triggering canvas interaction event
452
- * @returns True if the event was handled, otherwise false
453
456
  */
454
- protected _onHoverOut(event: PIXI.FederatedEvent): boolean | void;
457
+ protected _onHoverOut(event: PIXI.FederatedEvent): void;
455
458
 
456
459
  /**
457
460
  * Should the placeable propagate left click downstream?
458
- * @defaultValue `false`
461
+ * @remarks Unconditionally returns `false` in `PlaceableObject`
459
462
  */
460
- protected _propagateLeftClick(event: PIXI.FederatedEvent): boolean;
463
+ protected _propagateLeftClick(_event: PIXI.FederatedEvent): boolean;
461
464
 
462
465
  /**
463
466
  * Callback actions which occur on a single left-click event to assume control of the object
464
- * @see MouseInteractionManager##handleClickLeft
467
+ * @see `MouseInteractionManager##handleClickLeft`
465
468
  * @param event - The triggering canvas interaction event
466
469
  */
467
470
  protected _onClickLeft(event: PIXI.FederatedEvent): void;
468
471
 
472
+ /**
473
+ * Callback actions which occur on a single left-unclick event to assume control of the object
474
+ * @param event - The triggering canvas interaction event
475
+ */
476
+ protected _onUnclickLeft(event: PIXI.FederatedEvent): void;
477
+
469
478
  /**
470
479
  * Callback actions which occur on a double left-click event to activate
471
- * @see MouseInteractionManager##handleClickLeft2
480
+ * @see `MouseInteractionManager##handleClickLeft2`
472
481
  * @param event - The triggering canvas interaction event
473
482
  */
474
483
  protected _onClickLeft2(event: PIXI.FederatedEvent): void;
475
484
 
485
+ /**
486
+ * Should the placeable propagate right click downstream?
487
+ * @remarks Unconditionally returns `false` in `PlaceableObject`
488
+ */
489
+ protected _propagateRightClick(_event: PIXI.FederatedEvent): boolean;
490
+
476
491
  /**
477
492
  * Callback actions which occur on a single right-click event to configure properties of the object
478
- * @see MouseInteractionManager##handleClickRight
493
+ * @see `MouseInteractionManager##handleClickRight`
479
494
  * @param event - The triggering canvas interaction event
480
495
  */
481
496
  protected _onClickRight(event: PIXI.FederatedEvent): void;
482
497
 
498
+ /**
499
+ * Callback actions which occur on a single right-unclick event
500
+ * @param event - The triggering canvas interaction event
501
+ */
502
+ protected _onUnclickRight(event: PIXI.FederatedEvent): void;
503
+
483
504
  /**
484
505
  * Callback actions which occur on a double right-click event to configure properties of the object
485
- * @see MouseInteractionManager##handleClickRight2
506
+ * @see `MouseInteractionManager##handleClickRight2`
486
507
  * @param event - The triggering canvas interaction event
487
508
  */
488
509
  protected _onClickRight2(event: PIXI.FederatedEvent): void;
489
510
 
490
511
  /**
491
512
  * Callback actions which occur when a mouse-drag action is first begun.
492
- * @see MouseInteractionManager##handleDragStart
513
+ * @see `MouseInteractionManager##handleDragStart`
493
514
  * @param event - The triggering canvas interaction event
494
515
  */
495
516
  protected _onDragLeftStart(event: PIXI.FederatedEvent): void;
@@ -508,14 +529,14 @@ declare global {
508
529
 
509
530
  /**
510
531
  * Callback actions which occur on a mouse-move operation.
511
- * @see MouseInteractionManager##handleDragMove
532
+ * @see `MouseInteractionManager##handleDragMove`
512
533
  * @param event - The triggering canvas interaction event
513
534
  */
514
535
  protected _onDragLeftMove(event: PIXI.FederatedEvent): void;
515
536
 
516
537
  /**
517
538
  * Callback actions which occur on a mouse-move operation.
518
- * @see MouseInteractionManager##handleDragDrop
539
+ * @see `MouseInteractionManager##handleDragDrop`
519
540
  * @param event - The triggering canvas interaction event
520
541
  */
521
542
  protected _onDragLeftDrop(event: PIXI.FederatedEvent): void;
@@ -524,49 +545,48 @@ declare global {
524
545
  * Perform the database updates that should occur as the result of a drag-left-drop operation.
525
546
  * @param event - The triggering canvas interaction event
526
547
  * @returns An array of database updates to perform for documents in this collection
548
+ * @remarks `| null` in the return because of the `Wall` override
527
549
  */
528
- _prepareDragLeftDropUpdates(
529
- event: PIXI.FederatedEvent,
530
- ): foundry.data.fields.SchemaField.InnerAssignmentType<D["schema"]["fields"]>[] | null;
550
+ protected _prepareDragLeftDropUpdates(event: PIXI.FederatedEvent): PlaceableObject.AnyDragLeftDropUpdate[] | null;
531
551
 
532
552
  /**
533
553
  * Callback actions which occur on a mouse-move operation.
534
- * @see MouseInteractionManager##handleDragCancel
554
+ * @see `MouseInteractionManager##handleDragCancel`
535
555
  * @param event - The triggering mouse click event
536
556
  */
537
557
  protected _onDragLeftCancel(event: PIXI.FederatedEvent): void;
538
558
 
539
559
  /**
540
560
  * Callback actions which occur on a right mouse-drag operation.
541
- * @see MouseInteractionManager##handleDragStart
561
+ * @see `MouseInteractionManager##handleDragStart`
542
562
  * @param event - The triggering mouse click event
543
563
  */
544
564
  protected _onDragRightStart(event: PIXI.FederatedEvent): void;
545
565
 
546
566
  /**
547
567
  * Callback actions which occur on a right mouse-drag operation.
548
- * @see MouseInteractionManager##handleDragMove
568
+ * @see `MouseInteractionManager##handleDragMove`
549
569
  * @param event - The triggering canvas interaction event
550
570
  */
551
571
  protected _onDragRightMove(event: PIXI.FederatedEvent): void;
552
572
 
553
573
  /**
554
574
  * Callback actions which occur on a right mouse-drag operation.
555
- * @see MouseInteractionManager##handleDragDrop
575
+ * @see `MouseInteractionManager##handleDragDrop`
556
576
  * @param event - The triggering canvas interaction event
557
577
  */
558
578
  protected _onDragRightDrop(event: PIXI.FederatedEvent): void;
559
579
 
560
580
  /**
561
581
  * Callback actions which occur on a right mouse-drag operation.
562
- * @see MouseInteractionManager##handleDragDrop
582
+ * @see `MouseInteractionManager##handleDragDrop`
563
583
  * @param event - The triggering mouse click event
564
584
  */
565
585
  protected _onDragRightCancel(event: PIXI.FederatedEvent): void;
566
586
 
567
587
  /**
568
588
  * Callback action which occurs on a long press.
569
- * @see MouseInteractionManager##handleLongPress
589
+ * @see `MouseInteractionManager##handleLongPress`
570
590
  * @param event - The triggering canvas interaction event
571
591
  * @param origin - The local canvas coordinates of the mousepress.
572
592
  */
@@ -574,21 +594,48 @@ declare global {
574
594
  }
575
595
 
576
596
  namespace PlaceableObject {
577
- type Any = PlaceableObject<any>;
597
+ interface Any extends AnyPlaceableObject {}
598
+ interface AnyConstructor extends Identity<typeof AnyPlaceableObject> {}
599
+
600
+ type AnyCanvasDocument = Scene.Embedded;
578
601
 
579
- type AnyConstructor = typeof AnyPlaceableObject;
602
+ type RenderFlags = RenderFlagsMixin.ToBooleanFlags<RENDER_FLAGS>;
580
603
 
581
- interface RenderFlags {
582
- redraw: boolean;
604
+ interface RENDER_FLAGS {
605
+ /** @defaultValue `{ propagate: ["refresh"] }` */
606
+ redraw: RenderFlag<this, "redraw">;
583
607
 
584
- refresh: boolean;
608
+ /** @defaultValue `{ propagate: ["refreshState"], alias: true }` */
609
+ refresh: RenderFlag<this, "refresh">;
585
610
 
586
- refreshState: boolean;
611
+ /** @defaultValue `{}` */
612
+ refreshState: RenderFlag<this, "refreshState">;
587
613
  }
588
614
 
615
+ // Note(LukeAbby): Switch back to `GetKeyWithShape` once `TilesLayer` etc. is assignable to `PlaceablesLayer.Any`.
616
+ // There's no clear reason why it isn't but it's breaking this type.
617
+ type Layer<CanvasDocument extends AnyCanvasDocument> = GetKey<
618
+ CanvasDocument,
619
+ "layer"
620
+ // PlaceablesLayer.Any
621
+ >;
622
+
623
+ type Sheet<CanvasDocument extends AnyCanvasDocument> = GetKey<
624
+ CanvasDocument,
625
+ "sheet"
626
+ // FormApplication.Any | ApplicationV2.Any | null
627
+ >;
628
+
629
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
630
+ interface DrawOptions {}
631
+
632
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
633
+ interface RefreshOptions {}
634
+
589
635
  interface ControlOptions {
590
636
  /**
591
637
  * Release any other controlled objects first
638
+ * @remarks Checked via `!== false`, so no nullish values allowed
592
639
  */
593
640
  releaseOthers?: boolean;
594
641
  }
@@ -597,35 +644,89 @@ declare global {
597
644
  * @privateRemarks `PlaceableObject#_onDelete` is the only place in foundry code that calls `PlaceableObject#release` with any options at all,
598
645
  * where it passes `{trigger: false}`. This is passed on to `PlaceableObject#_onRelease`, which does not check for any options, including trigger.
599
646
  * `Drawing`, `Region`, and `Token` extend `_onRelease` and pass the options back to `super`, but do no further checks.
647
+ *
648
+ * As it is completely unused and has been removed in v13, it is not included in this interface
600
649
  * */
601
- interface ReleaseOptions {
602
- trigger?: boolean;
603
- }
650
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
651
+ interface ReleaseOptions {}
604
652
 
605
- interface HoverInOptions {
653
+ /** @internal */
654
+ type __UpdateRotationOptions = NullishProps<{
655
+ /**
656
+ * An explicit angle, either this or delta must be provided
657
+ * @defaultValue `undefined`
658
+ * @remarks Checked before `delta`. If non-numeric, ignored in favour of `delta`.
659
+ */
660
+ angle: number;
661
+ }> &
662
+ InexactPartial<{
663
+ /**
664
+ * A relative angle delta, either this or the angle must be provided
665
+ * @defaultValue `0`
666
+ * @remarks Can't be `null` as it only has a parameter default.
667
+ *
668
+ * Only used if `angle` is non-numeric.
669
+ */
670
+ delta: number;
671
+
672
+ /**
673
+ * A precision (in degrees) to which the resulting angle should snap. Default is 0.
674
+ * @defaultValue `0`
675
+ * @remarks Can't be `null` as it only has a parameter default.
676
+ *
677
+ * @see {@link Number.toNearest | `Number#toNearest`}
678
+ */
679
+ snap: number;
680
+ }>;
681
+ interface UpdateRotationOptions extends __UpdateRotationOptions {}
682
+
683
+ /** @internal */
684
+ type _HoverInOptions = NullishProps<{
606
685
  /**
607
686
  * Trigger hover-out behavior on sibling objects
608
687
  * @defaultValue `false`
609
688
  */
610
689
  hoverOutOthers: boolean;
611
- }
612
- }
613
- }
690
+ }>;
614
691
 
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;
692
+ interface HoverInOptions extends _HoverInOptions {}
621
693
 
622
- /**
623
- * @remarks
624
- * This is required but has been set to optional because of PointSource
625
- */
626
- los?: PointSourcePolygon | undefined;
694
+ /**
695
+ * @remarks {@link PlaceableObject.can | `PlaceableObject#can`} calls `#titleCase()` on this
696
+ * before prepending `"_can"`, rendering any actions with more than a single capital in their
697
+ * name (e.g `"DragLeftStart"`), including `"HUD"` (as there's no `PlaceableObject#_canHud()`),
698
+ * effectively inert, so they have been omitted here. This also means these are case
699
+ * -insensitive at runtime, but TS doesn't have a good way to type that. Allowing lowercase or
700
+ * title case is the best we can do.
701
+ *
702
+ * While in theory a custom action could be added through a custom `_can*` method method Atropos
703
+ * has indicated that this is not intended to be user-extensible.
704
+ */
705
+ type BaseAction = "configure" | "control" | "view" | "create" | "drag" | "hover" | "update" | "delete";
706
+
707
+ type Action = Titlecase<BaseAction> | BaseAction;
708
+
709
+ /** @remarks Foundry does some unsound subclassing around {@link PlaceableObject._prepareDragLeftDropUpdates | `PlaceableObject#_prepareDragLeftDropUpdates`} */
710
+ type AnyDragLeftDropUpdate = DragLeftDropUpdate | Token.DragLeftDropUpdate | Wall.DragLeftDropUpdate;
711
+
712
+ /**
713
+ * @remarks The type {@link PlaceableObject._prepareDragLeftDropUpdates | `PlaceableObject#_prepareDragLeftDropUpdates`}
714
+ * returns if not overridden by the specific placeable
715
+ */
716
+ interface DragLeftDropUpdate {
717
+ _id: string;
718
+ x: number;
719
+ y: number;
720
+
721
+ /**
722
+ * @remarks Possibly `undefined` as this is set to `clone.document.rotation` and not all canvas documents
723
+ * have a `rotation` field.
724
+ */
725
+ rotation: number | undefined;
726
+ }
727
+ }
627
728
  }
628
729
 
629
- declare abstract class AnyPlaceableObject extends PlaceableObject<any> {
630
- constructor(arg0: never, ...args: never[]);
730
+ declare abstract class AnyPlaceableObject extends PlaceableObject<PlaceableObject.AnyCanvasDocument> {
731
+ constructor(...args: never);
631
732
  }