@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,4 +1,4 @@
1
- import type { PropertiesOfType, Brand, NullishProps, AnyObject } from "fvtt-types/utils";
1
+ import type { PropertiesOfType, Brand, NullishProps, AnyObject, Identity } from "fvtt-types/utils";
2
2
 
3
3
  declare global {
4
4
  /**
@@ -19,7 +19,7 @@ declare global {
19
19
  * @privateRemarks Foundry does not account for the possibility of Symbol animation names and types the keys as simply `string`,
20
20
  * despite typing `CanvasAnimationOptions.name` as `string | symbol`
21
21
  */
22
- static animations: Record<PropertyKey, CanvasAnimationData>;
22
+ static animations: Record<PropertyKey, CanvasAnimation.AnimationData>;
23
23
 
24
24
  /**
25
25
  * Apply an animation from the current value of some attribute to a new value
@@ -50,7 +50,7 @@ declare global {
50
50
  */
51
51
  static animate(
52
52
  attributes: CanvasAnimation.Attribute[],
53
- options?: CanvasAnimationOptions,
53
+ options?: CanvasAnimation.AnimateOptions,
54
54
  ): CanvasAnimation.AnimateReturn;
55
55
 
56
56
  /**
@@ -58,7 +58,7 @@ declare global {
58
58
  * @param name - The animation name to retrieve
59
59
  * @returns The animation data, or undefined
60
60
  */
61
- static getAnimation(name: PropertyKey): CanvasAnimationData | undefined;
61
+ static getAnimation(name: PropertyKey): CanvasAnimation.AnimationData | undefined;
62
62
 
63
63
  /**
64
64
  * If an animation using a certain name already exists, terminate it
@@ -90,7 +90,7 @@ declare global {
90
90
 
91
91
  namespace CanvasAnimation {
92
92
  interface Any extends AnyCanvasAnimation {}
93
- type AnyConstructor = typeof AnyCanvasAnimation;
93
+ interface AnyConstructor extends Identity<typeof AnyCanvasAnimation> {}
94
94
 
95
95
  /** @remarks Helper type as many things `return CanvasAnimation.animate(...)` */
96
96
  type AnimateReturn = Promise<boolean | void>;
@@ -117,10 +117,10 @@ declare global {
117
117
  readonly COMPLETED: 2 & CanvasAnimation.STATES;
118
118
  }
119
119
 
120
- type OnTickFunction = (dt: number, animation: CanvasAnimationData) => void;
120
+ type OnTickFunction = (dt: number, animation: CanvasAnimation.AnimationData) => void;
121
121
 
122
122
  /** @internal */
123
- type _AnimationOptions = NullishProps<{
123
+ type _AnimateOptions = NullishProps<{
124
124
  /**
125
125
  * A DisplayObject which defines context to the PIXI.Ticker function
126
126
  * @defaultValue `canvas.stage`
@@ -174,63 +174,69 @@ declare global {
174
174
  /** The destination value of the attribute */
175
175
  to: number | Color;
176
176
  }
177
- }
178
177
 
179
- interface CanvasAnimationOptions extends CanvasAnimation._AnimationOptions {
180
- /**
181
- * A duration in milliseconds over which the animation should occur
182
- * @defaultValue `1000`
183
- * @remarks Can't be `null` because it only has a parameter default, and used as a divisor in `CanvasAnimation.#animateFrame`
184
- */
185
- duration?: number | undefined;
186
- }
178
+ interface AnimateOptions extends CanvasAnimation._AnimateOptions {
179
+ /**
180
+ * A duration in milliseconds over which the animation should occur
181
+ * @defaultValue `1000`
182
+ * @remarks Can't be `null` because it only has a parameter default, and is used as a divisor in `CanvasAnimation.#animateFrame`
183
+ */
184
+ duration?: number | undefined;
185
+ }
187
186
 
188
- interface CanvasAnimationAttribute extends CanvasAnimation.Attribute {
189
- /**
190
- * The computed delta between to and from
191
- * @remarks This key is always overwritten inside `.animate`, its passed value is irrelevant
192
- */
193
- delta: number;
187
+ interface CanvasAnimationAttribute extends CanvasAnimation.Attribute {
188
+ /**
189
+ * The computed delta between to and from
190
+ * @remarks This key is always overwritten inside `.animate`, its passed value is irrelevant
191
+ */
192
+ delta: number;
194
193
 
195
- /**
196
- * The amount of the total delta which has been animated
197
- * @remarks This key is always overwritten inside `.animate`, its passed value is irrelevant
198
- */
199
- done: number;
194
+ /**
195
+ * The amount of the total delta which has been animated
196
+ * @remarks This key is always overwritten inside `.animate`, its passed value is irrelevant
197
+ */
198
+ done: number;
200
199
 
201
- /**
202
- * Is this a color animation that applies to RGB channels
203
- * @remarks When true, `CanvasAnimation.#animateFrame` assumes `to` *and* `from` are
204
- * both `Color`s. It's automatically set `true` if `to` is passed as a `Color`, so it
205
- * should be unnecessary to set manually.
206
- */
207
- color?: boolean;
208
- }
200
+ /**
201
+ * Is this a color animation that applies to RGB channels
202
+ * @remarks When true, `CanvasAnimation.#animateFrame` assumes `to` *and* `from` are
203
+ * both `Color`s. It's automatically set `true` if `to` is passed as a `Color`, so it
204
+ * should be unnecessary to set manually.
205
+ */
206
+ color?: boolean;
207
+ }
209
208
 
210
- interface CanvasAnimationData extends CanvasAnimationOptions {
211
- /** The animation function being executed each frame */
212
- fn: (dt: number) => void;
209
+ interface AnimationData extends CanvasAnimation.AnimateOptions {
210
+ /** The animation function being executed each frame */
211
+ fn: (dt: number) => void;
213
212
 
214
- /** The current time of the animation, in milliseconds */
215
- time: number;
213
+ /** The current time of the animation, in milliseconds */
214
+ time: number;
216
215
 
217
- /** The attributes being animated */
218
- attributes: CanvasAnimationAttribute[];
216
+ /** The attributes being animated */
217
+ attributes: CanvasAnimationAttribute[];
219
218
 
220
- /** The current state of the animation */
221
- state: CanvasAnimation.STATES;
219
+ /** The current state of the animation */
220
+ state: CanvasAnimation.STATES;
222
221
 
223
- /** A Promise which resolves once the animation is complete */
224
- promise: Promise<boolean>;
222
+ /** A Promise which resolves once the animation is complete */
223
+ promise: Promise<boolean>;
225
224
 
226
- /** The resolution function, allowing animation to be ended early */
227
- resolve: (value: boolean) => void;
225
+ /** The resolution function, allowing animation to be ended early */
226
+ resolve: (value: boolean) => void;
228
227
 
229
- /** The rejection function, allowing animation to be ended early */
230
- reject: (err: Error) => void;
228
+ /** The rejection function, allowing animation to be ended early */
229
+ reject: (err: Error) => void;
230
+ }
231
231
  }
232
+
233
+ /** @deprecated {@link CanvasAnimation.AnimateOptions | `CanvasAnimation.AnimateOptions`} */
234
+ type CanvasAnimationOptions = CanvasAnimation.AnimateOptions;
235
+
236
+ /** @deprecated {@link CanvasAnimation.AnimationData | `CanvasAnimation.AnimationData`} */
237
+ type CanvasAnimationData = CanvasAnimation.AnimationData;
232
238
  }
233
239
 
234
240
  declare abstract class AnyCanvasAnimation extends CanvasAnimation {
235
- constructor(arg0: never, ...args: never[]);
241
+ constructor(...args: never);
236
242
  }
@@ -1,4 +1,4 @@
1
- import type { InexactPartial } from "fvtt-types/utils";
1
+ import type { Identity, InexactPartial } from "fvtt-types/utils";
2
2
 
3
3
  declare global {
4
4
  /**
@@ -68,7 +68,7 @@ declare global {
68
68
 
69
69
  namespace ControlIcon {
70
70
  interface Any extends AnyControlIcon {}
71
- type AnyConstructor = typeof AnyControlIcon;
71
+ interface AnyConstructor extends Identity<typeof AnyControlIcon> {}
72
72
 
73
73
  /** @internal */
74
74
  type _Options = InexactPartial<{
@@ -124,5 +124,5 @@ declare global {
124
124
  }
125
125
 
126
126
  declare abstract class AnyControlIcon extends ControlIcon {
127
- constructor(arg0: never, ...args: never[]);
127
+ constructor(...args: never);
128
128
  }
@@ -1,4 +1,4 @@
1
- import type { Brand, NullishProps } from "fvtt-types/utils";
1
+ import type { AnyArray, Brand, Identity, NullishProps } from "fvtt-types/utils";
2
2
 
3
3
  declare global {
4
4
  /**
@@ -195,7 +195,7 @@ declare global {
195
195
  * Events which do not specify a callback are assumed to have been handled as no-op.
196
196
  * @remarks
197
197
  */
198
- callback(action: MouseInteractionManager.Action, event: Event | PIXI.FederatedEvent, ...args: any[]): boolean;
198
+ callback(action: MouseInteractionManager.Action, event: Event | PIXI.FederatedEvent, ...args: AnyArray): boolean;
199
199
 
200
200
  /**
201
201
  * A reference to the possible interaction states which can be observed
@@ -227,9 +227,9 @@ declare global {
227
227
 
228
228
  namespace MouseInteractionManager {
229
229
  interface Any extends AnyMouseInteractionManager {}
230
- type AnyConstructor = typeof AnyMouseInteractionManager;
230
+ interface AnyConstructor extends Identity<typeof AnyMouseInteractionManager> {}
231
231
 
232
- /** @privateRemarks The private class property is `#HANDLER_OUTCOME` singular, but the getter is `handlerOutcomes`, so the brand uses the plural*/
232
+ /** @privateRemarks The private class property is `#HANDLER_OUTCOME` singular, but the getter is `handlerOutcomes`, so the brand uses the plural */
233
233
  type HANDLER_OUTCOMES = Brand<number, "MouseInteractionManager.HANDLER_OUTCOMES">;
234
234
 
235
235
  interface HandlerOutcomes {
@@ -274,7 +274,7 @@ declare global {
274
274
  | "hoverIn"
275
275
  | "hoverOut";
276
276
 
277
- type PermissionFunction = (user: User.ConfiguredInstance, event: Event | PIXI.FederatedEvent) => boolean;
277
+ type PermissionFunction = (user: User.Implementation, event: Event | PIXI.FederatedEvent) => boolean;
278
278
 
279
279
  type Permissions = Partial<Record<PermissionAction, PermissionFunction | boolean>>;
280
280
 
@@ -300,7 +300,7 @@ declare global {
300
300
  * - For Regions specifically, `hoverOut` takes an `options: { updateLegend: boolean }` object, and that key is also added to Region `hoverIn` options
301
301
  * - `longPress` receives `origin: PIXI.Point`
302
302
  */
303
- type CallbackFunction = (event: Event | PIXI.FederatedEvent, ...args: any[]) => boolean | null | void;
303
+ type CallbackFunction = (event: Event | PIXI.FederatedEvent, ...args: AnyArray) => boolean | null | void;
304
304
 
305
305
  type Callbacks = Partial<Record<Action, CallbackFunction>>;
306
306
 
@@ -354,5 +354,5 @@ declare global {
354
354
  }
355
355
 
356
356
  declare abstract class AnyMouseInteractionManager extends MouseInteractionManager {
357
- constructor(arg0: never, ...args: never[]);
357
+ constructor(...args: never);
358
358
  }
@@ -1,4 +1,4 @@
1
- import type { InexactPartial } from "fvtt-types/utils";
1
+ import type { Identity, IntentionalPartial, RemoveIndexSignatures } from "fvtt-types/utils";
2
2
 
3
3
  declare global {
4
4
  /**
@@ -9,9 +9,9 @@ declare global {
9
9
  * @param origin - The canvas coordinates of the origin of the ping.
10
10
  * @param options - Additional options to configure the ping animation.
11
11
  */
12
- constructor(origin: Canvas.Point, options?: PingOptions);
12
+ constructor(origin: Canvas.Point, options?: Ping.ConstructorOptions);
13
13
 
14
- options: PingOptions;
14
+ options: Ping.ConstructorOptions;
15
15
 
16
16
  _color: Color;
17
17
 
@@ -31,20 +31,23 @@ declare global {
31
31
  * @param dt - The number of ms that elapsed since the previous frame.
32
32
  * @param animation - The animation state.
33
33
  */
34
- protected _animateFrame(dt: number, animation: CanvasAnimationData): void;
34
+ protected _animateFrame(dt: number, animation: CanvasAnimation.AnimationData): void;
35
35
  }
36
36
 
37
37
  namespace Ping {
38
38
  interface Any extends AnyPing {}
39
- type AnyConstructor = typeof AnyPing;
39
+ interface AnyConstructor extends Identity<typeof AnyPing> {}
40
+
41
+ type ConfiguredStyles = keyof RemoveIndexSignatures<typeof CONFIG.Canvas.pings.styles>;
40
42
 
41
43
  /** @internal */
42
- type _Options = InexactPartial<{
44
+ type _ConstructorOptions = IntentionalPartial<{
43
45
  /**
44
46
  * The duration of the animation in milliseconds.
45
47
  * @defaultValue `900`
46
48
  * @remarks Can't be `null` because `options` is `mergeObject`ed with an object with this key,
47
- * and the result is passed on to `CanvasAnimation.animate` in its options
49
+ * and the result is passed on to `CanvasAnimation.animate` in its options, which only has a
50
+ * parameter default for this property
48
51
  */
49
52
  duration: number | undefined;
50
53
 
@@ -67,15 +70,20 @@ declare global {
67
70
  color: Color.Source;
68
71
 
69
72
  /**
70
- * The name for the ping animation to pass to {@link CanvasAnimation.animate}.
73
+ * The name for the ping animation to pass to {@link CanvasAnimation.animate | `CanvasAnimation.animate`}.
71
74
  */
72
- name?: PropertyKey | undefined | null;
75
+ name: PropertyKey | undefined | null;
73
76
  }>;
77
+
78
+ interface ConstructorOptions extends Ping._ConstructorOptions {}
74
79
  }
75
80
 
76
- interface PingOptions extends Ping._Options {}
81
+ /**
82
+ * @deprecated {@link Ping.ConstructorOptions | `Ping.ConstructorOptions`}
83
+ */
84
+ type PingOptions = Ping.ConstructorOptions;
77
85
  }
78
86
 
79
87
  declare abstract class AnyPing extends Ping {
80
- constructor(arg0: never, ...args: never[]);
88
+ constructor(...args: never);
81
89
  }
@@ -10,7 +10,12 @@ declare global {
10
10
  * @param options - Additional options to configure the ping animation.
11
11
  * (default: `{duration: 900, size: 128, color: "#ff6400"}`)
12
12
  */
13
- constructor(origin: Canvas.Point, options?: PingOptions);
13
+ constructor(
14
+ origin: Canvas.Point,
15
+
16
+ /** @privateRemarks Can't be `null` as it's directly assigned to `Ping#options` which has properties accessed null-unsafely */
17
+ options?: Ping.ConstructorOptions,
18
+ );
14
19
 
15
20
  /** @defaultValue `(this.options.size / 2) * .75` */
16
21
  _r: number;
@@ -57,7 +62,7 @@ declare global {
57
62
 
58
63
  override animate(): Promise<boolean>;
59
64
 
60
- override _animateFrame(dt: number, animation: CanvasAnimationData): void;
65
+ override _animateFrame(dt: number, animation: CanvasAnimation.AnimationData): void;
61
66
 
62
67
  /**
63
68
  * Draw the outer and inner rings.
@@ -1,4 +1,4 @@
1
- import type { InexactPartial, NullishProps } from "fvtt-types/utils";
1
+ import type { Identity, InexactPartial, NullishProps } from "fvtt-types/utils";
2
2
 
3
3
  declare global {
4
4
  /**
@@ -9,9 +9,14 @@ declare global {
9
9
  * @param origin - The canvas coordinates of the origin of the ping.
10
10
  * @param options - Additional options to configure the ping animation.
11
11
  */
12
- constructor(origin: Canvas.Point, options?: PulsePingOptions);
12
+ constructor(
13
+ origin: Canvas.Point,
13
14
 
14
- override options: PulsePingOptions;
15
+ /** @privateRemarks Can't be `null` as it's directly assigned to `Ping#options` which has properties accessed null-unsafely */
16
+ options?: PulsePing.ConstructorOptions,
17
+ );
18
+
19
+ override options: PulsePing.ConstructorOptions;
15
20
 
16
21
  _color2: Color;
17
22
 
@@ -43,7 +48,7 @@ declare global {
43
48
 
44
49
  override animate(): Promise<boolean>;
45
50
 
46
- override _animateFrame(dt: number, animation: CanvasAnimationData): void;
51
+ override _animateFrame(dt: number, animation: CanvasAnimation.AnimationData): void;
47
52
 
48
53
  /**
49
54
  * Transition linearly from one color to another.
@@ -68,27 +73,27 @@ declare global {
68
73
 
69
74
  namespace PulsePing {
70
75
  interface Any extends AnyPulsePing {}
71
- type AnyConstructor = typeof AnyPulsePing;
76
+ interface AnyConstructor extends Identity<typeof AnyPulsePing> {}
72
77
 
73
78
  /** @internal */
74
- type _Options = InexactPartial<{
79
+ type _ConstructorOptions = InexactPartial<{
75
80
  /**
76
81
  * The number of rings used in the animation.
77
82
  * @defaultValue `3`
78
83
  * @remarks Can't be `null` as it only has a parameter default and a coerced `0` ring count is nonsensical
79
84
  */
80
- rings?: number;
85
+ rings: number;
81
86
 
82
87
  /**
83
88
  * The alternate color that the rings begin at. Use white for a 'flashing' effect.
84
89
  * @defaultValue `#ffffff`
85
90
  * @remarks Can't be `null` as it only has a parameter default and `Color(NaN)`s are to be avoided
86
91
  */
87
- color2?: Color.Source;
92
+ color2: Color.Source;
88
93
  }>;
89
- }
90
94
 
91
- interface PulsePingOptions extends PingOptions, PulsePing._Options {}
95
+ interface ConstructorOptions extends _ConstructorOptions, Ping.ConstructorOptions {}
96
+ }
92
97
 
93
98
  /**
94
99
  * A type of ping that produces an arrow pointing in a given direction.
@@ -98,20 +103,20 @@ declare global {
98
103
  * @param origin - The canvas coordinates of the origin of the ping. This becomes the arrow's tip.
99
104
  * @param options - Additional options to configure the ping animation.
100
105
  */
101
- constructor(origin: PIXI.Point, options?: ArrowPing.Options);
106
+ constructor(origin: PIXI.Point, options?: ArrowPing.ConstructorOptions);
102
107
 
103
- // @privateRemarks `options` does not get overridden here as the `rotation` key does not
104
- // get passed up to super, so the property is still just `PulsePingOptions`
108
+ // @privateRemarks The `options` property does not get overridden here as the `rotation` key does not
109
+ // get passed up to super, so it's still just `PulsePing.Constructor.Options`
105
110
 
106
111
  protected override _drawShape(g: PIXI.Graphics, color: number | Color, alpha: number, size: number): void;
107
112
  }
108
113
 
109
114
  namespace ArrowPing {
110
115
  interface Any extends AnyArrowPing {}
111
- type AnyConstructor = typeof AnyArrowPing;
116
+ interface AnyConstructor extends Identity<typeof AnyArrowPing> {}
112
117
 
113
118
  /** @internal */
114
- type _Options = NullishProps<{
119
+ type _ConstructorOptions = NullishProps<{
115
120
  /**
116
121
  * The angle of the arrow in radians.
117
122
  * @defaultValue `0`
@@ -120,7 +125,7 @@ declare global {
120
125
  rotation: number;
121
126
  }>;
122
127
 
123
- interface Options extends PulsePingOptions, _Options {}
128
+ interface ConstructorOptions extends _ConstructorOptions, PulsePing.ConstructorOptions {}
124
129
  }
125
130
 
126
131
  /**
@@ -131,36 +136,37 @@ declare global {
131
136
  * @param origin - The canvas coordinates of the origin of the ping.
132
137
  * @param options - Additional options to configure the ping animation.
133
138
  */
134
- constructor(origin: PIXI.Point, options: AlertPing.Options);
139
+ constructor(origin: PIXI.Point, options: AlertPing.ConstructorOptions);
135
140
 
136
141
  protected override _drawShape(g: PIXI.Graphics, color: number | Color, alpha: number, size: number): void;
137
142
  }
138
143
 
139
144
  namespace AlertPing {
140
145
  interface Any extends AnyAlertPing {}
141
- type AnyConstructor = typeof AnyAlertPing;
146
+ interface AnyConstructor extends Identity<typeof AnyAlertPing> {}
142
147
 
143
148
  /** @privateRemarks Only exists to change the default value of `color` */
144
- interface Options extends PulsePingOptions {
149
+ interface ConstructorOptions extends PulsePing.ConstructorOptions {
145
150
  /**
146
151
  * @defaultValue `"#ff0000"`
147
152
  * @remarks Can't be `null` or `undefined` because `options` is `mergeObject`ed with an object with this key,
148
153
  * and passing either to `Color.from` produces a `Color(NaN)`, which may cause breakage in subclasses or when
149
154
  * passed to PIXI methods
155
+ * @privateRemarks Typing this as `Ping.ConstructorOptions["color"]` breaks, because it thinks `| undefined` has snuck in for unknown reasons
150
156
  */
151
- color?: PulsePingOptions["color"];
157
+ color?: Color.Source;
152
158
  }
153
159
  }
154
160
  }
155
161
 
156
162
  declare abstract class AnyPulsePing extends PulsePing {
157
- constructor(arg0: never, ...args: never[]);
163
+ constructor(...args: never);
158
164
  }
159
165
 
160
166
  declare abstract class AnyArrowPing extends ArrowPing {
161
- constructor(arg0: never, ...args: never[]);
167
+ constructor(...args: never);
162
168
  }
163
169
 
164
170
  declare abstract class AnyAlertPing extends AlertPing {
165
- constructor(arg0: never, ...args: never[]);
171
+ constructor(...args: never);
166
172
  }
@@ -1,5 +1,14 @@
1
- import type { AnyConstructor, FixedInstanceType, InexactPartial, Mixin } from "fvtt-types/utils";
2
- import type { LogCompatibilityWarningOptions } from "../../../../common/utils/logging.d.mts";
1
+ import type {
2
+ AnyConstructor,
3
+ Coalesce,
4
+ ConcreteKeys,
5
+ FixedInstanceType,
6
+ InexactPartial,
7
+ MakeConform,
8
+ Mixin,
9
+ PhantomConstructor,
10
+ } from "fvtt-types/utils";
11
+ import type { LogCompatibilityWarningOptions } from "#common/utils/logging.d.mts";
3
12
 
4
13
  declare class RenderFlagObject {
5
14
  /** @privateRemarks All mixin classses should accept anything for its constructor. */
@@ -9,12 +18,12 @@ declare class RenderFlagObject {
9
18
  * Configure the render flags used for this class.
10
19
  * @defaultValue `{}`
11
20
  */
12
- static RENDER_FLAGS: Record<string, RenderFlag.Any>;
21
+ static RENDER_FLAGS: RenderFlagsMixin.RENDER_FLAGS;
13
22
 
14
23
  /**
15
24
  * The ticker priority when RenderFlags of this class are handled.
16
25
  * Valid values are OBJECTS or PERCEPTION.
17
- * @defaultValue "OBJECTS"
26
+ * @defaultValue `"OBJECTS"`
18
27
  */
19
28
  static RENDER_FLAG_PRIORITY: "OBJECTS" | "PERCEPTION";
20
29
 
@@ -22,7 +31,8 @@ declare class RenderFlagObject {
22
31
  * Status flags which are applied at render-time to update the PlaceableObject.
23
32
  * If an object defines RenderFlags, it should at least include flags for "redraw" and "refresh".
24
33
  */
25
- renderFlags: RenderFlags;
34
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
35
+ renderFlags: RenderFlags<{}>;
26
36
 
27
37
  /**
28
38
  * Apply any current render flags, clearing the renderFlags set.
@@ -35,12 +45,16 @@ declare class RenderFlagObject {
35
45
  * @privateRemarks Values are marked as optional here based on use, foundry docs incomplete
36
46
  * @internal
37
47
  */
38
- type _RenderFlags<Flags> = InexactPartial<{
39
- /** Activating this flag also sets these flags to true */
40
- propagate: Array<keyof Flags>;
48
+ type _RenderFlag<Keys extends string> = InexactPartial<{
49
+ /**
50
+ * Activating this flag also sets these flags to true
51
+ */
52
+ propagate: Keys[];
41
53
 
42
- /** Activating this flag resets these flags to false */
43
- reset: Array<keyof Flags>;
54
+ /**
55
+ * Activating this flag resets these flags to false
56
+ */
57
+ reset: Keys[];
44
58
 
45
59
  /**
46
60
  * Is this flag deprecated? The deprecation options are passed to
@@ -60,40 +74,46 @@ type _RenderFlags<Flags> = InexactPartial<{
60
74
  }>;
61
75
 
62
76
  declare global {
63
- // @ts-expect-error - RenderFlag is built around willfully violating subclassing rules.
64
- // The primary issue at hand is that each value can refer to the keys, thus making it technically
65
- // unsound to apply a subclass to its superclass.
66
- interface RenderFlag<out Flags> extends _RenderFlags<Flags> {}
77
+ // Note(LukeAbby): The usage of `ConcreteKeys` is a hazard; if tsc were to become smarter it might
78
+ // notice that `ConcreteKeys<Flags>` is actually contravariant and reject this type. However
79
+ // `RenderFlags` is built upon the assumption this is only used in safe ways.
80
+ interface RenderFlag<out Flags extends object, Key extends keyof Flags>
81
+ extends _RenderFlag<Exclude<Extract<ConcreteKeys<Flags>, string>, Key>> {}
67
82
 
68
83
  namespace RenderFlag {
69
- type Any = RenderFlag<any>;
84
+ interface Any extends _RenderFlag<string> {}
85
+ }
86
+
87
+ namespace RenderFlags {
88
+ type ValidateFlags<Flags extends object> = {
89
+ [K in keyof Flags]: MakeConform<Flags[K], _RenderFlag<Extract<Exclude<keyof Flags, K>, string>>>;
90
+ };
91
+
92
+ interface Config {
93
+ /** The object which owns this RenderFlags instance */
94
+ object?: RenderFlagObject;
95
+
96
+ /**
97
+ * The update priority when these render flags are applied.
98
+ * Valid options are OBJECTS or PERCEPTION.
99
+ * @defaultValue `PIXI.UPDATE_PRIORITY.OBJECTS`
100
+ */
101
+ priority?: typeof PIXI.UPDATE_PRIORITY.OBJECTS | typeof PIXI.UPDATE_PRIORITY.PERCEPTION;
102
+ }
70
103
  }
71
104
 
72
105
  /**
73
106
  * A data structure for tracking a set of boolean status flags.
74
107
  * This is a restricted set which can only accept flag values which are pre-defined.
75
108
  */
76
- class RenderFlags extends Set<string> {
109
+ class RenderFlags<Flags extends RenderFlags.ValidateFlags<Flags>> extends Set<string> {
77
110
  /**
78
111
  * @param flags - An object which defines the flags which are supported for tracking
79
112
  * @param config - Optional configuration
80
113
  */
81
- constructor(
82
- flags: Record<string, RenderFlag<Record<string, boolean>>>,
83
- config?: {
84
- /** The object which owns this RenderFlags instance */
85
- object?: RenderFlagObject;
86
-
87
- /**
88
- * The update priority when these render flags are applied.
89
- * Valid options are OBJECTS or PERCEPTION.
90
- * @defaultValue `PIXI.UPDATE_PRIORITY.OBJECTS`
91
- */
92
- priority?: PIXI.UPDATE_PRIORITY;
93
- },
94
- );
95
-
96
- readonly flags: Record<string, RenderFlag<Record<string, boolean>>>;
114
+ constructor(flags: Flags, config?: RenderFlags.Config);
115
+
116
+ readonly flags: Flags;
97
117
 
98
118
  readonly object: RenderFlagObject;
99
119
 
@@ -112,24 +132,49 @@ declare global {
112
132
 
113
133
  /**
114
134
  * Activate certain flags, also toggling propagation and reset behaviors
135
+ * @remarks Flags are only set if `true`, nullish values are discarded
115
136
  */
116
- set(changes: Record<string, boolean>): void;
137
+ set(changes: Record<string, boolean | undefined | null>): void;
117
138
  }
118
139
 
119
140
  /**
120
141
  * Add RenderFlags functionality to some other object.
121
142
  * This mixin standardizes the interface for such functionality.
122
- * @param Base - The base class being mixed. Normally a PIXI.DisplayObject
143
+ * @param Base - The base class being mixed: defaults to an anonymous empty class.
123
144
  * @returns The mixed class definition
145
+ *
146
+ * @remarks `Base` is normally a PIXI.DisplayObject
124
147
  */
125
- function RenderFlagsMixin<BaseClass extends RenderFlagsMixin.BaseClass>(
126
- Base: BaseClass,
127
- ): Mixin<typeof RenderFlagObject, BaseClass>;
148
+ // Note(LukeAbby): In theory a similar thing to what happens in `CanvasGroupMixin` could be done.
149
+ // That is passing up a generic to instantiate the generic side. However `RenderFlagsMixin` is
150
+ // only inherited directly by `PerceptionManager` and `PlaceableObject`.
151
+ // Therefore it's mostly the subclasses of `PlaceableObject` that face this problem and that can't
152
+ // be solved here unfortunately.
153
+ function RenderFlagsMixin<BaseClass extends RenderFlagsMixin.BaseClass | undefined = undefined>(
154
+ Base?: BaseClass,
155
+ ): RenderFlagsMixin.Mix<BaseClass>;
128
156
 
129
157
  namespace RenderFlagsMixin {
130
- type AnyMixedConstructor = ReturnType<typeof RenderFlagsMixin<BaseClass>>;
158
+ interface AnyMixedConstructor extends ReturnType<typeof RenderFlagsMixin<BaseClass>> {}
131
159
  interface AnyMixed extends FixedInstanceType<AnyMixedConstructor> {}
132
160
 
161
+ type Mix<BaseClass extends RenderFlagsMixin.BaseClass | undefined> = Mixin<
162
+ typeof RenderFlagObject,
163
+ Coalesce<BaseClass, PhantomConstructor>
164
+ >;
165
+
133
166
  type BaseClass = AnyConstructor;
167
+
168
+ type RENDER_FLAGS = Record<string, RenderFlag.Any>;
169
+
170
+ /**
171
+ * @internal This type exists only to make sure `ToBooleanFlags` isn't a homomorphic mapped type
172
+ * to avoid keeping documentation.
173
+ */
174
+ type _KeyOf<T> = keyof T;
175
+
176
+ type ToBooleanFlags<RenderFlags extends object> = {
177
+ [K in _KeyOf<RenderFlags>]?: boolean | null | undefined;
178
+ };
134
179
  }
135
180
  }