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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (559) hide show
  1. package/README.md +17 -18
  2. package/package.json +74 -32
  3. package/src/configuration/configuration.d.mts +316 -0
  4. package/src/configuration/documents.d.mts +295 -0
  5. package/src/configuration/globals.d.mts +357 -0
  6. package/src/configuration/index.d.mts +5 -0
  7. package/src/foundry/client/apps/app.d.mts +129 -122
  8. package/src/foundry/client/apps/av/av-config.d.mts +12 -7
  9. package/src/foundry/client/apps/av/cameras.d.mts +12 -7
  10. package/src/foundry/client/apps/dice/dice-config.d.mts +59 -0
  11. package/src/foundry/client/apps/dice/index.d.mts +1 -0
  12. package/src/foundry/client/apps/form.d.mts +114 -86
  13. package/src/foundry/client/apps/forms/actor.d.mts +21 -11
  14. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +12 -7
  15. package/src/foundry/client/apps/forms/adventure-importer.d.mts +14 -6
  16. package/src/foundry/client/apps/forms/base-sheet.d.mts +16 -8
  17. package/src/foundry/client/apps/forms/card-config.d.mts +16 -8
  18. package/src/foundry/client/apps/forms/cards-config.d.mts +15 -14
  19. package/src/foundry/client/apps/forms/combat-config.d.mts +7 -7
  20. package/src/foundry/client/apps/forms/combatant-config.d.mts +3 -3
  21. package/src/foundry/client/apps/forms/default-sheets-config.d.mts +1 -1
  22. package/src/foundry/client/apps/forms/effect-config.d.mts +7 -7
  23. package/src/foundry/client/apps/forms/folder-config.d.mts +5 -5
  24. package/src/foundry/client/apps/forms/fonts.d.mts +42 -35
  25. package/src/foundry/client/apps/forms/grid-config.d.mts +12 -13
  26. package/src/foundry/client/apps/forms/image-popout.d.mts +29 -23
  27. package/src/foundry/client/apps/forms/item.d.mts +9 -9
  28. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +16 -14
  29. package/src/foundry/client/apps/forms/journal-sheet.d.mts +48 -38
  30. package/src/foundry/client/apps/forms/macro-config.d.mts +7 -7
  31. package/src/foundry/client/apps/forms/measure-template.d.mts +10 -12
  32. package/src/foundry/client/apps/forms/ownership.d.mts +5 -5
  33. package/src/foundry/client/apps/forms/playlist-config.d.mts +8 -10
  34. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +7 -7
  35. package/src/foundry/client/apps/forms/roll-table-config.d.mts +11 -10
  36. package/src/foundry/client/apps/forms/scene-config.d.mts +40 -41
  37. package/src/foundry/client/apps/forms/sheet-config.d.mts +9 -21
  38. package/src/foundry/client/apps/forms/user-config.d.mts +13 -12
  39. package/src/foundry/client/apps/hud/chatbubble.d.mts +18 -6
  40. package/src/foundry/client/apps/hud/container.d.mts +4 -4
  41. package/src/foundry/client/apps/hud/controls.d.mts +126 -81
  42. package/src/foundry/client/apps/hud/hotbar.d.mts +17 -12
  43. package/src/foundry/client/apps/hud/hud.d.mts +5 -5
  44. package/src/foundry/client/apps/hud/menu.d.mts +10 -3
  45. package/src/foundry/client/apps/hud/navigation.d.mts +14 -9
  46. package/src/foundry/client/apps/hud/pause.d.mts +9 -4
  47. package/src/foundry/client/apps/hud/players.d.mts +14 -9
  48. package/src/foundry/client/apps/i18n.d.mts +31 -27
  49. package/src/foundry/client/apps/index.d.mts +1 -0
  50. package/src/foundry/client/apps/placeables/drawing-config.d.mts +41 -33
  51. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +5 -5
  52. package/src/foundry/client/apps/placeables/index.d.mts +0 -2
  53. package/src/foundry/client/apps/placeables/note-config.d.mts +28 -18
  54. package/src/foundry/client/apps/placeables/tile-config.d.mts +23 -10
  55. package/src/foundry/client/apps/placeables/tile-hud.d.mts +10 -5
  56. package/src/foundry/client/apps/placeables/token-config.d.mts +91 -58
  57. package/src/foundry/client/apps/placeables/token-hud.d.mts +12 -7
  58. package/src/foundry/client/apps/placeables/wall-config.d.mts +21 -17
  59. package/src/foundry/client/apps/sidebar/apps/chat-popout.d.mts +5 -5
  60. package/src/foundry/client/apps/sidebar/apps/client-settings.d.mts +3 -3
  61. package/src/foundry/client/apps/sidebar/apps/compendium.d.mts +15 -13
  62. package/src/foundry/client/apps/sidebar/apps/invitation-links.d.mts +3 -3
  63. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +3 -2
  64. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +6 -6
  65. package/src/foundry/client/apps/sidebar/apps/permission-config.d.mts +6 -6
  66. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +34 -29
  67. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +2 -2
  68. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +13 -10
  69. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +50 -35
  70. package/src/foundry/client/apps/sidebar/document-directory.d.mts +52 -38
  71. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +4 -4
  72. package/src/foundry/client/apps/sidebar/sidebar-tab.d.mts +3 -3
  73. package/src/foundry/client/apps/sidebar/sidebar.d.mts +9 -4
  74. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +11 -2
  75. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +11 -2
  76. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +39 -27
  77. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +21 -12
  78. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +30 -15
  79. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +11 -2
  80. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +11 -2
  81. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +14 -5
  82. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +30 -22
  83. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +11 -2
  84. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +14 -5
  85. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +23 -5
  86. package/src/foundry/client/apps/templates.d.mts +1 -1
  87. package/src/foundry/client/av/client.d.mts +1 -1
  88. package/src/foundry/client/av/clients/simplepeer.d.mts +11 -1
  89. package/src/foundry/client/av/master.d.mts +2 -2
  90. package/src/foundry/client/av/settings.d.mts +17 -15
  91. package/src/foundry/client/config.d.mts +444 -312
  92. package/src/foundry/client/core/document-index.d.mts +11 -3
  93. package/src/foundry/client/core/hooks.d.mts +2 -4
  94. package/src/foundry/client/core/image.d.mts +14 -13
  95. package/src/foundry/client/core/issues.d.mts +9 -4
  96. package/src/foundry/client/core/keybindings.d.mts +5 -5
  97. package/src/foundry/client/core/nue.d.mts +1 -1
  98. package/src/foundry/client/core/packages.d.mts +397 -61
  99. package/src/foundry/client/core/settings.d.mts +62 -38
  100. package/src/foundry/client/core/socket.d.mts +2 -2
  101. package/src/foundry/client/core/sorting.d.mts +6 -6
  102. package/src/foundry/client/core/time.d.mts +6 -3
  103. package/src/foundry/client/core/tooltip.d.mts +2 -2
  104. package/src/foundry/client/core/tour.d.mts +59 -50
  105. package/src/foundry/client/core/tours.d.mts +1 -1
  106. package/src/foundry/client/core/utils.d.mts +33 -10
  107. package/src/foundry/client/core/video.d.mts +1 -1
  108. package/src/foundry/client/core/workers.d.mts +24 -17
  109. package/src/foundry/client/data/abstract/canvas-document.d.mts +21 -16
  110. package/src/foundry/client/data/abstract/client-document.d.mts +153 -183
  111. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +23 -39
  112. package/src/foundry/client/data/abstract/document-collection.d.mts +96 -68
  113. package/src/foundry/client/data/abstract/world-collection.d.mts +47 -55
  114. package/src/foundry/client/data/collections/actors.d.mts +30 -28
  115. package/src/foundry/client/data/collections/cards.d.mts +16 -3
  116. package/src/foundry/client/data/collections/combats.d.mts +18 -5
  117. package/src/foundry/client/data/collections/compendium-collection.d.mts +81 -99
  118. package/src/foundry/client/data/collections/compendium-folders.d.mts +6 -6
  119. package/src/foundry/client/data/collections/compendium-packs.d.mts +5 -5
  120. package/src/foundry/client/data/collections/fog.d.mts +16 -3
  121. package/src/foundry/client/data/collections/folder.d.mts +20 -6
  122. package/src/foundry/client/data/collections/items.d.mts +17 -4
  123. package/src/foundry/client/data/collections/journal.d.mts +22 -7
  124. package/src/foundry/client/data/collections/macros.d.mts +21 -19
  125. package/src/foundry/client/data/collections/messages.d.mts +19 -6
  126. package/src/foundry/client/data/collections/playlists.d.mts +17 -5
  127. package/src/foundry/client/data/collections/scenes.d.mts +24 -27
  128. package/src/foundry/client/data/collections/settings.d.mts +16 -3
  129. package/src/foundry/client/data/collections/tables.d.mts +18 -5
  130. package/src/foundry/client/data/collections/users.d.mts +19 -7
  131. package/src/foundry/client/data/documents/active-effect.d.mts +677 -85
  132. package/src/foundry/client/data/documents/actor-delta.d.mts +670 -27
  133. package/src/foundry/client/data/documents/actor.d.mts +718 -64
  134. package/src/foundry/client/data/documents/adventure.d.mts +480 -46
  135. package/src/foundry/client/data/documents/ambient-light.d.mts +423 -19
  136. package/src/foundry/client/data/documents/ambient-sound.d.mts +473 -14
  137. package/src/foundry/client/data/documents/card.d.mts +567 -36
  138. package/src/foundry/client/data/documents/cards.d.mts +744 -87
  139. package/src/foundry/client/data/documents/chat-message.d.mts +574 -42
  140. package/src/foundry/client/data/documents/combat.d.mts +699 -69
  141. package/src/foundry/client/data/documents/combatant.d.mts +504 -24
  142. package/src/foundry/client/data/documents/drawing.d.mts +540 -14
  143. package/src/foundry/client/data/documents/fog-exploration.d.mts +416 -21
  144. package/src/foundry/client/data/documents/folder.d.mts +468 -35
  145. package/src/foundry/client/data/documents/index.d.mts +2 -0
  146. package/src/foundry/client/data/documents/item.d.mts +677 -20
  147. package/src/foundry/client/data/documents/journal-entry-page.d.mts +585 -19
  148. package/src/foundry/client/data/documents/journal-entry.d.mts +619 -18
  149. package/src/foundry/client/data/documents/macro.d.mts +528 -25
  150. package/src/foundry/client/data/documents/measured-template.d.mts +478 -14
  151. package/src/foundry/client/data/documents/note.d.mts +491 -15
  152. package/src/foundry/client/data/documents/playlist-sound.d.mts +426 -24
  153. package/src/foundry/client/data/documents/playlist.d.mts +665 -74
  154. package/src/foundry/client/data/documents/region-behavior.d.mts +507 -0
  155. package/src/foundry/client/data/documents/region.d.mts +784 -0
  156. package/src/foundry/client/data/documents/scene.d.mts +983 -147
  157. package/src/foundry/client/data/documents/setting.d.mts +395 -13
  158. package/src/foundry/client/data/documents/table-result.d.mts +476 -14
  159. package/src/foundry/client/data/documents/table.d.mts +661 -78
  160. package/src/foundry/client/data/documents/tile.d.mts +499 -14
  161. package/src/foundry/client/data/documents/token.d.mts +1111 -94
  162. package/src/foundry/client/data/documents/user.d.mts +493 -25
  163. package/src/foundry/client/data/documents/wall.d.mts +548 -14
  164. package/src/foundry/client/game.d.mts +60 -92
  165. package/src/foundry/client/head.d.mts +9 -9
  166. package/src/foundry/client/hooks.d.mts +257 -237
  167. package/src/foundry/client/pixi/board.d.mts +106 -94
  168. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +97 -25
  169. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +37 -19
  170. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +7 -10
  171. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +25 -15
  172. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +16 -6
  173. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +113 -54
  174. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +69 -26
  175. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +20 -2
  176. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +164 -99
  177. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +61 -22
  178. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +120 -53
  179. package/src/foundry/client/pixi/core/interaction/ping.d.mts +62 -31
  180. package/src/foundry/client/pixi/core/interaction/pings/chevron.d.mts +23 -10
  181. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +91 -34
  182. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +76 -30
  183. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +35 -5
  184. package/src/foundry/client/pixi/core/interaction/targets.d.mts +21 -18
  185. package/src/foundry/client/pixi/core/loader.d.mts +86 -76
  186. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +42 -17
  187. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +92 -64
  188. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +28 -10
  189. package/src/foundry/client/pixi/core/shapes/ray.d.mts +47 -23
  190. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +170 -75
  191. package/src/foundry/client/pixi/extensions/circle.d.mts +128 -125
  192. package/src/foundry/client/pixi/extensions/graphics.d.mts +3 -1
  193. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +5 -4
  194. package/src/foundry/client/pixi/extensions/polygon.d.mts +154 -134
  195. package/src/foundry/client/pixi/extensions/rectangle.d.mts +242 -259
  196. package/src/foundry/client/pixi/groups/effects.d.mts +75 -24
  197. package/src/foundry/client/pixi/groups/environment.d.mts +68 -19
  198. package/src/foundry/client/pixi/groups/hidden.d.mts +27 -11
  199. package/src/foundry/client/pixi/groups/interface.d.mts +62 -38
  200. package/src/foundry/client/pixi/groups/overlay.d.mts +19 -7
  201. package/src/foundry/client/pixi/groups/primary.d.mts +66 -44
  202. package/src/foundry/client/pixi/groups/rendered.d.mts +19 -7
  203. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +11 -15
  204. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +29 -28
  205. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +306 -272
  206. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +18 -9
  207. package/src/foundry/client/pixi/layers/controls/door.d.mts +32 -11
  208. package/src/foundry/client/pixi/layers/controls/layer.d.mts +89 -77
  209. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +121 -96
  210. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +9 -12
  211. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +9 -10
  212. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +8 -8
  213. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +22 -22
  214. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +106 -86
  215. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +14 -5
  216. package/src/foundry/client/pixi/layers/effects/weather/particles/leaves.d.mts +31 -2
  217. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +137 -65
  218. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +14 -4
  219. package/src/foundry/client/pixi/layers/grid/layer.d.mts +92 -92
  220. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +37 -16
  221. package/src/foundry/client/pixi/layers/masks/depth.d.mts +12 -7
  222. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +19 -12
  223. package/src/foundry/client/pixi/layers/masks/vision.d.mts +104 -18
  224. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +16 -15
  225. package/src/foundry/client/pixi/layers/placeables/index.d.mts +1 -0
  226. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +12 -14
  227. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +49 -32
  228. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +113 -0
  229. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +81 -67
  230. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +11 -15
  231. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +30 -21
  232. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +66 -52
  233. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +54 -57
  234. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +62 -27
  235. package/src/foundry/client/pixi/perception/detection-mode.d.mts +121 -47
  236. package/src/foundry/client/pixi/perception/fog.d.mts +38 -15
  237. package/src/foundry/client/pixi/perception/perception-manager.d.mts +136 -136
  238. package/src/foundry/client/pixi/perception/vision-mode.d.mts +91 -64
  239. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +44 -16
  240. package/src/foundry/client/pixi/placeable.d.mts +238 -137
  241. package/src/foundry/client/pixi/placeables/drawing.d.mts +255 -133
  242. package/src/foundry/client/pixi/placeables/index.d.mts +1 -0
  243. package/src/foundry/client/pixi/placeables/light.d.mts +199 -64
  244. package/src/foundry/client/pixi/placeables/note.d.mts +145 -54
  245. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +30 -8
  246. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +41 -11
  247. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +59 -18
  248. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +120 -37
  249. package/src/foundry/client/pixi/placeables/region.d.mts +280 -0
  250. package/src/foundry/client/pixi/placeables/sound.d.mts +205 -66
  251. package/src/foundry/client/pixi/placeables/template.d.mts +181 -100
  252. package/src/foundry/client/pixi/placeables/tile.d.mts +206 -140
  253. package/src/foundry/client/pixi/placeables/token.d.mts +916 -449
  254. package/src/foundry/client/pixi/placeables/wall.d.mts +249 -129
  255. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +72 -33
  256. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +10 -9
  257. package/src/foundry/client/pixi/webgl/helpers/{framebugger-snapshot.d.mts → framebuffer-snapshot.d.mts} +10 -9
  258. package/src/foundry/client/pixi/webgl/helpers/index.d.mts +1 -1
  259. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +38 -23
  260. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +82 -53
  261. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +12 -12
  262. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +45 -28
  263. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +12 -11
  264. package/src/foundry/client/pixi/webgl/shaders/filters/base-mask-filter.d.mts +12 -10
  265. package/src/foundry/client/pixi/webgl/shaders/filters/blur.d.mts +22 -20
  266. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +36 -32
  267. package/src/foundry/client/pixi/webgl/shaders/filters/environment.d.mts +10 -9
  268. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +12 -11
  269. package/src/foundry/client/pixi/webgl/shaders/filters/invisibility.d.mts +10 -9
  270. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +12 -11
  271. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +67 -60
  272. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +24 -17
  273. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +13 -10
  274. package/src/foundry/client/pixi/webgl/shaders/filters/void.d.mts +10 -9
  275. package/src/foundry/client/pixi/webgl/shaders/filters/weather-occlusion-masks.d.mts +11 -10
  276. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +20 -14
  277. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +12 -11
  278. package/src/foundry/client/pixi/webgl/shaders/lighting/background-lighting.d.mts +10 -9
  279. package/src/foundry/client/pixi/webgl/shaders/lighting/base-lighting.d.mts +33 -33
  280. package/src/foundry/client/pixi/webgl/shaders/lighting/coloration-lighting.d.mts +10 -9
  281. package/src/foundry/client/pixi/webgl/shaders/lighting/darkness-lighting.d.mts +10 -9
  282. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/bewitching-wave.d.mts +19 -17
  283. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/black-hole.d.mts +10 -9
  284. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/chroma.d.mts +10 -9
  285. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/emanation.d.mts +10 -9
  286. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/energy-field.d.mts +10 -9
  287. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +19 -17
  288. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/flame.d.mts +19 -17
  289. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fog.d.mts +10 -9
  290. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/force-grid.d.mts +10 -8
  291. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/ghost-light.d.mts +19 -17
  292. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/hexa-dome.d.mts +10 -9
  293. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/light-dome.d.mts +10 -9
  294. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/magical-gloom.d.mts +10 -9
  295. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/pulse.d.mts +19 -17
  296. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/radial-rainbow.d.mts +10 -9
  297. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/revolving-light.d.mts +10 -9
  298. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/roiling-mass.d.mts +10 -9
  299. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/siren-light.d.mts +19 -17
  300. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/smoke-patch.d.mts +20 -17
  301. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/star-light.d.mts +10 -9
  302. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/sunburst.d.mts +19 -17
  303. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/swirling-rainbow.d.mts +10 -9
  304. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/torch.d.mts +19 -17
  305. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/vortex.d.mts +19 -17
  306. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/wave.d.mts +19 -17
  307. package/src/foundry/client/pixi/webgl/shaders/lighting/illumination-lighting.d.mts +10 -9
  308. package/src/foundry/client/pixi/webgl/shaders/region/adjust-darkness-level.d.mts +71 -29
  309. package/src/foundry/client/pixi/webgl/shaders/region/base.d.mts +54 -10
  310. package/src/foundry/client/pixi/webgl/shaders/region/highlight.d.mts +69 -9
  311. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +24 -25
  312. package/src/foundry/client/pixi/webgl/shaders/samplers/baseline-illumination.d.mts +10 -9
  313. package/src/foundry/client/pixi/webgl/shaders/samplers/color-adjustment.d.mts +38 -29
  314. package/src/foundry/client/pixi/webgl/shaders/samplers/depth.d.mts +21 -17
  315. package/src/foundry/client/pixi/webgl/shaders/samplers/fog-of-war.d.mts +10 -9
  316. package/src/foundry/client/pixi/webgl/shaders/samplers/occlusion.d.mts +20 -18
  317. package/src/foundry/client/pixi/webgl/shaders/samplers/primary.d.mts +11 -2
  318. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +28 -2
  319. package/src/foundry/client/pixi/webgl/shaders/vision/background-vision.d.mts +10 -9
  320. package/src/foundry/client/pixi/webgl/shaders/vision/base-vision.d.mts +11 -9
  321. package/src/foundry/client/pixi/webgl/shaders/vision/coloration-vision.d.mts +10 -9
  322. package/src/foundry/client/pixi/webgl/shaders/vision/effects/amplification.d.mts +10 -9
  323. package/src/foundry/client/pixi/webgl/shaders/vision/effects/wave.d.mts +19 -17
  324. package/src/foundry/client/pixi/webgl/shaders/vision/illumination-vision.d.mts +10 -9
  325. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +40 -36
  326. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +27 -33
  327. package/src/foundry/client/pixi/webgl/shaders/weather/fog.d.mts +17 -16
  328. package/src/foundry/client/pixi/webgl/shaders/weather/rain.d.mts +19 -18
  329. package/src/foundry/client/pixi/webgl/shaders/weather/snow.d.mts +15 -14
  330. package/src/foundry/client/pixi/workers/texture-worker.d.mts +33 -53
  331. package/src/foundry/client/tours/setup-tour.d.mts +15 -10
  332. package/src/foundry/client/ui/context.d.mts +48 -40
  333. package/src/foundry/client/ui/dialog.d.mts +137 -126
  334. package/src/foundry/client/ui/drag.d.mts +1 -1
  335. package/src/foundry/client/ui/dragdrop.d.mts +34 -28
  336. package/src/foundry/client/ui/editor.d.mts +29 -21
  337. package/src/foundry/client/ui/filepicker.d.mts +43 -38
  338. package/src/foundry/client/ui/filter.d.mts +62 -50
  339. package/src/foundry/client/ui/forms.d.mts +22 -22
  340. package/src/foundry/client/ui/notifications.d.mts +10 -3
  341. package/src/foundry/client/ui/prosemirror.d.mts +15 -7
  342. package/src/foundry/client/ui/secrets.d.mts +42 -27
  343. package/src/foundry/client/ui/tabs.d.mts +40 -33
  344. package/src/foundry/client-esm/applications/_module.d.mts +3 -3
  345. package/src/foundry/client-esm/applications/_types.d.mts +0 -2
  346. package/src/foundry/client-esm/applications/api/_module.d.mts +2 -2
  347. package/src/foundry/client-esm/applications/api/application.d.mts +36 -19
  348. package/src/foundry/client-esm/applications/api/dialog.d.mts +20 -22
  349. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +26 -12
  350. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +142 -126
  351. package/src/foundry/client-esm/applications/apps/_module.d.mts +2 -2
  352. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +10 -10
  353. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +3 -3
  354. package/src/foundry/client-esm/applications/dice/_module.d.mts +2 -2
  355. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +14 -2
  356. package/src/foundry/client-esm/applications/elements/_module.d.mts +2 -2
  357. package/src/foundry/client-esm/applications/elements/document-tags.d.mts +2 -0
  358. package/src/foundry/client-esm/applications/elements/file-picker.d.mts +1 -1
  359. package/src/foundry/client-esm/applications/elements/multi-select.d.mts +15 -5
  360. package/src/foundry/client-esm/applications/elements/string-tags.d.mts +1 -1
  361. package/src/foundry/client-esm/applications/forms/fields.d.mts +1 -1
  362. package/src/foundry/client-esm/applications/sheets/_module.d.mts +2 -2
  363. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +3 -3
  364. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +10 -8
  365. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +9 -7
  366. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +3 -3
  367. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +30 -5
  368. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +36 -5
  369. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +8 -7
  370. package/src/foundry/client-esm/applications/ui/_module.d.mts +2 -2
  371. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +45 -3
  372. package/src/foundry/client-esm/audio/_module.d.mts +2 -3
  373. package/src/foundry/client-esm/audio/_types.d.mts +2 -0
  374. package/src/foundry/client-esm/audio/biquad.d.mts +76 -26
  375. package/src/foundry/client-esm/audio/cache.d.mts +31 -20
  376. package/src/foundry/client-esm/audio/convolver.d.mts +47 -25
  377. package/src/foundry/client-esm/audio/helper.d.mts +124 -80
  378. package/src/foundry/client-esm/audio/sound.d.mts +230 -126
  379. package/src/foundry/client-esm/audio/timeout.d.mts +28 -12
  380. package/src/foundry/client-esm/canvas/_module.d.mts +2 -2
  381. package/src/foundry/client-esm/canvas/edges/_module.d.mts +2 -2
  382. package/src/foundry/client-esm/canvas/edges/collision.d.mts +69 -18
  383. package/src/foundry/client-esm/canvas/edges/edge.d.mts +110 -41
  384. package/src/foundry/client-esm/canvas/edges/edges.d.mts +10 -0
  385. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +56 -26
  386. package/src/foundry/client-esm/canvas/regions/_module.d.mts +6 -11
  387. package/src/foundry/client-esm/canvas/regions/geometry.d.mts +38 -0
  388. package/src/foundry/client-esm/canvas/regions/mesh.d.mts +72 -0
  389. package/src/foundry/client-esm/canvas/regions/polygon-tree.d.mts +130 -0
  390. package/src/foundry/client-esm/canvas/regions/shape.d.mts +129 -0
  391. package/src/foundry/client-esm/canvas/scene-manager.d.mts +13 -3
  392. package/src/foundry/client-esm/canvas/smaa/blend.d.mts +14 -3
  393. package/src/foundry/client-esm/canvas/smaa/edges.d.mts +25 -3
  394. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +121 -23
  395. package/src/foundry/client-esm/canvas/smaa/weights.d.mts +26 -3
  396. package/src/foundry/client-esm/canvas/sources/_module.d.mts +2 -2
  397. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +84 -40
  398. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +103 -39
  399. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +89 -15
  400. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +71 -27
  401. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +49 -20
  402. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +57 -16
  403. package/src/foundry/client-esm/canvas/sources/point-movement-source.d.mts +31 -4
  404. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +45 -12
  405. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +98 -52
  406. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +180 -69
  407. package/src/foundry/client-esm/canvas/tokens/_module.d.mts +2 -3
  408. package/src/foundry/client-esm/canvas/tokens/ring-config.d.mts +175 -2
  409. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +141 -2
  410. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +284 -2
  411. package/src/foundry/client-esm/client.d.mts +47 -54
  412. package/src/foundry/client-esm/data/_module.d.mts +2 -2
  413. package/src/foundry/client-esm/data/client-backend.d.mts +22 -23
  414. package/src/foundry/client-esm/data/region-behaviors/_module.d.mts +11 -14
  415. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +57 -0
  416. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +59 -0
  417. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +64 -0
  418. package/src/foundry/client-esm/data/region-behaviors/execute-macro.d.mts +27 -0
  419. package/src/foundry/client-esm/data/region-behaviors/execute-script.d.mts +23 -0
  420. package/src/foundry/client-esm/data/region-behaviors/pause-game.d.mts +23 -0
  421. package/src/foundry/client-esm/data/region-behaviors/suppress-weather.d.mts +17 -0
  422. package/src/foundry/client-esm/data/region-behaviors/teleport-token.d.mts +32 -0
  423. package/src/foundry/client-esm/data/region-behaviors/toggle-behavior.d.mts +31 -0
  424. package/src/foundry/client-esm/dice/_module.d.mts +2 -3
  425. package/src/foundry/client-esm/dice/parser.d.mts +11 -25
  426. package/src/foundry/client-esm/dice/roll.d.mts +115 -89
  427. package/src/foundry/client-esm/dice/terms/_module.d.mts +2 -3
  428. package/src/foundry/client-esm/dice/terms/coin.d.mts +8 -5
  429. package/src/foundry/client-esm/dice/terms/dice.d.mts +93 -63
  430. package/src/foundry/client-esm/dice/terms/die.d.mts +11 -4
  431. package/src/foundry/client-esm/dice/terms/fate.d.mts +9 -2
  432. package/src/foundry/client-esm/dice/terms/function.d.mts +18 -18
  433. package/src/foundry/client-esm/dice/terms/numeric.d.mts +3 -5
  434. package/src/foundry/client-esm/dice/terms/operator.d.mts +2 -2
  435. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +9 -10
  436. package/src/foundry/client-esm/dice/terms/pool.d.mts +25 -31
  437. package/src/foundry/client-esm/dice/terms/string.d.mts +4 -4
  438. package/src/foundry/client-esm/dice/terms/term.d.mts +18 -4
  439. package/src/foundry/client-esm/dice/twister.d.mts +3 -3
  440. package/src/foundry/client-esm/helpers/_module.d.mts +2 -2
  441. package/src/foundry/client-esm/helpers/_types.d.mts +12 -46
  442. package/src/foundry/client-esm/helpers/compendium-art.d.mts +56 -4
  443. package/src/foundry/common/abstract/_types.d.mts +60 -54
  444. package/src/foundry/common/abstract/backend.d.mts +51 -45
  445. package/src/foundry/common/abstract/data.d.mts +132 -154
  446. package/src/foundry/common/abstract/document.d.mts +1306 -438
  447. package/src/foundry/common/abstract/embedded-collection-delta.d.mts +1 -1
  448. package/src/foundry/common/abstract/embedded-collection.d.mts +37 -7
  449. package/src/foundry/common/abstract/module.d.mts +3 -2
  450. package/src/foundry/common/abstract/singleton-collection.d.mts +1 -1
  451. package/src/foundry/common/abstract/socket.d.mts +1 -1
  452. package/src/foundry/common/abstract/type-data.d.mts +58 -55
  453. package/src/foundry/common/config.d.mts +5 -3
  454. package/src/foundry/common/constants.d.mts +261 -231
  455. package/src/foundry/common/data/data.d.mts +200 -94
  456. package/src/foundry/common/data/fields.d.mts +700 -644
  457. package/src/foundry/common/data/module.d.mts +2 -2
  458. package/src/foundry/common/data/validation-failure.d.mts +12 -9
  459. package/src/foundry/common/documents/_module.d.mts +4 -2
  460. package/src/foundry/common/documents/_types.d.mts +22 -50
  461. package/src/foundry/common/documents/active-effect.d.mts +280 -179
  462. package/src/foundry/common/documents/actor-delta.d.mts +318 -69
  463. package/src/foundry/common/documents/actor.d.mts +305 -117
  464. package/src/foundry/common/documents/adventure.d.mts +266 -141
  465. package/src/foundry/common/documents/ambient-light.d.mts +268 -75
  466. package/src/foundry/common/documents/ambient-sound.d.mts +268 -109
  467. package/src/foundry/common/documents/card.d.mts +267 -174
  468. package/src/foundry/common/documents/cards.d.mts +299 -126
  469. package/src/foundry/common/documents/chat-message.d.mts +276 -158
  470. package/src/foundry/common/documents/combat.d.mts +300 -89
  471. package/src/foundry/common/documents/combatant.d.mts +275 -88
  472. package/src/foundry/common/documents/drawing.d.mts +286 -206
  473. package/src/foundry/common/documents/fog-exploration.d.mts +258 -70
  474. package/src/foundry/common/documents/folder.d.mts +252 -81
  475. package/src/foundry/common/documents/item.d.mts +305 -99
  476. package/src/foundry/common/documents/journal-entry-page.d.mts +279 -189
  477. package/src/foundry/common/documents/journal-entry.d.mts +294 -68
  478. package/src/foundry/common/documents/macro.d.mts +254 -132
  479. package/src/foundry/common/documents/measured-template.d.mts +293 -139
  480. package/src/foundry/common/documents/note.d.mts +274 -149
  481. package/src/foundry/common/documents/playlist-sound.d.mts +260 -94
  482. package/src/foundry/common/documents/playlist.d.mts +279 -120
  483. package/src/foundry/common/documents/region-behavior.d.mts +329 -0
  484. package/src/foundry/common/documents/region.d.mts +327 -0
  485. package/src/foundry/common/documents/roll-table.d.mts +286 -102
  486. package/src/foundry/common/documents/scene.d.mts +276 -336
  487. package/src/foundry/common/documents/setting.d.mts +229 -54
  488. package/src/foundry/common/documents/table-result.d.mts +267 -94
  489. package/src/foundry/common/documents/tile.d.mts +301 -170
  490. package/src/foundry/common/documents/token.d.mts +351 -445
  491. package/src/foundry/common/documents/user.d.mts +256 -144
  492. package/src/foundry/common/documents/wall.d.mts +273 -156
  493. package/src/foundry/common/grid/_module.d.mts +3 -3
  494. package/src/foundry/common/grid/base.d.mts +66 -49
  495. package/src/foundry/common/grid/gridless.d.mts +2 -2
  496. package/src/foundry/common/grid/hexagonal.d.mts +35 -28
  497. package/src/foundry/common/grid/square.d.mts +3 -3
  498. package/src/foundry/common/packages/base-module.d.mts +6 -24
  499. package/src/foundry/common/packages/base-package.d.mts +23 -21
  500. package/src/foundry/common/packages/base-system.d.mts +6 -63
  501. package/src/foundry/common/packages/base-world.d.mts +8 -61
  502. package/src/foundry/common/packages/module.d.mts +7 -7
  503. package/src/foundry/common/packages/sub-types.d.mts +2 -2
  504. package/src/foundry/common/primitives/array.d.mts +4 -4
  505. package/src/foundry/common/primitives/math.d.mts +7 -1
  506. package/src/foundry/common/primitives/number.d.mts +2 -2
  507. package/src/foundry/common/primitives/set.d.mts +17 -14
  508. package/src/foundry/common/primitives/string.d.mts +1 -1
  509. package/src/foundry/common/prosemirror/_module.d.mts +15 -15
  510. package/src/foundry/common/prosemirror/dirty-plugin.d.mts +1 -1
  511. package/src/foundry/common/prosemirror/dom-parser.d.mts +2 -1
  512. package/src/foundry/common/prosemirror/dropdown.d.mts +1 -1
  513. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +2 -2
  514. package/src/foundry/common/prosemirror/image-plugin.d.mts +1 -1
  515. package/src/foundry/common/prosemirror/menu.d.mts +3 -3
  516. package/src/foundry/common/prosemirror/paste-transformer.d.mts +1 -1
  517. package/src/foundry/common/prosemirror/plugin.d.mts +2 -2
  518. package/src/foundry/common/prosemirror/schema/index.d.mts +0 -1
  519. package/src/foundry/common/prosemirror/schema/lists.d.mts +2 -0
  520. package/src/foundry/common/prosemirror/util.d.mts +1 -1
  521. package/src/foundry/common/types.d.mts +3 -3
  522. package/src/foundry/common/utils/bitmask.d.mts +23 -11
  523. package/src/foundry/common/utils/collection.d.mts +61 -38
  524. package/src/foundry/common/utils/color.d.mts +20 -2
  525. package/src/foundry/common/utils/event-emitter.d.mts +32 -17
  526. package/src/foundry/common/utils/helpers.d.mts +36 -26
  527. package/src/foundry/common/utils/http.d.mts +2 -2
  528. package/src/foundry/common/utils/module.d.mts +2 -2
  529. package/src/foundry/common/utils/string-tree.d.mts +45 -39
  530. package/src/foundry/common/utils/word-tree.d.mts +10 -23
  531. package/src/foundry/index.d.mts +0 -1
  532. package/src/foundry/{clipper → public/scripts/clipper}/clipper.d.mts +58 -16
  533. package/src/foundry/public/scripts/index.d.mts +1 -0
  534. package/src/foundry/public/scripts/workers/image-compressor.d.mts +23 -0
  535. package/src/foundry/public/scripts/workers/index.d.mts +1 -0
  536. package/{index-lenient.d.mts → src/index-lenient.d.mts} +2 -0
  537. package/src/index.d.mts +6 -0
  538. package/src/tsconfig.json +15 -0
  539. package/src/types/augments/particles.d.mts +29 -0
  540. package/src/types/augments/pixi.d.mts +1024 -21
  541. package/src/types/augments/smooth.d.mts +31 -0
  542. package/src/types/augments/tinyMCE.d.mts +1 -1
  543. package/src/types/config.d.mts +20 -312
  544. package/src/types/documentConfiguration.d.mts +286 -542
  545. package/src/types/index.d.mts +1 -1
  546. package/src/types/lib.d.mts +12 -0
  547. package/src/types/workers/image-compressor.d.mts +176 -0
  548. package/src/utils/index.d.mts +1279 -0
  549. package/tsconfig.json +29 -0
  550. package/tsconfig.main.json +8 -0
  551. package/tsconfig.miscellaneous.json +16 -0
  552. package/index.d.mts +0 -5
  553. package/src/foundry/client/apps/placeables/light-config.d.mts +0 -100
  554. package/src/foundry/client/apps/placeables/sound-config.d.mts +0 -43
  555. package/src/foundry/common/documents/module.d.mts +0 -35
  556. package/src/foundry/common/primitives/regex.d.mts +0 -12
  557. package/src/types/helperTypes.d.mts +0 -583
  558. package/src/types/utils.d.mts +0 -539
  559. /package/src/foundry/{clipper → public/scripts/clipper}/index.d.mts +0 -0
@@ -1,20 +1,20 @@
1
- import type { AnyFunction, InexactPartial } from "../../../../types/utils.d.mts";
1
+ import type { AnyObject, Identity, InexactPartial, IntentionalPartial, NullishProps } from "fvtt-types/utils";
2
2
  import type BaseEffectSource from "./base-effect-source.d.mts";
3
-
4
- // TODO: Remove after shaders are done
5
- type AdaptiveDarknessShader = unknown;
3
+ import type BaseLightSource from "./base-light-source.d.mts";
6
4
 
7
5
  /**
8
6
  * An abstract class which extends the base PointSource to provide common functionality for rendering.
9
7
  * This class is extended by both the LightSource and VisionSource subclasses.
10
8
  */
11
- declare class RenderedEffectSource<
12
- SourceData extends RenderedEffectSource.RenderedEffectSourceData = RenderedEffectSource.RenderedEffectSourceData,
9
+ declare abstract class RenderedEffectSource<
10
+ SourceData extends RenderedEffectSource.SourceData = RenderedEffectSource.SourceData,
13
11
  SourceShape extends PIXI.Polygon = PIXI.Polygon,
14
- RenderingLayers extends Record<string, RenderedEffectSource.RenderedEffectSourceLayer> = RenderedEffectSource.Layers,
12
+ RenderingLayers extends Record<string, RenderedEffectSource.SourceLayer> = RenderedEffectSource.Layers,
15
13
  > extends BaseEffectSource<SourceData, SourceShape> {
16
14
  /**
17
15
  * Keys of the data object which require shaders to be re-initialized.
16
+ * @privateRemarks Presumably, allowing this to contain `"animation.type"` in `BaseLightSource` is why
17
+ * `#_configure` is passed flattened data
18
18
  */
19
19
  protected static _initializeShaderKeys: string[];
20
20
 
@@ -27,7 +27,7 @@ declare class RenderedEffectSource<
27
27
  * Layers handled by this rendered source.
28
28
  * @remarks Keys should match the keys of RenderingLayers
29
29
  */
30
- protected static get _layers(): Record<string, RenderedEffectSource.RenderedEffectLayerConfig>;
30
+ protected static get _layers(): Record<string, RenderedEffectSource.LayerConfig>;
31
31
 
32
32
  /**
33
33
  * The offset in pixels applied to create soft edges.
@@ -39,21 +39,21 @@ declare class RenderedEffectSource<
39
39
  * @defaultValue
40
40
  * ```js
41
41
  * {
42
- * ...super.defaultData,
43
- * animation: {},
44
- * seed: null,
45
- * preview: false,
46
- * color: null
42
+ * ...super.defaultData,
43
+ * animation: {},
44
+ * seed: null,
45
+ * preview: false,
46
+ * color: null
47
47
  * }
48
48
  * ```
49
49
  */
50
- static defaultData: RenderedEffectSource.RenderedEffectSourceData;
50
+ static defaultData: RenderedEffectSource.SourceData;
51
51
 
52
52
  /**
53
53
  * The animation configuration applied to this source
54
54
  * @defaultValue `{}`
55
55
  */
56
- animation: RenderedEffectSource.RenderedEffectSourceAnimationConfig;
56
+ animation: RenderedEffectSource.StoredAnimationConfig;
57
57
 
58
58
  /**
59
59
  * Track the status of rendering layers
@@ -63,7 +63,7 @@ declare class RenderedEffectSource<
63
63
  /**
64
64
  * The color of the source as an RGB vector.
65
65
  */
66
- colorRGB: [number, number, number] | null;
66
+ colorRGB: Color.RGBColorVector | null;
67
67
 
68
68
  /**
69
69
  * PIXI Geometry generated to draw meshes.
@@ -100,29 +100,27 @@ declare class RenderedEffectSource<
100
100
  */
101
101
  get illumination(): PointSourceMesh;
102
102
 
103
- _initialize(data: Partial<SourceData>): void;
103
+ protected override _initialize(data: IntentionalPartial<SourceData>): void;
104
104
 
105
105
  /**
106
106
  * Decide whether to render soft edges with a blur.
107
107
  */
108
108
  protected _initializeSoftEdges(): void;
109
109
 
110
- override _configure(changes: Partial<SourceData>): void;
110
+ // TODO: Flatten<IntentionalPartial<SourceData>>
111
+ protected override _configure(changes: AnyObject): void;
111
112
 
112
113
  /**
113
114
  * Configure which shaders are used for each rendered layer.
114
115
  * @privateRemarks Foundry marks this as private then overrides it in `PointVisionSource`
115
116
  */
116
- protected _configureShaders(): {
117
- background: AdaptiveLightingShader;
118
- coloration: AdaptiveLightingShader;
119
- illumination: AdaptiveLightingShader;
120
- };
117
+ protected _configureShaders(): Record<keyof RenderingLayers, AdaptiveLightingShader.AnyConstructor>;
121
118
 
122
119
  /**
123
120
  * Specific configuration for a layer.
121
+ * @remarks Is a no-op in `RenderedEffectSource`
124
122
  */
125
- protected _configureLayer(layer: Record<string, unknown>, layerId: string): void;
123
+ protected _configureLayer(layer: RenderedEffectSource.SourceLayer, layerId: string): void;
126
124
 
127
125
  /**
128
126
  * Create the geometry for the source shape that is used in shaders and compute its bounds for culling purpose.
@@ -133,18 +131,16 @@ declare class RenderedEffectSource<
133
131
 
134
132
  /**
135
133
  * Render the containers used to represent this light source within the LightingLayer
134
+ * @remarks Will error if called prior to initialization
136
135
  */
137
- drawMeshes(): {
138
- background: PIXI.Mesh;
139
- coloration: PIXI.Mesh;
140
- illumination: PIXI.Mesh;
141
- };
136
+ drawMeshes(): Record<keyof RenderingLayers, PointSourceMesh | null>;
137
+
142
138
  /**
143
139
  * Create a Mesh for a certain rendered layer of this source.
144
140
  * @param layerId - The layer key in layers to draw
145
141
  * @returns The drawn mesh for this layer, or null if no mesh is required
146
142
  */
147
- protected _drawMesh(layerId: string): PIXI.Mesh | null;
143
+ protected _drawMesh(layerId: string): PointSourceMesh | null;
148
144
 
149
145
  /**
150
146
  * Update shader uniforms used by every rendered layer.
@@ -166,24 +162,28 @@ declare class RenderedEffectSource<
166
162
  */
167
163
  protected _updateIlluminationUniforms(): void;
168
164
 
165
+ protected override _destroy(): void;
166
+
169
167
  /**
170
168
  * Animate the PointSource, if an animation is enabled and if it currently has rendered containers.
171
169
  * @param dt - Delta time.
170
+ * @privateRemarks In core this will return `void`, as the `this.animation.animation` function will be a {@link foundry.canvas.sources.BaseLightSource.LightAnimationFunction | `BaseLightSource.LightAnimationFunction`}
171
+ * and in fact most of the time will be {@link foundry.canvas.sources.RenderedEffectSource.animateTime | `RenderedEffectSource#animateTime`}, but it could technically be set to any function
172
172
  */
173
- animate(dt: number): this["animation"]["animation"] extends (...args: any) => infer Return ? Return : void;
173
+ animate(dt: number): this["animation"]["animation"] extends (...args: infer _1) => infer Return ? Return : void;
174
174
 
175
175
  /**
176
176
  * Generic time-based animation used for Rendered Point Sources.
177
177
  * @param dt - Delta time.
178
178
  * @param options - Options which affect the time animation
179
179
  */
180
- animateTime(dt: number, options?: InexactPartial<RenderedEffectSource.AnimationOptions>): void;
180
+ animateTime(dt: number, options?: RenderedEffectSource.AnimationFunctionOptions): void;
181
181
 
182
182
  /**
183
183
  * Get corrected level according to level and active vision mode data.
184
184
  * @returns The corrected level.
185
185
  */
186
- static getCorrectedLevel(level: foundry.CONST.LIGHTING_LEVELS): number;
186
+ static getCorrectedLevel(level: foundry.CONST.LIGHTING_LEVELS): foundry.CONST.LIGHTING_LEVELS;
187
187
 
188
188
  /**
189
189
  * Get corrected color according to level, dim color, bright color and background color.
@@ -192,139 +192,250 @@ declare class RenderedEffectSource<
192
192
  level: foundry.CONST.LIGHTING_LEVELS,
193
193
  colorDim: Color,
194
194
  colorBright: Color,
195
- colorBackground?: Color,
195
+ colorBackground?: Color | null,
196
196
  ): Color;
197
197
 
198
198
  /**
199
- * @deprecated since v11
199
+ * @deprecated since v11, until v13
200
+ * @remarks "The RenderedEffectSource#preview is deprecated. Use RenderedEffectSource#isPreview instead."
200
201
  */
201
202
  set preview(preview: boolean);
202
203
 
203
204
  /**
204
- * @deprecated since v11
205
+ * @deprecated since v11, until v13
206
+ * @remarks "The RenderedEffectSource#preview is deprecated. Set RenderedEffectSource#preview as part of RenderedEffectSource#initialize instead."
205
207
  */
206
208
  get preview(): boolean;
207
209
  }
208
210
 
209
211
  declare namespace RenderedEffectSource {
210
- type Any = RenderedEffectSource<any, any, any>;
212
+ interface Any extends AnyRenderedEffectSource {}
213
+ interface AnyConstructor extends Identity<typeof AnyRenderedEffectSource> {}
211
214
 
212
- interface RenderedEffectSourceData extends BaseEffectSource.BaseEffectSourceData {
215
+ interface SourceData extends BaseEffectSource.SourceData {
213
216
  /**
214
217
  * An animation configuration for the source
218
+ * @defaultValue `{}`
215
219
  */
216
- animation: object;
220
+ animation: StoredAnimationConfig;
221
+
217
222
  /**
218
223
  * A color applied to the rendered effect
224
+ * @defaultValue `null`
225
+ * @remarks Foundry types as `number`, but it gets passed to `Color.from()`
226
+ *
227
+ * If `null`, Foundry will use the associated shader's `.defaultUniforms.color`
219
228
  */
220
- color: number | null;
229
+ color: Color.Source | null;
230
+
221
231
  /**
222
232
  * An integer seed to synchronize (or de-synchronize) animations
233
+ * @defaultValue `null`
234
+ * @remarks This will remain null in `#data` if not specified, which will lead to `Math.floor(Math.random() * 100000)`
235
+ *
236
+ * If specified, takes precedence over `RenderedEffectSource#animation.seed`
223
237
  */
224
238
  seed: number | null;
239
+
225
240
  /**
226
241
  * Is this source a temporary preview?
242
+ * @defaultValue `false`
227
243
  */
228
244
  preview: boolean;
229
245
  }
230
246
 
231
- interface AnimationOptions {
247
+ type AnimationFunction = (
248
+ this: RenderedEffectSource,
249
+ /** Delta time */
250
+ dt: number,
251
+ options?: AnimationFunctionOptions,
252
+ ) => void;
253
+
254
+ /** @internal */
255
+ type _AnimationFunctionOptions = InexactPartial<{
232
256
  /**
233
257
  * The animation speed, from 0 to 10
234
258
  * @defaultValue `5`
259
+ * @remarks Can't be `null` as it only has a parameter default
235
260
  */
236
- speed?: number;
261
+ speed: number;
237
262
 
238
263
  /**
239
264
  * The animation intensity, from 1 to 10
240
265
  * @defaultValue `5`
266
+ * @remarks Can't be `null` as it only has a parameter default
241
267
  */
242
- intensity?: number;
268
+ intensity: number;
243
269
 
244
270
  /**
245
271
  * Reverse the animation direction
246
272
  * @defaultValue `false`
247
273
  */
248
- reverse?: boolean;
249
- }
274
+ reverse: boolean | null;
275
+ }>;
276
+
277
+ /** Shared options for the {@link RenderedEffectSource.AnimationFunction | `AnimationFunction`}s provided by {@link foundry.canvas.sources.RenderedEffectSource | `RenderedEffectSource`} and subclasses */
278
+ interface AnimationFunctionOptions extends _AnimationFunctionOptions {}
250
279
 
251
- interface RenderedEffectSourceAnimationConfig {
280
+ /**
281
+ * Properties *every* core-provided config has
282
+ * @internal
283
+ */
284
+ interface _AnimationConfigBase {
252
285
  /**
253
286
  * The human-readable (localized) label for the animation
287
+ * @remarks Despite the above, all of the core-provided configs provide a localization
288
+ * key here, not localized text.
254
289
  */
255
- label?: string | undefined;
290
+ label: string;
291
+
256
292
  /**
257
293
  * The animation function that runs every frame
258
- * @privateRemarks TODO: Figure out if there's a better way to define the function
294
+ * @privateRemarks Eventually called with `animation?.call()`, but at no point is a default provided,
295
+ * and not having one is nonsensical.
259
296
  */
260
- animation?: AnyFunction | undefined;
297
+ animation: AnimationFunction | BaseLightSource.LightAnimationFunction;
298
+ }
299
+
300
+ /** @internal */
301
+ type _Seed = NullishProps<{
302
+ /**
303
+ * The animation seed
304
+ * @defaultValue `Math.floor(Math.random() * 100000)`
305
+ * @remarks No Foundry-provided config specifies this, but it would be respected if set
306
+ */
307
+ seed: number;
308
+ }>;
309
+
310
+ /**
311
+ * Each Foundry-provided entry in `CONFIG.Canvas.lightAnimations` provides at least a `colorationShader`,
312
+ * but any properties not provided will be backfilled by `|| this.layers[layer].defaultShader`
313
+ * @internal
314
+ */
315
+ type _AnimationConfigLightingShaders = NullishProps<{
261
316
  /**
262
317
  * A custom illumination shader used by this animation
318
+ * @defaultValue `AdaptiveIlluminationShader`
263
319
  */
264
- illuminationShader?: AdaptiveIlluminationShader | undefined;
320
+ illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
321
+
265
322
  /**
266
323
  * A custom coloration shader used by this animation
324
+ * @defaultValue `AdaptiveColorationShader`
267
325
  */
268
- colorationShader?: AdaptiveColorationShader | undefined;
326
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
327
+
269
328
  /**
270
329
  * A custom background shader used by this animation
330
+ * @defaultValue `AdaptiveBackgroundShader`
271
331
  */
272
- backgroundShader?: AdaptiveBackgroundShader | undefined;
332
+ backgroundShader: AdaptiveBackgroundShader.AnyConstructor;
333
+ }> & { darknessShader?: never };
334
+
335
+ /**
336
+ * Foundry's typedef lists `darknessShader` as required, and every core-provided config
337
+ * has one specified, but it has a default just like the lighting shaders
338
+ * @internal
339
+ */
340
+ interface _AnimationConfigDarknessShaders {
273
341
  /**
274
342
  * A custom darkness shader used by this animation
343
+ * @defaultValue `AdaptiveDarknessShader`
275
344
  */
276
- darknessShader?: AdaptiveDarknessShader | undefined;
277
- /**
278
- * The animation seed
279
- */
280
- seed?: number | undefined;
345
+ darknessShader: AdaptiveDarknessShader.AnyConstructor;
346
+
347
+ illuminationShader?: never;
348
+ colorationShader?: never;
349
+ backgroundShader?: never;
350
+ }
351
+
352
+ /**
353
+ * `this.animation.time` always gets set by `RenderedEffectSource#animateTime`,
354
+ * which all animation functions end up calling
355
+ * @internal
356
+ */
357
+ type _AnimationConfigComputed = InexactPartial<{
281
358
  /**
282
359
  * The animation time
360
+ * @remarks Always computed, never specified in `CONFIG`
283
361
  */
284
- time?: number | undefined;
285
- }
362
+ time: number;
363
+ }>;
364
+
365
+ interface LightAnimationConfig extends _AnimationConfigBase, _Seed, _AnimationConfigLightingShaders {}
366
+
367
+ interface StoredLightAnimationConfig extends IntentionalPartial<LightAnimationConfig>, _AnimationConfigComputed {}
286
368
 
287
- interface RenderedEffectSourceLayer {
369
+ interface DarknessAnimationConfig extends _AnimationConfigBase, _Seed, _AnimationConfigDarknessShaders {}
370
+
371
+ interface StoredDarknessAnimationConfig
372
+ extends IntentionalPartial<DarknessAnimationConfig>,
373
+ _AnimationConfigComputed {}
374
+
375
+ type AnimationConfig = LightAnimationConfig | DarknessAnimationConfig;
376
+
377
+ type StoredAnimationConfig = StoredLightAnimationConfig | StoredDarknessAnimationConfig;
378
+ /**
379
+ * @remarks The properties `mesh` and `shader` from `LayerConfig` are not documented as being part of the typedef. They are given values
380
+ * during initialization *if* the Source has a valid `Placeable` as its `object`. `vmUniforms` is only provided a value for `PointVisionSource` layers.
381
+ */
382
+ interface SourceLayer extends LayerConfig {
288
383
  /**
289
384
  * Is this layer actively rendered?
290
385
  */
291
386
  active: boolean;
387
+
292
388
  /**
293
389
  * Do uniforms need to be reset?
294
390
  */
295
391
  reset: boolean;
392
+
296
393
  /**
297
394
  * Is this layer temporarily suppressed?
298
395
  */
299
396
  suppressed: boolean;
397
+
300
398
  /**
301
399
  * The rendered mesh for this layer
302
400
  */
303
- mesh: PointSourceMesh;
401
+ mesh: PointSourceMesh | undefined;
402
+
304
403
  /**
305
404
  * The shader instance used for the layer
306
405
  */
307
- shader: AdaptiveLightingShader;
406
+ shader: AdaptiveLightingShader | undefined;
407
+
408
+ /** @remarks Foundry does not include this in the typedef but is in the initialization of `RenderedEffectSource#layers` */
409
+ vmUniforms: AbstractBaseShader.Uniforms | undefined;
308
410
  }
309
411
 
310
- interface RenderedEffectLayerConfig {
412
+ interface LayerConfig {
311
413
  /**
312
414
  * The default shader used by this layer
313
415
  */
314
- defaultShader: AdaptiveLightingShader;
416
+ defaultShader: AdaptiveLightingShader.AnyConstructor;
417
+
315
418
  /**
316
419
  * The blend mode used by this layer
317
420
  */
318
- blendMode: PIXI.BLEND_MODES;
421
+ blendMode: keyof typeof PIXI.BLEND_MODES;
319
422
  }
320
423
 
321
- // Interface causes errors
424
+ // Interface would require `RenderingLayers extends ... = InterfaceToObject<Layers>` in every subclass signature
322
425
  // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
323
426
  type Layers = {
324
- background: RenderedEffectSource.RenderedEffectSourceLayer;
325
- coloration: RenderedEffectSource.RenderedEffectSourceLayer;
326
- illumination: RenderedEffectSource.RenderedEffectSourceLayer;
427
+ background: RenderedEffectSource.SourceLayer;
428
+ coloration: RenderedEffectSource.SourceLayer;
429
+ illumination: RenderedEffectSource.SourceLayer;
327
430
  };
328
431
  }
329
432
 
433
+ declare abstract class AnyRenderedEffectSource extends RenderedEffectSource<
434
+ RenderedEffectSource.SourceData,
435
+ PIXI.Polygon,
436
+ RenderedEffectSource.Layers
437
+ > {
438
+ constructor(...args: never);
439
+ }
440
+
330
441
  export default RenderedEffectSource;
@@ -1,8 +1,7 @@
1
1
  // In Foundry itself this file contains re-exports of these other modules.
2
2
  // Therefore it has a runtime effect and uses `.mjs` instead of `.d.mts`.
3
- // While `.mts` could work, to avoid `import/no-unresolved` from erroring `.mjs` is used.
4
- /* eslint-disable import/extensions */
5
- /* eslint-disable import/no-unresolved */ // TODO: Remove when the files are instantiated
3
+ // While `.mts` could work, to avoid `import-x/no-unresolved` from erroring `.mjs` is used.
4
+ /* eslint-disable import-x/extensions */
6
5
 
7
6
  export { default as TokenRing } from "./ring.mjs";
8
7
  export { default as TokenRingConfig } from "./ring-config.mjs";
@@ -1,3 +1,6 @@
1
+ import type { InitializedOn } from "../../../../utils/index.d.mts";
2
+ import type DynamicRingData from "./ring-data.d.mts";
3
+
1
4
  /**
2
5
  * Token Ring configuration Singleton Class.
3
6
  *
@@ -72,8 +75,178 @@
72
75
  * CONFIG.Token.ring.debugColorBands = true;
73
76
  * ```
74
77
  */
75
- declare class TokenRingConfig {}
78
+ declare class TokenRingConfig {
79
+ constructor();
80
+
81
+ /**
82
+ * Core token rings used in Foundry VTT.
83
+ * Each key is a string identifier for a ring, and the value is an object containing the ring's data.
84
+ * This object is frozen to prevent any modifications.
85
+ * @remarks The outer object is frozen, but the individual rings' data isn't, and that object gets passed into a {@link DynamicRingData | `DynamicRingData`} constructor, leading to, for example,
86
+ * ```js
87
+ * CONFIG.Token.ring.getConfig("coreSteel")._source === TokenRingConfig.CORE_TOKEN_RINGS.coreSteel
88
+ * ```
89
+ * after {@link TokenRingConfig.initialize | `initialize`} has been called, which happens between the `setup` and `ready` hooks
90
+ */
91
+ static CORE_TOKEN_RINGS: TokenRingConfig.CoreTokenRings;
92
+
93
+ /**
94
+ * Core token rings fit modes used in Foundry VTT.
95
+ */
96
+ static CORE_TOKEN_RINGS_FIT_MODES: TokenRingConfig.CoreTokenRingsFitModes;
97
+
98
+ /**
99
+ * Register the token ring config and initialize it
100
+ * @remarks Calls the {@link Hooks.StaticCallbacks.initializeDynamicTokenRingConfig | `initializeDynamicTokenRingConfig`} hook via {@link Hooks.callAll | `Hooks.callAll`}
101
+ */
102
+ static initialize(): void;
103
+
104
+ /** Register game settings used by the Token Ring */
105
+ static registerSettings(): void;
106
+
107
+ /**
108
+ * A mapping of token subject paths where modules or systems have configured subject images.
109
+ * @defaultValue `{}`
110
+ * @remarks Not directly used anywhere in this class, essentially just a global cache. The system's `flags.tokenRingSubjectMappings`, if any, get assigned here in {@link Game.initializeConfig | `Game#initializeConfig`},
111
+ * and they're read in {@link TokenDocument._inferRingSubjectTexture | `TokenDocument#_inferRingSubjectTexture`}
112
+ */
113
+ subjectPaths: Record<string, string>;
114
+
115
+ /**
116
+ * All color bands visual debug flag.
117
+ * @defaultValue `false`
118
+ */
119
+ debugColorBands: boolean;
120
+
121
+ /**
122
+ * Get the current ring class.
123
+ * @remarks Since `##currentConfig` is a reference to a `##configs` entry, not a copy, setting this will persist in that config
124
+ */
125
+ get ringClass(): DynamicRingData["framework"]["ringClass"];
126
+ set ringClass(value);
127
+
128
+ /** Get the current effects. */
129
+ get effects(): DynamicRingData["effects"];
130
+
131
+ /** Get the current spritesheet. */
132
+ get spritesheet(): DynamicRingData["spritesheet"];
133
+
134
+ /**
135
+ * Get the current shader class.
136
+ * @remarks Since `##currentConfig` is a reference to a `##configs` entry, not a copy, setting this will persist in that config
137
+ */
138
+ get shaderClass(): DynamicRingData["framework"]["shaderClass"];
139
+ set shaderClass(value);
140
+
141
+ /** Get the current localized label */
142
+ get label(): DynamicRingData["label"];
143
+
144
+ /** Get the current id. */
145
+ get id(): DynamicRingData["id"];
146
+
147
+ /**
148
+ * Is a custom fit mode active?
149
+ * @remarks Anything other than `subject` is "custom", but the only other fit mode is `grid`
150
+ */
151
+ get isGridFitMode(): boolean;
152
+
153
+ /**
154
+ * Add a new ring configuration.
155
+ * @param id - The id of the ring configuration.
156
+ * @param config - The configuration object for the ring.
157
+ * @throws If called outside a callback for the {@link Hooks.StaticCallbacks.initializeDynamicTokenRingConfig | `initializeDynamicTokenRingConfig`} hook
158
+ * @remarks The actual error thrown incorrectly refers to a non-existent `registerDynamicTokenRing` hook
159
+ */
160
+ addConfig(id: string, config: DynamicRingData): void;
161
+
162
+ /**
163
+ * Get a ring configuration.
164
+ * @param id - The id of the ring configuration.
165
+ * @returns - The ring configuration object.
166
+ */
167
+ getConfig(id: string): DynamicRingData;
168
+
169
+ /**
170
+ * Use a ring configuration.
171
+ * @param id - The id of the ring configuration to use.
172
+ * @returns - True if the configuration was successfully set, false otherwise.
173
+ */
174
+ useConfig(id: string): boolean;
175
+
176
+ /** Get the IDs of all configurations. */
177
+ get configIDs(): string[];
178
+
179
+ /** Get the labels of all configurations. */
180
+ get configLabels(): Record<string, string>;
181
+
182
+ /**
183
+ * @deprecated since v12, until v14
184
+ * @remarks "TokenRingConfig#configNames is deprecated and replaced by TokenRingConfig#configIDs"
185
+ *
186
+ * Foundry comment claims deprecated since v11 - possibly a dnd5e-implementation-related deprecation?
187
+ */
188
+ get configNames(): string[];
189
+ }
190
+
191
+ declare namespace TokenRingConfig {
192
+ interface Any extends AnyTokenRingConfig {}
193
+ type AnyConstructor = typeof AnyTokenRingConfig;
194
+
195
+ /** Token ring fit modes for dynamic token ring visualization */
196
+ interface RingFitMode {
197
+ /** The fit mode identifier. */
198
+ id: string;
199
+
200
+ /** The fit mode label. */
201
+ label: string;
202
+ }
203
+
204
+ /**
205
+ * Core token rings fit modes used in Foundry VTT.
206
+ * @remarks Only the two provided core fit modes are checked against, by hardcoded IDs
207
+ */
208
+ interface CoreTokenRingsFitModes {
209
+ readonly subject: RingFitMode;
210
+ readonly grid: RingFitMode;
211
+ }
212
+
213
+ type CoreRingIDs = "coreSteel" | "coreBronze";
214
+
215
+ /**
216
+ * @remarks The type of any given {@link TokenRingConfig.CORE_TOKEN_RINGS | `TokenRingConfig.CORE_TOKEN_RINGS`} entry prior to
217
+ * {@link TokenRingConfig.initialize | `TokenRingConfig#initialize`} being called between the `setup` and `ready` hooks; Plain objects at this point
218
+ */
219
+ interface InitialCoreRingData extends Required<Pick<SourceCoreRingData, "id" | "label" | "spritesheet">> {}
220
+
221
+ interface InitialCoreRings extends Record<CoreRingIDs, InitialCoreRingData> {}
222
+
223
+ /**
224
+ * @remarks Due to the way the core configs are initialized, {@link TokenRingConfig.CORE_TOKEN_RINGS | `TokenRingConfig.CORE_TOKEN_RINGS`}
225
+ * ends up becoming the `_source` of the constructed DataModels in {@link CONFIG.Token.ring | `CONFIG.Token.ring`}, that is:
226
+ * ```js
227
+ * CONFIG.Token.ring.getConfig("coreSteel")._source === TokenRingConfig.CORE_TOKEN_RINGS.coreSteel
228
+ * ```
229
+ * after {@link TokenRingConfig.initialize | `TokenRingConfig#initialize`} has been called, which happens between the `setup` and `ready` hooks
230
+ */
231
+ interface SourceCoreRingData extends foundry.data.fields.SchemaField.SourceData<DynamicRingData.Schema> {}
232
+
233
+ interface SourceCoreRings extends Record<CoreRingIDs, SourceCoreRingData> {}
234
+
235
+ /**
236
+ * Core token rings used in Foundry VTT.
237
+ * Each key is a string identifier for a ring, and the value is an object containing the ring's data.
238
+ * This object is frozen to prevent any modifications.
239
+ * @remarks The outer object is frozen, but the individual rings' data isn't, and that object gets passed into a {@link DynamicRingData | `DynamicRingData`} constructor, leading to, for example,
240
+ * ```js
241
+ * CONFIG.Token.ring.getConfig("coreSteel")._source === TokenRingConfig.CORE_TOKEN_RINGS.coreSteel
242
+ * ```
243
+ * after {@link TokenRingConfig.initialize | `TokenRingConfig#initialize`} has been called, which happens between the `setup` and `ready` hooks
244
+ */
245
+ type CoreTokenRings = InitializedOn<SourceCoreRings, "ready", InitialCoreRings>;
246
+ }
76
247
 
77
- declare namespace TokenRingConfig {}
248
+ declare abstract class AnyTokenRingConfig extends TokenRingConfig {
249
+ constructor(...args: never);
250
+ }
78
251
 
79
252
  export default TokenRingConfig;