ttrpg-engine-dnd 0.1.0-alpha.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 (329) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/CONTRIBUTING.md +98 -0
  3. package/DEVELOPMENT.md +70 -0
  4. package/LICENSE +21 -0
  5. package/README.md +247 -0
  6. package/VERSIONING.md +151 -0
  7. package/dist/content/index.d.ts +3 -0
  8. package/dist/content/index.d.ts.map +1 -0
  9. package/dist/content/pack.d.ts +1657 -0
  10. package/dist/content/pack.d.ts.map +1 -0
  11. package/dist/content/packs/starter.d.ts +4 -0
  12. package/dist/content/packs/starter.d.ts.map +1 -0
  13. package/dist/content/validate.d.ts +8 -0
  14. package/dist/content/validate.d.ts.map +1 -0
  15. package/dist/derive/ability-check.d.ts +26 -0
  16. package/dist/derive/ability-check.d.ts.map +1 -0
  17. package/dist/derive/ability.d.ts +9 -0
  18. package/dist/derive/ability.d.ts.map +1 -0
  19. package/dist/derive/ac.d.ts +19 -0
  20. package/dist/derive/ac.d.ts.map +1 -0
  21. package/dist/derive/action-economy.d.ts +17 -0
  22. package/dist/derive/action-economy.d.ts.map +1 -0
  23. package/dist/derive/attack.d.ts +20 -0
  24. package/dist/derive/attack.d.ts.map +1 -0
  25. package/dist/derive/character-view.d.ts +29 -0
  26. package/dist/derive/character-view.d.ts.map +1 -0
  27. package/dist/derive/damage-mitigation.d.ts +18 -0
  28. package/dist/derive/damage-mitigation.d.ts.map +1 -0
  29. package/dist/derive/effect-stack.d.ts +15 -0
  30. package/dist/derive/effect-stack.d.ts.map +1 -0
  31. package/dist/derive/encumbrance.d.ts +17 -0
  32. package/dist/derive/encumbrance.d.ts.map +1 -0
  33. package/dist/derive/index.d.ts +12 -0
  34. package/dist/derive/index.d.ts.map +1 -0
  35. package/dist/derive/save.d.ts +23 -0
  36. package/dist/derive/save.d.ts.map +1 -0
  37. package/dist/derive/spell-dc.d.ts +21 -0
  38. package/dist/derive/spell-dc.d.ts.map +1 -0
  39. package/dist/derive/spell-slots.d.ts +21 -0
  40. package/dist/derive/spell-slots.d.ts.map +1 -0
  41. package/dist/derive/terrain.d.ts +10 -0
  42. package/dist/derive/terrain.d.ts.map +1 -0
  43. package/dist/effects/builder.d.ts +66 -0
  44. package/dist/effects/builder.d.ts.map +1 -0
  45. package/dist/effects/formula.d.ts +12 -0
  46. package/dist/effects/formula.d.ts.map +1 -0
  47. package/dist/effects/index.d.ts +4 -0
  48. package/dist/effects/index.d.ts.map +1 -0
  49. package/dist/effects/predicate.d.ts +12 -0
  50. package/dist/effects/predicate.d.ts.map +1 -0
  51. package/dist/engine/apply.d.ts +5 -0
  52. package/dist/engine/apply.d.ts.map +1 -0
  53. package/dist/engine/commit.d.ts +12 -0
  54. package/dist/engine/commit.d.ts.map +1 -0
  55. package/dist/engine/conveniences.d.ts +7124 -0
  56. package/dist/engine/conveniences.d.ts.map +1 -0
  57. package/dist/engine/ids-utils.d.ts +2 -0
  58. package/dist/engine/ids-utils.d.ts.map +1 -0
  59. package/dist/engine/index.d.ts +107 -0
  60. package/dist/engine/index.d.ts.map +1 -0
  61. package/dist/engine/plan/action-surge.d.ts +10 -0
  62. package/dist/engine/plan/action-surge.d.ts.map +1 -0
  63. package/dist/engine/plan/attack.d.ts +30 -0
  64. package/dist/engine/plan/attack.d.ts.map +1 -0
  65. package/dist/engine/plan/cast-spell.d.ts +18 -0
  66. package/dist/engine/plan/cast-spell.d.ts.map +1 -0
  67. package/dist/engine/plan/checks.d.ts +26 -0
  68. package/dist/engine/plan/checks.d.ts.map +1 -0
  69. package/dist/engine/plan/concentration.d.ts +12 -0
  70. package/dist/engine/plan/concentration.d.ts.map +1 -0
  71. package/dist/engine/plan/contested.d.ts +28 -0
  72. package/dist/engine/plan/contested.d.ts.map +1 -0
  73. package/dist/engine/plan/encounter.d.ts +47 -0
  74. package/dist/engine/plan/encounter.d.ts.map +1 -0
  75. package/dist/engine/plan/falling.d.ts +11 -0
  76. package/dist/engine/plan/falling.d.ts.map +1 -0
  77. package/dist/engine/plan/index.d.ts +20 -0
  78. package/dist/engine/plan/index.d.ts.map +1 -0
  79. package/dist/engine/plan/level-up.d.ts +22 -0
  80. package/dist/engine/plan/level-up.d.ts.map +1 -0
  81. package/dist/engine/plan/movement.d.ts +25 -0
  82. package/dist/engine/plan/movement.d.ts.map +1 -0
  83. package/dist/engine/plan/multiattack.d.ts +12 -0
  84. package/dist/engine/plan/multiattack.d.ts.map +1 -0
  85. package/dist/engine/plan/npc.d.ts +21 -0
  86. package/dist/engine/plan/npc.d.ts.map +1 -0
  87. package/dist/engine/plan/offhand-attack.d.ts +13 -0
  88. package/dist/engine/plan/offhand-attack.d.ts.map +1 -0
  89. package/dist/engine/plan/opportunity-attack.d.ts +14 -0
  90. package/dist/engine/plan/opportunity-attack.d.ts.map +1 -0
  91. package/dist/engine/plan/reactive-spells.d.ts +34 -0
  92. package/dist/engine/plan/reactive-spells.d.ts.map +1 -0
  93. package/dist/engine/plan/rest.d.ts +16 -0
  94. package/dist/engine/plan/rest.d.ts.map +1 -0
  95. package/dist/engine/plan/travel.d.ts +21 -0
  96. package/dist/engine/plan/travel.d.ts.map +1 -0
  97. package/dist/engine/plan/weapon-mastery.d.ts +15 -0
  98. package/dist/engine/plan/weapon-mastery.d.ts.map +1 -0
  99. package/dist/engine/reducers/action-economy.d.ts +12 -0
  100. package/dist/engine/reducers/action-economy.d.ts.map +1 -0
  101. package/dist/engine/reducers/attack.d.ts +6 -0
  102. package/dist/engine/reducers/attack.d.ts.map +1 -0
  103. package/dist/engine/reducers/bastion.d.ts +10 -0
  104. package/dist/engine/reducers/bastion.d.ts.map +1 -0
  105. package/dist/engine/reducers/charges.d.ts +7 -0
  106. package/dist/engine/reducers/charges.d.ts.map +1 -0
  107. package/dist/engine/reducers/checks.d.ts +6 -0
  108. package/dist/engine/reducers/checks.d.ts.map +1 -0
  109. package/dist/engine/reducers/combat.d.ts +12 -0
  110. package/dist/engine/reducers/combat.d.ts.map +1 -0
  111. package/dist/engine/reducers/concentration.d.ts +6 -0
  112. package/dist/engine/reducers/concentration.d.ts.map +1 -0
  113. package/dist/engine/reducers/downtime.d.ts +5 -0
  114. package/dist/engine/reducers/downtime.d.ts.map +1 -0
  115. package/dist/engine/reducers/encounter.d.ts +11 -0
  116. package/dist/engine/reducers/encounter.d.ts.map +1 -0
  117. package/dist/engine/reducers/inventory.d.ts +9 -0
  118. package/dist/engine/reducers/inventory.d.ts.map +1 -0
  119. package/dist/engine/reducers/level-up.d.ts +7 -0
  120. package/dist/engine/reducers/level-up.d.ts.map +1 -0
  121. package/dist/engine/reducers/locations.d.ts +8 -0
  122. package/dist/engine/reducers/locations.d.ts.map +1 -0
  123. package/dist/engine/reducers/mounts-vehicles.d.ts +11 -0
  124. package/dist/engine/reducers/mounts-vehicles.d.ts.map +1 -0
  125. package/dist/engine/reducers/movement.d.ts +7 -0
  126. package/dist/engine/reducers/movement.d.ts.map +1 -0
  127. package/dist/engine/reducers/npc.d.ts +7 -0
  128. package/dist/engine/reducers/npc.d.ts.map +1 -0
  129. package/dist/engine/reducers/party.d.ts +10 -0
  130. package/dist/engine/reducers/party.d.ts.map +1 -0
  131. package/dist/engine/reducers/progression.d.ts +5 -0
  132. package/dist/engine/reducers/progression.d.ts.map +1 -0
  133. package/dist/engine/reducers/quests.d.ts +14 -0
  134. package/dist/engine/reducers/quests.d.ts.map +1 -0
  135. package/dist/engine/reducers/reactive-spells.d.ts +7 -0
  136. package/dist/engine/reducers/reactive-spells.d.ts.map +1 -0
  137. package/dist/engine/reducers/resources.d.ts +7 -0
  138. package/dist/engine/reducers/resources.d.ts.map +1 -0
  139. package/dist/engine/reducers/rest.d.ts +8 -0
  140. package/dist/engine/reducers/rest.d.ts.map +1 -0
  141. package/dist/engine/reducers/resurrection.d.ts +5 -0
  142. package/dist/engine/reducers/resurrection.d.ts.map +1 -0
  143. package/dist/engine/reducers/session.d.ts +8 -0
  144. package/dist/engine/reducers/session.d.ts.map +1 -0
  145. package/dist/engine/reducers/settings.d.ts +5 -0
  146. package/dist/engine/reducers/settings.d.ts.map +1 -0
  147. package/dist/engine/reducers/spellcasting.d.ts +7 -0
  148. package/dist/engine/reducers/spellcasting.d.ts.map +1 -0
  149. package/dist/engine/reducers/transformations.d.ts +8 -0
  150. package/dist/engine/reducers/transformations.d.ts.map +1 -0
  151. package/dist/engine/reducers/travel.d.ts +7 -0
  152. package/dist/engine/reducers/travel.d.ts.map +1 -0
  153. package/dist/engine/reducers/triggers.d.ts +9 -0
  154. package/dist/engine/reducers/triggers.d.ts.map +1 -0
  155. package/dist/engine/reducers/weapon-mastery.d.ts +5 -0
  156. package/dist/engine/reducers/weapon-mastery.d.ts.map +1 -0
  157. package/dist/engine/replay.d.ts +4 -0
  158. package/dist/engine/replay.d.ts.map +1 -0
  159. package/dist/engine/triggers/dispatch.d.ts +13 -0
  160. package/dist/engine/triggers/dispatch.d.ts.map +1 -0
  161. package/dist/engine/undo-redo.d.ts +4 -0
  162. package/dist/engine/undo-redo.d.ts.map +1 -0
  163. package/dist/handlers/context.d.ts +7 -0
  164. package/dist/handlers/context.d.ts.map +1 -0
  165. package/dist/handlers/index.d.ts +12 -0
  166. package/dist/handlers/index.d.ts.map +1 -0
  167. package/dist/ids.d.ts +64 -0
  168. package/dist/ids.d.ts.map +1 -0
  169. package/dist/index.d.ts +72 -0
  170. package/dist/index.d.ts.map +1 -0
  171. package/dist/internal/clock.d.ts +2 -0
  172. package/dist/internal/clock.d.ts.map +1 -0
  173. package/dist/internal/constants.d.ts +6 -0
  174. package/dist/internal/constants.d.ts.map +1 -0
  175. package/dist/internal/immer.d.ts +4 -0
  176. package/dist/internal/immer.d.ts.map +1 -0
  177. package/dist/internal/invariants.d.ts +5 -0
  178. package/dist/internal/invariants.d.ts.map +1 -0
  179. package/dist/migrations/index.d.ts +5 -0
  180. package/dist/migrations/index.d.ts.map +1 -0
  181. package/dist/rng/default.d.ts +6 -0
  182. package/dist/rng/default.d.ts.map +1 -0
  183. package/dist/rng/dice.d.ts +20 -0
  184. package/dist/rng/dice.d.ts.map +1 -0
  185. package/dist/rng/index.d.ts +10 -0
  186. package/dist/rng/index.d.ts.map +1 -0
  187. package/dist/rng/seeded.d.ts +9 -0
  188. package/dist/rng/seeded.d.ts.map +1 -0
  189. package/dist/rng/throw.d.ts +9 -0
  190. package/dist/rng/throw.d.ts.map +1 -0
  191. package/dist/schemas/content/background.d.ts +46 -0
  192. package/dist/schemas/content/background.d.ts.map +1 -0
  193. package/dist/schemas/content/class.d.ts +264 -0
  194. package/dist/schemas/content/class.d.ts.map +1 -0
  195. package/dist/schemas/content/condition.d.ts +90 -0
  196. package/dist/schemas/content/condition.d.ts.map +1 -0
  197. package/dist/schemas/content/feat.d.ts +25 -0
  198. package/dist/schemas/content/feat.d.ts.map +1 -0
  199. package/dist/schemas/content/index.d.ts +9 -0
  200. package/dist/schemas/content/index.d.ts.map +1 -0
  201. package/dist/schemas/content/item.d.ts +602 -0
  202. package/dist/schemas/content/item.d.ts.map +1 -0
  203. package/dist/schemas/content/monster.d.ts +203 -0
  204. package/dist/schemas/content/monster.d.ts.map +1 -0
  205. package/dist/schemas/content/species.d.ts +63 -0
  206. package/dist/schemas/content/species.d.ts.map +1 -0
  207. package/dist/schemas/content/spell.d.ts +253 -0
  208. package/dist/schemas/content/spell.d.ts.map +1 -0
  209. package/dist/schemas/effects.d.ts +175 -0
  210. package/dist/schemas/effects.d.ts.map +1 -0
  211. package/dist/schemas/events/action-economy.d.ts +38 -0
  212. package/dist/schemas/events/action-economy.d.ts.map +1 -0
  213. package/dist/schemas/events/attack.d.ts +139 -0
  214. package/dist/schemas/events/attack.d.ts.map +1 -0
  215. package/dist/schemas/events/bastion.d.ts +227 -0
  216. package/dist/schemas/events/bastion.d.ts.map +1 -0
  217. package/dist/schemas/events/charges.d.ts +110 -0
  218. package/dist/schemas/events/charges.d.ts.map +1 -0
  219. package/dist/schemas/events/checks.d.ts +103 -0
  220. package/dist/schemas/events/checks.d.ts.map +1 -0
  221. package/dist/schemas/events/combat.d.ts +308 -0
  222. package/dist/schemas/events/combat.d.ts.map +1 -0
  223. package/dist/schemas/events/concentration.d.ts +99 -0
  224. package/dist/schemas/events/concentration.d.ts.map +1 -0
  225. package/dist/schemas/events/downtime.d.ts +53 -0
  226. package/dist/schemas/events/downtime.d.ts.map +1 -0
  227. package/dist/schemas/events/encounter.d.ts +260 -0
  228. package/dist/schemas/events/encounter.d.ts.map +1 -0
  229. package/dist/schemas/events/envelope.d.ts +22 -0
  230. package/dist/schemas/events/envelope.d.ts.map +1 -0
  231. package/dist/schemas/events/index.d.ts +4594 -0
  232. package/dist/schemas/events/index.d.ts.map +1 -0
  233. package/dist/schemas/events/inventory.d.ts +253 -0
  234. package/dist/schemas/events/inventory.d.ts.map +1 -0
  235. package/dist/schemas/events/level-up.d.ts +141 -0
  236. package/dist/schemas/events/level-up.d.ts.map +1 -0
  237. package/dist/schemas/events/locations.d.ts +183 -0
  238. package/dist/schemas/events/locations.d.ts.map +1 -0
  239. package/dist/schemas/events/mounts-vehicles.d.ts +233 -0
  240. package/dist/schemas/events/mounts-vehicles.d.ts.map +1 -0
  241. package/dist/schemas/events/movement.d.ts +131 -0
  242. package/dist/schemas/events/movement.d.ts.map +1 -0
  243. package/dist/schemas/events/npc.d.ts +113 -0
  244. package/dist/schemas/events/npc.d.ts.map +1 -0
  245. package/dist/schemas/events/party.d.ts +260 -0
  246. package/dist/schemas/events/party.d.ts.map +1 -0
  247. package/dist/schemas/events/progression.d.ts +698 -0
  248. package/dist/schemas/events/progression.d.ts.map +1 -0
  249. package/dist/schemas/events/quests.d.ts +426 -0
  250. package/dist/schemas/events/quests.d.ts.map +1 -0
  251. package/dist/schemas/events/reactive-spells.d.ts +98 -0
  252. package/dist/schemas/events/reactive-spells.d.ts.map +1 -0
  253. package/dist/schemas/events/resources.d.ts +107 -0
  254. package/dist/schemas/events/resources.d.ts.map +1 -0
  255. package/dist/schemas/events/rest.d.ts +104 -0
  256. package/dist/schemas/events/rest.d.ts.map +1 -0
  257. package/dist/schemas/events/resurrection.d.ts +44 -0
  258. package/dist/schemas/events/resurrection.d.ts.map +1 -0
  259. package/dist/schemas/events/session.d.ts +144 -0
  260. package/dist/schemas/events/session.d.ts.map +1 -0
  261. package/dist/schemas/events/settings.d.ts +47 -0
  262. package/dist/schemas/events/settings.d.ts.map +1 -0
  263. package/dist/schemas/events/spellcasting.d.ts +103 -0
  264. package/dist/schemas/events/spellcasting.d.ts.map +1 -0
  265. package/dist/schemas/events/transformations.d.ts +279 -0
  266. package/dist/schemas/events/transformations.d.ts.map +1 -0
  267. package/dist/schemas/events/travel.d.ts +143 -0
  268. package/dist/schemas/events/travel.d.ts.map +1 -0
  269. package/dist/schemas/events/triggers.d.ts +60 -0
  270. package/dist/schemas/events/triggers.d.ts.map +1 -0
  271. package/dist/schemas/events/weapon-mastery.d.ts +38 -0
  272. package/dist/schemas/events/weapon-mastery.d.ts.map +1 -0
  273. package/dist/schemas/formula.d.ts +103 -0
  274. package/dist/schemas/formula.d.ts.map +1 -0
  275. package/dist/schemas/index.d.ts +8 -0
  276. package/dist/schemas/index.d.ts.map +1 -0
  277. package/dist/schemas/predicate.d.ts +72 -0
  278. package/dist/schemas/predicate.d.ts.map +1 -0
  279. package/dist/schemas/primitives.d.ts +156 -0
  280. package/dist/schemas/primitives.d.ts.map +1 -0
  281. package/dist/schemas/runtime/bastion.d.ts +130 -0
  282. package/dist/schemas/runtime/bastion.d.ts.map +1 -0
  283. package/dist/schemas/runtime/campaign.d.ts +2122 -0
  284. package/dist/schemas/runtime/campaign.d.ts.map +1 -0
  285. package/dist/schemas/runtime/character.d.ts +580 -0
  286. package/dist/schemas/runtime/character.d.ts.map +1 -0
  287. package/dist/schemas/runtime/currency.d.ts +9 -0
  288. package/dist/schemas/runtime/currency.d.ts.map +1 -0
  289. package/dist/schemas/runtime/downtime.d.ts +31 -0
  290. package/dist/schemas/runtime/downtime.d.ts.map +1 -0
  291. package/dist/schemas/runtime/effect-instance.d.ts +65 -0
  292. package/dist/schemas/runtime/effect-instance.d.ts.map +1 -0
  293. package/dist/schemas/runtime/encounter.d.ts +264 -0
  294. package/dist/schemas/runtime/encounter.d.ts.map +1 -0
  295. package/dist/schemas/runtime/in-game-time.d.ts +18 -0
  296. package/dist/schemas/runtime/in-game-time.d.ts.map +1 -0
  297. package/dist/schemas/runtime/index.d.ts +15 -0
  298. package/dist/schemas/runtime/index.d.ts.map +1 -0
  299. package/dist/schemas/runtime/item-instance.d.ts +66 -0
  300. package/dist/schemas/runtime/item-instance.d.ts.map +1 -0
  301. package/dist/schemas/runtime/location.d.ts +111 -0
  302. package/dist/schemas/runtime/location.d.ts.map +1 -0
  303. package/dist/schemas/runtime/party.d.ts +52 -0
  304. package/dist/schemas/runtime/party.d.ts.map +1 -0
  305. package/dist/schemas/runtime/pending-choice.d.ts +77 -0
  306. package/dist/schemas/runtime/pending-choice.d.ts.map +1 -0
  307. package/dist/schemas/runtime/quest.d.ts +207 -0
  308. package/dist/schemas/runtime/quest.d.ts.map +1 -0
  309. package/dist/schemas/runtime/session.d.ts +102 -0
  310. package/dist/schemas/runtime/session.d.ts.map +1 -0
  311. package/dist/schemas/runtime/settings.d.ts +26 -0
  312. package/dist/schemas/runtime/settings.d.ts.map +1 -0
  313. package/dist/schemas/runtime/travel.d.ts +34 -0
  314. package/dist/schemas/runtime/travel.d.ts.map +1 -0
  315. package/dist/schemas/runtime/vehicle.d.ts +49 -0
  316. package/dist/schemas/runtime/vehicle.d.ts.map +1 -0
  317. package/dist/ttrpg-engine-dnd.cjs +6 -0
  318. package/dist/ttrpg-engine-dnd.cjs.map +1 -0
  319. package/dist/ttrpg-engine-dnd.js +10464 -0
  320. package/dist/ttrpg-engine-dnd.js.map +1 -0
  321. package/dist/types/index.d.ts +8 -0
  322. package/dist/types/index.d.ts.map +1 -0
  323. package/dist/version.d.ts +3 -0
  324. package/dist/version.d.ts.map +1 -0
  325. package/docs/api-overview.md +111 -0
  326. package/docs/concepts.md +154 -0
  327. package/docs/getting-started.md +142 -0
  328. package/docs/recipes.md +302 -0
  329. package/package.json +83 -0
@@ -0,0 +1,1657 @@
1
+ import { z } from 'zod';
2
+ import { type Background, type Class, type Condition, type Feat, type ItemDefinition, type MonsterStatblock, type Species, type Spell, type Subclass } from '../schemas/content/index.js';
3
+ export declare const ContentPackSchema: z.ZodObject<{
4
+ id: z.ZodString;
5
+ name: z.ZodString;
6
+ version: z.ZodString;
7
+ species: z.ZodDefault<z.ZodArray<z.ZodObject<{
8
+ id: z.ZodString;
9
+ name: z.ZodString;
10
+ size: z.ZodEnum<["Tiny", "Small", "Medium", "Large", "Huge", "Gargantuan"]>;
11
+ creatureType: z.ZodDefault<z.ZodEnum<["Aberration", "Beast", "Celestial", "Construct", "Dragon", "Elemental", "Fey", "Fiend", "Giant", "Humanoid", "Monstrosity", "Ooze", "Plant", "Undead"]>>;
12
+ speed: z.ZodObject<{
13
+ walk: z.ZodDefault<z.ZodNumber>;
14
+ fly: z.ZodOptional<z.ZodNumber>;
15
+ swim: z.ZodOptional<z.ZodNumber>;
16
+ climb: z.ZodOptional<z.ZodNumber>;
17
+ burrow: z.ZodOptional<z.ZodNumber>;
18
+ hover: z.ZodOptional<z.ZodBoolean>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ walk: number;
21
+ fly?: number | undefined;
22
+ swim?: number | undefined;
23
+ climb?: number | undefined;
24
+ burrow?: number | undefined;
25
+ hover?: boolean | undefined;
26
+ }, {
27
+ walk?: number | undefined;
28
+ fly?: number | undefined;
29
+ swim?: number | undefined;
30
+ climb?: number | undefined;
31
+ burrow?: number | undefined;
32
+ hover?: boolean | undefined;
33
+ }>;
34
+ languages: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
35
+ traits: z.ZodDefault<z.ZodArray<z.ZodType<import("../index.js").Effect, z.ZodTypeDef, import("../index.js").Effect>, "many">>;
36
+ }, "strip", z.ZodTypeAny, {
37
+ speed: {
38
+ walk: number;
39
+ fly?: number | undefined;
40
+ swim?: number | undefined;
41
+ climb?: number | undefined;
42
+ burrow?: number | undefined;
43
+ hover?: boolean | undefined;
44
+ };
45
+ id: string;
46
+ name: string;
47
+ size: "Tiny" | "Small" | "Medium" | "Large" | "Huge" | "Gargantuan";
48
+ creatureType: "Aberration" | "Beast" | "Celestial" | "Construct" | "Dragon" | "Elemental" | "Fey" | "Fiend" | "Giant" | "Humanoid" | "Monstrosity" | "Ooze" | "Plant" | "Undead";
49
+ languages: string[];
50
+ traits: import("../index.js").Effect[];
51
+ }, {
52
+ speed: {
53
+ walk?: number | undefined;
54
+ fly?: number | undefined;
55
+ swim?: number | undefined;
56
+ climb?: number | undefined;
57
+ burrow?: number | undefined;
58
+ hover?: boolean | undefined;
59
+ };
60
+ id: string;
61
+ name: string;
62
+ size: "Tiny" | "Small" | "Medium" | "Large" | "Huge" | "Gargantuan";
63
+ creatureType?: "Aberration" | "Beast" | "Celestial" | "Construct" | "Dragon" | "Elemental" | "Fey" | "Fiend" | "Giant" | "Humanoid" | "Monstrosity" | "Ooze" | "Plant" | "Undead" | undefined;
64
+ languages?: string[] | undefined;
65
+ traits?: import("../index.js").Effect[] | undefined;
66
+ }>, "many">>;
67
+ backgrounds: z.ZodDefault<z.ZodArray<z.ZodObject<{
68
+ id: z.ZodString;
69
+ name: z.ZodString;
70
+ abilityScoreIncreases: z.ZodObject<{
71
+ options: z.ZodArray<z.ZodEnum<["STR", "DEX", "CON", "INT", "WIS", "CHA"]>, "many">;
72
+ pattern: z.ZodEnum<["+2/+1", "+1/+1/+1"]>;
73
+ }, "strip", z.ZodTypeAny, {
74
+ options: ("STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA")[];
75
+ pattern: "+2/+1" | "+1/+1/+1";
76
+ }, {
77
+ options: ("STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA")[];
78
+ pattern: "+2/+1" | "+1/+1/+1";
79
+ }>;
80
+ skillProficiencies: z.ZodDefault<z.ZodArray<z.ZodEnum<["acrobatics", "animal-handling", "arcana", "athletics", "deception", "history", "insight", "intimidation", "investigation", "medicine", "nature", "perception", "performance", "persuasion", "religion", "sleight-of-hand", "stealth", "survival"]>, "many">>;
81
+ toolProficiencies: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
82
+ languages: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
83
+ originFeatId: z.ZodString;
84
+ traits: z.ZodDefault<z.ZodArray<z.ZodType<import("../index.js").Effect, z.ZodTypeDef, import("../index.js").Effect>, "many">>;
85
+ }, "strip", z.ZodTypeAny, {
86
+ id: string;
87
+ name: string;
88
+ languages: string[];
89
+ traits: import("../index.js").Effect[];
90
+ abilityScoreIncreases: {
91
+ options: ("STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA")[];
92
+ pattern: "+2/+1" | "+1/+1/+1";
93
+ };
94
+ skillProficiencies: ("acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival")[];
95
+ toolProficiencies: string[];
96
+ originFeatId: string;
97
+ }, {
98
+ id: string;
99
+ name: string;
100
+ abilityScoreIncreases: {
101
+ options: ("STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA")[];
102
+ pattern: "+2/+1" | "+1/+1/+1";
103
+ };
104
+ originFeatId: string;
105
+ languages?: string[] | undefined;
106
+ traits?: import("../index.js").Effect[] | undefined;
107
+ skillProficiencies?: ("acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival")[] | undefined;
108
+ toolProficiencies?: string[] | undefined;
109
+ }>, "many">>;
110
+ classes: z.ZodDefault<z.ZodArray<z.ZodObject<{
111
+ id: z.ZodString;
112
+ name: z.ZodString;
113
+ hitDie: z.ZodUnion<[z.ZodLiteral<6>, z.ZodLiteral<8>, z.ZodLiteral<10>, z.ZodLiteral<12>]>;
114
+ primaryAbility: z.ZodArray<z.ZodEnum<["STR", "DEX", "CON", "INT", "WIS", "CHA"]>, "many">;
115
+ savingThrowProficiencies: z.ZodArray<z.ZodEnum<["STR", "DEX", "CON", "INT", "WIS", "CHA"]>, "many">;
116
+ armorProficiencies: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
117
+ weaponProficiencies: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
118
+ toolProficiencies: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
119
+ skillChoices: z.ZodOptional<z.ZodObject<{
120
+ choices: z.ZodNumber;
121
+ from: z.ZodArray<z.ZodEnum<["acrobatics", "animal-handling", "arcana", "athletics", "deception", "history", "insight", "intimidation", "investigation", "medicine", "nature", "perception", "performance", "persuasion", "religion", "sleight-of-hand", "stealth", "survival"]>, "many">;
122
+ }, "strip", z.ZodTypeAny, {
123
+ choices: number;
124
+ from: ("acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival")[];
125
+ }, {
126
+ choices: number;
127
+ from: ("acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival")[];
128
+ }>>;
129
+ levelTable: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodObject<{
130
+ proficiencyBonus: z.ZodNumber;
131
+ features: z.ZodDefault<z.ZodArray<z.ZodObject<{
132
+ id: z.ZodString;
133
+ name: z.ZodString;
134
+ description: z.ZodOptional<z.ZodString>;
135
+ effects: z.ZodDefault<z.ZodArray<z.ZodType<import("../index.js").Effect, z.ZodTypeDef, import("../index.js").Effect>, "many">>;
136
+ }, "strip", z.ZodTypeAny, {
137
+ id: string;
138
+ name: string;
139
+ effects: import("../index.js").Effect[];
140
+ description?: string | undefined;
141
+ }, {
142
+ id: string;
143
+ name: string;
144
+ effects?: import("../index.js").Effect[] | undefined;
145
+ description?: string | undefined;
146
+ }>, "many">>;
147
+ columns: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodNumber, z.ZodString]>>>;
148
+ }, "strip", z.ZodTypeAny, {
149
+ proficiencyBonus: number;
150
+ features: {
151
+ id: string;
152
+ name: string;
153
+ effects: import("../index.js").Effect[];
154
+ description?: string | undefined;
155
+ }[];
156
+ columns: Record<string, string | number>;
157
+ }, {
158
+ proficiencyBonus: number;
159
+ features?: {
160
+ id: string;
161
+ name: string;
162
+ effects?: import("../index.js").Effect[] | undefined;
163
+ description?: string | undefined;
164
+ }[] | undefined;
165
+ columns?: Record<string, string | number> | undefined;
166
+ }>>, Record<string, {
167
+ proficiencyBonus: number;
168
+ features: {
169
+ id: string;
170
+ name: string;
171
+ effects: import("../index.js").Effect[];
172
+ description?: string | undefined;
173
+ }[];
174
+ columns: Record<string, string | number>;
175
+ }>, Record<string, {
176
+ proficiencyBonus: number;
177
+ features?: {
178
+ id: string;
179
+ name: string;
180
+ effects?: import("../index.js").Effect[] | undefined;
181
+ description?: string | undefined;
182
+ }[] | undefined;
183
+ columns?: Record<string, string | number> | undefined;
184
+ }>>;
185
+ subclassLevel: z.ZodOptional<z.ZodNumber>;
186
+ spellcasting: z.ZodOptional<z.ZodObject<{
187
+ ability: z.ZodEnum<["STR", "DEX", "CON", "INT", "WIS", "CHA"]>;
188
+ type: z.ZodEnum<["full", "half", "third", "pact"]>;
189
+ preparedFormula: z.ZodOptional<z.ZodString>;
190
+ }, "strip", z.ZodTypeAny, {
191
+ type: "half" | "full" | "third" | "pact";
192
+ ability: "STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA";
193
+ preparedFormula?: string | undefined;
194
+ }, {
195
+ type: "half" | "full" | "third" | "pact";
196
+ ability: "STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA";
197
+ preparedFormula?: string | undefined;
198
+ }>>;
199
+ }, "strip", z.ZodTypeAny, {
200
+ id: string;
201
+ name: string;
202
+ toolProficiencies: string[];
203
+ hitDie: 6 | 8 | 10 | 12;
204
+ primaryAbility: ("STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA")[];
205
+ savingThrowProficiencies: ("STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA")[];
206
+ armorProficiencies: string[];
207
+ weaponProficiencies: string[];
208
+ levelTable: Record<string, {
209
+ proficiencyBonus: number;
210
+ features: {
211
+ id: string;
212
+ name: string;
213
+ effects: import("../index.js").Effect[];
214
+ description?: string | undefined;
215
+ }[];
216
+ columns: Record<string, string | number>;
217
+ }>;
218
+ skillChoices?: {
219
+ choices: number;
220
+ from: ("acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival")[];
221
+ } | undefined;
222
+ subclassLevel?: number | undefined;
223
+ spellcasting?: {
224
+ type: "half" | "full" | "third" | "pact";
225
+ ability: "STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA";
226
+ preparedFormula?: string | undefined;
227
+ } | undefined;
228
+ }, {
229
+ id: string;
230
+ name: string;
231
+ hitDie: 6 | 8 | 10 | 12;
232
+ primaryAbility: ("STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA")[];
233
+ savingThrowProficiencies: ("STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA")[];
234
+ levelTable: Record<string, {
235
+ proficiencyBonus: number;
236
+ features?: {
237
+ id: string;
238
+ name: string;
239
+ effects?: import("../index.js").Effect[] | undefined;
240
+ description?: string | undefined;
241
+ }[] | undefined;
242
+ columns?: Record<string, string | number> | undefined;
243
+ }>;
244
+ toolProficiencies?: string[] | undefined;
245
+ armorProficiencies?: string[] | undefined;
246
+ weaponProficiencies?: string[] | undefined;
247
+ skillChoices?: {
248
+ choices: number;
249
+ from: ("acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival")[];
250
+ } | undefined;
251
+ subclassLevel?: number | undefined;
252
+ spellcasting?: {
253
+ type: "half" | "full" | "third" | "pact";
254
+ ability: "STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA";
255
+ preparedFormula?: string | undefined;
256
+ } | undefined;
257
+ }>, "many">>;
258
+ subclasses: z.ZodDefault<z.ZodArray<z.ZodObject<{
259
+ id: z.ZodString;
260
+ parentClassId: z.ZodString;
261
+ name: z.ZodString;
262
+ levelGrants: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
263
+ id: z.ZodString;
264
+ name: z.ZodString;
265
+ description: z.ZodOptional<z.ZodString>;
266
+ effects: z.ZodDefault<z.ZodArray<z.ZodType<import("../index.js").Effect, z.ZodTypeDef, import("../index.js").Effect>, "many">>;
267
+ }, "strip", z.ZodTypeAny, {
268
+ id: string;
269
+ name: string;
270
+ effects: import("../index.js").Effect[];
271
+ description?: string | undefined;
272
+ }, {
273
+ id: string;
274
+ name: string;
275
+ effects?: import("../index.js").Effect[] | undefined;
276
+ description?: string | undefined;
277
+ }>, "many">>>;
278
+ }, "strip", z.ZodTypeAny, {
279
+ id: string;
280
+ name: string;
281
+ parentClassId: string;
282
+ levelGrants: Record<string, {
283
+ id: string;
284
+ name: string;
285
+ effects: import("../index.js").Effect[];
286
+ description?: string | undefined;
287
+ }[]>;
288
+ }, {
289
+ id: string;
290
+ name: string;
291
+ parentClassId: string;
292
+ levelGrants?: Record<string, {
293
+ id: string;
294
+ name: string;
295
+ effects?: import("../index.js").Effect[] | undefined;
296
+ description?: string | undefined;
297
+ }[]> | undefined;
298
+ }>, "many">>;
299
+ feats: z.ZodDefault<z.ZodArray<z.ZodObject<{
300
+ id: z.ZodString;
301
+ name: z.ZodString;
302
+ category: z.ZodEnum<["origin", "general", "fighting-style", "epic-boon"]>;
303
+ repeatable: z.ZodDefault<z.ZodBoolean>;
304
+ prerequisites: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
305
+ effects: z.ZodDefault<z.ZodArray<z.ZodType<import("../index.js").Effect, z.ZodTypeDef, import("../index.js").Effect>, "many">>;
306
+ }, "strip", z.ZodTypeAny, {
307
+ id: string;
308
+ name: string;
309
+ effects: import("../index.js").Effect[];
310
+ category: "origin" | "general" | "fighting-style" | "epic-boon";
311
+ repeatable: boolean;
312
+ prerequisites: string[];
313
+ }, {
314
+ id: string;
315
+ name: string;
316
+ category: "origin" | "general" | "fighting-style" | "epic-boon";
317
+ effects?: import("../index.js").Effect[] | undefined;
318
+ repeatable?: boolean | undefined;
319
+ prerequisites?: string[] | undefined;
320
+ }>, "many">>;
321
+ spells: z.ZodDefault<z.ZodArray<z.ZodObject<{
322
+ id: z.ZodString;
323
+ name: z.ZodString;
324
+ level: z.ZodNumber;
325
+ school: z.ZodEnum<["abjuration", "conjuration", "divination", "enchantment", "evocation", "illusion", "necromancy", "transmutation"]>;
326
+ castingTime: z.ZodString;
327
+ range: z.ZodString;
328
+ components: z.ZodObject<{
329
+ verbal: z.ZodDefault<z.ZodBoolean>;
330
+ somatic: z.ZodDefault<z.ZodBoolean>;
331
+ material: z.ZodOptional<z.ZodString>;
332
+ }, "strip", z.ZodTypeAny, {
333
+ verbal: boolean;
334
+ somatic: boolean;
335
+ material?: string | undefined;
336
+ }, {
337
+ verbal?: boolean | undefined;
338
+ somatic?: boolean | undefined;
339
+ material?: string | undefined;
340
+ }>;
341
+ duration: z.ZodString;
342
+ concentration: z.ZodDefault<z.ZodBoolean>;
343
+ ritual: z.ZodDefault<z.ZodBoolean>;
344
+ classes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
345
+ description: z.ZodOptional<z.ZodString>;
346
+ mechanicalEffects: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
347
+ kind: z.ZodLiteral<"attack">;
348
+ damageDice: z.ZodString;
349
+ damageType: z.ZodEnum<["acid", "bludgeoning", "cold", "fire", "force", "lightning", "necrotic", "piercing", "poison", "psychic", "radiant", "slashing", "thunder"]>;
350
+ extraDicePerSlotLevel: z.ZodOptional<z.ZodNumber>;
351
+ cantripScalingDice: z.ZodOptional<z.ZodString>;
352
+ }, "strip", z.ZodTypeAny, {
353
+ kind: "attack";
354
+ damageType: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder";
355
+ damageDice: string;
356
+ extraDicePerSlotLevel?: number | undefined;
357
+ cantripScalingDice?: string | undefined;
358
+ }, {
359
+ kind: "attack";
360
+ damageType: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder";
361
+ damageDice: string;
362
+ extraDicePerSlotLevel?: number | undefined;
363
+ cantripScalingDice?: string | undefined;
364
+ }>, z.ZodObject<{
365
+ kind: z.ZodLiteral<"save">;
366
+ ability: z.ZodEnum<["STR", "DEX", "CON", "INT", "WIS", "CHA"]>;
367
+ damageDice: z.ZodOptional<z.ZodString>;
368
+ damageType: z.ZodOptional<z.ZodEnum<["acid", "bludgeoning", "cold", "fire", "force", "lightning", "necrotic", "piercing", "poison", "psychic", "radiant", "slashing", "thunder"]>>;
369
+ halfOnSuccess: z.ZodOptional<z.ZodBoolean>;
370
+ conditionOnFail: z.ZodOptional<z.ZodString>;
371
+ extraDicePerSlotLevel: z.ZodOptional<z.ZodNumber>;
372
+ cantripScalingDice: z.ZodOptional<z.ZodString>;
373
+ }, "strip", z.ZodTypeAny, {
374
+ kind: "save";
375
+ ability: "STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA";
376
+ damageType?: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder" | undefined;
377
+ damageDice?: string | undefined;
378
+ extraDicePerSlotLevel?: number | undefined;
379
+ cantripScalingDice?: string | undefined;
380
+ halfOnSuccess?: boolean | undefined;
381
+ conditionOnFail?: string | undefined;
382
+ }, {
383
+ kind: "save";
384
+ ability: "STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA";
385
+ damageType?: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder" | undefined;
386
+ damageDice?: string | undefined;
387
+ extraDicePerSlotLevel?: number | undefined;
388
+ cantripScalingDice?: string | undefined;
389
+ halfOnSuccess?: boolean | undefined;
390
+ conditionOnFail?: string | undefined;
391
+ }>, z.ZodObject<{
392
+ kind: z.ZodLiteral<"heal">;
393
+ amountDice: z.ZodString;
394
+ extraDicePerSlotLevel: z.ZodOptional<z.ZodNumber>;
395
+ }, "strip", z.ZodTypeAny, {
396
+ kind: "heal";
397
+ amountDice: string;
398
+ extraDicePerSlotLevel?: number | undefined;
399
+ }, {
400
+ kind: "heal";
401
+ amountDice: string;
402
+ extraDicePerSlotLevel?: number | undefined;
403
+ }>]>, "many">>;
404
+ targeting: z.ZodOptional<z.ZodObject<{
405
+ shape: z.ZodEnum<["cone", "cube", "line", "sphere", "cylinder"]>;
406
+ size: z.ZodNumber;
407
+ }, "strip", z.ZodTypeAny, {
408
+ size: number;
409
+ shape: "cone" | "cube" | "line" | "sphere" | "cylinder";
410
+ }, {
411
+ size: number;
412
+ shape: "cone" | "cube" | "line" | "sphere" | "cylinder";
413
+ }>>;
414
+ }, "strip", z.ZodTypeAny, {
415
+ level: number;
416
+ id: string;
417
+ range: string;
418
+ name: string;
419
+ school: "abjuration" | "conjuration" | "divination" | "enchantment" | "evocation" | "illusion" | "necromancy" | "transmutation";
420
+ castingTime: string;
421
+ components: {
422
+ verbal: boolean;
423
+ somatic: boolean;
424
+ material?: string | undefined;
425
+ };
426
+ duration: string;
427
+ concentration: boolean;
428
+ ritual: boolean;
429
+ classes: string[];
430
+ mechanicalEffects: ({
431
+ kind: "attack";
432
+ damageType: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder";
433
+ damageDice: string;
434
+ extraDicePerSlotLevel?: number | undefined;
435
+ cantripScalingDice?: string | undefined;
436
+ } | {
437
+ kind: "save";
438
+ ability: "STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA";
439
+ damageType?: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder" | undefined;
440
+ damageDice?: string | undefined;
441
+ extraDicePerSlotLevel?: number | undefined;
442
+ cantripScalingDice?: string | undefined;
443
+ halfOnSuccess?: boolean | undefined;
444
+ conditionOnFail?: string | undefined;
445
+ } | {
446
+ kind: "heal";
447
+ amountDice: string;
448
+ extraDicePerSlotLevel?: number | undefined;
449
+ })[];
450
+ description?: string | undefined;
451
+ targeting?: {
452
+ size: number;
453
+ shape: "cone" | "cube" | "line" | "sphere" | "cylinder";
454
+ } | undefined;
455
+ }, {
456
+ level: number;
457
+ id: string;
458
+ range: string;
459
+ name: string;
460
+ school: "abjuration" | "conjuration" | "divination" | "enchantment" | "evocation" | "illusion" | "necromancy" | "transmutation";
461
+ castingTime: string;
462
+ components: {
463
+ verbal?: boolean | undefined;
464
+ somatic?: boolean | undefined;
465
+ material?: string | undefined;
466
+ };
467
+ duration: string;
468
+ description?: string | undefined;
469
+ concentration?: boolean | undefined;
470
+ ritual?: boolean | undefined;
471
+ classes?: string[] | undefined;
472
+ mechanicalEffects?: ({
473
+ kind: "attack";
474
+ damageType: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder";
475
+ damageDice: string;
476
+ extraDicePerSlotLevel?: number | undefined;
477
+ cantripScalingDice?: string | undefined;
478
+ } | {
479
+ kind: "save";
480
+ ability: "STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA";
481
+ damageType?: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder" | undefined;
482
+ damageDice?: string | undefined;
483
+ extraDicePerSlotLevel?: number | undefined;
484
+ cantripScalingDice?: string | undefined;
485
+ halfOnSuccess?: boolean | undefined;
486
+ conditionOnFail?: string | undefined;
487
+ } | {
488
+ kind: "heal";
489
+ amountDice: string;
490
+ extraDicePerSlotLevel?: number | undefined;
491
+ })[] | undefined;
492
+ targeting?: {
493
+ size: number;
494
+ shape: "cone" | "cube" | "line" | "sphere" | "cylinder";
495
+ } | undefined;
496
+ }>, "many">>;
497
+ items: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"itemKind", [z.ZodObject<{
498
+ id: z.ZodString;
499
+ name: z.ZodString;
500
+ weight: z.ZodOptional<z.ZodNumber>;
501
+ cost: z.ZodOptional<z.ZodObject<{
502
+ amount: z.ZodNumber;
503
+ currency: z.ZodEnum<["cp", "sp", "ep", "gp", "pp"]>;
504
+ }, "strip", z.ZodTypeAny, {
505
+ amount: number;
506
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
507
+ }, {
508
+ amount: number;
509
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
510
+ }>>;
511
+ } & {
512
+ itemKind: z.ZodLiteral<"weapon">;
513
+ category: z.ZodEnum<["simple", "martial"]>;
514
+ attackKind: z.ZodEnum<["melee", "ranged"]>;
515
+ damageType: z.ZodEnum<["acid", "bludgeoning", "cold", "fire", "force", "lightning", "necrotic", "piercing", "poison", "psychic", "radiant", "slashing", "thunder"]>;
516
+ damageDice: z.ZodString;
517
+ versatileDice: z.ZodOptional<z.ZodString>;
518
+ properties: z.ZodDefault<z.ZodArray<z.ZodEnum<["ammunition", "finesse", "heavy", "light", "loading", "reach", "thrown", "two-handed", "versatile", "special"]>, "many">>;
519
+ mastery: z.ZodOptional<z.ZodEnum<["Vex", "Topple", "Sap", "Nick", "Push", "Slow", "Cleave", "Graze", "Flex"]>>;
520
+ rangeNormal: z.ZodOptional<z.ZodNumber>;
521
+ rangeLong: z.ZodOptional<z.ZodNumber>;
522
+ }, "strip", z.ZodTypeAny, {
523
+ damageType: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder";
524
+ id: string;
525
+ name: string;
526
+ category: "simple" | "martial";
527
+ damageDice: string;
528
+ itemKind: "weapon";
529
+ attackKind: "melee" | "ranged";
530
+ properties: ("ammunition" | "finesse" | "heavy" | "light" | "loading" | "reach" | "thrown" | "two-handed" | "versatile" | "special")[];
531
+ cost?: {
532
+ amount: number;
533
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
534
+ } | undefined;
535
+ weight?: number | undefined;
536
+ versatileDice?: string | undefined;
537
+ mastery?: "Vex" | "Topple" | "Sap" | "Nick" | "Push" | "Slow" | "Cleave" | "Graze" | "Flex" | undefined;
538
+ rangeNormal?: number | undefined;
539
+ rangeLong?: number | undefined;
540
+ }, {
541
+ damageType: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder";
542
+ id: string;
543
+ name: string;
544
+ category: "simple" | "martial";
545
+ damageDice: string;
546
+ itemKind: "weapon";
547
+ attackKind: "melee" | "ranged";
548
+ cost?: {
549
+ amount: number;
550
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
551
+ } | undefined;
552
+ weight?: number | undefined;
553
+ versatileDice?: string | undefined;
554
+ properties?: ("ammunition" | "finesse" | "heavy" | "light" | "loading" | "reach" | "thrown" | "two-handed" | "versatile" | "special")[] | undefined;
555
+ mastery?: "Vex" | "Topple" | "Sap" | "Nick" | "Push" | "Slow" | "Cleave" | "Graze" | "Flex" | undefined;
556
+ rangeNormal?: number | undefined;
557
+ rangeLong?: number | undefined;
558
+ }>, z.ZodObject<{
559
+ id: z.ZodString;
560
+ name: z.ZodString;
561
+ weight: z.ZodOptional<z.ZodNumber>;
562
+ cost: z.ZodOptional<z.ZodObject<{
563
+ amount: z.ZodNumber;
564
+ currency: z.ZodEnum<["cp", "sp", "ep", "gp", "pp"]>;
565
+ }, "strip", z.ZodTypeAny, {
566
+ amount: number;
567
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
568
+ }, {
569
+ amount: number;
570
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
571
+ }>>;
572
+ } & {
573
+ itemKind: z.ZodLiteral<"armor">;
574
+ category: z.ZodEnum<["light", "medium", "heavy", "shield"]>;
575
+ baseAC: z.ZodNumber;
576
+ dexCap: z.ZodOptional<z.ZodNumber>;
577
+ strRequirement: z.ZodOptional<z.ZodNumber>;
578
+ stealthDisadvantage: z.ZodDefault<z.ZodBoolean>;
579
+ }, "strip", z.ZodTypeAny, {
580
+ id: string;
581
+ name: string;
582
+ category: "heavy" | "light" | "medium" | "shield";
583
+ itemKind: "armor";
584
+ baseAC: number;
585
+ stealthDisadvantage: boolean;
586
+ dexCap?: number | undefined;
587
+ cost?: {
588
+ amount: number;
589
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
590
+ } | undefined;
591
+ weight?: number | undefined;
592
+ strRequirement?: number | undefined;
593
+ }, {
594
+ id: string;
595
+ name: string;
596
+ category: "heavy" | "light" | "medium" | "shield";
597
+ itemKind: "armor";
598
+ baseAC: number;
599
+ dexCap?: number | undefined;
600
+ cost?: {
601
+ amount: number;
602
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
603
+ } | undefined;
604
+ weight?: number | undefined;
605
+ strRequirement?: number | undefined;
606
+ stealthDisadvantage?: boolean | undefined;
607
+ }>, z.ZodObject<{
608
+ id: z.ZodString;
609
+ name: z.ZodString;
610
+ weight: z.ZodOptional<z.ZodNumber>;
611
+ cost: z.ZodOptional<z.ZodObject<{
612
+ amount: z.ZodNumber;
613
+ currency: z.ZodEnum<["cp", "sp", "ep", "gp", "pp"]>;
614
+ }, "strip", z.ZodTypeAny, {
615
+ amount: number;
616
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
617
+ }, {
618
+ amount: number;
619
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
620
+ }>>;
621
+ } & {
622
+ itemKind: z.ZodLiteral<"tool">;
623
+ category: z.ZodEnum<["artisan", "gaming", "musical", "other"]>;
624
+ }, "strip", z.ZodTypeAny, {
625
+ id: string;
626
+ name: string;
627
+ category: "artisan" | "gaming" | "musical" | "other";
628
+ itemKind: "tool";
629
+ cost?: {
630
+ amount: number;
631
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
632
+ } | undefined;
633
+ weight?: number | undefined;
634
+ }, {
635
+ id: string;
636
+ name: string;
637
+ category: "artisan" | "gaming" | "musical" | "other";
638
+ itemKind: "tool";
639
+ cost?: {
640
+ amount: number;
641
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
642
+ } | undefined;
643
+ weight?: number | undefined;
644
+ }>, z.ZodObject<{
645
+ id: z.ZodString;
646
+ name: z.ZodString;
647
+ weight: z.ZodOptional<z.ZodNumber>;
648
+ cost: z.ZodOptional<z.ZodObject<{
649
+ amount: z.ZodNumber;
650
+ currency: z.ZodEnum<["cp", "sp", "ep", "gp", "pp"]>;
651
+ }, "strip", z.ZodTypeAny, {
652
+ amount: number;
653
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
654
+ }, {
655
+ amount: number;
656
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
657
+ }>>;
658
+ } & {
659
+ itemKind: z.ZodLiteral<"magic">;
660
+ rarity: z.ZodEnum<["common", "uncommon", "rare", "very-rare", "legendary", "artifact"]>;
661
+ requiresAttunement: z.ZodDefault<z.ZodBoolean>;
662
+ attunementCondition: z.ZodOptional<z.ZodString>;
663
+ charges: z.ZodOptional<z.ZodObject<{
664
+ max: z.ZodNumber;
665
+ recharge: z.ZodEnum<["shortRest", "longRest", "turn", "round", "dawn", "never"]>;
666
+ rechargeFormula: z.ZodOptional<z.ZodString>;
667
+ }, "strip", z.ZodTypeAny, {
668
+ max: number;
669
+ recharge: "never" | "shortRest" | "longRest" | "turn" | "round" | "dawn";
670
+ rechargeFormula?: string | undefined;
671
+ }, {
672
+ max: number;
673
+ recharge: "never" | "shortRest" | "longRest" | "turn" | "round" | "dawn";
674
+ rechargeFormula?: string | undefined;
675
+ }>>;
676
+ effects: z.ZodDefault<z.ZodArray<z.ZodType<import("../index.js").Effect, z.ZodTypeDef, import("../index.js").Effect>, "many">>;
677
+ }, "strip", z.ZodTypeAny, {
678
+ id: string;
679
+ name: string;
680
+ effects: import("../index.js").Effect[];
681
+ itemKind: "magic";
682
+ rarity: "common" | "uncommon" | "rare" | "very-rare" | "legendary" | "artifact";
683
+ requiresAttunement: boolean;
684
+ cost?: {
685
+ amount: number;
686
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
687
+ } | undefined;
688
+ weight?: number | undefined;
689
+ attunementCondition?: string | undefined;
690
+ charges?: {
691
+ max: number;
692
+ recharge: "never" | "shortRest" | "longRest" | "turn" | "round" | "dawn";
693
+ rechargeFormula?: string | undefined;
694
+ } | undefined;
695
+ }, {
696
+ id: string;
697
+ name: string;
698
+ itemKind: "magic";
699
+ rarity: "common" | "uncommon" | "rare" | "very-rare" | "legendary" | "artifact";
700
+ cost?: {
701
+ amount: number;
702
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
703
+ } | undefined;
704
+ effects?: import("../index.js").Effect[] | undefined;
705
+ weight?: number | undefined;
706
+ requiresAttunement?: boolean | undefined;
707
+ attunementCondition?: string | undefined;
708
+ charges?: {
709
+ max: number;
710
+ recharge: "never" | "shortRest" | "longRest" | "turn" | "round" | "dawn";
711
+ rechargeFormula?: string | undefined;
712
+ } | undefined;
713
+ }>, z.ZodObject<{
714
+ id: z.ZodString;
715
+ name: z.ZodString;
716
+ weight: z.ZodOptional<z.ZodNumber>;
717
+ cost: z.ZodOptional<z.ZodObject<{
718
+ amount: z.ZodNumber;
719
+ currency: z.ZodEnum<["cp", "sp", "ep", "gp", "pp"]>;
720
+ }, "strip", z.ZodTypeAny, {
721
+ amount: number;
722
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
723
+ }, {
724
+ amount: number;
725
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
726
+ }>>;
727
+ } & {
728
+ itemKind: z.ZodLiteral<"consumable">;
729
+ onConsume: z.ZodDefault<z.ZodArray<z.ZodType<import("../index.js").Effect, z.ZodTypeDef, import("../index.js").Effect>, "many">>;
730
+ description: z.ZodOptional<z.ZodString>;
731
+ }, "strip", z.ZodTypeAny, {
732
+ id: string;
733
+ name: string;
734
+ itemKind: "consumable";
735
+ onConsume: import("../index.js").Effect[];
736
+ cost?: {
737
+ amount: number;
738
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
739
+ } | undefined;
740
+ description?: string | undefined;
741
+ weight?: number | undefined;
742
+ }, {
743
+ id: string;
744
+ name: string;
745
+ itemKind: "consumable";
746
+ cost?: {
747
+ amount: number;
748
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
749
+ } | undefined;
750
+ description?: string | undefined;
751
+ weight?: number | undefined;
752
+ onConsume?: import("../index.js").Effect[] | undefined;
753
+ }>, z.ZodObject<{
754
+ id: z.ZodString;
755
+ name: z.ZodString;
756
+ weight: z.ZodOptional<z.ZodNumber>;
757
+ cost: z.ZodOptional<z.ZodObject<{
758
+ amount: z.ZodNumber;
759
+ currency: z.ZodEnum<["cp", "sp", "ep", "gp", "pp"]>;
760
+ }, "strip", z.ZodTypeAny, {
761
+ amount: number;
762
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
763
+ }, {
764
+ amount: number;
765
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
766
+ }>>;
767
+ } & {
768
+ itemKind: z.ZodLiteral<"gear">;
769
+ description: z.ZodOptional<z.ZodString>;
770
+ }, "strip", z.ZodTypeAny, {
771
+ id: string;
772
+ name: string;
773
+ itemKind: "gear";
774
+ cost?: {
775
+ amount: number;
776
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
777
+ } | undefined;
778
+ description?: string | undefined;
779
+ weight?: number | undefined;
780
+ }, {
781
+ id: string;
782
+ name: string;
783
+ itemKind: "gear";
784
+ cost?: {
785
+ amount: number;
786
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
787
+ } | undefined;
788
+ description?: string | undefined;
789
+ weight?: number | undefined;
790
+ }>]>, "many">>;
791
+ monsters: z.ZodDefault<z.ZodArray<z.ZodObject<{
792
+ id: z.ZodString;
793
+ name: z.ZodString;
794
+ size: z.ZodEnum<["Tiny", "Small", "Medium", "Large", "Huge", "Gargantuan"]>;
795
+ type: z.ZodEnum<["Aberration", "Beast", "Celestial", "Construct", "Dragon", "Elemental", "Fey", "Fiend", "Giant", "Humanoid", "Monstrosity", "Ooze", "Plant", "Undead"]>;
796
+ subtype: z.ZodOptional<z.ZodString>;
797
+ alignment: z.ZodDefault<z.ZodUnion<[z.ZodLiteral<"unaligned">, z.ZodLiteral<"any">, z.ZodObject<{
798
+ lawChaos: z.ZodEnum<["lawful", "neutral", "chaotic"]>;
799
+ goodEvil: z.ZodEnum<["good", "neutral", "evil"]>;
800
+ }, "strip", z.ZodTypeAny, {
801
+ lawChaos: "lawful" | "neutral" | "chaotic";
802
+ goodEvil: "neutral" | "good" | "evil";
803
+ }, {
804
+ lawChaos: "lawful" | "neutral" | "chaotic";
805
+ goodEvil: "neutral" | "good" | "evil";
806
+ }>]>>;
807
+ ac: z.ZodNumber;
808
+ hp: z.ZodObject<{
809
+ average: z.ZodNumber;
810
+ formula: z.ZodString;
811
+ }, "strip", z.ZodTypeAny, {
812
+ average: number;
813
+ formula: string;
814
+ }, {
815
+ average: number;
816
+ formula: string;
817
+ }>;
818
+ speed: z.ZodObject<{
819
+ walk: z.ZodDefault<z.ZodNumber>;
820
+ fly: z.ZodOptional<z.ZodNumber>;
821
+ swim: z.ZodOptional<z.ZodNumber>;
822
+ climb: z.ZodOptional<z.ZodNumber>;
823
+ burrow: z.ZodOptional<z.ZodNumber>;
824
+ hover: z.ZodOptional<z.ZodBoolean>;
825
+ }, "strip", z.ZodTypeAny, {
826
+ walk: number;
827
+ fly?: number | undefined;
828
+ swim?: number | undefined;
829
+ climb?: number | undefined;
830
+ burrow?: number | undefined;
831
+ hover?: boolean | undefined;
832
+ }, {
833
+ walk?: number | undefined;
834
+ fly?: number | undefined;
835
+ swim?: number | undefined;
836
+ climb?: number | undefined;
837
+ burrow?: number | undefined;
838
+ hover?: boolean | undefined;
839
+ }>;
840
+ abilityScores: z.ZodObject<{
841
+ STR: z.ZodNumber;
842
+ DEX: z.ZodNumber;
843
+ CON: z.ZodNumber;
844
+ INT: z.ZodNumber;
845
+ WIS: z.ZodNumber;
846
+ CHA: z.ZodNumber;
847
+ }, "strip", z.ZodTypeAny, {
848
+ STR: number;
849
+ DEX: number;
850
+ CON: number;
851
+ INT: number;
852
+ WIS: number;
853
+ CHA: number;
854
+ }, {
855
+ STR: number;
856
+ DEX: number;
857
+ CON: number;
858
+ INT: number;
859
+ WIS: number;
860
+ CHA: number;
861
+ }>;
862
+ savingThrows: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
863
+ skills: z.ZodOptional<z.ZodRecord<z.ZodEnum<["acrobatics", "animal-handling", "arcana", "athletics", "deception", "history", "insight", "intimidation", "investigation", "medicine", "nature", "perception", "performance", "persuasion", "religion", "sleight-of-hand", "stealth", "survival"]>, z.ZodNumber>>;
864
+ damageResistances: z.ZodDefault<z.ZodArray<z.ZodEnum<["acid", "bludgeoning", "cold", "fire", "force", "lightning", "necrotic", "piercing", "poison", "psychic", "radiant", "slashing", "thunder"]>, "many">>;
865
+ damageImmunities: z.ZodDefault<z.ZodArray<z.ZodEnum<["acid", "bludgeoning", "cold", "fire", "force", "lightning", "necrotic", "piercing", "poison", "psychic", "radiant", "slashing", "thunder"]>, "many">>;
866
+ damageVulnerabilities: z.ZodDefault<z.ZodArray<z.ZodEnum<["acid", "bludgeoning", "cold", "fire", "force", "lightning", "necrotic", "piercing", "poison", "psychic", "radiant", "slashing", "thunder"]>, "many">>;
867
+ conditionImmunities: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
868
+ senses: z.ZodOptional<z.ZodObject<{
869
+ darkvision: z.ZodOptional<z.ZodNumber>;
870
+ blindsight: z.ZodOptional<z.ZodNumber>;
871
+ tremorsense: z.ZodOptional<z.ZodNumber>;
872
+ truesight: z.ZodOptional<z.ZodNumber>;
873
+ passivePerceptionOverride: z.ZodOptional<z.ZodNumber>;
874
+ }, "strip", z.ZodTypeAny, {
875
+ darkvision?: number | undefined;
876
+ blindsight?: number | undefined;
877
+ tremorsense?: number | undefined;
878
+ truesight?: number | undefined;
879
+ passivePerceptionOverride?: number | undefined;
880
+ }, {
881
+ darkvision?: number | undefined;
882
+ blindsight?: number | undefined;
883
+ tremorsense?: number | undefined;
884
+ truesight?: number | undefined;
885
+ passivePerceptionOverride?: number | undefined;
886
+ }>>;
887
+ languages: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
888
+ cr: z.ZodNumber;
889
+ xp: z.ZodNumber;
890
+ proficiencyBonus: z.ZodNumber;
891
+ traits: z.ZodDefault<z.ZodArray<z.ZodType<import("../index.js").Effect, z.ZodTypeDef, import("../index.js").Effect>, "many">>;
892
+ }, "strip", z.ZodTypeAny, {
893
+ type: "Aberration" | "Beast" | "Celestial" | "Construct" | "Dragon" | "Elemental" | "Fey" | "Fiend" | "Giant" | "Humanoid" | "Monstrosity" | "Ooze" | "Plant" | "Undead";
894
+ ac: number;
895
+ speed: {
896
+ walk: number;
897
+ fly?: number | undefined;
898
+ swim?: number | undefined;
899
+ climb?: number | undefined;
900
+ burrow?: number | undefined;
901
+ hover?: boolean | undefined;
902
+ };
903
+ id: string;
904
+ name: string;
905
+ size: "Tiny" | "Small" | "Medium" | "Large" | "Huge" | "Gargantuan";
906
+ languages: string[];
907
+ traits: import("../index.js").Effect[];
908
+ proficiencyBonus: number;
909
+ alignment: "unaligned" | "any" | {
910
+ lawChaos: "lawful" | "neutral" | "chaotic";
911
+ goodEvil: "neutral" | "good" | "evil";
912
+ };
913
+ hp: {
914
+ average: number;
915
+ formula: string;
916
+ };
917
+ abilityScores: {
918
+ STR: number;
919
+ DEX: number;
920
+ CON: number;
921
+ INT: number;
922
+ WIS: number;
923
+ CHA: number;
924
+ };
925
+ damageResistances: ("acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder")[];
926
+ damageImmunities: ("acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder")[];
927
+ damageVulnerabilities: ("acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder")[];
928
+ conditionImmunities: string[];
929
+ cr: number;
930
+ xp: number;
931
+ subtype?: string | undefined;
932
+ savingThrows?: Record<string, number> | undefined;
933
+ skills?: Partial<Record<"acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival", number>> | undefined;
934
+ senses?: {
935
+ darkvision?: number | undefined;
936
+ blindsight?: number | undefined;
937
+ tremorsense?: number | undefined;
938
+ truesight?: number | undefined;
939
+ passivePerceptionOverride?: number | undefined;
940
+ } | undefined;
941
+ }, {
942
+ type: "Aberration" | "Beast" | "Celestial" | "Construct" | "Dragon" | "Elemental" | "Fey" | "Fiend" | "Giant" | "Humanoid" | "Monstrosity" | "Ooze" | "Plant" | "Undead";
943
+ ac: number;
944
+ speed: {
945
+ walk?: number | undefined;
946
+ fly?: number | undefined;
947
+ swim?: number | undefined;
948
+ climb?: number | undefined;
949
+ burrow?: number | undefined;
950
+ hover?: boolean | undefined;
951
+ };
952
+ id: string;
953
+ name: string;
954
+ size: "Tiny" | "Small" | "Medium" | "Large" | "Huge" | "Gargantuan";
955
+ proficiencyBonus: number;
956
+ hp: {
957
+ average: number;
958
+ formula: string;
959
+ };
960
+ abilityScores: {
961
+ STR: number;
962
+ DEX: number;
963
+ CON: number;
964
+ INT: number;
965
+ WIS: number;
966
+ CHA: number;
967
+ };
968
+ cr: number;
969
+ xp: number;
970
+ languages?: string[] | undefined;
971
+ traits?: import("../index.js").Effect[] | undefined;
972
+ subtype?: string | undefined;
973
+ alignment?: "unaligned" | "any" | {
974
+ lawChaos: "lawful" | "neutral" | "chaotic";
975
+ goodEvil: "neutral" | "good" | "evil";
976
+ } | undefined;
977
+ savingThrows?: Record<string, number> | undefined;
978
+ skills?: Partial<Record<"acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival", number>> | undefined;
979
+ damageResistances?: ("acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder")[] | undefined;
980
+ damageImmunities?: ("acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder")[] | undefined;
981
+ damageVulnerabilities?: ("acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder")[] | undefined;
982
+ conditionImmunities?: string[] | undefined;
983
+ senses?: {
984
+ darkvision?: number | undefined;
985
+ blindsight?: number | undefined;
986
+ tremorsense?: number | undefined;
987
+ truesight?: number | undefined;
988
+ passivePerceptionOverride?: number | undefined;
989
+ } | undefined;
990
+ }>, "many">>;
991
+ conditions: z.ZodDefault<z.ZodArray<z.ZodObject<{
992
+ id: z.ZodString;
993
+ name: z.ZodString;
994
+ description: z.ZodOptional<z.ZodString>;
995
+ effects: z.ZodDefault<z.ZodArray<z.ZodType<import("../index.js").Effect, z.ZodTypeDef, import("../index.js").Effect>, "many">>;
996
+ stackable: z.ZodDefault<z.ZodBoolean>;
997
+ endsOn: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodObject<{
998
+ kind: z.ZodLiteral<"shortRest">;
999
+ }, "strip", z.ZodTypeAny, {
1000
+ kind: "shortRest";
1001
+ }, {
1002
+ kind: "shortRest";
1003
+ }>, z.ZodObject<{
1004
+ kind: z.ZodLiteral<"longRest">;
1005
+ }, "strip", z.ZodTypeAny, {
1006
+ kind: "longRest";
1007
+ }, {
1008
+ kind: "longRest";
1009
+ }>, z.ZodObject<{
1010
+ kind: z.ZodLiteral<"turnEnd">;
1011
+ ownerId: z.ZodOptional<z.ZodString>;
1012
+ }, "strip", z.ZodTypeAny, {
1013
+ kind: "turnEnd";
1014
+ ownerId?: string | undefined;
1015
+ }, {
1016
+ kind: "turnEnd";
1017
+ ownerId?: string | undefined;
1018
+ }>, z.ZodObject<{
1019
+ kind: z.ZodLiteral<"saveSuccess">;
1020
+ ability: z.ZodString;
1021
+ dc: z.ZodNumber;
1022
+ }, "strip", z.ZodTypeAny, {
1023
+ kind: "saveSuccess";
1024
+ ability: string;
1025
+ dc: number;
1026
+ }, {
1027
+ kind: "saveSuccess";
1028
+ ability: string;
1029
+ dc: number;
1030
+ }>, z.ZodObject<{
1031
+ kind: z.ZodLiteral<"damageTaken">;
1032
+ }, "strip", z.ZodTypeAny, {
1033
+ kind: "damageTaken";
1034
+ }, {
1035
+ kind: "damageTaken";
1036
+ }>]>, "many">>;
1037
+ }, "strip", z.ZodTypeAny, {
1038
+ id: string;
1039
+ name: string;
1040
+ effects: import("../index.js").Effect[];
1041
+ stackable: boolean;
1042
+ endsOn: ({
1043
+ kind: "shortRest";
1044
+ } | {
1045
+ kind: "longRest";
1046
+ } | {
1047
+ kind: "turnEnd";
1048
+ ownerId?: string | undefined;
1049
+ } | {
1050
+ kind: "saveSuccess";
1051
+ ability: string;
1052
+ dc: number;
1053
+ } | {
1054
+ kind: "damageTaken";
1055
+ })[];
1056
+ description?: string | undefined;
1057
+ }, {
1058
+ id: string;
1059
+ name: string;
1060
+ effects?: import("../index.js").Effect[] | undefined;
1061
+ description?: string | undefined;
1062
+ stackable?: boolean | undefined;
1063
+ endsOn?: ({
1064
+ kind: "shortRest";
1065
+ } | {
1066
+ kind: "longRest";
1067
+ } | {
1068
+ kind: "turnEnd";
1069
+ ownerId?: string | undefined;
1070
+ } | {
1071
+ kind: "saveSuccess";
1072
+ ability: string;
1073
+ dc: number;
1074
+ } | {
1075
+ kind: "damageTaken";
1076
+ })[] | undefined;
1077
+ }>, "many">>;
1078
+ }, "strip", z.ZodTypeAny, {
1079
+ id: string;
1080
+ name: string;
1081
+ classes: {
1082
+ id: string;
1083
+ name: string;
1084
+ toolProficiencies: string[];
1085
+ hitDie: 6 | 8 | 10 | 12;
1086
+ primaryAbility: ("STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA")[];
1087
+ savingThrowProficiencies: ("STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA")[];
1088
+ armorProficiencies: string[];
1089
+ weaponProficiencies: string[];
1090
+ levelTable: Record<string, {
1091
+ proficiencyBonus: number;
1092
+ features: {
1093
+ id: string;
1094
+ name: string;
1095
+ effects: import("../index.js").Effect[];
1096
+ description?: string | undefined;
1097
+ }[];
1098
+ columns: Record<string, string | number>;
1099
+ }>;
1100
+ skillChoices?: {
1101
+ choices: number;
1102
+ from: ("acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival")[];
1103
+ } | undefined;
1104
+ subclassLevel?: number | undefined;
1105
+ spellcasting?: {
1106
+ type: "half" | "full" | "third" | "pact";
1107
+ ability: "STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA";
1108
+ preparedFormula?: string | undefined;
1109
+ } | undefined;
1110
+ }[];
1111
+ version: string;
1112
+ species: {
1113
+ speed: {
1114
+ walk: number;
1115
+ fly?: number | undefined;
1116
+ swim?: number | undefined;
1117
+ climb?: number | undefined;
1118
+ burrow?: number | undefined;
1119
+ hover?: boolean | undefined;
1120
+ };
1121
+ id: string;
1122
+ name: string;
1123
+ size: "Tiny" | "Small" | "Medium" | "Large" | "Huge" | "Gargantuan";
1124
+ creatureType: "Aberration" | "Beast" | "Celestial" | "Construct" | "Dragon" | "Elemental" | "Fey" | "Fiend" | "Giant" | "Humanoid" | "Monstrosity" | "Ooze" | "Plant" | "Undead";
1125
+ languages: string[];
1126
+ traits: import("../index.js").Effect[];
1127
+ }[];
1128
+ backgrounds: {
1129
+ id: string;
1130
+ name: string;
1131
+ languages: string[];
1132
+ traits: import("../index.js").Effect[];
1133
+ abilityScoreIncreases: {
1134
+ options: ("STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA")[];
1135
+ pattern: "+2/+1" | "+1/+1/+1";
1136
+ };
1137
+ skillProficiencies: ("acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival")[];
1138
+ toolProficiencies: string[];
1139
+ originFeatId: string;
1140
+ }[];
1141
+ subclasses: {
1142
+ id: string;
1143
+ name: string;
1144
+ parentClassId: string;
1145
+ levelGrants: Record<string, {
1146
+ id: string;
1147
+ name: string;
1148
+ effects: import("../index.js").Effect[];
1149
+ description?: string | undefined;
1150
+ }[]>;
1151
+ }[];
1152
+ feats: {
1153
+ id: string;
1154
+ name: string;
1155
+ effects: import("../index.js").Effect[];
1156
+ category: "origin" | "general" | "fighting-style" | "epic-boon";
1157
+ repeatable: boolean;
1158
+ prerequisites: string[];
1159
+ }[];
1160
+ spells: {
1161
+ level: number;
1162
+ id: string;
1163
+ range: string;
1164
+ name: string;
1165
+ school: "abjuration" | "conjuration" | "divination" | "enchantment" | "evocation" | "illusion" | "necromancy" | "transmutation";
1166
+ castingTime: string;
1167
+ components: {
1168
+ verbal: boolean;
1169
+ somatic: boolean;
1170
+ material?: string | undefined;
1171
+ };
1172
+ duration: string;
1173
+ concentration: boolean;
1174
+ ritual: boolean;
1175
+ classes: string[];
1176
+ mechanicalEffects: ({
1177
+ kind: "attack";
1178
+ damageType: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder";
1179
+ damageDice: string;
1180
+ extraDicePerSlotLevel?: number | undefined;
1181
+ cantripScalingDice?: string | undefined;
1182
+ } | {
1183
+ kind: "save";
1184
+ ability: "STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA";
1185
+ damageType?: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder" | undefined;
1186
+ damageDice?: string | undefined;
1187
+ extraDicePerSlotLevel?: number | undefined;
1188
+ cantripScalingDice?: string | undefined;
1189
+ halfOnSuccess?: boolean | undefined;
1190
+ conditionOnFail?: string | undefined;
1191
+ } | {
1192
+ kind: "heal";
1193
+ amountDice: string;
1194
+ extraDicePerSlotLevel?: number | undefined;
1195
+ })[];
1196
+ description?: string | undefined;
1197
+ targeting?: {
1198
+ size: number;
1199
+ shape: "cone" | "cube" | "line" | "sphere" | "cylinder";
1200
+ } | undefined;
1201
+ }[];
1202
+ items: ({
1203
+ damageType: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder";
1204
+ id: string;
1205
+ name: string;
1206
+ category: "simple" | "martial";
1207
+ damageDice: string;
1208
+ itemKind: "weapon";
1209
+ attackKind: "melee" | "ranged";
1210
+ properties: ("ammunition" | "finesse" | "heavy" | "light" | "loading" | "reach" | "thrown" | "two-handed" | "versatile" | "special")[];
1211
+ cost?: {
1212
+ amount: number;
1213
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
1214
+ } | undefined;
1215
+ weight?: number | undefined;
1216
+ versatileDice?: string | undefined;
1217
+ mastery?: "Vex" | "Topple" | "Sap" | "Nick" | "Push" | "Slow" | "Cleave" | "Graze" | "Flex" | undefined;
1218
+ rangeNormal?: number | undefined;
1219
+ rangeLong?: number | undefined;
1220
+ } | {
1221
+ id: string;
1222
+ name: string;
1223
+ category: "heavy" | "light" | "medium" | "shield";
1224
+ itemKind: "armor";
1225
+ baseAC: number;
1226
+ stealthDisadvantage: boolean;
1227
+ dexCap?: number | undefined;
1228
+ cost?: {
1229
+ amount: number;
1230
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
1231
+ } | undefined;
1232
+ weight?: number | undefined;
1233
+ strRequirement?: number | undefined;
1234
+ } | {
1235
+ id: string;
1236
+ name: string;
1237
+ category: "artisan" | "gaming" | "musical" | "other";
1238
+ itemKind: "tool";
1239
+ cost?: {
1240
+ amount: number;
1241
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
1242
+ } | undefined;
1243
+ weight?: number | undefined;
1244
+ } | {
1245
+ id: string;
1246
+ name: string;
1247
+ effects: import("../index.js").Effect[];
1248
+ itemKind: "magic";
1249
+ rarity: "common" | "uncommon" | "rare" | "very-rare" | "legendary" | "artifact";
1250
+ requiresAttunement: boolean;
1251
+ cost?: {
1252
+ amount: number;
1253
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
1254
+ } | undefined;
1255
+ weight?: number | undefined;
1256
+ attunementCondition?: string | undefined;
1257
+ charges?: {
1258
+ max: number;
1259
+ recharge: "never" | "shortRest" | "longRest" | "turn" | "round" | "dawn";
1260
+ rechargeFormula?: string | undefined;
1261
+ } | undefined;
1262
+ } | {
1263
+ id: string;
1264
+ name: string;
1265
+ itemKind: "consumable";
1266
+ onConsume: import("../index.js").Effect[];
1267
+ cost?: {
1268
+ amount: number;
1269
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
1270
+ } | undefined;
1271
+ description?: string | undefined;
1272
+ weight?: number | undefined;
1273
+ } | {
1274
+ id: string;
1275
+ name: string;
1276
+ itemKind: "gear";
1277
+ cost?: {
1278
+ amount: number;
1279
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
1280
+ } | undefined;
1281
+ description?: string | undefined;
1282
+ weight?: number | undefined;
1283
+ })[];
1284
+ monsters: {
1285
+ type: "Aberration" | "Beast" | "Celestial" | "Construct" | "Dragon" | "Elemental" | "Fey" | "Fiend" | "Giant" | "Humanoid" | "Monstrosity" | "Ooze" | "Plant" | "Undead";
1286
+ ac: number;
1287
+ speed: {
1288
+ walk: number;
1289
+ fly?: number | undefined;
1290
+ swim?: number | undefined;
1291
+ climb?: number | undefined;
1292
+ burrow?: number | undefined;
1293
+ hover?: boolean | undefined;
1294
+ };
1295
+ id: string;
1296
+ name: string;
1297
+ size: "Tiny" | "Small" | "Medium" | "Large" | "Huge" | "Gargantuan";
1298
+ languages: string[];
1299
+ traits: import("../index.js").Effect[];
1300
+ proficiencyBonus: number;
1301
+ alignment: "unaligned" | "any" | {
1302
+ lawChaos: "lawful" | "neutral" | "chaotic";
1303
+ goodEvil: "neutral" | "good" | "evil";
1304
+ };
1305
+ hp: {
1306
+ average: number;
1307
+ formula: string;
1308
+ };
1309
+ abilityScores: {
1310
+ STR: number;
1311
+ DEX: number;
1312
+ CON: number;
1313
+ INT: number;
1314
+ WIS: number;
1315
+ CHA: number;
1316
+ };
1317
+ damageResistances: ("acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder")[];
1318
+ damageImmunities: ("acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder")[];
1319
+ damageVulnerabilities: ("acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder")[];
1320
+ conditionImmunities: string[];
1321
+ cr: number;
1322
+ xp: number;
1323
+ subtype?: string | undefined;
1324
+ savingThrows?: Record<string, number> | undefined;
1325
+ skills?: Partial<Record<"acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival", number>> | undefined;
1326
+ senses?: {
1327
+ darkvision?: number | undefined;
1328
+ blindsight?: number | undefined;
1329
+ tremorsense?: number | undefined;
1330
+ truesight?: number | undefined;
1331
+ passivePerceptionOverride?: number | undefined;
1332
+ } | undefined;
1333
+ }[];
1334
+ conditions: {
1335
+ id: string;
1336
+ name: string;
1337
+ effects: import("../index.js").Effect[];
1338
+ stackable: boolean;
1339
+ endsOn: ({
1340
+ kind: "shortRest";
1341
+ } | {
1342
+ kind: "longRest";
1343
+ } | {
1344
+ kind: "turnEnd";
1345
+ ownerId?: string | undefined;
1346
+ } | {
1347
+ kind: "saveSuccess";
1348
+ ability: string;
1349
+ dc: number;
1350
+ } | {
1351
+ kind: "damageTaken";
1352
+ })[];
1353
+ description?: string | undefined;
1354
+ }[];
1355
+ }, {
1356
+ id: string;
1357
+ name: string;
1358
+ version: string;
1359
+ classes?: {
1360
+ id: string;
1361
+ name: string;
1362
+ hitDie: 6 | 8 | 10 | 12;
1363
+ primaryAbility: ("STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA")[];
1364
+ savingThrowProficiencies: ("STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA")[];
1365
+ levelTable: Record<string, {
1366
+ proficiencyBonus: number;
1367
+ features?: {
1368
+ id: string;
1369
+ name: string;
1370
+ effects?: import("../index.js").Effect[] | undefined;
1371
+ description?: string | undefined;
1372
+ }[] | undefined;
1373
+ columns?: Record<string, string | number> | undefined;
1374
+ }>;
1375
+ toolProficiencies?: string[] | undefined;
1376
+ armorProficiencies?: string[] | undefined;
1377
+ weaponProficiencies?: string[] | undefined;
1378
+ skillChoices?: {
1379
+ choices: number;
1380
+ from: ("acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival")[];
1381
+ } | undefined;
1382
+ subclassLevel?: number | undefined;
1383
+ spellcasting?: {
1384
+ type: "half" | "full" | "third" | "pact";
1385
+ ability: "STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA";
1386
+ preparedFormula?: string | undefined;
1387
+ } | undefined;
1388
+ }[] | undefined;
1389
+ species?: {
1390
+ speed: {
1391
+ walk?: number | undefined;
1392
+ fly?: number | undefined;
1393
+ swim?: number | undefined;
1394
+ climb?: number | undefined;
1395
+ burrow?: number | undefined;
1396
+ hover?: boolean | undefined;
1397
+ };
1398
+ id: string;
1399
+ name: string;
1400
+ size: "Tiny" | "Small" | "Medium" | "Large" | "Huge" | "Gargantuan";
1401
+ creatureType?: "Aberration" | "Beast" | "Celestial" | "Construct" | "Dragon" | "Elemental" | "Fey" | "Fiend" | "Giant" | "Humanoid" | "Monstrosity" | "Ooze" | "Plant" | "Undead" | undefined;
1402
+ languages?: string[] | undefined;
1403
+ traits?: import("../index.js").Effect[] | undefined;
1404
+ }[] | undefined;
1405
+ backgrounds?: {
1406
+ id: string;
1407
+ name: string;
1408
+ abilityScoreIncreases: {
1409
+ options: ("STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA")[];
1410
+ pattern: "+2/+1" | "+1/+1/+1";
1411
+ };
1412
+ originFeatId: string;
1413
+ languages?: string[] | undefined;
1414
+ traits?: import("../index.js").Effect[] | undefined;
1415
+ skillProficiencies?: ("acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival")[] | undefined;
1416
+ toolProficiencies?: string[] | undefined;
1417
+ }[] | undefined;
1418
+ subclasses?: {
1419
+ id: string;
1420
+ name: string;
1421
+ parentClassId: string;
1422
+ levelGrants?: Record<string, {
1423
+ id: string;
1424
+ name: string;
1425
+ effects?: import("../index.js").Effect[] | undefined;
1426
+ description?: string | undefined;
1427
+ }[]> | undefined;
1428
+ }[] | undefined;
1429
+ feats?: {
1430
+ id: string;
1431
+ name: string;
1432
+ category: "origin" | "general" | "fighting-style" | "epic-boon";
1433
+ effects?: import("../index.js").Effect[] | undefined;
1434
+ repeatable?: boolean | undefined;
1435
+ prerequisites?: string[] | undefined;
1436
+ }[] | undefined;
1437
+ spells?: {
1438
+ level: number;
1439
+ id: string;
1440
+ range: string;
1441
+ name: string;
1442
+ school: "abjuration" | "conjuration" | "divination" | "enchantment" | "evocation" | "illusion" | "necromancy" | "transmutation";
1443
+ castingTime: string;
1444
+ components: {
1445
+ verbal?: boolean | undefined;
1446
+ somatic?: boolean | undefined;
1447
+ material?: string | undefined;
1448
+ };
1449
+ duration: string;
1450
+ description?: string | undefined;
1451
+ concentration?: boolean | undefined;
1452
+ ritual?: boolean | undefined;
1453
+ classes?: string[] | undefined;
1454
+ mechanicalEffects?: ({
1455
+ kind: "attack";
1456
+ damageType: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder";
1457
+ damageDice: string;
1458
+ extraDicePerSlotLevel?: number | undefined;
1459
+ cantripScalingDice?: string | undefined;
1460
+ } | {
1461
+ kind: "save";
1462
+ ability: "STR" | "DEX" | "CON" | "INT" | "WIS" | "CHA";
1463
+ damageType?: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder" | undefined;
1464
+ damageDice?: string | undefined;
1465
+ extraDicePerSlotLevel?: number | undefined;
1466
+ cantripScalingDice?: string | undefined;
1467
+ halfOnSuccess?: boolean | undefined;
1468
+ conditionOnFail?: string | undefined;
1469
+ } | {
1470
+ kind: "heal";
1471
+ amountDice: string;
1472
+ extraDicePerSlotLevel?: number | undefined;
1473
+ })[] | undefined;
1474
+ targeting?: {
1475
+ size: number;
1476
+ shape: "cone" | "cube" | "line" | "sphere" | "cylinder";
1477
+ } | undefined;
1478
+ }[] | undefined;
1479
+ items?: ({
1480
+ damageType: "acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder";
1481
+ id: string;
1482
+ name: string;
1483
+ category: "simple" | "martial";
1484
+ damageDice: string;
1485
+ itemKind: "weapon";
1486
+ attackKind: "melee" | "ranged";
1487
+ cost?: {
1488
+ amount: number;
1489
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
1490
+ } | undefined;
1491
+ weight?: number | undefined;
1492
+ versatileDice?: string | undefined;
1493
+ properties?: ("ammunition" | "finesse" | "heavy" | "light" | "loading" | "reach" | "thrown" | "two-handed" | "versatile" | "special")[] | undefined;
1494
+ mastery?: "Vex" | "Topple" | "Sap" | "Nick" | "Push" | "Slow" | "Cleave" | "Graze" | "Flex" | undefined;
1495
+ rangeNormal?: number | undefined;
1496
+ rangeLong?: number | undefined;
1497
+ } | {
1498
+ id: string;
1499
+ name: string;
1500
+ category: "heavy" | "light" | "medium" | "shield";
1501
+ itemKind: "armor";
1502
+ baseAC: number;
1503
+ dexCap?: number | undefined;
1504
+ cost?: {
1505
+ amount: number;
1506
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
1507
+ } | undefined;
1508
+ weight?: number | undefined;
1509
+ strRequirement?: number | undefined;
1510
+ stealthDisadvantage?: boolean | undefined;
1511
+ } | {
1512
+ id: string;
1513
+ name: string;
1514
+ category: "artisan" | "gaming" | "musical" | "other";
1515
+ itemKind: "tool";
1516
+ cost?: {
1517
+ amount: number;
1518
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
1519
+ } | undefined;
1520
+ weight?: number | undefined;
1521
+ } | {
1522
+ id: string;
1523
+ name: string;
1524
+ itemKind: "magic";
1525
+ rarity: "common" | "uncommon" | "rare" | "very-rare" | "legendary" | "artifact";
1526
+ cost?: {
1527
+ amount: number;
1528
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
1529
+ } | undefined;
1530
+ effects?: import("../index.js").Effect[] | undefined;
1531
+ weight?: number | undefined;
1532
+ requiresAttunement?: boolean | undefined;
1533
+ attunementCondition?: string | undefined;
1534
+ charges?: {
1535
+ max: number;
1536
+ recharge: "never" | "shortRest" | "longRest" | "turn" | "round" | "dawn";
1537
+ rechargeFormula?: string | undefined;
1538
+ } | undefined;
1539
+ } | {
1540
+ id: string;
1541
+ name: string;
1542
+ itemKind: "consumable";
1543
+ cost?: {
1544
+ amount: number;
1545
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
1546
+ } | undefined;
1547
+ description?: string | undefined;
1548
+ weight?: number | undefined;
1549
+ onConsume?: import("../index.js").Effect[] | undefined;
1550
+ } | {
1551
+ id: string;
1552
+ name: string;
1553
+ itemKind: "gear";
1554
+ cost?: {
1555
+ amount: number;
1556
+ currency: "cp" | "sp" | "ep" | "gp" | "pp";
1557
+ } | undefined;
1558
+ description?: string | undefined;
1559
+ weight?: number | undefined;
1560
+ })[] | undefined;
1561
+ monsters?: {
1562
+ type: "Aberration" | "Beast" | "Celestial" | "Construct" | "Dragon" | "Elemental" | "Fey" | "Fiend" | "Giant" | "Humanoid" | "Monstrosity" | "Ooze" | "Plant" | "Undead";
1563
+ ac: number;
1564
+ speed: {
1565
+ walk?: number | undefined;
1566
+ fly?: number | undefined;
1567
+ swim?: number | undefined;
1568
+ climb?: number | undefined;
1569
+ burrow?: number | undefined;
1570
+ hover?: boolean | undefined;
1571
+ };
1572
+ id: string;
1573
+ name: string;
1574
+ size: "Tiny" | "Small" | "Medium" | "Large" | "Huge" | "Gargantuan";
1575
+ proficiencyBonus: number;
1576
+ hp: {
1577
+ average: number;
1578
+ formula: string;
1579
+ };
1580
+ abilityScores: {
1581
+ STR: number;
1582
+ DEX: number;
1583
+ CON: number;
1584
+ INT: number;
1585
+ WIS: number;
1586
+ CHA: number;
1587
+ };
1588
+ cr: number;
1589
+ xp: number;
1590
+ languages?: string[] | undefined;
1591
+ traits?: import("../index.js").Effect[] | undefined;
1592
+ subtype?: string | undefined;
1593
+ alignment?: "unaligned" | "any" | {
1594
+ lawChaos: "lawful" | "neutral" | "chaotic";
1595
+ goodEvil: "neutral" | "good" | "evil";
1596
+ } | undefined;
1597
+ savingThrows?: Record<string, number> | undefined;
1598
+ skills?: Partial<Record<"acrobatics" | "animal-handling" | "arcana" | "athletics" | "deception" | "history" | "insight" | "intimidation" | "investigation" | "medicine" | "nature" | "perception" | "performance" | "persuasion" | "religion" | "sleight-of-hand" | "stealth" | "survival", number>> | undefined;
1599
+ damageResistances?: ("acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder")[] | undefined;
1600
+ damageImmunities?: ("acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder")[] | undefined;
1601
+ damageVulnerabilities?: ("acid" | "bludgeoning" | "cold" | "fire" | "force" | "lightning" | "necrotic" | "piercing" | "poison" | "psychic" | "radiant" | "slashing" | "thunder")[] | undefined;
1602
+ conditionImmunities?: string[] | undefined;
1603
+ senses?: {
1604
+ darkvision?: number | undefined;
1605
+ blindsight?: number | undefined;
1606
+ tremorsense?: number | undefined;
1607
+ truesight?: number | undefined;
1608
+ passivePerceptionOverride?: number | undefined;
1609
+ } | undefined;
1610
+ }[] | undefined;
1611
+ conditions?: {
1612
+ id: string;
1613
+ name: string;
1614
+ effects?: import("../index.js").Effect[] | undefined;
1615
+ description?: string | undefined;
1616
+ stackable?: boolean | undefined;
1617
+ endsOn?: ({
1618
+ kind: "shortRest";
1619
+ } | {
1620
+ kind: "longRest";
1621
+ } | {
1622
+ kind: "turnEnd";
1623
+ ownerId?: string | undefined;
1624
+ } | {
1625
+ kind: "saveSuccess";
1626
+ ability: string;
1627
+ dc: number;
1628
+ } | {
1629
+ kind: "damageTaken";
1630
+ })[] | undefined;
1631
+ }[] | undefined;
1632
+ }>;
1633
+ export type ContentPack = z.infer<typeof ContentPackSchema>;
1634
+ export interface ResolvedContent {
1635
+ species: ReadonlyMap<string, Species>;
1636
+ backgrounds: ReadonlyMap<string, Background>;
1637
+ classes: ReadonlyMap<string, Class>;
1638
+ subclasses: ReadonlyMap<string, Subclass>;
1639
+ feats: ReadonlyMap<string, Feat>;
1640
+ spells: ReadonlyMap<string, Spell>;
1641
+ items: ReadonlyMap<string, ItemDefinition>;
1642
+ monsters: ReadonlyMap<string, MonsterStatblock>;
1643
+ conditions: ReadonlyMap<string, Condition>;
1644
+ }
1645
+ export declare const resolveContent: (packs: ReadonlyArray<ContentPack>) => ResolvedContent;
1646
+ export declare class ContentPackLoadError extends Error {
1647
+ readonly issues: ReadonlyArray<{
1648
+ path: string;
1649
+ message: string;
1650
+ }>;
1651
+ constructor(issues: ReadonlyArray<{
1652
+ path: string;
1653
+ message: string;
1654
+ }>);
1655
+ }
1656
+ export declare const loadContentPack: (input: unknown) => ContentPack;
1657
+ //# sourceMappingURL=pack.d.ts.map