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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) hide show
  1. package/README.md +6 -3
  2. package/package.json +40 -18
  3. package/src/configuration/configuration.d.mts +24 -23
  4. package/src/configuration/documents.d.mts +295 -0
  5. package/src/configuration/globals.d.mts +8 -2
  6. package/src/configuration/index.d.mts +1 -0
  7. package/src/foundry/client/apps/app.d.mts +121 -119
  8. package/src/foundry/client/apps/av/av-config.d.mts +13 -8
  9. package/src/foundry/client/apps/av/cameras.d.mts +11 -11
  10. package/src/foundry/client/apps/dice/dice-config.d.mts +22 -8
  11. package/src/foundry/client/apps/form.d.mts +112 -94
  12. package/src/foundry/client/apps/forms/actor.d.mts +22 -12
  13. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +13 -8
  14. package/src/foundry/client/apps/forms/adventure-importer.d.mts +15 -7
  15. package/src/foundry/client/apps/forms/base-sheet.d.mts +14 -7
  16. package/src/foundry/client/apps/forms/card-config.d.mts +17 -9
  17. package/src/foundry/client/apps/forms/cards-config.d.mts +13 -14
  18. package/src/foundry/client/apps/forms/combat-config.d.mts +7 -7
  19. package/src/foundry/client/apps/forms/combatant-config.d.mts +4 -4
  20. package/src/foundry/client/apps/forms/default-sheets-config.d.mts +1 -1
  21. package/src/foundry/client/apps/forms/effect-config.d.mts +6 -6
  22. package/src/foundry/client/apps/forms/folder-config.d.mts +5 -5
  23. package/src/foundry/client/apps/forms/fonts.d.mts +42 -35
  24. package/src/foundry/client/apps/forms/grid-config.d.mts +11 -11
  25. package/src/foundry/client/apps/forms/image-popout.d.mts +28 -22
  26. package/src/foundry/client/apps/forms/item.d.mts +6 -6
  27. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +17 -15
  28. package/src/foundry/client/apps/forms/journal-sheet.d.mts +46 -37
  29. package/src/foundry/client/apps/forms/macro-config.d.mts +6 -6
  30. package/src/foundry/client/apps/forms/measure-template.d.mts +8 -8
  31. package/src/foundry/client/apps/forms/ownership.d.mts +5 -5
  32. package/src/foundry/client/apps/forms/playlist-config.d.mts +7 -9
  33. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +6 -6
  34. package/src/foundry/client/apps/forms/roll-table-config.d.mts +9 -10
  35. package/src/foundry/client/apps/forms/scene-config.d.mts +39 -39
  36. package/src/foundry/client/apps/forms/sheet-config.d.mts +8 -8
  37. package/src/foundry/client/apps/forms/user-config.d.mts +11 -11
  38. package/src/foundry/client/apps/hud/chatbubble.d.mts +14 -9
  39. package/src/foundry/client/apps/hud/container.d.mts +3 -3
  40. package/src/foundry/client/apps/hud/controls.d.mts +124 -84
  41. package/src/foundry/client/apps/hud/hotbar.d.mts +12 -12
  42. package/src/foundry/client/apps/hud/hud.d.mts +4 -4
  43. package/src/foundry/client/apps/hud/menu.d.mts +6 -6
  44. package/src/foundry/client/apps/hud/navigation.d.mts +11 -11
  45. package/src/foundry/client/apps/hud/pause.d.mts +7 -7
  46. package/src/foundry/client/apps/hud/players.d.mts +11 -11
  47. package/src/foundry/client/apps/i18n.d.mts +31 -27
  48. package/src/foundry/client/apps/placeables/drawing-config.d.mts +41 -33
  49. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +4 -4
  50. package/src/foundry/client/apps/placeables/index.d.mts +0 -2
  51. package/src/foundry/client/apps/placeables/note-config.d.mts +27 -17
  52. package/src/foundry/client/apps/placeables/tile-config.d.mts +23 -10
  53. package/src/foundry/client/apps/placeables/tile-hud.d.mts +8 -8
  54. package/src/foundry/client/apps/placeables/token-config.d.mts +84 -63
  55. package/src/foundry/client/apps/placeables/token-hud.d.mts +10 -10
  56. package/src/foundry/client/apps/placeables/wall-config.d.mts +19 -16
  57. package/src/foundry/client/apps/sidebar/apps/chat-popout.d.mts +5 -5
  58. package/src/foundry/client/apps/sidebar/apps/client-settings.d.mts +2 -2
  59. package/src/foundry/client/apps/sidebar/apps/compendium.d.mts +13 -10
  60. package/src/foundry/client/apps/sidebar/apps/invitation-links.d.mts +3 -3
  61. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +1 -1
  62. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +6 -6
  63. package/src/foundry/client/apps/sidebar/apps/permission-config.d.mts +6 -6
  64. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +33 -28
  65. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +1 -1
  66. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +12 -9
  67. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +40 -32
  68. package/src/foundry/client/apps/sidebar/document-directory.d.mts +44 -37
  69. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +3 -3
  70. package/src/foundry/client/apps/sidebar/sidebar-tab.d.mts +3 -3
  71. package/src/foundry/client/apps/sidebar/sidebar.d.mts +7 -7
  72. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +4 -4
  73. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +4 -4
  74. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +34 -29
  75. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +15 -15
  76. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +21 -12
  77. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +4 -4
  78. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +4 -4
  79. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +8 -8
  80. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +21 -21
  81. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +4 -4
  82. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +6 -6
  83. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +12 -12
  84. package/src/foundry/client/apps/templates.d.mts +2 -2
  85. package/src/foundry/client/av/clients/simplepeer.d.mts +4 -4
  86. package/src/foundry/client/av/settings.d.mts +16 -13
  87. package/src/foundry/client/config.d.mts +1982 -1823
  88. package/src/foundry/client/core/document-index.d.mts +12 -4
  89. package/src/foundry/client/core/hooks.d.mts +0 -2
  90. package/src/foundry/client/core/image.d.mts +13 -11
  91. package/src/foundry/client/core/issues.d.mts +11 -6
  92. package/src/foundry/client/core/keybindings.d.mts +3 -3
  93. package/src/foundry/client/core/nue.d.mts +1 -1
  94. package/src/foundry/client/core/packages.d.mts +393 -63
  95. package/src/foundry/client/core/settings.d.mts +34 -12
  96. package/src/foundry/client/core/socket.d.mts +2 -2
  97. package/src/foundry/client/core/sorting.d.mts +6 -6
  98. package/src/foundry/client/core/time.d.mts +6 -3
  99. package/src/foundry/client/core/tooltip.d.mts +1 -1
  100. package/src/foundry/client/core/tour.d.mts +58 -49
  101. package/src/foundry/client/core/tours.d.mts +1 -1
  102. package/src/foundry/client/core/utils.d.mts +3 -3
  103. package/src/foundry/client/core/workers.d.mts +24 -17
  104. package/src/foundry/client/data/abstract/canvas-document.d.mts +9 -15
  105. package/src/foundry/client/data/abstract/client-document.d.mts +133 -172
  106. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +14 -36
  107. package/src/foundry/client/data/abstract/document-collection.d.mts +89 -65
  108. package/src/foundry/client/data/abstract/world-collection.d.mts +47 -53
  109. package/src/foundry/client/data/collections/actors.d.mts +24 -31
  110. package/src/foundry/client/data/collections/cards.d.mts +10 -6
  111. package/src/foundry/client/data/collections/combats.d.mts +12 -8
  112. package/src/foundry/client/data/collections/compendium-collection.d.mts +79 -66
  113. package/src/foundry/client/data/collections/compendium-folders.d.mts +6 -6
  114. package/src/foundry/client/data/collections/compendium-packs.d.mts +4 -4
  115. package/src/foundry/client/data/collections/fog.d.mts +10 -6
  116. package/src/foundry/client/data/collections/folder.d.mts +15 -10
  117. package/src/foundry/client/data/collections/items.d.mts +11 -7
  118. package/src/foundry/client/data/collections/journal.d.mts +16 -10
  119. package/src/foundry/client/data/collections/macros.d.mts +15 -22
  120. package/src/foundry/client/data/collections/messages.d.mts +14 -10
  121. package/src/foundry/client/data/collections/playlists.d.mts +12 -9
  122. package/src/foundry/client/data/collections/scenes.d.mts +19 -31
  123. package/src/foundry/client/data/collections/settings.d.mts +10 -6
  124. package/src/foundry/client/data/collections/tables.d.mts +11 -7
  125. package/src/foundry/client/data/collections/users.d.mts +14 -11
  126. package/src/foundry/client/data/documents/active-effect.d.mts +652 -88
  127. package/src/foundry/client/data/documents/actor-delta.d.mts +672 -28
  128. package/src/foundry/client/data/documents/actor.d.mts +722 -60
  129. package/src/foundry/client/data/documents/adventure.d.mts +482 -49
  130. package/src/foundry/client/data/documents/ambient-light.d.mts +426 -21
  131. package/src/foundry/client/data/documents/ambient-sound.d.mts +474 -15
  132. package/src/foundry/client/data/documents/card.d.mts +570 -39
  133. package/src/foundry/client/data/documents/cards.d.mts +742 -78
  134. package/src/foundry/client/data/documents/chat-message.d.mts +578 -45
  135. package/src/foundry/client/data/documents/combat.d.mts +701 -71
  136. package/src/foundry/client/data/documents/combatant.d.mts +510 -28
  137. package/src/foundry/client/data/documents/drawing.d.mts +543 -16
  138. package/src/foundry/client/data/documents/fog-exploration.d.mts +413 -27
  139. package/src/foundry/client/data/documents/folder.d.mts +461 -40
  140. package/src/foundry/client/data/documents/item.d.mts +679 -25
  141. package/src/foundry/client/data/documents/journal-entry-page.d.mts +587 -21
  142. package/src/foundry/client/data/documents/journal-entry.d.mts +621 -20
  143. package/src/foundry/client/data/documents/macro.d.mts +530 -25
  144. package/src/foundry/client/data/documents/measured-template.d.mts +480 -16
  145. package/src/foundry/client/data/documents/note.d.mts +495 -18
  146. package/src/foundry/client/data/documents/playlist-sound.d.mts +429 -27
  147. package/src/foundry/client/data/documents/playlist.d.mts +666 -75
  148. package/src/foundry/client/data/documents/region-behavior.d.mts +468 -38
  149. package/src/foundry/client/data/documents/region.d.mts +661 -35
  150. package/src/foundry/client/data/documents/scene.d.mts +986 -149
  151. package/src/foundry/client/data/documents/setting.d.mts +397 -15
  152. package/src/foundry/client/data/documents/table-result.d.mts +479 -17
  153. package/src/foundry/client/data/documents/table.d.mts +663 -80
  154. package/src/foundry/client/data/documents/tile.d.mts +502 -16
  155. package/src/foundry/client/data/documents/token.d.mts +1114 -90
  156. package/src/foundry/client/data/documents/user.d.mts +495 -27
  157. package/src/foundry/client/data/documents/wall.d.mts +550 -15
  158. package/src/foundry/client/game.d.mts +58 -92
  159. package/src/foundry/client/head.d.mts +5 -6
  160. package/src/foundry/client/hooks.d.mts +237 -221
  161. package/src/foundry/client/pixi/board.d.mts +95 -89
  162. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +6 -5
  163. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +5 -5
  164. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +2 -2
  165. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +3 -3
  166. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +3 -3
  167. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +23 -21
  168. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +5 -5
  169. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +5 -5
  170. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +57 -51
  171. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +3 -3
  172. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +7 -7
  173. package/src/foundry/client/pixi/core/interaction/ping.d.mts +19 -11
  174. package/src/foundry/client/pixi/core/interaction/pings/chevron.d.mts +7 -2
  175. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +29 -23
  176. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +83 -38
  177. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +3 -3
  178. package/src/foundry/client/pixi/core/interaction/targets.d.mts +9 -9
  179. package/src/foundry/client/pixi/core/loader.d.mts +8 -8
  180. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +9 -4
  181. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +3 -3
  182. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +3 -3
  183. package/src/foundry/client/pixi/core/shapes/ray.d.mts +23 -17
  184. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +19 -14
  185. package/src/foundry/client/pixi/extensions/circle.d.mts +1 -1
  186. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +3 -3
  187. package/src/foundry/client/pixi/groups/effects.d.mts +4 -4
  188. package/src/foundry/client/pixi/groups/environment.d.mts +5 -5
  189. package/src/foundry/client/pixi/groups/hidden.d.mts +3 -3
  190. package/src/foundry/client/pixi/groups/interface.d.mts +6 -6
  191. package/src/foundry/client/pixi/groups/overlay.d.mts +3 -3
  192. package/src/foundry/client/pixi/groups/primary.d.mts +11 -11
  193. package/src/foundry/client/pixi/groups/rendered.d.mts +3 -3
  194. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +3 -3
  195. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +13 -13
  196. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +279 -233
  197. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +17 -8
  198. package/src/foundry/client/pixi/layers/controls/door.d.mts +26 -14
  199. package/src/foundry/client/pixi/layers/controls/layer.d.mts +89 -79
  200. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +121 -96
  201. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +4 -5
  202. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +6 -4
  203. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +7 -4
  204. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +19 -16
  205. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +101 -84
  206. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +13 -4
  207. package/src/foundry/client/pixi/layers/effects/weather/particles/leaves.d.mts +31 -2
  208. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +134 -59
  209. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +13 -3
  210. package/src/foundry/client/pixi/layers/grid/layer.d.mts +89 -87
  211. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +36 -15
  212. package/src/foundry/client/pixi/layers/masks/depth.d.mts +3 -3
  213. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +4 -4
  214. package/src/foundry/client/pixi/layers/masks/vision.d.mts +6 -6
  215. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +15 -11
  216. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +11 -10
  217. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +47 -28
  218. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +25 -12
  219. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +81 -63
  220. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +10 -11
  221. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +28 -17
  222. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +67 -46
  223. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +50 -51
  224. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +22 -16
  225. package/src/foundry/client/pixi/perception/detection-mode.d.mts +123 -51
  226. package/src/foundry/client/pixi/perception/fog.d.mts +34 -19
  227. package/src/foundry/client/pixi/perception/perception-manager.d.mts +137 -137
  228. package/src/foundry/client/pixi/perception/vision-mode.d.mts +92 -67
  229. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +3 -3
  230. package/src/foundry/client/pixi/placeable.d.mts +241 -146
  231. package/src/foundry/client/pixi/placeables/drawing.d.mts +260 -134
  232. package/src/foundry/client/pixi/placeables/light.d.mts +204 -66
  233. package/src/foundry/client/pixi/placeables/note.d.mts +150 -55
  234. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +7 -6
  235. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +3 -3
  236. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +2 -2
  237. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +4 -4
  238. package/src/foundry/client/pixi/placeables/region.d.mts +219 -110
  239. package/src/foundry/client/pixi/placeables/sound.d.mts +211 -68
  240. package/src/foundry/client/pixi/placeables/template.d.mts +186 -100
  241. package/src/foundry/client/pixi/placeables/tile.d.mts +211 -142
  242. package/src/foundry/client/pixi/placeables/token.d.mts +911 -568
  243. package/src/foundry/client/pixi/placeables/wall.d.mts +253 -130
  244. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +27 -5
  245. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +3 -3
  246. package/src/foundry/client/pixi/webgl/helpers/framebuffer-snapshot.d.mts +3 -3
  247. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +13 -5
  248. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +6 -6
  249. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +2 -2
  250. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +5 -5
  251. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +4 -4
  252. package/src/foundry/client/pixi/webgl/shaders/filters/base-mask-filter.d.mts +3 -3
  253. package/src/foundry/client/pixi/webgl/shaders/filters/blur.d.mts +5 -5
  254. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +6 -3
  255. package/src/foundry/client/pixi/webgl/shaders/filters/environment.d.mts +3 -3
  256. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +4 -4
  257. package/src/foundry/client/pixi/webgl/shaders/filters/invisibility.d.mts +3 -3
  258. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +4 -4
  259. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +6 -6
  260. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +8 -5
  261. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +3 -3
  262. package/src/foundry/client/pixi/webgl/shaders/filters/void.d.mts +3 -3
  263. package/src/foundry/client/pixi/webgl/shaders/filters/weather-occlusion-masks.d.mts +4 -4
  264. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +1 -1
  265. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +4 -4
  266. package/src/foundry/client/pixi/webgl/shaders/lighting/background-lighting.d.mts +3 -3
  267. package/src/foundry/client/pixi/webgl/shaders/lighting/base-lighting.d.mts +3 -3
  268. package/src/foundry/client/pixi/webgl/shaders/lighting/coloration-lighting.d.mts +3 -3
  269. package/src/foundry/client/pixi/webgl/shaders/lighting/darkness-lighting.d.mts +3 -3
  270. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/bewitching-wave.d.mts +5 -5
  271. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/black-hole.d.mts +3 -3
  272. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/chroma.d.mts +3 -3
  273. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/emanation.d.mts +3 -3
  274. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/energy-field.d.mts +3 -3
  275. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +6 -6
  276. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/flame.d.mts +5 -5
  277. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fog.d.mts +3 -3
  278. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/force-grid.d.mts +3 -3
  279. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/ghost-light.d.mts +5 -5
  280. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/hexa-dome.d.mts +3 -3
  281. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/light-dome.d.mts +3 -3
  282. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/magical-gloom.d.mts +3 -3
  283. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/pulse.d.mts +5 -5
  284. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/radial-rainbow.d.mts +3 -3
  285. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/revolving-light.d.mts +3 -3
  286. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/roiling-mass.d.mts +3 -3
  287. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/siren-light.d.mts +5 -5
  288. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/smoke-patch.d.mts +6 -5
  289. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/star-light.d.mts +3 -3
  290. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/sunburst.d.mts +5 -5
  291. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/swirling-rainbow.d.mts +4 -3
  292. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/torch.d.mts +5 -5
  293. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/vortex.d.mts +5 -5
  294. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/wave.d.mts +5 -5
  295. package/src/foundry/client/pixi/webgl/shaders/lighting/illumination-lighting.d.mts +3 -3
  296. package/src/foundry/client/pixi/webgl/shaders/region/adjust-darkness-level.d.mts +7 -7
  297. package/src/foundry/client/pixi/webgl/shaders/region/base.d.mts +4 -4
  298. package/src/foundry/client/pixi/webgl/shaders/region/highlight.d.mts +3 -3
  299. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +4 -4
  300. package/src/foundry/client/pixi/webgl/shaders/samplers/baseline-illumination.d.mts +3 -3
  301. package/src/foundry/client/pixi/webgl/shaders/samplers/color-adjustment.d.mts +5 -5
  302. package/src/foundry/client/pixi/webgl/shaders/samplers/depth.d.mts +3 -3
  303. package/src/foundry/client/pixi/webgl/shaders/samplers/fog-of-war.d.mts +3 -3
  304. package/src/foundry/client/pixi/webgl/shaders/samplers/occlusion.d.mts +3 -3
  305. package/src/foundry/client/pixi/webgl/shaders/samplers/primary.d.mts +4 -4
  306. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +4 -6
  307. package/src/foundry/client/pixi/webgl/shaders/vision/background-vision.d.mts +3 -3
  308. package/src/foundry/client/pixi/webgl/shaders/vision/base-vision.d.mts +3 -3
  309. package/src/foundry/client/pixi/webgl/shaders/vision/coloration-vision.d.mts +3 -3
  310. package/src/foundry/client/pixi/webgl/shaders/vision/effects/amplification.d.mts +3 -3
  311. package/src/foundry/client/pixi/webgl/shaders/vision/effects/wave.d.mts +5 -5
  312. package/src/foundry/client/pixi/webgl/shaders/vision/illumination-vision.d.mts +3 -3
  313. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +14 -15
  314. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +20 -27
  315. package/src/foundry/client/pixi/webgl/shaders/weather/fog.d.mts +5 -5
  316. package/src/foundry/client/pixi/webgl/shaders/weather/rain.d.mts +5 -5
  317. package/src/foundry/client/pixi/webgl/shaders/weather/snow.d.mts +5 -5
  318. package/src/foundry/client/pixi/workers/texture-worker.d.mts +5 -5
  319. package/src/foundry/client/tours/setup-tour.d.mts +15 -10
  320. package/src/foundry/client/ui/dialog.d.mts +3 -3
  321. package/src/foundry/client/ui/dragdrop.d.mts +33 -27
  322. package/src/foundry/client/ui/editor.d.mts +29 -21
  323. package/src/foundry/client/ui/filepicker.d.mts +42 -37
  324. package/src/foundry/client/ui/filter.d.mts +60 -48
  325. package/src/foundry/client/ui/forms.d.mts +22 -22
  326. package/src/foundry/client/ui/prosemirror.d.mts +15 -7
  327. package/src/foundry/client/ui/secrets.d.mts +43 -28
  328. package/src/foundry/client/ui/tabs.d.mts +40 -33
  329. package/src/foundry/client-esm/_module.d.mts +5 -5
  330. package/src/foundry/client-esm/_types.d.mts +2 -1
  331. package/src/foundry/client-esm/applications/api/application.d.mts +93 -31
  332. package/src/foundry/client-esm/applications/api/dialog.d.mts +23 -23
  333. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +85 -32
  334. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +1 -1
  335. package/src/foundry/client-esm/applications/apps/av/camera-popout.d.mts +1 -1
  336. package/src/foundry/client-esm/applications/apps/av/cameras.d.mts +2 -2
  337. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +4 -5
  338. package/src/foundry/client-esm/applications/apps/file-picker.d.mts +2 -2
  339. package/src/foundry/client-esm/applications/apps/grid-config.d.mts +3 -3
  340. package/src/foundry/client-esm/applications/apps/image-popout.d.mts +1 -1
  341. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +1 -1
  342. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +4 -4
  343. package/src/foundry/client-esm/applications/elements/file-picker.d.mts +1 -1
  344. package/src/foundry/client-esm/applications/elements/prosemirror-editor.d.mts +1 -1
  345. package/src/foundry/client-esm/applications/hud/drawing-hud.d.mts +1 -1
  346. package/src/foundry/client-esm/applications/hud/tile-hud.d.mts +1 -1
  347. package/src/foundry/client-esm/applications/hud/token-hud.d.mts +1 -1
  348. package/src/foundry/client-esm/applications/sheets/active-effect-config.d.mts +3 -3
  349. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +2 -2
  350. package/src/foundry/client-esm/applications/sheets/adventure-exporter.d.mts +3 -3
  351. package/src/foundry/client-esm/applications/sheets/adventure-importer.d.mts +3 -3
  352. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +5 -5
  353. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +4 -4
  354. package/src/foundry/client-esm/applications/sheets/card-config.d.mts +3 -3
  355. package/src/foundry/client-esm/applications/sheets/cards-config.d.mts +2 -2
  356. package/src/foundry/client-esm/applications/sheets/combatant-config.d.mts +3 -3
  357. package/src/foundry/client-esm/applications/sheets/drawing-config.d.mts +3 -3
  358. package/src/foundry/client-esm/applications/sheets/folder-config.d.mts +3 -3
  359. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +2 -2
  360. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-category-config.d.mts +3 -3
  361. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-sheet.d.mts +3 -3
  362. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-sheet.d.mts +3 -3
  363. package/src/foundry/client-esm/applications/sheets/macro-config.d.mts +3 -3
  364. package/src/foundry/client-esm/applications/sheets/note-config.d.mts +3 -3
  365. package/src/foundry/client-esm/applications/sheets/playlist-config.d.mts +3 -3
  366. package/src/foundry/client-esm/applications/sheets/playlist-sound-config.d.mts +3 -3
  367. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +3 -3
  368. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +3 -3
  369. package/src/foundry/client-esm/applications/sheets/roll-table-config.d.mts +3 -3
  370. package/src/foundry/client-esm/applications/sheets/roll-table-sheet.d.mts +3 -3
  371. package/src/foundry/client-esm/applications/sheets/scene-config.d.mts +3 -3
  372. package/src/foundry/client-esm/applications/sheets/table-result-config.d.mts +3 -3
  373. package/src/foundry/client-esm/applications/sheets/template-config.d.mts +3 -3
  374. package/src/foundry/client-esm/applications/sheets/tile-config.d.mts +3 -3
  375. package/src/foundry/client-esm/applications/sheets/token/mixin.d.mts +1 -0
  376. package/src/foundry/client-esm/applications/sheets/token/token-config.d.mts +3 -3
  377. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +4 -4
  378. package/src/foundry/client-esm/applications/sheets/wall-config.d.mts +3 -3
  379. package/src/foundry/client-esm/applications/sidebar/apps/chat-popout.d.mts +1 -1
  380. package/src/foundry/client-esm/applications/sidebar/sidebar-tab.d.mts +2 -2
  381. package/src/foundry/client-esm/applications/sidebar/tabs/actor-directory.d.mts +1 -1
  382. package/src/foundry/client-esm/applications/sidebar/tabs/cards-directory.d.mts +1 -1
  383. package/src/foundry/client-esm/applications/sidebar/tabs/combat-tracker.d.mts +242 -1
  384. package/src/foundry/client-esm/applications/sidebar/tabs/item-directory.d.mts +1 -1
  385. package/src/foundry/client-esm/applications/sidebar/tabs/journal-directory.d.mts +1 -1
  386. package/src/foundry/client-esm/applications/sidebar/tabs/macro-directory.d.mts +1 -1
  387. package/src/foundry/client-esm/applications/sidebar/tabs/playlist-directory.d.mts +1 -1
  388. package/src/foundry/client-esm/applications/sidebar/tabs/roll-table-directory.d.mts +1 -1
  389. package/src/foundry/client-esm/applications/sidebar/tabs/scene-directory.d.mts +1 -1
  390. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +2 -2
  391. package/src/foundry/client-esm/applications/ux/context-menu.d.mts +56 -36
  392. package/src/foundry/client-esm/audio/_types.d.mts +2 -0
  393. package/src/foundry/client-esm/audio/biquad.d.mts +76 -26
  394. package/src/foundry/client-esm/audio/cache.d.mts +31 -20
  395. package/src/foundry/client-esm/audio/convolver.d.mts +47 -25
  396. package/src/foundry/client-esm/audio/helper.d.mts +124 -80
  397. package/src/foundry/client-esm/audio/sound.d.mts +202 -97
  398. package/src/foundry/client-esm/audio/timeout.d.mts +28 -12
  399. package/src/foundry/client-esm/canvas/edges/collision.d.mts +12 -4
  400. package/src/foundry/client-esm/canvas/edges/edge.d.mts +13 -8
  401. package/src/foundry/client-esm/canvas/edges/edges.d.mts +3 -2
  402. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +12 -10
  403. package/src/foundry/client-esm/canvas/regions/geometry.d.mts +14 -7
  404. package/src/foundry/client-esm/canvas/regions/mesh.d.mts +25 -14
  405. package/src/foundry/client-esm/canvas/regions/polygon-tree.d.mts +50 -19
  406. package/src/foundry/client-esm/canvas/regions/shape.d.mts +45 -34
  407. package/src/foundry/client-esm/canvas/scene-manager.d.mts +7 -6
  408. package/src/foundry/client-esm/canvas/smaa/blend.d.mts +14 -3
  409. package/src/foundry/client-esm/canvas/smaa/edges.d.mts +25 -3
  410. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +119 -20
  411. package/src/foundry/client-esm/canvas/smaa/weights.d.mts +26 -3
  412. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +69 -39
  413. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +66 -40
  414. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +78 -19
  415. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +37 -20
  416. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +39 -20
  417. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +41 -12
  418. package/src/foundry/client-esm/canvas/sources/point-movement-source.d.mts +15 -4
  419. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +29 -14
  420. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +84 -39
  421. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +115 -41
  422. package/src/foundry/client-esm/canvas/tokens/ring-config.d.mts +83 -21
  423. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +66 -93
  424. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +146 -51
  425. package/src/foundry/client-esm/client.d.mts +16 -16
  426. package/src/foundry/client-esm/data/_module.d.mts +1 -1
  427. package/src/foundry/client-esm/data/calendar.d.mts +26 -39
  428. package/src/foundry/client-esm/data/client-backend.d.mts +6 -6
  429. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +1 -1
  430. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +5 -5
  431. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +2 -2
  432. package/src/foundry/client-esm/data/terrain-data.d.mts +1 -1
  433. package/src/foundry/client-esm/dice/parser.d.mts +5 -27
  434. package/src/foundry/client-esm/dice/roll.d.mts +63 -80
  435. package/src/foundry/client-esm/dice/terms/coin.d.mts +4 -8
  436. package/src/foundry/client-esm/dice/terms/dice.d.mts +85 -64
  437. package/src/foundry/client-esm/dice/terms/die.d.mts +7 -7
  438. package/src/foundry/client-esm/dice/terms/fate.d.mts +5 -5
  439. package/src/foundry/client-esm/dice/terms/function.d.mts +13 -16
  440. package/src/foundry/client-esm/dice/terms/numeric.d.mts +2 -4
  441. package/src/foundry/client-esm/dice/terms/operator.d.mts +1 -1
  442. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +8 -9
  443. package/src/foundry/client-esm/dice/terms/pool.d.mts +13 -28
  444. package/src/foundry/client-esm/dice/terms/string.d.mts +3 -3
  445. package/src/foundry/client-esm/dice/terms/term.d.mts +10 -5
  446. package/src/foundry/client-esm/dice/twister.d.mts +3 -3
  447. package/src/foundry/client-esm/documents/_module.d.mts +1 -1
  448. package/src/foundry/client-esm/helpers/_types.d.mts +12 -46
  449. package/src/foundry/client-esm/helpers/compendium-art.d.mts +57 -4
  450. package/src/foundry/client-esm/packages/_module.d.mts +1 -1
  451. package/src/foundry/client-esm/packages/_types.d.mts +2 -0
  452. package/src/foundry/client-esm/utils/_module.d.mts +1 -1
  453. package/src/foundry/client-esm/utils/_types.d.mts +2 -1
  454. package/src/foundry/common/_types.d.mts +1 -1
  455. package/src/foundry/common/abstract/_module.d.mts +1 -0
  456. package/src/foundry/common/abstract/_types.d.mts +60 -54
  457. package/src/foundry/common/abstract/backend.d.mts +28 -16
  458. package/src/foundry/common/abstract/data.d.mts +133 -116
  459. package/src/foundry/common/abstract/document.d.mts +1233 -440
  460. package/src/foundry/common/abstract/embedded-collection.d.mts +2 -2
  461. package/src/foundry/common/abstract/singleton-collection.d.mts +1 -1
  462. package/src/foundry/common/abstract/type-data.d.mts +35 -43
  463. package/src/foundry/common/config.d.mts +3 -3
  464. package/src/foundry/common/constants.d.mts +27 -26
  465. package/src/foundry/common/data/_types.d.mts +2 -0
  466. package/src/foundry/common/data/data.d.mts +189 -87
  467. package/src/foundry/common/data/fields.d.mts +579 -258
  468. package/src/foundry/common/data/validation-failure.d.mts +9 -4
  469. package/src/foundry/common/documents/_types.d.mts +16 -9
  470. package/src/foundry/common/documents/active-effect.d.mts +280 -180
  471. package/src/foundry/common/documents/actor-delta.d.mts +317 -70
  472. package/src/foundry/common/documents/actor.d.mts +304 -103
  473. package/src/foundry/common/documents/adventure.d.mts +254 -140
  474. package/src/foundry/common/documents/ambient-light.d.mts +267 -76
  475. package/src/foundry/common/documents/ambient-sound.d.mts +267 -110
  476. package/src/foundry/common/documents/card.d.mts +267 -176
  477. package/src/foundry/common/documents/cards.d.mts +299 -128
  478. package/src/foundry/common/documents/chat-message.d.mts +276 -160
  479. package/src/foundry/common/documents/combat.d.mts +300 -91
  480. package/src/foundry/common/documents/combatant.d.mts +283 -88
  481. package/src/foundry/common/documents/drawing.d.mts +286 -207
  482. package/src/foundry/common/documents/fog-exploration.d.mts +258 -72
  483. package/src/foundry/common/documents/folder.d.mts +248 -85
  484. package/src/foundry/common/documents/item.d.mts +305 -101
  485. package/src/foundry/common/documents/journal-entry-page.d.mts +279 -190
  486. package/src/foundry/common/documents/journal-entry.d.mts +294 -70
  487. package/src/foundry/common/documents/macro.d.mts +254 -134
  488. package/src/foundry/common/documents/measured-template.d.mts +293 -137
  489. package/src/foundry/common/documents/note.d.mts +274 -151
  490. package/src/foundry/common/documents/playlist-sound.d.mts +260 -96
  491. package/src/foundry/common/documents/playlist.d.mts +279 -122
  492. package/src/foundry/common/documents/region-behavior.d.mts +305 -64
  493. package/src/foundry/common/documents/region.d.mts +309 -90
  494. package/src/foundry/common/documents/roll-table.d.mts +286 -104
  495. package/src/foundry/common/documents/scene.d.mts +276 -344
  496. package/src/foundry/common/documents/setting.d.mts +229 -55
  497. package/src/foundry/common/documents/table-result.d.mts +267 -96
  498. package/src/foundry/common/documents/tile.d.mts +301 -172
  499. package/src/foundry/common/documents/token.d.mts +350 -452
  500. package/src/foundry/common/documents/user.d.mts +256 -146
  501. package/src/foundry/common/documents/wall.d.mts +272 -157
  502. package/src/foundry/common/grid/_types.d.mts +2 -0
  503. package/src/foundry/common/grid/base.d.mts +58 -37
  504. package/src/foundry/common/grid/hexagonal.d.mts +19 -19
  505. package/src/foundry/common/grid/square.d.mts +1 -1
  506. package/src/foundry/common/packages/_module.d.mts +5 -5
  507. package/src/foundry/common/packages/_types.d.mts +2 -0
  508. package/src/foundry/common/packages/base-module.d.mts +6 -24
  509. package/src/foundry/common/packages/base-package.d.mts +18 -16
  510. package/src/foundry/common/packages/base-system.d.mts +6 -78
  511. package/src/foundry/common/packages/base-world.d.mts +7 -60
  512. package/src/foundry/common/packages/sub-types.d.mts +1 -1
  513. package/src/foundry/common/primitives/array.d.mts +3 -3
  514. package/src/foundry/common/primitives/math.d.mts +7 -1
  515. package/src/foundry/common/primitives/number.d.mts +1 -1
  516. package/src/foundry/common/primitives/set.d.mts +17 -14
  517. package/src/foundry/common/prosemirror/_types.d.mts +2 -0
  518. package/src/foundry/common/prosemirror/dropdown.d.mts +1 -1
  519. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +1 -1
  520. package/src/foundry/common/prosemirror/menu.d.mts +3 -3
  521. package/src/foundry/common/prosemirror/plugin.d.mts +1 -1
  522. package/src/foundry/common/prosemirror/schema/index.d.mts +0 -1
  523. package/src/foundry/common/prosemirror/util.d.mts +1 -1
  524. package/src/foundry/common/utils/bitmask.d.mts +4 -1
  525. package/src/foundry/common/utils/collection.d.mts +59 -24
  526. package/src/foundry/common/utils/event-emitter.d.mts +46 -19
  527. package/src/foundry/common/utils/helpers.d.mts +13 -13
  528. package/src/foundry/common/utils/http.d.mts +2 -2
  529. package/src/foundry/common/utils/string-tree.d.mts +45 -39
  530. package/src/foundry/common/utils/word-tree.d.mts +10 -23
  531. package/src/tsconfig.json +1 -5
  532. package/src/types/augments/pixi.d.mts +28 -28
  533. package/src/types/config.d.mts +12 -12
  534. package/src/types/documentConfiguration.d.mts +282 -597
  535. package/src/types/lib.d.mts +4 -4
  536. package/src/types/workers/image-compressor.d.mts +1 -1
  537. package/src/utils/index.d.mts +255 -60
  538. package/tsconfig.json +29 -0
  539. package/tsconfig.main.json +8 -0
  540. package/tsconfig.miscellaneous.json +16 -0
  541. package/src/foundry/client/apps/placeables/light-config.d.mts +0 -100
  542. package/src/foundry/client/apps/placeables/sound-config.d.mts +0 -44
  543. package/src/foundry/common/documents/module.d.mts +0 -35
@@ -1,70 +1,91 @@
1
- import type { MakeConform, ValueOf } from "fvtt-types/utils";
2
- import type ApplicationV2 from "../../client-esm/applications/api/application.d.mts";
3
- import type { Document } from "../../common/abstract/_module.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";
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";
4
17
 
5
18
  // Gets a key with a required shape to conform to which is also used as a fallback when the key doesn't exist.
6
- 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>;
7
20
 
8
21
  declare global {
9
22
  /**
10
23
  * An Abstract Base Class which defines a Placeable Object which represents a Document placed on the Canvas
11
24
  */
12
25
  abstract class PlaceableObject<
13
- D extends Document<any, any, Scene.ConfiguredInstance | null> = Document<any, any, Scene.ConfiguredInstance | null>,
14
- > extends RenderFlagsMixin(PIXI.Container) {
26
+ CanvasDocument extends PlaceableObject.AnyCanvasDocument = PlaceableObject.AnyCanvasDocument,
27
+ // Note(LukeAbby): The generic parameter being required to be provided is due to
28
+ // https://github.com/microsoft/TypeScript/issues/61633
29
+ > extends RenderFlagsMixin<typeof PIXI.Container>(PIXI.Container) {
15
30
  /**
16
31
  * @param document - The Document instance which is represented by this object
17
32
  */
18
- constructor(document: D);
33
+ constructor(document: CanvasDocument);
19
34
 
20
35
  /**
21
36
  * Retain a reference to the Scene within which this Placeable Object resides
37
+ * @privateRemarks Not defined in the class body, set during construction
22
38
  */
23
- scene: Scene.ConfiguredInstance;
39
+ scene: Scene.Implementation;
24
40
 
25
41
  /**
26
42
  * A reference to the Scene embedded Document instance which this object represents
43
+ * @privateRemarks Not defined in the class body, set during construction
27
44
  */
28
- document: D;
45
+ document: CanvasDocument;
29
46
 
30
47
  /**
31
48
  * A control icon for interacting with the object
32
49
  * @defaultValue `null`
33
- * @remarks `undefined` is returned by subclasses only
50
+ * @remarks Set to `null` in {@link PlaceableObject | `PlaceableObject#constructor`} and {@link AmbientSound.clear | `AmbientSound#clear`}.
51
+ *
52
+ * In placeables which render an icon ({@link AmbientLight | `AmbientLight`}, {@link AmbientSound | `AmbientSound`},
53
+ * {@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`
54
+ *
55
+ * @privateRemarks Not defined in the class body, set during construction
34
56
  */
35
- controlIcon: ControlIcon | null | undefined;
57
+ controlIcon: ControlIcon | null;
36
58
 
37
59
  /**
38
60
  * A mouse interaction manager instance which handles mouse workflows related to this object.
39
61
  * @defaultValue `null`
62
+ * @privateRemarks Not defined in the class body, set during construction
40
63
  */
41
64
  mouseInteractionManager: MouseInteractionManager<this> | null;
42
65
 
43
66
  /**
44
67
  * Allow objects to be culled when off-screen
45
68
  * @defaultValue `false`
69
+ * @privateRemarks Override of `PIXI.Container` property in the constructor, only typed here for the defaultValue
46
70
  */
47
- cullable: boolean;
71
+ override cullable: boolean;
48
72
 
49
73
  /**
50
74
  * Identify the official Document name for this PlaceableObject class
51
- * @remarks This is abstract in {@link PlaceableObject}.
75
+ * @remarks This is abstract in {@link PlaceableObject | `PlaceableObject`}.
52
76
  */
53
77
  static embeddedName: string;
54
78
 
55
79
  /**
56
80
  * The flags declared here are required for all PlaceableObject subclasses to also support.
81
+ * @privateRemarks `InterfaceToObject` is required here, but not in the subclasses, to bridge the assignability gap
82
+ * between interfaces (subclasses) and an index signature (super)
57
83
  */
58
- static override RENDER_FLAGS: {
59
- /** @defaultValue `{ propagate: ["refresh"] }` */
60
- redraw: RenderFlag<PlaceableObject.RenderFlags>;
61
-
62
- /** @defaultValue `{ propagate: ["refreshState"], alias: true }` */
63
- refresh: RenderFlag<PlaceableObject.RenderFlags>;
84
+ static override RENDER_FLAGS: InterfaceToObject<PlaceableObject.RENDER_FLAGS>;
64
85
 
65
- /** @defaultValue `{}` */
66
- refreshState: RenderFlag<PlaceableObject.RenderFlags>;
67
- };
86
+ // Note: This isn't a "real" override but `renderFlags` is set corresponding to the
87
+ // `RENDER_FLAGS` and so it has to be adjusted here.
88
+ renderFlags: RenderFlags<PlaceableObject.RENDER_FLAGS>;
68
89
 
69
90
  /**
70
91
  * The object that this object is a preview of if this object is a preview
@@ -79,7 +100,7 @@ declare global {
79
100
  /**
80
101
  * The mouse interaction state of this placeable.
81
102
  */
82
- get interactionState(): ValueOf<typeof MouseInteractionManager.INTERACTION_STATES> | undefined;
103
+ get interactionState(): MouseInteractionManager.INTERACTION_STATES | undefined;
83
104
 
84
105
  /**
85
106
  * The bounding box for this PlaceableObject.
@@ -89,9 +110,8 @@ declare global {
89
110
 
90
111
  /**
91
112
  * The central coordinate pair of the placeable object based on it's own width and height
92
- * @remarks `{ x: number, y: number }` has been added because of `Token.center`
93
113
  */
94
- get center(): PIXI.Point | { x: number; y: number };
114
+ get center(): PIXI.Point;
95
115
 
96
116
  /**
97
117
  * The id of the corresponding Document which this PlaceableObject represents.
@@ -122,13 +142,13 @@ declare global {
122
142
  /**
123
143
  * Provide a reference to the CanvasLayer which contains this PlaceableObject.
124
144
  */
125
- get layer(): GetKeyWithShape<D, "layer", PIXI.Container>;
145
+ get layer(): PlaceableObject.Layer<CanvasDocument>;
126
146
 
127
147
  /**
128
148
  * A Form Application which is used to configure the properties of this Placeable Object or the Document it
129
149
  * represents.
130
150
  */
131
- get sheet(): GetKeyWithShape<D, "sheet", FormApplication | ApplicationV2.Any | null>;
151
+ get sheet(): PlaceableObject.Sheet<CanvasDocument>;
132
152
 
133
153
  /**
134
154
  * An indicator for whether the object is currently controlled
@@ -137,6 +157,7 @@ declare global {
137
157
 
138
158
  /**
139
159
  * An indicator for whether the object is currently a hover target
160
+ * @remarks In JS the setter treats all non-boolean values as `false`
140
161
  */
141
162
  get hover(): boolean;
142
163
 
@@ -151,8 +172,9 @@ declare global {
151
172
  * Get the snapped position for a given position or the current position
152
173
  * @param position - The position to be used instead of the current position
153
174
  * @returns The snapped position
175
+ * @remarks Calls `this#layer#getSnappedPoint`. If `position` is not provided or nullish, the document's values are used
154
176
  */
155
- getSnappedPosition(position?: Canvas.Point): Canvas.Point;
177
+ getSnappedPosition(position?: Canvas.Point | null): Canvas.Point;
156
178
 
157
179
  override applyRenderFlags(): void;
158
180
 
@@ -165,29 +187,34 @@ declare global {
165
187
  /**
166
188
  * Clear the display of the existing object
167
189
  * @returns The cleared object
168
- * @remarks Some subclasses return void
190
+ * @remarks {@link Tile.clear | `Tile`} and {@link Token.clear | `Token`} return void
169
191
  */
170
192
  clear(): this | void;
171
193
 
172
- override destroy(options?: Parameters<PIXI.Container["destroy"]>[0]): void;
194
+ // options: not null (PIXI signature)
195
+ override destroy(options?: PIXI.IDestroyOptions | boolean): void;
173
196
 
174
197
  /**
175
198
  * The inner _destroy method which may optionally be defined by each PlaceableObject subclass.
176
199
  * @param options - Options passed to the initial destroy call
200
+ * @remarks The options passed to {@link PlaceableObject.destroy | `PlaceableObject#destroy`} get forwarded here.
201
+ * `| undefined` since `destroy` has no `={}` for its `options`
177
202
  */
178
- protected _destroy(options?: PIXI.IDestroyOptions | boolean): void;
203
+ protected _destroy(options: PIXI.IDestroyOptions | boolean | undefined): void;
179
204
 
180
205
  /**
181
206
  * Draw the placeable object into its parent container
182
207
  * @returns The drawn object
183
208
  */
184
- draw(options?: Record<string, unknown>): Promise<this>;
209
+ // options: not null (will likely be destructured if any options ever materialize, parameter default)
210
+ draw(options?: HandleEmptyObject<PlaceableObject.DrawOptions>): Promise<this>;
185
211
 
186
212
  /**
187
213
  * The inner _draw method which must be defined by each PlaceableObject subclass.
188
214
  * @param options - Options which may modify the draw workflow
215
+ * @remarks The options passed to {@link PlaceableObject.draw | `PlaceableObject#draw`} get forwarded here
189
216
  */
190
- protected abstract _draw(options?: Record<string, unknown>): Promise<void>;
217
+ protected abstract _draw(options: HandleEmptyObject<PlaceableObject.DrawOptions>): Promise<void>;
191
218
 
192
219
  /**
193
220
  * Execute a partial draw.
@@ -202,10 +229,11 @@ declare global {
202
229
  * @param options - Options which may modify the refresh workflow
203
230
  * @returns The refreshed object
204
231
  */
205
- refresh(options?: Record<string, unknown>): this;
232
+ refresh(options?: HandleEmptyObject<PlaceableObject.RefreshOptions>): this;
206
233
 
207
234
  /**
208
235
  * Update the quadtree.
236
+ * @remarks Foundry marked `@internal`
209
237
  */
210
238
  protected _updateQuadtree(): void;
211
239
 
@@ -214,6 +242,7 @@ declare global {
214
242
  /**
215
243
  * Is this PlaceableObject within the selection rectangle?
216
244
  * @param rectangle - The selection rectangle
245
+ * @remarks Foundry marked `@internal`
217
246
  */
218
247
  protected _overlapsSelection(rectangle: PIXI.Rectangle): boolean;
219
248
 
@@ -226,25 +255,24 @@ declare global {
226
255
  * Register pending canvas operations which should occur after a new PlaceableObject of this type is created
227
256
  */
228
257
  protected _onCreate(
229
- data: foundry.data.fields.SchemaField.InnerAssignmentType<D["schema"]["fields"]>,
230
- options: Document.OnCreateOptions<D["documentName"]>,
258
+ data: foundry.data.fields.SchemaField.CreateData<CanvasDocument["schema"]["fields"]>,
259
+ options: Document.Database.CreateOptions<DatabaseCreateOperation>,
231
260
  userId: string,
232
261
  ): void;
233
262
 
234
263
  /**
235
264
  * Define additional steps taken when an existing placeable object of this type is updated with new data
236
- * @remarks Called without options and userId in Drawing._onUpdate
237
265
  */
238
266
  protected _onUpdate(
239
- changed: foundry.data.fields.SchemaField.InnerAssignmentType<D["schema"]["fields"]>,
240
- options?: Document.OnUpdateOptions<D["documentName"]>,
241
- userId?: string,
267
+ changed: foundry.data.fields.SchemaField.UpdateData<CanvasDocument["schema"]["fields"]>,
268
+ options: Document.Database.UpdateOptions<DatabaseUpdateOperation>,
269
+ userId: string,
242
270
  ): void;
243
271
 
244
272
  /**
245
273
  * Define additional steps taken when an existing placeable object of this type is deleted
246
274
  */
247
- protected _onDelete(options: Document.OnDeleteOptions<D["documentName"]>, userId: string): void;
275
+ protected _onDelete(options: Document.Database.DeleteOptions<DatabaseDeleteOperation>, userId: string): void;
248
276
 
249
277
  /**
250
278
  * Assume control over a PlaceableObject, flagging it as controlled and enabling downstream behaviors
@@ -252,13 +280,15 @@ declare global {
252
280
  * (default: `{}`)
253
281
  * @returns A flag denoting whether control was successful
254
282
  */
283
+ // options: not null (property access with only a parameter default)
255
284
  control(options?: PlaceableObject.ControlOptions): boolean;
256
285
 
257
286
  /**
258
287
  * Additional events which trigger once control of the object is established
259
288
  * @param options - Optional parameters which apply for specific implementations
289
+ * @remarks The options passed to {@link PlaceableObject.control | `PlaceableObject#control`} get forwarded here
260
290
  */
261
- protected _onControl(options?: PlaceableObject.ControlOptions): void;
291
+ protected _onControl(options: PlaceableObject.ControlOptions): void;
262
292
 
263
293
  /**
264
294
  * Release control over a PlaceableObject, removing it from the controlled set
@@ -266,13 +296,15 @@ declare global {
266
296
  * (default: `{}`)
267
297
  * @returns A Boolean flag confirming the object was released.
268
298
  */
269
- release(options?: PlaceableObject.ReleaseOptions): boolean;
299
+ // options: not null (parameter default only, forwarded to `_onRelease`)
300
+ release(options?: HandleEmptyObject<PlaceableObject.ReleaseOptions>): boolean;
270
301
 
271
302
  /**
272
303
  * Additional events which trigger once control of the object is released
273
304
  * @param options - Options which modify the releasing workflow
305
+ * @remarks The options passed to {@link PlaceableObject.release | `PlaceableObject#release`} get forwarded here
274
306
  */
275
- protected _onRelease(options?: PlaceableObject.ReleaseOptions): void;
307
+ protected _onRelease(options: HandleEmptyObject<PlaceableObject.ReleaseOptions>): void;
276
308
 
277
309
  /**
278
310
  * Clone the placeable object, returning a new object with identical attributes.
@@ -280,7 +312,7 @@ declare global {
280
312
  * If you plan to use it permanently you should call the create method.
281
313
  * @returns A new object with identical data
282
314
  */
283
- clone(): PlaceableObject;
315
+ clone(): this;
284
316
 
285
317
  /**
286
318
  * Rotate the PlaceableObject to a certain angle of facing
@@ -288,48 +320,24 @@ declare global {
288
320
  * @param snap - Snap the angle of rotation to a certain target degree increment
289
321
  * @returns A Promise which resolves once the rotation has completed
290
322
  */
291
- rotate(angle: number, snap: number): Promise<this>;
323
+ // snap: not null (forwarded to _updateRotation with only a parameter default)
324
+ rotate(angle: number, snap?: number): Promise<this>;
292
325
 
293
326
  /**
294
327
  * Determine a new angle of rotation for a PlaceableObject either from an explicit angle or from a delta offset.
295
328
  * @param options - An object which defines the rotation update parameters
296
- * @param angle - An explicit angle, either this or delta must be provided
297
- * (default: `null`)
298
- * @param delta - A relative angle delta, either this or the angle must be provided
299
- * (default: `0`)
300
- * @param snap - A precision (in degrees) to which the resulting angle should snap.
301
- * (default: `0`)
302
329
  * @returns The new rotation angle for the object
303
330
  */
304
- protected _updateRotation({
305
- angle,
306
- delta,
307
- snap,
308
- }?: {
309
- /**
310
- * An explicit angle, either this or delta must be provided
311
- * @defaultValue `undefined`
312
- */
313
- angle?: number;
314
-
315
- /**
316
- * A relative angle delta, either this or the angle must be provided
317
- * @defaultValue `0`
318
- */
319
- delta?: number;
320
-
321
- /**
322
- * A precision (in degrees) to which the resulting angle should snap. Default is 0.
323
- * @defaultValue `0`
324
- */
325
- snap?: number;
326
- }): number;
331
+ // options: not null (destructured)
332
+ protected _updateRotation(options?: PlaceableObject.UpdateRotationOptions): number;
327
333
 
328
334
  /**
329
335
  * Obtain a shifted position for the Placeable Object
330
336
  * @param dx - The number of grid units to shift along the X-axis
331
337
  * @param dy - The number of grid units to shift along the Y-axis
332
338
  * @returns The shifted target coordinates
339
+ * @remarks Despite the parameter descriptions saying 'number of grid units', they're only checked for sign.
340
+ * @privateRemarks Foundry types this correctly, but describes it wrong, logged
333
341
  */
334
342
  protected _getShiftedPosition(dx: -1 | 0 | 1, dy: -1 | 0 | 1): Canvas.Point;
335
343
 
@@ -348,8 +356,9 @@ declare global {
348
356
  * @param user - The User performing the action
349
357
  * @param action - The named action being attempted
350
358
  * @returns Does the User have rights to perform the action?
359
+ * @see {@link PlaceableObject.Action | `PlaceableObject.Action`}
351
360
  */
352
- can(user: User.ConfiguredInstance, action: PlaceableObject.Action): boolean;
361
+ can(user: User.Implementation, action: PlaceableObject.Action): boolean;
353
362
 
354
363
  /**
355
364
  * Can the User access the HUD for this Placeable Object?
@@ -357,7 +366,7 @@ declare global {
357
366
  * @param event - The event object.
358
367
  * @returns The returned status.
359
368
  */
360
- protected _canHUD(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
369
+ protected _canHUD(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
361
370
 
362
371
  /**
363
372
  * Does the User have permission to configure the Placeable Object?
@@ -365,7 +374,7 @@ declare global {
365
374
  * @param event - The event object.
366
375
  * @returns The returned status.
367
376
  */
368
- protected _canConfigure(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
377
+ protected _canConfigure(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
369
378
 
370
379
  /**
371
380
  * Does the User have permission to control the Placeable Object?
@@ -373,7 +382,7 @@ declare global {
373
382
  * @param event - The event object.
374
383
  * @returns The returned status.
375
384
  */
376
- protected _canControl(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
385
+ protected _canControl(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
377
386
 
378
387
  /**
379
388
  * Does the User have permission to view details of the Placeable Object?
@@ -381,7 +390,7 @@ declare global {
381
390
  * @param event - The event object.
382
391
  * @returns The returned status.
383
392
  */
384
- protected _canView(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
393
+ protected _canView(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
385
394
 
386
395
  /**
387
396
  * Does the User have permission to create the underlying Document?
@@ -389,7 +398,7 @@ declare global {
389
398
  * @param event - The event object.
390
399
  * @returns The returned status.
391
400
  */
392
- protected _canCreate(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
401
+ protected _canCreate(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
393
402
 
394
403
  /**
395
404
  * Does the User have permission to drag this Placeable Object?
@@ -397,7 +406,7 @@ declare global {
397
406
  * @param event - The event object.
398
407
  * @returns The returned status.
399
408
  */
400
- protected _canDrag(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
409
+ protected _canDrag(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
401
410
 
402
411
  /**
403
412
  * Does the User have permission to left-click drag this Placeable Object?
@@ -405,7 +414,7 @@ declare global {
405
414
  * @param event - The event object.
406
415
  * @returns The returned status
407
416
  */
408
- protected _canDragLeftStart(user: User.ConfiguredInstance, event: DragEvent): boolean;
417
+ protected _canDragLeftStart(user: User.Implementation, event: DragEvent): boolean;
409
418
 
410
419
  /**
411
420
  * Does the User have permission to hover on this Placeable Object?
@@ -413,7 +422,7 @@ declare global {
413
422
  * @param event - The event object.
414
423
  * @returns The returned status.
415
424
  */
416
- protected _canHover(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
425
+ protected _canHover(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
417
426
 
418
427
  /**
419
428
  * Does the User have permission to update the underlying Document?
@@ -421,7 +430,7 @@ declare global {
421
430
  * @param event - The event object.
422
431
  * @returns The returned status.
423
432
  */
424
- protected _canUpdate(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
433
+ protected _canUpdate(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
425
434
 
426
435
  /**
427
436
  * Does the User have permission to delete the underlying Document?
@@ -429,63 +438,81 @@ declare global {
429
438
  * @param event - The event object.
430
439
  * @returns The returned status.
431
440
  */
432
- protected _canDelete(user: User.ConfiguredInstance, event?: PIXI.FederatedEvent): boolean;
441
+ protected _canDelete(user: User.Implementation, event: PIXI.FederatedEvent): boolean;
433
442
 
434
443
  /**
435
444
  * Actions that should be taken for this Placeable Object when a mouseover event occurs.
436
445
  * Hover events on PlaceableObject instances allow event propagation by default.
437
- * @see MouseInteractionManager##handlePointerOver
446
+ * @see `MouseInteractionManager##handlePointerOver`
438
447
  * @param event - The triggering canvas interaction event
439
448
  * @param options - Options which customize event handling
440
- * (default: `{}`)
449
+ * @remarks {@link Wall._onHoverIn | `Wall#_onHoverIn`} can return `false`, otherwise this is always `void`
441
450
  */
451
+ // options: not null (destructured)
442
452
  protected _onHoverIn(event: PIXI.FederatedEvent, options?: PlaceableObject.HoverInOptions): false | void;
443
453
 
444
454
  /**
445
455
  * Actions that should be taken for this Placeable Object when a mouseout event occurs
446
- * @see MouseInteractionManager##handlePointerOut
456
+ * @see `MouseInteractionManager##handlePointerOut`
447
457
  * @param event - The triggering canvas interaction event
448
- * @returns True if the event was handled, otherwise false
449
458
  */
450
- protected _onHoverOut(event: PIXI.FederatedEvent): boolean | void;
459
+ protected _onHoverOut(event: PIXI.FederatedEvent): void;
451
460
 
452
461
  /**
453
462
  * Should the placeable propagate left click downstream?
454
- * @defaultValue `false`
463
+ * @remarks Unconditionally returns `false` in `PlaceableObject`
455
464
  */
456
- protected _propagateLeftClick(event: PIXI.FederatedEvent): boolean;
465
+ protected _propagateLeftClick(_event: PIXI.FederatedEvent): boolean;
457
466
 
458
467
  /**
459
468
  * Callback actions which occur on a single left-click event to assume control of the object
460
- * @see MouseInteractionManager##handleClickLeft
469
+ * @see `MouseInteractionManager##handleClickLeft`
461
470
  * @param event - The triggering canvas interaction event
462
471
  */
463
472
  protected _onClickLeft(event: PIXI.FederatedEvent): void;
464
473
 
474
+ /**
475
+ * Callback actions which occur on a single left-unclick event to assume control of the object
476
+ * @param event - The triggering canvas interaction event
477
+ */
478
+ protected _onUnclickLeft(event: PIXI.FederatedEvent): void;
479
+
465
480
  /**
466
481
  * Callback actions which occur on a double left-click event to activate
467
- * @see MouseInteractionManager##handleClickLeft2
482
+ * @see `MouseInteractionManager##handleClickLeft2`
468
483
  * @param event - The triggering canvas interaction event
469
484
  */
470
485
  protected _onClickLeft2(event: PIXI.FederatedEvent): void;
471
486
 
487
+ /**
488
+ * Should the placeable propagate right click downstream?
489
+ * @remarks Unconditionally returns `false` in `PlaceableObject`
490
+ */
491
+ protected _propagateRightClick(_event: PIXI.FederatedEvent): boolean;
492
+
472
493
  /**
473
494
  * Callback actions which occur on a single right-click event to configure properties of the object
474
- * @see MouseInteractionManager##handleClickRight
495
+ * @see `MouseInteractionManager##handleClickRight`
475
496
  * @param event - The triggering canvas interaction event
476
497
  */
477
498
  protected _onClickRight(event: PIXI.FederatedEvent): void;
478
499
 
500
+ /**
501
+ * Callback actions which occur on a single right-unclick event
502
+ * @param event - The triggering canvas interaction event
503
+ */
504
+ protected _onUnclickRight(event: PIXI.FederatedEvent): void;
505
+
479
506
  /**
480
507
  * Callback actions which occur on a double right-click event to configure properties of the object
481
- * @see MouseInteractionManager##handleClickRight2
508
+ * @see `MouseInteractionManager##handleClickRight2`
482
509
  * @param event - The triggering canvas interaction event
483
510
  */
484
511
  protected _onClickRight2(event: PIXI.FederatedEvent): void;
485
512
 
486
513
  /**
487
514
  * Callback actions which occur when a mouse-drag action is first begun.
488
- * @see MouseInteractionManager##handleDragStart
515
+ * @see `MouseInteractionManager##handleDragStart`
489
516
  * @param event - The triggering canvas interaction event
490
517
  */
491
518
  protected _onDragLeftStart(event: PIXI.FederatedEvent): void;
@@ -504,14 +531,14 @@ declare global {
504
531
 
505
532
  /**
506
533
  * Callback actions which occur on a mouse-move operation.
507
- * @see MouseInteractionManager##handleDragMove
534
+ * @see `MouseInteractionManager##handleDragMove`
508
535
  * @param event - The triggering canvas interaction event
509
536
  */
510
537
  protected _onDragLeftMove(event: PIXI.FederatedEvent): void;
511
538
 
512
539
  /**
513
540
  * Callback actions which occur on a mouse-move operation.
514
- * @see MouseInteractionManager##handleDragDrop
541
+ * @see `MouseInteractionManager##handleDragDrop`
515
542
  * @param event - The triggering canvas interaction event
516
543
  */
517
544
  protected _onDragLeftDrop(event: PIXI.FederatedEvent): void;
@@ -520,49 +547,48 @@ declare global {
520
547
  * Perform the database updates that should occur as the result of a drag-left-drop operation.
521
548
  * @param event - The triggering canvas interaction event
522
549
  * @returns An array of database updates to perform for documents in this collection
550
+ * @remarks `| null` in the return because of the `Wall` override
523
551
  */
524
- _prepareDragLeftDropUpdates(
525
- event: PIXI.FederatedEvent,
526
- ): foundry.data.fields.SchemaField.InnerAssignmentType<D["schema"]["fields"]>[] | null;
552
+ protected _prepareDragLeftDropUpdates(event: PIXI.FederatedEvent): PlaceableObject.AnyDragLeftDropUpdate[] | null;
527
553
 
528
554
  /**
529
555
  * Callback actions which occur on a mouse-move operation.
530
- * @see MouseInteractionManager##handleDragCancel
556
+ * @see `MouseInteractionManager##handleDragCancel`
531
557
  * @param event - The triggering mouse click event
532
558
  */
533
559
  protected _onDragLeftCancel(event: PIXI.FederatedEvent): void;
534
560
 
535
561
  /**
536
562
  * Callback actions which occur on a right mouse-drag operation.
537
- * @see MouseInteractionManager##handleDragStart
563
+ * @see `MouseInteractionManager##handleDragStart`
538
564
  * @param event - The triggering mouse click event
539
565
  */
540
566
  protected _onDragRightStart(event: PIXI.FederatedEvent): void;
541
567
 
542
568
  /**
543
569
  * Callback actions which occur on a right mouse-drag operation.
544
- * @see MouseInteractionManager##handleDragMove
570
+ * @see `MouseInteractionManager##handleDragMove`
545
571
  * @param event - The triggering canvas interaction event
546
572
  */
547
573
  protected _onDragRightMove(event: PIXI.FederatedEvent): void;
548
574
 
549
575
  /**
550
576
  * Callback actions which occur on a right mouse-drag operation.
551
- * @see MouseInteractionManager##handleDragDrop
577
+ * @see `MouseInteractionManager##handleDragDrop`
552
578
  * @param event - The triggering canvas interaction event
553
579
  */
554
580
  protected _onDragRightDrop(event: PIXI.FederatedEvent): void;
555
581
 
556
582
  /**
557
583
  * Callback actions which occur on a right mouse-drag operation.
558
- * @see MouseInteractionManager##handleDragDrop
584
+ * @see `MouseInteractionManager##handleDragDrop`
559
585
  * @param event - The triggering mouse click event
560
586
  */
561
587
  protected _onDragRightCancel(event: PIXI.FederatedEvent): void;
562
588
 
563
589
  /**
564
590
  * Callback action which occurs on a long press.
565
- * @see MouseInteractionManager##handleLongPress
591
+ * @see `MouseInteractionManager##handleLongPress`
566
592
  * @param event - The triggering canvas interaction event
567
593
  * @param origin - The local canvas coordinates of the mousepress.
568
594
  */
@@ -570,21 +596,48 @@ declare global {
570
596
  }
571
597
 
572
598
  namespace PlaceableObject {
573
- type Any = PlaceableObject<any>;
599
+ interface Any extends AnyPlaceableObject {}
600
+ interface AnyConstructor extends Identity<typeof AnyPlaceableObject> {}
574
601
 
575
- type AnyConstructor = typeof AnyPlaceableObject;
602
+ type AnyCanvasDocument = Scene.Embedded;
576
603
 
577
- interface RenderFlags {
578
- redraw: boolean;
604
+ type RenderFlags = RenderFlagsMixin.ToBooleanFlags<RENDER_FLAGS>;
579
605
 
580
- refresh: boolean;
606
+ interface RENDER_FLAGS {
607
+ /** @defaultValue `{ propagate: ["refresh"] }` */
608
+ redraw: RenderFlag<this, "redraw">;
581
609
 
582
- refreshState: boolean;
610
+ /** @defaultValue `{ propagate: ["refreshState"], alias: true }` */
611
+ refresh: RenderFlag<this, "refresh">;
612
+
613
+ /** @defaultValue `{}` */
614
+ refreshState: RenderFlag<this, "refreshState">;
583
615
  }
584
616
 
617
+ // Note(LukeAbby): Switch back to `GetKeyWithShape` once `TilesLayer` etc. is assignable to `PlaceablesLayer.Any`.
618
+ // There's no clear reason why it isn't but it's breaking this type.
619
+ type Layer<CanvasDocument extends AnyCanvasDocument> = GetKey<
620
+ CanvasDocument,
621
+ "layer"
622
+ // PlaceablesLayer.Any
623
+ >;
624
+
625
+ type Sheet<CanvasDocument extends AnyCanvasDocument> = GetKey<
626
+ CanvasDocument,
627
+ "sheet"
628
+ // FormApplication.Any | ApplicationV2.Any | null
629
+ >;
630
+
631
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
632
+ interface DrawOptions {}
633
+
634
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
635
+ interface RefreshOptions {}
636
+
585
637
  interface ControlOptions {
586
638
  /**
587
639
  * Release any other controlled objects first
640
+ * @remarks Checked via `!== false`, so no nullish values allowed
588
641
  */
589
642
  releaseOthers?: boolean;
590
643
  }
@@ -593,47 +646,89 @@ declare global {
593
646
  * @privateRemarks `PlaceableObject#_onDelete` is the only place in foundry code that calls `PlaceableObject#release` with any options at all,
594
647
  * where it passes `{trigger: false}`. This is passed on to `PlaceableObject#_onRelease`, which does not check for any options, including trigger.
595
648
  * `Drawing`, `Region`, and `Token` extend `_onRelease` and pass the options back to `super`, but do no further checks.
649
+ *
650
+ * As it is completely unused and has been removed in v13, it is not included in this interface
596
651
  * */
597
- interface ReleaseOptions {
598
- trigger?: boolean;
599
- }
652
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
653
+ interface ReleaseOptions {}
600
654
 
601
- interface HoverInOptions {
655
+ /** @internal */
656
+ type __UpdateRotationOptions = NullishProps<{
657
+ /**
658
+ * An explicit angle, either this or delta must be provided
659
+ * @defaultValue `undefined`
660
+ * @remarks Checked before `delta`. If non-numeric, ignored in favour of `delta`.
661
+ */
662
+ angle: number;
663
+ }> &
664
+ InexactPartial<{
665
+ /**
666
+ * A relative angle delta, either this or the angle must be provided
667
+ * @defaultValue `0`
668
+ * @remarks Can't be `null` as it only has a parameter default.
669
+ *
670
+ * Only used if `angle` is non-numeric.
671
+ */
672
+ delta: number;
673
+
674
+ /**
675
+ * A precision (in degrees) to which the resulting angle should snap. Default is 0.
676
+ * @defaultValue `0`
677
+ * @remarks Can't be `null` as it only has a parameter default.
678
+ *
679
+ * @see {@link Number.toNearest | `Number#toNearest`}
680
+ */
681
+ snap: number;
682
+ }>;
683
+ interface UpdateRotationOptions extends __UpdateRotationOptions {}
684
+
685
+ /** @internal */
686
+ type _HoverInOptions = NullishProps<{
602
687
  /**
603
688
  * Trigger hover-out behavior on sibling objects
604
689
  * @defaultValue `false`
605
690
  */
606
691
  hoverOutOthers: boolean;
607
- }
692
+ }>;
608
693
 
609
- type Action =
610
- | "HUD"
611
- | "configure"
612
- | "control"
613
- | "view"
614
- | "create"
615
- | "drag"
616
- | "hover"
617
- | "update"
618
- | "delete"
619
- | (string & {});
620
- }
621
- }
694
+ interface HoverInOptions extends _HoverInOptions {}
622
695
 
623
- interface Vision {
624
- /**
625
- * @privateRemarks Documentation says PIXI.Circle, but determined by Atropos to be out of date.
626
- * Likely to be removed in future version as it's no longer used generally.
627
- */
628
- fov?: PIXI.Polygon | undefined;
696
+ /**
697
+ * @remarks {@link PlaceableObject.can | `PlaceableObject#can`} calls `#titleCase()` on this
698
+ * before prepending `"_can"`, rendering any actions with more than a single capital in their
699
+ * name (e.g `"DragLeftStart"`), including `"HUD"` (as there's no `PlaceableObject#_canHud()`),
700
+ * effectively inert, so they have been omitted here. This also means these are case
701
+ * -insensitive at runtime, but TS doesn't have a good way to type that. Allowing lowercase or
702
+ * title case is the best we can do.
703
+ *
704
+ * While in theory a custom action could be added through a custom `_can*` method method Atropos
705
+ * has indicated that this is not intended to be user-extensible.
706
+ */
707
+ type BaseAction = "configure" | "control" | "view" | "create" | "drag" | "hover" | "update" | "delete";
629
708
 
630
- /**
631
- * @remarks
632
- * This is required but has been set to optional because of PointSource
633
- */
634
- los?: PointSourcePolygon | undefined;
709
+ type Action = Titlecase<BaseAction> | BaseAction;
710
+
711
+ /** @remarks Foundry does some unsound subclassing around {@link PlaceableObject._prepareDragLeftDropUpdates | `PlaceableObject#_prepareDragLeftDropUpdates`} */
712
+ type AnyDragLeftDropUpdate = DragLeftDropUpdate | Token.DragLeftDropUpdate | Wall.DragLeftDropUpdate;
713
+
714
+ /**
715
+ * @remarks The type {@link PlaceableObject._prepareDragLeftDropUpdates | `PlaceableObject#_prepareDragLeftDropUpdates`}
716
+ * returns if not overridden by the specific placeable
717
+ */
718
+ interface DragLeftDropUpdate {
719
+ _id: string;
720
+ x: number;
721
+ y: number;
722
+
723
+ /**
724
+ * @remarks Possibly `undefined` as this is set to `clone.document.rotation` and not all canvas documents
725
+ * have a `rotation` field.
726
+ */
727
+ rotation: number | undefined;
728
+ }
729
+ }
635
730
  }
636
731
 
637
- declare abstract class AnyPlaceableObject extends PlaceableObject<any> {
638
- constructor(arg0: never, ...args: never[]);
732
+ declare abstract class AnyPlaceableObject extends PlaceableObject<PlaceableObject.AnyCanvasDocument> {
733
+ constructor(...args: never);
639
734
  }