@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,42 +1,865 @@
1
- import type { InexactPartial } from "fvtt-types/utils";
2
- import type Document from "../../../common/abstract/document.d.mts";
3
- import type BaseScene from "../../../common/documents/scene.d.mts";
1
+ import type { InexactPartial, Merge } from "fvtt-types/utils";
2
+ import type { documents } from "#client-esm/client.d.mts";
3
+ import type Document from "#common/abstract/document.d.mts";
4
+ import type { DataSchema } from "#common/data/fields.d.mts";
5
+ import type { TextureData } from "#common/data/data.mjs";
6
+
7
+ import fields = foundry.data.fields;
4
8
 
5
9
  declare global {
6
10
  namespace Scene {
7
- type Metadata = Document.MetadataFor<Scene>;
8
-
9
- type ConfiguredClass = Document.ConfiguredClassForName<"Scene">;
10
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"Scene">;
11
-
12
- /* eslint-disable @typescript-eslint/no-empty-object-type */
13
- export interface DatabaseOperations
14
- extends Document.Database.Operations<
15
- Scene,
16
- {},
17
- { thumb: (string | null)[]; autoReposition: boolean; animateDarkness: number },
18
- {}
11
+ /**
12
+ * The document's name.
13
+ */
14
+ type Name = "Scene";
15
+
16
+ /**
17
+ * The arguments to construct the document.
18
+ */
19
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
20
+
21
+ /**
22
+ * The documents embedded within `Scene`.
23
+ */
24
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
25
+
26
+ /**
27
+ * The implementation of the `Scene` document instance configured through `CONFIG.Scene.documentClass` in Foundry and
28
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredScene | `fvtt-types/configuration/ConfiguredScene`} in fvtt-types.
29
+ */
30
+ type Implementation = Document.ImplementationFor<"Scene">;
31
+
32
+ /**
33
+ * The implementation of the `Scene` document configured through `CONFIG.Scene.documentClass` in Foundry and
34
+ * {@link DocumentClassConfig | `DocumentClassConfig`} in fvtt-types.
35
+ */
36
+ type ImplementationClass = Document.ImplementationClassFor<"Scene">;
37
+
38
+ /**
39
+ * A document's metadata is special information about the document ranging anywhere from its name,
40
+ * whether it's indexed, or to the permissions a user has over it.
41
+ */
42
+ interface Metadata
43
+ extends Merge<
44
+ Document.Metadata.Default,
45
+ Readonly<{
46
+ name: "Scene";
47
+ collection: "scenes";
48
+ indexed: true;
49
+ compendiumIndexFields: ["_id", "name", "thumb", "sort", "folder"];
50
+ embedded: Metadata.Embedded;
51
+ label: string;
52
+ labelPlural: string;
53
+ preserveOnImport: ["_id", "sort", "ownership", "active"];
54
+ schemaVersion: string;
55
+ }>
19
56
  > {}
20
- /* eslint-enable @typescript-eslint/no-empty-object-type */
21
57
 
22
- // Helpful aliases
23
- type ConstructorData = BaseScene.ConstructorData;
24
- type UpdateData = BaseScene.UpdateData;
25
- type Schema = BaseScene.Schema;
26
- type Source = BaseScene.Source;
58
+ namespace Metadata {
59
+ /**
60
+ * The embedded metadata
61
+ */
62
+ interface Embedded {
63
+ AmbientLight: "lights";
64
+ AmbientSound: "sounds";
65
+ Drawing: "drawings";
66
+ MeasuredTemplate: "templates";
67
+ Note: "notes";
68
+ Region: "regions";
69
+ Tile: "tiles";
70
+ Token: "tokens";
71
+ Wall: "walls";
72
+ }
73
+ }
74
+
75
+ /**
76
+ * A document's parent is something that can contain it.
77
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
78
+ */
79
+ type Parent = null;
80
+
81
+ /**
82
+ * A document's direct descendants are documents that are contained directly within its schema.
83
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
84
+ */
85
+ type DirectDescendant =
86
+ | AmbientLightDocument.Implementation
87
+ | AmbientSoundDocument.Implementation
88
+ | DrawingDocument.Implementation
89
+ | MeasuredTemplateDocument.Implementation
90
+ | NoteDocument.Implementation
91
+ | RegionDocument.Implementation
92
+ | TileDocument.Implementation
93
+ | TokenDocument.Implementation
94
+ | WallDocument.Implementation;
95
+
96
+ /**
97
+ * A document's direct descendants are documents that are contained directly within its schema.
98
+ * This is a union of all such classes, or never if the document doesn't have any descendants.
99
+ */
100
+ type DirectDescendantClass =
101
+ | AmbientLightDocument.ImplementationClass
102
+ | AmbientSoundDocument.ImplementationClass
103
+ | DrawingDocument.ImplementationClass
104
+ | MeasuredTemplateDocument.ImplementationClass
105
+ | NoteDocument.ImplementationClass
106
+ | RegionDocument.ImplementationClass
107
+ | TileDocument.ImplementationClass
108
+ | TokenDocument.ImplementationClass
109
+ | WallDocument.ImplementationClass;
110
+
111
+ /**
112
+ * A document's descendants are any documents that are contained within, either within its schema
113
+ * or its descendant's schemas.
114
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
115
+ */
116
+ type Descendant = DirectDescendant | RegionDocument.Descendant | TokenDocument.Descendant;
117
+
118
+ /**
119
+ * A document's descendants are any child documents, grandchild documents, etc.
120
+ * This is a union of all classes, or never if the document doesn't have any descendants.
121
+ */
122
+ type DescendantClass = DirectDescendantClass | RegionDocument.DescendantClass | TokenDocument.DescendantClass;
123
+
124
+ /**
125
+ * Types of `CompendiumCollection` this document might be contained in.
126
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
127
+ */
128
+ type Pack = CompendiumCollection.ForDocument<"Scene">;
129
+
130
+ /**
131
+ * An embedded document is a document contained in another.
132
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
133
+ *
134
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
135
+ */
136
+ type Embedded = Document.ImplementationFor<Embedded.Name>;
137
+
138
+ namespace Embedded {
139
+ /**
140
+ * An embedded document is a document contained in another.
141
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
142
+ *
143
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
144
+ */
145
+ type Name = keyof Metadata.Embedded;
146
+
147
+ /**
148
+ * Gets the collection name for an embedded document.
149
+ */
150
+ type CollectionNameOf<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionNameFor<
151
+ Metadata.Embedded,
152
+ CollectionName
153
+ >;
154
+
155
+ /**
156
+ * Gets the collection document for an embedded document.
157
+ */
158
+ // TODO(LukeAbby): There's a circularity. Should be `Document.Embedded.CollectionDocumentFor<Metadata.Embedded, CollectionName>`
159
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
160
+ type DocumentFor<CollectionName extends Embedded.CollectionName> = Document.Any;
161
+
162
+ /**
163
+ * Gets the collection for an embedded document.
164
+ */
165
+ type CollectionFor<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionFor<
166
+ // TODO(LukeAbby): This should be `TokenDocument.Implementation` but this causes a circularity.
167
+ Document.Any,
168
+ Metadata.Embedded,
169
+ CollectionName
170
+ >;
171
+
172
+ /**
173
+ * A valid name to refer to a collection embedded in this document. For example an `Actor`
174
+ * has the key `"items"` which contains `Item` instance which would make both `"Item" | "Items"`
175
+ * valid keys (amongst others).
176
+ */
177
+ type CollectionName = Document.Embedded.CollectionName<Metadata.Embedded>;
178
+ }
179
+
180
+ /**
181
+ * The name of the world or embedded collection this document can find itself in.
182
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
183
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
184
+ */
185
+ type ParentCollectionName = Metadata["collection"];
186
+
187
+ /**
188
+ * The world collection that contains `Scene`s. Will be `never` if none exists.
189
+ */
190
+ type CollectionClass = Scenes.ConfiguredClass;
191
+
192
+ /**
193
+ * The world collection that contains `Scene`s. Will be `never` if none exists.
194
+ */
195
+ type Collection = Scenes.Configured;
196
+
197
+ /**
198
+ * An instance of `Scene` that comes from the database but failed validation meaining that
199
+ * its `system` and `_source` could theoretically be anything.
200
+ */
201
+ interface Invalid extends Document.Invalid<Scene.Implementation> {}
202
+
203
+ /**
204
+ * An instance of `Scene` that comes from the database.
205
+ */
206
+ interface Stored extends Document.Stored<Scene.Implementation> {}
207
+
208
+ /**
209
+ * The data put in {@link Scene._source | `Scene#_source`}. This data is what was
210
+ * persisted to the database and therefore it must be valid JSON.
211
+ *
212
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
213
+ * but initialized as a {@link Set | `Set`}.
214
+ */
215
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
216
+
217
+ /**
218
+ * @deprecated {@link Scene.Source | `Scene.Source`}
219
+ */
220
+ type PersistedData = Source;
221
+
222
+ /**
223
+ * The data necessary to create a document. Used in places like {@link Scene.create | `Scene.create`}
224
+ * and {@link Scene | `new Scene(...)`}.
225
+ *
226
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
227
+ * with the right values. This means you can pass a `Set` instance, an array of values,
228
+ * a generator, or any other iterable.
229
+ */
230
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
231
+
232
+ /**
233
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
234
+ * {@link Scene.name | `Scene#name`}.
235
+ *
236
+ * This is data transformed from {@link Scene.Source | `Scene.Source`} and turned into more
237
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
238
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
239
+ */
240
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
241
+
242
+ /**
243
+ * The data used to update a document, for example {@link Scene.update | `Scene#update`}.
244
+ * It is a distinct type from {@link Scene.CreateData | `DeepPartial<Scene.CreateData>`} because
245
+ * it has different rules for `null` and `undefined`.
246
+ */
247
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
248
+
249
+ /**
250
+ * The schema for {@link Scene | `Scene`}. This is the source of truth for how an Scene document
251
+ * must be structured.
252
+ *
253
+ * Foundry uses this schema to validate the structure of the {@link Scene | `Scene`}. For example
254
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
255
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
256
+ * starting as an array in the database, initialized as a set, and allows updates with any
257
+ * iterable.
258
+ */
259
+ interface Schema extends DataSchema {
260
+ /**
261
+ * The _id which uniquely identifies this Scene document
262
+ * @defaultValue `null`
263
+ */
264
+ _id: fields.DocumentIdField;
265
+
266
+ /**
267
+ * The name of this scene
268
+ * @defaultValue `""`
269
+ */
270
+ name: fields.StringField<{ required: true; blank: false; textSearch: true }>;
271
+
272
+ /**
273
+ * Is this scene currently active? Only one scene may be active at a given time
274
+ * @defaultValue `false`
275
+ */
276
+ active: fields.BooleanField;
277
+
278
+ /**
279
+ * Is this scene displayed in the top navigation bar?
280
+ * @defaultValue `true`
281
+ */
282
+ navigation: fields.BooleanField<{ initial: true }>;
283
+
284
+ /**
285
+ * The sorting order of this Scene in the navigation bar relative to siblings
286
+ * @defaultValue `0`
287
+ */
288
+ navOrder: fields.NumberField<{ required: true; nullable: false; integer: true; initial: 0 }>;
289
+
290
+ /**
291
+ * A string which overrides Scene name for display in the navigation bar
292
+ * @defaultValue `""`
293
+ */
294
+ navName: fields.HTMLField<{ textSearch: true }>;
295
+
296
+ /**
297
+ * An image or video file that provides the background texture for the scene.
298
+ * @defaultValue see {@link TextureData | `TextureData`}
299
+ */
300
+ background: TextureData;
301
+
302
+ /**
303
+ * An image or video file path providing foreground media for the scene
304
+ * @defaultValue `null`
305
+ */
306
+ foreground: fields.FilePathField<{ categories: ["IMAGE", "VIDEO"] }>;
307
+
308
+ /**
309
+ * The elevation of the foreground layer where overhead tiles reside
310
+ * @defaultValue `null`
311
+ */
312
+ foregroundElevation: fields.NumberField<{ required: false; positive: true; integer: true }>;
313
+
314
+ /**
315
+ * A thumbnail image which depicts the scene at lower resolution
316
+ * @defaultValue `null`
317
+ */
318
+ thumb: fields.FilePathField<{ categories: ["IMAGE"] }>;
319
+
320
+ /**
321
+ * The width of the scene canvas, normally the width of the background media
322
+ * @defaultValue `4000`
323
+ */
324
+ width: fields.NumberField<{ integer: true; positive: true; initial: 4000 }>;
325
+
326
+ /**
327
+ * The height of the scene canvas, normally the height of the background media
328
+ * @defaultValue `3000`
329
+ */
330
+ height: fields.NumberField<{ integer: true; positive: true; initial: 3000 }>;
331
+
332
+ /**
333
+ * The proportion of canvas padding applied around the outside of the scene
334
+ * dimensions to provide additional buffer space
335
+ * @defaultValue `0.25`
336
+ */
337
+ padding: fields.NumberField<{ required: true; nullable: false; min: 0; max: 0.5; step: 0.05; initial: 0.25 }>;
338
+
339
+ /**
340
+ * The initial view coordinates for the scene
341
+ * @defaultValue `undefined`
342
+ */
343
+ initial: fields.SchemaField<{
344
+ x: fields.NumberField<{ integer: true; nullable: true; initial: undefined }>;
345
+ y: fields.NumberField<{ integer: true; nullable: true; initial: undefined }>;
346
+ scale: fields.NumberField<{ nullable: true; min: 0.25; max: 3; initial: undefined }>;
347
+ }>;
348
+
349
+ /**
350
+ * The color of the canvas displayed behind the scene background
351
+ * @defaultValue `"#999999"`
352
+ */
353
+ backgroundColor: fields.ColorField<{ initial: "#999999" }>;
354
+
355
+ /**
356
+ * Grid configuration for the scene
357
+ * @defaultValue see properties
358
+ */
359
+ grid: fields.SchemaField<{
360
+ /**
361
+ * The type of grid, a number from CONST.GRID_TYPES.
362
+ * @defaultValue `CONST.GRID_TYPES.SQUARE`
363
+ */
364
+ type: fields.NumberField<{
365
+ required: true;
366
+ choices: CONST.GRID_TYPES[];
367
+ initial: typeof CONST.GRID_TYPES.SQUARE;
368
+ validationError: "must be a value in CONST.GRID_TYPES";
369
+ }>;
370
+
371
+ /**
372
+ * The grid size which represents the width (or height) of a single grid space.
373
+ * @defaultValue `100`
374
+ */
375
+ size: fields.NumberField<{
376
+ required: true;
377
+ nullable: false;
378
+ integer: true;
379
+ min: typeof CONST.GRID_MIN_SIZE;
380
+ initial: 100;
381
+ validationError: `must be an integer number of pixels, ${typeof CONST.GRID_MIN_SIZE} or greater`;
382
+ }>;
383
+
384
+ /**
385
+ * A string representing the color used to render the grid lines.
386
+ * @defaultValue `"#000000"`
387
+ */
388
+ color: fields.ColorField<{ required: true; nullable: false; initial: "#000000" }>;
389
+
390
+ /**
391
+ * A number between 0 and 1 for the opacity of the grid lines.
392
+ * @defaultValue `0.2`
393
+ */
394
+ alpha: fields.AlphaField<{ initial: 0.2 }>;
395
+
396
+ /**
397
+ * The number of distance units which are represented by a single grid space.
398
+ * @defaultValue `game.system.gridDistance || 1`
399
+ */
400
+ distance: fields.NumberField<{ required: true; nullable: false; positive: true; initial: () => number }>;
401
+
402
+ /**
403
+ * A label for the units of measure which are used for grid distance.
404
+ * @defaultValue `game.system.gridUnits ?? ""`
405
+ */
406
+ units: fields.StringField<{ initial: () => string }>;
407
+ }>;
408
+
409
+ /**
410
+ * Do Tokens require vision in order to see the Scene environment?
411
+ * @defaultValue `true`
412
+ */
413
+ tokenVision: fields.BooleanField<{ initial: true }>;
414
+
415
+ /**
416
+ * Is a global source of illumination present which provides dim light to all
417
+ * areas of the Scene?
418
+ * @defaultValue `true`
419
+ */
420
+ fogExploration: fields.BooleanField<{ initial: true }>;
421
+
422
+ /**
423
+ * The ambient darkness level in this Scene, where 0 represents midday
424
+ * (maximum illumination) and 1 represents midnight (maximum darkness)
425
+ * @defaultValue `Date.now`
426
+ */
427
+ fogReset: fields.NumberField<{ nullable: false; initial: number }>;
428
+
429
+ /**
430
+ * A darkness threshold between 0 and 1. When the Scene darkness level
431
+ * exceeds this threshold Global Illumination is automatically disabled
432
+ * @defaultValue `false`
433
+ */
434
+ globalLight: fields.BooleanField;
435
+
436
+ /**
437
+ * Should fog exploration progress be tracked for this Scene?
438
+ * @defaultValue `null`
439
+ */
440
+ globalLightThreshold: fields.AlphaField<{ nullable: true; initial: null }>;
441
+
442
+ /**
443
+ * The timestamp at which fog of war was last reset for this Scene.
444
+ * @defaultValue `0`
445
+ */
446
+ darkness: fields.AlphaField<{ initial: 0 }>;
447
+
448
+ /**
449
+ * A special overlay image or video texture which is used for fog of war
450
+ * @defaultValue `null`
451
+ */
452
+ fogOverlay: fields.FilePathField<{ categories: ("IMAGE" | "VIDEO")[] }>;
453
+
454
+ /**
455
+ * A color tint applied to explored regions of fog of war
456
+ * @defaultValue `null`
457
+ */
458
+ fogExploredColor: fields.ColorField<{ label: "SCENES.FogExploredColor" }>;
459
+
460
+ /**
461
+ * A color tint applied to unexplored regions of fog of war
462
+ * @defaultValue `null`
463
+ */
464
+ fogUnexploredColor: fields.ColorField<{ label: "SCENES.FogUnexploredColor" }>;
465
+
466
+ /**
467
+ * A collection of embedded Drawing objects.
468
+ * @defaultValue `[]`
469
+ */
470
+ drawings: fields.EmbeddedCollectionField<typeof documents.BaseDrawing, Scene.Implementation>;
471
+
472
+ /**
473
+ * A collection of embedded Tile objects.
474
+ * @defaultValue `[]`
475
+ */
476
+ tokens: fields.EmbeddedCollectionField<typeof documents.BaseToken, Scene.Implementation>;
477
+
478
+ /**
479
+ * A collection of embedded Token objects.
480
+ * @defaultValue `[]`
481
+ */
482
+ lights: fields.EmbeddedCollectionField<typeof documents.BaseAmbientLight, Scene.Implementation>;
483
+
484
+ /**
485
+ * A collection of embedded AmbientLight objects.
486
+ * @defaultValue `[]`
487
+ */
488
+ notes: fields.EmbeddedCollectionField<typeof documents.BaseNote, Scene.Implementation>;
489
+
490
+ /**
491
+ * A collection of embedded Note objects.
492
+ * @defaultValue `[]`
493
+ */
494
+ sounds: fields.EmbeddedCollectionField<typeof documents.BaseAmbientSound, Scene.Implementation>;
495
+
496
+ /**
497
+ * A collection of embedded Region documents.
498
+ * @defaultValue `[]`
499
+ */
500
+ regions: fields.EmbeddedCollectionField<typeof documents.BaseRegion, Scene.Implementation>;
501
+
502
+ /**
503
+ * A collection of embedded AmbientSound objects.
504
+ * @defaultValue `[]`
505
+ */
506
+ templates: fields.EmbeddedCollectionField<typeof documents.BaseMeasuredTemplate, Scene.Implementation>;
507
+
508
+ /**
509
+ * A collection of embedded MeasuredTemplate objects.
510
+ * @defaultValue `[]`
511
+ */
512
+ tiles: fields.EmbeddedCollectionField<typeof documents.BaseTile, Scene.Implementation>;
513
+
514
+ /**
515
+ * A collection of embedded Wall objects
516
+ * @defaultValue `[]`
517
+ */
518
+ walls: fields.EmbeddedCollectionField<typeof documents.BaseWall, Scene.Implementation>;
519
+
520
+ /**
521
+ * A linked Playlist document which should begin automatically playing when this
522
+ * Scene becomes active.
523
+ * @defaultValue `null`
524
+ */
525
+ playlist: fields.ForeignDocumentField<typeof documents.BasePlaylist>;
526
+
527
+ /**
528
+ * A linked PlaylistSound document from the selected playlist that will
529
+ * begin automatically playing when this Scene becomes active
530
+ * @defaultValue `null`
531
+ */
532
+ playlistSound: fields.ForeignDocumentField<typeof documents.BasePlaylistSound, { idOnly: true }>;
533
+
534
+ /**
535
+ * A JournalEntry document which provides narrative details about this Scene
536
+ * @defaultValue `null`
537
+ */
538
+ journal: fields.ForeignDocumentField<typeof documents.BaseJournalEntry>;
539
+
540
+ /**
541
+ * A document ID for a JournalEntryPage which provides narrative details about this Scene
542
+ * @defaultValue `null`
543
+ */
544
+ journalEntryPage: fields.ForeignDocumentField<typeof documents.BaseJournalEntryPage, { idOnly: true }>;
545
+
546
+ /**
547
+ * A named weather effect which should be rendered in this Scene.
548
+ * @defaultValue `""`
549
+ */
550
+ weather: fields.StringField;
551
+
552
+ /**
553
+ * The _id of a Folder which contains this Actor
554
+ * @defaultValue `null`
555
+ */
556
+ folder: fields.ForeignDocumentField<typeof documents.BaseFolder>;
557
+
558
+ /**
559
+ * The numeric sort value which orders this Actor relative to its siblings
560
+ * @defaultValue `0`
561
+ */
562
+ sort: fields.IntegerSortField;
563
+
564
+ /**
565
+ * An object which configures ownership of this Scene
566
+ * @defaultValue see {@link fields.DocumentOwnershipField | `fields.DocumentOwnershipField`}
567
+ */
568
+ ownership: fields.DocumentOwnershipField;
569
+
570
+ /**
571
+ * An object of optional key/value flags
572
+ * @defaultValue `{}`
573
+ */
574
+ flags: fields.ObjectField.FlagsField<"Scene">;
575
+
576
+ /**
577
+ * An object of creation and access information
578
+ * @defaultValue see {@link fields.DocumentStatsField | `fields.DocumentStatsField`}
579
+ */
580
+ _stats: fields.DocumentStatsField;
581
+ }
582
+
583
+ namespace Database {
584
+ /** Options passed along in Get operations for Scenes */
585
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<Scene.Parent> {}
586
+
587
+ /** Options passed along in Create operations for Scenes */
588
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
589
+ extends foundry.abstract.types.DatabaseCreateOperation<Scene.CreateData, Scene.Parent, Temporary> {}
590
+
591
+ /** Options passed along in Delete operations for Scenes */
592
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<Scene.Parent> {}
593
+
594
+ /** Options passed along in Update operations for Scenes */
595
+ interface Update extends foundry.abstract.types.DatabaseUpdateOperation<Scene.UpdateData, Scene.Parent> {
596
+ thumb?: (string | null)[];
597
+ autoReposition?: boolean;
598
+ animateDarkness?: number;
599
+ }
600
+
601
+ /** Operation for {@link Scene.createDocuments | `Scene.createDocuments`} */
602
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
603
+ extends Document.Database.CreateOperation<Scene.Database.Create<Temporary>> {}
604
+
605
+ /** Operation for {@link Scene.updateDocuments | `Scene.updateDocuments`} */
606
+ interface UpdateDocumentsOperation extends Document.Database.UpdateDocumentsOperation<Scene.Database.Update> {}
607
+
608
+ /** Operation for {@link Scene.deleteDocuments | `Scene.deleteDocuments`} */
609
+ interface DeleteDocumentsOperation extends Document.Database.DeleteDocumentsOperation<Scene.Database.Delete> {}
610
+
611
+ /** Operation for {@link Scene.create | `Scene.create`} */
612
+ interface CreateOperation<Temporary extends boolean | undefined>
613
+ extends Document.Database.CreateOperation<Scene.Database.Create<Temporary>> {}
614
+
615
+ /** Operation for {@link Scene.update | `Scene#update`} */
616
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
617
+
618
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
619
+
620
+ /** Options for {@link Scene.get | `Scene.get`} */
621
+ interface GetOptions extends Document.Database.GetOptions {}
622
+
623
+ /** Options for {@link Scene._preCreate | `Scene#_preCreate`} */
624
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
625
+
626
+ /** Options for {@link Scene._onCreate | `Scene#_onCreate`} */
627
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
628
+
629
+ /** Operation for {@link Scene._preCreateOperation | `Scene._preCreateOperation`} */
630
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<Scene.Database.Create> {}
631
+
632
+ /** Operation for {@link Scene._onCreateOperation | `Scene#_onCreateOperation`} */
633
+ interface OnCreateOperation extends Scene.Database.Create {}
634
+
635
+ /** Options for {@link Scene._preUpdate | `Scene#_preUpdate`} */
636
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
637
+
638
+ /** Options for {@link Scene._onUpdate | `Scene#_onUpdate`} */
639
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
640
+
641
+ /** Operation for {@link Scene._preUpdateOperation | `Scene._preUpdateOperation`} */
642
+ interface PreUpdateOperation extends Scene.Database.Update {}
643
+
644
+ /** Operation for {@link Scene._onUpdateOperation | `Scene._preUpdateOperation`} */
645
+ interface OnUpdateOperation extends Scene.Database.Update {}
646
+
647
+ /** Options for {@link Scene._preDelete | `Scene#_preDelete`} */
648
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
649
+
650
+ /** Options for {@link Scene._onDelete | `Scene#_onDelete`} */
651
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
652
+
653
+ /** Options for {@link Scene._preDeleteOperation | `Scene#_preDeleteOperation`} */
654
+ interface PreDeleteOperation extends Scene.Database.Delete {}
655
+
656
+ /** Options for {@link Scene._onDeleteOperation | `Scene#_onDeleteOperation`} */
657
+ interface OnDeleteOperation extends Scene.Database.Delete {}
658
+
659
+ /** Context for {@link Scene._onDeleteOperation | `Scene._onDeleteOperation`} */
660
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<Scene.Parent> {}
661
+
662
+ /** Context for {@link Scene._onCreateDocuments | `Scene._onCreateDocuments`} */
663
+ interface OnCreateDocumentsContext extends Document.ModificationContext<Scene.Parent> {}
664
+
665
+ /** Context for {@link Scene._onUpdateDocuments | `Scene._onUpdateDocuments`} */
666
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<Scene.Parent> {}
667
+
668
+ /**
669
+ * Options for {@link Scene._preCreateDescendantDocuments | `Scene#_preCreateDescendantDocuments`}
670
+ * and {@link Scene._onCreateDescendantDocuments | `Scene#_onCreateDescendantDocuments`}
671
+ */
672
+ interface CreateOptions extends Document.Database.CreateOptions<Scene.Database.Create> {}
673
+
674
+ /**
675
+ * Options for {@link Scene._preUpdateDescendantDocuments | `Scene#_preUpdateDescendantDocuments`}
676
+ * and {@link Scene._onUpdateDescendantDocuments | `Scene#_onUpdateDescendantDocuments`}
677
+ */
678
+ interface UpdateOptions extends Document.Database.UpdateOptions<Scene.Database.Update> {}
679
+
680
+ /**
681
+ * Options for {@link Scene._preDeleteDescendantDocuments | `Scene#_preDeleteDescendantDocuments`}
682
+ * and {@link Scene._onDeleteDescendantDocuments | `Scene#_onDeleteDescendantDocuments`}
683
+ */
684
+ interface DeleteOptions extends Document.Database.DeleteOptions<Scene.Database.Delete> {}
685
+ }
686
+
687
+ /**
688
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
689
+ */
690
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
691
+
692
+ namespace Flags {
693
+ /**
694
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
695
+ */
696
+ type Scope = Document.FlagKeyOf<Flags>;
697
+
698
+ /**
699
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
700
+ */
701
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
702
+
703
+ /**
704
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
705
+ */
706
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
707
+ }
708
+
709
+ type PreCreateDescendantDocumentsArgs =
710
+ | Document.PreCreateDescendantDocumentsArgs<Scene.Stored, Scene.DirectDescendant, Scene.Metadata.Embedded>
711
+ | TokenDocument.PreCreateDescendantDocumentsArgs
712
+ | RegionDocument.PreCreateDescendantDocumentsArgs;
713
+
714
+ type OnCreateDescendantDocumentsArgs =
715
+ | Document.OnCreateDescendantDocumentsArgs<Scene.Stored, Scene.DirectDescendant, Scene.Metadata.Embedded>
716
+ | TokenDocument.OnCreateDescendantDocumentsArgs
717
+ | RegionDocument.OnCreateDescendantDocumentsArgs;
718
+
719
+ type PreUpdateDescendantDocumentsArgs =
720
+ | Document.PreUpdateDescendantDocumentsArgs<Scene.Stored, Scene.DirectDescendant, Scene.Metadata.Embedded>
721
+ | TokenDocument.PreUpdateDescendantDocumentsArgs
722
+ | RegionDocument.PreUpdateDescendantDocumentsArgs;
723
+
724
+ type OnUpdateDescendantDocumentsArgs =
725
+ | Document.OnUpdateDescendantDocumentsArgs<Scene.Stored, Scene.DirectDescendant, Scene.Metadata.Embedded>
726
+ | TokenDocument.OnUpdateDescendantDocumentsArgs
727
+ | RegionDocument.OnUpdateDescendantDocumentsArgs;
728
+
729
+ type PreDeleteDescendantDocumentsArgs =
730
+ | Document.PreDeleteDescendantDocumentsArgs<Scene.Stored, Scene.DirectDescendant, Scene.Metadata.Embedded>
731
+ | TokenDocument.PreDeleteDescendantDocumentsArgs
732
+ | RegionDocument.PreDeleteDescendantDocumentsArgs;
733
+
734
+ type OnDeleteDescendantDocumentsArgs =
735
+ | Document.OnDeleteDescendantDocumentsArgs<Scene.Stored, Scene.DirectDescendant, Scene.Metadata.Embedded>
736
+ | TokenDocument.OnDeleteDescendantDocumentsArgs
737
+ | RegionDocument.OnDeleteDescendantDocumentsArgs;
738
+
739
+ interface Dimensions {
740
+ /** The width of the canvas. */
741
+ width: number;
742
+
743
+ /** The height of the canvas. */
744
+ height: number;
745
+
746
+ /** The grid size. */
747
+ size: number;
748
+
749
+ /** The canvas rectangle. */
750
+ rect: Canvas.Rectangle;
751
+
752
+ /** The X coordinate of the scene rectangle within the larger canvas. */
753
+ sceneX: number;
754
+
755
+ /** The Y coordinate of the scene rectangle within the larger canvas. */
756
+ sceneY: number;
757
+
758
+ /** The width of the scene. */
759
+ sceneWidth: number;
760
+
761
+ /** The height of the scene. */
762
+ sceneHeight: number;
763
+
764
+ /** The scene rectangle. */
765
+ sceneRect: Canvas.Rectangle;
766
+
767
+ /** The number of distance units in a single grid space. */
768
+ distance: number;
769
+
770
+ /** The factor to convert distance units to pixels */
771
+ distancePixels: number;
772
+
773
+ /** The units of distance */
774
+ units: string;
775
+
776
+ /** The aspect ratio of the scene rectangle. */
777
+ ratio: number;
778
+
779
+ /** The length of the longest line that can be drawn on the canvas. */
780
+ maxR: number;
781
+
782
+ /** The number of grid rows on the canvas */
783
+ rows: number;
784
+
785
+ /** The number of grid columns on the canvas */
786
+ columns: number;
787
+ }
788
+
789
+ interface _ThumbnailCreationData extends ImageHelper.TextureToImageOptions {
790
+ /**
791
+ * A background image to use for thumbnail creation, otherwise the current scene
792
+ * background is used.
793
+ *
794
+ * @remarks This cannot be `null` because Foundry writes `const newImage = img !== undefined;`.
795
+ */
796
+ img: string;
797
+
798
+ /**
799
+ * The desired thumbnail width. Default is 300px
800
+ * @defaultValue `300`
801
+ */
802
+ width: number | null;
803
+
804
+ /**
805
+ * The desired thumbnail height. Default is 100px;
806
+ * @defaultValue `100`
807
+ */
808
+ height: number | null;
809
+
810
+ /**
811
+ * Which image format should be used? image/png, image/jpeg, or image/webp
812
+ * @defaultValue `"image/webp"`
813
+ *
814
+ * @remarks Foundry writes `image/jpg` but this functions the same as `image/png `.
815
+ * The correct MIME type is `image/jpeg`.
816
+ */
817
+ format: ImageHelper.Format | null;
818
+
819
+ /**
820
+ * What compression quality should be used for jpeg or webp, between 0 and 1
821
+ * @defaultValue `0.8`
822
+ */
823
+ quality: number | null;
824
+ }
825
+
826
+ interface ThumbnailCreationData extends InexactPartial<_ThumbnailCreationData> {}
827
+
828
+ /**
829
+ * @deprecated {@link Scene.Database | `Scene.DatabaseOperation`}
830
+ */
831
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
832
+ interface DatabaseOperations extends Document.Database.Operations<Scene.Implementation> {}
833
+
834
+ /**
835
+ * @deprecated {@link Scene.CreateData | `Scene.CreateData`}
836
+ */
837
+ interface ConstructorData extends Scene.CreateData {}
838
+
839
+ /**
840
+ * @deprecated {@link Scene.implementation | `Scene.ImplementationClass`}
841
+ */
842
+ type ConfiguredClass = ImplementationClass;
843
+
844
+ /**
845
+ * @deprecated {@link Scene.Implementation | `Scene.Implementation`}
846
+ */
847
+ type ConfiguredInstance = Implementation;
27
848
  }
28
849
 
29
850
  /**
30
851
  * The client-side Scene document which extends the common BaseScene model.
31
852
  *
32
- * @see {@link Scenes} The world-level collection of Scene documents
33
- * @see {@link SceneConfig} The Scene configuration application
853
+ * @see {@link Scenes | `Scenes`} The world-level collection of Scene documents
854
+ * @see {@link SceneConfig | `SceneConfig`} The Scene configuration application
34
855
  *
35
856
  */
36
857
  class Scene extends ClientDocumentMixin(foundry.documents.BaseScene) {
37
- static override metadata: Scene.Metadata;
38
-
39
- static get implementation(): Scene.ConfiguredClass;
858
+ /**
859
+ * @param data - Initial data from which to construct the `Scene`
860
+ * @param context - Construction context options
861
+ */
862
+ constructor(...args: Scene.ConstructorArgs);
40
863
 
41
864
  /**
42
865
  * Track the viewed position of each scene (while in memory only, not persisted)
@@ -88,22 +911,8 @@ declare global {
88
911
  * @param options - (default: `{}`)
89
912
  */
90
913
  override clone<Save extends boolean = false>(
91
- createData?: foundry.documents.BaseScene.ConstructorData,
92
- context?: InexactPartial<
93
- {
94
- /**
95
- * Save the clone to the World database?
96
- * @defaultValue `false`
97
- */
98
- save: Save;
99
-
100
- /**
101
- * Keep the same ID of the original document
102
- * @defaultValue `false`
103
- */
104
- keepId: boolean;
105
- } & Document.ConstructionContext<this["parent"]>
106
- >,
914
+ createData?: Scene.CreateData,
915
+ context?: Document.CloneContext<Save> & InexactPartial<Document.ConstructionContext<Scene.Parent>>,
107
916
  ): Save extends true ? Promise<this> : this;
108
917
 
109
918
  override reset(): void;
@@ -115,7 +924,7 @@ declare global {
115
924
  * Apply padding to enlarge the playable space and round to the nearest 2x grid size to ensure symmetry.
116
925
  * The rounding accomplishes that the padding buffer around the map always contains whole grid spaces.
117
926
  */
118
- getDimensions(): SceneDimensions;
927
+ getDimensions(): Scene.Dimensions;
119
928
 
120
929
  override _onClickDocumentLink(event: MouseEvent): unknown;
121
930
 
@@ -127,9 +936,7 @@ declare global {
127
936
  /**
128
937
  * Handle repositioning of placed objects when the Scene dimensions change
129
938
  */
130
- protected _repositionObject(
131
- sceneUpdateData: foundry.documents.BaseScene.ConstructorData,
132
- ): foundry.documents.BaseScene.ConstructorData;
939
+ protected _repositionObject(sceneUpdateData: Scene.CreateData): Scene.CreateData;
133
940
 
134
941
  /**
135
942
  * Handle Scene activation workflow if the active state is changed to true
@@ -138,127 +945,157 @@ declare global {
138
945
  protected _onActivate(active: boolean): ReturnType<this["view"]> | ReturnType<Canvas["draw"]>;
139
946
 
140
947
  /**
141
- * @privateRemarks _preCreateDescendantDocuments, _preUpdateDescendantDocuments, _preDeleteDescendantDocuments, and_onUpdateDescendantDocuments are all overridden but with no signature changes.
142
- * For type simplicity they are left off. These methods historically have been the source of a large amount of computation from tsc.
948
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
949
+ * this method must be overriden like so:
950
+ * ```typescript
951
+ * class SwadeScene extends Scene {
952
+ * protected override _preCreateDescendantDocuments(...args: Scene.PreCreateDescendantDocumentsArgs) {
953
+ * super._preCreateDescendantDocuments(...args);
954
+ *
955
+ * const [parent, collection, data, options, userId] = args;
956
+ * if (collection === "tokens") {
957
+ * options; // Will be narrowed.
958
+ * }
959
+ * }
960
+ * }
961
+ * ```
962
+ */
963
+ protected override _preCreateDescendantDocuments(...args: Scene.PreCreateDescendantDocumentsArgs): void;
964
+
965
+ /**
966
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
967
+ * this method must be overriden like so:
968
+ * ```typescript
969
+ * class LancerScene extends Scene {
970
+ * protected override _preUpdateDescendantDocuments(...args: Scene.OnUpdateDescendantDocuments) {
971
+ * super._preUpdateDescendantDocuments(...args);
972
+ *
973
+ * const [parent, collection, changes, options, userId] = args;
974
+ * if (collection === "tokens") {
975
+ * options; // Will be narrowed.
976
+ * }
977
+ * }
978
+ * }
979
+ * ```
143
980
  */
981
+ protected override _preUpdateDescendantDocuments(...args: Scene.PreUpdateDescendantDocumentsArgs): void;
144
982
 
145
- override toCompendium<
146
- FlagsOpt extends boolean = false,
147
- SourceOpt extends boolean = true,
148
- SortOpt extends boolean = true,
149
- FolderOpt extends boolean = false,
150
- OwnershipOpt extends boolean = false,
151
- StateOpt extends boolean = true,
152
- IdOpt extends boolean = false,
153
- >(
983
+ /**
984
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
985
+ * this method must be overriden like so:
986
+ * ```typescript
987
+ * class Ptr2eScene extends Scene {
988
+ * protected override _onUpdateDescendantDocuments(...args: Scene.OnUpdateDescendantDocumentsArgs) {
989
+ * super._onUpdateDescendantDocuments(...args);
990
+ *
991
+ * const [parent, collection, documents, changes, options, userId] = args;
992
+ * if (collection === "tokens") {
993
+ * options; // Will be narrowed.
994
+ * }
995
+ * }
996
+ * }
997
+ * ```
998
+ */
999
+ protected override _onUpdateDescendantDocuments(...args: Scene.OnUpdateDescendantDocumentsArgs): void;
1000
+
1001
+ /**
1002
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
1003
+ * this method must be overriden like so:
1004
+ * ```typescript
1005
+ * class KultScene extends Scene {
1006
+ * protected override _preDeleteDescendantDocuments(...args: Scene.PreDeleteDescendantDocumentsArgs) {
1007
+ * super._preDeleteDescendantDocuments(...args);
1008
+ *
1009
+ * const [parent, collection, ids, options, userId] = args;
1010
+ * if (collection === "tokens") {
1011
+ * options; // Will be narrowed.
1012
+ * }
1013
+ * }
1014
+ * }
1015
+ * ```
1016
+ */
1017
+ protected override _preDeleteDescendantDocuments(...args: Scene.PreDeleteDescendantDocumentsArgs): void;
1018
+
1019
+ toCompendium<Options extends ClientDocument.ToCompendiumOptions>(
154
1020
  pack?: CompendiumCollection<CompendiumCollection.Metadata> | null,
155
- options?: InexactPartial<
156
- ClientDocument.CompendiumExportOptions<FlagsOpt, SourceOpt, SortOpt, FolderOpt, OwnershipOpt, StateOpt, IdOpt>
157
- >,
158
- ): Omit<
159
- this["_source"],
160
- | (IdOpt extends false ? "_id" : never)
161
- | ClientDocument.OmitProperty<SortOpt, "sort" | "navigation" | "navOrder">
162
- | ClientDocument.OmitProperty<FolderOpt, "folder">
163
- | ClientDocument.OmitProperty<FlagsOpt, "flags">
164
- | ClientDocument.OmitProperty<OwnershipOpt, "ownership">
165
- | ClientDocument.OmitProperty<StateOpt, "active" | "fogReset" | "playing">
166
- >;
1021
+ options?: Options,
1022
+ ): ClientDocument.ToCompendiumReturnType<foundry.documents.BaseScene, Options>;
167
1023
 
168
1024
  /**
169
1025
  * Create a 300px by 100px thumbnail image for this scene background
170
1026
  * @param data - (default: `{}`)
171
1027
  * @returns The created thumbnail data.
172
1028
  */
173
- createThumbnail(data?: ThumbnailCreationData): ReturnType<typeof ImageHelper.createThumbnail>;
174
- }
1029
+ createThumbnail(data?: Scene.ThumbnailCreationData): Promise<ImageHelper.ThumbnailReturn>;
175
1030
 
176
- interface SceneDimensions {
177
- /** The width of the canvas. */
178
- width: number;
179
-
180
- /** The height of the canvas. */
181
- height: number;
182
-
183
- /** The grid size. */
184
- size: number;
185
-
186
- /** The canvas rectangle. */
187
- rect: Canvas.Rectangle;
188
-
189
- /** The X coordinate of the scene rectangle within the larger canvas. */
190
- sceneX: number;
191
-
192
- /** The Y coordinate of the scene rectangle within the larger canvas. */
193
- sceneY: number;
194
-
195
- /** The width of the scene. */
196
- sceneWidth: number;
197
-
198
- /** The height of the scene. */
199
- sceneHeight: number;
1031
+ /*
1032
+ * After this point these are not really overridden methods.
1033
+ * They are here because Foundry's documents are complex and have lots of edge cases.
1034
+ * There are DRY ways of representing this but this ends up being harder to understand
1035
+ * for end users extending these functions, especially for static methods. There are also a
1036
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
1037
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
1038
+ * separate like this helps against circularities.
1039
+ */
200
1040
 
201
- /** The scene rectangle. */
202
- sceneRect: Canvas.Rectangle;
1041
+ // ClientDocument overrides
203
1042
 
204
- /** The number of distance units in a single grid space. */
205
- distance: number;
1043
+ // Other Descendant Document operations are actually overridden above
206
1044
 
207
- /** The factor to convert distance units to pixels */
208
- distancePixels: number;
1045
+ /**
1046
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
1047
+ * this method must be overriden like so:
1048
+ * ```typescript
1049
+ * class GurpsScene extends Scene {
1050
+ * protected override _onCreateDescendantDocuments(...args: Scene.OnCreateDescendantDocumentsArgs) {
1051
+ * super._onCreateDescendantDocuments(...args);
1052
+ *
1053
+ * const [parent, collection, documents, data, options, userId] = args;
1054
+ * if (collection === "tokens") {
1055
+ * options; // Will be narrowed.
1056
+ * }
1057
+ * }
1058
+ * }
1059
+ * ```
1060
+ */
1061
+ protected override _onCreateDescendantDocuments(...args: Scene.OnCreateDescendantDocumentsArgs): void;
209
1062
 
210
- /** The units of distance */
211
- units: string;
1063
+ /**
1064
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
1065
+ * this method must be overriden like so:
1066
+ * ```typescript
1067
+ * class BladesScene extends Scene {
1068
+ * protected override _onDeleteDescendantDocuments(...args: Scene.OnUpdateDescendantDocuments) {
1069
+ * super._onDeleteDescendantDocuments(...args);
1070
+ *
1071
+ * const [parent, collection, documents, ids, options, userId] = args;
1072
+ * if (collection === "tokens") {
1073
+ * options; // Will be narrowed.
1074
+ * }
1075
+ * }
1076
+ * }
1077
+ * ```
1078
+ */
1079
+ protected override _onDeleteDescendantDocuments(...args: Scene.OnDeleteDescendantDocumentsArgs): void;
212
1080
 
213
- /** The aspect ratio of the scene rectangle. */
214
- ratio: number;
1081
+ static override defaultName(context?: Document.DefaultNameContext<string, Scene.Parent>): string;
215
1082
 
216
- /** The length of the longest line that can be drawn on the canvas. */
217
- maxR: number;
1083
+ static override createDialog(
1084
+ data?: Document.CreateDialogData<Scene.CreateData>,
1085
+ context?: Document.CreateDialogContext<string, Scene.Parent>,
1086
+ ): Promise<Scene.Stored | null | undefined>;
218
1087
 
219
- /** The number of grid rows on the canvas */
220
- rows: number;
1088
+ static override fromDropData(
1089
+ data: Document.DropData<Scene.Implementation>,
1090
+ options?: Document.FromDropDataOptions,
1091
+ ): Promise<Scene.Implementation | undefined>;
221
1092
 
222
- /** The number of grid columns on the canvas */
223
- columns: number;
1093
+ static override fromImport(
1094
+ source: Scene.Source,
1095
+ context?: Document.FromImportContext<Scene.Parent>,
1096
+ ): Promise<Scene.Implementation>;
224
1097
  }
225
- }
226
-
227
- interface _ThumbnailCreationData extends ImageHelper.TextureToImageOptions {
228
- /**
229
- * A background image to use for thumbnail creation, otherwise the current scene
230
- * background is used.
231
- *
232
- * @remarks This cannot be `null` because Foundry writes `const newImage = img !== undefined;`.
233
- */
234
- img: string;
235
-
236
- /**
237
- * The desired thumbnail width. Default is 300px
238
- * @defaultValue `300`
239
- */
240
- width: number | null;
241
-
242
- /**
243
- * The desired thumbnail height. Default is 100px;
244
- * @defaultValue `100`
245
- */
246
- height: number | null;
247
1098
 
248
- /**
249
- * Which image format should be used? image/png, image/jpeg, or image/webp
250
- * @defaultValue `"image/webp"`
251
- *
252
- * @remarks Foundry writes `image/jpg` but this functions the same as `image/png `.
253
- * The correct MIME type is `image/jpeg`.
254
- */
255
- format: ImageHelper.Format | null;
256
-
257
- /**
258
- * What compression quality should be used for jpeg or webp, between 0 and 1
259
- * @defaultValue `0.8`
260
- */
261
- quality: number | null;
1099
+ /** @deprecated {@link Scene.Dimensions | `Scene.Dimensions`} */
1100
+ type SceneDimensions = Scene.Dimensions;
262
1101
  }
263
-
264
- interface ThumbnailCreationData extends InexactPartial<_ThumbnailCreationData> {}