@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,7 +1,8 @@
1
- import type * as CONST from "../common/constants.d.mts";
2
- import type { DataModel, Document } from "../common/abstract/_module.d.mts";
1
+ import type * as CONST from "#common/constants.d.mts";
2
+ import type { DataModel, Document } from "#common/abstract/_module.d.mts";
3
3
  import type { GetKey, AnyObject, HandleEmptyObject, MaybePromise } from "fvtt-types/utils";
4
- import type BaseLightSource from "../client-esm/canvas/sources/base-light-source.d.mts";
4
+ import type BaseLightSource from "#client-esm/canvas/sources/base-light-source.d.mts";
5
+ import type RenderedEffectSource from "#client-esm/canvas/sources/rendered-effect-source.d.mts";
5
6
 
6
7
  declare global {
7
8
  namespace CONFIG {
@@ -66,7 +67,7 @@ declare global {
66
67
  options?: AnyObject,
67
68
  ) => Promise<number | void>;
68
69
 
69
- type RollFunction = (arg0: never, ...args: never[]) => MaybePromise<number>;
70
+ type RollFunction = (...args: Array<string | number>) => MaybePromise<number | `${number}`>;
70
71
 
71
72
  type DTermDiceStrings = "d4" | "d6" | "d8" | "d10" | "d12" | "d20" | "d100";
72
73
  }
@@ -131,7 +132,7 @@ declare global {
131
132
  /**
132
133
  * Configured status effects which are recognized by the game system
133
134
  */
134
- type StatusEffect = foundry.documents.BaseActiveEffect.ConstructorData & {
135
+ type StatusEffect = foundry.documents.BaseActiveEffect.CreateData & {
135
136
  /**
136
137
  * A string identifier for the effect
137
138
  */
@@ -232,7 +233,7 @@ declare global {
232
233
  * include or specifically exclude certain file paths or warning messages.
233
234
  * Exclusion rules take precedence over inclusion rules.
234
235
  *
235
- * @see {@link CONST.COMPATIBILITY_MODES}
236
+ * @see {@link CONST.COMPATIBILITY_MODES | `CONST.COMPATIBILITY_MODES`}
236
237
  *
237
238
  * @example Include Specific Errors
238
239
  * ```js
@@ -294,7 +295,7 @@ declare global {
294
295
  */
295
296
  Actor: {
296
297
  /** @defaultValue `Actor` */
297
- documentClass: Document.ConfiguredClassForName<"Actor">;
298
+ documentClass: Document.ImplementationClassFor<"Actor">;
298
299
 
299
300
  /** @defaultValue `Actors` */
300
301
  collection: Actors.AnyConstructor;
@@ -312,18 +313,18 @@ declare global {
312
313
  * @defaultValue `{}`
313
314
  * @remarks `TypeDataModel` is preferred to `DataModel` per core Foundry team
314
315
  */
315
- dataModels: Record<string, typeof DataModel<any, Actor>>;
316
+ dataModels: Record<string, typeof DataModel<any, Actor.Implementation>>;
316
317
 
317
318
  /**
318
319
  * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
319
320
  */
320
- sheetClasses: Record<foundry.documents.BaseActor.TypeNames, Record<string, SheetClassConfig>>;
321
+ sheetClasses: Record<foundry.documents.BaseActor.SubType, Record<string, SheetClassConfig>>;
321
322
 
322
323
  /**
323
324
  * @defaultValue `{}`
324
325
  * @remarks Initialized by `Localization#initialize`, is an empty object until `i18nInit`
325
326
  */
326
- typeLabels: Record<foundry.documents.BaseActor.TypeNames, string>;
327
+ typeLabels: Record<foundry.documents.BaseActor.SubType, string>;
327
328
 
328
329
  /** @defaultValue `{}` */
329
330
  typeIcons: Record<string, string>;
@@ -339,7 +340,7 @@ declare global {
339
340
  */
340
341
  Adventure: {
341
342
  /** @defaultValue `foundry.documents.BaseAdventure` */
342
- documentClass: Document.ConfiguredClassForName<"Adventure">;
343
+ documentClass: Document.ImplementationClassFor<"Adventure">;
343
344
 
344
345
  /**
345
346
  * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
@@ -372,7 +373,7 @@ declare global {
372
373
  compendiumIndexFields: string[];
373
374
 
374
375
  /** @defaultValue `Cards` */
375
- documentClass: Document.ConfiguredClassForName<"Cards">;
376
+ documentClass: Document.ImplementationClassFor<"Cards">;
376
377
 
377
378
  /** @defaultValue `"fa-solid fa-cards"` */
378
379
  sidebarIcon: string;
@@ -381,7 +382,7 @@ declare global {
381
382
  * @defaultValue `{}`
382
383
  * @remarks `TypeDataModel` is preferred to `DataModel` per core Foundry team
383
384
  */
384
- dataModels: Record<string, typeof DataModel<any, Cards>>;
385
+ dataModels: Record<string, typeof DataModel<any, Cards.Implementation>>;
385
386
 
386
387
  /**
387
388
  * @defaultValue
@@ -405,13 +406,13 @@ declare global {
405
406
  /**
406
407
  * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
407
408
  */
408
- sheetClasses: Record<foundry.documents.BaseCards.TypeNames, Record<string, SheetClassConfig>>;
409
+ sheetClasses: Record<foundry.documents.BaseCards.SubType, Record<string, SheetClassConfig>>;
409
410
 
410
411
  /**
411
412
  * @defaultValue `{}`
412
413
  * @remarks Initialized by `Localization#initialize`, is an empty object until `i18nInit`
413
414
  */
414
- typeLabels: Record<foundry.documents.BaseCards.TypeNames, string>;
415
+ typeLabels: Record<foundry.documents.BaseCards.SubType, string>;
415
416
 
416
417
  typeIcons: {
417
418
  /** @defaultValue `"fas fa-cards"` */
@@ -430,7 +431,7 @@ declare global {
430
431
  */
431
432
  ChatMessage: {
432
433
  /** @defaultValue `ChatMessage` */
433
- documentClass: Document.ConfiguredClassForName<"ChatMessage">;
434
+ documentClass: Document.ImplementationClassFor<"ChatMessage">;
434
435
 
435
436
  /** @defaultValue `Messages` */
436
437
  collection: Messages.AnyConstructor;
@@ -445,18 +446,18 @@ declare global {
445
446
  * @defaultValue `{}`
446
447
  * @remarks `TypeDataModel` is preferred to `DataModel` per core Foundry team
447
448
  */
448
- dataModels: Record<string, typeof DataModel<any, ChatMessage>>;
449
+ dataModels: Record<string, typeof DataModel<any, ChatMessage.Implementation>>;
449
450
 
450
451
  /**
451
452
  * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
452
453
  */
453
- sheetClasses: Record<foundry.documents.BaseChatMessage.TypeNames, Record<string, SheetClassConfig>>;
454
+ sheetClasses: Record<foundry.documents.BaseChatMessage.SubType, Record<string, SheetClassConfig>>;
454
455
 
455
456
  /**
456
457
  * @defaultValue `{}`
457
458
  * @remarks Initialized by `Localization#initialize`, is an empty object until `i18nInit`
458
459
  */
459
- typeLabels: Record<foundry.documents.BaseChatMessage.TypeNames, string>;
460
+ typeLabels: Record<foundry.documents.BaseChatMessage.SubType, string>;
460
461
 
461
462
  /** @defaultValue `{}` */
462
463
  typeIcons: Record<string, string>;
@@ -470,7 +471,7 @@ declare global {
470
471
  */
471
472
  Combat: {
472
473
  /** @defaultValue `Combat` */
473
- documentClass: Document.ConfiguredClassForName<"Combat">;
474
+ documentClass: Document.ImplementationClassFor<"Combat">;
474
475
 
475
476
  /** @defaultValue `CombatEncounters` */
476
477
  collection: CombatEncounters.AnyConstructor;
@@ -482,18 +483,18 @@ declare global {
482
483
  * @defaultValue `{}`
483
484
  * @remarks `TypeDataModel` is preferred to `DataModel` per core Foundry team
484
485
  */
485
- dataModels: Record<string, typeof DataModel<any, Combat>>;
486
+ dataModels: Record<string, typeof DataModel<any, Combat.Implementation>>;
486
487
 
487
488
  /**
488
489
  * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
489
490
  */
490
- sheetClasses: Record<foundry.documents.BaseCombat.TypeNames, Record<string, SheetClassConfig>>;
491
+ sheetClasses: Record<foundry.documents.BaseCombat.SubType, Record<string, SheetClassConfig>>;
491
492
 
492
493
  /**
493
494
  * @defaultValue `{}`
494
495
  * @remarks Initialized by `Localization#initialize`, is an empty object until `i18nInit`
495
496
  */
496
- typeLabels: Record<foundry.documents.BaseCombat.TypeNames, string>;
497
+ typeLabels: Record<foundry.documents.BaseCombat.SubType, string>;
497
498
 
498
499
  /** @defaultValue `{}` */
499
500
  typeIcons: Record<string, string>;
@@ -538,7 +539,7 @@ declare global {
538
539
  */
539
540
  FogExploration: {
540
541
  /** @defaultValue `FogExploration` */
541
- documentClass: Document.ConfiguredClassForName<"FogExploration">;
542
+ documentClass: Document.ImplementationClassFor<"FogExploration">;
542
543
 
543
544
  /**
544
545
  * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
@@ -559,7 +560,7 @@ declare global {
559
560
  */
560
561
  Folder: {
561
562
  /** @defaultValue `Folder` */
562
- documentClass: Document.ConfiguredClassForName<"Folder">;
563
+ documentClass: Document.ImplementationClassFor<"Folder">;
563
564
 
564
565
  /** @defaultValue `Folders` */
565
566
  collection: Folders.AnyConstructor;
@@ -583,7 +584,7 @@ declare global {
583
584
  */
584
585
  Item: {
585
586
  /** @defaultValue `Item` */
586
- documentClass: Document.ConfiguredClassForName<"Item">;
587
+ documentClass: Document.ImplementationClassFor<"Item">;
587
588
 
588
589
  /** @defaultValue `Items` */
589
590
  collection: Items.AnyConstructor;
@@ -601,18 +602,18 @@ declare global {
601
602
  * @defaultValue `{}`
602
603
  * @remarks `TypeDataModel` is preferred to `DataModel` per core Foundry team
603
604
  */
604
- dataModels: Record<string, typeof DataModel<any, Item>>;
605
+ dataModels: Record<string, typeof DataModel<any, Item.Implementation>>;
605
606
 
606
607
  /**
607
608
  * @defaultValue `{}`
608
609
  * @remarks Initialized by `Localization#initialize`, is an empty object until `i18nInit`
609
610
  */
610
- typeLabels: Record<foundry.documents.BaseItem.TypeNames, string>;
611
+ typeLabels: Record<foundry.documents.BaseItem.SubType, string>;
611
612
 
612
613
  /**
613
614
  * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
614
615
  */
615
- sheetClasses: Record<foundry.documents.BaseItem.TypeNames, Record<string, SheetClassConfig>>;
616
+ sheetClasses: Record<foundry.documents.BaseItem.SubType, Record<string, SheetClassConfig>>;
616
617
  };
617
618
 
618
619
  /**
@@ -620,7 +621,7 @@ declare global {
620
621
  */
621
622
  JournalEntry: {
622
623
  /** @defaultValue `JournalEntry` */
623
- documentClass: Document.ConfiguredClassForName<"JournalEntry">;
624
+ documentClass: Document.ImplementationClassFor<"JournalEntry">;
624
625
 
625
626
  /**
626
627
  * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
@@ -733,17 +734,17 @@ declare global {
733
734
  */
734
735
  Macro: {
735
736
  /** @defaultValue `Macro` */
736
- documentClass: Document.ConfiguredClassForName<"Macro">;
737
+ documentClass: Document.ImplementationClassFor<"Macro">;
737
738
 
738
739
  /**
739
740
  * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
740
741
  */
741
- sheetClasses: Record<foundry.documents.BaseMacro.TypeNames, Record<string, SheetClassConfig>>;
742
+ sheetClasses: Record<foundry.documents.BaseMacro.SubType, Record<string, SheetClassConfig>>;
742
743
 
743
744
  /**
744
745
  * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
745
746
  */
746
- typeLabels?: Record<foundry.documents.BaseMacro.TypeNames, string>;
747
+ typeLabels?: Record<foundry.documents.BaseMacro.SubType, string>;
747
748
 
748
749
  /** @defaultValue `Macros` */
749
750
  collection: Macros.AnyConstructor;
@@ -763,7 +764,7 @@ declare global {
763
764
  */
764
765
  Playlist: {
765
766
  /** @defaultValue `Playlist` */
766
- documentClass: Document.ConfiguredClassForName<"Playlist">;
767
+ documentClass: Document.ImplementationClassFor<"Playlist">;
767
768
 
768
769
  /**
769
770
  * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
@@ -796,7 +797,7 @@ declare global {
796
797
  */
797
798
  RollTable: {
798
799
  /** @defaultValue `RollTable` */
799
- documentClass: Document.ConfiguredClassForName<"RollTable">;
800
+ documentClass: Document.ImplementationClassFor<"RollTable">;
800
801
 
801
802
  /**
802
803
  * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
@@ -832,7 +833,7 @@ declare global {
832
833
  */
833
834
  Scene: {
834
835
  /** @defaultValue `Scene` */
835
- documentClass: Document.ConfiguredClassForName<"Scene">;
836
+ documentClass: Document.ImplementationClassFor<"Scene">;
836
837
 
837
838
  /**
838
839
  * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
@@ -859,7 +860,7 @@ declare global {
859
860
 
860
861
  Setting: {
861
862
  /** @defaultValue `Setting` */
862
- documentClass: Document.ConfiguredClassForName<"Setting">;
863
+ documentClass: Document.ImplementationClassFor<"Setting">;
863
864
 
864
865
  /**
865
866
  * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
@@ -880,7 +881,7 @@ declare global {
880
881
  */
881
882
  User: {
882
883
  /** @defaultValue `User` */
883
- documentClass: Document.ConfiguredClassForName<"User">;
884
+ documentClass: Document.ImplementationClassFor<"User">;
884
885
 
885
886
  /**
886
887
  * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
@@ -899,2161 +900,2303 @@ declare global {
899
900
  /**
900
901
  * Configuration settings for the Canvas and its contained layers and objects
901
902
  */
902
- Canvas: {
903
- /** @defaultValue `8` */
904
- blurStrength: number;
905
-
906
- /** @defaultValue `4` */
907
- blurQuality: number;
908
-
909
- /** @defaultValue `0x303030` */
910
- darknessColor: number;
911
-
912
- /** @defaultValue `0xeeeeee` */
913
- daylightColor: number;
914
-
915
- /** @defaultValue `0xffffff` */
916
- brightestColor: number;
917
-
918
- chatBubblesClass: ChatBubbles.AnyConstructor;
903
+ Canvas: CONFIG.Canvas;
919
904
 
920
- /** @defaultValue `0.25` */
921
- darknessLightPenalty: number;
922
-
923
- dispositionColors: {
924
- /** @defaultValue `0xe72124` */
925
- HOSTILE: number;
905
+ /**
906
+ * Configure the default Token text style so that it may be reused and overridden by modules
907
+ * @defaultValue
908
+ * ```typescript
909
+ * new PIXI.TextStyle({
910
+ * fontFamily: "Signika",
911
+ * fontSize: 36,
912
+ * fill: "#FFFFFF",
913
+ * stroke: "#111111",
914
+ * strokeThickness: 1,
915
+ * dropShadow: true,
916
+ * dropShadowColor: "#000000",
917
+ * dropShadowBlur: 2,
918
+ * dropShadowAngle: 0,
919
+ * dropShadowDistance: 0,
920
+ * align: "center",
921
+ * wordWrap: false,
922
+ * padding: 1
923
+ * })
924
+ * ```
925
+ **/
926
+ canvasTextStyle: PIXI.TextStyle;
926
927
 
927
- /** @defaultValue `0xf1d836` */
928
- NEUTRAL: number;
928
+ /**
929
+ * Available Weather Effects implementations
930
+ */
931
+ weatherEffects: {
932
+ [key: string]: WeatherEffects.AmbienceConfiguration;
929
933
 
930
- /** @defaultValue `0x43dfdf` */
931
- FRIENDLY: number;
934
+ /**
935
+ * @defaultValue
936
+ * ```ts
937
+ * {
938
+ * id: "leaves",
939
+ * label: "WEATHER.AutumnLeaves",
940
+ * effects: [{
941
+ * id: "leavesParticles",
942
+ * effectClass: AutumnLeavesWeatherEffect
943
+ * }]
944
+ * }
945
+ * ```
946
+ */
947
+ leaves: WeatherEffects.AmbienceConfiguration;
932
948
 
933
- /** @defaultValue `0x555555` */
934
- INACTIVE: number;
949
+ /**
950
+ * @defaultValue
951
+ * ```ts
952
+ * {
953
+ * id: "rain",
954
+ * label: "WEATHER.Rain",
955
+ * filter: {
956
+ * enabled: false
957
+ * },
958
+ * effects: [{
959
+ * id: "rainShader",
960
+ * effectClass: WeatherShaderEffect,
961
+ * shaderClass: RainShader,
962
+ * blendMode: PIXI.BLEND_MODES.SCREEN,
963
+ * config: {
964
+ * opacity: 0.25,
965
+ * tint: [0.7, 0.9, 1.0],
966
+ * intensity: 1,
967
+ * strength: 1,
968
+ * rotation: 0.2618,
969
+ * speed: 0.2,
970
+ * }
971
+ * }]
972
+ * }
973
+ * ```
974
+ */
975
+ rain: WeatherEffects.AmbienceConfiguration;
935
976
 
936
- /** @defaultValue `0x33bc4e` */
937
- PARTY: number;
977
+ /**
978
+ * @defaultValue
979
+ * ```
980
+ * {
981
+ * id: "rainStorm",
982
+ * label: "WEATHER.RainStorm",
983
+ * filter: {
984
+ * enabled: false
985
+ * },
986
+ * effects: [{
987
+ * id: "fogShader",
988
+ * effectClass: WeatherShaderEffect,
989
+ * shaderClass: FogShader,
990
+ * blendMode: PIXI.BLEND_MODES.SCREEN,
991
+ * performanceLevel: 2,
992
+ * config: {
993
+ * slope: 1.5,
994
+ * intensity: 0.050,
995
+ * speed: -55.0,
996
+ * scale: 25,
997
+ * }
998
+ * },
999
+ * {
1000
+ * id: "rainShader",
1001
+ * effectClass: WeatherShaderEffect,
1002
+ * shaderClass: RainShader,
1003
+ * blendMode: PIXI.BLEND_MODES.SCREEN,
1004
+ * config: {
1005
+ * opacity: 0.45,
1006
+ * tint: [0.7, 0.9, 1.0],
1007
+ * intensity: 1.5,
1008
+ * strength: 1.5,
1009
+ * rotation: 0.5236,
1010
+ * speed: 0.30,
1011
+ * }
1012
+ * }]
1013
+ * }
1014
+ * ```
1015
+ */
1016
+ rainStorm: WeatherEffects.AmbienceConfiguration;
938
1017
 
939
- /** @defaultValue `0xff9829` */
940
- CONTROLLED: number;
1018
+ /**
1019
+ * @defaultValue
1020
+ * ```
1021
+ * {
1022
+ * id: "fog",
1023
+ * label: "WEATHER.Fog",
1024
+ * filter: {
1025
+ * enabled: false
1026
+ * },
1027
+ * effects: [{
1028
+ * id: "fogShader",
1029
+ * effectClass: WeatherShaderEffect,
1030
+ * shaderClass: FogShader,
1031
+ * blendMode: PIXI.BLEND_MODES.SCREEN,
1032
+ * config: {
1033
+ * slope: 0.45,
1034
+ * intensity: 0.4,
1035
+ * speed: 0.4,
1036
+ * }
1037
+ * }]
1038
+ * }
1039
+ * ```
1040
+ */
1041
+ fog: WeatherEffects.AmbienceConfiguration;
941
1042
 
942
- /** @defaultValue `0xA612D4` */
943
- SECRET: number;
944
- };
1043
+ /**
1044
+ * @defaultValue
1045
+ * ```
1046
+ * {
1047
+ * id: "snow",
1048
+ * label: "WEATHER.Snow",
1049
+ * filter: {
1050
+ * enabled: false
1051
+ * },
1052
+ * effects: [{
1053
+ * id: "snowShader",
1054
+ * effectClass: WeatherShaderEffect,
1055
+ * shaderClass: SnowShader,
1056
+ * blendMode: PIXI.BLEND_MODES.SCREEN,
1057
+ * config: {
1058
+ * tint: [0.85, 0.95, 1],
1059
+ * direction: 0.5,
1060
+ * speed: 2,
1061
+ * scale: 2.5,
1062
+ * }
1063
+ * }]
1064
+ * }
1065
+ * ```
1066
+ * */
1067
+ snow: WeatherEffects.AmbienceConfiguration;
945
1068
 
946
1069
  /**
947
- * The class used to render door control icons
1070
+ * @defaultValue
1071
+ * ```
1072
+ * {
1073
+ * id: "blizzard",
1074
+ * label: "WEATHER.Blizzard",
1075
+ * filter: {
1076
+ * enabled: false
1077
+ * },
1078
+ * effects: [{
1079
+ * id: "snowShader",
1080
+ * effectClass: WeatherShaderEffect,
1081
+ * shaderClass: SnowShader,
1082
+ * blendMode: PIXI.BLEND_MODES.SCREEN,
1083
+ * config: {
1084
+ * tint: [0.95, 1, 1],
1085
+ * direction: 0.80,
1086
+ * speed: 8,
1087
+ * scale: 2.5,
1088
+ * }
1089
+ * },
1090
+ * {
1091
+ * id: "fogShader",
1092
+ * effectClass: WeatherShaderEffect,
1093
+ * shaderClass: FogShader,
1094
+ * blendMode: PIXI.BLEND_MODES.SCREEN,
1095
+ * performanceLevel: 2,
1096
+ * config: {
1097
+ * slope: 1.0,
1098
+ * intensity: 0.15,
1099
+ * speed: -4.0,
1100
+ * }
1101
+ * }]
1102
+ * }
1103
+ * ```
948
1104
  */
949
- doorControlClass: DoorControl.AnyConstructor;
950
-
951
- /** @defaultValue `0x000000` */
952
- exploredColor: number;
1105
+ blizzard: WeatherEffects.AmbienceConfiguration;
1106
+ };
953
1107
 
954
- /** @defaultValue `0x000000` */
955
- unexploredColor: number;
1108
+ /**
1109
+ * The control icons used for rendering common HUD operations
1110
+ */
1111
+ controlIcons: {
1112
+ /** @defaultValue `"icons/svg/combat.svg"` */
1113
+ combat: string;
956
1114
 
957
- /** @defaultValue `10000` */
958
- darknessToDaylightAnimationMS: number;
1115
+ /** @defaultValue `"icons/svg/cowled.svg"` */
1116
+ visibility: string;
959
1117
 
960
- /** @defaultValue `10000` */
961
- daylightToDarknessAnimationMS: number;
1118
+ /** @defaultValue `"icons/svg/aura.svg"` */
1119
+ effects: string;
962
1120
 
963
- darknessSourceClass: foundry.canvas.sources.PointDarknessSource.AnyConstructor;
1121
+ /** @defaultValue `"icons/svg/padlock.svg"` */
1122
+ lock: string;
964
1123
 
965
- lightSourceClass: foundry.canvas.sources.PointLightSource.AnyConstructor;
1124
+ /** @defaultValue `"icons/svg/up.svg"` */
1125
+ up: string;
966
1126
 
967
- globalLightSourceClass: foundry.canvas.sources.GlobalLightSource.AnyConstructor;
1127
+ /** @defaultValue `"icons/svg/down.svg"` */
1128
+ down: string;
968
1129
 
969
- visionSourceClass: foundry.canvas.sources.PointVisionSource.AnyConstructor;
1130
+ /** @defaultValue `"icons/svg/skull.svg"` */
1131
+ defeated: string;
970
1132
 
971
- soundSourceClass: foundry.canvas.sources.PointSoundSource.AnyConstructor;
1133
+ /** @defaultValue `"icons/svg/light.svg"` */
1134
+ light: string;
972
1135
 
973
- groups: CONFIG.Canvas.Groups;
1136
+ /** @defaultValue `"icons/svg/light-off.svg"` */
1137
+ lightOff: string;
974
1138
 
975
- layers: CONFIG.Canvas.Layers;
1139
+ /** @defaultValue `"icons/svg/explosion.svg"` */
1140
+ template: string;
976
1141
 
977
- lightLevels: {
978
- /** @defaultValue `0` */
979
- dark: number;
980
-
981
- /** @defaultValue `0.5` */
982
- halfdark: number;
983
-
984
- /** @defaultValue `0.25` */
985
- dim: number;
986
-
987
- /** @defaultValue `1.0` */
988
- bright: number;
989
- };
990
-
991
- /** @defaultValue `FogManager` */
992
- fogManager: FogManager.AnyConstructor;
993
-
994
- polygonBackends: {
995
- /** @defaultValue `typeof ClockwiseSweepPolygon` */
996
- sight: PointSourcePolygon.AnyConstructor;
997
- /** @defaultValue `typeof ClockwiseSweepPolygon` */
998
- light: PointSourcePolygon.AnyConstructor;
999
- /** @defaultValue `typeof ClockwiseSweepPolygon` */
1000
- sound: PointSourcePolygon.AnyConstructor;
1001
- /** @defaultValue `typeof ClockwiseSweepPolygon` */
1002
- move: PointSourcePolygon.AnyConstructor;
1003
- };
1004
-
1005
- /** @defaultValue `number` */
1006
- darknessSourcePaddingMultiplier: number;
1007
-
1008
- visibilityFilter: VisibilityFilter.AnyConstructor;
1009
-
1010
- visualEffectsMaskingFilter: VisualEffectsMaskingFilter.AnyConstructor;
1011
-
1012
- /** @defaultValue `Ruler` */
1013
- rulerClass: Ruler.AnyConstructor;
1014
-
1015
- /** @defaultValue `0.8` */
1016
- dragSpeedModifier: number;
1017
-
1018
- /** @defaultValue `3.0` */
1019
- maxZoom: number;
1020
-
1021
- /** @defaultValue `4` */
1022
- objectBorderThickness: number;
1023
-
1024
- gridStyles: Record<string, CONFIG.Canvas.GridStyle>;
1025
-
1026
- lightAnimations: CONFIG.Canvas.LightSourceAnimationConfig & {
1027
- flame: {
1028
- /** @defaultValue `"LIGHT.AnimationFame"` */
1029
- label: string;
1030
-
1031
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateFlickering` */
1032
- animation: BaseLightSource.LightAnimationFunction;
1033
-
1034
- /** @defaultValue `FlameIlluminationShader` */
1035
- illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
1036
-
1037
- /** @defaultValue `FlameColorationShader` */
1038
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1039
- };
1040
-
1041
- torch: {
1042
- /** @defaultValue `"LIGHT.AnimationTorch"` */
1043
- label: string;
1044
-
1045
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTorch` */
1046
- animation: BaseLightSource.LightAnimationFunction;
1047
-
1048
- /** @defaultValue `TorchIlluminationShader` */
1049
- illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
1050
-
1051
- /** @defaultValue `TorchColorationShader` */
1052
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1053
- };
1054
-
1055
- revolving: {
1056
- /** @defaultValue `"LIGHT.AnimationRevolving"` */
1057
- label: string;
1058
-
1059
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1060
- animation: BaseLightSource.LightAnimationFunction;
1061
-
1062
- /** @defaultValue `RevolvingColorationShader` */
1063
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1064
- };
1065
-
1066
- siren: {
1067
- /** @defaultValue `"LIGHT.AnimationSiren"` */
1068
- label: string;
1069
-
1070
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTorch` */
1071
- animation: BaseLightSource.LightAnimationFunction;
1072
-
1073
- /** @defaultValue `SirenIlluminationShader` */
1074
- illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
1075
-
1076
- /** @defaultValue `SirenIlluminationShader` */
1077
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1078
- };
1079
-
1080
- pulse: {
1081
- /** @defaultValue `"LIGHT.AnimationPulse"` */
1082
- label: string;
1083
-
1084
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animatePulse` */
1085
- animation: BaseLightSource.LightAnimationFunction;
1086
-
1087
- /** @defaultValue `PulseIlluminationShader` */
1088
- illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
1089
-
1090
- /** @defaultValue `PulseColorationShader` */
1091
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1092
- };
1093
-
1094
- chroma: {
1095
- /** @defaultValue `"LIGHT.AnimationChroma"` */
1096
- label: string;
1097
-
1098
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1099
- animation: BaseLightSource.LightAnimationFunction;
1100
-
1101
- /** @defaultValue `ChromaColorationShader` */
1102
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1103
- };
1104
-
1105
- wave: {
1106
- /** @defaultValue `"LIGHT.AnimationWave"` */
1107
- label: string;
1108
-
1109
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1110
- animation: BaseLightSource.LightAnimationFunction;
1111
-
1112
- /** @defaultValue `WaveIlluminationShader` */
1113
- illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
1114
-
1115
- /** @defaultValue `WaveColorationShader` */
1116
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1117
- };
1118
-
1119
- fog: {
1120
- /** @defaultValue `"LIGHT.AnimationFog"` */
1121
- label: string;
1122
-
1123
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1124
- animation: BaseLightSource.LightAnimationFunction;
1125
-
1126
- /** @defaultValue `FogColorationShader` */
1127
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1128
- };
1129
-
1130
- sunburst: {
1131
- /** @defaultValue `"LIGHT.AnimationSunburst"` */
1132
- label: string;
1133
-
1134
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1135
- animation: BaseLightSource.LightAnimationFunction;
1136
-
1137
- /** @defaultValue `SunburstIlluminationShader` */
1138
- illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
1139
-
1140
- /** @defaultValue `SunburstColorationShader` */
1141
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1142
- };
1143
-
1144
- dome: {
1145
- /** @defaultValue `"LIGHT.AnimationLightDome"` */
1146
- label: string;
1147
-
1148
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1149
- animation: BaseLightSource.LightAnimationFunction;
1150
-
1151
- /** @defaultValue `LightDomeColorationShader` */
1152
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1153
- };
1154
-
1155
- emanation: {
1156
- /** @defaultValue `"LIGHT.AnimationEmanation"` */
1157
- label: string;
1158
-
1159
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1160
- animation: BaseLightSource.LightAnimationFunction;
1142
+ /** @defaultValue `"icons/svg/sound.svg"` */
1143
+ sound: string;
1161
1144
 
1162
- /** @defaultValue `EmanationColorationShader` */
1163
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1164
- };
1145
+ /** @defaultValue `"icons/svg/sound-off.svg"` */
1146
+ soundOff: string;
1165
1147
 
1166
- hexa: {
1167
- /** @defaultValue `"LIGHT.AnimationHexaDome";` */
1168
- label: string;
1148
+ /** @defaultValue `"icons/svg/door-closed-outline.svg"` */
1149
+ doorClosed: string;
1169
1150
 
1170
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1171
- animation: BaseLightSource.LightAnimationFunction;
1151
+ /** @defaultValue `"icons/svg/door-open-outline.svg"` */
1152
+ doorOpen: string;
1172
1153
 
1173
- /** @defaultValue `HexaDomeColorationShader` */
1174
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1175
- };
1154
+ /** @defaultValue `"icons/svg/door-secret-outline.svg"` */
1155
+ doorSecret: string;
1176
1156
 
1177
- ghost: {
1178
- /** @defaultValue `"LIGHT.AnimationGhostLight"` */
1179
- label: string;
1157
+ /** @defaultValue `"icons/svg/door-locked-outline.svg"` */
1158
+ doorLocked: string;
1180
1159
 
1181
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1182
- animation: BaseLightSource.LightAnimationFunction;
1160
+ /** @defaultValue `"icons/svg/wall-direction.svg"` */
1161
+ wallDirection: string;
1162
+ } & Record<string, string>;
1183
1163
 
1184
- /** @defaultValue `GhostLightIlluminationShader` */
1185
- illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
1164
+ /**
1165
+ * A collection of fonts to load either from the user's local system, or remotely.
1166
+ * @defaultValue
1167
+ * ```typescript
1168
+ * {
1169
+ * Arial: { editor: true; fonts: [] };
1170
+ * Amiri: {
1171
+ * editor: true,
1172
+ * fonts: [
1173
+ * {urls: ["fonts/amiri/amiri-regular.woff2"]},
1174
+ * {urls: ["fonts/amiri/amiri-bold.woff2"], weight: 700}
1175
+ * ]
1176
+ * },
1177
+ * "Bruno Ace": {editor: true, fonts: [
1178
+ * {urls: ["fonts/bruno-ace/bruno-ace.woff2"]}
1179
+ * ]},
1180
+ * Courier: { editor: true; fonts: [] };
1181
+ * "Courier New": { editor: true; fonts: [] };
1182
+ * "Modesto Condensed": {
1183
+ * editor: true;
1184
+ * fonts: [
1185
+ * { urls: ["fonts/modesto-condensed/modesto-condensed.woff2"] },
1186
+ * { urls: ["fonts/modesto-condensed/modesto-condensed-bold.woff2"]; weight: 700 }
1187
+ * ];
1188
+ * };
1189
+ * Signika: {
1190
+ * editor: true;
1191
+ * fonts: [
1192
+ * { urls: ["fonts/signika/signika-regular.woff2"] },
1193
+ * { urls: ["fonts/signika/signika-bold.woff2"]; weight: 700 }
1194
+ * ];
1195
+ * };
1196
+ * Times: { editor: true; fonts: [] };
1197
+ * "Times New Roman": { editor: true; fonts: [] };
1198
+ * }
1199
+ * ```
1200
+ */
1201
+ fontDefinitions: Record<string, CONFIG.Font.FamilyDefinition>;
1186
1202
 
1187
- /** @defaultValue `GhostLightColorationShader` */
1188
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1189
- };
1203
+ /**
1204
+ * The default font family used for text labels on the PIXI Canvas
1205
+ * @defaultValue `"Signika"`
1206
+ */
1207
+ defaultFontFamily: string;
1190
1208
 
1191
- energy: {
1192
- /** @defaultValue `"LIGHT.AnimationEnergyField"` */
1193
- label: string;
1194
-
1195
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1196
- animation: BaseLightSource.LightAnimationFunction;
1209
+ /**
1210
+ * The array of status effect icons which can be applied to an Actor
1211
+ * @defaultValue
1212
+ * ```js
1213
+ * [
1214
+ * {
1215
+ * id: "dead";
1216
+ * name: "EFFECT.StatusDead";
1217
+ * img: "icons/svg/skull.svg";
1218
+ * },
1219
+ * {
1220
+ * id: "unconscious";
1221
+ * name: "EFFECT.StatusUnconscious";
1222
+ * img: "icons/svg/unconscious.svg";
1223
+ * },
1224
+ * {
1225
+ * id: "sleep";
1226
+ * name: "EFFECT.StatusAsleep";
1227
+ * img: "icons/svg/sleep.svg";
1228
+ * },
1229
+ * {
1230
+ * id: "stun";
1231
+ * name: "EFFECT.StatusStunned";
1232
+ * img: "icons/svg/daze.svg";
1233
+ * },
1234
+ * {
1235
+ * id: "prone";
1236
+ * name: "EFFECT.StatusProne";
1237
+ * img: "icons/svg/falling.svg";
1238
+ * },
1239
+ * {
1240
+ * id: "restrain";
1241
+ * name: "EFFECT.StatusRestrained";
1242
+ * img: "icons/svg/net.svg";
1243
+ * },
1244
+ * {
1245
+ * id: "paralysis";
1246
+ * name: "EFFECT.StatusParalysis";
1247
+ * img: "icons/svg/paralysis.svg";
1248
+ * },
1249
+ * {
1250
+ * id: "fly";
1251
+ * name: "EFFECT.StatusFlying";
1252
+ * img: "icons/svg/wing.svg";
1253
+ * },
1254
+ * {
1255
+ * id: "blind";
1256
+ * name: "EFFECT.StatusBlind";
1257
+ * img: "icons/svg/blind.svg";
1258
+ * },
1259
+ * {
1260
+ * id: "deaf";
1261
+ * name: "EFFECT.StatusDeaf";
1262
+ * img: "icons/svg/deaf.svg";
1263
+ * },
1264
+ * {
1265
+ * id: "silence";
1266
+ * name: "EFFECT.StatusSilenced";
1267
+ * img: "icons/svg/silenced.svg";
1268
+ * },
1269
+ * {
1270
+ * id: "fear";
1271
+ * name: "EFFECT.StatusFear";
1272
+ * img: "icons/svg/terror.svg";
1273
+ * },
1274
+ * {
1275
+ * id: "burning";
1276
+ * name: "EFFECT.StatusBurning";
1277
+ * img: "icons/svg/fire.svg";
1278
+ * },
1279
+ * {
1280
+ * id: "frozen";
1281
+ * name: "EFFECT.StatusFrozen";
1282
+ * img: "icons/svg/frozen.svg";
1283
+ * },
1284
+ * {
1285
+ * id: "shock";
1286
+ * name: "EFFECT.StatusShocked";
1287
+ * img: "icons/svg/lightning.svg";
1288
+ * },
1289
+ * {
1290
+ * id: "corrode";
1291
+ * name: "EFFECT.StatusCorrode";
1292
+ * img: "icons/svg/acid.svg";
1293
+ * },
1294
+ * {
1295
+ * id: "bleeding";
1296
+ * name: "EFFECT.StatusBleeding";
1297
+ * img: "icons/svg/blood.svg";
1298
+ * },
1299
+ * {
1300
+ * id: "disease";
1301
+ * name: "EFFECT.StatusDisease";
1302
+ * img: "icons/svg/biohazard.svg";
1303
+ * },
1304
+ * {
1305
+ * id: "poison";
1306
+ * name: "EFFECT.StatusPoison";
1307
+ * img: "icons/svg/poison.svg";
1308
+ * },
1309
+ * {
1310
+ * id: "curse";
1311
+ * name: "EFFECT.StatusCursed";
1312
+ * img: "icons/svg/sun.svg";
1313
+ * },
1314
+ * {
1315
+ * id: "regen";
1316
+ * name: "EFFECT.StatusRegen";
1317
+ * img: "icons/svg/regen.svg";
1318
+ * },
1319
+ * {
1320
+ * id: "degen";
1321
+ * name: "EFFECT.StatusDegen";
1322
+ * img: "icons/svg/degen.svg";
1323
+ * },
1324
+ * {
1325
+ * id: "hover";
1326
+ * name: "EFFECT.StatusHover";
1327
+ * img: "icons/svg/wingfoot.svg";
1328
+ * },
1329
+ * {
1330
+ * id: "burrow";
1331
+ * name: "EFFECT.StatusBurrow";
1332
+ * img: "icons/svg/mole.svg";
1333
+ * },
1334
+ * {
1335
+ * id: "upgrade";
1336
+ * name: "EFFECT.StatusUpgrade";
1337
+ * img: "icons/svg/upgrade.svg";
1338
+ * },
1339
+ * {
1340
+ * id: "downgrade";
1341
+ * name: "EFFECT.StatusDowngrade";
1342
+ * img: "icons/svg/downgrade.svg";
1343
+ * },
1344
+ * {
1345
+ * id: "invisible",
1346
+ * name: "EFFECT.StatusInvisible",
1347
+ * img: "icons/svg/invisible.svg"
1348
+ * },
1349
+ * {
1350
+ * id: "target";
1351
+ * name: "EFFECT.StatusTarget";
1352
+ * img: "icons/svg/target.svg";
1353
+ * },
1354
+ * {
1355
+ * id: "eye";
1356
+ * name: "EFFECT.StatusMarked";
1357
+ * img: "icons/svg/eye.svg";
1358
+ * },
1359
+ * {
1360
+ * id: "bless";
1361
+ * name: "EFFECT.StatusBlessed";
1362
+ * img: "icons/svg/angel.svg";
1363
+ * },
1364
+ * {
1365
+ * id: "fireShield";
1366
+ * name: "EFFECT.StatusFireShield";
1367
+ * img: "icons/svg/fire-shield.svg";
1368
+ * },
1369
+ * {
1370
+ * id: "coldShield";
1371
+ * name: "EFFECT.StatusIceShield";
1372
+ * img: "icons/svg/ice-shield.svg";
1373
+ * },
1374
+ * {
1375
+ * id: "magicShield";
1376
+ * name: "EFFECT.StatusMagicShield";
1377
+ * img: "icons/svg/mage-shield.svg";
1378
+ * },
1379
+ * {
1380
+ * id: "holyShield";
1381
+ * name: "EFFECT.StatusHolyShield";
1382
+ * img: "icons/svg/holy-shield.svg";
1383
+ * }
1384
+ * ]
1385
+ * ```
1386
+ */
1387
+ statusEffects: CONFIG.StatusEffect[];
1197
1388
 
1198
- /** @defaultValue `EnergyFieldColorationShader` */
1199
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1200
- };
1389
+ /**
1390
+ * A mapping of status effect IDs which provide some additional mechanical integration.
1391
+ * @defaultValue `{ DEFEATED: "dead", INVISIBLE: "invisible", BLIND: "blind", BURROW: "burrow", HOVER: "hover", FLY: "fly" }`
1392
+ */
1393
+ specialStatusEffects: HandleEmptyObject<CONFIG.SpecialStatusEffects, CONFIG.DefaultSpecialStatusEffects>;
1201
1394
 
1202
- vortex: {
1203
- /** @defaultValue `"LIGHT.AnimationVortex"` */
1204
- label: string;
1395
+ /**
1396
+ * A mapping of core audio effects used which can be replaced by systems or mods
1397
+ */
1398
+ sounds: {
1399
+ /** @defaultValue `"sounds/dice.wav"` */
1400
+ dice: string;
1205
1401
 
1206
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1207
- animation: BaseLightSource.LightAnimationFunction;
1402
+ /** @defaultValue `"sounds/lock.wav"` */
1403
+ lock: string;
1208
1404
 
1209
- /** @defaultValue `VortexIlluminationShader` */
1210
- illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
1405
+ /** @defaultValue `"sounds/notify.wav"` */
1406
+ notification: string;
1211
1407
 
1212
- /** @defaultValue `VortexColorationShader` */
1213
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1214
- };
1408
+ /** @defaultValue `"sounds/drums.wav"` */
1409
+ combat: string;
1410
+ };
1215
1411
 
1216
- witchwave: {
1217
- /** @defaultValue `"LIGHT.AnimationBewitchingWave"` */
1218
- label: string;
1412
+ /**
1413
+ * Define the set of supported languages for localization
1414
+ * @defaultValue `{ en: "English" }`
1415
+ */
1416
+ supportedLanguages: {
1417
+ en: string;
1418
+ } & Record<string, string>;
1219
1419
 
1220
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1221
- animation: BaseLightSource.LightAnimationFunction;
1420
+ /**
1421
+ * Localization constants.
1422
+ */
1423
+ i18n: {
1424
+ /**
1425
+ * In operations involving the document index, search prefixes must have at least this many characters to avoid too
1426
+ * large a search space. Languages that have hundreds or thousands of characters will typically have very shallow
1427
+ * search trees, so it should be safe to lower this number in those cases.
1428
+ * @defaultValue `4`
1429
+ */
1430
+ searchMinimumCharacterLength: number;
1431
+ };
1222
1432
 
1223
- /** @defaultValue `BewitchingWaveIlluminationShader` */
1224
- illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
1433
+ /**
1434
+ * Configuration for time tracking
1435
+ */
1436
+ time: {
1437
+ /** @defaultValue `0` */
1438
+ turnTime: number;
1225
1439
 
1226
- /** @defaultValue `BewitchingWaveColorationShader` */
1227
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1228
- };
1440
+ /** @defaultValue `0` */
1441
+ roundTime: number;
1442
+ };
1229
1443
 
1230
- rainbowswirl: {
1231
- /** @defaultValue `"LIGHT.AnimationSwirlingRainbow"` */
1232
- label: string;
1444
+ /**
1445
+ * Configuration for the ActiveEffect embedded document type
1446
+ */
1447
+ ActiveEffect: {
1448
+ /** @defaultValue `ActiveEffect` */
1449
+ documentClass: Document.ImplementationClassFor<"ActiveEffect">;
1233
1450
 
1234
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1235
- animation: BaseLightSource.LightAnimationFunction;
1451
+ /**
1452
+ * @defaultValue `{}`
1453
+ * @remarks `TypeDataModel` is preferred to `DataModel` per core Foundry team
1454
+ */
1455
+ dataModels: Record<string, typeof DataModel<any, ActiveEffect.Implementation>>;
1236
1456
 
1237
- /** @defaultValue `SwirlingRainbowColorationShader` */
1238
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1239
- };
1457
+ /**
1458
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1459
+ */
1460
+ sheetClasses: Record<foundry.documents.BaseActiveEffect.SubType, Record<string, SheetClassConfig>>;
1240
1461
 
1241
- radialrainbow: {
1242
- /** @defaultValue `"LIGHT.AnimationRadialRainbow"` */
1243
- label: string;
1462
+ /**
1463
+ * @defaultValue `{}`
1464
+ * @remarks Initialized by `Localization#initialize`, is an empty object until `i18nInit`
1465
+ */
1466
+ typeLabels: Record<foundry.documents.BaseActiveEffect.SubType, string>;
1244
1467
 
1245
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1246
- animation: BaseLightSource.LightAnimationFunction;
1468
+ /** @defaultValue `{}` */
1469
+ typeIcons: Record<string, string>;
1247
1470
 
1248
- /** @defaultValue `RadialRainbowColorationShader` */
1249
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1250
- };
1471
+ /**
1472
+ * If true, Active Effects on Items will be copied to the Actor when the Item is created on the Actor if the
1473
+ * Active Effect's transfer property is true, and will be deleted when that Item is deleted from the Actor.
1474
+ * If false, Active Effects are never copied to the Actor, but will still apply to the Actor from within the Item
1475
+ * if the transfer property on the Active Effect is true.
1476
+ * @remarks Foundry states "\@deprecated since v11" but this is misleading for actual use
1477
+ */
1478
+ legacyTransferral: boolean;
1479
+ };
1251
1480
 
1252
- fairy: {
1253
- /** @defaultValue `"LIGHT.AnimationFairyLight"` */
1254
- label: string;
1481
+ /**
1482
+ * Configuration for the ActorDelta embedded document type.
1483
+ */
1484
+ ActorDelta: {
1485
+ /** @defaultValue `ActorDelta` */
1486
+ documentClass: Document.ImplementationClassFor<"ActorDelta">;
1255
1487
 
1256
- /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
1257
- animation: BaseLightSource.LightAnimationFunction;
1488
+ /**
1489
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1490
+ */
1491
+ sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
1258
1492
 
1259
- /** @defaultValue `FairyLightIlluminationShader` */
1260
- illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
1493
+ /**
1494
+ * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
1495
+ */
1496
+ typeLabels?: Record<"base", string>;
1497
+ };
1261
1498
 
1262
- /** @defaultValue `FairyLightColorationShader` */
1263
- colorationShader: AdaptiveColorationShader.AnyConstructor;
1264
- };
1265
- };
1499
+ /**
1500
+ * Configuration for the Card embedded Document type
1501
+ */
1502
+ Card: {
1503
+ /** @defaultValue `Card` */
1504
+ documentClass: Document.ImplementationClassFor<"Card">;
1266
1505
 
1267
- darknessAnimations: CONFIG.Canvas.DarknessSourceAnimationConfig;
1506
+ /**
1507
+ * @defaultValue `{}`
1508
+ * @remarks `TypeDataModel` is preferred to `DataModel` per core Foundry team
1509
+ */
1510
+ dataModels: Record<string, typeof DataModel<any, Card.Implementation>>;
1268
1511
 
1269
1512
  /**
1270
- * A registry of Scenes which are managed by a specific SceneManager class.
1513
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1271
1514
  */
1272
- // `typeof foundry.canvas.SceneManager` is used because
1273
- managedScenes: Record<string, typeof foundry.canvas.SceneManager>;
1515
+ sheetClasses: Record<foundry.documents.BaseCard.SubType, Record<string, SheetClassConfig>>;
1274
1516
 
1275
- pings: {
1276
- types: {
1277
- /** @defaultValue `"pulse"` */
1278
- PULSE: string;
1517
+ /**
1518
+ * @defaultValue `{}`
1519
+ * @remarks Initialized by `Localization#initialize`, is an empty object until `i18nInit`
1520
+ */
1521
+ typeLabels: Record<foundry.documents.BaseCard.SubType, string>;
1279
1522
 
1280
- /** @defaultValue `"alert"` */
1281
- ALERT: string;
1523
+ /** @defaultValue `{}` */
1524
+ typeIcons: Record<string, string>;
1525
+ };
1282
1526
 
1283
- /** @defaultValue `"chevron"` */
1284
- PULL: string;
1527
+ /**
1528
+ * Configuration for the TableResult embedded document type
1529
+ */
1530
+ TableResult: {
1531
+ /** @defaultValue `TableResult` */
1532
+ documentClass: Document.ImplementationClassFor<"TableResult">;
1285
1533
 
1286
- /** @defaultValue `"arrow"` */
1287
- ARROW: string;
1288
- };
1289
- styles: {
1290
- /** @defaultValue `{ class: AlertPing, color: "#ff0000", size: 1.5, duration: 900 }` */
1291
- alert: CONFIG.Canvas.Pings.Style;
1534
+ /**
1535
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1536
+ */
1537
+ sheetClasses: Record<foundry.documents.BaseTableResult.SubType, Record<string, SheetClassConfig>>;
1292
1538
 
1293
- /** @defaultValue `{ class: ArrowPing, size: 1, duration: 900 }` */
1294
- arrow: CONFIG.Canvas.Pings.Style;
1539
+ /**
1540
+ * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
1541
+ */
1542
+ typeLabels?: Record<foundry.documents.BaseTableResult.SubType, string>;
1543
+ };
1295
1544
 
1296
- /** @defaultValue `{ class: ChevronPing, size: 1, duration: 2000 }` */
1297
- chevron: CONFIG.Canvas.Pings.Style;
1545
+ JournalEntryPage: {
1546
+ /** @defaultValue `JournalEntryPage` */
1547
+ documentClass: Document.ImplementationClassFor<"JournalEntryPage">;
1298
1548
 
1299
- /** @defaultValue `{ class: PulsePing, size: 1.5, duration: 900 }` */
1300
- pulse: CONFIG.Canvas.Pings.Style;
1549
+ /**
1550
+ * @defaultValue `{}`
1551
+ * @remarks `TypeDataModel` is preferred to `DataModel` per core Foundry team
1552
+ */
1553
+ dataModels: Record<string, typeof DataModel<any, JournalEntryPage.Implementation>>;
1301
1554
 
1302
- [key: string]: CONFIG.Canvas.Pings.Style;
1303
- };
1555
+ /**
1556
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1557
+ */
1558
+ sheetClasses: Record<foundry.documents.BaseJournalEntryPage.SubType, Record<string, SheetClassConfig>>;
1304
1559
 
1305
- /** @defaultValue `700` */
1306
- pullSpeed: number;
1307
- };
1560
+ /**
1561
+ * @defaultValue `{}`
1562
+ * @remarks Initialized by `Localization#initialize`, is an empty object until `i18nInit`
1563
+ */
1564
+ typeLabels: Record<foundry.documents.BaseJournalEntryPage.SubType, string>;
1308
1565
 
1309
- targeting: {
1310
- /** @defaultValue `.15` */
1311
- size: number;
1566
+ typeIcons: {
1567
+ [type: string]: string;
1568
+
1569
+ /** @defaultValue `"fas fa-file-image"` */
1570
+ image: string;
1571
+ /** @defaultValue `"fas fa-file-pdf"` */
1572
+ pdf: string;
1573
+ /** @defaultValue `"fas fa-file-lines"` */
1574
+ text: string;
1575
+ /** @defaultValue `"fas fa-file-video"` */
1576
+ video: string;
1312
1577
  };
1313
1578
 
1579
+ /** @defaultValue `"text"` */
1580
+ defaultType: string;
1581
+
1582
+ /** @defaultValue `"fas fa-book-open"` */
1583
+ sidebarIcon: string;
1584
+ };
1585
+
1586
+ /**
1587
+ * Configuration for the ActiveEffect embedded document type
1588
+ */
1589
+ PlaylistSound: {
1590
+ /** @defaultValue `PlaylistSound` */
1591
+ documentClass: Document.ImplementationClassFor<"PlaylistSound">;
1592
+
1314
1593
  /**
1315
- * The hover-fading configuration.
1594
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1316
1595
  */
1317
- hoverFade: {
1318
- /**
1319
- * The delay in milliseconds before the (un)faded animation starts on (un)hover.
1320
- * @defaultValue `250`
1321
- */
1322
- delay: number;
1596
+ sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
1323
1597
 
1324
- /**
1325
- * The duration in milliseconds of the (un)fade animation on (un)hover.
1326
- * @defaultValue `750`
1327
- */
1328
- duration: number;
1329
- };
1598
+ /**
1599
+ * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
1600
+ */
1601
+ typeLabels?: Record<"base", string>;
1602
+ };
1603
+
1604
+ /**
1605
+ * Configuration for the AmbientLight embedded document type and its representation on the game Canvas
1606
+ */
1607
+ AmbientLight: {
1608
+ /** @defaultValue `AmbientLightDocument` */
1609
+ documentClass: Document.ImplementationClassFor<"AmbientLight">;
1330
1610
 
1331
1611
  /**
1332
- * Allow specific transcoders for assets
1333
- * @defaultValue `{ basis: false }`
1612
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1334
1613
  */
1335
- transCoders: Record<string, boolean>;
1614
+ sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
1336
1615
 
1337
1616
  /**
1338
- * The set of VisionMode definitions which are available to be used for Token vision.
1617
+ * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
1339
1618
  */
1340
- visionModes: {
1341
- [key: string]: VisionMode;
1619
+ typeLabels?: Record<"base", string>;
1342
1620
 
1343
- /**
1344
- * Default (Basic) Vision
1345
- * @defaultValue
1346
- * ```typescript
1347
- * new VisionMode({
1348
- * id: "basic",
1349
- * label: "VISION.ModeBasicVision",
1350
- * vision: {
1351
- * defaults: { attenuation: 0, contrast: 0, saturation: 0, brightness: 0 }
1352
- * preferred: true // Takes priority over other vision modes
1353
- * }
1354
- * })
1355
- * ```
1356
- */
1357
- basic: VisionMode;
1621
+ /** @defaultValue `typeof AmbientLightDocument` */
1622
+ // eslint-disable-next-line no-restricted-syntax
1623
+ objectClass: ConfiguredObjectClassOrDefault<typeof AmbientLight>;
1358
1624
 
1359
- /**
1360
- * Darkvision
1361
- * @defaultValue
1362
- * ```typescript
1363
- * new VisionMode({
1364
- * id: "darkvision",
1365
- * label: "VISION.ModeDarkvision",
1366
- * canvas: {
1367
- * shader: ColorAdjustmentsSamplerShader,
1368
- * uniforms: { contrast: 0, saturation: -1.0, brightness: 0 }
1369
- * },
1370
- * lighting: {
1371
- * levels: {
1372
- * [VisionMode.LIGHTING_LEVELS.DIM]: VisionMode.LIGHTING_LEVELS.BRIGHT
1373
- * },
1374
- * background: { visibility: VisionMode.LIGHTING_VISIBILITY.REQUIRED }
1375
- * },
1376
- * vision: {
1377
- * darkness: { adaptive: false },
1378
- * defaults: { attenuation: 0, contrast: 0, saturation: -1.0, brightness: 0 }
1379
- * }
1380
- * })
1381
- * ```
1382
- */
1383
- darkvision: VisionMode;
1625
+ /** @defaultValue `typeof LightingLayer` */
1626
+ layerClass: LightingLayer.AnyConstructor;
1627
+ };
1384
1628
 
1385
- /**
1386
- * Darkvision
1387
- * @defaultValue
1388
- * ```typescript
1389
- * new VisionMode({
1390
- * id: "monochromatic",
1391
- * label: "VISION.ModeMonochromatic",
1392
- * canvas: {
1393
- * shader: ColorAdjustmentsSamplerShader,
1394
- * uniforms: { contrast: 0, saturation: -1.0, brightness: 0 }
1395
- * },
1396
- * lighting: {
1397
- * background: {
1398
- * postProcessingModes: ["SATURATION"],
1399
- * uniforms: { saturation: -1.0, tint: [1, 1, 1] }
1400
- * },
1401
- * illumination: {
1402
- * postProcessingModes: ["SATURATION"],
1403
- * uniforms: { saturation: -1.0, tint: [1, 1, 1] }
1404
- * },
1405
- * coloration: {
1406
- * postProcessingModes: ["SATURATION"],
1407
- * uniforms: { saturation: -1.0, tint: [1, 1, 1] }
1408
- * }
1409
- * },
1410
- * vision: {
1411
- * darkness: { adaptive: false },
1412
- * defaults: { attenuation: 0, contrast: 0, saturation: -1, brightness: 0 }
1413
- * }
1414
- * })
1415
- * ```
1416
- */
1417
- monochromatic: VisionMode;
1629
+ /**
1630
+ * Configuration for the AmbientSound embedded document type and its representation on the game Canvas
1631
+ */
1632
+ AmbientSound: {
1633
+ /** @defaultValue `AmbientSoundDocument` */
1634
+ documentClass: Document.ImplementationClassFor<"AmbientSound">;
1418
1635
 
1419
- /**
1420
- * Blindness
1421
- * @defaultValue
1422
- * ```typescript
1423
- * new VisionMode({
1424
- * id: "blindness",
1425
- * label: "VISION.ModeBlindness",
1426
- * tokenConfig: false,
1427
- * canvas: {
1428
- * shader: ColorAdjustmentsSamplerShader,
1429
- * uniforms: { contrast: -0.75, saturation: -1, exposure: -0.3 }
1430
- * },
1431
- * lighting: {
1432
- * background: { visibility: VisionMode.LIGHTING_VISIBILITY.DISABLED },
1433
- * illumination: { visibility: VisionMode.LIGHTING_VISIBILITY.DISABLED },
1434
- * coloration: { visibility: VisionMode.LIGHTING_VISIBILITY.DISABLED }
1435
- * },
1436
- * vision: {
1437
- * darkness: { adaptive: false },
1438
- * defaults: { color: null, attenuation: 0, contrast: -0.5, saturation: -1, brightness: -1 }
1439
- * }
1440
- * }),
1441
- * ```
1442
- */
1443
- blindness: VisionMode;
1636
+ /**
1637
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1638
+ */
1639
+ sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
1444
1640
 
1445
- /**
1446
- * Tremorsense
1447
- * @defaultValue
1448
- * ```typescript
1449
- * new VisionMode({
1450
- * id: "tremorsense",
1451
- * label: "VISION.ModeTremorsense",
1452
- * canvas: {
1453
- * shader: ColorAdjustmentsSamplerShader,
1454
- * uniforms: { contrast: 0, saturation: -0.8, exposure: -0.65 }
1455
- * },
1456
- * lighting: {
1457
- * background: { visibility: VisionMode.LIGHTING_VISIBILITY.DISABLED },
1458
- * illumination: { visibility: VisionMode.LIGHTING_VISIBILITY.DISABLED },
1459
- * coloration: { visibility: VisionMode.LIGHTING_VISIBILITY.DISABLED },
1460
- * darkness: { visibility: VisionMode.LIGHTING_VISIBILITY.DISABLED }
1461
- * },
1462
- * vision: {
1463
- * darkness: { adaptive: false },
1464
- * defaults: { attenuation: 0, contrast: 0.2, saturation: -0.3, brightness: 1 },
1465
- * background: { shader: WaveBackgroundVisionShader },
1466
- * coloration: { shader: WaveColorationVisionShader }
1467
- * }
1468
- * }, {animated: true})
1469
- * ```
1470
- */
1471
- tremorsense: VisionMode;
1641
+ /**
1642
+ * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
1643
+ */
1644
+ typeLabels?: Record<"base", string>;
1472
1645
 
1473
- /**
1474
- * Light Amplification
1475
- * @defaultValue
1476
- * ```typescript
1477
- * new VisionMode({
1478
- * id: "lightAmplification",
1479
- * label: "VISION.ModeLightAmplification",
1480
- * canvas: {
1481
- * shader: AmplificationSamplerShader,
1482
- * uniforms: { saturation: -0.5, tint: [0.38, 0.8, 0.38] }
1483
- * },
1484
- * lighting: {
1485
- * background: {
1486
- * visibility: VisionMode.LIGHTING_VISIBILITY.REQUIRED,
1487
- * postProcessingModes: ["SATURATION", "EXPOSURE"],
1488
- * uniforms: { saturation: -0.5, exposure: 1.5, tint: [0.38, 0.8, 0.38] }
1489
- * },
1490
- * illumination: {
1491
- * postProcessingModes: ["SATURATION"],
1492
- * uniforms: { saturation: -0.5 }
1493
- * },
1494
- * coloration: {
1495
- * postProcessingModes: ["SATURATION", "EXPOSURE"],
1496
- * uniforms: { saturation: -0.5, exposure: 1.5, tint: [0.38, 0.8, 0.38] }
1497
- * },
1498
- * levels: {
1499
- * [VisionMode.LIGHTING_LEVELS.DIM]: VisionMode.LIGHTING_LEVELS.BRIGHT,
1500
- * [VisionMode.LIGHTING_LEVELS.BRIGHT]: VisionMode.LIGHTING_LEVELS.BRIGHTEST
1501
- * }
1502
- * },
1503
- * vision: {
1504
- * darkness: { adaptive: false },
1505
- * defaults: { attenuation: 0, contrast: 0, saturation: -0.5, brightness: 1 },
1506
- * background: { shader: AmplificationBackgroundVisionShader }
1507
- * }
1508
- * })
1509
- * ```
1510
- */
1511
- lightAmplification: VisionMode;
1512
- };
1646
+ /** @defaultValue `typeof AmbientSound` */
1647
+ // eslint-disable-next-line no-restricted-syntax
1648
+ objectClass: ConfiguredObjectClassOrDefault<typeof AmbientSound>;
1649
+
1650
+ /** @defaultValue `typeof SoundsLayer` */
1651
+ layerClass: SoundsLayer.AnyConstructor;
1652
+ };
1653
+
1654
+ /**
1655
+ * Configuration for the Combatant embedded document type within a Combat document
1656
+ */
1657
+ Combatant: {
1658
+ /** @defaultValue `Combatant` */
1659
+ documentClass: Document.ImplementationClassFor<"Combatant">;
1513
1660
 
1514
1661
  /**
1515
- * The set of DetectionMode definitions which are available to be used for visibility detection.
1662
+ * @defaultValue `{}`
1663
+ * @remarks `TypeDataModel` is preferred to `DataModel` per core Foundry team
1516
1664
  */
1517
- detectionModes: {
1518
- [key: string]: DetectionMode;
1665
+ dataModels: Record<string, typeof DataModel<any, Combatant.Implementation>>;
1519
1666
 
1520
- lightPerception: DetectionModeLightPerception;
1667
+ /**
1668
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1669
+ */
1670
+ sheetClasses: Record<foundry.documents.BaseCombatant.SubType, Record<string, SheetClassConfig>>;
1521
1671
 
1522
- basicSight: DetectionModeBasicSight;
1672
+ /**
1673
+ * @defaultValue `{}`
1674
+ * @remarks Initialized by `Localization#initialize`, is an empty object until `i18nInit`
1675
+ */
1676
+ typeLabels: Record<foundry.documents.BaseCombatant.SubType, string>;
1523
1677
 
1524
- seeInvisibility: DetectionModeInvisibility;
1678
+ /** @defaultValue `{}` */
1679
+ typeIcons: Record<string, string>;
1680
+ };
1525
1681
 
1526
- senseInvisibility: DetectionModeInvisibility;
1682
+ /**
1683
+ * Configuration for the Drawing embedded document type and its representation on the game Canvas
1684
+ */
1685
+ Drawing: {
1686
+ /** @defaultValue `DrawingDocument` */
1687
+ documentClass: Document.ImplementationClassFor<"Drawing">;
1527
1688
 
1528
- feelTremor: DetectionModeTremor;
1689
+ /**
1690
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1691
+ */
1692
+ sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
1529
1693
 
1530
- seeAll: DetectionModeAll;
1694
+ /**
1695
+ * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
1696
+ */
1697
+ typeLabels?: Record<"base", string>;
1531
1698
 
1532
- senseAll: DetectionModeAll;
1533
- };
1699
+ /** @defaultValue `typeof Drawing` */
1700
+ // eslint-disable-next-line no-restricted-syntax
1701
+ objectClass: ConfiguredObjectClassOrDefault<typeof Drawing>;
1702
+
1703
+ /** @defaultValue `typeof DrawingsLayer` */
1704
+ layerClass: typeof DrawingsLayer;
1705
+
1706
+ /** @defaultValue `typeof DrawingHUD` */
1707
+ hudClass: typeof DrawingHUD;
1534
1708
  };
1535
1709
 
1536
1710
  /**
1537
- * Configure the default Token text style so that it may be reused and overridden by modules
1538
- * @defaultValue
1539
- * ```typescript
1540
- * new PIXI.TextStyle({
1541
- * fontFamily: "Signika",
1542
- * fontSize: 36,
1543
- * fill: "#FFFFFF",
1544
- * stroke: "#111111",
1545
- * strokeThickness: 1,
1546
- * dropShadow: true,
1547
- * dropShadowColor: "#000000",
1548
- * dropShadowBlur: 2,
1549
- * dropShadowAngle: 0,
1550
- * dropShadowDistance: 0,
1551
- * align: "center",
1552
- * wordWrap: false,
1553
- * padding: 1
1554
- * })
1555
- * ```
1556
- **/
1557
- canvasTextStyle: PIXI.TextStyle;
1711
+ * Configuration for the MeasuredTemplate embedded document type and its representation on the game Canvas
1712
+ */
1713
+ MeasuredTemplate: {
1714
+ defaults: {
1715
+ /** @defaultValue `53.13` */
1716
+ angle: number;
1717
+
1718
+ /** @defaultValue `1` */
1719
+ width: number;
1720
+ };
1721
+
1722
+ types: {
1723
+ /** @defaultValue `"Circle"` */
1724
+ circle: string;
1725
+
1726
+ /** @defaultValue `"Cone"` */
1727
+ cone: string;
1728
+
1729
+ /** @defaultValue `"Rectangle"` */
1730
+ rect: string;
1731
+
1732
+ /** @defaultValue `"Ray"` */
1733
+ ray: string;
1734
+ };
1735
+
1736
+ /** @defaultValue `MeasuredTemplateDocument` */
1737
+ documentClass: Document.ImplementationClassFor<"MeasuredTemplate">;
1738
+
1739
+ /**
1740
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1741
+ */
1742
+ sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
1743
+
1744
+ /**
1745
+ * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
1746
+ */
1747
+ typeLabels?: Record<"base", string>;
1748
+
1749
+ /** @defaultValue `typeof MeasuredTemplate` */
1750
+ // eslint-disable-next-line no-restricted-syntax
1751
+ objectClass: ConfiguredObjectClassOrDefault<typeof MeasuredTemplate>;
1752
+
1753
+ /** @defaultValue `typeof TemplateLayer` */
1754
+ layerClass: typeof TemplateLayer;
1755
+ };
1558
1756
 
1559
1757
  /**
1560
- * Available Weather Effects implementations
1758
+ * Configuration for the Note embedded document type and its representation on the game Canvas
1561
1759
  */
1562
- weatherEffects: {
1563
- [key: string]: CONFIG.WeatherAmbienceConfiguration;
1760
+ Note: {
1761
+ /** @defaultValue `NoteDocument` */
1762
+ documentClass: Document.ImplementationClassFor<"Note">;
1564
1763
 
1565
1764
  /**
1566
- * @defaultValue
1567
- * ```ts
1568
- * {
1569
- * id: "leaves",
1570
- * label: "WEATHER.AutumnLeaves",
1571
- * effects: [{
1572
- * id: "leavesParticles",
1573
- * effectClass: AutumnLeavesWeatherEffect
1574
- * }]
1575
- * }
1576
- * ```
1765
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1577
1766
  */
1578
- leaves: CONFIG.WeatherAmbienceConfiguration;
1767
+ sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
1579
1768
 
1580
1769
  /**
1581
- * @defaultValue
1582
- * ```ts
1583
- * {
1584
- * id: "rain",
1585
- * label: "WEATHER.Rain",
1586
- * filter: {
1587
- * enabled: false
1588
- * },
1589
- * effects: [{
1590
- * id: "rainShader",
1591
- * effectClass: WeatherShaderEffect,
1592
- * shaderClass: RainShader,
1593
- * blendMode: PIXI.BLEND_MODES.SCREEN,
1594
- * config: {
1595
- * opacity: 0.25,
1596
- * tint: [0.7, 0.9, 1.0],
1597
- * intensity: 1,
1598
- * strength: 1,
1599
- * rotation: 0.2618,
1600
- * speed: 0.2,
1601
- * }
1602
- * }]
1603
- * }
1604
- * ```
1770
+ * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
1605
1771
  */
1606
- rain: CONFIG.WeatherAmbienceConfiguration;
1772
+ typeLabels?: Record<"base", string>;
1773
+
1774
+ /** @defaultValue `typeof Note` */
1775
+ // eslint-disable-next-line no-restricted-syntax
1776
+ objectClass: ConfiguredObjectClassOrDefault<typeof Note>;
1777
+
1778
+ /** @defaultValue `typeof NotesLayer` */
1779
+ layerClass: NotesLayer.AnyConstructor;
1780
+ };
1781
+
1782
+ Region: {
1783
+ /** @defaultValue `RegionDocument` */
1784
+ documentClass: Document.ImplementationClassFor<"Region">;
1785
+
1786
+ /** @defaultValue `Region` */
1787
+ // eslint-disable-next-line no-restricted-syntax
1788
+ objectClass: ConfiguredObjectClassOrDefault<typeof Region>;
1789
+
1790
+ /** @defaultValue `RegionLayer` */
1791
+ layerClass: RegionLayer.AnyConstructor;
1607
1792
 
1608
1793
  /**
1609
- * @defaultValue
1610
- * ```
1611
- * {
1612
- * id: "rainStorm",
1613
- * label: "WEATHER.RainStorm",
1614
- * filter: {
1615
- * enabled: false
1616
- * },
1617
- * effects: [{
1618
- * id: "fogShader",
1619
- * effectClass: WeatherShaderEffect,
1620
- * shaderClass: FogShader,
1621
- * blendMode: PIXI.BLEND_MODES.SCREEN,
1622
- * performanceLevel: 2,
1623
- * config: {
1624
- * slope: 1.5,
1625
- * intensity: 0.050,
1626
- * speed: -55.0,
1627
- * scale: 25,
1628
- * }
1629
- * },
1630
- * {
1631
- * id: "rainShader",
1632
- * effectClass: WeatherShaderEffect,
1633
- * shaderClass: RainShader,
1634
- * blendMode: PIXI.BLEND_MODES.SCREEN,
1635
- * config: {
1636
- * opacity: 0.45,
1637
- * tint: [0.7, 0.9, 1.0],
1638
- * intensity: 1.5,
1639
- * strength: 1.5,
1640
- * rotation: 0.5236,
1641
- * speed: 0.30,
1642
- * }
1643
- * }]
1644
- * }
1645
- * ```
1794
+ * @remarks added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1646
1795
  */
1647
- rainStorm: CONFIG.WeatherAmbienceConfiguration;
1796
+ sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
1648
1797
 
1649
1798
  /**
1650
- * @defaultValue
1651
- * ```
1652
- * {
1653
- * id: "fog",
1654
- * label: "WEATHER.Fog",
1655
- * filter: {
1656
- * enabled: false
1657
- * },
1658
- * effects: [{
1659
- * id: "fogShader",
1660
- * effectClass: WeatherShaderEffect,
1661
- * shaderClass: FogShader,
1662
- * blendMode: PIXI.BLEND_MODES.SCREEN,
1663
- * config: {
1664
- * slope: 0.45,
1665
- * intensity: 0.4,
1666
- * speed: 0.4,
1667
- * }
1668
- * }]
1669
- * }
1670
- * ```
1799
+ * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
1671
1800
  */
1672
- fog: CONFIG.WeatherAmbienceConfiguration;
1801
+ typeLabels?: Record<"base", string>;
1802
+ };
1803
+
1804
+ /**
1805
+ * Configuration for the Tile embedded document type and its representation on the game Canvas
1806
+ */
1807
+ Tile: {
1808
+ /** @defaultValue `TileDocument` */
1809
+ documentClass: Document.ImplementationClassFor<"Tile">;
1673
1810
 
1674
1811
  /**
1675
- * @defaultValue
1676
- * ```
1677
- * {
1678
- * id: "snow",
1679
- * label: "WEATHER.Snow",
1680
- * filter: {
1681
- * enabled: false
1682
- * },
1683
- * effects: [{
1684
- * id: "snowShader",
1685
- * effectClass: WeatherShaderEffect,
1686
- * shaderClass: SnowShader,
1687
- * blendMode: PIXI.BLEND_MODES.SCREEN,
1688
- * config: {
1689
- * tint: [0.85, 0.95, 1],
1690
- * direction: 0.5,
1691
- * speed: 2,
1692
- * scale: 2.5,
1693
- * }
1694
- * }]
1695
- * }
1696
- * ```
1697
- * */
1698
- snow: CONFIG.WeatherAmbienceConfiguration;
1812
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1813
+ */
1814
+ sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
1699
1815
 
1700
1816
  /**
1701
- * @defaultValue
1702
- * ```
1703
- * {
1704
- * id: "blizzard",
1705
- * label: "WEATHER.Blizzard",
1706
- * filter: {
1707
- * enabled: false
1708
- * },
1709
- * effects: [{
1710
- * id: "snowShader",
1711
- * effectClass: WeatherShaderEffect,
1712
- * shaderClass: SnowShader,
1713
- * blendMode: PIXI.BLEND_MODES.SCREEN,
1714
- * config: {
1715
- * tint: [0.95, 1, 1],
1716
- * direction: 0.80,
1717
- * speed: 8,
1718
- * scale: 2.5,
1719
- * }
1720
- * },
1721
- * {
1722
- * id: "fogShader",
1723
- * effectClass: WeatherShaderEffect,
1724
- * shaderClass: FogShader,
1725
- * blendMode: PIXI.BLEND_MODES.SCREEN,
1726
- * performanceLevel: 2,
1727
- * config: {
1728
- * slope: 1.0,
1729
- * intensity: 0.15,
1730
- * speed: -4.0,
1731
- * }
1732
- * }]
1733
- * }
1734
- * ```
1817
+ * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
1735
1818
  */
1736
- blizzard: CONFIG.WeatherAmbienceConfiguration;
1819
+ typeLabels?: Record<"base", string>;
1820
+
1821
+ /** @defaultValue `typeof Tile` */
1822
+ // eslint-disable-next-line no-restricted-syntax
1823
+ objectClass: ConfiguredObjectClassOrDefault<typeof Tile>;
1824
+
1825
+ /** @defaultValue `typeof TilesLayer` */
1826
+ layerClass: TilesLayer.AnyConstructor;
1827
+
1828
+ /** @defaultValue `typeof TileHUD` */
1829
+ hudClass: TileHUD.AnyConstructor;
1737
1830
  };
1738
1831
 
1739
1832
  /**
1740
- * The control icons used for rendering common HUD operations
1833
+ * Configuration for the Token embedded document type and its representation on the game Canvas
1741
1834
  */
1742
- controlIcons: {
1743
- /** @defaultValue `"icons/svg/combat.svg"` */
1744
- combat: string;
1745
-
1746
- /** @defaultValue `"icons/svg/cowled.svg"` */
1747
- visibility: string;
1835
+ Token: {
1836
+ /** @defaultValue `TokenDocument` */
1837
+ documentClass: Document.ImplementationClassFor<"Token">;
1748
1838
 
1749
- /** @defaultValue `"icons/svg/aura.svg"` */
1750
- effects: string;
1839
+ /**
1840
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1841
+ */
1842
+ sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
1751
1843
 
1752
- /** @defaultValue `"icons/svg/padlock.svg"` */
1753
- lock: string;
1844
+ /**
1845
+ * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
1846
+ */
1847
+ typeLabels?: Record<"base", string>;
1754
1848
 
1755
- /** @defaultValue `"icons/svg/up.svg"` */
1756
- up: string;
1849
+ /** @defaultValue `typeof Token` */
1850
+ // eslint-disable-next-line no-restricted-syntax
1851
+ objectClass: ConfiguredObjectClassOrDefault<typeof Token>;
1757
1852
 
1758
- /** @defaultValue `"icons/svg/down.svg"` */
1759
- down: string;
1853
+ /** @defaultValue `typeof TokenLayer` */
1854
+ layerClass: TokenLayer.AnyConstructor;
1760
1855
 
1761
- /** @defaultValue `"icons/svg/skull.svg"` */
1762
- defeated: string;
1856
+ /** @defaultValue `typeof TokenConfig` */
1857
+ prototypeSheetClass: TokenConfig.AnyConstructor;
1763
1858
 
1764
- /** @defaultValue `"icons/svg/light.svg"` */
1765
- light: string;
1859
+ /** @defaultValue `typeof TokenHUD` */
1860
+ hudClass: TokenHUD.AnyConstructor;
1766
1861
 
1767
- /** @defaultValue `"icons/svg/light-off.svg"` */
1768
- lightOff: string;
1862
+ /** @defaultValue `"TOKEN.Adjectives"` */
1863
+ adjectivesPrefix: string;
1769
1864
 
1770
- /** @defaultValue `"icons/svg/explosion.svg"` */
1771
- template: string;
1865
+ /**
1866
+ * @defaultValue `foundry.canvas.tokens.TokenRingConfig`
1867
+ * @remarks Foundry leaves a comment claiming `"ring property is initialized in foundry.canvas.tokens.TokenRingConfig.initialize"`,
1868
+ * and while that's true, it's _instantiated_ here in `config.js` via defineProperty (`enumerable: true`)
1869
+ */
1870
+ readonly ring: foundry.canvas.tokens.TokenRingConfig;
1871
+ };
1772
1872
 
1773
- /** @defaultValue `"icons/svg/sound.svg"` */
1774
- sound: string;
1873
+ /**
1874
+ * Configuration for the Wall embedded document type and its representation on the game Canvas
1875
+ */
1876
+ Wall: {
1877
+ /** @defaultValue `WallDocument` */
1878
+ documentClass: Document.ImplementationClassFor<"Wall">;
1775
1879
 
1776
- /** @defaultValue `"icons/svg/sound-off.svg"` */
1777
- soundOff: string;
1880
+ /**
1881
+ * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
1882
+ */
1883
+ sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
1778
1884
 
1779
- /** @defaultValue `"icons/svg/door-closed-outline.svg"` */
1780
- doorClosed: string;
1885
+ /**
1886
+ * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
1887
+ */
1888
+ typeLabels?: Record<"base", string>;
1781
1889
 
1782
- /** @defaultValue `"icons/svg/door-open-outline.svg"` */
1783
- doorOpen: string;
1890
+ /** @defaultValue `typeof Wall` */
1891
+ // eslint-disable-next-line no-restricted-syntax
1892
+ objectClass: ConfiguredObjectClassOrDefault<typeof Wall>;
1784
1893
 
1785
- /** @defaultValue `"icons/svg/door-secret-outline.svg"` */
1786
- doorSecret: string;
1894
+ /** @defaultValue `typeof WallsLayer` */
1895
+ layerClass: WallsLayer.AnyConstructor;
1787
1896
 
1788
- /** @defaultValue `"icons/svg/door-locked-outline.svg"` */
1789
- doorLocked: string;
1897
+ /** @defaultValue `1` */
1898
+ thresholdAttenuationMultiplier: number;
1790
1899
 
1791
- /** @defaultValue `"icons/svg/wall-direction.svg"` */
1792
- wallDirection: string;
1793
- } & Record<string, string>;
1900
+ doorSounds: {
1901
+ [sound: string]: CONFIG.WallDoorSound;
1794
1902
 
1795
- /**
1796
- * A collection of fonts to load either from the user's local system, or remotely.
1797
- * @defaultValue
1798
- * ```typescript
1799
- * {
1800
- * Arial: { editor: true; fonts: [] };
1801
- * Amiri: {
1802
- * editor: true,
1803
- * fonts: [
1804
- * {urls: ["fonts/amiri/amiri-regular.woff2"]},
1805
- * {urls: ["fonts/amiri/amiri-bold.woff2"], weight: 700}
1806
- * ]
1807
- * },
1808
- * "Bruno Ace": {editor: true, fonts: [
1809
- * {urls: ["fonts/bruno-ace/bruno-ace.woff2"]}
1810
- * ]},
1811
- * Courier: { editor: true; fonts: [] };
1812
- * "Courier New": { editor: true; fonts: [] };
1813
- * "Modesto Condensed": {
1814
- * editor: true;
1815
- * fonts: [
1816
- * { urls: ["fonts/modesto-condensed/modesto-condensed.woff2"] },
1817
- * { urls: ["fonts/modesto-condensed/modesto-condensed-bold.woff2"]; weight: 700 }
1818
- * ];
1819
- * };
1820
- * Signika: {
1821
- * editor: true;
1822
- * fonts: [
1823
- * { urls: ["fonts/signika/signika-regular.woff2"] },
1824
- * { urls: ["fonts/signika/signika-bold.woff2"]; weight: 700 }
1825
- * ];
1826
- * };
1827
- * Times: { editor: true; fonts: [] };
1828
- * "Times New Roman": { editor: true; fonts: [] };
1829
- * }
1830
- * ```
1831
- */
1832
- fontDefinitions: Record<string, CONFIG.Font.FamilyDefinition>;
1903
+ /**
1904
+ * @defaultValue
1905
+ * ```ts
1906
+ * {
1907
+ * label: "WALLS.DoorSound.FuturisticFast",
1908
+ * close: "sounds/doors/futuristic/close-fast.ogg",
1909
+ * lock: "sounds/doors/futuristic/lock.ogg",
1910
+ * open: "sounds/doors/futuristic/open-fast.ogg",
1911
+ * test: "sounds/doors/futuristic/test.ogg",
1912
+ * unlock: "sounds/doors/futuristic/unlock.ogg"
1913
+ * }
1914
+ * ```
1915
+ */
1916
+ futuristicFast: CONFIG.WallDoorSound;
1833
1917
 
1834
- /**
1835
- * The default font family used for text labels on the PIXI Canvas
1836
- * @defaultValue `"Signika"`
1837
- */
1838
- defaultFontFamily: string;
1918
+ /**
1919
+ * @defaultValue
1920
+ * ```ts
1921
+ * {
1922
+ * label: "WALLS.DoorSound.FuturisticHydraulic",
1923
+ * close: "sounds/doors/futuristic/close-hydraulic.ogg",
1924
+ * lock: "sounds/doors/futuristic/lock.ogg",
1925
+ * open: "sounds/doors/futuristic/open-hydraulic.ogg",
1926
+ * test: "sounds/doors/futuristic/test.ogg",
1927
+ * unlock: "sounds/doors/futuristic/unlock.ogg"
1928
+ * }
1929
+ * ```
1930
+ */
1931
+ futuristicHydraulic: CONFIG.WallDoorSound;
1839
1932
 
1840
- /**
1841
- * The array of status effect icons which can be applied to an Actor
1842
- * @defaultValue
1843
- * ```js
1844
- * [
1845
- * {
1846
- * id: "dead";
1847
- * name: "EFFECT.StatusDead";
1848
- * img: "icons/svg/skull.svg";
1849
- * },
1850
- * {
1851
- * id: "unconscious";
1852
- * name: "EFFECT.StatusUnconscious";
1853
- * img: "icons/svg/unconscious.svg";
1854
- * },
1855
- * {
1856
- * id: "sleep";
1857
- * name: "EFFECT.StatusAsleep";
1858
- * img: "icons/svg/sleep.svg";
1859
- * },
1860
- * {
1861
- * id: "stun";
1862
- * name: "EFFECT.StatusStunned";
1863
- * img: "icons/svg/daze.svg";
1864
- * },
1865
- * {
1866
- * id: "prone";
1867
- * name: "EFFECT.StatusProne";
1868
- * img: "icons/svg/falling.svg";
1869
- * },
1870
- * {
1871
- * id: "restrain";
1872
- * name: "EFFECT.StatusRestrained";
1873
- * img: "icons/svg/net.svg";
1874
- * },
1875
- * {
1876
- * id: "paralysis";
1877
- * name: "EFFECT.StatusParalysis";
1878
- * img: "icons/svg/paralysis.svg";
1879
- * },
1880
- * {
1881
- * id: "fly";
1882
- * name: "EFFECT.StatusFlying";
1883
- * img: "icons/svg/wing.svg";
1884
- * },
1885
- * {
1886
- * id: "blind";
1887
- * name: "EFFECT.StatusBlind";
1888
- * img: "icons/svg/blind.svg";
1889
- * },
1890
- * {
1891
- * id: "deaf";
1892
- * name: "EFFECT.StatusDeaf";
1893
- * img: "icons/svg/deaf.svg";
1894
- * },
1895
- * {
1896
- * id: "silence";
1897
- * name: "EFFECT.StatusSilenced";
1898
- * img: "icons/svg/silenced.svg";
1899
- * },
1900
- * {
1901
- * id: "fear";
1902
- * name: "EFFECT.StatusFear";
1903
- * img: "icons/svg/terror.svg";
1904
- * },
1905
- * {
1906
- * id: "burning";
1907
- * name: "EFFECT.StatusBurning";
1908
- * img: "icons/svg/fire.svg";
1909
- * },
1910
- * {
1911
- * id: "frozen";
1912
- * name: "EFFECT.StatusFrozen";
1913
- * img: "icons/svg/frozen.svg";
1914
- * },
1915
- * {
1916
- * id: "shock";
1917
- * name: "EFFECT.StatusShocked";
1918
- * img: "icons/svg/lightning.svg";
1919
- * },
1920
- * {
1921
- * id: "corrode";
1922
- * name: "EFFECT.StatusCorrode";
1923
- * img: "icons/svg/acid.svg";
1924
- * },
1925
- * {
1926
- * id: "bleeding";
1927
- * name: "EFFECT.StatusBleeding";
1928
- * img: "icons/svg/blood.svg";
1929
- * },
1930
- * {
1931
- * id: "disease";
1932
- * name: "EFFECT.StatusDisease";
1933
- * img: "icons/svg/biohazard.svg";
1934
- * },
1935
- * {
1936
- * id: "poison";
1937
- * name: "EFFECT.StatusPoison";
1938
- * img: "icons/svg/poison.svg";
1939
- * },
1940
- * {
1941
- * id: "curse";
1942
- * name: "EFFECT.StatusCursed";
1943
- * img: "icons/svg/sun.svg";
1944
- * },
1945
- * {
1946
- * id: "regen";
1947
- * name: "EFFECT.StatusRegen";
1948
- * img: "icons/svg/regen.svg";
1949
- * },
1950
- * {
1951
- * id: "degen";
1952
- * name: "EFFECT.StatusDegen";
1953
- * img: "icons/svg/degen.svg";
1954
- * },
1955
- * {
1956
- * id: "hover";
1957
- * name: "EFFECT.StatusHover";
1958
- * img: "icons/svg/wingfoot.svg";
1959
- * },
1960
- * {
1961
- * id: "burrow";
1962
- * name: "EFFECT.StatusBurrow";
1963
- * img: "icons/svg/mole.svg";
1964
- * },
1965
- * {
1966
- * id: "upgrade";
1967
- * name: "EFFECT.StatusUpgrade";
1968
- * img: "icons/svg/upgrade.svg";
1969
- * },
1970
- * {
1971
- * id: "downgrade";
1972
- * name: "EFFECT.StatusDowngrade";
1973
- * img: "icons/svg/downgrade.svg";
1974
- * },
1975
- * {
1976
- * id: "invisible",
1977
- * name: "EFFECT.StatusInvisible",
1978
- * img: "icons/svg/invisible.svg"
1979
- * },
1980
- * {
1981
- * id: "target";
1982
- * name: "EFFECT.StatusTarget";
1983
- * img: "icons/svg/target.svg";
1984
- * },
1985
- * {
1986
- * id: "eye";
1987
- * name: "EFFECT.StatusMarked";
1988
- * img: "icons/svg/eye.svg";
1989
- * },
1990
- * {
1991
- * id: "bless";
1992
- * name: "EFFECT.StatusBlessed";
1993
- * img: "icons/svg/angel.svg";
1994
- * },
1995
- * {
1996
- * id: "fireShield";
1997
- * name: "EFFECT.StatusFireShield";
1998
- * img: "icons/svg/fire-shield.svg";
1999
- * },
2000
- * {
2001
- * id: "coldShield";
2002
- * name: "EFFECT.StatusIceShield";
2003
- * img: "icons/svg/ice-shield.svg";
2004
- * },
2005
- * {
2006
- * id: "magicShield";
2007
- * name: "EFFECT.StatusMagicShield";
2008
- * img: "icons/svg/mage-shield.svg";
2009
- * },
2010
- * {
2011
- * id: "holyShield";
2012
- * name: "EFFECT.StatusHolyShield";
2013
- * img: "icons/svg/holy-shield.svg";
2014
- * }
2015
- * ]
2016
- * ```
2017
- */
2018
- statusEffects: CONFIG.StatusEffect[];
1933
+ /**
1934
+ * @defaultValue
1935
+ * ```ts
1936
+ * {
1937
+ * label: "WALLS.DoorSound.FuturisticForcefield",
1938
+ * close: "sounds/doors/futuristic/close-forcefield.ogg",
1939
+ * lock: "sounds/doors/futuristic/lock.ogg",
1940
+ * open: "sounds/doors/futuristic/open-forcefield.ogg",
1941
+ * test: "sounds/doors/futuristic/test-forcefield.ogg",
1942
+ * unlock: "sounds/doors/futuristic/unlock.ogg"
1943
+ * }
1944
+ * ```
1945
+ */
1946
+ futuristicForcefield: CONFIG.WallDoorSound;
1947
+
1948
+ /**
1949
+ * @defaultValue
1950
+ * ```ts
1951
+ * {
1952
+ * label: "WALLS.DoorSound.Industrial",
1953
+ * close: "sounds/doors/industrial/close.ogg",
1954
+ * lock: "sounds/doors/industrial/lock.ogg",
1955
+ * open: "sounds/doors/industrial/open.ogg",
1956
+ * test: "sounds/doors/industrial/test.ogg",
1957
+ * unlock: "sounds/doors/industrial/unlock.ogg"
1958
+ * }
1959
+ * ```
1960
+ */
1961
+ industrial: CONFIG.WallDoorSound;
1962
+
1963
+ /**
1964
+ * @defaultValue
1965
+ * ```ts
1966
+ * {
1967
+ * label: "WALLS.DoorSound.IndustrialCreaky",
1968
+ * close: "sounds/doors/industrial/close-creaky.ogg",
1969
+ * lock: "sounds/doors/industrial/lock.ogg",
1970
+ * open: "sounds/doors/industrial/open-creaky.ogg",
1971
+ * test: "sounds/doors/industrial/test.ogg",
1972
+ * unlock: "sounds/doors/industrial/unlock.ogg"
1973
+ * }
1974
+ * ```
1975
+ */
1976
+ industrialCreaky: CONFIG.WallDoorSound;
1977
+
1978
+ /**
1979
+ * @defaultValue
1980
+ * ```ts
1981
+ * {
1982
+ * label: "WALLS.DoorSound.Jail",
1983
+ * close: "sounds/doors/jail/close.ogg",
1984
+ * lock: "sounds/doors/jail/lock.ogg",
1985
+ * open: "sounds/doors/jail/open.ogg",
1986
+ * test: "sounds/doors/jail/test.ogg",
1987
+ * unlock: "sounds/doors/jail/unlock.ogg"
1988
+ * }
1989
+ * ```
1990
+ */
1991
+ jail: CONFIG.WallDoorSound;
1992
+
1993
+ /**
1994
+ * @defaultValue
1995
+ * ```ts
1996
+ * {
1997
+ * label: "WALLS.DoorSound.MagicDoor",
1998
+ * close: "sounds/doors/magic/door-close.ogg",
1999
+ * lock: "sounds/doors/magic/lock.ogg",
2000
+ * open: "sounds/doors/magic/door-open.ogg",
2001
+ * test: "sounds/doors/magic/test.ogg",
2002
+ * unlock: "sounds/doors/magic/unlock.ogg"
2003
+ * }
2004
+ * ```
2005
+ */
2006
+ magicDoor: CONFIG.WallDoorSound;
2007
+
2008
+ /**
2009
+ * @defaultValue
2010
+ * ```ts
2011
+ * {
2012
+ * label: "WALLS.DoorSound.MagicWall",
2013
+ * close: "sounds/doors/magic/wall-close.ogg",
2014
+ * lock: "sounds/doors/magic/lock.ogg",
2015
+ * open: "sounds/doors/magic/wall-open.ogg",
2016
+ * test: "sounds/doors/magic/test.ogg",
2017
+ * unlock: "sounds/doors/magic/unlock.ogg"
2018
+ * }
2019
+ * ```
2020
+ */
2021
+ magicWall: CONFIG.WallDoorSound;
2022
+
2023
+ /**
2024
+ * @defaultValue
2025
+ * ```ts
2026
+ * {
2027
+ * label: "WALLS.DoorSound.Metal",
2028
+ * close: "sounds/doors/metal/close.ogg",
2029
+ * lock: "sounds/doors/metal/lock.ogg",
2030
+ * open: "sounds/doors/metal/open.ogg",
2031
+ * test: "sounds/doors/metal/test.ogg",
2032
+ * unlock: "sounds/doors/metal/unlock.ogg"
2033
+ * }
2034
+ * ```
2035
+ */
2036
+ metal: CONFIG.WallDoorSound;
2037
+
2038
+ /**
2039
+ * @defaultValue
2040
+ * ```ts
2041
+ * {
2042
+ * label: "WALLS.DoorSound.SlidingMetal",
2043
+ * close: "sounds/doors/shutter/close.ogg",
2044
+ * lock: "sounds/doors/shutter/lock.ogg",
2045
+ * open: "sounds/doors/shutter/open.ogg",
2046
+ * test: "sounds/doors/shutter/test.ogg",
2047
+ * unlock: "sounds/doors/shutter/unlock.ogg"
2048
+ * }
2049
+ * ```
2050
+ */
2051
+ slidingMetal: CONFIG.WallDoorSound;
2019
2052
 
2020
- /**
2021
- * A mapping of status effect IDs which provide some additional mechanical integration.
2022
- * @defaultValue `{ DEFEATED: "dead", INVISIBLE: "invisible", BLIND: "blind", BURROW: "burrow", HOVER: "hover", FLY: "fly" }`
2023
- */
2024
- specialStatusEffects: HandleEmptyObject<CONFIG.SpecialStatusEffects, CONFIG.DefaultSpecialStatusEffects>;
2053
+ /**
2054
+ * @defaultValue
2055
+ * ```ts
2056
+ * {
2057
+ * label: "WALLS.DoorSound.SlidingModern",
2058
+ * close: "sounds/doors/sliding/close.ogg",
2059
+ * lock: "sounds/doors/sliding/lock.ogg",
2060
+ * open: "sounds/doors/sliding/open.ogg",
2061
+ * test: "sounds/doors/sliding/test.ogg",
2062
+ * unlock: "sounds/doors/sliding/unlock.ogg"
2063
+ * }
2064
+ * ```
2065
+ */
2066
+ slidingModern: CONFIG.WallDoorSound;
2025
2067
 
2026
- /**
2027
- * A mapping of core audio effects used which can be replaced by systems or mods
2028
- */
2029
- sounds: {
2030
- /** @defaultValue `"sounds/dice.wav"` */
2031
- dice: string;
2068
+ /**
2069
+ * @defaultValue
2070
+ * ```ts
2071
+ * {
2072
+ * label: "WALLS.DoorSound.SlidingWood",
2073
+ * close: "sounds/doors/sliding/close-wood.ogg",
2074
+ * lock: "sounds/doors/sliding/lock.ogg",
2075
+ * open: "sounds/doors/sliding/open-wood.ogg",
2076
+ * test: "sounds/doors/sliding/test.ogg",
2077
+ * unlock: "sounds/doors/sliding/unlock.ogg"
2078
+ * }
2079
+ * ```
2080
+ */
2081
+ slidingWood: CONFIG.WallDoorSound;
2032
2082
 
2033
- /** @defaultValue `"sounds/lock.wav"` */
2034
- lock: string;
2083
+ /**
2084
+ * @defaultValue
2085
+ * ```ts
2086
+ * {
2087
+ * label: "WALLS.DoorSound.StoneBasic",
2088
+ * close: "sounds/doors/stone/close.ogg",
2089
+ * lock: "sounds/doors/stone/lock.ogg",
2090
+ * open: "sounds/doors/stone/open.ogg",
2091
+ * test: "sounds/doors/stone/test.ogg",
2092
+ * unlock: "sounds/doors/stone/unlock.ogg"
2093
+ * }
2094
+ * ```
2095
+ */
2096
+ stoneBasic: CONFIG.WallDoorSound;
2035
2097
 
2036
- /** @defaultValue `"sounds/notify.wav"` */
2037
- notification: string;
2098
+ /**
2099
+ * @defaultValue
2100
+ * ```ts
2101
+ * {
2102
+ * label: "WALLS.DoorSound.StoneRocky",
2103
+ * close: "sounds/doors/stone/close-rocky.ogg",
2104
+ * lock: "sounds/doors/stone/lock.ogg",
2105
+ * open: "sounds/doors/stone/open-rocky.ogg",
2106
+ * test: "sounds/doors/stone/test.ogg",
2107
+ * unlock: "sounds/doors/stone/unlock.ogg"
2108
+ * }
2109
+ * ```
2110
+ */
2111
+ stoneRocky: CONFIG.WallDoorSound;
2038
2112
 
2039
- /** @defaultValue `"sounds/drums.wav"` */
2040
- combat: string;
2113
+ /**
2114
+ * @defaultValue
2115
+ * ```ts
2116
+ * {
2117
+ * label: "WALLS.DoorSound.StoneSandy",
2118
+ * close: "sounds/doors/stone/close-sandy.ogg",
2119
+ * lock: "sounds/doors/stone/lock.ogg",
2120
+ * open: "sounds/doors/stone/open-sandy.ogg",
2121
+ * test: "sounds/doors/stone/test.ogg",
2122
+ * unlock: "sounds/doors/stone/unlock.ogg"
2123
+ * }
2124
+ * ```
2125
+ */
2126
+ stoneSandy: CONFIG.WallDoorSound;
2127
+
2128
+ /**
2129
+ * @defaultValue
2130
+ * ```ts
2131
+ * {
2132
+ * label: "WALLS.DoorSound.WoodBasic",
2133
+ * close: "sounds/doors/wood/close.ogg",
2134
+ * lock: "sounds/doors/wood/lock.ogg",
2135
+ * open: "sounds/doors/wood/open.ogg",
2136
+ * test: "sounds/doors/wood/test.ogg",
2137
+ * unlock: "sounds/doors/wood/unlock.ogg"
2138
+ * }
2139
+ * ```
2140
+ */
2141
+ woodBasic: CONFIG.WallDoorSound;
2142
+
2143
+ /**
2144
+ * @defaultValue
2145
+ * ```ts
2146
+ * {
2147
+ * label: "WALLS.DoorSound.WoodCreaky",
2148
+ * close: "sounds/doors/wood/close-creaky.ogg",
2149
+ * lock: "sounds/doors/wood/lock.ogg",
2150
+ * open: "sounds/doors/wood/open-creaky.ogg",
2151
+ * test: "sounds/doors/wood/test.ogg",
2152
+ * unlock: "sounds/doors/wood/unlock.ogg"
2153
+ * }
2154
+ * ```
2155
+ */
2156
+ woodCreaky: CONFIG.WallDoorSound;
2157
+
2158
+ /**
2159
+ * @defaultValue
2160
+ * ```ts
2161
+ * {
2162
+ * label: "WALLS.DoorSound.WoodHeavy",
2163
+ * close: "sounds/doors/wood/close-heavy.ogg",
2164
+ * lock: "sounds/doors/wood/lock.ogg",
2165
+ * open: "sounds/doors/wood/open-heavy.ogg",
2166
+ * test: "sounds/doors/wood/test.ogg",
2167
+ * unlock: "sounds/doors/wood/unlock.ogg"
2168
+ * }
2169
+ * ```
2170
+ */
2171
+ woodHeavy: CONFIG.WallDoorSound;
2172
+ };
2041
2173
  };
2042
2174
 
2043
2175
  /**
2044
- * Define the set of supported languages for localization
2045
- * @defaultValue `{ en: "English" }`
2176
+ * An enumeration of sound effects which can be applied to Sound instances.
2046
2177
  */
2047
- supportedLanguages: {
2048
- en: string;
2049
- } & Record<string, string>;
2178
+ soundEffects: {
2179
+ lowPass: { label: string; effectClass: AudioNode.AnyConstructor };
2180
+ highpass: { label: string; effectClass: AudioNode.AnyConstructor };
2181
+ reverb: { label: string; effectClass: AudioNode.AnyConstructor };
2182
+ };
2050
2183
 
2051
2184
  /**
2052
- * Localization constants.
2185
+ * Default configuration options for TinyMCE editors
2053
2186
  */
2054
- i18n: {
2055
- /**
2056
- * In operations involving the document index, search prefixes must have at least this many characters to avoid too
2057
- * large a search space. Languages that have hundreds or thousands of characters will typically have very shallow
2058
- * search trees, so it should be safe to lower this number in those cases.
2059
- * @defaultValue `4`
2060
- */
2061
- searchMinimumCharacterLength: number;
2062
- };
2187
+ TinyMCE: tinyMCE.RawEditorOptions;
2063
2188
 
2064
2189
  /**
2065
- * Configuration for time tracking
2190
+ * Rich text editing configuration.
2066
2191
  */
2067
- time: {
2068
- /** @defaultValue `0` */
2069
- turnTime: number;
2070
-
2071
- /** @defaultValue `0` */
2072
- roundTime: number;
2192
+ TextEditor: {
2193
+ /**
2194
+ * A collection of custom enrichers that can be applied to text content, allowing for the matching and handling of
2195
+ * custom patterns.
2196
+ */
2197
+ enrichers: TextEditor.EnricherConfig[];
2073
2198
  };
2074
2199
 
2075
2200
  /**
2076
- * Configuration for the ActiveEffect embedded document type
2201
+ * Configuration for the WebRTC implementation class
2077
2202
  */
2078
- ActiveEffect: {
2079
- /** @defaultValue `ActiveEffect` */
2080
- documentClass: Document.ConfiguredClassForName<"ActiveEffect">;
2203
+ WebRTC: {
2204
+ /** @defaultValue `SimplePeerAVClient` */
2205
+ clientClass: GetKey<WebRTCConfig, "clientClass", SimplePeerAVClient.AnyConstructor>;
2081
2206
 
2082
- /**
2083
- * @defaultValue `{}`
2084
- * @remarks `TypeDataModel` is preferred to `DataModel` per core Foundry team
2085
- */
2086
- dataModels: Record<string, typeof DataModel<any, ActiveEffect>>;
2207
+ /** @defaultValue `50` */
2208
+ detectPeerVolumeInterval: number;
2087
2209
 
2088
- /**
2089
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2090
- */
2091
- sheetClasses: Record<foundry.documents.BaseActiveEffect.TypeNames, Record<string, SheetClassConfig>>;
2210
+ /** @defaultValue `20` */
2211
+ detectSelfVolumeInterval: number;
2092
2212
 
2093
- /**
2094
- * @defaultValue `{}`
2095
- * @remarks Initialized by `Localization#initialize`, is an empty object until `i18nInit`
2096
- */
2097
- typeLabels: Record<foundry.documents.BaseActiveEffect.TypeNames, string>;
2213
+ /** @defaultValue `25` */
2214
+ emitVolumeInterval: number;
2098
2215
 
2099
- /** @defaultValue `{}` */
2100
- typeIcons: Record<string, string>;
2216
+ /** @defaultValue `2` */
2217
+ speakingThresholdEvents: number;
2101
2218
 
2102
- /**
2103
- * If true, Active Effects on Items will be copied to the Actor when the Item is created on the Actor if the
2104
- * Active Effect's transfer property is true, and will be deleted when that Item is deleted from the Actor.
2105
- * If false, Active Effects are never copied to the Actor, but will still apply to the Actor from within the Item
2106
- * if the transfer property on the Active Effect is true.
2107
- * @remarks Foundry states "\@deprecated since v11" but this is misleading for actual use
2108
- */
2109
- legacyTransferral: boolean;
2219
+ /** @defaultValue `10` */
2220
+ speakingHistoryLength: number;
2221
+
2222
+ /** @defaultValue `8` */
2223
+ connectedUserPollIntervalS: number;
2110
2224
  };
2111
2225
 
2112
2226
  /**
2113
- * Configuration for the ActorDelta embedded document type.
2227
+ * Configure the Application classes used to render various core UI elements in the application
2114
2228
  */
2115
- ActorDelta: {
2116
- /** @defaultValue `ActorDelta` */
2117
- documentClass: Document.ConfiguredClassForName<"ActorDelta">;
2229
+ ui: CONFIG.UI;
2230
+ }
2118
2231
 
2119
- /**
2120
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2121
- */
2122
- sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
2232
+ namespace CONFIG {
2233
+ interface UI {
2234
+ /** @defaultValue `MainMenu` */
2235
+ menu: MainMenu.AnyConstructor;
2123
2236
 
2124
- /**
2125
- * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
2126
- */
2127
- typeLabels?: Record<"base", string>;
2128
- };
2237
+ /** @defaultValue `Sidebar` */
2238
+ sidebar: Sidebar.AnyConstructor;
2129
2239
 
2130
- /**
2131
- * Configuration for the Card embedded Document type
2132
- */
2133
- Card: {
2134
- /** @defaultValue `Card` */
2135
- documentClass: Document.ConfiguredClassForName<"Card">;
2240
+ /** @defaultValue `Pause` */
2241
+ pause: Pause.AnyConstructor;
2136
2242
 
2137
- /**
2138
- * @defaultValue `{}`
2139
- * @remarks `TypeDataModel` is preferred to `DataModel` per core Foundry team
2140
- */
2141
- dataModels: Record<string, typeof DataModel<any, Card>>;
2243
+ /** @defaultValue `SceneNavigation` */
2244
+ nav: SceneNavigation.AnyConstructor;
2245
+
2246
+ /** @defaultValue `Notifications` */
2247
+ notifications: foundry.applications.ui.Notifications.AnyConstructor;
2248
+
2249
+ /** @defaultValue `ActorDirectory` */
2250
+ actors: ActorDirectory.AnyConstructor;
2142
2251
 
2143
- /**
2144
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2145
- */
2146
- sheetClasses: Record<foundry.documents.BaseCard.TypeNames, Record<string, SheetClassConfig>>;
2252
+ /** @defaultValue `CardsDirectory` */
2253
+ cards: CardsDirectory.AnyConstructor;
2147
2254
 
2148
- /**
2149
- * @defaultValue `{}`
2150
- * @remarks Initialized by `Localization#initialize`, is an empty object until `i18nInit`
2151
- */
2152
- typeLabels: Record<foundry.documents.BaseCard.TypeNames, string>;
2255
+ /** @defaultValue `ChatLog` */
2256
+ chat: ChatLog.AnyConstructor;
2153
2257
 
2154
- /** @defaultValue `{}` */
2155
- typeIcons: Record<string, string>;
2156
- };
2258
+ /** @defaultValue `CombatTracker` */
2259
+ combat: CombatTracker.AnyConstructor;
2157
2260
 
2158
- /**
2159
- * Configuration for the TableResult embedded document type
2160
- */
2161
- TableResult: {
2162
- /** @defaultValue `TableResult` */
2163
- documentClass: Document.ConfiguredClassForName<"TableResult">;
2261
+ /** @defaultValue `CompendiumDirectory` */
2262
+ compendium: CompendiumDirectory.AnyConstructor;
2164
2263
 
2165
- /**
2166
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2167
- */
2168
- sheetClasses: Record<foundry.documents.BaseTableResult.TypeNames, Record<string, SheetClassConfig>>;
2264
+ /** @defaultValue `SceneControls` */
2265
+ controls: SceneControls.AnyConstructor;
2169
2266
 
2170
- /**
2171
- * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
2172
- */
2173
- typeLabels?: Record<foundry.documents.BaseTableResult.TypeNames, string>;
2174
- };
2267
+ /** @defaultValue `Hotbar` */
2268
+ hotbar: Hotbar.AnyConstructor;
2175
2269
 
2176
- JournalEntryPage: {
2177
- /** @defaultValue `JournalEntryPage` */
2178
- documentClass: Document.ConfiguredClassForName<"JournalEntryPage">;
2270
+ /** @defaultValue `ItemDirectory` */
2271
+ items: ItemDirectory.AnyConstructor;
2179
2272
 
2180
- /**
2181
- * @defaultValue `{}`
2182
- * @remarks `TypeDataModel` is preferred to `DataModel` per core Foundry team
2183
- */
2184
- dataModels: Record<string, typeof DataModel<any, JournalEntryPage>>;
2273
+ /** @defaultValue `JournalDirectory` */
2274
+ journal: JournalDirectory.AnyConstructor;
2185
2275
 
2186
- /**
2187
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2188
- */
2189
- sheetClasses: Record<foundry.documents.BaseJournalEntryPage.TypeNames, Record<string, SheetClassConfig>>;
2276
+ /** @defaultValue `MacroDirectory` */
2277
+ macros: MacroDirectory.AnyConstructor;
2190
2278
 
2191
- /**
2192
- * @defaultValue `{}`
2193
- * @remarks Initialized by `Localization#initialize`, is an empty object until `i18nInit`
2194
- */
2195
- typeLabels: Record<foundry.documents.BaseJournalEntryPage.TypeNames, string>;
2279
+ /** @defaultValue `PlayerList` */
2280
+ players: PlayerList.AnyConstructor;
2196
2281
 
2197
- typeIcons: {
2198
- [type: string]: string;
2282
+ /** @defaultValue `PlaylistDirectory` */
2283
+ playlists: PlaylistDirectory.AnyConstructor;
2199
2284
 
2200
- /** @defaultValue `"fas fa-file-image"` */
2201
- image: string;
2202
- /** @defaultValue `"fas fa-file-pdf"` */
2203
- pdf: string;
2204
- /** @defaultValue `"fas fa-file-lines"` */
2205
- text: string;
2206
- /** @defaultValue `"fas fa-file-video"` */
2207
- video: string;
2208
- };
2285
+ /** @defaultValue `SceneDirectory` */
2286
+ scenes: SceneDirectory.AnyConstructor;
2209
2287
 
2210
- /** @defaultValue `"text"` */
2211
- defaultType: string;
2288
+ /** @defaultValue `Settings` */
2289
+ settings: Settings.AnyConstructor;
2212
2290
 
2213
- /** @defaultValue `"fas fa-book-open"` */
2214
- sidebarIcon: string;
2215
- };
2291
+ /** @defaultValue `RollTableDirectory` */
2292
+ tables: RollTableDirectory.AnyConstructor;
2216
2293
 
2217
- /**
2218
- * Configuration for the ActiveEffect embedded document type
2219
- */
2220
- PlaylistSound: {
2221
- /** @defaultValue `PlaylistSound` */
2222
- documentClass: Document.ConfiguredClassForName<"PlaylistSound">;
2294
+ /** @defaultValue `CameraViews` */
2295
+ webrtc: CameraViews.AnyConstructor;
2296
+ }
2223
2297
 
2224
- /**
2225
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2226
- */
2227
- sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
2298
+ interface Canvas {
2299
+ /** @defaultValue `8` */
2300
+ blurStrength: number;
2228
2301
 
2229
- /**
2230
- * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
2231
- */
2232
- typeLabels?: Record<"base", string>;
2233
- };
2302
+ /** @defaultValue `4` */
2303
+ blurQuality: number;
2234
2304
 
2235
- /**
2236
- * Configuration for the AmbientLight embedded document type and its representation on the game Canvas
2237
- */
2238
- AmbientLight: {
2239
- /** @defaultValue `AmbientLightDocument` */
2240
- documentClass: Document.ConfiguredClassForName<"AmbientLight">;
2305
+ /** @defaultValue `0x303030` */
2306
+ darknessColor: number;
2241
2307
 
2242
- /**
2243
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2244
- */
2245
- sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
2308
+ /** @defaultValue `0xeeeeee` */
2309
+ daylightColor: number;
2246
2310
 
2247
- /**
2248
- * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
2249
- */
2250
- typeLabels?: Record<"base", string>;
2311
+ /** @defaultValue `0xffffff` */
2312
+ brightestColor: number;
2251
2313
 
2252
- /** @defaultValue `typeof AmbientLightDocument` */
2253
- objectClass: ConfiguredObjectClassOrDefault<typeof AmbientLight>;
2314
+ chatBubblesClass: ChatBubbles.AnyConstructor;
2254
2315
 
2255
- /** @defaultValue `typeof LightingLayer` */
2256
- layerClass: LightingLayer.AnyConstructor;
2257
- };
2316
+ /** @defaultValue `0.25` */
2317
+ darknessLightPenalty: number;
2258
2318
 
2259
- /**
2260
- * Configuration for the AmbientSound embedded document type and its representation on the game Canvas
2261
- */
2262
- AmbientSound: {
2263
- /** @defaultValue `AmbientSoundDocument` */
2264
- documentClass: Document.ConfiguredClassForName<"AmbientSound">;
2319
+ dispositionColors: Canvas.DispositionColors;
2265
2320
 
2266
2321
  /**
2267
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2322
+ * The class used to render door control icons
2323
+ * @remarks Not `AnyConstructor` because it's instantiated with a `Wall.Implementation` as its first argument
2268
2324
  */
2269
- sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
2325
+ doorControlClass: typeof DoorControl;
2270
2326
 
2271
- /**
2272
- * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
2273
- */
2274
- typeLabels?: Record<"base", string>;
2327
+ /** @defaultValue `0x000000` */
2328
+ exploredColor: number;
2275
2329
 
2276
- /** @defaultValue `typeof AmbientSound` */
2277
- objectClass: ConfiguredObjectClassOrDefault<typeof AmbientSound>;
2330
+ /** @defaultValue `0x000000` */
2331
+ unexploredColor: number;
2278
2332
 
2279
- /** @defaultValue `typeof SoundsLayer` */
2280
- layerClass: SoundsLayer.AnyConstructor;
2281
- };
2333
+ /** @defaultValue `10000` */
2334
+ darknessToDaylightAnimationMS: number;
2282
2335
 
2283
- /**
2284
- * Configuration for the Combatant embedded document type within a Combat document
2285
- */
2286
- Combatant: {
2287
- /** @defaultValue `Combatant` */
2288
- documentClass: Document.ConfiguredClassForName<"Combatant">;
2336
+ /** @defaultValue `10000` */
2337
+ daylightToDarknessAnimationMS: number;
2289
2338
 
2290
2339
  /**
2291
- * @defaultValue `{}`
2292
- * @remarks `TypeDataModel` is preferred to `DataModel` per core Foundry team
2340
+ * @defaultValue `foundry.canvas.sources.PointDarknessSource`
2341
+ * @remarks Can't be `AnyConstructor` as it's instantiated expecting a compatible constructor
2293
2342
  */
2294
- dataModels: Record<string, typeof DataModel<any, Combatant>>;
2343
+ darknessSourceClass: typeof foundry.canvas.sources.PointDarknessSource;
2295
2344
 
2296
2345
  /**
2297
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2346
+ * @defaultValue `foundry.canvas.sources.PointLightSource`
2347
+ * @remarks Can't be `AnyConstructor` as it's instantiated expecting a compatible constructor
2298
2348
  */
2299
- sheetClasses: Record<foundry.documents.BaseCombatant.TypeNames, Record<string, SheetClassConfig>>;
2349
+ lightSourceClass: typeof foundry.canvas.sources.PointLightSource;
2300
2350
 
2301
2351
  /**
2302
- * @defaultValue `{}`
2303
- * @remarks Initialized by `Localization#initialize`, is an empty object until `i18nInit`
2352
+ * @defaultValue `foundry.canvas.sources.GlobalLightSource`
2353
+ * @remarks Can't be `AnyConstructor` as it's instantiated expecting a compatible constructor
2304
2354
  */
2305
- typeLabels: Record<foundry.documents.BaseCombatant.TypeNames, string>;
2306
-
2307
- /** @defaultValue `{}` */
2308
- typeIcons: Record<string, string>;
2309
- };
2310
-
2311
- /**
2312
- * Configuration for the Drawing embedded document type and its representation on the game Canvas
2313
- */
2314
- Drawing: {
2315
- /** @defaultValue `DrawingDocument` */
2316
- documentClass: Document.ConfiguredClassForName<"Drawing">;
2355
+ globalLightSourceClass: typeof foundry.canvas.sources.GlobalLightSource;
2317
2356
 
2318
2357
  /**
2319
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2358
+ * @defaultValue `foundry.canvas.sources.PointVisionSource`
2359
+ * @remarks Can't be `AnyConstructor` as it's instantiated expecting a compatible constructor
2320
2360
  */
2321
- sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
2361
+ visionSourceClass: typeof foundry.canvas.sources.PointVisionSource;
2322
2362
 
2323
2363
  /**
2324
- * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
2364
+ * @defaultValue `foundry.canvas.sources.PointSoundSource`
2365
+ * @remarks Can't be `AnyConstructor` as it's instantiated via `new`
2325
2366
  */
2326
- typeLabels?: Record<"base", string>;
2327
-
2328
- /** @defaultValue `typeof Drawing` */
2329
- objectClass: ConfiguredObjectClassOrDefault<typeof Drawing>;
2330
-
2331
- /** @defaultValue `typeof DrawingsLayer` */
2332
- layerClass: typeof DrawingsLayer;
2367
+ soundSourceClass: typeof foundry.canvas.sources.PointSoundSource;
2333
2368
 
2334
- /** @defaultValue `typeof DrawingHUD` */
2335
- hudClass: typeof DrawingHUD;
2336
- };
2369
+ groups: CONFIG.Canvas.Groups;
2337
2370
 
2338
- /**
2339
- * Configuration for the MeasuredTemplate embedded document type and its representation on the game Canvas
2340
- */
2341
- MeasuredTemplate: {
2342
- defaults: {
2343
- /** @defaultValue `53.13` */
2344
- angle: number;
2371
+ layers: CONFIG.Canvas.Layers;
2345
2372
 
2346
- /** @defaultValue `1` */
2347
- width: number;
2348
- };
2373
+ lightLevels: Canvas.LightLevels;
2349
2374
 
2350
- types: {
2351
- /** @defaultValue `"Circle"` */
2352
- circle: string;
2375
+ /**
2376
+ * @defaultValue `FogManager`
2377
+ * @remarks Can't be `AnyConstructor` because Foundry assumes it can call `new` with the same arguments FogManager accepts
2378
+ */
2379
+ fogManager: typeof FogManager;
2353
2380
 
2354
- /** @defaultValue `"Cone"` */
2355
- cone: string;
2381
+ polygonBackends: Canvas.PolygonBackends;
2356
2382
 
2357
- /** @defaultValue `"Rectangle"` */
2358
- rect: string;
2383
+ /** @defaultValue `number` */
2384
+ darknessSourcePaddingMultiplier: number;
2359
2385
 
2360
- /** @defaultValue `"Ray"` */
2361
- ray: string;
2362
- };
2386
+ visibilityFilter: VisibilityFilter.AnyConstructor;
2363
2387
 
2364
- /** @defaultValue `MeasuredTemplateDocument` */
2365
- documentClass: Document.ConfiguredClassForName<"MeasuredTemplate">;
2388
+ visualEffectsMaskingFilter: VisualEffectsMaskingFilter.AnyConstructor;
2366
2389
 
2367
2390
  /**
2368
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2391
+ * @defaultValue `Ruler`
2392
+ * @remarks Not `AnyConstructor` because it's instantiated with a `User.Implementation` as its first argument
2369
2393
  */
2370
- sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
2394
+ rulerClass: typeof Ruler;
2371
2395
 
2372
- /**
2373
- * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
2374
- */
2375
- typeLabels?: Record<"base", string>;
2396
+ /** @defaultValue `0.8` */
2397
+ dragSpeedModifier: number;
2376
2398
 
2377
- /** @defaultValue `typeof MeasuredTemplate` */
2378
- objectClass: ConfiguredObjectClassOrDefault<typeof MeasuredTemplate>;
2399
+ /** @defaultValue `3.0` */
2400
+ maxZoom: number;
2379
2401
 
2380
- /** @defaultValue `typeof TemplateLayer` */
2381
- layerClass: typeof TemplateLayer;
2382
- };
2402
+ /** @defaultValue `4` */
2403
+ objectBorderThickness: number;
2383
2404
 
2384
- /**
2385
- * Configuration for the Note embedded document type and its representation on the game Canvas
2386
- */
2387
- Note: {
2388
- /** @defaultValue `NoteDocument` */
2389
- documentClass: Document.ConfiguredClassForName<"Note">;
2405
+ gridStyles: Canvas.GridStyles;
2390
2406
 
2391
- /**
2392
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2393
- */
2394
- sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
2407
+ lightAnimations: Canvas.LightAnimations;
2408
+
2409
+ darknessAnimations: Canvas.DarknessAnimations;
2395
2410
 
2396
2411
  /**
2397
- * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
2412
+ * A registry of Scenes which are managed by a specific SceneManager class.
2413
+ * @remarks Keys are Scene IDs
2414
+ * @privateRemarks Can't be `AnyConstructor` because it's instantiated expecting a compatible constructor
2398
2415
  */
2399
- typeLabels?: Record<"base", string>;
2400
-
2401
- /** @defaultValue `typeof Note` */
2402
- objectClass: ConfiguredObjectClassOrDefault<typeof Note>;
2403
-
2404
- /** @defaultValue `typeof NotesLayer` */
2405
- layerClass: NotesLayer.AnyConstructor;
2406
- };
2407
-
2408
- Region: {
2409
- /** @defaultValue `RegionDocument` */
2410
- documentClass: Document.ConfiguredClassForName<"Region">;
2416
+ managedScenes: Record<string, typeof foundry.canvas.SceneManager>;
2411
2417
 
2412
- /** @defaultValue `Region` */
2413
- objectClass: ConfiguredObjectClassOrDefault<typeof Region>;
2418
+ pings: Canvas.Pings;
2414
2419
 
2415
- /** @defaultValue `RegionLayer` */
2416
- layerClass: RegionLayer.AnyConstructor;
2420
+ targeting: Canvas.Targeting;
2417
2421
 
2418
2422
  /**
2419
- * @remarks added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2423
+ * The hover-fading configuration.
2420
2424
  */
2421
- sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
2425
+ hoverFade: Canvas.HoverFade;
2422
2426
 
2423
2427
  /**
2424
- * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
2428
+ * Allow specific transcoders for assets
2429
+ * @defaultValue `{ basis: false }`
2425
2430
  */
2426
- typeLabels?: Record<"base", string>;
2427
- };
2428
-
2429
- /**
2430
- * Configuration for the Tile embedded document type and its representation on the game Canvas
2431
- */
2432
- Tile: {
2433
- /** @defaultValue `TileDocument` */
2434
- documentClass: Document.ConfiguredClassForName<"Tile">;
2431
+ transCoders: Canvas.TransCoders;
2435
2432
 
2436
2433
  /**
2437
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2434
+ * The set of VisionMode definitions which are available to be used for Token vision.
2438
2435
  */
2439
- sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
2436
+ visionModes: Canvas.VisionModes;
2440
2437
 
2441
2438
  /**
2442
- * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
2439
+ * The set of DetectionMode definitions which are available to be used for visibility detection.
2443
2440
  */
2444
- typeLabels?: Record<"base", string>;
2441
+ detectionModes: Canvas.DetectionModes;
2442
+ }
2445
2443
 
2446
- /** @defaultValue `typeof Tile` */
2447
- objectClass: ConfiguredObjectClassOrDefault<typeof Tile>;
2444
+ namespace Canvas {
2445
+ interface Groups {
2446
+ /** @defaultValue `{ groupClass: HiddenCanvasGroup, parent: "stage" }` */
2447
+ hidden: CONFIG.Canvas.GroupDefinition<typeof HiddenCanvasGroup>;
2448
2448
 
2449
- /** @defaultValue `typeof TilesLayer` */
2450
- layerClass: TilesLayer.AnyConstructor;
2449
+ /** @defaultValue `{ groupClass: RenderedCanvasGroup, parent: "stage" }` */
2450
+ rendered: CONFIG.Canvas.GroupDefinition<typeof RenderedCanvasGroup>;
2451
2451
 
2452
- /** @defaultValue `typeof TileHUD` */
2453
- hudClass: TileHUD.AnyConstructor;
2454
- };
2452
+ /** @defaultValue `{ groupClass: EnvironmentCanvasGroup, parent: "rendered" }` */
2453
+ environment: CONFIG.Canvas.GroupDefinition<typeof EnvironmentCanvasGroup>;
2455
2454
 
2456
- /**
2457
- * Configuration for the Token embedded document type and its representation on the game Canvas
2458
- */
2459
- Token: {
2460
- /** @defaultValue `TokenDocument` */
2461
- documentClass: Document.ConfiguredClassForName<"Token">;
2455
+ /** @defaultValue `{ groupClass: PrimaryCanvasGroup, parent: "environment" }` */
2456
+ primary: CONFIG.Canvas.GroupDefinition<typeof PrimaryCanvasGroup>;
2462
2457
 
2463
- /**
2464
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2465
- */
2466
- sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
2458
+ /** @defaultValue `{ groupClass: EffectsCanvasGroup, parent: "environment" }` */
2459
+ effects: CONFIG.Canvas.GroupDefinition<typeof EffectsCanvasGroup>;
2467
2460
 
2468
- /**
2469
- * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
2470
- */
2471
- typeLabels?: Record<"base", string>;
2461
+ /** @defaultValue `{ groupClass: CanvasVisibility, parent: "rendered" }` */
2462
+ visibility: CONFIG.Canvas.GroupDefinition<typeof CanvasVisibility>;
2472
2463
 
2473
- /** @defaultValue `typeof Token` */
2474
- objectClass: ConfiguredObjectClassOrDefault<typeof Token>;
2464
+ /** @defaultValue `{ groupClass: InterfaceCanvasGroup, parent: "rendered", zIndexDrawings: 500, zIndexScrollingText: 1100 }` */
2465
+ interface: CONFIG.Canvas.GroupDefinition<typeof InterfaceCanvasGroup>;
2475
2466
 
2476
- /** @defaultValue `typeof TokenLayer` */
2477
- layerClass: TokenLayer.AnyConstructor;
2467
+ /** @defaultValue `{ groupClass: OverlayCanvasGroup, parent: "stage" }` */
2468
+ overlay: CONFIG.Canvas.GroupDefinition<typeof OverlayCanvasGroup>;
2469
+ }
2478
2470
 
2479
- /** @defaultValue `typeof TokenConfig` */
2480
- prototypeSheetClass: TokenConfig.AnyConstructor;
2471
+ // This requires `CanvasGroupConstructor` because `Canvas##createGroups` assumes there's no parameters.
2472
+ interface GroupDefinition<GroupClass extends CanvasGroupConstructor = CanvasGroupConstructor> {
2473
+ groupClass: GroupClass;
2474
+ parent: string;
2475
+ zIndexDrawings?: number;
2476
+ zIndexScrollingText?: number;
2477
+ }
2481
2478
 
2482
- /** @defaultValue `typeof TokenHUD` */
2483
- hudClass: TokenHUD.AnyConstructor;
2479
+ interface Layers {
2480
+ /** @defaultValue `{ layerClass: WeatherLayer, group: "primary" }` */
2481
+ weather: LayerDefinition<typeof WeatherEffects, "primary">;
2484
2482
 
2485
- /** @defaultValue `"TOKEN.Adjectives"` */
2486
- adjectivesPrefix: string;
2483
+ /** @defaultValue `{ layerClass: GridLayer, group: "interface" }` */
2484
+ grid: LayerDefinition<typeof GridLayer, "interface">;
2487
2485
 
2488
- /**
2489
- * @defaultValue `foundry.canvas.tokens.TokenRingConfig`
2490
- * @remarks `"ring property is initialized in foundry.canvas.tokens.TokenRingConfig.initialize"`
2491
- */
2492
- readonly ring: foundry.canvas.tokens.TokenRingConfig;
2493
- };
2486
+ /** @defaultValue `{ layerClass: RegionLayer, group: "interface" }` */
2487
+ // regions: LayerDefinition<typeof RegionLayer, "interface">;
2494
2488
 
2495
- /**
2496
- * Configuration for the Wall embedded document type and its representation on the game Canvas
2497
- */
2498
- Wall: {
2499
- /** @defaultValue `WallDocument` */
2500
- documentClass: Document.ConfiguredClassForName<"Wall">;
2489
+ /** @defaultValue `{ layerClass: DrawingsLayer, group: "interface" }` */
2490
+ drawings: LayerDefinition<typeof DrawingsLayer, "interface">;
2501
2491
 
2502
- /**
2503
- * @remarks Added by `DocumentSheetConfig._registerDefaultSheets` in `tail.js`
2504
- */
2505
- sheetClasses: Record<"base", Record<string, SheetClassConfig>>;
2492
+ /** @defaultValue `{ layerClass: TemplateLayer, group: "interface" }` */
2493
+ templates: LayerDefinition<typeof TemplateLayer, "interface">;
2506
2494
 
2507
- /**
2508
- * @remarks Initialized by `Localization#initialize`, is undefined until `i18nInit`
2509
- */
2510
- typeLabels?: Record<"base", string>;
2495
+ /** @defaultValue `{ layerClass: TokenLayer, group: "interface" }` */
2496
+ tiles: LayerDefinition<typeof TilesLayer, "interface">;
2511
2497
 
2512
- /** @defaultValue `typeof Wall` */
2513
- objectClass: ConfiguredObjectClassOrDefault<typeof Wall>;
2498
+ /** @defaultValue `{ layerClass: WallsLayer, group: "interface" }` */
2499
+ walls: LayerDefinition<typeof WallsLayer, "interface">;
2514
2500
 
2515
- /** @defaultValue `typeof WallsLayer` */
2516
- layerClass: WallsLayer.AnyConstructor;
2501
+ /** @defaultValue `{ layerClass: TokenLayer, group: "interface" }` */
2502
+ tokens: LayerDefinition<typeof TokenLayer, "interface">;
2517
2503
 
2518
- /** @defaultValue `1` */
2519
- thresholdAttenuationMultiplier: number;
2504
+ /** @defaultValue `{ layerClass: SoundsLayer, group: "interface" }` */
2505
+ sounds: LayerDefinition<typeof SoundsLayer, "interface">;
2520
2506
 
2521
- doorSounds: {
2522
- [sound: string]: CONFIG.WallDoorSound;
2507
+ /** @defaultValue `{ layerClass: LightingLayer, group: "interface" }` */
2508
+ lighting: LayerDefinition<typeof LightingLayer, "interface">;
2523
2509
 
2524
- /**
2525
- * @defaultValue
2526
- * ```ts
2527
- * {
2528
- * label: "WALLS.DoorSound.FuturisticFast",
2529
- * close: "sounds/doors/futuristic/close-fast.ogg",
2530
- * lock: "sounds/doors/futuristic/lock.ogg",
2531
- * open: "sounds/doors/futuristic/open-fast.ogg",
2532
- * test: "sounds/doors/futuristic/test.ogg",
2533
- * unlock: "sounds/doors/futuristic/unlock.ogg"
2534
- * }
2535
- * ```
2536
- */
2537
- futuristicFast: CONFIG.WallDoorSound;
2510
+ /** @defaultValue `{ layerClass: NotesLayer, group: "interface" }` */
2511
+ notes: LayerDefinition<typeof NotesLayer, "interface">;
2538
2512
 
2539
- /**
2540
- * @defaultValue
2541
- * ```ts
2542
- * {
2543
- * label: "WALLS.DoorSound.FuturisticHydraulic",
2544
- * close: "sounds/doors/futuristic/close-hydraulic.ogg",
2545
- * lock: "sounds/doors/futuristic/lock.ogg",
2546
- * open: "sounds/doors/futuristic/open-hydraulic.ogg",
2547
- * test: "sounds/doors/futuristic/test.ogg",
2548
- * unlock: "sounds/doors/futuristic/unlock.ogg"
2549
- * }
2550
- * ```
2551
- */
2552
- futuristicHydraulic: CONFIG.WallDoorSound;
2513
+ /** @defaultValue `{ layerClass: ControlsLayer, group: "interface" }` */
2514
+ controls: LayerDefinition<typeof ControlsLayer, "interface">;
2515
+ }
2553
2516
 
2554
- /**
2555
- * @defaultValue
2556
- * ```ts
2557
- * {
2558
- * label: "WALLS.DoorSound.FuturisticForcefield",
2559
- * close: "sounds/doors/futuristic/close-forcefield.ogg",
2560
- * lock: "sounds/doors/futuristic/lock.ogg",
2561
- * open: "sounds/doors/futuristic/open-forcefield.ogg",
2562
- * test: "sounds/doors/futuristic/test-forcefield.ogg",
2563
- * unlock: "sounds/doors/futuristic/unlock.ogg"
2564
- * }
2565
- * ```
2566
- */
2567
- futuristicForcefield: CONFIG.WallDoorSound;
2517
+ // This requires `typeof CanvasLayer` because `CanvasGroupMixin#_createLayers` assumes there's no parameters.
2518
+ interface LayerDefinition<LayerClass extends typeof CanvasLayer, Group extends keyof CONFIG["Canvas"]["groups"]> {
2519
+ layerClass: LayerClass;
2520
+ group: Group;
2521
+ }
2568
2522
 
2569
- /**
2570
- * @defaultValue
2571
- * ```ts
2572
- * {
2573
- * label: "WALLS.DoorSound.Industrial",
2574
- * close: "sounds/doors/industrial/close.ogg",
2575
- * lock: "sounds/doors/industrial/lock.ogg",
2576
- * open: "sounds/doors/industrial/open.ogg",
2577
- * test: "sounds/doors/industrial/test.ogg",
2578
- * unlock: "sounds/doors/industrial/unlock.ogg"
2579
- * }
2580
- * ```
2581
- */
2582
- industrial: CONFIG.WallDoorSound;
2523
+ interface LightLevels {
2524
+ /** @defaultValue `0` */
2525
+ dark: number;
2583
2526
 
2584
- /**
2585
- * @defaultValue
2586
- * ```ts
2587
- * {
2588
- * label: "WALLS.DoorSound.IndustrialCreaky",
2589
- * close: "sounds/doors/industrial/close-creaky.ogg",
2590
- * lock: "sounds/doors/industrial/lock.ogg",
2591
- * open: "sounds/doors/industrial/open-creaky.ogg",
2592
- * test: "sounds/doors/industrial/test.ogg",
2593
- * unlock: "sounds/doors/industrial/unlock.ogg"
2594
- * }
2595
- * ```
2596
- */
2597
- industrialCreaky: CONFIG.WallDoorSound;
2527
+ /** @defaultValue `0.5` */
2528
+ halfdark: number;
2598
2529
 
2599
- /**
2600
- * @defaultValue
2601
- * ```ts
2602
- * {
2603
- * label: "WALLS.DoorSound.Jail",
2604
- * close: "sounds/doors/jail/close.ogg",
2605
- * lock: "sounds/doors/jail/lock.ogg",
2606
- * open: "sounds/doors/jail/open.ogg",
2607
- * test: "sounds/doors/jail/test.ogg",
2608
- * unlock: "sounds/doors/jail/unlock.ogg"
2609
- * }
2610
- * ```
2611
- */
2612
- jail: CONFIG.WallDoorSound;
2530
+ /** @defaultValue `0.25` */
2531
+ dim: number;
2613
2532
 
2614
- /**
2615
- * @defaultValue
2616
- * ```ts
2617
- * {
2618
- * label: "WALLS.DoorSound.MagicDoor",
2619
- * close: "sounds/doors/magic/door-close.ogg",
2620
- * lock: "sounds/doors/magic/lock.ogg",
2621
- * open: "sounds/doors/magic/door-open.ogg",
2622
- * test: "sounds/doors/magic/test.ogg",
2623
- * unlock: "sounds/doors/magic/unlock.ogg"
2624
- * }
2625
- * ```
2626
- */
2627
- magicDoor: CONFIG.WallDoorSound;
2533
+ /** @defaultValue `1.0` */
2534
+ bright: number;
2535
+ }
2536
+
2537
+ interface PolygonBackends {
2538
+ /** @defaultValue `typeof ClockwiseSweepPolygon` */
2539
+ sight: PointSourcePolygon.AnyConstructor;
2540
+
2541
+ /** @defaultValue `typeof ClockwiseSweepPolygon` */
2542
+ light: PointSourcePolygon.AnyConstructor;
2543
+
2544
+ /** @defaultValue `typeof ClockwiseSweepPolygon` */
2545
+ sound: PointSourcePolygon.AnyConstructor;
2546
+
2547
+ /** @defaultValue `typeof ClockwiseSweepPolygon` */
2548
+ move: PointSourcePolygon.AnyConstructor;
2549
+ }
2628
2550
 
2629
- /**
2630
- * @defaultValue
2631
- * ```ts
2632
- * {
2633
- * label: "WALLS.DoorSound.MagicWall",
2634
- * close: "sounds/doors/magic/wall-close.ogg",
2635
- * lock: "sounds/doors/magic/lock.ogg",
2636
- * open: "sounds/doors/magic/wall-open.ogg",
2637
- * test: "sounds/doors/magic/test.ogg",
2638
- * unlock: "sounds/doors/magic/unlock.ogg"
2639
- * }
2640
- * ```
2641
- */
2642
- magicWall: CONFIG.WallDoorSound;
2551
+ interface GridStyles {
2552
+ [key: string]: GridLayer.GridStyle;
2643
2553
 
2644
2554
  /**
2645
2555
  * @defaultValue
2646
- * ```ts
2556
+ * ```js
2647
2557
  * {
2648
- * label: "WALLS.DoorSound.Metal",
2649
- * close: "sounds/doors/metal/close.ogg",
2650
- * lock: "sounds/doors/metal/lock.ogg",
2651
- * open: "sounds/doors/metal/open.ogg",
2652
- * test: "sounds/doors/metal/test.ogg",
2653
- * unlock: "sounds/doors/metal/unlock.ogg"
2558
+ * label: "GRID.STYLES.SolidLines",
2559
+ * shaderClass: GridShader,
2560
+ * shaderOptions: {
2561
+ * style: 0
2562
+ * }
2654
2563
  * }
2655
2564
  * ```
2656
2565
  */
2657
- metal: CONFIG.WallDoorSound;
2566
+ solidLines: GridLayer.GridStyle;
2658
2567
 
2659
2568
  /**
2660
2569
  * @defaultValue
2661
- * ```ts
2570
+ * ```js
2662
2571
  * {
2663
- * label: "WALLS.DoorSound.SlidingMetal",
2664
- * close: "sounds/doors/shutter/close.ogg",
2665
- * lock: "sounds/doors/shutter/lock.ogg",
2666
- * open: "sounds/doors/shutter/open.ogg",
2667
- * test: "sounds/doors/shutter/test.ogg",
2668
- * unlock: "sounds/doors/shutter/unlock.ogg"
2572
+ * label: "GRID.STYLES.DashedLines",
2573
+ * shaderClass: GridShader,
2574
+ * shaderOptions: {
2575
+ * style: 1
2576
+ * }
2669
2577
  * }
2670
2578
  * ```
2671
2579
  */
2672
- slidingMetal: CONFIG.WallDoorSound;
2580
+ dashedLines: GridLayer.GridStyle;
2673
2581
 
2674
2582
  /**
2675
2583
  * @defaultValue
2676
- * ```ts
2584
+ * ```js
2677
2585
  * {
2678
- * label: "WALLS.DoorSound.SlidingModern",
2679
- * close: "sounds/doors/sliding/close.ogg",
2680
- * lock: "sounds/doors/sliding/lock.ogg",
2681
- * open: "sounds/doors/sliding/open.ogg",
2682
- * test: "sounds/doors/sliding/test.ogg",
2683
- * unlock: "sounds/doors/sliding/unlock.ogg"
2586
+ * label: "GRID.STYLES.DottedLines",
2587
+ * shaderClass: GridShader,
2588
+ * shaderOptions: {
2589
+ * style: 0
2590
+ * }
2684
2591
  * }
2685
2592
  * ```
2686
2593
  */
2687
- slidingModern: CONFIG.WallDoorSound;
2594
+ dottedLines: GridLayer.GridStyle;
2688
2595
 
2689
2596
  /**
2690
2597
  * @defaultValue
2691
- * ```ts
2598
+ * ```js
2692
2599
  * {
2693
- * label: "WALLS.DoorSound.SlidingWood",
2694
- * close: "sounds/doors/sliding/close-wood.ogg",
2695
- * lock: "sounds/doors/sliding/lock.ogg",
2696
- * open: "sounds/doors/sliding/open-wood.ogg",
2697
- * test: "sounds/doors/sliding/test.ogg",
2698
- * unlock: "sounds/doors/sliding/unlock.ogg"
2600
+ * label: "GRID.STYLES.SquarePoints",
2601
+ * shaderClass: GridShader,
2602
+ * shaderOptions: {
2603
+ * style: 0
2604
+ * }
2699
2605
  * }
2700
2606
  * ```
2701
2607
  */
2702
- slidingWood: CONFIG.WallDoorSound;
2608
+ squarePoints: GridLayer.GridStyle;
2703
2609
 
2704
2610
  /**
2705
2611
  * @defaultValue
2706
- * ```ts
2612
+ * ```js
2707
2613
  * {
2708
- * label: "WALLS.DoorSound.StoneBasic",
2709
- * close: "sounds/doors/stone/close.ogg",
2710
- * lock: "sounds/doors/stone/lock.ogg",
2711
- * open: "sounds/doors/stone/open.ogg",
2712
- * test: "sounds/doors/stone/test.ogg",
2713
- * unlock: "sounds/doors/stone/unlock.ogg"
2614
+ * label: "GRID.STYLES.DiamondPoints",
2615
+ * shaderClass: GridShader,
2616
+ * shaderOptions: {
2617
+ * style: 0
2618
+ * }
2714
2619
  * }
2715
2620
  * ```
2716
2621
  */
2717
- stoneBasic: CONFIG.WallDoorSound;
2622
+ diamondPoints: GridLayer.GridStyle;
2718
2623
 
2719
2624
  /**
2720
2625
  * @defaultValue
2721
- * ```ts
2626
+ * ```js
2722
2627
  * {
2723
- * label: "WALLS.DoorSound.StoneRocky",
2724
- * close: "sounds/doors/stone/close-rocky.ogg",
2725
- * lock: "sounds/doors/stone/lock.ogg",
2726
- * open: "sounds/doors/stone/open-rocky.ogg",
2727
- * test: "sounds/doors/stone/test.ogg",
2728
- * unlock: "sounds/doors/stone/unlock.ogg"
2628
+ * label: "GRID.STYLES.RoundPoints",
2629
+ * shaderClass: GridShader,
2630
+ * shaderOptions: {
2631
+ * style: 0
2632
+ * }
2729
2633
  * }
2730
2634
  * ```
2731
2635
  */
2732
- stoneRocky: CONFIG.WallDoorSound;
2636
+ roundPoints: GridLayer.GridStyle;
2637
+ }
2733
2638
 
2734
- /**
2735
- * @defaultValue
2736
- * ```ts
2737
- * {
2738
- * label: "WALLS.DoorSound.StoneSandy",
2739
- * close: "sounds/doors/stone/close-sandy.ogg",
2740
- * lock: "sounds/doors/stone/lock.ogg",
2741
- * open: "sounds/doors/stone/open-sandy.ogg",
2742
- * test: "sounds/doors/stone/test.ogg",
2743
- * unlock: "sounds/doors/stone/unlock.ogg"
2744
- * }
2745
- * ```
2746
- */
2747
- stoneSandy: CONFIG.WallDoorSound;
2639
+ interface LightAnimations {
2640
+ flame: {
2641
+ /** @defaultValue `"LIGHT.AnimationFame"` */
2642
+ label: string;
2748
2643
 
2749
- /**
2750
- * @defaultValue
2751
- * ```ts
2752
- * {
2753
- * label: "WALLS.DoorSound.WoodBasic",
2754
- * close: "sounds/doors/wood/close.ogg",
2755
- * lock: "sounds/doors/wood/lock.ogg",
2756
- * open: "sounds/doors/wood/open.ogg",
2757
- * test: "sounds/doors/wood/test.ogg",
2758
- * unlock: "sounds/doors/wood/unlock.ogg"
2759
- * }
2760
- * ```
2761
- */
2762
- woodBasic: CONFIG.WallDoorSound;
2644
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateFlickering` */
2645
+ animation: BaseLightSource.LightAnimationFunction;
2646
+
2647
+ /** @defaultValue `FlameIlluminationShader` */
2648
+ illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
2649
+
2650
+ /** @defaultValue `FlameColorationShader` */
2651
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2652
+ };
2653
+
2654
+ torch: {
2655
+ /** @defaultValue `"LIGHT.AnimationTorch"` */
2656
+ label: string;
2657
+
2658
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTorch` */
2659
+ animation: BaseLightSource.LightAnimationFunction;
2660
+
2661
+ /** @defaultValue `TorchIlluminationShader` */
2662
+ illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
2663
+
2664
+ /** @defaultValue `TorchColorationShader` */
2665
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2666
+ };
2667
+
2668
+ revolving: {
2669
+ /** @defaultValue `"LIGHT.AnimationRevolving"` */
2670
+ label: string;
2671
+
2672
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2673
+ animation: BaseLightSource.LightAnimationFunction;
2674
+
2675
+ /** @defaultValue `RevolvingColorationShader` */
2676
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2677
+ };
2678
+
2679
+ siren: {
2680
+ /** @defaultValue `"LIGHT.AnimationSiren"` */
2681
+ label: string;
2682
+
2683
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTorch` */
2684
+ animation: BaseLightSource.LightAnimationFunction;
2685
+
2686
+ /** @defaultValue `SirenIlluminationShader` */
2687
+ illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
2688
+
2689
+ /** @defaultValue `SirenIlluminationShader` */
2690
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2691
+ };
2692
+
2693
+ pulse: {
2694
+ /** @defaultValue `"LIGHT.AnimationPulse"` */
2695
+ label: string;
2696
+
2697
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animatePulse` */
2698
+ animation: BaseLightSource.LightAnimationFunction;
2699
+
2700
+ /** @defaultValue `PulseIlluminationShader` */
2701
+ illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
2702
+
2703
+ /** @defaultValue `PulseColorationShader` */
2704
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2705
+ };
2706
+
2707
+ chroma: {
2708
+ /** @defaultValue `"LIGHT.AnimationChroma"` */
2709
+ label: string;
2710
+
2711
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2712
+ animation: RenderedEffectSource.AnimationFunction;
2713
+
2714
+ /** @defaultValue `ChromaColorationShader` */
2715
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2716
+ };
2717
+
2718
+ wave: {
2719
+ /** @defaultValue `"LIGHT.AnimationWave"` */
2720
+ label: string;
2721
+
2722
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2723
+ animation: RenderedEffectSource.AnimationFunction;
2724
+
2725
+ /** @defaultValue `WaveIlluminationShader` */
2726
+ illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
2727
+
2728
+ /** @defaultValue `WaveColorationShader` */
2729
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2730
+ };
2731
+
2732
+ fog: {
2733
+ /** @defaultValue `"LIGHT.AnimationFog"` */
2734
+ label: string;
2735
+
2736
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2737
+ animation: RenderedEffectSource.AnimationFunction;
2738
+
2739
+ /** @defaultValue `FogColorationShader` */
2740
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2741
+ };
2742
+
2743
+ sunburst: {
2744
+ /** @defaultValue `"LIGHT.AnimationSunburst"` */
2745
+ label: string;
2746
+
2747
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2748
+ animation: RenderedEffectSource.AnimationFunction;
2749
+
2750
+ /** @defaultValue `SunburstIlluminationShader` */
2751
+ illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
2752
+
2753
+ /** @defaultValue `SunburstColorationShader` */
2754
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2755
+ };
2756
+
2757
+ dome: {
2758
+ /** @defaultValue `"LIGHT.AnimationLightDome"` */
2759
+ label: string;
2760
+
2761
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2762
+ animation: RenderedEffectSource.AnimationFunction;
2763
+
2764
+ /** @defaultValue `LightDomeColorationShader` */
2765
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2766
+ };
2767
+
2768
+ emanation: {
2769
+ /** @defaultValue `"LIGHT.AnimationEmanation"` */
2770
+ label: string;
2771
+
2772
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2773
+ animation: RenderedEffectSource.AnimationFunction;
2774
+
2775
+ /** @defaultValue `EmanationColorationShader` */
2776
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2777
+ };
2778
+
2779
+ hexa: {
2780
+ /** @defaultValue `"LIGHT.AnimationHexaDome";` */
2781
+ label: string;
2782
+
2783
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2784
+ animation: RenderedEffectSource.AnimationFunction;
2785
+
2786
+ /** @defaultValue `HexaDomeColorationShader` */
2787
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2788
+ };
2789
+
2790
+ ghost: {
2791
+ /** @defaultValue `"LIGHT.AnimationGhostLight"` */
2792
+ label: string;
2793
+
2794
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2795
+ animation: RenderedEffectSource.AnimationFunction;
2796
+
2797
+ /** @defaultValue `GhostLightIlluminationShader` */
2798
+ illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
2799
+
2800
+ /** @defaultValue `GhostLightColorationShader` */
2801
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2802
+ };
2803
+
2804
+ energy: {
2805
+ /** @defaultValue `"LIGHT.AnimationEnergyField"` */
2806
+ label: string;
2763
2807
 
2764
- /**
2765
- * @defaultValue
2766
- * ```ts
2767
- * {
2768
- * label: "WALLS.DoorSound.WoodCreaky",
2769
- * close: "sounds/doors/wood/close-creaky.ogg",
2770
- * lock: "sounds/doors/wood/lock.ogg",
2771
- * open: "sounds/doors/wood/open-creaky.ogg",
2772
- * test: "sounds/doors/wood/test.ogg",
2773
- * unlock: "sounds/doors/wood/unlock.ogg"
2774
- * }
2775
- * ```
2776
- */
2777
- woodCreaky: CONFIG.WallDoorSound;
2808
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2809
+ animation: RenderedEffectSource.AnimationFunction;
2778
2810
 
2779
- /**
2780
- * @defaultValue
2781
- * ```ts
2782
- * {
2783
- * label: "WALLS.DoorSound.WoodHeavy",
2784
- * close: "sounds/doors/wood/close-heavy.ogg",
2785
- * lock: "sounds/doors/wood/lock.ogg",
2786
- * open: "sounds/doors/wood/open-heavy.ogg",
2787
- * test: "sounds/doors/wood/test.ogg",
2788
- * unlock: "sounds/doors/wood/unlock.ogg"
2789
- * }
2790
- * ```
2791
- */
2792
- woodHeavy: CONFIG.WallDoorSound;
2793
- };
2794
- };
2811
+ /** @defaultValue `EnergyFieldColorationShader` */
2812
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2813
+ };
2795
2814
 
2796
- /**
2797
- * An enumeration of sound effects which can be applied to Sound instances.
2798
- */
2799
- soundEffects: {
2800
- lowPass: { label: string; effectClass: AudioNode.AnyConstructor };
2801
- highpass: { label: string; effectClass: AudioNode.AnyConstructor };
2802
- reverb: { label: string; effectClass: AudioNode.AnyConstructor };
2803
- };
2815
+ vortex: {
2816
+ /** @defaultValue `"LIGHT.AnimationVortex"` */
2817
+ label: string;
2804
2818
 
2805
- /**
2806
- * Default configuration options for TinyMCE editors
2807
- */
2808
- TinyMCE: tinyMCE.RawEditorOptions;
2819
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2820
+ animation: RenderedEffectSource.AnimationFunction;
2809
2821
 
2810
- /**
2811
- * Rich text editing configuration.
2812
- */
2813
- TextEditor: {
2814
- /**
2815
- * A collection of custom enrichers that can be applied to text content, allowing for the matching and handling of
2816
- * custom patterns.
2817
- */
2818
- enrichers: TextEditor.EnricherConfig[];
2819
- };
2822
+ /** @defaultValue `VortexIlluminationShader` */
2823
+ illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
2820
2824
 
2821
- /**
2822
- * Configuration for the WebRTC implementation class
2823
- */
2824
- WebRTC: {
2825
- /** @defaultValue `SimplePeerAVClient` */
2826
- clientClass: GetKey<WebRTCConfig, "clientClass", SimplePeerAVClient.AnyConstructor>;
2825
+ /** @defaultValue `VortexColorationShader` */
2826
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2827
+ };
2827
2828
 
2828
- /** @defaultValue `50` */
2829
- detectPeerVolumeInterval: number;
2829
+ witchwave: {
2830
+ /** @defaultValue `"LIGHT.AnimationBewitchingWave"` */
2831
+ label: string;
2830
2832
 
2831
- /** @defaultValue `20` */
2832
- detectSelfVolumeInterval: number;
2833
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2834
+ animation: RenderedEffectSource.AnimationFunction;
2833
2835
 
2834
- /** @defaultValue `25` */
2835
- emitVolumeInterval: number;
2836
+ /** @defaultValue `BewitchingWaveIlluminationShader` */
2837
+ illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
2836
2838
 
2837
- /** @defaultValue `2` */
2838
- speakingThresholdEvents: number;
2839
+ /** @defaultValue `BewitchingWaveColorationShader` */
2840
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2841
+ };
2839
2842
 
2840
- /** @defaultValue `10` */
2841
- speakingHistoryLength: number;
2843
+ rainbowswirl: {
2844
+ /** @defaultValue `"LIGHT.AnimationSwirlingRainbow"` */
2845
+ label: string;
2842
2846
 
2843
- /** @defaultValue `8` */
2844
- connectedUserPollIntervalS: number;
2845
- };
2847
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2848
+ animation: RenderedEffectSource.AnimationFunction;
2846
2849
 
2847
- /**
2848
- * Configure the Application classes used to render various core UI elements in the application
2849
- */
2850
- ui: CONFIG.UI;
2851
- }
2850
+ /** @defaultValue `SwirlingRainbowColorationShader` */
2851
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2852
+ };
2852
2853
 
2853
- namespace CONFIG {
2854
- interface UI {
2855
- /** @defaultValue `MainMenu` */
2856
- menu: MainMenu.AnyConstructor;
2854
+ radialrainbow: {
2855
+ /** @defaultValue `"LIGHT.AnimationRadialRainbow"` */
2856
+ label: string;
2857
2857
 
2858
- /** @defaultValue `Sidebar` */
2859
- sidebar: Sidebar.AnyConstructor;
2858
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2859
+ animation: RenderedEffectSource.AnimationFunction;
2860
2860
 
2861
- /** @defaultValue `Pause` */
2862
- pause: Pause.AnyConstructor;
2861
+ /** @defaultValue `RadialRainbowColorationShader` */
2862
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2863
+ };
2863
2864
 
2864
- /** @defaultValue `SceneNavigation` */
2865
- nav: SceneNavigation.AnyConstructor;
2865
+ fairy: {
2866
+ /** @defaultValue `"LIGHT.AnimationFairyLight"` */
2867
+ label: string;
2866
2868
 
2867
- /** @defaultValue `Notifications` */
2868
- notifications: foundry.applications.ui.Notifications.AnyConstructor;
2869
+ /** @defaultValue `foundry.canvas.sources.LightSource.prototype.animateTime` */
2870
+ animation: RenderedEffectSource.AnimationFunction;
2869
2871
 
2870
- /** @defaultValue `ActorDirectory` */
2871
- actors: ActorDirectory.AnyConstructor;
2872
+ /** @defaultValue `FairyLightIlluminationShader` */
2873
+ illuminationShader: AdaptiveIlluminationShader.AnyConstructor;
2872
2874
 
2873
- /** @defaultValue `CardsDirectory` */
2874
- cards: CardsDirectory.AnyConstructor;
2875
+ /** @defaultValue `FairyLightColorationShader` */
2876
+ colorationShader: AdaptiveColorationShader.AnyConstructor;
2877
+ };
2878
+ }
2875
2879
 
2876
- /** @defaultValue `ChatLog` */
2877
- chat: ChatLog.AnyConstructor;
2880
+ interface DarknessAnimations {
2881
+ magicalGloom: {
2882
+ /** @defaultValue `"LIGHT.AnimationMagicalGloom"` */
2883
+ label: string;
2878
2884
 
2879
- /** @defaultValue `CombatTracker` */
2880
- combat: CombatTracker.AnyConstructor;
2885
+ /** @defaultValue `foundry.canvas.sources.PointDarknessSource.prototype.animateTime` */
2886
+ animation: RenderedEffectSource.AnimationFunction;
2881
2887
 
2882
- /** @defaultValue `CompendiumDirectory` */
2883
- compendium: CompendiumDirectory.AnyConstructor;
2888
+ /** @defaultValue `MagicalGloomDarknessShader` */
2889
+ darknessShader: AdaptiveDarknessShader.AnyConstructor;
2890
+ };
2884
2891
 
2885
- /** @defaultValue `SceneControls` */
2886
- controls: SceneControls.AnyConstructor;
2892
+ roiling: {
2893
+ /** @defaultValue `"LIGHT.AnimationRoilingMass"` */
2894
+ label: string;
2887
2895
 
2888
- /** @defaultValue `Hotbar` */
2889
- hotbar: Hotbar.AnyConstructor;
2896
+ /** @defaultValue `foundry.canvas.sources.PointDarknessSource.prototype.animateTime` */
2897
+ animation: RenderedEffectSource.AnimationFunction;
2890
2898
 
2891
- /** @defaultValue `ItemDirectory` */
2892
- items: ItemDirectory.AnyConstructor;
2899
+ /** @defaultValue `RoilingDarknessShader` */
2900
+ darknessShader: AdaptiveDarknessShader.AnyConstructor;
2901
+ };
2893
2902
 
2894
- /** @defaultValue `JournalDirectory` */
2895
- journal: JournalDirectory.AnyConstructor;
2903
+ hole: {
2904
+ /** @defaultValue `"LIGHT.AnimationBlackHole"` */
2905
+ label: string;
2896
2906
 
2897
- /** @defaultValue `MacroDirectory` */
2898
- macros: MacroDirectory.AnyConstructor;
2907
+ /** @defaultValue `foundry.canvas.sources.PointDarknessSource.prototype.animateTime` */
2908
+ animation: RenderedEffectSource.AnimationFunction;
2899
2909
 
2900
- /** @defaultValue `PlayerList` */
2901
- players: PlayerList.AnyConstructor;
2910
+ /** @defaultValue `BlackHoleDarknessShader` */
2911
+ darknessShader: AdaptiveDarknessShader.AnyConstructor;
2912
+ };
2913
+ }
2902
2914
 
2903
- /** @defaultValue `PlaylistDirectory` */
2904
- playlists: PlaylistDirectory.AnyConstructor;
2915
+ interface Pings {
2916
+ types: Pings.Types;
2905
2917
 
2906
- /** @defaultValue `SceneDirectory` */
2907
- scenes: SceneDirectory.AnyConstructor;
2918
+ styles: Pings.Styles;
2908
2919
 
2909
- /** @defaultValue `Settings` */
2910
- settings: Settings.AnyConstructor;
2920
+ /** @defaultValue `700` */
2921
+ pullSpeed: number;
2922
+ }
2911
2923
 
2912
- /** @defaultValue `RollTableDirectory` */
2913
- tables: RollTableDirectory.AnyConstructor;
2924
+ namespace Pings {
2925
+ interface Types {
2926
+ /** @defaultValue `"pulse"` */
2927
+ PULSE: string;
2914
2928
 
2915
- /** @defaultValue `CameraViews` */
2916
- webrtc: CameraViews.AnyConstructor;
2917
- }
2929
+ /** @defaultValue `"alert"` */
2930
+ ALERT: string;
2918
2931
 
2919
- namespace Canvas {
2920
- interface Groups {
2921
- /** @defaultValue `{ groupClass: HiddenCanvasGroup, parent: "stage" }` */
2922
- hidden: CONFIG.Canvas.GroupDefinition<typeof HiddenCanvasGroup>;
2932
+ /** @defaultValue `"chevron"` */
2933
+ PULL: string;
2923
2934
 
2924
- /** @defaultValue `{ groupClass: RenderedCanvasGroup, parent: "stage" }` */
2925
- rendered: CONFIG.Canvas.GroupDefinition<typeof RenderedCanvasGroup>;
2935
+ /** @defaultValue `"arrow"` */
2936
+ ARROW: string;
2937
+ }
2926
2938
 
2927
- /** @defaultValue `{ groupClass: EnvironmentCanvasGroup, parent: "rendered" }` */
2928
- environment: CONFIG.Canvas.GroupDefinition<typeof EnvironmentCanvasGroup>;
2939
+ interface Styles {
2940
+ /** @defaultValue `{ class: AlertPing, color: "#ff0000", size: 1.5, duration: 900 }` */
2941
+ alert: CONFIG.Canvas.Pings.Style;
2929
2942
 
2930
- /** @defaultValue `{ groupClass: PrimaryCanvasGroup, parent: "environment" }` */
2931
- primary: CONFIG.Canvas.GroupDefinition<typeof PrimaryCanvasGroup>;
2943
+ /** @defaultValue `{ class: ArrowPing, size: 1, duration: 900 }` */
2944
+ arrow: CONFIG.Canvas.Pings.Style;
2932
2945
 
2933
- /** @defaultValue `{ groupClass: EffectsCanvasGroup, parent: "environment" }` */
2934
- effects: CONFIG.Canvas.GroupDefinition<typeof EffectsCanvasGroup>;
2946
+ /** @defaultValue `{ class: ChevronPing, size: 1, duration: 2000 }` */
2947
+ chevron: CONFIG.Canvas.Pings.Style;
2935
2948
 
2936
- /** @defaultValue `{ groupClass: CanvasVisibility, parent: "rendered" }` */
2937
- visibility: CONFIG.Canvas.GroupDefinition<typeof CanvasVisibility>;
2949
+ /** @defaultValue `{ class: PulsePing, size: 1.5, duration: 900 }` */
2950
+ pulse: CONFIG.Canvas.Pings.Style;
2938
2951
 
2939
- /** @defaultValue `{ groupClass: InterfaceCanvasGroup, parent: "rendered", zIndexDrawings: 500, zIndexScrollingText: 1100 }` */
2940
- interface: CONFIG.Canvas.GroupDefinition<typeof InterfaceCanvasGroup>;
2952
+ [key: string]: CONFIG.Canvas.Pings.Style;
2953
+ }
2941
2954
 
2942
- /** @defaultValue `{ groupClass: OverlayCanvasGroup, parent: "stage" }` */
2943
- overlay: CONFIG.Canvas.GroupDefinition<typeof OverlayCanvasGroup>;
2955
+ interface Style {
2956
+ class: unknown;
2957
+ color?: string;
2958
+ size: number;
2959
+ duration: number;
2960
+ }
2944
2961
  }
2945
2962
 
2946
- interface Layers {
2947
- /** @defaultValue `{ layerClass: WeatherLayer, group: "primary" }` */
2948
- weather: LayerDefinition<typeof WeatherEffects, "primary">;
2963
+ interface DispositionColors {
2964
+ /** @defaultValue `0xe72124` */
2965
+ HOSTILE: number;
2949
2966
 
2950
- /** @defaultValue `{ layerClass: GridLayer, group: "interface" }` */
2951
- grid: LayerDefinition<typeof GridLayer, "interface">;
2967
+ /** @defaultValue `0xf1d836` */
2968
+ NEUTRAL: number;
2952
2969
 
2953
- /** @defaultValue `{ layerClass: RegionLayer, group: "interface" }` */
2954
- // regions: LayerDefinition<typeof RegionLayer, "interface">;
2970
+ /** @defaultValue `0x43dfdf` */
2971
+ FRIENDLY: number;
2972
+
2973
+ /** @defaultValue `0x555555` */
2974
+ INACTIVE: number;
2975
+
2976
+ /** @defaultValue `0x33bc4e` */
2977
+ PARTY: number;
2978
+
2979
+ /** @defaultValue `0xff9829` */
2980
+ CONTROLLED: number;
2981
+
2982
+ /** @defaultValue `0xA612D4` */
2983
+ SECRET: number;
2984
+ }
2985
+
2986
+ interface Targeting {
2987
+ /** @defaultValue `.15` */
2988
+ size: number;
2989
+ }
2955
2990
 
2956
- /** @defaultValue `{ layerClass: DrawingsLayer, group: "interface" }` */
2957
- drawings: LayerDefinition<typeof DrawingsLayer, "interface">;
2991
+ interface HoverFade {
2992
+ /**
2993
+ * The delay in milliseconds before the (un)faded animation starts on (un)hover.
2994
+ * @defaultValue `250`
2995
+ */
2996
+ delay: number;
2958
2997
 
2959
- /** @defaultValue `{ layerClass: TemplateLayer, group: "interface" }` */
2960
- templates: LayerDefinition<typeof TemplateLayer, "interface">;
2998
+ /**
2999
+ * The duration in milliseconds of the (un)fade animation on (un)hover.
3000
+ * @defaultValue `750`
3001
+ */
3002
+ duration: number;
3003
+ }
2961
3004
 
2962
- /** @defaultValue `{ layerClass: TokenLayer, group: "interface" }` */
2963
- tiles: LayerDefinition<typeof TilesLayer, "interface">;
3005
+ interface TransCoders {
3006
+ [K: string]: boolean;
3007
+ }
2964
3008
 
2965
- /** @defaultValue `{ layerClass: WallsLayer, group: "interface" }` */
2966
- walls: LayerDefinition<typeof WallsLayer, "interface">;
3009
+ interface VisionModes {
3010
+ [key: string]: VisionMode;
2967
3011
 
2968
- /** @defaultValue `{ layerClass: TokenLayer, group: "interface" }` */
2969
- tokens: LayerDefinition<typeof TokenLayer, "interface">;
3012
+ /**
3013
+ * Default (Basic) Vision
3014
+ * @defaultValue
3015
+ * ```typescript
3016
+ * new VisionMode({
3017
+ * id: "basic",
3018
+ * label: "VISION.ModeBasicVision",
3019
+ * vision: {
3020
+ * defaults: { attenuation: 0, contrast: 0, saturation: 0, brightness: 0 }
3021
+ * preferred: true // Takes priority over other vision modes
3022
+ * }
3023
+ * })
3024
+ * ```
3025
+ */
3026
+ basic: VisionMode;
2970
3027
 
2971
- /** @defaultValue `{ layerClass: SoundsLayer, group: "interface" }` */
2972
- sounds: LayerDefinition<typeof SoundsLayer, "interface">;
3028
+ /**
3029
+ * Darkvision
3030
+ * @defaultValue
3031
+ * ```typescript
3032
+ * new VisionMode({
3033
+ * id: "darkvision",
3034
+ * label: "VISION.ModeDarkvision",
3035
+ * canvas: {
3036
+ * shader: ColorAdjustmentsSamplerShader,
3037
+ * uniforms: { contrast: 0, saturation: -1.0, brightness: 0 }
3038
+ * },
3039
+ * lighting: {
3040
+ * levels: {
3041
+ * [VisionMode.LIGHTING_LEVELS.DIM]: VisionMode.LIGHTING_LEVELS.BRIGHT
3042
+ * },
3043
+ * background: { visibility: VisionMode.LIGHTING_VISIBILITY.REQUIRED }
3044
+ * },
3045
+ * vision: {
3046
+ * darkness: { adaptive: false },
3047
+ * defaults: { attenuation: 0, contrast: 0, saturation: -1.0, brightness: 0 }
3048
+ * }
3049
+ * })
3050
+ * ```
3051
+ */
3052
+ darkvision: VisionMode;
2973
3053
 
2974
- /** @defaultValue `{ layerClass: LightingLayer, group: "interface" }` */
2975
- lighting: LayerDefinition<typeof LightingLayer, "interface">;
3054
+ /**
3055
+ * Darkvision
3056
+ * @defaultValue
3057
+ * ```typescript
3058
+ * new VisionMode({
3059
+ * id: "monochromatic",
3060
+ * label: "VISION.ModeMonochromatic",
3061
+ * canvas: {
3062
+ * shader: ColorAdjustmentsSamplerShader,
3063
+ * uniforms: { contrast: 0, saturation: -1.0, brightness: 0 }
3064
+ * },
3065
+ * lighting: {
3066
+ * background: {
3067
+ * postProcessingModes: ["SATURATION"],
3068
+ * uniforms: { saturation: -1.0, tint: [1, 1, 1] }
3069
+ * },
3070
+ * illumination: {
3071
+ * postProcessingModes: ["SATURATION"],
3072
+ * uniforms: { saturation: -1.0, tint: [1, 1, 1] }
3073
+ * },
3074
+ * coloration: {
3075
+ * postProcessingModes: ["SATURATION"],
3076
+ * uniforms: { saturation: -1.0, tint: [1, 1, 1] }
3077
+ * }
3078
+ * },
3079
+ * vision: {
3080
+ * darkness: { adaptive: false },
3081
+ * defaults: { attenuation: 0, contrast: 0, saturation: -1, brightness: 0 }
3082
+ * }
3083
+ * })
3084
+ * ```
3085
+ */
3086
+ monochromatic: VisionMode;
2976
3087
 
2977
- /** @defaultValue `{ layerClass: NotesLayer, group: "interface" }` */
2978
- notes: LayerDefinition<typeof NotesLayer, "interface">;
3088
+ /**
3089
+ * Blindness
3090
+ * @defaultValue
3091
+ * ```typescript
3092
+ * new VisionMode({
3093
+ * id: "blindness",
3094
+ * label: "VISION.ModeBlindness",
3095
+ * tokenConfig: false,
3096
+ * canvas: {
3097
+ * shader: ColorAdjustmentsSamplerShader,
3098
+ * uniforms: { contrast: -0.75, saturation: -1, exposure: -0.3 }
3099
+ * },
3100
+ * lighting: {
3101
+ * background: { visibility: VisionMode.LIGHTING_VISIBILITY.DISABLED },
3102
+ * illumination: { visibility: VisionMode.LIGHTING_VISIBILITY.DISABLED },
3103
+ * coloration: { visibility: VisionMode.LIGHTING_VISIBILITY.DISABLED }
3104
+ * },
3105
+ * vision: {
3106
+ * darkness: { adaptive: false },
3107
+ * defaults: { color: null, attenuation: 0, contrast: -0.5, saturation: -1, brightness: -1 }
3108
+ * }
3109
+ * }),
3110
+ * ```
3111
+ */
3112
+ blindness: VisionMode;
2979
3113
 
2980
- /** @defaultValue `{ layerClass: ControlsLayer, group: "interface" }` */
2981
- controls: LayerDefinition<typeof ControlsLayer, "interface">;
2982
- }
3114
+ /**
3115
+ * Tremorsense
3116
+ * @defaultValue
3117
+ * ```typescript
3118
+ * new VisionMode({
3119
+ * id: "tremorsense",
3120
+ * label: "VISION.ModeTremorsense",
3121
+ * canvas: {
3122
+ * shader: ColorAdjustmentsSamplerShader,
3123
+ * uniforms: { contrast: 0, saturation: -0.8, exposure: -0.65 }
3124
+ * },
3125
+ * lighting: {
3126
+ * background: { visibility: VisionMode.LIGHTING_VISIBILITY.DISABLED },
3127
+ * illumination: { visibility: VisionMode.LIGHTING_VISIBILITY.DISABLED },
3128
+ * coloration: { visibility: VisionMode.LIGHTING_VISIBILITY.DISABLED },
3129
+ * darkness: { visibility: VisionMode.LIGHTING_VISIBILITY.DISABLED }
3130
+ * },
3131
+ * vision: {
3132
+ * darkness: { adaptive: false },
3133
+ * defaults: { attenuation: 0, contrast: 0.2, saturation: -0.3, brightness: 1 },
3134
+ * background: { shader: WaveBackgroundVisionShader },
3135
+ * coloration: { shader: WaveColorationVisionShader }
3136
+ * }
3137
+ * }, {animated: true})
3138
+ * ```
3139
+ */
3140
+ tremorsense: VisionMode;
2983
3141
 
2984
- // This requires `CanvasGroupConstructor` because `Canvas##createGroups` assumes there's no parameters.
2985
- interface GroupDefinition<GroupClass extends CanvasGroupConstructor = CanvasGroupConstructor> {
2986
- groupClass: GroupClass;
2987
- parent: string;
2988
- zIndexDrawings?: number;
2989
- zIndexScrollingText?: number;
3142
+ /**
3143
+ * Light Amplification
3144
+ * @defaultValue
3145
+ * ```typescript
3146
+ * new VisionMode({
3147
+ * id: "lightAmplification",
3148
+ * label: "VISION.ModeLightAmplification",
3149
+ * canvas: {
3150
+ * shader: AmplificationSamplerShader,
3151
+ * uniforms: { saturation: -0.5, tint: [0.38, 0.8, 0.38] }
3152
+ * },
3153
+ * lighting: {
3154
+ * background: {
3155
+ * visibility: VisionMode.LIGHTING_VISIBILITY.REQUIRED,
3156
+ * postProcessingModes: ["SATURATION", "EXPOSURE"],
3157
+ * uniforms: { saturation: -0.5, exposure: 1.5, tint: [0.38, 0.8, 0.38] }
3158
+ * },
3159
+ * illumination: {
3160
+ * postProcessingModes: ["SATURATION"],
3161
+ * uniforms: { saturation: -0.5 }
3162
+ * },
3163
+ * coloration: {
3164
+ * postProcessingModes: ["SATURATION", "EXPOSURE"],
3165
+ * uniforms: { saturation: -0.5, exposure: 1.5, tint: [0.38, 0.8, 0.38] }
3166
+ * },
3167
+ * levels: {
3168
+ * [VisionMode.LIGHTING_LEVELS.DIM]: VisionMode.LIGHTING_LEVELS.BRIGHT,
3169
+ * [VisionMode.LIGHTING_LEVELS.BRIGHT]: VisionMode.LIGHTING_LEVELS.BRIGHTEST
3170
+ * }
3171
+ * },
3172
+ * vision: {
3173
+ * darkness: { adaptive: false },
3174
+ * defaults: { attenuation: 0, contrast: 0, saturation: -0.5, brightness: 1 },
3175
+ * background: { shader: AmplificationBackgroundVisionShader }
3176
+ * }
3177
+ * })
3178
+ * ```
3179
+ */
3180
+ lightAmplification: VisionMode;
2990
3181
  }
2991
3182
 
2992
- // This requires `typeof CanvasLayer` because `CanvasGroupMixin#_createLayers` assumes there's no parameters.
2993
- interface LayerDefinition<LayerClass extends typeof CanvasLayer, Group extends keyof CONFIG["Canvas"]["groups"]> {
2994
- layerClass: LayerClass;
2995
- group: Group;
2996
- }
3183
+ interface DetectionModes {
3184
+ [key: string]: DetectionMode;
2997
3185
 
2998
- interface GridStyle {
2999
- label: string;
3000
- shaderClass: GridShader.AnyConstructor;
3001
- shaderOptions: {
3002
- style: number;
3003
- };
3004
- }
3186
+ lightPerception: DetectionModeLightPerception;
3005
3187
 
3006
- /**
3007
- * A light source animation configuration object.
3008
- */
3009
- type LightSourceAnimationConfig = Record<
3010
- string,
3011
- {
3012
- label: string;
3013
- animation: BaseLightSource.LightAnimationFunction;
3014
- backgroundShader?: AdaptiveBackgroundShader.AnyConstructor;
3015
- illuminationShader?: AdaptiveIlluminationShader.AnyConstructor;
3016
- colorationShader?: AdaptiveColorationShader.AnyConstructor;
3017
- }
3018
- >;
3188
+ basicSight: DetectionModeBasicSight;
3019
3189
 
3020
- /**
3021
- * A darkness source animation configuration object.
3022
- */
3023
- type DarknessSourceAnimationConfig = Record<
3024
- string,
3025
- {
3026
- label: string;
3027
- animation: BaseLightSource.LightAnimationFunction;
3028
- darknessShader: AdaptiveDarknessShader.AnyConstructor;
3029
- }
3030
- >;
3190
+ seeInvisibility: DetectionModeInvisibility;
3031
3191
 
3032
- namespace Pings {
3033
- interface Style {
3034
- class: unknown;
3035
- color?: string;
3036
- size: number;
3037
- duration: number;
3038
- }
3039
- }
3040
- }
3192
+ senseInvisibility: DetectionModeInvisibility;
3041
3193
 
3042
- interface WeatherAmbienceConfiguration {
3043
- id: string;
3044
- label: string;
3045
- filter: {
3046
- enabled: boolean;
3047
- blendMode: PIXI.BLEND_MODES;
3048
- };
3049
- effects: WeatherEffectConfiguration;
3050
- }
3194
+ feelTremor: DetectionModeTremor;
3051
3195
 
3052
- interface WeatherEffectConfiguration {
3053
- id: string;
3054
- effectClass: ParticleEffect | WeatherShaderEffect.AnyConstructor;
3055
- blendMode: PIXI.BLEND_MODES;
3056
- config: Record<string, unknown>;
3196
+ seeAll: DetectionModeAll;
3197
+
3198
+ senseAll: DetectionModeAll;
3199
+ }
3057
3200
  }
3058
3201
 
3059
3202
  // The point of this interface is to be declaration merged into so you can override `DefaultSpecialStatusEffects` and remove existing keys. It's never used when empty.
@@ -3096,24 +3239,40 @@ declare global {
3096
3239
  }
3097
3240
  }
3098
3241
 
3242
+ /** @privateRemarks Foundry does not document the array options */
3099
3243
  interface WallDoorSound {
3100
3244
  /** A localization string label */
3101
3245
  label: string;
3102
3246
 
3103
- /** A sound path when the door is closed */
3104
- close: string;
3247
+ /**
3248
+ * A sound path when the door is closed
3249
+ * @remarks If an array is provided, a random entry is chosen
3250
+ */
3251
+ close?: string | string[];
3105
3252
 
3106
- /** A sound path when the door becomes locked */
3107
- lock: string;
3253
+ /**
3254
+ * A sound path when the door becomes locked
3255
+ * @remarks If an array is provided, a random entry is chosen
3256
+ */
3257
+ lock?: string | string[];
3108
3258
 
3109
- /** A sound path when opening the door */
3110
- open: string;
3259
+ /**
3260
+ * A sound path when opening the door
3261
+ * @remarks If an array is provided, a random entry is chosen
3262
+ */
3263
+ open?: string | string[];
3111
3264
 
3112
- /** A sound path when attempting to open a locked door */
3113
- test: string;
3265
+ /**
3266
+ * A sound path when attempting to open a locked door
3267
+ * @remarks If an array is provided, a random entry is chosen
3268
+ */
3269
+ test?: string | string[];
3114
3270
 
3115
- /** A sound path when the door becomes unlocked */
3116
- unlock: string;
3271
+ /**
3272
+ * A sound path when the door becomes unlocked
3273
+ * @remarks If an array is provided, a random entry is chosen
3274
+ */
3275
+ unlock?: string | string[];
3117
3276
  }
3118
3277
 
3119
3278
  namespace Dice {