@league-of-foundry-developers/foundry-vtt-types 12.331.2-beta → 13.340.0

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 (695) hide show
  1. package/README.md +13 -17
  2. package/package.json +84 -41
  3. package/src/configuration/configuration.d.mts +315 -0
  4. package/src/configuration/globals.d.mts +349 -0
  5. package/src/configuration/index.d.mts +4 -0
  6. package/src/foundry/client/apps/app.d.mts +10 -5
  7. package/src/foundry/client/apps/av/av-config.d.mts +2 -2
  8. package/src/foundry/client/apps/av/cameras.d.mts +7 -2
  9. package/src/foundry/client/apps/dice/dice-config.d.mts +45 -0
  10. package/src/foundry/client/apps/dice/index.d.mts +1 -0
  11. package/src/foundry/client/apps/form.d.mts +13 -4
  12. package/src/foundry/client/apps/forms/actor.d.mts +4 -4
  13. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +1 -1
  14. package/src/foundry/client/apps/forms/adventure-importer.d.mts +1 -1
  15. package/src/foundry/client/apps/forms/base-sheet.d.mts +7 -6
  16. package/src/foundry/client/apps/forms/card-config.d.mts +8 -8
  17. package/src/foundry/client/apps/forms/cards-config.d.mts +5 -4
  18. package/src/foundry/client/apps/forms/combat-config.d.mts +1 -1
  19. package/src/foundry/client/apps/forms/combatant-config.d.mts +1 -1
  20. package/src/foundry/client/apps/forms/effect-config.d.mts +1 -1
  21. package/src/foundry/client/apps/forms/folder-config.d.mts +1 -1
  22. package/src/foundry/client/apps/forms/fonts.d.mts +1 -1
  23. package/src/foundry/client/apps/forms/grid-config.d.mts +3 -8
  24. package/src/foundry/client/apps/forms/image-popout.d.mts +1 -1
  25. package/src/foundry/client/apps/forms/item.d.mts +8 -8
  26. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +1 -1
  27. package/src/foundry/client/apps/forms/journal-sheet.d.mts +4 -3
  28. package/src/foundry/client/apps/forms/macro-config.d.mts +2 -2
  29. package/src/foundry/client/apps/forms/measure-template.d.mts +8 -10
  30. package/src/foundry/client/apps/forms/ownership.d.mts +1 -1
  31. package/src/foundry/client/apps/forms/playlist-config.d.mts +1 -1
  32. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +1 -1
  33. package/src/foundry/client/apps/forms/roll-table-config.d.mts +5 -3
  34. package/src/foundry/client/apps/forms/scene-config.d.mts +5 -6
  35. package/src/foundry/client/apps/forms/sheet-config.d.mts +6 -18
  36. package/src/foundry/client/apps/forms/user-config.d.mts +6 -5
  37. package/src/foundry/client/apps/hud/chatbubble.d.mts +7 -0
  38. package/src/foundry/client/apps/hud/container.d.mts +1 -1
  39. package/src/foundry/client/apps/hud/controls.d.mts +6 -1
  40. package/src/foundry/client/apps/hud/hotbar.d.mts +9 -4
  41. package/src/foundry/client/apps/hud/hud.d.mts +1 -1
  42. package/src/foundry/client/apps/hud/menu.d.mts +8 -1
  43. package/src/foundry/client/apps/hud/navigation.d.mts +8 -3
  44. package/src/foundry/client/apps/hud/pause.d.mts +7 -2
  45. package/src/foundry/client/apps/hud/players.d.mts +8 -3
  46. package/src/foundry/client/apps/i18n.d.mts +16 -13
  47. package/src/foundry/client/apps/index.d.mts +1 -0
  48. package/src/foundry/client/apps/placeables/drawing-config.d.mts +1 -1
  49. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +1 -1
  50. package/src/foundry/client/apps/placeables/light-config.d.mts +4 -4
  51. package/src/foundry/client/apps/placeables/note-config.d.mts +3 -3
  52. package/src/foundry/client/apps/placeables/sound-config.d.mts +4 -3
  53. package/src/foundry/client/apps/placeables/tile-config.d.mts +2 -2
  54. package/src/foundry/client/apps/placeables/tile-hud.d.mts +7 -2
  55. package/src/foundry/client/apps/placeables/token-config.d.mts +16 -4
  56. package/src/foundry/client/apps/placeables/token-hud.d.mts +7 -2
  57. package/src/foundry/client/apps/placeables/wall-config.d.mts +4 -3
  58. package/src/foundry/client/apps/sidebar/apps/client-settings.d.mts +1 -1
  59. package/src/foundry/client/apps/sidebar/apps/compendium.d.mts +6 -7
  60. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +2 -1
  61. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +1 -1
  62. package/src/foundry/client/apps/sidebar/apps/permission-config.d.mts +1 -1
  63. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +1 -1
  64. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +1 -1
  65. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +1 -1
  66. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +12 -5
  67. package/src/foundry/client/apps/sidebar/document-directory.d.mts +12 -5
  68. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +1 -1
  69. package/src/foundry/client/apps/sidebar/sidebar.d.mts +7 -2
  70. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +10 -1
  71. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +10 -1
  72. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +8 -1
  73. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +10 -1
  74. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +15 -9
  75. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +10 -1
  76. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +10 -1
  77. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +9 -0
  78. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +16 -8
  79. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +10 -1
  80. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +11 -2
  81. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +19 -1
  82. package/src/foundry/client/apps/templates.d.mts +5 -1
  83. package/src/foundry/client/av/client.d.mts +1 -1
  84. package/src/foundry/client/av/clients/simplepeer.d.mts +11 -1
  85. package/src/foundry/client/av/master.d.mts +2 -2
  86. package/src/foundry/client/av/settings.d.mts +1 -2
  87. package/src/foundry/client/config.d.mts +201 -198
  88. package/src/foundry/client/core/hooks.d.mts +2 -2
  89. package/src/foundry/client/core/image.d.mts +81 -33
  90. package/src/foundry/client/core/keybindings.d.mts +2 -2
  91. package/src/foundry/client/core/packages.d.mts +9 -2
  92. package/src/foundry/client/core/settings.d.mts +34 -31
  93. package/src/foundry/client/core/socket.d.mts +1 -1
  94. package/src/foundry/client/core/sorting.d.mts +1 -1
  95. package/src/foundry/client/core/tooltip.d.mts +1 -1
  96. package/src/foundry/client/core/tour.d.mts +1 -1
  97. package/src/foundry/client/core/utils.d.mts +33 -10
  98. package/src/foundry/client/core/video.d.mts +1 -1
  99. package/src/foundry/client/core/workers.d.mts +1 -1
  100. package/src/foundry/client/data/abstract/canvas-document.d.mts +25 -15
  101. package/src/foundry/client/data/abstract/client-document.d.mts +48 -39
  102. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +19 -13
  103. package/src/foundry/client/data/abstract/document-collection.d.mts +8 -8
  104. package/src/foundry/client/data/abstract/world-collection.d.mts +3 -5
  105. package/src/foundry/client/data/collections/actors.d.mts +10 -1
  106. package/src/foundry/client/data/collections/cards.d.mts +9 -0
  107. package/src/foundry/client/data/collections/combats.d.mts +10 -1
  108. package/src/foundry/client/data/collections/compendium-collection.d.mts +8 -37
  109. package/src/foundry/client/data/collections/compendium-packs.d.mts +2 -2
  110. package/src/foundry/client/data/collections/fog.d.mts +9 -0
  111. package/src/foundry/client/data/collections/folder.d.mts +9 -0
  112. package/src/foundry/client/data/collections/items.d.mts +9 -0
  113. package/src/foundry/client/data/collections/journal.d.mts +10 -1
  114. package/src/foundry/client/data/collections/macros.d.mts +10 -1
  115. package/src/foundry/client/data/collections/messages.d.mts +9 -0
  116. package/src/foundry/client/data/collections/playlists.d.mts +10 -1
  117. package/src/foundry/client/data/collections/scenes.d.mts +10 -1
  118. package/src/foundry/client/data/collections/settings.d.mts +9 -0
  119. package/src/foundry/client/data/collections/tables.d.mts +10 -1
  120. package/src/foundry/client/data/collections/users.d.mts +10 -1
  121. package/src/foundry/client/data/documents/active-effect.d.mts +43 -14
  122. package/src/foundry/client/data/documents/actor-delta.d.mts +4 -4
  123. package/src/foundry/client/data/documents/actor.d.mts +7 -4
  124. package/src/foundry/client/data/documents/adventure.d.mts +9 -8
  125. package/src/foundry/client/data/documents/ambient-light.d.mts +3 -2
  126. package/src/foundry/client/data/documents/ambient-sound.d.mts +3 -2
  127. package/src/foundry/client/data/documents/card.d.mts +4 -3
  128. package/src/foundry/client/data/documents/cards.d.mts +15 -20
  129. package/src/foundry/client/data/documents/chat-message.d.mts +4 -3
  130. package/src/foundry/client/data/documents/combat.d.mts +5 -4
  131. package/src/foundry/client/data/documents/combatant.d.mts +5 -4
  132. package/src/foundry/client/data/documents/drawing.d.mts +3 -2
  133. package/src/foundry/client/data/documents/fog-exploration.d.mts +13 -3
  134. package/src/foundry/client/data/documents/folder.d.mts +27 -9
  135. package/src/foundry/client/data/documents/index.d.mts +2 -0
  136. package/src/foundry/client/data/documents/item.d.mts +6 -2
  137. package/src/foundry/client/data/documents/journal-entry-page.d.mts +5 -4
  138. package/src/foundry/client/data/documents/journal-entry.d.mts +5 -4
  139. package/src/foundry/client/data/documents/macro.d.mts +5 -6
  140. package/src/foundry/client/data/documents/measured-template.d.mts +3 -2
  141. package/src/foundry/client/data/documents/note.d.mts +3 -2
  142. package/src/foundry/client/data/documents/playlist-sound.d.mts +4 -3
  143. package/src/foundry/client/data/documents/playlist.d.mts +13 -13
  144. package/src/foundry/client/data/documents/region-behavior.d.mts +78 -0
  145. package/src/foundry/client/data/documents/region.d.mts +160 -0
  146. package/src/foundry/client/data/documents/scene.d.mts +18 -10
  147. package/src/foundry/client/data/documents/setting.d.mts +3 -2
  148. package/src/foundry/client/data/documents/table-result.d.mts +3 -2
  149. package/src/foundry/client/data/documents/table.d.mts +5 -4
  150. package/src/foundry/client/data/documents/tile.d.mts +3 -2
  151. package/src/foundry/client/data/documents/token.d.mts +7 -16
  152. package/src/foundry/client/data/documents/user.d.mts +5 -4
  153. package/src/foundry/client/data/documents/wall.d.mts +3 -2
  154. package/src/foundry/client/game.d.mts +28 -21
  155. package/src/foundry/client/head.d.mts +12 -7
  156. package/src/foundry/client/hooks.d.mts +60 -41
  157. package/src/foundry/client/pixi/board.d.mts +21 -20
  158. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +95 -24
  159. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +36 -18
  160. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +7 -10
  161. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +24 -14
  162. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +15 -5
  163. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +107 -50
  164. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +66 -23
  165. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +20 -2
  166. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +158 -99
  167. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +61 -22
  168. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +119 -52
  169. package/src/foundry/client/pixi/core/interaction/ping.d.mts +51 -28
  170. package/src/foundry/client/pixi/core/interaction/pings/chevron.d.mts +16 -8
  171. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +84 -33
  172. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +16 -7
  173. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +35 -5
  174. package/src/foundry/client/pixi/core/interaction/targets.d.mts +19 -16
  175. package/src/foundry/client/pixi/core/loader.d.mts +85 -75
  176. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +36 -16
  177. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +92 -64
  178. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +28 -10
  179. package/src/foundry/client/pixi/core/shapes/ray.d.mts +27 -9
  180. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +162 -72
  181. package/src/foundry/client/pixi/extensions/circle.d.mts +133 -122
  182. package/src/foundry/client/pixi/extensions/graphics.d.mts +3 -1
  183. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +10 -2
  184. package/src/foundry/client/pixi/extensions/polygon.d.mts +155 -134
  185. package/src/foundry/client/pixi/extensions/rectangle.d.mts +266 -240
  186. package/src/foundry/client/pixi/groups/effects.d.mts +75 -24
  187. package/src/foundry/client/pixi/groups/environment.d.mts +68 -19
  188. package/src/foundry/client/pixi/groups/hidden.d.mts +27 -11
  189. package/src/foundry/client/pixi/groups/interface.d.mts +62 -38
  190. package/src/foundry/client/pixi/groups/overlay.d.mts +18 -6
  191. package/src/foundry/client/pixi/groups/primary.d.mts +64 -42
  192. package/src/foundry/client/pixi/groups/rendered.d.mts +18 -6
  193. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +9 -13
  194. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +18 -17
  195. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +86 -98
  196. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +1 -1
  197. package/src/foundry/client/pixi/layers/controls/door.d.mts +9 -0
  198. package/src/foundry/client/pixi/layers/controls/layer.d.mts +10 -8
  199. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +1 -1
  200. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +6 -8
  201. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +4 -7
  202. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +3 -6
  203. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +4 -7
  204. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +11 -8
  205. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +1 -1
  206. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +5 -8
  207. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +1 -1
  208. package/src/foundry/client/pixi/layers/grid/layer.d.mts +6 -8
  209. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +1 -1
  210. package/src/foundry/client/pixi/layers/masks/depth.d.mts +11 -6
  211. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +18 -11
  212. package/src/foundry/client/pixi/layers/masks/vision.d.mts +100 -14
  213. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +3 -6
  214. package/src/foundry/client/pixi/layers/placeables/index.d.mts +1 -0
  215. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +4 -7
  216. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +4 -6
  217. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +100 -0
  218. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +4 -8
  219. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +3 -6
  220. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +3 -5
  221. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +6 -10
  222. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +9 -11
  223. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +53 -24
  224. package/src/foundry/client/pixi/perception/detection-mode.d.mts +4 -2
  225. package/src/foundry/client/pixi/perception/fog.d.mts +9 -0
  226. package/src/foundry/client/pixi/perception/perception-manager.d.mts +1 -1
  227. package/src/foundry/client/pixi/perception/vision-mode.d.mts +31 -13
  228. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +77 -39
  229. package/src/foundry/client/pixi/placeable.d.mts +15 -7
  230. package/src/foundry/client/pixi/placeables/drawing.d.mts +10 -9
  231. package/src/foundry/client/pixi/placeables/index.d.mts +1 -0
  232. package/src/foundry/client/pixi/placeables/light.d.mts +8 -6
  233. package/src/foundry/client/pixi/placeables/note.d.mts +8 -7
  234. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +29 -8
  235. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +41 -11
  236. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +59 -18
  237. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +120 -37
  238. package/src/foundry/client/pixi/placeables/region.d.mts +177 -0
  239. package/src/foundry/client/pixi/placeables/sound.d.mts +7 -6
  240. package/src/foundry/client/pixi/placeables/template.d.mts +12 -11
  241. package/src/foundry/client/pixi/placeables/tile.d.mts +12 -10
  242. package/src/foundry/client/pixi/placeables/token.d.mts +149 -19
  243. package/src/foundry/client/pixi/placeables/wall.d.mts +11 -9
  244. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +50 -33
  245. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +9 -8
  246. package/src/foundry/client/pixi/webgl/helpers/{framebugger-snapshot.d.mts → framebuffer-snapshot.d.mts} +9 -8
  247. package/src/foundry/client/pixi/webgl/helpers/index.d.mts +1 -1
  248. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +30 -23
  249. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +82 -53
  250. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +10 -10
  251. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +45 -28
  252. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +11 -10
  253. package/src/foundry/client/pixi/webgl/shaders/filters/base-mask-filter.d.mts +11 -9
  254. package/src/foundry/client/pixi/webgl/shaders/filters/blur.d.mts +21 -19
  255. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +33 -32
  256. package/src/foundry/client/pixi/webgl/shaders/filters/environment.d.mts +9 -8
  257. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +11 -10
  258. package/src/foundry/client/pixi/webgl/shaders/filters/invisibility.d.mts +9 -8
  259. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +11 -10
  260. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +65 -58
  261. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +20 -16
  262. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +13 -10
  263. package/src/foundry/client/pixi/webgl/shaders/filters/void.d.mts +9 -8
  264. package/src/foundry/client/pixi/webgl/shaders/filters/weather-occlusion-masks.d.mts +9 -8
  265. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +20 -14
  266. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +11 -10
  267. package/src/foundry/client/pixi/webgl/shaders/lighting/background-lighting.d.mts +9 -8
  268. package/src/foundry/client/pixi/webgl/shaders/lighting/base-lighting.d.mts +32 -32
  269. package/src/foundry/client/pixi/webgl/shaders/lighting/coloration-lighting.d.mts +9 -8
  270. package/src/foundry/client/pixi/webgl/shaders/lighting/darkness-lighting.d.mts +9 -8
  271. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/bewitching-wave.d.mts +18 -16
  272. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/black-hole.d.mts +9 -8
  273. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/chroma.d.mts +9 -8
  274. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/emanation.d.mts +9 -8
  275. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/energy-field.d.mts +9 -8
  276. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +18 -16
  277. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/flame.d.mts +18 -16
  278. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fog.d.mts +9 -8
  279. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/force-grid.d.mts +9 -7
  280. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/ghost-light.d.mts +18 -16
  281. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/hexa-dome.d.mts +9 -8
  282. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/light-dome.d.mts +9 -8
  283. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/magical-gloom.d.mts +9 -8
  284. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/pulse.d.mts +18 -16
  285. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/radial-rainbow.d.mts +9 -8
  286. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/revolving-light.d.mts +9 -8
  287. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/roiling-mass.d.mts +9 -8
  288. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/siren-light.d.mts +18 -16
  289. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/smoke-patch.d.mts +19 -17
  290. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/star-light.d.mts +9 -8
  291. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/sunburst.d.mts +18 -16
  292. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/swirling-rainbow.d.mts +9 -9
  293. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/torch.d.mts +18 -16
  294. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/vortex.d.mts +18 -16
  295. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/wave.d.mts +18 -16
  296. package/src/foundry/client/pixi/webgl/shaders/lighting/illumination-lighting.d.mts +9 -8
  297. package/src/foundry/client/pixi/webgl/shaders/region/adjust-darkness-level.d.mts +70 -28
  298. package/src/foundry/client/pixi/webgl/shaders/region/base.d.mts +52 -8
  299. package/src/foundry/client/pixi/webgl/shaders/region/highlight.d.mts +68 -8
  300. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +23 -24
  301. package/src/foundry/client/pixi/webgl/shaders/samplers/baseline-illumination.d.mts +9 -8
  302. package/src/foundry/client/pixi/webgl/shaders/samplers/color-adjustment.d.mts +37 -28
  303. package/src/foundry/client/pixi/webgl/shaders/samplers/depth.d.mts +20 -16
  304. package/src/foundry/client/pixi/webgl/shaders/samplers/fog-of-war.d.mts +9 -8
  305. package/src/foundry/client/pixi/webgl/shaders/samplers/occlusion.d.mts +19 -17
  306. package/src/foundry/client/pixi/webgl/shaders/samplers/primary.d.mts +9 -0
  307. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +29 -1
  308. package/src/foundry/client/pixi/webgl/shaders/vision/background-vision.d.mts +9 -8
  309. package/src/foundry/client/pixi/webgl/shaders/vision/base-vision.d.mts +10 -8
  310. package/src/foundry/client/pixi/webgl/shaders/vision/coloration-vision.d.mts +9 -8
  311. package/src/foundry/client/pixi/webgl/shaders/vision/effects/amplification.d.mts +9 -8
  312. package/src/foundry/client/pixi/webgl/shaders/vision/effects/wave.d.mts +18 -16
  313. package/src/foundry/client/pixi/webgl/shaders/vision/illumination-vision.d.mts +9 -8
  314. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +37 -32
  315. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +15 -14
  316. package/src/foundry/client/pixi/webgl/shaders/weather/fog.d.mts +16 -15
  317. package/src/foundry/client/pixi/webgl/shaders/weather/rain.d.mts +18 -17
  318. package/src/foundry/client/pixi/webgl/shaders/weather/snow.d.mts +14 -13
  319. package/src/foundry/client/pixi/workers/texture-worker.d.mts +33 -53
  320. package/src/foundry/client/ui/dialog.d.mts +136 -125
  321. package/src/foundry/client/ui/drag.d.mts +1 -1
  322. package/src/foundry/client/ui/dragdrop.d.mts +1 -1
  323. package/src/foundry/client/ui/editor.d.mts +3 -3
  324. package/src/foundry/client/ui/filepicker.d.mts +1 -1
  325. package/src/foundry/client/ui/filter.d.mts +2 -2
  326. package/src/foundry/client/ui/index.d.mts +0 -2
  327. package/src/foundry/client-esm/_module.d.mts +112 -0
  328. package/src/foundry/client-esm/_types.d.mts +8 -0
  329. package/src/foundry/client-esm/applications/_module.d.mts +10 -5
  330. package/src/foundry/client-esm/applications/_types.d.mts +2 -2
  331. package/src/foundry/client-esm/applications/api/_module.d.mts +6 -5
  332. package/src/foundry/client-esm/applications/api/application.d.mts +221 -55
  333. package/src/foundry/client-esm/applications/api/category-browser.d.mts +40 -0
  334. package/src/foundry/client-esm/applications/api/dialog.d.mts +152 -74
  335. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +21 -8
  336. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +161 -131
  337. package/src/foundry/client-esm/applications/apps/_module.d.mts +9 -2
  338. package/src/foundry/client-esm/applications/apps/av/_module.d.mts +7 -0
  339. package/src/foundry/client-esm/applications/apps/av/camera-popout.d.mts +23 -0
  340. package/src/foundry/client-esm/applications/apps/av/cameras.d.mts +95 -0
  341. package/src/foundry/client-esm/applications/apps/combat-tracker-config.d.mts +21 -0
  342. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +6 -5
  343. package/src/foundry/client-esm/applications/apps/document-ownership.d.mts +21 -0
  344. package/src/foundry/client-esm/applications/apps/document-sheet-config.d.mts +24 -0
  345. package/src/foundry/client-esm/applications/apps/file-picker.d.mts +410 -0
  346. package/src/foundry/client-esm/applications/apps/grid-config.d.mts +25 -0
  347. package/src/foundry/client-esm/applications/apps/image-popout.d.mts +56 -0
  348. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +4 -4
  349. package/src/foundry/client-esm/applications/dice/_module.d.mts +2 -2
  350. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +14 -2
  351. package/src/foundry/client-esm/applications/elements/_module.d.mts +5 -2
  352. package/src/foundry/client-esm/applications/elements/codemirror/element.d.mts +16 -0
  353. package/src/foundry/client-esm/applications/elements/codemirror/extensions.d.mts +20 -0
  354. package/src/foundry/client-esm/applications/elements/codemirror/view.d.mts +8 -0
  355. package/src/foundry/client-esm/applications/elements/document-embed.d.mts +14 -0
  356. package/src/foundry/client-esm/applications/elements/document-tags.d.mts +2 -0
  357. package/src/foundry/client-esm/applications/elements/enriched-content.d.mts +29 -0
  358. package/src/foundry/client-esm/applications/elements/multi-select.d.mts +15 -5
  359. package/src/foundry/client-esm/applications/elements/prosemirror-editor.d.mts +1 -1
  360. package/src/foundry/client-esm/applications/elements/secret-block.d.mts +7 -0
  361. package/src/foundry/client-esm/applications/elements/string-tags.d.mts +1 -1
  362. package/src/foundry/client-esm/applications/forms/fields.d.mts +6 -1
  363. package/src/foundry/client-esm/applications/handlebars.d.mts +3 -0
  364. package/src/foundry/client-esm/applications/hud/_module.d.mts +10 -0
  365. package/src/foundry/client-esm/applications/hud/container.d.mts +15 -0
  366. package/src/foundry/client-esm/applications/hud/drawing-hud.d.mts +19 -0
  367. package/src/foundry/client-esm/applications/hud/placeable-hud.d.mts +41 -0
  368. package/src/foundry/client-esm/applications/hud/tile-hud.d.mts +19 -0
  369. package/src/foundry/client-esm/applications/hud/token-hud.d.mts +20 -0
  370. package/src/foundry/client-esm/applications/quickstart.d.mts +20 -0
  371. package/src/foundry/client-esm/applications/settings/_module.d.mts +7 -0
  372. package/src/foundry/client-esm/applications/settings/config.d.mts +21 -0
  373. package/src/foundry/client-esm/applications/settings/dependency-resolution.d.mts +19 -0
  374. package/src/foundry/client-esm/applications/settings/menus/_module.d.mts +11 -0
  375. package/src/foundry/client-esm/applications/settings/menus/av-config.d.mts +27 -0
  376. package/src/foundry/client-esm/applications/settings/menus/default-sheets-config.d.mts +19 -0
  377. package/src/foundry/client-esm/applications/settings/menus/dice-config.d.mts +18 -0
  378. package/src/foundry/client-esm/applications/settings/menus/font-config.d.mts +43 -0
  379. package/src/foundry/client-esm/applications/settings/menus/prototype-overrides.d.mts +21 -0
  380. package/src/foundry/client-esm/applications/settings/menus/ui-config.d.mts +26 -0
  381. package/src/foundry/client-esm/applications/sheets/_module.d.mts +30 -5
  382. package/src/foundry/client-esm/applications/sheets/active-effect-config.d.mts +25 -0
  383. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +1 -1
  384. package/src/foundry/client-esm/applications/sheets/adventure-exporter.d.mts +25 -0
  385. package/src/foundry/client-esm/applications/sheets/adventure-importer.d.mts +25 -0
  386. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +9 -6
  387. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +3 -3
  388. package/src/foundry/client-esm/applications/sheets/base-sheet.d.mts +23 -0
  389. package/src/foundry/client-esm/applications/sheets/card-config.d.mts +25 -0
  390. package/src/foundry/client-esm/applications/sheets/cards-config.d.mts +49 -0
  391. package/src/foundry/client-esm/applications/sheets/combatant-config.d.mts +25 -0
  392. package/src/foundry/client-esm/applications/sheets/drawing-config.d.mts +25 -0
  393. package/src/foundry/client-esm/applications/sheets/folder-config.d.mts +25 -0
  394. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +1 -1
  395. package/src/foundry/client-esm/applications/sheets/journal/_module.d.mts +16 -0
  396. package/src/foundry/client-esm/applications/sheets/journal/dialog-show.d.mts +19 -0
  397. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-category-config.d.mts +25 -0
  398. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-hbs-sheet.d.mts +19 -0
  399. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-image-sheet.d.mts +18 -0
  400. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-markdown-sheet.d.mts +18 -0
  401. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-pdf-sheet.d.mts +18 -0
  402. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-prose-mirror-sheet.d.mts +18 -0
  403. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-sheet.d.mts +28 -0
  404. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-text-sheet.d.mts +18 -0
  405. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-video-sheet.d.mts +18 -0
  406. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-sheet.d.mts +35 -0
  407. package/src/foundry/client-esm/applications/sheets/macro-config.d.mts +25 -0
  408. package/src/foundry/client-esm/applications/sheets/note-config.d.mts +25 -0
  409. package/src/foundry/client-esm/applications/sheets/playlist-config.d.mts +25 -0
  410. package/src/foundry/client-esm/applications/sheets/playlist-sound-config.d.mts +25 -0
  411. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +29 -5
  412. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +35 -5
  413. package/src/foundry/client-esm/applications/sheets/roll-table-config.d.mts +25 -0
  414. package/src/foundry/client-esm/applications/sheets/roll-table-sheet.d.mts +25 -0
  415. package/src/foundry/client-esm/applications/sheets/scene-config.d.mts +25 -0
  416. package/src/foundry/client-esm/applications/sheets/table-result-config.d.mts +25 -0
  417. package/src/foundry/client-esm/applications/sheets/template-config.d.mts +25 -0
  418. package/src/foundry/client-esm/applications/sheets/tile-config.d.mts +25 -0
  419. package/src/foundry/client-esm/applications/sheets/token/_module.d.mts +7 -0
  420. package/src/foundry/client-esm/applications/sheets/token/mixin.d.mts +27 -0
  421. package/src/foundry/client-esm/applications/sheets/token/prototype-config.d.mts +18 -0
  422. package/src/foundry/client-esm/applications/sheets/token/token-config.d.mts +25 -0
  423. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +3 -3
  424. package/src/foundry/client-esm/applications/sheets/wall-config.d.mts +25 -0
  425. package/src/foundry/client-esm/applications/sidebar/_module.d.mts +10 -0
  426. package/src/foundry/client-esm/applications/sidebar/apps/_module.d.mts +15 -0
  427. package/src/foundry/client-esm/applications/sidebar/apps/chat-popout.d.mts +22 -0
  428. package/src/foundry/client-esm/applications/sidebar/apps/compendium.d.mts +21 -0
  429. package/src/foundry/client-esm/applications/sidebar/apps/controls-config.d.mts +20 -0
  430. package/src/foundry/client-esm/applications/sidebar/apps/folder-export.d.mts +18 -0
  431. package/src/foundry/client-esm/applications/sidebar/apps/frame-viewer.d.mts +22 -0
  432. package/src/foundry/client-esm/applications/sidebar/apps/invitation-links.d.mts +17 -0
  433. package/src/foundry/client-esm/applications/sidebar/apps/module-management.d.mts +21 -0
  434. package/src/foundry/client-esm/applications/sidebar/apps/support-details.d.mts +17 -0
  435. package/src/foundry/client-esm/applications/sidebar/apps/tours-management.d.mts +20 -0
  436. package/src/foundry/client-esm/applications/sidebar/apps/world-config.d.mts +19 -0
  437. package/src/foundry/client-esm/applications/sidebar/document-directory.d.mts +30 -0
  438. package/src/foundry/client-esm/applications/sidebar/sidebar-tab.d.mts +86 -0
  439. package/src/foundry/client-esm/applications/sidebar/sidebar.d.mts +18 -0
  440. package/src/foundry/client-esm/applications/sidebar/tabs/_module.d.mts +17 -0
  441. package/src/foundry/client-esm/applications/sidebar/tabs/actor-directory.d.mts +20 -0
  442. package/src/foundry/client-esm/applications/sidebar/tabs/cards-directory.d.mts +20 -0
  443. package/src/foundry/client-esm/applications/sidebar/tabs/chat.d.mts +19 -0
  444. package/src/foundry/client-esm/applications/sidebar/tabs/combat-tracker.d.mts +19 -0
  445. package/src/foundry/client-esm/applications/sidebar/tabs/compendium-directory.d.mts +19 -0
  446. package/src/foundry/client-esm/applications/sidebar/tabs/item-directory.d.mts +20 -0
  447. package/src/foundry/client-esm/applications/sidebar/tabs/journal-directory.d.mts +20 -0
  448. package/src/foundry/client-esm/applications/sidebar/tabs/macro-directory.d.mts +20 -0
  449. package/src/foundry/client-esm/applications/sidebar/tabs/playlist-directory.d.mts +20 -0
  450. package/src/foundry/client-esm/applications/sidebar/tabs/roll-table-directory.d.mts +20 -0
  451. package/src/foundry/client-esm/applications/sidebar/tabs/scene-directory.d.mts +20 -0
  452. package/src/foundry/client-esm/applications/sidebar/tabs/settings.d.mts +18 -0
  453. package/src/foundry/client-esm/applications/ui/_module.d.mts +9 -2
  454. package/src/foundry/client-esm/applications/ui/game-pause.d.mts +22 -0
  455. package/src/foundry/client-esm/applications/ui/hotbar.d.mts +29 -0
  456. package/src/foundry/client-esm/applications/ui/main-menu.d.mts +27 -0
  457. package/src/foundry/client-esm/applications/ui/notifications.d.mts +208 -0
  458. package/src/foundry/client-esm/applications/ui/players.d.mts +26 -0
  459. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +48 -3
  460. package/src/foundry/client-esm/applications/ui/scene-controls.d.mts +20 -0
  461. package/src/foundry/client-esm/applications/ui/scene-navigation.d.mts +28 -0
  462. package/src/foundry/client-esm/applications/ux/_module.d.mts +14 -0
  463. package/src/foundry/client-esm/applications/ux/context-menu.d.mts +359 -0
  464. package/src/foundry/client-esm/applications/ux/drag-drop.d.mts +21 -0
  465. package/src/foundry/client-esm/applications/ux/draggable.d.mts +9 -0
  466. package/src/foundry/client-esm/applications/ux/form-data-extended.d.mts +17 -0
  467. package/src/foundry/client-esm/applications/ux/html-secret.d.mts +21 -0
  468. package/src/foundry/client-esm/applications/ux/prosemirror-editor.d.mts +9 -0
  469. package/src/foundry/client-esm/applications/ux/search-filter.d.mts +9 -0
  470. package/src/foundry/client-esm/applications/ux/tabs.d.mts +29 -0
  471. package/src/foundry/client-esm/applications/ux/text-editor.d.mts +9 -0
  472. package/src/foundry/client-esm/appv1/_module.d.mts +7 -0
  473. package/src/foundry/client-esm/appv1/api/_module.d.mts +9 -0
  474. package/src/foundry/client-esm/appv1/api/application-v1.d.mts +5 -0
  475. package/src/foundry/client-esm/appv1/api/dialog-v1.d.mts +5 -0
  476. package/src/foundry/client-esm/appv1/api/document-sheet-v1.d.mts +5 -0
  477. package/src/foundry/client-esm/appv1/api/form-application-v1.d.mts +5 -0
  478. package/src/foundry/client-esm/appv1/sheets/_module.d.mts +10 -0
  479. package/src/foundry/client-esm/appv1/sheets/actor-sheet.d.mts +5 -0
  480. package/src/foundry/client-esm/appv1/sheets/adventure-importer.d.mts +5 -0
  481. package/src/foundry/client-esm/appv1/sheets/item-sheet.d.mts +5 -0
  482. package/src/foundry/client-esm/appv1/sheets/journal-page-sheet.d.mts +7 -0
  483. package/src/foundry/client-esm/appv1/sheets/journal-sheet.d.mts +5 -0
  484. package/src/foundry/client-esm/audio/_module.d.mts +2 -3
  485. package/src/foundry/client-esm/audio/_types.d.mts +1 -1
  486. package/src/foundry/client-esm/audio/biquad.d.mts +1 -1
  487. package/src/foundry/client-esm/audio/convolver.d.mts +1 -1
  488. package/src/foundry/client-esm/audio/helper.d.mts +6 -5
  489. package/src/foundry/client-esm/audio/sound.d.mts +2 -2
  490. package/src/foundry/client-esm/audio/timeout.d.mts +5 -2
  491. package/src/foundry/client-esm/av/_module.d.mts +10 -0
  492. package/src/foundry/client-esm/av/client.d.mts +18 -0
  493. package/src/foundry/client-esm/av/clients/_module.d.mts +6 -0
  494. package/src/foundry/client-esm/av/clients/simplepeer.d.mts +11 -0
  495. package/src/foundry/client-esm/av/master.d.mts +12 -0
  496. package/src/foundry/client-esm/av/settings.d.mts +30 -0
  497. package/src/foundry/client-esm/canvas/_module.d.mts +2 -2
  498. package/src/foundry/client-esm/canvas/edges/_module.d.mts +2 -2
  499. package/src/foundry/client-esm/canvas/edges/collision.d.mts +61 -18
  500. package/src/foundry/client-esm/canvas/edges/edge.d.mts +106 -42
  501. package/src/foundry/client-esm/canvas/edges/edges.d.mts +9 -0
  502. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +51 -23
  503. package/src/foundry/client-esm/canvas/regions/_module.d.mts +2 -3
  504. package/src/foundry/client-esm/canvas/regions/geometry.d.mts +31 -0
  505. package/src/foundry/client-esm/canvas/regions/mesh.d.mts +61 -0
  506. package/src/foundry/client-esm/canvas/regions/polygon-tree.d.mts +101 -0
  507. package/src/foundry/client-esm/canvas/regions/shape.d.mts +118 -0
  508. package/src/foundry/client-esm/canvas/scene-manager.d.mts +12 -3
  509. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +2 -3
  510. package/src/foundry/client-esm/canvas/sources/_module.d.mts +2 -2
  511. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +32 -18
  512. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +53 -15
  513. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +18 -3
  514. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +47 -23
  515. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +17 -7
  516. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +26 -14
  517. package/src/foundry/client-esm/canvas/sources/point-movement-source.d.mts +20 -4
  518. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +26 -8
  519. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +26 -25
  520. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +89 -52
  521. package/src/foundry/client-esm/canvas/tokens/_module.d.mts +2 -3
  522. package/src/foundry/client-esm/canvas/tokens/ring-config.d.mts +112 -2
  523. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +170 -3
  524. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +189 -2
  525. package/src/foundry/client-esm/client.d.mts +56 -63
  526. package/src/foundry/client-esm/config.d.mts +1 -0
  527. package/src/foundry/client-esm/data/_module.d.mts +8 -3
  528. package/src/foundry/client-esm/data/_types.d.mts +10 -0
  529. package/src/foundry/client-esm/data/calendar.d.mts +213 -0
  530. package/src/foundry/client-esm/data/client-backend.d.mts +17 -18
  531. package/src/foundry/client-esm/data/combat-config.d.mts +53 -0
  532. package/src/foundry/client-esm/data/region-behaviors/_module.d.mts +3 -3
  533. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +57 -0
  534. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +59 -0
  535. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +64 -0
  536. package/src/foundry/client-esm/data/region-behaviors/execute-macro.d.mts +27 -0
  537. package/src/foundry/client-esm/data/region-behaviors/execute-script.d.mts +23 -0
  538. package/src/foundry/client-esm/data/region-behaviors/pause-game.d.mts +23 -0
  539. package/src/foundry/client-esm/data/region-behaviors/suppress-weather.d.mts +17 -0
  540. package/src/foundry/client-esm/data/region-behaviors/teleport-token.d.mts +32 -0
  541. package/src/foundry/client-esm/data/region-behaviors/toggle-behavior.d.mts +31 -0
  542. package/src/foundry/client-esm/data/terrain-data.d.mts +22 -0
  543. package/src/foundry/client-esm/dice/_module.d.mts +2 -3
  544. package/src/foundry/client-esm/dice/parser.d.mts +8 -0
  545. package/src/foundry/client-esm/dice/roll.d.mts +64 -30
  546. package/src/foundry/client-esm/dice/terms/_module.d.mts +2 -3
  547. package/src/foundry/client-esm/dice/terms/coin.d.mts +8 -1
  548. package/src/foundry/client-esm/dice/terms/dice.d.mts +11 -2
  549. package/src/foundry/client-esm/dice/terms/die.d.mts +9 -2
  550. package/src/foundry/client-esm/dice/terms/fate.d.mts +9 -2
  551. package/src/foundry/client-esm/dice/terms/function.d.mts +5 -2
  552. package/src/foundry/client-esm/dice/terms/numeric.d.mts +1 -1
  553. package/src/foundry/client-esm/dice/terms/operator.d.mts +1 -1
  554. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +1 -1
  555. package/src/foundry/client-esm/dice/terms/pool.d.mts +15 -6
  556. package/src/foundry/client-esm/dice/terms/string.d.mts +1 -1
  557. package/src/foundry/client-esm/dice/terms/term.d.mts +12 -3
  558. package/src/foundry/client-esm/documents/_module.d.mts +11 -0
  559. package/src/foundry/client-esm/documents/_types.d.mts +8 -0
  560. package/src/foundry/client-esm/documents/abstract/_module.d.mts +6 -0
  561. package/src/foundry/client-esm/documents/collections/_module.d.mts +6 -0
  562. package/src/foundry/client-esm/game.d.mts +7 -0
  563. package/src/foundry/client-esm/helpers/_module.d.mts +2 -2
  564. package/src/foundry/client-esm/helpers/_types.d.mts +1 -1
  565. package/src/foundry/client-esm/hooks.d.mts +1 -0
  566. package/src/foundry/client-esm/nue/_module.d.mts +9 -0
  567. package/src/foundry/client-esm/nue/nue-manager.d.mts +18 -0
  568. package/src/foundry/client-esm/nue/tour.d.mts +9 -0
  569. package/src/foundry/client-esm/nue/tours/_module.d.mts +8 -0
  570. package/src/foundry/client-esm/nue/tours/canvas-tour.d.mts +12 -0
  571. package/src/foundry/client-esm/nue/tours/setup-tour.d.mts +11 -0
  572. package/src/foundry/client-esm/nue/tours/sidebar-tour.d.mts +11 -0
  573. package/src/foundry/client-esm/nue/tours-collection.d.mts +25 -0
  574. package/src/foundry/client-esm/packages/_module.d.mts +22 -0
  575. package/src/foundry/client-esm/packages/_types.d.mts +11 -0
  576. package/src/foundry/client-esm/packages/client-package.d.mts +11 -0
  577. package/src/foundry/client-esm/packages/module.d.mts +8 -0
  578. package/src/foundry/client-esm/packages/system.d.mts +8 -0
  579. package/src/foundry/client-esm/packages/world.d.mts +8 -0
  580. package/src/foundry/client-esm/ui.d.mts +1 -0
  581. package/src/foundry/client-esm/utils/_module.d.mts +7 -0
  582. package/src/foundry/client-esm/utils/_types.d.mts +2 -0
  583. package/src/foundry/client-esm/utils/helpers.d.mts +6 -0
  584. package/src/foundry/common/{types.d.mts → _types.d.mts} +3 -3
  585. package/src/foundry/common/abstract/{module.d.mts → _module.d.mts} +2 -2
  586. package/src/foundry/common/abstract/backend.d.mts +38 -44
  587. package/src/foundry/common/abstract/data.d.mts +22 -51
  588. package/src/foundry/common/abstract/document.d.mts +212 -121
  589. package/src/foundry/common/abstract/embedded-collection-delta.d.mts +1 -1
  590. package/src/foundry/common/abstract/embedded-collection.d.mts +37 -7
  591. package/src/foundry/common/abstract/socket.d.mts +1 -1
  592. package/src/foundry/common/abstract/type-data.d.mts +40 -24
  593. package/src/foundry/common/config.d.mts +3 -1
  594. package/src/foundry/common/constants.d.mts +234 -205
  595. package/src/foundry/common/data/{module.d.mts → _module.d.mts} +2 -2
  596. package/src/foundry/common/data/_types.d.mts +47 -0
  597. package/src/foundry/common/data/data.d.mts +25 -19
  598. package/src/foundry/common/data/fields.d.mts +469 -423
  599. package/src/foundry/common/data/validation-failure.d.mts +4 -6
  600. package/src/foundry/common/documents/_module.d.mts +4 -2
  601. package/src/foundry/common/documents/_types.d.mts +10 -45
  602. package/src/foundry/common/documents/active-effect.d.mts +7 -4
  603. package/src/foundry/common/documents/actor-delta.d.mts +7 -5
  604. package/src/foundry/common/documents/actor.d.mts +6 -19
  605. package/src/foundry/common/documents/adventure.d.mts +13 -2
  606. package/src/foundry/common/documents/ambient-light.d.mts +3 -1
  607. package/src/foundry/common/documents/ambient-sound.d.mts +3 -1
  608. package/src/foundry/common/documents/card.d.mts +6 -4
  609. package/src/foundry/common/documents/cards.d.mts +3 -1
  610. package/src/foundry/common/documents/chat-message.d.mts +10 -8
  611. package/src/foundry/common/documents/combat.d.mts +3 -1
  612. package/src/foundry/common/documents/combatant.d.mts +4 -12
  613. package/src/foundry/common/documents/drawing.d.mts +6 -4
  614. package/src/foundry/common/documents/fog-exploration.d.mts +3 -1
  615. package/src/foundry/common/documents/folder.d.mts +9 -1
  616. package/src/foundry/common/documents/item.d.mts +5 -3
  617. package/src/foundry/common/documents/journal-entry-page.d.mts +3 -2
  618. package/src/foundry/common/documents/journal-entry.d.mts +3 -1
  619. package/src/foundry/common/documents/macro.d.mts +5 -3
  620. package/src/foundry/common/documents/measured-template.d.mts +6 -8
  621. package/src/foundry/common/documents/module.d.mts +2 -2
  622. package/src/foundry/common/documents/note.d.mts +4 -2
  623. package/src/foundry/common/documents/playlist-sound.d.mts +4 -2
  624. package/src/foundry/common/documents/playlist.d.mts +3 -1
  625. package/src/foundry/common/documents/region-behavior.d.mts +88 -0
  626. package/src/foundry/common/documents/region.d.mts +108 -0
  627. package/src/foundry/common/documents/roll-table.d.mts +3 -1
  628. package/src/foundry/common/documents/scene.d.mts +9 -1
  629. package/src/foundry/common/documents/setting.d.mts +3 -2
  630. package/src/foundry/common/documents/table-result.d.mts +4 -4
  631. package/src/foundry/common/documents/tile.d.mts +3 -1
  632. package/src/foundry/common/documents/token.d.mts +15 -7
  633. package/src/foundry/common/documents/user.d.mts +7 -5
  634. package/src/foundry/common/documents/wall.d.mts +12 -15
  635. package/src/foundry/common/grid/_module.d.mts +3 -3
  636. package/src/foundry/common/grid/_types.d.mts +47 -0
  637. package/src/foundry/common/grid/base.d.mts +10 -14
  638. package/src/foundry/common/grid/gridless.d.mts +2 -2
  639. package/src/foundry/common/grid/hexagonal.d.mts +21 -10
  640. package/src/foundry/common/grid/square.d.mts +2 -2
  641. package/src/foundry/common/packages/{module.d.mts → _module.d.mts} +2 -2
  642. package/src/foundry/common/packages/_types.d.mts +25 -0
  643. package/src/foundry/common/packages/base-package.d.mts +6 -6
  644. package/src/foundry/common/packages/base-system.d.mts +19 -4
  645. package/src/foundry/common/packages/base-world.d.mts +2 -2
  646. package/src/foundry/common/packages/sub-types.d.mts +1 -1
  647. package/src/foundry/common/primitives/array.d.mts +1 -1
  648. package/src/foundry/common/primitives/number.d.mts +1 -1
  649. package/src/foundry/common/primitives/string.d.mts +1 -1
  650. package/src/foundry/common/prosemirror/_module.d.mts +15 -15
  651. package/src/foundry/common/prosemirror/_types.d.mts +29 -0
  652. package/src/foundry/common/prosemirror/dirty-plugin.d.mts +1 -1
  653. package/src/foundry/common/prosemirror/dom-parser.d.mts +2 -1
  654. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +1 -1
  655. package/src/foundry/common/prosemirror/image-plugin.d.mts +1 -1
  656. package/src/foundry/common/prosemirror/paste-transformer.d.mts +1 -1
  657. package/src/foundry/common/prosemirror/plugin.d.mts +1 -1
  658. package/src/foundry/common/prosemirror/schema/index.d.mts +1 -1
  659. package/src/foundry/common/prosemirror/schema/lists.d.mts +2 -0
  660. package/src/foundry/common/utils/{module.d.mts → _module.d.mts} +2 -2
  661. package/src/foundry/common/utils/_types.d.mts +1 -0
  662. package/src/foundry/common/utils/bitmask.d.mts +20 -11
  663. package/src/foundry/common/utils/collection.d.mts +7 -19
  664. package/src/foundry/common/utils/color.d.mts +20 -2
  665. package/src/foundry/common/utils/event-emitter.d.mts +1 -1
  666. package/src/foundry/common/utils/geometry.d.mts +12 -2
  667. package/src/foundry/common/utils/helpers.d.mts +23 -13
  668. package/src/foundry/common/utils/string-tree.d.mts +1 -1
  669. package/src/foundry/common/utils/word-tree.d.mts +1 -1
  670. package/src/foundry/index.d.mts +0 -1
  671. package/src/foundry/{clipper → public/scripts/clipper}/clipper.d.mts +52 -43
  672. package/src/foundry/public/scripts/index.d.mts +1 -0
  673. package/src/foundry/public/scripts/workers/image-compressor.d.mts +23 -0
  674. package/src/foundry/public/scripts/workers/index.d.mts +1 -0
  675. package/{index-lenient.d.mts → src/index-lenient.d.mts} +2 -0
  676. package/src/index.d.mts +6 -0
  677. package/src/tsconfig.json +19 -0
  678. package/src/types/augments/particles.d.mts +29 -0
  679. package/src/types/augments/pixi.d.mts +1013 -10
  680. package/src/types/augments/smooth.d.mts +31 -0
  681. package/src/types/augments/tinyMCE.d.mts +1 -1
  682. package/src/types/config.d.mts +20 -311
  683. package/src/types/documentConfiguration.d.mts +91 -32
  684. package/src/types/index.d.mts +1 -1
  685. package/src/types/lib.d.mts +12 -0
  686. package/src/types/workers/image-compressor.d.mts +176 -0
  687. package/src/utils/index.d.mts +1091 -0
  688. package/index.d.mts +0 -5
  689. package/src/foundry/client/ui/context.d.mts +0 -213
  690. package/src/foundry/client/ui/notifications.d.mts +0 -136
  691. package/src/foundry/common/primitives/regex.d.mts +0 -12
  692. package/src/types/helperTypes.d.mts +0 -389
  693. package/src/types/utils.d.mts +0 -520
  694. /package/src/foundry/common/primitives/{module.d.mts → _module.d.mts} +0 -0
  695. /package/src/foundry/{clipper → public/scripts/clipper}/index.d.mts +0 -0
@@ -1,15 +1,16 @@
1
1
  import type {
2
2
  RemoveIndexSignatures,
3
3
  SimpleMerge,
4
- ValueOf,
5
4
  AnyObject,
6
5
  EmptyObject,
7
6
  NullishProps,
8
7
  InexactPartial,
9
- } from "../../../types/utils.d.mts";
8
+ ToMethod,
9
+ FixedInstanceType,
10
+ } from "../../../utils/index.d.mts";
10
11
  import type { DataModel } from "../abstract/data.mts";
11
12
  import type Document from "../abstract/document.mts";
12
- import type { EmbeddedCollection, EmbeddedCollectionDelta } from "../abstract/module.d.mts";
13
+ import type { EmbeddedCollection, EmbeddedCollectionDelta, TypeDataModel } from "../abstract/_module.d.mts";
13
14
  import type { DOCUMENT_OWNERSHIP_LEVELS } from "../constants.d.mts";
14
15
  import type { CONST } from "../../client-esm/client.d.mts";
15
16
  import type { DataModelValidationFailure } from "./validation-failure.mts";
@@ -23,94 +24,7 @@ import type {
23
24
  TextAreaInputConfig,
24
25
  } from "../../client-esm/applications/forms/fields.d.mts";
25
26
 
26
- declare global {
27
- /**
28
- * @typeParam BaseAssignmentType - the base assignment type for a DataField, without null or undefined
29
- */
30
- interface DataFieldOptions<BaseAssignmentType> {
31
- /**
32
- * Is this field required to be populated?
33
- * @defaultValue `false`
34
- */
35
- required?: boolean | undefined;
36
-
37
- /**
38
- * Can this field have null values?
39
- * @defaultValue `false`
40
- */
41
- nullable?: boolean | undefined;
42
-
43
- /**
44
- * Can this field only be modified by a gamemaster or assistant gamemaster?
45
- * @defaultValue `false`
46
- */
47
- gmOnly?: boolean | undefined;
48
-
49
- /** The initial value of a field, or a function which assigns that initial value. */
50
- initial?:
51
- | DataFieldOptions.InitialType<
52
- DataFieldOptions.InitialReturnType<BaseAssignmentType, this["nullable"], this["required"]>
53
- >
54
- | undefined;
55
-
56
- /** A data validation function which accepts one argument with the current value. */
57
- validate?: DataField.Validator | undefined;
58
-
59
- /** A localizable label displayed on forms which render this field. */
60
- label?: string | undefined;
61
-
62
- /** Localizable help text displayed on forms which render this field. */
63
- hint?: string | undefined;
64
-
65
- /**
66
- * A custom validation error string. When displayed will be prepended with the
67
- * document name, field name, and candidate value. This error string is only
68
- * used when the return type of the validate function is a boolean. If an Error
69
- * is thrown in the validate function, the string message of that Error is used.
70
- */
71
- validationError?: string | undefined;
72
- }
73
-
74
- namespace DataFieldOptions {
75
- /** Any DataFieldOptions. */
76
- type Any = DataFieldOptions<any>;
77
-
78
- /**
79
- * A helper type for the {@link DataFieldOptions.initial} option.
80
- * @typeParam ReturnType - the return type of the option
81
- */
82
- type InitialType<ReturnType> = ReturnType | ((initialData: unknown) => ReturnType);
83
-
84
- /**
85
- * The decorated return type for the {@link DataFieldOptions.initial} option.
86
- * @typeParam BaseAssignmentType - the base assignment type for a DataField
87
- * @typeParam NullableOption - the value of the nullable option
88
- * @typeParam RequiredOption - the value of the required option
89
- */
90
- type InitialReturnType<BaseAssignmentType, NullableOption, RequiredOption> =
91
- | Exclude<BaseAssignmentType, null | undefined>
92
- | (NullableOption extends true ? null : never)
93
- | (RequiredOption extends true ? never : undefined);
94
- }
95
-
96
- interface DataFieldValidationOptions {
97
- /** Whether this is a partial schema validation, or a complete one. */
98
- partial?: boolean;
99
-
100
- /** Whether to allow replacing invalid values with valid fallbacks. */
101
- fallback?: boolean;
102
-
103
- /** The full source object being evaluated. */
104
- source?: AnyObject;
105
-
106
- /**
107
- * If true, invalid embedded documents will emit a warning and be placed in
108
- * the invalidDocuments collection rather than causing the parent to be
109
- * considered invalid.
110
- */
111
- dropInvalidEmbedded?: boolean;
112
- }
113
- }
27
+ export type DataSchema = Record<string, DataField.Any>;
114
28
 
115
29
  /**
116
30
  * An abstract class that defines the base pattern for a data field within a data schema.
@@ -120,17 +34,20 @@ declare global {
120
34
  * @typeParam PersistedType - the type of the persisted values of the DataField
121
35
  * @remarks
122
36
  * Defaults:
123
- * AssignmentType: `any | null | undefined`
37
+ * AssignmentType: `unknown | null | undefined`
124
38
  * InitializedType: `unknown | undefined`
125
39
  * PersistedType: `unknown | undefined`
126
40
  * InitialValue: `undefined`
127
41
  */
128
42
  declare abstract class DataField<
129
- const Options extends DataFieldOptions.Any = DataField.DefaultOptions,
43
+ const Options extends DataField.Options.Any = DataField.DefaultOptions,
130
44
  const AssignmentType = DataField.AssignmentType<Options>,
131
45
  const InitializedType = DataField.InitializedType<Options>,
132
- const PersistedType extends unknown | null | undefined = InitializedType,
46
+ const PersistedType = InitializedType,
133
47
  > {
48
+ // Prevent from being bivariant.
49
+ #assignmentType: AssignmentType;
50
+
134
51
  /**
135
52
  * @param options - Options which configure the behavior of the field
136
53
  */
@@ -161,7 +78,7 @@ declare abstract class DataField<
161
78
  * The initial value of a field, or a function which assigns that initial value.
162
79
  * @defaultValue `undefined`
163
80
  */
164
- initial: DataFieldOptions.InitialType<InitializedType>;
81
+ initial: DataField.Options.InitialType<InitializedType>;
165
82
 
166
83
  /**
167
84
  * Should the prepared value of the field be read-only, preventing it from being
@@ -225,7 +142,7 @@ declare abstract class DataField<
225
142
  * Default parameters for this field type
226
143
  * @remarks This is not entirely type-safe, overrides should specify a more concrete return type.
227
144
  */
228
- protected static get _defaults(): DataFieldOptions.Any;
145
+ protected static get _defaults(): DataField.Options.Any;
229
146
 
230
147
  /**
231
148
  * A dot-separated string representation of the field path within the parent schema.
@@ -292,7 +209,7 @@ declare abstract class DataField<
292
209
  validate(
293
210
  value: AssignmentType,
294
211
  options?: DataField.ValidationOptions<DataField.Any>,
295
- ): DataModelValidationFailure | undefined;
212
+ ): DataModelValidationFailure | void;
296
213
 
297
214
  /**
298
215
  * Special validation rules which supersede regular field validation.
@@ -394,7 +311,7 @@ declare abstract class DataField<
394
311
  * @param change - The change to apply.
395
312
  * @returns The updated value.
396
313
  */
397
- applyChange(value: InitializedType, model: DataModel.Any, change: EffectChangeData): InitializedType;
314
+ applyChange(value: InitializedType, model: DataModel.Any, change: ActiveEffect.EffectChangeData): InitializedType;
398
315
 
399
316
  /**
400
317
  * Cast a change delta into an appropriate type to be applied to this field.
@@ -417,7 +334,7 @@ declare abstract class DataField<
417
334
  value: InitializedType,
418
335
  delta: InitializedType,
419
336
  model: DataModel.Any,
420
- change: EffectChangeData,
337
+ change: ActiveEffect.EffectChangeData,
421
338
  ): InitializedType | undefined;
422
339
 
423
340
  /**
@@ -432,7 +349,7 @@ declare abstract class DataField<
432
349
  value: InitializedType,
433
350
  delta: InitializedType,
434
351
  model: DataModel.Any,
435
- change: EffectChangeData,
352
+ change: ActiveEffect.EffectChangeData,
436
353
  ): InitializedType | undefined;
437
354
 
438
355
  /**
@@ -447,7 +364,7 @@ declare abstract class DataField<
447
364
  value: InitializedType,
448
365
  delta: InitializedType,
449
366
  model: DataModel.Any,
450
- change: EffectChangeData,
367
+ change: ActiveEffect.EffectChangeData,
451
368
  ): InitializedType | undefined;
452
369
 
453
370
  /**
@@ -462,7 +379,7 @@ declare abstract class DataField<
462
379
  value: InitializedType,
463
380
  delta: InitializedType,
464
381
  model: DataModel.Any,
465
- change: EffectChangeData,
382
+ change: ActiveEffect.EffectChangeData,
466
383
  ): InitializedType | undefined;
467
384
 
468
385
  /**
@@ -477,7 +394,7 @@ declare abstract class DataField<
477
394
  value: InitializedType,
478
395
  delta: InitializedType,
479
396
  model: DataModel.Any,
480
- change: EffectChangeData,
397
+ change: ActiveEffect.EffectChangeData,
481
398
  ): InitializedType | undefined;
482
399
 
483
400
  /**
@@ -492,13 +409,13 @@ declare abstract class DataField<
492
409
  value: InitializedType,
493
410
  delta: InitializedType,
494
411
  model: DataModel.Any,
495
- change: EffectChangeData,
412
+ change: ActiveEffect.EffectChangeData,
496
413
  ): InitializedType;
497
414
  }
498
415
 
499
416
  declare namespace DataField {
500
417
  /** Any DataField. */
501
- type Any = DataField<any, any, any, any>;
418
+ type Any = DataField<DataField.Options.Any, unknown, unknown, unknown>;
502
419
 
503
420
  type AnyConstructor = typeof AnyDataField;
504
421
 
@@ -526,18 +443,106 @@ declare namespace DataField {
526
443
  validationError: "is not a valid value";
527
444
  }
528
445
 
446
+ interface Options<BaseAssignmentType> {
447
+ /**
448
+ * Is this field required to be populated?
449
+ * @defaultValue `false`
450
+ */
451
+ required?: boolean | undefined;
452
+
453
+ /**
454
+ * Can this field have null values?
455
+ * @defaultValue `false`
456
+ */
457
+ nullable?: boolean | undefined;
458
+
459
+ /**
460
+ * Can this field only be modified by a gamemaster or assistant gamemaster?
461
+ * @defaultValue `false`
462
+ */
463
+ gmOnly?: boolean | undefined;
464
+
465
+ /** The initial value of a field, or a function which assigns that initial value. */
466
+ initial?:
467
+ | DataField.Options.InitialType<
468
+ DataField.Options.InitialReturnType<BaseAssignmentType, this["nullable"], this["required"]>
469
+ >
470
+ | undefined;
471
+
472
+ /** A data validation function which accepts one argument with the current value. */
473
+ validate?: DataField.Validator<BaseAssignmentType> | undefined;
474
+
475
+ /** A localizable label displayed on forms which render this field. */
476
+ label?: string | undefined;
477
+
478
+ /** Localizable help text displayed on forms which render this field. */
479
+ hint?: string | undefined;
480
+
481
+ /**
482
+ * A custom validation error string. When displayed will be prepended with the
483
+ * document name, field name, and candidate value. This error string is only
484
+ * used when the return type of the validate function is a boolean. If an Error
485
+ * is thrown in the validate function, the string message of that Error is used.
486
+ */
487
+ validationError?: string | undefined;
488
+ }
489
+
490
+ namespace Options {
491
+ /** Any DataField.Options. */
492
+ // Note(LukeAbby): This `& object` is intentional. Its purpose is to allow options like `{ integer: true }` to be assigned.
493
+ // This is an issue because `{ integer: true }` does not extend `{ required?: boolean }` because they have properties in common.
494
+ // Even though `{ integer: true, required: undefined }` would extend `{ required?: boolean }` following the regular rules of surplus properties being allowed.
495
+ // `object` was chosen over `AnyObject` so that people may pass in interfa
496
+ type Any = DataField.Options<any> & object;
497
+
498
+ /**
499
+ * A helper type for the {@link DataField.Options.initial} option.
500
+ * @typeParam ReturnType - the return type of the option
501
+ */
502
+ type InitialType<ReturnType> = ReturnType | ((initialData: unknown) => ReturnType);
503
+
504
+ /**
505
+ * The decorated return type for the {@link DataField.Options.initial} option.
506
+ * @typeParam BaseAssignmentType - the base assignment type for a DataField
507
+ * @typeParam NullableOption - the value of the nullable option
508
+ * @typeParam RequiredOption - the value of the required option
509
+ */
510
+ type InitialReturnType<BaseAssignmentType, NullableOption, RequiredOption> =
511
+ | Exclude<BaseAssignmentType, null | undefined>
512
+ | (NullableOption extends true ? null : never)
513
+ | (RequiredOption extends true ? never : undefined);
514
+ }
515
+
516
+ interface DataValidationOptions {
517
+ /** Whether this is a partial schema validation, or a complete one. */
518
+ partial?: boolean;
519
+
520
+ /** Whether to allow replacing invalid values with valid fallbacks. */
521
+ fallback?: boolean;
522
+
523
+ /** The full source object being evaluated. */
524
+ source?: AnyObject;
525
+
526
+ /**
527
+ * If true, invalid embedded documents will emit a warning and be placed in
528
+ * the invalidDocuments collection rather than causing the parent to be
529
+ * considered invalid.
530
+ */
531
+ dropInvalidEmbedded?: boolean;
532
+ }
533
+
529
534
  /**
530
535
  * A helper type for the given options type merged into the default options of the DataField class.
531
536
  * @typeParam Options - the options that override the default options
532
537
  */
533
- type MergedOptions<Options extends DataFieldOptions.Any> = SimpleMerge<DefaultOptions, Options>;
538
+ type MergedOptions<Options extends DataField.Options.Any> = SimpleMerge<DefaultOptions, Options>;
534
539
 
535
540
  /**
536
541
  * A type to decorate the base assignment type to a DataField, based on the options of the field.
537
542
  * @typeParam BaseAssignmentType - the base assignment type of the DataField, without null or undefined
538
543
  * @typeParam Options - the options of the DataField
539
544
  */
540
- type DerivedAssignmentType<BaseAssignmentType, Options extends DataFieldOptions.Any> =
545
+ type DerivedAssignmentType<BaseAssignmentType, Options extends DataField.Options.Any> =
541
546
  | Exclude<BaseAssignmentType, null | undefined> // Always include the base type
542
547
  | (Options["nullable"] extends true // determine whether null is in the union
543
548
  ? // when nullable, null is always allowed
@@ -567,7 +572,7 @@ declare namespace DataField {
567
572
  * @typeParam BaseInitializedType - the base initialized type of the DataField, without null or undefined
568
573
  * @typeParam Options - the options of the DataField
569
574
  */
570
- type DerivedInitializedType<BaseInitializedType, Options extends DataFieldOptions.Any> =
575
+ type DerivedInitializedType<BaseInitializedType, Options extends DataField.Options.Any> =
571
576
  | Exclude<BaseInitializedType, null | undefined>
572
577
  | (Options["nullable"] extends true ? null : never)
573
578
  | (Options["required"] extends true ? never : undefined);
@@ -576,13 +581,13 @@ declare namespace DataField {
576
581
  * A shorthand for the assignment type of a DataField class.
577
582
  * @typeParam Options - the options overriding the defaults
578
583
  */
579
- type AssignmentType<Options extends DataFieldOptions.Any> = DerivedAssignmentType<any, MergedOptions<Options>>;
584
+ type AssignmentType<Options extends DataField.Options.Any> = DerivedAssignmentType<any, MergedOptions<Options>>;
580
585
 
581
586
  /**
582
587
  * A shorthand for the initialized type of a DataField class.
583
588
  * @typeParam Options - the options overriding the defaults
584
589
  */
585
- type InitializedType<Options extends DataFieldOptions.Any> = DerivedInitializedType<any, MergedOptions<Options>>;
590
+ type InitializedType<Options extends DataField.Options.Any> = DerivedInitializedType<any, MergedOptions<Options>>;
586
591
 
587
592
  /** An interface for the options of the {@link DataField} clean functions. */
588
593
  interface CleanOptions {
@@ -606,8 +611,14 @@ declare namespace DataField {
606
611
  *
607
612
  * An Error may be thrown which provides a custom error message explaining the reason the value is invalid.
608
613
  */
609
- // TODO(LukeAbby): `value: never` is a stopgap because of emergent errors. Pass back in `BaseAssignmentType` instead of `value: never` which is too lenient.
610
- type Validator = (this: DataField, value: never, options: ValidationOptions<DataField>) => boolean | void;
614
+ type Validator<BaseAssignmentType> = ToMethod<
615
+ (
616
+ this: DataField,
617
+ // TODO(LukeAbby): Always allowing `null | undefined` may be too lenient but it's probably the best type for the time being.
618
+ value: BaseAssignmentType | null | undefined,
619
+ options: ValidationOptions<DataField>,
620
+ ) => DataModelValidationFailure | boolean | void
621
+ >;
611
622
 
612
623
  /**
613
624
  * An interface for the options of the {@link DataField} validation functions.
@@ -615,7 +626,7 @@ declare namespace DataField {
615
626
  */
616
627
  interface ValidationOptions<DataField extends DataField.Any> extends DataValidationOptions {
617
628
  source?: AnyObject;
618
- validate?: Validator;
629
+ validate?: Validator<DataField.AssignmentTypeFor<DataField>>;
619
630
  }
620
631
 
621
632
  interface Context {
@@ -646,7 +657,9 @@ declare namespace DataField {
646
657
  interface GroupConfig extends NullishProps<FormGroupConfig, "label" | "hint" | "input"> {}
647
658
  }
648
659
 
649
- declare abstract class AnyDataField extends DataField<any, any, any, any> {}
660
+ declare abstract class AnyDataField extends DataField<any, any, any, any> {
661
+ constructor(arg0: never, ...args: never[]);
662
+ }
650
663
 
651
664
  /**
652
665
  * A special class of {@link DataField} which defines a data schema.
@@ -685,7 +698,7 @@ declare class SchemaField<
685
698
  override nullable: boolean;
686
699
 
687
700
  /** @defaultValue `() => this.clean({})` */
688
- override initial: DataFieldOptions.InitialType<InitializedType>;
701
+ override initial: DataField.Options.InitialType<InitializedType>;
689
702
 
690
703
  protected static override get _defaults(): SchemaField.Options<DataSchema>;
691
704
 
@@ -766,6 +779,11 @@ declare class SchemaField<
766
779
 
767
780
  override toObject(value: InitializedType): PersistedType;
768
781
 
782
+ override apply<Options, Return>(
783
+ fn: keyof this | ((this: this, value: undefined | null, options: Options) => Return),
784
+ value?: null,
785
+ options?: Options,
786
+ ): Return;
769
787
  override apply<Value, Options, Return>(
770
788
  fn: keyof this | ((this: this, value: Value, options: Options) => Return),
771
789
  value: Value,
@@ -791,7 +809,7 @@ declare namespace SchemaField {
791
809
  * A shorthand for the options of a SchemaField class.
792
810
  * @typeParam Fields - the DataSchema fields of the SchemaField
793
811
  */
794
- type Options<Fields extends DataSchema> = DataFieldOptions<InnerAssignmentType<Fields> | __SchemaFieldInitial>;
812
+ type Options<Fields extends DataSchema> = DataField.Options<InnerAssignmentType<Fields> | __SchemaFieldInitial>;
795
813
 
796
814
  /** Any SchemaField. */
797
815
  type Any = SchemaField<any, any, any, any, any>;
@@ -807,29 +825,33 @@ declare namespace SchemaField {
807
825
  * @typeParam Fields - the DataSchema fields of the SchemaField
808
826
  */
809
827
  type InnerAssignmentType<Fields extends DataSchema> = RemoveIndexSignatures<{
810
- [Key in keyof Fields]?: Fields[Key] extends DataField<any, infer AssignType, any, any>
811
- ? Fields[Key] extends SchemaField<infer SubSchema, any, any, any, any>
828
+ [Key in keyof Fields]?: Fields[Key] extends EmbeddedDataField<any, any, infer AssignmentType, any, any>
829
+ ? AssignmentType
830
+ : Fields[Key] extends SchemaField<infer SubSchema, any, any, any, any>
812
831
  ? // FIXME(LukeAbby): This is a quick hack into InnerAssignmentType that assumes that the `initial` of `SchemaField` is not changed from the default of `{}`
813
832
  // This will be fixed with the refactoring of the types
814
833
  EmptyObject extends InnerAssignmentType<SubSchema>
815
834
  ? InnerAssignmentType<SubSchema> | undefined | null
816
835
  : InnerAssignmentType<SubSchema>
817
- : AssignType
818
- : never;
836
+ : Fields[Key] extends DataField<any, infer AssignType, any, any>
837
+ ? AssignType
838
+ : never;
819
839
  }>;
820
840
 
841
+ type InnerUpdateData<Fields extends DataSchema> = InnerAssignmentType<Fields>;
842
+
821
843
  /**
822
844
  * Get the inner initialized type for the given DataSchema.
823
845
  * @typeParam Fields - the DataSchema fields of the SchemaField
824
846
  */
825
847
  type InnerInitializedType<Fields extends DataSchema> = RemoveIndexSignatures<{
826
- [Key in keyof Fields]: Fields[Key] extends DataField<any, any, infer InitType, any>
827
- ? Fields[Key] extends EmbeddedDataField<infer Model, any, any, any, any>
828
- ? InstanceType<Model>
829
- : Fields[Key] extends SchemaField<infer SubSchema, any, any, any, any>
830
- ? InnerInitializedType<SubSchema>
831
- : InitType
832
- : never;
848
+ [Key in keyof Fields]: Fields[Key] extends EmbeddedDataField<infer Model, any, any, any, any>
849
+ ? FixedInstanceType<Model>
850
+ : Fields[Key] extends SchemaField<infer SubSchema, any, any, any, any>
851
+ ? InnerInitializedType<SubSchema>
852
+ : Fields[Key] extends DataField<any, any, infer InitType, any>
853
+ ? InitType
854
+ : never;
833
855
  }>;
834
856
 
835
857
  /**
@@ -837,11 +859,13 @@ declare namespace SchemaField {
837
859
  * @typeParam Fields - the DataSchema fields of the SchemaField
838
860
  */
839
861
  type InnerPersistedType<Fields extends DataSchema> = RemoveIndexSignatures<{
840
- [Key in keyof Fields]: Fields[Key] extends DataField<any, any, any, infer PersistType>
841
- ? Fields[Key] extends SchemaField<infer SubSchema, any, any, any, any>
862
+ [Key in keyof Fields]: Fields[Key] extends EmbeddedDataField<any, any, any, any, infer PersistType>
863
+ ? PersistType
864
+ : Fields[Key] extends SchemaField<infer SubSchema, any, any, any, any>
842
865
  ? InnerPersistedType<SubSchema>
843
- : PersistType
844
- : never;
866
+ : Fields[Key] extends DataField<any, any, any, infer PersistType>
867
+ ? PersistType
868
+ : never;
845
869
  }>;
846
870
 
847
871
  /** The type of the default options for the {@link SchemaField} class. */
@@ -921,7 +945,7 @@ declare class BooleanField<
921
945
  override nullable: boolean;
922
946
 
923
947
  /** @defaultValue `false` */
924
- override initial: DataFieldOptions.InitialType<InitializedType>;
948
+ override initial: DataField.Options.InitialType<InitializedType>;
925
949
 
926
950
  protected static override get _defaults(): BooleanField.Options;
927
951
 
@@ -937,7 +961,7 @@ declare class BooleanField<
937
961
 
938
962
  declare namespace BooleanField {
939
963
  /** A shorthand for the options of a BooleanField class. */
940
- type Options = DataFieldOptions<boolean>;
964
+ type Options = DataField.Options<boolean>;
941
965
 
942
966
  /** The type of the default options for the {@link BooleanField} class. */
943
967
  type DefaultOptions = SimpleMerge<
@@ -968,48 +992,6 @@ declare namespace BooleanField {
968
992
  type InitializedType<Opts extends Options> = DataField.DerivedInitializedType<boolean, MergedOptions<Opts>>;
969
993
  }
970
994
 
971
- declare global {
972
- interface NumberFieldOptions extends DataFieldOptions<number> {
973
- /**
974
- * A minimum allowed value
975
- * @defaultValue `undefined`
976
- */
977
- min?: number | undefined;
978
-
979
- /**
980
- * A maximum allowed value
981
- * @defaultValue `undefined`
982
- */
983
- max?: number | undefined;
984
-
985
- /**
986
- * A permitted step size
987
- * @defaultValue `undefined`
988
- */
989
- step?: number | undefined;
990
-
991
- /**
992
- * Must the number be an integer?
993
- * @defaultValue `false`
994
- */
995
- integer?: boolean | undefined;
996
-
997
- /**
998
- * Must the number be positive?
999
- * @defaultValue `false`
1000
- */
1001
- positive?: boolean | undefined;
1002
-
1003
- /**
1004
- * An array of values or an object of values/labels which represent
1005
- * allowed choices for the field. A function may be provided which dynamically
1006
- * returns the array of choices.
1007
- * @defaultValue `undefined`
1008
- */
1009
- choices?: NumberField.Choices | undefined;
1010
- }
1011
- }
1012
-
1013
995
  /**
1014
996
  * A subclass of [DataField]{@link DataField} which deals with number-typed data.
1015
997
  * @typeParam Options - the options of the NumberField instance
@@ -1024,7 +1006,7 @@ declare global {
1024
1006
  * InitialValue: `null`
1025
1007
  */
1026
1008
  declare class NumberField<
1027
- const Options extends NumberFieldOptions = NumberField.DefaultOptions,
1009
+ const Options extends NumberField.Options = NumberField.DefaultOptions,
1028
1010
  const AssignmentType = NumberField.AssignmentType<Options>,
1029
1011
  const InitializedType = NumberField.InitializedType<Options>,
1030
1012
  const PersistedType extends number | null | undefined = NumberField.InitializedType<Options>,
@@ -1035,7 +1017,7 @@ declare class NumberField<
1035
1017
  constructor(options?: Options, context?: DataField.Context);
1036
1018
 
1037
1019
  /** @defaultValue `null` */
1038
- override initial: DataFieldOptions.InitialType<InitializedType>;
1020
+ override initial: DataField.Options.InitialType<InitializedType>;
1039
1021
 
1040
1022
  /** @defaultValue `true` */
1041
1023
  override nullable: boolean;
@@ -1078,7 +1060,7 @@ declare class NumberField<
1078
1060
  */
1079
1061
  choices: number[] | Record<number, string> | (() => number[] | Record<number, string>) | undefined;
1080
1062
 
1081
- protected static override get _defaults(): NumberFieldOptions;
1063
+ protected static override get _defaults(): NumberField.Options;
1082
1064
 
1083
1065
  protected override _cast(value: AssignmentType): InitializedType;
1084
1066
 
@@ -1144,6 +1126,46 @@ declare namespace NumberField {
1144
1126
  }
1145
1127
  >;
1146
1128
 
1129
+ interface Options extends DataField.Options<number> {
1130
+ /**
1131
+ * A minimum allowed value
1132
+ * @defaultValue `undefined`
1133
+ */
1134
+ min?: number | undefined;
1135
+
1136
+ /**
1137
+ * A maximum allowed value
1138
+ * @defaultValue `undefined`
1139
+ */
1140
+ max?: number | undefined;
1141
+
1142
+ /**
1143
+ * A permitted step size
1144
+ * @defaultValue `undefined`
1145
+ */
1146
+ step?: number | undefined;
1147
+
1148
+ /**
1149
+ * Must the number be an integer?
1150
+ * @defaultValue `false`
1151
+ */
1152
+ integer?: boolean | undefined;
1153
+
1154
+ /**
1155
+ * Must the number be positive?
1156
+ * @defaultValue `false`
1157
+ */
1158
+ positive?: boolean | undefined;
1159
+
1160
+ /**
1161
+ * An array of values or an object of values/labels which represent
1162
+ * allowed choices for the field. A function may be provided which dynamically
1163
+ * returns the array of choices.
1164
+ * @defaultValue `undefined`
1165
+ */
1166
+ choices?: NumberField.Choices | undefined;
1167
+ }
1168
+
1147
1169
  /** The type of the default options for the {@link NumberField} class when choices are provided. */
1148
1170
  type DefaultOptionsWhenChoicesProvided = SimpleMerge<DefaultOptions, { nullable: false }>;
1149
1171
 
@@ -1151,7 +1173,7 @@ declare namespace NumberField {
1151
1173
  * A helper type for the given options type merged into the default options of the NumberField class.
1152
1174
  * @typeParam Options - the options that override the default options
1153
1175
  */
1154
- type MergedOptions<Options extends NumberFieldOptions> = SimpleMerge<
1176
+ type MergedOptions<Options extends NumberField.Options> = SimpleMerge<
1155
1177
  undefined extends Options["choices"] ? DefaultOptions : DefaultOptionsWhenChoicesProvided,
1156
1178
  Options
1157
1179
  >;
@@ -1160,7 +1182,7 @@ declare namespace NumberField {
1160
1182
  * A shorthand for the assignment type of a NumberField class.
1161
1183
  * @typeParam Options - the options that override the default options
1162
1184
  */
1163
- type AssignmentType<Options extends NumberFieldOptions> = DataField.DerivedAssignmentType<
1185
+ type AssignmentType<Options extends NumberField.Options> = DataField.DerivedAssignmentType<
1164
1186
  number,
1165
1187
  MergedOptions<Options>
1166
1188
  >;
@@ -1169,7 +1191,7 @@ declare namespace NumberField {
1169
1191
  * A shorthand for the initialized type of a NumberField class.
1170
1192
  * @typeParam Options - the options that override the default options
1171
1193
  */
1172
- type InitializedType<Options extends NumberFieldOptions> = DataField.DerivedInitializedType<
1194
+ type InitializedType<Options extends NumberField.Options> = DataField.DerivedInitializedType<
1173
1195
  number,
1174
1196
  MergedOptions<Options>
1175
1197
  >;
@@ -1205,35 +1227,6 @@ declare namespace NumberField {
1205
1227
  | ToInputConfigWithOptions<InitializedType>;
1206
1228
  }
1207
1229
 
1208
- declare global {
1209
- interface StringFieldOptions extends DataFieldOptions<string> {
1210
- /**
1211
- * Is the string allowed to be blank (empty)?
1212
- * @defaultValue `true`
1213
- */
1214
- blank?: boolean | undefined;
1215
-
1216
- /**
1217
- * Should any provided string be trimmed as part of cleaning?
1218
- * @defaultValue `true`
1219
- */
1220
- trim?: boolean | undefined;
1221
-
1222
- /**
1223
- * An array of values or an object of values/labels which represent
1224
- * allowed choices for the field. A function may be provided which dynamically
1225
- * returns the array of choices.
1226
- * @defaultValue `undefined`
1227
- */
1228
- choices?: StringField.Choices | undefined;
1229
-
1230
- /**
1231
- * @defaultValue `false`
1232
- */
1233
- textSearch?: boolean | undefined;
1234
- }
1235
- }
1236
-
1237
1230
  /**
1238
1231
  * A subclass of [DataField]{@link DataField} which deals with string-typed data.
1239
1232
  * @typeParam Options - the options of the StringField instance
@@ -1248,7 +1241,7 @@ declare global {
1248
1241
  * InitialValue: `""`
1249
1242
  */
1250
1243
  declare class StringField<
1251
- const Options extends StringFieldOptions = StringField.DefaultOptions,
1244
+ const Options extends StringField.Options = StringField.DefaultOptions,
1252
1245
  const AssignmentType = StringField.AssignmentType<Options>,
1253
1246
  const InitializedType = StringField.InitializedType<Options>,
1254
1247
  const PersistedType extends string | null | undefined = StringField.InitializedType<Options>,
@@ -1259,7 +1252,7 @@ declare class StringField<
1259
1252
  constructor(options?: Options, context?: DataField.Context);
1260
1253
 
1261
1254
  /** @defaultValue `undefined` */
1262
- override initial: DataFieldOptions.InitialType<InitializedType>;
1255
+ override initial: DataField.Options.InitialType<InitializedType>;
1263
1256
 
1264
1257
  /**
1265
1258
  * Is the string allowed to be blank (empty)?
@@ -1287,7 +1280,7 @@ declare class StringField<
1287
1280
  /** @defaultValue `false` */
1288
1281
  textSearch: boolean;
1289
1282
 
1290
- protected static override get _defaults(): StringFieldOptions;
1283
+ protected static override get _defaults(): StringField.Options;
1291
1284
 
1292
1285
  override clean(value: AssignmentType, options?: DataField.CleanOptions): InitializedType;
1293
1286
 
@@ -1350,6 +1343,33 @@ declare namespace StringField {
1350
1343
  }
1351
1344
  >;
1352
1345
 
1346
+ interface Options extends DataField.Options<string> {
1347
+ /**
1348
+ * Is the string allowed to be blank (empty)?
1349
+ * @defaultValue `true`
1350
+ */
1351
+ blank?: boolean | undefined;
1352
+
1353
+ /**
1354
+ * Should any provided string be trimmed as part of cleaning?
1355
+ * @defaultValue `true`
1356
+ */
1357
+ trim?: boolean | undefined;
1358
+
1359
+ /**
1360
+ * An array of values or an object of values/labels which represent
1361
+ * allowed choices for the field. A function may be provided which dynamically
1362
+ * returns the array of choices.
1363
+ * @defaultValue `undefined`
1364
+ */
1365
+ choices?: StringField.Choices | undefined;
1366
+
1367
+ /**
1368
+ * @defaultValue `false`
1369
+ */
1370
+ textSearch?: boolean | undefined;
1371
+ }
1372
+
1353
1373
  /** The type of the default options for the {@link StringField} class when choices are provided. */
1354
1374
  type DefaultOptionsWhenChoicesProvided = SimpleMerge<DefaultOptions, { nullable: false; blank: false }>;
1355
1375
 
@@ -1357,21 +1377,21 @@ declare namespace StringField {
1357
1377
  * A helper type for the given options type merged into the default options of the StringField class.
1358
1378
  * @typeParam Options - the options that override the default options
1359
1379
  */
1360
- type MergedOptions<Options extends StringFieldOptions> = SimpleMerge<
1380
+ type MergedOptions<Options extends StringField.Options> = SimpleMerge<
1361
1381
  _OptionsForInitial<_OptionsForChoices<Options["choices"]>>,
1362
1382
  Options
1363
1383
  >;
1364
1384
 
1365
- type _OptionsForChoices<Choices extends StringFieldOptions["choices"]> = undefined extends Choices
1385
+ type _OptionsForChoices<Choices extends StringField.Options["choices"]> = undefined extends Choices
1366
1386
  ? DefaultOptions
1367
1387
  : DefaultOptionsWhenChoicesProvided;
1368
1388
 
1369
1389
  // FIXME: `"initial" extends keyof Options` does not work for modeling `"initial" in options`.
1370
- type _OptionsForInitial<Options extends StringFieldOptions> = "initial" extends keyof Options
1390
+ type _OptionsForInitial<Options extends StringField.Options> = "initial" extends keyof Options
1371
1391
  ? Options
1372
1392
  : SimpleMerge<Options, { initial: _InitialForOptions<Options> }>;
1373
1393
 
1374
- type _InitialForOptions<Options extends StringFieldOptions> = Options["required"] extends false | undefined
1394
+ type _InitialForOptions<Options extends StringField.Options> = Options["required"] extends false | undefined
1375
1395
  ? undefined
1376
1396
  : Options["blank"] extends true
1377
1397
  ? string
@@ -1381,19 +1401,24 @@ declare namespace StringField {
1381
1401
 
1382
1402
  // choices?: string[] | Record<string, string> | (() => string[] | Record<string, string>) | undefined;
1383
1403
 
1384
- type ValidChoice<Options extends StringFieldOptions> = Options["choices"] extends undefined
1404
+ type ValidChoice<Options extends StringField.Options> = Options["choices"] extends undefined
1385
1405
  ? string
1386
- : Options["choices"] extends (...args: any) => infer Choices
1406
+ : Options["choices"] extends (...args: infer _1) => infer Choices
1387
1407
  ? FixedChoice<Choices>
1388
1408
  : FixedChoice<Options["choices"]>;
1389
1409
 
1390
- type FixedChoice<Choices> = Choices extends Array<infer U> ? U : Choices extends Record<infer K, any> ? K : string;
1410
+ type FixedChoice<Choices> =
1411
+ Choices extends ReadonlyArray<infer U>
1412
+ ? U
1413
+ : Choices extends { readonly [_ in infer K]: infer _1 }
1414
+ ? K & string
1415
+ : string;
1391
1416
 
1392
1417
  /**
1393
1418
  * A shorthand for the assignment type of a StringField class.
1394
1419
  * @typeParam Options - the options that override the default options
1395
1420
  */
1396
- type AssignmentType<Options extends StringFieldOptions> = DataField.DerivedAssignmentType<
1421
+ type AssignmentType<Options extends StringField.Options> = DataField.DerivedAssignmentType<
1397
1422
  ValidChoice<Options>,
1398
1423
  MergedOptions<Options>
1399
1424
  >;
@@ -1402,7 +1427,7 @@ declare namespace StringField {
1402
1427
  * A shorthand for the initialized type of a StringField class.
1403
1428
  * @typeParam Options - the options that override the default options
1404
1429
  */
1405
- type InitializedType<Options extends StringFieldOptions> = DataField.DerivedInitializedType<
1430
+ type InitializedType<Options extends StringField.Options> = DataField.DerivedInitializedType<
1406
1431
  // TODO(LukeAbby): This is a workaround for how `ValidChoice` is defined ignorant of the `StringField`/`NumberField` divide.
1407
1432
  ValidChoice<Options> & (string | null | undefined),
1408
1433
  MergedOptions<Options>
@@ -1457,7 +1482,7 @@ declare namespace StringField {
1457
1482
  * InitialValue: `{}`
1458
1483
  */
1459
1484
  declare class ObjectField<
1460
- const Options extends DataFieldOptions<AnyObject> = ObjectField.DefaultOptions,
1485
+ const Options extends DataField.Options<AnyObject> = ObjectField.DefaultOptions,
1461
1486
  const AssignmentType = ObjectField.AssignmentType<Options>,
1462
1487
  const InitializedType = ObjectField.InitializedType<Options>,
1463
1488
  const PersistedType extends AnyObject | null | undefined = ObjectField.InitializedType<Options>,
@@ -1469,9 +1494,9 @@ declare class ObjectField<
1469
1494
  override nullable: boolean;
1470
1495
 
1471
1496
  /** @defaultValue `() => ({})` */
1472
- override initial: DataFieldOptions.InitialType<InitializedType>;
1497
+ override initial: DataField.Options.InitialType<InitializedType>;
1473
1498
 
1474
- protected static override get _defaults(): DataFieldOptions<AnyObject>;
1499
+ protected static override get _defaults(): DataField.Options<AnyObject>;
1475
1500
 
1476
1501
  protected override _cast(value: AssignmentType): InitializedType;
1477
1502
 
@@ -1503,13 +1528,13 @@ declare namespace ObjectField {
1503
1528
  * A helper type for the given options type merged into the default options of the ObjectField class.
1504
1529
  * @typeParam Options - the options that override the default options
1505
1530
  */
1506
- type MergedOptions<Options extends DataFieldOptions<AnyObject>> = SimpleMerge<DefaultOptions, Options>;
1531
+ type MergedOptions<Options extends DataField.Options<AnyObject>> = SimpleMerge<DefaultOptions, Options>;
1507
1532
 
1508
1533
  /**
1509
1534
  * A shorthand for the assignment type of a ObjectField class.
1510
1535
  * @typeParam Options - the options that override the default options
1511
1536
  */
1512
- type AssignmentType<Options extends DataFieldOptions<AnyObject>> = DataField.DerivedAssignmentType<
1537
+ type AssignmentType<Options extends DataField.Options<AnyObject>> = DataField.DerivedAssignmentType<
1513
1538
  AnyObject,
1514
1539
  MergedOptions<Options>
1515
1540
  >;
@@ -1518,7 +1543,7 @@ declare namespace ObjectField {
1518
1543
  * A shorthand for the initialized type of a ObjectField class.
1519
1544
  * @typeParam Options - the options that override the default options
1520
1545
  */
1521
- type InitializedType<Options extends DataFieldOptions<AnyObject>> = DataField.DerivedInitializedType<
1546
+ type InitializedType<Options extends DataField.Options<AnyObject>> = DataField.DerivedInitializedType<
1522
1547
  AnyObject,
1523
1548
  MergedOptions<Options>
1524
1549
  >;
@@ -1534,7 +1559,7 @@ declare namespace ObjectField {
1534
1559
  // The type `{}` is useful here because in an intersection it reduces down to nothing unlike `EmptyObject`.
1535
1560
  // eslint-disable-next-line @typescript-eslint/no-empty-object-type
1536
1561
  ExtensionFlags extends AnyObject = {},
1537
- Options extends DataFieldOptions.Any = ObjectField.DefaultOptions,
1562
+ Options extends DataField.Options.Any = ObjectField.DefaultOptions,
1538
1563
  > = ObjectField<
1539
1564
  Options,
1540
1565
  DataField.DerivedAssignmentType<Document.ConfiguredFlagsForName<Name> & ExtensionFlags, MergedOptions<Options>>,
@@ -1562,9 +1587,11 @@ declare namespace ObjectField {
1562
1587
  */
1563
1588
  declare class ArrayField<
1564
1589
  const ElementFieldType extends DataField.Any | Document.AnyConstructor,
1590
+ const Options extends ArrayField.AnyOptions = ArrayField.DefaultOptions<
1591
+ ArrayField.AssignmentElementType<ElementFieldType>
1592
+ >,
1565
1593
  const AssignmentElementType = ArrayField.AssignmentElementType<ElementFieldType>,
1566
1594
  const InitializedElementType = ArrayField.InitializedElementType<ElementFieldType>,
1567
- const Options extends ArrayField.Options<AssignmentElementType> = ArrayField.DefaultOptions<AssignmentElementType>,
1568
1595
  const AssignmentType = ArrayField.AssignmentType<AssignmentElementType, Options>,
1569
1596
  const InitializedType = ArrayField.InitializedType<AssignmentElementType, InitializedElementType, Options>,
1570
1597
  const PersistedElementType = ArrayField.PersistedElementType<ElementFieldType>,
@@ -1587,7 +1614,7 @@ declare class ArrayField<
1587
1614
  override nullable: boolean;
1588
1615
 
1589
1616
  /** @defaultValue `() => []` */
1590
- override initial: DataFieldOptions.InitialType<InitializedType>;
1617
+ override initial: DataField.Options.InitialType<InitializedType>;
1591
1618
 
1592
1619
  /**
1593
1620
  * The data type of each element in this array
@@ -1672,7 +1699,9 @@ declare namespace ArrayField {
1672
1699
  * A shorthand for the options of an ArrayField class.
1673
1700
  * @typeParam AssignmentElementType - the assignment type of the elements in the array
1674
1701
  */
1675
- type Options<AssignmentElementType> = DataFieldOptions<BaseAssignmentType<AssignmentElementType>>;
1702
+ type Options<AssignmentElementType> = DataField.Options<BaseAssignmentType<AssignmentElementType>>;
1703
+
1704
+ type AnyOptions = Options<unknown>;
1676
1705
 
1677
1706
  /**
1678
1707
  * The base assignment type for the {@link ArrayField} class.
@@ -1702,7 +1731,7 @@ declare namespace ArrayField {
1702
1731
  * @typeParam AssignmentElementType - the assignment type of the elements of the ArrayField
1703
1732
  * @typeParam Opts - the options that override the default options
1704
1733
  */
1705
- type MergedOptions<AssignmentElementType, Opts extends Options<AssignmentElementType>> = SimpleMerge<
1734
+ type MergedOptions<AssignmentElementType, Opts extends AnyOptions> = SimpleMerge<
1706
1735
  DefaultOptions<AssignmentElementType>,
1707
1736
  Opts
1708
1737
  >;
@@ -1745,10 +1774,7 @@ declare namespace ArrayField {
1745
1774
  * @typeParam AssignmentElementType - the assignment type of the elements of the ArrayField
1746
1775
  * @typeParam Opts - the options that override the default options
1747
1776
  */
1748
- type AssignmentType<
1749
- AssignmentElementType,
1750
- Opts extends Options<AssignmentElementType>,
1751
- > = DataField.DerivedAssignmentType<
1777
+ type AssignmentType<AssignmentElementType, Opts extends AnyOptions> = DataField.DerivedAssignmentType<
1752
1778
  BaseAssignmentType<AssignmentElementType>,
1753
1779
  MergedOptions<AssignmentElementType, Opts>
1754
1780
  >;
@@ -1762,7 +1788,7 @@ declare namespace ArrayField {
1762
1788
  type InitializedType<
1763
1789
  AssignmentElementType,
1764
1790
  InitializedElementType,
1765
- Opts extends Options<AssignmentElementType>,
1791
+ Opts extends AnyOptions,
1766
1792
  > = DataField.DerivedInitializedType<InitializedElementType[], MergedOptions<AssignmentElementType, Opts>>;
1767
1793
 
1768
1794
  /**
@@ -1774,7 +1800,7 @@ declare namespace ArrayField {
1774
1800
  type PersistedType<
1775
1801
  AssignmentElementType,
1776
1802
  PersistedElementType,
1777
- Opts extends Options<AssignmentElementType>,
1803
+ Opts extends AnyOptions,
1778
1804
  > = DataField.DerivedInitializedType<PersistedElementType[], MergedOptions<AssignmentElementType, Opts>>;
1779
1805
  }
1780
1806
 
@@ -1798,9 +1824,9 @@ declare namespace ArrayField {
1798
1824
  */
1799
1825
  declare class SetField<
1800
1826
  ElementFieldType extends DataField.Any,
1827
+ Options extends SetField.AnyOptions = SetField.DefaultOptions<ArrayField.AssignmentElementType<ElementFieldType>>,
1801
1828
  AssignmentElementType = ArrayField.AssignmentElementType<ElementFieldType>,
1802
1829
  InitializedElementType = ArrayField.InitializedElementType<ElementFieldType>,
1803
- Options extends SetField.Options<AssignmentElementType> = SetField.DefaultOptions<AssignmentElementType>,
1804
1830
  AssignmentType = SetField.AssignmentType<AssignmentElementType, Options>,
1805
1831
  InitializedType = SetField.InitializedType<AssignmentElementType, InitializedElementType, Options>,
1806
1832
  PersistedElementType = ArrayField.PersistedElementType<ElementFieldType>,
@@ -1811,9 +1837,9 @@ declare class SetField<
1811
1837
  >,
1812
1838
  > extends ArrayField<
1813
1839
  ElementFieldType,
1840
+ Options,
1814
1841
  AssignmentElementType,
1815
1842
  InitializedElementType,
1816
- Options,
1817
1843
  AssignmentType,
1818
1844
  InitializedType,
1819
1845
  PersistedElementType,
@@ -1852,7 +1878,9 @@ declare namespace SetField {
1852
1878
  * A shorthand for the options of a SetField class.
1853
1879
  * @typeParam AssignmentElementType - the assignment type of the elements in the array
1854
1880
  */
1855
- type Options<AssignmentElementType> = DataFieldOptions<SetField.BaseAssignmentType<AssignmentElementType>>;
1881
+ type Options<AssignmentElementType> = DataField.Options<SetField.BaseAssignmentType<AssignmentElementType>>;
1882
+
1883
+ type AnyOptions = Options<unknown>;
1856
1884
 
1857
1885
  /**
1858
1886
  * The base assignment type for the {@link SetField} class.
@@ -1871,7 +1899,7 @@ declare namespace SetField {
1871
1899
  * @typeParam AssignmentElementType - the assignment type of the elements of the SetField
1872
1900
  * @typeParam Opts - the options that override the default options
1873
1901
  */
1874
- type MergedOptions<AssignmentElementType, Opts extends Options<AssignmentElementType>> = SimpleMerge<
1902
+ type MergedOptions<AssignmentElementType, Opts extends AnyOptions> = SimpleMerge<
1875
1903
  DefaultOptions<AssignmentElementType>,
1876
1904
  Opts
1877
1905
  >;
@@ -1881,10 +1909,7 @@ declare namespace SetField {
1881
1909
  * @typeParam AssignmentElementType - the assignment type of the elements of the SetField
1882
1910
  * @typeParam Opts - the options that override the default options
1883
1911
  */
1884
- type AssignmentType<
1885
- AssignmentElementType,
1886
- Opts extends Options<AssignmentElementType>,
1887
- > = DataField.DerivedAssignmentType<
1912
+ type AssignmentType<AssignmentElementType, Opts extends AnyOptions> = DataField.DerivedAssignmentType<
1888
1913
  BaseAssignmentType<AssignmentElementType>,
1889
1914
  MergedOptions<AssignmentElementType, Opts>
1890
1915
  >;
@@ -1898,7 +1923,7 @@ declare namespace SetField {
1898
1923
  type InitializedType<
1899
1924
  AssignmentElementType,
1900
1925
  InitializedElementType,
1901
- Opts extends Options<AssignmentElementType>,
1926
+ Opts extends AnyOptions,
1902
1927
  > = DataField.DerivedInitializedType<Set<InitializedElementType>, MergedOptions<AssignmentElementType, Opts>>;
1903
1928
 
1904
1929
  /**
@@ -1910,7 +1935,7 @@ declare namespace SetField {
1910
1935
  type PersistedType<
1911
1936
  AssignmentElementType,
1912
1937
  PersistedElementType,
1913
- Opts extends Options<AssignmentElementType>,
1938
+ Opts extends AnyOptions,
1914
1939
  > = DataField.DerivedInitializedType<PersistedElementType[], MergedOptions<AssignmentElementType, Opts>>;
1915
1940
 
1916
1941
  type ToInputConfig<ElementFieldType extends DataField.Any, InitializedType> = ElementFieldType extends {
@@ -1954,7 +1979,7 @@ declare class EmbeddedDataField<
1954
1979
  */
1955
1980
  model: ModelType;
1956
1981
 
1957
- protected override _initialize(fields: DataSchema): DataSchema;
1982
+ protected override _initialize(fields: DataModel.SchemaOfClass<ModelType>): DataModel.SchemaOfClass<ModelType>;
1958
1983
 
1959
1984
  override initialize(
1960
1985
  value: PersistedType,
@@ -1979,7 +2004,7 @@ declare namespace EmbeddedDataField {
1979
2004
  * A shorthand for the options of an EmbeddedDataField class.
1980
2005
  * @typeParam ModelType - the DataModel for the embedded data
1981
2006
  */
1982
- type Options<ModelType extends DataModel.AnyConstructor> = DataFieldOptions<
2007
+ type Options<ModelType extends DataModel.AnyConstructor> = DataField.Options<
1983
2008
  SchemaField.InnerAssignmentType<DataModel.SchemaOfClass<ModelType>> | __SchemaFieldInitial
1984
2009
  >;
1985
2010
 
@@ -2018,10 +2043,7 @@ declare namespace EmbeddedDataField {
2018
2043
  type InitializedType<
2019
2044
  ModelType extends DataModel.AnyConstructor,
2020
2045
  Opts extends Options<ModelType>,
2021
- > = DataField.DerivedInitializedType<
2022
- SchemaField.InnerInitializedType<DataModel.SchemaOfClass<ModelType>>,
2023
- MergedOptions<ModelType, Opts>
2024
- >;
2046
+ > = DataField.DerivedInitializedType<FixedInstanceType<ModelType>, MergedOptions<ModelType, Opts>>;
2025
2047
 
2026
2048
  /**
2027
2049
  * A shorthand for the persisted type of an EmbeddedDataField class.
@@ -2057,11 +2079,13 @@ declare namespace EmbeddedDataField {
2057
2079
  */
2058
2080
  declare class EmbeddedCollectionField<
2059
2081
  ElementFieldType extends Document.AnyConstructor,
2082
+ // TODO(LukeAbby): See if `ParentDataModel` can be made redundant by automatically inferring.
2060
2083
  ParentDataModel extends Document.Any,
2084
+ Options extends EmbeddedCollectionField.Options<any> = EmbeddedCollectionField.DefaultOptions<
2085
+ EmbeddedCollectionField.AssignmentElementType<ElementFieldType>
2086
+ >,
2061
2087
  AssignmentElementType = EmbeddedCollectionField.AssignmentElementType<ElementFieldType>,
2062
2088
  InitializedElementType extends Document.Any = EmbeddedCollectionField.InitializedElementType<ElementFieldType>,
2063
- Options extends
2064
- EmbeddedCollectionField.Options<AssignmentElementType> = EmbeddedCollectionField.DefaultOptions<AssignmentElementType>,
2065
2089
  AssignmentType = EmbeddedCollectionField.AssignmentType<AssignmentElementType, Options>,
2066
2090
  InitializedType = EmbeddedCollectionField.InitializedType<
2067
2091
  AssignmentElementType,
@@ -2077,9 +2101,9 @@ declare class EmbeddedCollectionField<
2077
2101
  >,
2078
2102
  > extends ArrayField<
2079
2103
  ElementFieldType,
2104
+ Options,
2080
2105
  AssignmentElementType,
2081
2106
  InitializedElementType,
2082
- Options,
2083
2107
  AssignmentType,
2084
2108
  InitializedType,
2085
2109
  PersistedElementType,
@@ -2156,7 +2180,7 @@ declare namespace EmbeddedCollectionField {
2156
2180
  * A shorthand for the options of an EmbeddedCollectionField class.
2157
2181
  * @typeParam AssignmentElementType - the assignment type of the elements of the EmbeddedCollectionField
2158
2182
  */
2159
- type Options<AssignmentElementType> = DataFieldOptions<ArrayField.BaseAssignmentType<AssignmentElementType>>;
2183
+ type Options<AssignmentElementType> = DataField.Options<ArrayField.BaseAssignmentType<AssignmentElementType>>;
2160
2184
 
2161
2185
  /**
2162
2186
  * The type of the default options for the {@link EmbeddedCollectionField} class.
@@ -2264,10 +2288,11 @@ declare namespace EmbeddedCollectionField {
2264
2288
  declare class EmbeddedCollectionDeltaField<
2265
2289
  ElementFieldType extends Document.AnyConstructor,
2266
2290
  ParentDataModel extends Document.Any,
2291
+ Options extends EmbeddedCollectionDeltaField.Options<any> = EmbeddedCollectionDeltaField.DefaultOptions<
2292
+ EmbeddedCollectionDeltaField.AssignmentElementType<ElementFieldType>
2293
+ >,
2267
2294
  AssignmentElementType = EmbeddedCollectionDeltaField.AssignmentElementType<ElementFieldType>,
2268
2295
  InitializedElementType extends Document.Any = EmbeddedCollectionDeltaField.InitializedElementType<ElementFieldType>,
2269
- Options extends
2270
- EmbeddedCollectionDeltaField.Options<AssignmentElementType> = EmbeddedCollectionDeltaField.DefaultOptions<AssignmentElementType>,
2271
2296
  AssignmentType = EmbeddedCollectionDeltaField.AssignmentType<AssignmentElementType, Options>,
2272
2297
  InitializedType = EmbeddedCollectionDeltaField.InitializedType<
2273
2298
  AssignmentElementType,
@@ -2284,9 +2309,9 @@ declare class EmbeddedCollectionDeltaField<
2284
2309
  > extends EmbeddedCollectionField<
2285
2310
  ElementFieldType,
2286
2311
  ParentDataModel,
2312
+ Options,
2287
2313
  AssignmentElementType,
2288
2314
  InitializedElementType,
2289
- Options,
2290
2315
  AssignmentType,
2291
2316
  InitializedType,
2292
2317
  PersistedElementType,
@@ -2307,7 +2332,7 @@ declare namespace EmbeddedCollectionDeltaField {
2307
2332
  * A shorthand for the options of an EmbeddedCollectionDeltaField class.
2308
2333
  * @typeParam AssignmentElementType - the assignment type of the elements of the EmbeddedCollectionDeltaField
2309
2334
  */
2310
- type Options<AssignmentElementType> = DataFieldOptions<ArrayField.BaseAssignmentType<AssignmentElementType>>;
2335
+ type Options<AssignmentElementType> = DataField.Options<ArrayField.BaseAssignmentType<AssignmentElementType>>;
2311
2336
 
2312
2337
  /**
2313
2338
  * The type of the default options for the {@link EmbeddedCollectionDeltaField} class.
@@ -2447,7 +2472,7 @@ declare namespace EmbeddedDocumentField {
2447
2472
  * A shorthand for the options of an EmbeddedDocumentField class.
2448
2473
  * @typeParam DocumentType - the type of the embedded Document
2449
2474
  */
2450
- type Options<DocumentType extends Document.AnyConstructor> = DataFieldOptions<
2475
+ type Options<DocumentType extends Document.AnyConstructor> = DataField.Options<
2451
2476
  SchemaField.InnerAssignmentType<DataModel.SchemaOfClass<DocumentType>> | __SchemaFieldInitial
2452
2477
  >;
2453
2478
 
@@ -2524,7 +2549,7 @@ declare namespace EmbeddedDocumentField {
2524
2549
  * InitialValue: `null`
2525
2550
  */
2526
2551
  declare class DocumentIdField<
2527
- Options extends StringFieldOptions = DocumentIdField.DefaultOptions,
2552
+ Options extends StringField.Options = DocumentIdField.DefaultOptions,
2528
2553
  AssignmentType = DocumentIdField.AssignmentType<Options>,
2529
2554
  InitializedType = DocumentIdField.InitializedType<Options>,
2530
2555
  PersistedType extends string | null | undefined = DocumentIdField.InitializedType<Options>,
@@ -2539,7 +2564,7 @@ declare class DocumentIdField<
2539
2564
  override nullable: boolean;
2540
2565
 
2541
2566
  /** @defaultValue `null` */
2542
- override initial: DataFieldOptions.InitialType<InitializedType>;
2567
+ override initial: DataField.Options.InitialType<InitializedType>;
2543
2568
 
2544
2569
  /** @defaultValue `true` */
2545
2570
  override readonly: boolean;
@@ -2547,7 +2572,7 @@ declare class DocumentIdField<
2547
2572
  /** @defaultValue `"is not a valid Document ID string"` */
2548
2573
  override validationError: string;
2549
2574
 
2550
- protected static override get _defaults(): StringFieldOptions;
2575
+ protected static override get _defaults(): StringField.Options;
2551
2576
 
2552
2577
  protected override _cast(value: AssignmentType): InitializedType;
2553
2578
 
@@ -2575,13 +2600,13 @@ declare namespace DocumentIdField {
2575
2600
  * A helper type for the given options type merged into the default options of the DocumentIdField class.
2576
2601
  * @typeParam Options - the options that override the default options
2577
2602
  */
2578
- type MergedOptions<Options extends StringFieldOptions> = SimpleMerge<DefaultOptions, Options>;
2603
+ type MergedOptions<Options extends StringField.Options> = SimpleMerge<DefaultOptions, Options>;
2579
2604
 
2580
2605
  /**
2581
2606
  * A shorthand for the assignment type of a StringField class.
2582
2607
  * @typeParam Options - the options that override the default options
2583
2608
  */
2584
- type AssignmentType<Options extends StringFieldOptions> = DataField.DerivedAssignmentType<
2609
+ type AssignmentType<Options extends StringField.Options> = DataField.DerivedAssignmentType<
2585
2610
  string | Document.Any,
2586
2611
  MergedOptions<Options>
2587
2612
  >;
@@ -2590,7 +2615,7 @@ declare namespace DocumentIdField {
2590
2615
  * A shorthand for the initialized type of a StringField class.
2591
2616
  * @typeParam Options - the options that override the default options
2592
2617
  */
2593
- type InitializedType<Options extends StringFieldOptions> = DataField.DerivedInitializedType<
2618
+ type InitializedType<Options extends StringField.Options> = DataField.DerivedInitializedType<
2594
2619
  string,
2595
2620
  MergedOptions<Options>
2596
2621
  >;
@@ -2655,14 +2680,13 @@ declare class DocumentUUIDField<
2655
2680
  }
2656
2681
 
2657
2682
  declare namespace DocumentUUIDField {
2658
- type Options = StringFieldOptions &
2659
- StringFieldOptions & {
2660
- /* A specific document type in CONST.ALL_DOCUMENT_TYPES required by this field */
2661
- type?: Document.Type | undefined;
2683
+ type Options = StringField.Options & {
2684
+ /* A specific document type in CONST.ALL_DOCUMENT_TYPES required by this field */
2685
+ type?: Document.Type | undefined;
2662
2686
 
2663
- /* Does this field require (or prohibit) embedded documents? */
2664
- embedded?: boolean | undefined;
2665
- };
2687
+ /* Does this field require (or prohibit) embedded documents? */
2688
+ embedded?: boolean | undefined;
2689
+ };
2666
2690
 
2667
2691
  type DefaultOptions = SimpleMerge<
2668
2692
  StringField.DefaultOptions,
@@ -2752,8 +2776,8 @@ declare class ForeignDocumentField<
2752
2776
 
2753
2777
  declare namespace ForeignDocumentField {
2754
2778
  /** The options for the ForeignDocumentField class. */
2755
- type Options = StringFieldOptions &
2756
- DataFieldOptions<string | Document.Any> & {
2779
+ type Options = StringField.Options &
2780
+ DataField.Options<string | Document.Any> & {
2757
2781
  // Making this ---------^ more concrete leads to excessively deep instantiation
2758
2782
  idOnly?: boolean;
2759
2783
  };
@@ -2781,7 +2805,7 @@ declare namespace ForeignDocumentField {
2781
2805
  type AssignmentType<
2782
2806
  ConcreteDocument extends Document.AnyConstructor,
2783
2807
  Opts extends Options,
2784
- > = DataField.DerivedAssignmentType<string | Document.ToConfiguredClass<ConcreteDocument>, MergedOptions<Opts>>;
2808
+ > = DataField.DerivedAssignmentType<string | Document.ToConfiguredInstance<ConcreteDocument>, MergedOptions<Opts>>;
2785
2809
 
2786
2810
  /**
2787
2811
  * A shorthand for the initialized type of a ForeignDocumentField class.
@@ -2816,7 +2840,7 @@ declare namespace ForeignDocumentField {
2816
2840
  * InitialValue: `null`
2817
2841
  */
2818
2842
  declare class ColorField<
2819
- Options extends StringFieldOptions = ColorField.DefaultOptions,
2843
+ Options extends StringField.Options = ColorField.DefaultOptions,
2820
2844
  AssignmentType = ColorField.AssignmentType<Options>,
2821
2845
  InitializedType = ColorField.InitializedType<Options>,
2822
2846
  PersistedType extends string | null | undefined = ColorField.PersistedType<Options>,
@@ -2825,7 +2849,7 @@ declare class ColorField<
2825
2849
  override nullable: boolean;
2826
2850
 
2827
2851
  /** @defaultValue `null` */
2828
- override initial: DataFieldOptions.InitialType<InitializedType>;
2852
+ override initial: DataField.Options.InitialType<InitializedType>;
2829
2853
 
2830
2854
  /** @defaultValue `false` */
2831
2855
  override blank: boolean;
@@ -2833,7 +2857,7 @@ declare class ColorField<
2833
2857
  /** @defaultValue `"is not a valid hexadecimal color string"` */
2834
2858
  override validationError: string;
2835
2859
 
2836
- protected static override get _defaults(): StringFieldOptions;
2860
+ protected static override get _defaults(): StringField.Options;
2837
2861
 
2838
2862
  override clean(value: AssignmentType, options?: DataField.CleanOptions): InitializedType;
2839
2863
 
@@ -2859,13 +2883,13 @@ declare namespace ColorField {
2859
2883
  * A helper type for the given options type merged into the default options of the ColorField class.
2860
2884
  * @typeParam Options - the options that override the default options
2861
2885
  */
2862
- type MergedOptions<Options extends StringFieldOptions> = SimpleMerge<DefaultOptions, Options>;
2886
+ type MergedOptions<Options extends StringField.Options> = SimpleMerge<DefaultOptions, Options>;
2863
2887
 
2864
2888
  /**
2865
2889
  * A shorthand for the assignment type of a ColorField class.
2866
2890
  * @typeParam Options - the options that override the default options
2867
2891
  */
2868
- type AssignmentType<Options extends StringFieldOptions> = DataField.DerivedAssignmentType<
2892
+ type AssignmentType<Options extends StringField.Options> = DataField.DerivedAssignmentType<
2869
2893
  string,
2870
2894
  MergedOptions<Options>
2871
2895
  >;
@@ -2874,7 +2898,7 @@ declare namespace ColorField {
2874
2898
  * A shorthand for the initialized type of a ColorField class.
2875
2899
  * @typeParam Options - the options that override the default options
2876
2900
  */
2877
- type InitializedType<Options extends StringFieldOptions> = DataField.DerivedInitializedType<
2901
+ type InitializedType<Options extends StringField.Options> = DataField.DerivedInitializedType<
2878
2902
  Color,
2879
2903
  MergedOptions<Options>
2880
2904
  >;
@@ -2883,37 +2907,12 @@ declare namespace ColorField {
2883
2907
  * A shorthand for the persisted type of a ColorField class.
2884
2908
  * @typeParam Options - the options that override the default options
2885
2909
  */
2886
- type PersistedType<Options extends StringFieldOptions> = DataField.DerivedInitializedType<
2910
+ type PersistedType<Options extends StringField.Options> = DataField.DerivedInitializedType<
2887
2911
  string,
2888
2912
  MergedOptions<Options>
2889
2913
  >;
2890
2914
  }
2891
2915
 
2892
- declare global {
2893
- /**
2894
- * @typeParam Value - the type of the value of the field
2895
- */
2896
- interface FilePathFieldOptions extends StringFieldOptions {
2897
- /**
2898
- * A set of categories in CONST.FILE_CATEGORIES which this field supports
2899
- * @defaultValue `[]`
2900
- */
2901
- categories?: (keyof typeof CONST.FILE_CATEGORIES)[];
2902
-
2903
- /**
2904
- * Is embedded base64 data supported in lieu of a file path?
2905
- * @defaultValue `false`
2906
- */
2907
- base64?: boolean;
2908
-
2909
- /**
2910
- * Does this file path field allow wildcard characters?
2911
- * @defaultValue `false`
2912
- */
2913
- wildcard?: boolean;
2914
- }
2915
- }
2916
-
2917
2916
  /**
2918
2917
  * A special [StringField]{@link StringField} which records a file path or inline base64 data.
2919
2918
  * @typeParam Options - the options of the FilePathField instance
@@ -2928,7 +2927,7 @@ declare global {
2928
2927
  * InitialValue: `null`
2929
2928
  */
2930
2929
  declare class FilePathField<
2931
- Options extends FilePathFieldOptions = FilePathField.DefaultOptions,
2930
+ Options extends FilePathField.Options = FilePathField.DefaultOptions,
2932
2931
  AssignmentType = FilePathField.AssignmentType<Options>,
2933
2932
  InitializedType = FilePathField.InitializedType<Options>,
2934
2933
  PersistedType extends string | null | undefined = FilePathField.InitializedType<Options>,
@@ -2963,9 +2962,9 @@ declare class FilePathField<
2963
2962
  override blank: boolean;
2964
2963
 
2965
2964
  /** @defaultValue `null` */
2966
- override initial: DataFieldOptions.InitialType<InitializedType>;
2965
+ override initial: DataField.Options.InitialType<InitializedType>;
2967
2966
 
2968
- protected static override get _defaults(): FilePathFieldOptions;
2967
+ protected static override get _defaults(): FilePathField.Options;
2969
2968
 
2970
2969
  override clean(value: AssignmentType, options?: DataField.CleanOptions): InitializedType;
2971
2970
 
@@ -2989,17 +2988,37 @@ declare namespace FilePathField {
2989
2988
  }
2990
2989
  >;
2991
2990
 
2991
+ interface Options extends StringField.Options {
2992
+ /**
2993
+ * A set of categories in CONST.FILE_CATEGORIES which this field supports
2994
+ * @defaultValue `[]`
2995
+ */
2996
+ categories?: (keyof typeof CONST.FILE_CATEGORIES)[];
2997
+
2998
+ /**
2999
+ * Is embedded base64 data supported in lieu of a file path?
3000
+ * @defaultValue `false`
3001
+ */
3002
+ base64?: boolean;
3003
+
3004
+ /**
3005
+ * Does this file path field allow wildcard characters?
3006
+ * @defaultValue `false`
3007
+ */
3008
+ wildcard?: boolean;
3009
+ }
3010
+
2992
3011
  /**
2993
3012
  * A helper type for the given options type merged into the default options of the FilePathField class.
2994
3013
  * @typeParam Options - the options that override the default options
2995
3014
  */
2996
- type MergedOptions<Options extends StringFieldOptions> = SimpleMerge<DefaultOptions, Options>;
3015
+ type MergedOptions<Options extends StringField.Options> = SimpleMerge<DefaultOptions, Options>;
2997
3016
 
2998
3017
  /**
2999
3018
  * A shorthand for the assignment type of a FilePathField class.
3000
3019
  * @typeParam Options - the options that override the default options
3001
3020
  */
3002
- type AssignmentType<Options extends StringFieldOptions> = DataField.DerivedAssignmentType<
3021
+ type AssignmentType<Options extends StringField.Options> = DataField.DerivedAssignmentType<
3003
3022
  string,
3004
3023
  MergedOptions<Options>
3005
3024
  >;
@@ -3008,7 +3027,7 @@ declare namespace FilePathField {
3008
3027
  * A shorthand for the initialized type of a FilePathField class.
3009
3028
  * @typeParam Options - the options that override the default options
3010
3029
  */
3011
- type InitializedType<Options extends StringFieldOptions> = DataField.DerivedInitializedType<
3030
+ type InitializedType<Options extends StringField.Options> = DataField.DerivedInitializedType<
3012
3031
  string,
3013
3032
  MergedOptions<Options>
3014
3033
  >;
@@ -3028,7 +3047,7 @@ declare namespace FilePathField {
3028
3047
  * InitialValue: `0`
3029
3048
  */
3030
3049
  declare class AngleField<
3031
- Options extends NumberFieldOptions = AngleField.DefaultOptions,
3050
+ Options extends NumberField.Options = AngleField.DefaultOptions,
3032
3051
  AssignmentType = AngleField.AssignmentType<Options>,
3033
3052
  InitializedType = AngleField.InitializedType<Options>,
3034
3053
  PersistedType extends number | null | undefined = AngleField.InitializedType<Options>,
@@ -3040,7 +3059,7 @@ declare class AngleField<
3040
3059
  override nullable: boolean;
3041
3060
 
3042
3061
  /** @defaultValue `0` */
3043
- override initial: DataFieldOptions.InitialType<InitializedType>;
3062
+ override initial: DataField.Options.InitialType<InitializedType>;
3044
3063
 
3045
3064
  /** @defaultValue `0` */
3046
3065
  base: number;
@@ -3054,7 +3073,7 @@ declare class AngleField<
3054
3073
  /** @defaultValue `"is not a number between 0 and 360"` */
3055
3074
  override validationError: string;
3056
3075
 
3057
- protected static override get _defaults(): NumberFieldOptions;
3076
+ protected static override get _defaults(): NumberField.Options;
3058
3077
 
3059
3078
  protected override _cast(value: AssignmentType): InitializedType;
3060
3079
  }
@@ -3078,13 +3097,13 @@ declare namespace AngleField {
3078
3097
  * A helper type for the given options type merged into the default options of the AngleField class.
3079
3098
  * @typeParam Options - the options that override the default options
3080
3099
  */
3081
- type MergedOptions<Options extends NumberFieldOptions> = SimpleMerge<DefaultOptions, Options>;
3100
+ type MergedOptions<Options extends NumberField.Options> = SimpleMerge<DefaultOptions, Options>;
3082
3101
 
3083
3102
  /**
3084
3103
  * A shorthand for the assignment type of a AngleField class.
3085
3104
  * @typeParam Options - the options that override the default options
3086
3105
  */
3087
- type AssignmentType<Options extends NumberFieldOptions> = DataField.DerivedAssignmentType<
3106
+ type AssignmentType<Options extends NumberField.Options> = DataField.DerivedAssignmentType<
3088
3107
  number,
3089
3108
  MergedOptions<Options>
3090
3109
  >;
@@ -3093,7 +3112,7 @@ declare namespace AngleField {
3093
3112
  * A shorthand for the initialized type of a AngleField class.
3094
3113
  * @typeParam Options - the options that override the default options
3095
3114
  */
3096
- type InitializedType<Options extends NumberFieldOptions> = DataField.DerivedInitializedType<
3115
+ type InitializedType<Options extends NumberField.Options> = DataField.DerivedInitializedType<
3097
3116
  number,
3098
3117
  MergedOptions<Options>
3099
3118
  >;
@@ -3113,7 +3132,7 @@ declare namespace AngleField {
3113
3132
  * InitialValue: `1`
3114
3133
  */
3115
3134
  declare class AlphaField<
3116
- Options extends NumberFieldOptions = AlphaField.DefaultOptions,
3135
+ Options extends NumberField.Options = AlphaField.DefaultOptions,
3117
3136
  AssignmentType = AlphaField.AssignmentType<Options>,
3118
3137
  InitializedType = AlphaField.InitializedType<Options>,
3119
3138
  PersistedType extends number | null | undefined = AlphaField.InitializedType<Options>,
@@ -3125,7 +3144,7 @@ declare class AlphaField<
3125
3144
  override nullable: boolean;
3126
3145
 
3127
3146
  /** @defaultValue `1` */
3128
- override initial: DataFieldOptions.InitialType<InitializedType>;
3147
+ override initial: DataField.Options.InitialType<InitializedType>;
3129
3148
 
3130
3149
  /** @defaultValue `0` */
3131
3150
  override min: number | undefined;
@@ -3136,7 +3155,7 @@ declare class AlphaField<
3136
3155
  /** @defaultValue `"is not a number between 0 and 1"` */
3137
3156
  override validationError: string;
3138
3157
 
3139
- protected static override get _defaults(): NumberFieldOptions;
3158
+ protected static override get _defaults(): NumberField.Options;
3140
3159
  }
3141
3160
 
3142
3161
  declare namespace AlphaField {
@@ -3157,13 +3176,13 @@ declare namespace AlphaField {
3157
3176
  * A helper type for the given options type merged into the default options of the AlphaField class.
3158
3177
  * @typeParam Options - the options that override the default options
3159
3178
  */
3160
- type MergedOptions<Options extends NumberFieldOptions> = SimpleMerge<DefaultOptions, Options>;
3179
+ type MergedOptions<Options extends NumberField.Options> = SimpleMerge<DefaultOptions, Options>;
3161
3180
 
3162
3181
  /**
3163
3182
  * A shorthand for the assignment type of a AlphaField class.
3164
3183
  * @typeParam Options - the options that override the default options
3165
3184
  */
3166
- type AssignmentType<Options extends NumberFieldOptions> = DataField.DerivedAssignmentType<
3185
+ type AssignmentType<Options extends NumberField.Options> = DataField.DerivedAssignmentType<
3167
3186
  number,
3168
3187
  MergedOptions<Options>
3169
3188
  >;
@@ -3172,7 +3191,7 @@ declare namespace AlphaField {
3172
3191
  * A shorthand for the initialized type of a AlphaField class.
3173
3192
  * @typeParam Options - the options that override the default options
3174
3193
  */
3175
- type InitializedType<Options extends NumberFieldOptions> = DataField.DerivedInitializedType<
3194
+ type InitializedType<Options extends NumberField.Options> = DataField.DerivedInitializedType<
3176
3195
  number,
3177
3196
  MergedOptions<Options>
3178
3197
  >;
@@ -3183,7 +3202,7 @@ declare namespace AlphaField {
3183
3202
  * Its values are normalized (modulo 1) to the range [0, 1) instead of being clamped.
3184
3203
  */
3185
3204
  declare class HueField<
3186
- const Options extends NumberFieldOptions = NumberField.DefaultOptions,
3205
+ const Options extends NumberField.Options = NumberField.DefaultOptions,
3187
3206
  const AssignmentType = NumberField.AssignmentType<Options>,
3188
3207
  const InitializedType = NumberField.InitializedType<Options>,
3189
3208
  const PersistedType extends number | null | undefined = NumberField.InitializedType<Options>,
@@ -3194,7 +3213,7 @@ declare class HueField<
3194
3213
  }
3195
3214
 
3196
3215
  declare namespace HueField {
3197
- type Options = NumberFieldOptions;
3216
+ type Options = NumberField.Options;
3198
3217
 
3199
3218
  type DefaultOptions = SimpleMerge<
3200
3219
  NumberField.DefaultOptions,
@@ -3232,7 +3251,7 @@ declare class DocumentOwnershipField<
3232
3251
  | undefined = DocumentOwnershipField.InitializedType<Options>,
3233
3252
  > extends ObjectField<Options, AssignmentType, InitializedType, PersistedType> {
3234
3253
  /** @defaultValue `{"default": DOCUMENT_OWNERSHIP_LEVELS.NONE}` */
3235
- override initial: DataFieldOptions.InitialType<InitializedType>;
3254
+ override initial: DataField.Options.InitialType<InitializedType>;
3236
3255
 
3237
3256
  /** @defaultValue `"is not a mapping of user IDs and document permission levels"` */
3238
3257
  override validationError: string;
@@ -3247,7 +3266,7 @@ declare class DocumentOwnershipField<
3247
3266
 
3248
3267
  declare namespace DocumentOwnershipField {
3249
3268
  /** A shorthand for the options of a DocumentOwnershipField class. */
3250
- type Options = DataFieldOptions<Record<string, DOCUMENT_OWNERSHIP_LEVELS>>;
3269
+ type Options = DataField.Options<Record<string, DOCUMENT_OWNERSHIP_LEVELS>>;
3251
3270
 
3252
3271
  /** The type of the default options for the {@link DocumentOwnershipField} class. */
3253
3272
  type DefaultOptions = SimpleMerge<
@@ -3298,7 +3317,7 @@ declare namespace DocumentOwnershipField {
3298
3317
  */
3299
3318
  declare class JSONField<
3300
3319
  // TODO(LukeAbby): Due to the unconditional setting of `blank`, `trim`, and `choices` setting them is meaningless which basically means they're removed from the options.
3301
- Options extends StringFieldOptions = JSONField.DefaultOptions,
3320
+ Options extends StringField.Options = JSONField.DefaultOptions,
3302
3321
  AssignmentType = JSONField.AssignmentType<Options>,
3303
3322
  InitializedType = JSONField.InitializedType<Options>,
3304
3323
  PersistedType extends string | null | undefined = JSONField.PersistedType<Options>,
@@ -3309,12 +3328,12 @@ declare class JSONField<
3309
3328
  override blank: boolean;
3310
3329
 
3311
3330
  /** @defaultValue `undefined` */
3312
- override initial: DataFieldOptions.InitialType<InitializedType>;
3331
+ override initial: DataField.Options.InitialType<InitializedType>;
3313
3332
 
3314
3333
  /** @defaultValue `"is not a valid JSON string"` */
3315
3334
  override validationError: string;
3316
3335
 
3317
- protected static override get _defaults(): StringFieldOptions;
3336
+ protected static override get _defaults(): StringField.Options;
3318
3337
 
3319
3338
  override clean(value: AssignmentType, options?: DataField.CleanOptions): InitializedType;
3320
3339
 
@@ -3371,13 +3390,13 @@ declare namespace JSONField {
3371
3390
  * A helper type for the given options type merged into the default options of the JSONField class.
3372
3391
  * @typeParam Options - the options that override the default options
3373
3392
  */
3374
- type MergedOptions<Options extends StringFieldOptions> = SimpleMerge<DefaultOptions, Options>;
3393
+ type MergedOptions<Options extends StringField.Options> = SimpleMerge<DefaultOptions, Options>;
3375
3394
 
3376
3395
  /**
3377
3396
  * A shorthand for the assignment type of a JSONField class.
3378
3397
  * @typeParam Options - the options that override the default options
3379
3398
  */
3380
- type AssignmentType<Options extends StringFieldOptions> = DataField.DerivedAssignmentType<
3399
+ type AssignmentType<Options extends StringField.Options> = DataField.DerivedAssignmentType<
3381
3400
  string,
3382
3401
  MergedOptions<Options>
3383
3402
  >;
@@ -3386,7 +3405,7 @@ declare namespace JSONField {
3386
3405
  * A shorthand for the initialized type of a JSONField class.
3387
3406
  * @typeParam Options - the options that override the default options
3388
3407
  */
3389
- type InitializedType<Options extends StringFieldOptions> = DataField.DerivedInitializedType<
3408
+ type InitializedType<Options extends StringField.Options> = DataField.DerivedInitializedType<
3390
3409
  AnyObject,
3391
3410
  MergedOptions<Options>
3392
3411
  >;
@@ -3395,7 +3414,7 @@ declare namespace JSONField {
3395
3414
  * A shorthand for the persisted type of a JSONField class.
3396
3415
  * @typeParam Options - the options that override the default options
3397
3416
  */
3398
- type PersistedType<Options extends StringFieldOptions> = DataField.DerivedInitializedType<
3417
+ type PersistedType<Options extends StringField.Options> = DataField.DerivedInitializedType<
3399
3418
  string,
3400
3419
  MergedOptions<Options>
3401
3420
  >;
@@ -3407,7 +3426,7 @@ declare namespace JSONField {
3407
3426
  * It is not recommended to use this class except for very specific circumstances.
3408
3427
  */
3409
3428
  // TODO(LukeAbby): This field effectively removes all options because there's no point asking for an options when none of them do anything.
3410
- declare class AnyField extends DataField<DataFieldOptions.Any, unknown, unknown, unknown> {
3429
+ declare class AnyField extends DataField<DataField.Options.Any, unknown, unknown, unknown> {
3411
3430
  override _cast(value: unknown): unknown;
3412
3431
 
3413
3432
  protected override _validateType(
@@ -3432,7 +3451,7 @@ declare class AnyField extends DataField<DataFieldOptions.Any, unknown, unknown,
3432
3451
  * InitialValue: `""`
3433
3452
  */
3434
3453
  declare class HTMLField<
3435
- Options extends StringFieldOptions = HTMLField.DefaultOptions,
3454
+ Options extends StringField.Options = HTMLField.DefaultOptions,
3436
3455
  AssignmentType = HTMLField.AssignmentType<Options>,
3437
3456
  InitializedType = HTMLField.InitializedType<Options>,
3438
3457
  PersistedType extends string | null | undefined = HTMLField.InitializedType<Options>,
@@ -3443,7 +3462,7 @@ declare class HTMLField<
3443
3462
  /** @defaultValue `true` */
3444
3463
  override blank: boolean;
3445
3464
 
3446
- protected static override get _defaults(): StringFieldOptions;
3465
+ protected static override get _defaults(): StringField.Options;
3447
3466
 
3448
3467
  // These verbose overloads are because otherwise there would be a misleading errors about `choices` being required without mentioning `options` or vice versa.
3449
3468
  toFormGroup(
@@ -3484,13 +3503,13 @@ declare namespace HTMLField {
3484
3503
  * A helper type for the given options type merged into the default options of the HTMLField class.
3485
3504
  * @typeParam Options - the options that override the default options
3486
3505
  */
3487
- type MergedOptions<Options extends StringFieldOptions> = SimpleMerge<DefaultOptions, Options>;
3506
+ type MergedOptions<Options extends StringField.Options> = SimpleMerge<DefaultOptions, Options>;
3488
3507
 
3489
3508
  /**
3490
3509
  * A shorthand for the assignment type of a HTMLField class.
3491
3510
  * @typeParam Options - the options that override the default options
3492
3511
  */
3493
- type AssignmentType<Options extends StringFieldOptions> = DataField.DerivedAssignmentType<
3512
+ type AssignmentType<Options extends StringField.Options> = DataField.DerivedAssignmentType<
3494
3513
  string,
3495
3514
  MergedOptions<Options>
3496
3515
  >;
@@ -3499,7 +3518,7 @@ declare namespace HTMLField {
3499
3518
  * A shorthand for the initialized type of a HTMLField class.
3500
3519
  * @typeParam Options - the options that override the default options
3501
3520
  */
3502
- type InitializedType<Options extends StringFieldOptions> = DataField.DerivedInitializedType<
3521
+ type InitializedType<Options extends StringField.Options> = DataField.DerivedInitializedType<
3503
3522
  string,
3504
3523
  MergedOptions<Options>
3505
3524
  >;
@@ -3522,7 +3541,7 @@ declare namespace HTMLField {
3522
3541
  * InitialValue: `0`
3523
3542
  */
3524
3543
  declare class IntegerSortField<
3525
- Options extends NumberFieldOptions = IntegerSortField.DefaultOptions,
3544
+ Options extends NumberField.Options = IntegerSortField.DefaultOptions,
3526
3545
  AssignmentType = IntegerSortField.AssignmentType<Options>,
3527
3546
  InitializedType = IntegerSortField.InitializedType<Options>,
3528
3547
  PersistedType extends number | null | undefined = IntegerSortField.InitializedType<Options>,
@@ -3537,7 +3556,7 @@ declare class IntegerSortField<
3537
3556
  override integer: boolean;
3538
3557
 
3539
3558
  /** @defaultValue `0` */
3540
- override initial: DataFieldOptions.InitialType<InitializedType>;
3559
+ override initial: DataField.Options.InitialType<InitializedType>;
3541
3560
 
3542
3561
  /** @defaultValue `"FOLDER.DocumentSort"` */
3543
3562
  override label: string;
@@ -3564,13 +3583,13 @@ declare namespace IntegerSortField {
3564
3583
  * A helper type for the given options type merged into the default options of the IntegerSortField class.
3565
3584
  * @typeParam Options - the options that override the default options
3566
3585
  */
3567
- type MergedOptions<Options extends NumberFieldOptions> = SimpleMerge<DefaultOptions, Options>;
3586
+ type MergedOptions<Options extends NumberField.Options> = SimpleMerge<DefaultOptions, Options>;
3568
3587
 
3569
3588
  /**
3570
3589
  * A shorthand for the assignment type of a IntegerSortField class.
3571
3590
  * @typeParam Options - the options that override the default options
3572
3591
  */
3573
- type AssignmentType<Options extends NumberFieldOptions> = DataField.DerivedAssignmentType<
3592
+ type AssignmentType<Options extends NumberField.Options> = DataField.DerivedAssignmentType<
3574
3593
  number,
3575
3594
  MergedOptions<Options>
3576
3595
  >;
@@ -3579,16 +3598,12 @@ declare namespace IntegerSortField {
3579
3598
  * A shorthand for the initialized type of a IntegerSortField class.
3580
3599
  * @typeParam Options - the options that override the default options
3581
3600
  */
3582
- type InitializedType<Options extends NumberFieldOptions> = DataField.DerivedInitializedType<
3601
+ type InitializedType<Options extends NumberField.Options> = DataField.DerivedInitializedType<
3583
3602
  number,
3584
3603
  MergedOptions<Options>
3585
3604
  >;
3586
3605
  }
3587
3606
 
3588
- declare global {
3589
- type DocumentStats = DocumentStatsField.Properties;
3590
- }
3591
-
3592
3607
  /**
3593
3608
  * A subclass of {@link SchemaField} which stores document metadata in the _stats field.
3594
3609
  * @typeParam Options - the options of the DocumentStatsField instance
@@ -3623,7 +3638,7 @@ declare class DocumentStatsField<
3623
3638
 
3624
3639
  declare namespace DocumentStatsField {
3625
3640
  /** A shorthand for the options of a DocumentStatsField class. */
3626
- type Options = DataFieldOptions<SchemaField.InnerAssignmentType<Schema>>;
3641
+ type Options = DataField.Options<SchemaField.InnerAssignmentType<Schema>>;
3627
3642
 
3628
3643
  /** The type of the default options for the {@link DocumentStatsField} class. */
3629
3644
  type DefaultOptions = SimpleMerge<SchemaField.DefaultOptions, { initial: SchemaField.InnerAssignmentType<Schema> }>;
@@ -3730,7 +3745,7 @@ declare class DocumentTypeField<
3730
3745
  * @param options - Options which configure the behavior of the field
3731
3746
  * @param context - Additional context which describes the field
3732
3747
  */
3733
- constructor(documentClass: ConcreteDocumentClass, options: DocumentTypeField.Options, context?: DataField.Context);
3748
+ constructor(documentClass: ConcreteDocumentClass, options?: DocumentTypeField.Options, context?: DataField.Context);
3734
3749
 
3735
3750
  static override get _defaults(): DocumentTypeField.Options;
3736
3751
 
@@ -3751,12 +3766,12 @@ declare namespace DocumentTypeField {
3751
3766
  }
3752
3767
  >;
3753
3768
 
3754
- interface Options extends StringFieldOptions {}
3769
+ interface Options extends StringField.Options {}
3755
3770
 
3756
3771
  // TODO(LukeAbby): This class has effectively removed `choices` and `validationError` since they're unconditionally set in the constructor.
3757
3772
  type MergedOptions<
3758
3773
  ConcreteDocumentClass extends Document.AnyConstructor,
3759
- Options extends StringFieldOptions,
3774
+ Options extends StringField.Options,
3760
3775
  > = SimpleMerge<
3761
3776
  SimpleMerge<DefaultOptions, Options>,
3762
3777
  {
@@ -3767,15 +3782,15 @@ declare namespace DocumentTypeField {
3767
3782
 
3768
3783
  type AssignmentType<
3769
3784
  ConcreteDocumentClass extends Document.AnyConstructor,
3770
- Options extends StringFieldOptions,
3785
+ Options extends StringField.Options,
3771
3786
  > = StringField.AssignmentType<MergedOptions<ConcreteDocumentClass, Options>>;
3772
3787
  type InitializedType<
3773
3788
  ConcreteDocumentClass extends Document.AnyConstructor,
3774
- Options extends StringFieldOptions,
3789
+ Options extends StringField.Options,
3775
3790
  > = StringField.InitializedType<MergedOptions<ConcreteDocumentClass, Options>>;
3776
3791
  type PersistedType<
3777
3792
  ConcreteDocumentClass extends Document.AnyConstructor,
3778
- Options extends StringFieldOptions,
3793
+ Options extends StringField.Options,
3779
3794
  > = StringField.InitializedType<MergedOptions<ConcreteDocumentClass, Options>>;
3780
3795
  }
3781
3796
 
@@ -3869,7 +3884,7 @@ declare namespace TypeDataField {
3869
3884
  * A shorthand for the options of a TypeDataField class.
3870
3885
  * @typeParam DocumentType - the type of the embedded Document
3871
3886
  */
3872
- type Options<DocumentType extends Document.SystemConstructor> = DataFieldOptions<
3887
+ type Options<DocumentType extends Document.SystemConstructor> = DataField.Options<
3873
3888
  SchemaField.InnerAssignmentType<DataModel.SchemaOfClass<DocumentType>>
3874
3889
  >;
3875
3890
 
@@ -3891,30 +3906,9 @@ declare namespace TypeDataField {
3891
3906
  Opts
3892
3907
  >;
3893
3908
 
3894
- /**
3895
- * Get the system DataModel configuration for a specific document type.
3896
- * @typeParam DocumentType - the type of the Document this system data is for
3897
- */
3898
- type Config<DocumentType extends Document.SystemConstructor> =
3899
- DocumentType["metadata"]["name"] extends keyof DataModelConfig
3900
- ? DataModelConfig[DocumentType["metadata"]["name"]]
3901
- : EmptyObject;
3902
-
3903
- /**
3904
- * Get the configured core and system type names for a specific document type.
3905
- * @typeParam ConcreteDocument - the type of the Document this data is for
3906
- * @deprecated Use the Game.Model namespace instead of TypeDataField
3907
- */
3908
- type TypeNames<ConcreteDocument extends Document.SystemConstructor> = Game.Model.TypeNames<
3909
- ConcreteDocument["metadata"]["name"]
3910
- >;
3911
-
3912
- /**
3913
- * Get the core type names for a specific document type.
3914
- * @typeParam DocumentType - the type of the Document this data is for
3915
- * @deprecated Use `DocumentType["metadata"]["coreTypes"][number]`
3916
- */
3917
- type CoreTypeNames<DocumentType extends Document.SystemConstructor> = DocumentType["metadata"]["coreTypes"][number];
3909
+ type DataModelsFor<DocumentType extends Document.Type> = DocumentType extends keyof DataModelConfig
3910
+ ? DataModelConfig[DocumentType]
3911
+ : EmptyObject;
3918
3912
 
3919
3913
  /**
3920
3914
  * A shorthand for the assignment type of a TypeDataField class.
@@ -3923,8 +3917,8 @@ declare namespace TypeDataField {
3923
3917
  */
3924
3918
  type AssignmentType<
3925
3919
  SystemDocumentConstructor extends Document.SystemConstructor,
3926
- Opts extends Options<InstanceType<SystemDocumentConstructor>>,
3927
- > = DataField.DerivedAssignmentType<AnyObject, MergedOptions<InstanceType<SystemDocumentConstructor>, Opts>>;
3920
+ Opts extends Options<SystemDocumentConstructor>,
3921
+ > = DataField.DerivedAssignmentType<AnyObject, MergedOptions<SystemDocumentConstructor, Opts>>;
3928
3922
 
3929
3923
  /**
3930
3924
  * A shorthand for the initialized type of a TypeDataField class.
@@ -3933,21 +3927,64 @@ declare namespace TypeDataField {
3933
3927
  */
3934
3928
  type InitializedType<
3935
3929
  SystemDocumentConstructor extends Document.SystemConstructor,
3936
- Opts extends Options<InstanceType<SystemDocumentConstructor>>,
3930
+ Opts extends Options<SystemDocumentConstructor>,
3937
3931
  > = DataField.DerivedInitializedType<
3938
- ValueOf<Config<SystemDocumentConstructor>> | AnyObject,
3939
- MergedOptions<InstanceType<SystemDocumentConstructor>, Opts>
3932
+ _Instances<DataModelsFor<SystemDocumentConstructor["metadata"]["name"]>> | UnknownSystem,
3933
+ MergedOptions<SystemDocumentConstructor, Opts>
3940
3934
  >;
3941
3935
 
3936
+ type _Instances<T> = {
3937
+ [K in keyof T]: T[K] extends (abstract new (arg0: never, ...args: never[]) => infer U extends DataModel.Any)
3938
+ ? U
3939
+ : never;
3940
+ };
3941
+
3942
+ /**
3943
+ * With the existence of custom module subtypes a system can no longer rely on their configured types being the only ones.
3944
+ * A module can provide its own custom type though it is always of the form `${moduleName}.${subType}` so the `.` is a pretty
3945
+ * strong indicator.
3946
+ *
3947
+ * `UnknownSourceData` covers the case where it's configured without a data model.
3948
+ * See {@link UnknownSystem | `UnknownSystem`} for other possibilities.
3949
+ */
3950
+ interface UnknownSourceData extends AnyObject {
3951
+ type: `${string}.${string}`;
3952
+ }
3953
+
3954
+ /**
3955
+ * With the existence of custom module subtypes a system can no longer rely on their configured types being the only ones.
3956
+ * A module can provide its own custom type though it is always of the form `${moduleName}.${subType}` so the `.` is a pretty
3957
+ * strong indicator.
3958
+ *
3959
+ * `UnknownTypeDataModel` covers the case where it's configured with a {@link TypeDataModel | `TypeDataModel`}.
3960
+ * See {@link UnknownSystem | `UnknownSystem`} for other possibilities.
3961
+ */
3962
+ interface UnknownTypeDataModel extends TypeDataModel<any, any, any, any> {}
3963
+
3964
+ /**
3965
+ * With the existence of custom module subtypes a system can no longer rely on their configured types being the only ones.
3966
+ *
3967
+ * `UnknownDataModel` covers the case where it's configured with a {@link DataModel | `DataModel`}.
3968
+ * Using a {@link TypeDataModel | `TypeDataModel`} is recommended by Foundry but a {@link DataModel | `DataModel`} is
3969
+ * always possible.
3970
+ * See {@link UnknownSystem | `UnknownSystem`} for other possibilities.
3971
+ */
3972
+ interface UnknownDataModel extends DataModel<any, any, any> {}
3973
+
3974
+ /**
3975
+ * With the existence of custom module subtypes a system can no longer rely on their configured types being the only ones.
3976
+ */
3977
+ type UnknownSystem = UnknownSourceData | UnknownTypeDataModel | UnknownDataModel;
3978
+
3942
3979
  /**
3943
3980
  * A shorthand for the persisted type of a TypeDataField class.
3944
3981
  * @typeParam DocumentType - the type of the embedded Document
3945
3982
  * @typeParam Opts - the options that override the default options
3946
3983
  */
3947
3984
  type PersistedType<
3948
- SystemDocumentConstructor extends Document.SystemConstructor,
3949
- Opts extends Options<InstanceType<SystemDocumentConstructor>>,
3950
- > = DataField.DerivedInitializedType<AnyObject, MergedOptions<InstanceType<SystemDocumentConstructor>, Opts>>;
3985
+ ConcreteDocument extends Document.SystemConstructor,
3986
+ Opts extends Options<ConcreteDocument>,
3987
+ > = DataField.DerivedInitializedType<AnyObject, MergedOptions<ConcreteDocument, Opts>>;
3951
3988
  }
3952
3989
 
3953
3990
  /**
@@ -3955,19 +3992,19 @@ declare namespace TypeDataField {
3955
3992
  */
3956
3993
  declare class TypedSchemaField<
3957
3994
  const Types extends TypedSchemaField.Types,
3958
- const Options extends TypedSchemaField.DefaultOptions = TypedSchemaField.DefaultOptions,
3995
+ const Options extends TypedSchemaField.Options<Types> = TypedSchemaField.DefaultOptions,
3959
3996
  const AssignmentType = TypedSchemaField.AssignmentType<Types, Options>,
3960
3997
  const InitializedType = TypedSchemaField.InitializedType<Types, Options>,
3961
- const PersistedType extends unknown | null | undefined = TypedSchemaField.PersistedType<Types, Options>,
3998
+ const PersistedType = TypedSchemaField.PersistedType<Types, Options>,
3962
3999
  > extends DataField<Options, AssignmentType, InitializedType, PersistedType> {
3963
4000
  /**
3964
4001
  * @param types - The different types this field can represent.
3965
4002
  * @param options - Options which configure the behavior of the field
3966
4003
  * @param context - Additional context which describes the field
3967
4004
  */
3968
- constructor(types: Types, options: Options, context?: DataField.Context);
4005
+ constructor(types: Types, options?: Options, context?: DataField.Context);
3969
4006
 
3970
- static get _defaults(): DataFieldOptions.Any;
4007
+ static get _defaults(): DataField.Options.Any;
3971
4008
 
3972
4009
  /**
3973
4010
  * The types of this field.
@@ -4001,6 +4038,8 @@ declare class TypedSchemaField<
4001
4038
  }
4002
4039
 
4003
4040
  declare namespace TypedSchemaField {
4041
+ interface Options<T extends Types> extends DataField.Options<_AssignmentType<ToConfiguredTypes<T>>> {}
4042
+
4004
4043
  type DefaultOptions = SimpleMerge<
4005
4044
  DataField.DefaultOptions,
4006
4045
  {
@@ -4008,31 +4047,36 @@ declare namespace TypedSchemaField {
4008
4047
  }
4009
4048
  >;
4010
4049
 
4011
- type ValidField = DataField<
4012
- {
4013
- required: true;
4014
- nullable: false;
4015
- },
4016
- any,
4017
- any,
4018
- any
4019
- >;
4020
-
4050
+ /**
4051
+ * A `ValidDataSchema` must pass the checks in `#configureTypes`. Namely:
4052
+ * - No `name` property.
4053
+ * - No `parent`.
4054
+ *
4055
+ * Additionally the `type` property (if any):
4056
+ * - Must be a `StringField`.
4057
+ * - Must be `required`
4058
+ * - Must not be `nullable`.
4059
+ * - Must not be `blank`.
4060
+ * - Must allow the corresponding type as a valid value.
4061
+ */
4021
4062
  // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
4022
4063
  type ValidDataSchema = {
4023
- readonly [field: string]: ValidField;
4064
+ readonly [field: string]: DataField.Any;
4024
4065
  };
4025
4066
 
4026
4067
  // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
4027
4068
  type Types = {
4028
4069
  [type: string]:
4029
4070
  | ValidDataSchema
4030
- | SchemaField<ValidDataSchema, any, any, any, any>
4031
- | typeof DataModel<ValidDataSchema, any>;
4071
+ | SchemaField<DataSchema, { required: true; nullable: false }, any, any, any>
4072
+ | typeof DataModel<DataSchema, null>;
4032
4073
  };
4033
4074
 
4034
4075
  type ToConfiguredTypes<Types extends TypedSchemaField.Types> = {
4035
- [K in keyof Types]: Types[K] extends DataModel.AnyConstructor ? EmbeddedDataField<Types[K]> : never;
4076
+ [K in keyof Types]:
4077
+ | (Types[K] extends ValidDataSchema ? SchemaField<Types[K]> : never)
4078
+ | (Types[K] extends SchemaField.Any ? Types[K] : never)
4079
+ | (Types[K] extends DataModel.AnyConstructor ? EmbeddedDataField<Types[K]> : never);
4036
4080
  };
4037
4081
 
4038
4082
  // eslint-disable-next-line @typescript-eslint/consistent-type-definitions
@@ -4044,37 +4088,37 @@ declare namespace TypedSchemaField {
4044
4088
  * @internal
4045
4089
  */
4046
4090
  type _AssignmentType<Types extends ConfiguredTypes> = {
4047
- [K in keyof Types]: DataField.AssignmentTypeFor<Types[K]>;
4091
+ [K in keyof Types]: DataField.AssignmentTypeFor<Types[K]> & { type: K };
4048
4092
  }[keyof Types];
4049
4093
 
4050
4094
  type AssignmentType<
4051
4095
  Types extends TypedSchemaField.Types,
4052
- Options extends TypedSchemaField.DefaultOptions,
4096
+ Options extends TypedSchemaField.Options<Types>,
4053
4097
  > = DataField.DerivedAssignmentType<_AssignmentType<ToConfiguredTypes<Types>>, Options>;
4054
4098
 
4055
4099
  /**
4056
4100
  * @internal
4057
4101
  */
4058
4102
  type _InitializedType<Types extends ConfiguredTypes> = {
4059
- [K in keyof Types]: DataField.InitializedTypeFor<Types[K]>;
4103
+ [K in keyof Types]: DataField.InitializedTypeFor<Types[K]> & { type: K };
4060
4104
  }[keyof Types];
4061
4105
 
4062
4106
  type InitializedType<
4063
4107
  Types extends TypedSchemaField.Types,
4064
- Options extends TypedSchemaField.DefaultOptions,
4108
+ Options extends TypedSchemaField.Options<Types>,
4065
4109
  > = DataField.DerivedInitializedType<_InitializedType<ToConfiguredTypes<Types>>, Options>;
4066
4110
 
4067
4111
  /**
4068
4112
  * @internal
4069
4113
  */
4070
4114
  type _PersistedType<Types extends ConfiguredTypes> = {
4071
- [K in keyof Types]: DataField.PersistedTypeFor<Types[K]>;
4115
+ [K in keyof Types]: DataField.PersistedTypeFor<Types[K]> & { type: K };
4072
4116
  }[keyof Types];
4073
4117
 
4074
4118
  type PersistedType<
4075
4119
  Types extends TypedSchemaField.Types,
4076
- _Options extends TypedSchemaField.DefaultOptions,
4077
- > = DataField.DerivedInitializedType<_PersistedType<ToConfiguredTypes<Types>>, _Options>;
4120
+ Options extends TypedSchemaField.Options<Types>,
4121
+ > = DataField.DerivedInitializedType<_PersistedType<ToConfiguredTypes<Types>>, Options>;
4078
4122
  }
4079
4123
 
4080
4124
  /**
@@ -4082,6 +4126,7 @@ declare namespace TypedSchemaField {
4082
4126
  * @typeParam Errors - the type of the errors contained in this error
4083
4127
  */
4084
4128
  declare class ModelValidationError<
4129
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
4085
4130
  Errors extends ModelValidationError.Errors = ModelValidationError.Errors,
4086
4131
  > extends Error {
4087
4132
  /**
@@ -4097,6 +4142,7 @@ declare class ModelValidationError<
4097
4142
  * @param errors - The raw error structure
4098
4143
  * @returns A formatted error message
4099
4144
  */
4145
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
4100
4146
  static formatErrors(errors: ModelValidationError.Errors): string;
4101
4147
  }
4102
4148
 
@@ -4150,7 +4196,7 @@ declare class JavaScriptField<
4150
4196
 
4151
4197
  declare namespace JavaScriptField {
4152
4198
  // TODO(LukeAbby): `choices` is effectively deleted due to being unconditionally set to `undefined` in the constructor.
4153
- type Options = StringFieldOptions & {
4199
+ type Options = StringField.Options & {
4154
4200
  /**
4155
4201
  * Does the field allow async code?
4156
4202
  * @defaultValue `false`
@@ -4159,7 +4205,7 @@ declare namespace JavaScriptField {
4159
4205
  };
4160
4206
 
4161
4207
  type DefaultOptions = SimpleMerge<
4162
- StringFieldOptions,
4208
+ StringField.Options,
4163
4209
  {
4164
4210
  async: false;
4165
4211
  }