@optolith/entity-descriptions 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/.prettierrc.yml +1 -0
  2. package/AUTHORS +1 -0
  3. package/CHANGELOG.md +5 -0
  4. package/LICENSE +373 -0
  5. package/README.md +1 -0
  6. package/lib/entities/combatTechnique.d.ts +15 -0
  7. package/lib/entities/combatTechnique.js +59 -0
  8. package/lib/entities/experienceLevel.d.ts +5 -0
  9. package/lib/entities/experienceLevel.js +44 -0
  10. package/lib/entities/liturgicalChant.d.ts +35 -0
  11. package/lib/entities/liturgicalChant.js +244 -0
  12. package/lib/entities/partial/rated/activatable/castingTime.d.ts +25 -0
  13. package/lib/entities/partial/rated/activatable/castingTime.js +50 -0
  14. package/lib/entities/partial/rated/activatable/checkResultBased.d.ts +7 -0
  15. package/lib/entities/partial/rated/activatable/checkResultBased.js +28 -0
  16. package/lib/entities/partial/rated/activatable/cost.d.ts +30 -0
  17. package/lib/entities/partial/rated/activatable/cost.js +166 -0
  18. package/lib/entities/partial/rated/activatable/duration.d.ts +40 -0
  19. package/lib/entities/partial/rated/activatable/duration.js +100 -0
  20. package/lib/entities/partial/rated/activatable/effect.d.ts +7 -0
  21. package/lib/entities/partial/rated/activatable/effect.js +37 -0
  22. package/lib/entities/partial/rated/activatable/entity.d.ts +11 -0
  23. package/lib/entities/partial/rated/activatable/entity.js +12 -0
  24. package/lib/entities/partial/rated/activatable/index.d.ts +69 -0
  25. package/lib/entities/partial/rated/activatable/index.js +59 -0
  26. package/lib/entities/partial/rated/activatable/isMaximum.d.ts +6 -0
  27. package/lib/entities/partial/rated/activatable/isMaximum.js +10 -0
  28. package/lib/entities/partial/rated/activatable/modifiableParameter.d.ts +8 -0
  29. package/lib/entities/partial/rated/activatable/modifiableParameter.js +9 -0
  30. package/lib/entities/partial/rated/activatable/nonModifiable.d.ts +9 -0
  31. package/lib/entities/partial/rated/activatable/nonModifiable.js +75 -0
  32. package/lib/entities/partial/rated/activatable/parensIf.d.ts +10 -0
  33. package/lib/entities/partial/rated/activatable/parensIf.js +10 -0
  34. package/lib/entities/partial/rated/activatable/range.d.ts +36 -0
  35. package/lib/entities/partial/rated/activatable/range.js +122 -0
  36. package/lib/entities/partial/rated/activatable/speed.d.ts +12 -0
  37. package/lib/entities/partial/rated/activatable/speed.js +22 -0
  38. package/lib/entities/partial/rated/activatable/targetCategory.d.ts +12 -0
  39. package/lib/entities/partial/rated/activatable/targetCategory.js +36 -0
  40. package/lib/entities/partial/rated/activatable/units.d.ts +13 -0
  41. package/lib/entities/partial/rated/activatable/units.js +53 -0
  42. package/lib/entities/partial/rated/improvementCost.d.ts +7 -0
  43. package/lib/entities/partial/rated/improvementCost.js +7 -0
  44. package/lib/entities/partial/rated/skillCheck.d.ts +19 -0
  45. package/lib/entities/partial/rated/skillCheck.js +58 -0
  46. package/lib/entities/partial/responsiveText.d.ts +31 -0
  47. package/lib/entities/partial/responsiveText.js +49 -0
  48. package/lib/entities/partial/unknown.d.ts +4 -0
  49. package/lib/entities/partial/unknown.js +4 -0
  50. package/lib/entities/skill.d.ts +13 -0
  51. package/lib/entities/skill.js +109 -0
  52. package/lib/entities/spell.d.ts +38 -0
  53. package/lib/entities/spell.js +274 -0
  54. package/lib/helpers/getTypes.d.ts +482 -0
  55. package/lib/helpers/getTypes.js +1 -0
  56. package/lib/helpers/translate.d.ts +14 -0
  57. package/lib/helpers/translate.js +8 -0
  58. package/lib/index.d.ts +1 -0
  59. package/lib/index.js +1 -0
  60. package/lib/libraryEntry.d.ts +52 -0
  61. package/lib/libraryEntry.js +17 -0
  62. package/package.json +34 -0
@@ -0,0 +1,36 @@
1
+ import { mapNullable } from "@optolith/helpers/nullable";
2
+ import { assertExhaustive } from "@optolith/helpers/typeSafety";
3
+ import { MISSING_VALUE } from "../../unknown.js";
4
+ import { appendInParens } from "./parensIf.js";
5
+ /**
6
+ * Get the text for the target category.
7
+ */
8
+ export const getTextForTargetCategory = (deps, values) => ({
9
+ label: deps.translate("Target Category"),
10
+ value: values.length === 0
11
+ ? deps.translate("all")
12
+ : values
13
+ .map(({ id, translations }) => {
14
+ const mainName = (() => {
15
+ switch (id.tag) {
16
+ case "Self":
17
+ return deps.translate("Self");
18
+ case "Zone":
19
+ return deps.translate("Zone");
20
+ case "LiturgicalChantsAndCeremonies":
21
+ return deps.translate("Liturgical Chants and Ceremonies");
22
+ case "Cantrips":
23
+ return deps.translate("Cantrips");
24
+ case "Predefined": {
25
+ const numericId = id.predefined.id.target_category;
26
+ const specificTargetCategory = deps.getTargetCategoryById(numericId);
27
+ return (mapNullable(deps.translateMap(specificTargetCategory?.translations), (translation) => translation.name) ?? MISSING_VALUE);
28
+ }
29
+ default:
30
+ return assertExhaustive(id);
31
+ }
32
+ })();
33
+ return appendInParens(mainName, deps.translateMap(translations)?.note);
34
+ })
35
+ .join(", "),
36
+ });
@@ -0,0 +1,13 @@
1
+ import { Translate } from "../../../../helpers/translate.js";
2
+ import { ResponsiveTextSize } from "../../responsiveText.js";
3
+ import { Entity } from "./entity.js";
4
+ type TimeSpanUnit = "Seconds" | "Minutes" | "Hours" | "Days" | "Weeks" | "Months" | "Years" | "Centuries" | "Actions" | "CombatRounds" | "SeductionActions" | "Rounds";
5
+ /**
6
+ * Returns the text for a time span unit.
7
+ */
8
+ export declare const formatTimeSpan: (translate: Translate, responsiveTextSize: ResponsiveTextSize, unit: TimeSpanUnit, value: number | string) => string;
9
+ /**
10
+ * Returns the text for a cost unit that is based on the entity type.
11
+ */
12
+ export declare const formatCost: (translate: Translate, entity: Entity, value: number | string) => string;
13
+ export {};
@@ -0,0 +1,53 @@
1
+ import { assertExhaustive } from "@optolith/helpers/typeSafety";
2
+ import { responsive } from "../../responsiveText.js";
3
+ import { Entity } from "./entity.js";
4
+ /**
5
+ * Returns the text for a time span unit.
6
+ */
7
+ export const formatTimeSpan = (translate, responsiveTextSize, unit, value) => {
8
+ switch (unit) {
9
+ case "Seconds":
10
+ return responsive(responsiveTextSize, () => translate("{0} seconds", value), () => translate("{0} s", value));
11
+ case "Minutes":
12
+ return responsive(responsiveTextSize, () => translate("{0} minutes", value), () => translate("{0} min", value));
13
+ case "Hours":
14
+ return responsive(responsiveTextSize, () => translate("{0} hours", value), () => translate("{0} h", value));
15
+ case "Days":
16
+ return responsive(responsiveTextSize, () => translate("{0} days", value), () => translate("{0} d", value));
17
+ case "Weeks":
18
+ return responsive(responsiveTextSize, () => translate("{0} weeks", value), () => translate("{0} wks.", value));
19
+ case "Months":
20
+ return responsive(responsiveTextSize, () => translate("{0} months", value), () => translate("{0} mos.", value));
21
+ case "Years":
22
+ return responsive(responsiveTextSize, () => translate("{0} years", value), () => translate("{0} yrs.", value));
23
+ case "Centuries":
24
+ return responsive(responsiveTextSize, () => translate("{0} centuries", value), () => translate("{0} cent.", value));
25
+ case "Actions":
26
+ return responsive(responsiveTextSize, () => translate("{0} actions", value), () => translate("{0} act", value));
27
+ case "CombatRounds":
28
+ return responsive(responsiveTextSize, () => translate("{0} combat rounds", value), () => translate("{0} CR", value));
29
+ case "SeductionActions":
30
+ return responsive(responsiveTextSize, () => translate("{0} seduction actions", value), () => translate("{0} SA", value));
31
+ case "Rounds":
32
+ return responsive(responsiveTextSize, () => translate("{0} rounds", value), () => translate("{0} rnds", value));
33
+ default:
34
+ return assertExhaustive(unit);
35
+ }
36
+ };
37
+ /**
38
+ * Returns the text for a cost unit that is based on the entity type.
39
+ */
40
+ export const formatCost = (translate, entity, value) => {
41
+ switch (entity) {
42
+ case Entity.Cantrip:
43
+ case Entity.Spell:
44
+ case Entity.Ritual:
45
+ return translate("{0} AE", value);
46
+ case Entity.Blessing:
47
+ case Entity.LiturgicalChant:
48
+ case Entity.Ceremony:
49
+ return translate("{0} KP", value);
50
+ default:
51
+ return assertExhaustive(entity);
52
+ }
53
+ };
@@ -0,0 +1,7 @@
1
+ import { ImprovementCost as RawImprovementCost } from "optolith-database-schema/types/_ImprovementCost";
2
+ import { Translate } from "../../../helpers/translate.js";
3
+ import { LibraryEntryContent } from "../../../libraryEntry.js";
4
+ /**
5
+ * Returns the improvement cost as an inline library property.
6
+ */
7
+ export declare const createImprovementCost: (translate: Translate, improvementCost: RawImprovementCost) => LibraryEntryContent;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Returns the improvement cost as an inline library property.
3
+ */
4
+ export const createImprovementCost = (translate, improvementCost) => ({
5
+ label: translate("Improvement Cost"),
6
+ value: improvementCost,
7
+ });
@@ -0,0 +1,19 @@
1
+ import { SkillCheck, SkillCheckPenalty } from "optolith-database-schema/types/_SkillCheck";
2
+ import { DerivedCharacteristic } from "optolith-database-schema/types/DerivedCharacteristic";
3
+ import { GetById } from "../../../helpers/getTypes.js";
4
+ import { Translate, TranslateMap } from "../../../helpers/translate.js";
5
+ import { LibraryEntryContent } from "../../../libraryEntry.js";
6
+ import { ResponsiveTextSize } from "../responsiveText.js";
7
+ /**
8
+ * Returns the skill check as an inline library property.
9
+ */
10
+ export declare const getTextForCheck: (deps: {
11
+ translate: Translate;
12
+ translateMap: TranslateMap;
13
+ getAttributeById: GetById.Static.Attribute;
14
+ }, check: SkillCheck, checkPenalty?: {
15
+ value: SkillCheckPenalty | undefined;
16
+ responsiveText: ResponsiveTextSize;
17
+ getSpirit: () => DerivedCharacteristic | undefined;
18
+ getToughness: () => DerivedCharacteristic | undefined;
19
+ }) => LibraryEntryContent;
@@ -0,0 +1,58 @@
1
+ import { assertExhaustive } from "@optolith/helpers/typeSafety";
2
+ import { responsive } from "../responsiveText.js";
3
+ /**
4
+ * Returns the skill check as an inline library property.
5
+ */
6
+ export const getTextForCheck = (deps, check, checkPenalty) => ({
7
+ label: deps.translate("Check"),
8
+ value: check
9
+ .map(({ id: { attribute: id } }) => deps.translateMap(deps.getAttributeById(id)?.translations)
10
+ ?.abbreviation ?? "??")
11
+ .join("/") +
12
+ (() => {
13
+ if (checkPenalty?.value === undefined) {
14
+ return "";
15
+ }
16
+ const { responsiveText } = checkPenalty;
17
+ const getDerivedCharacteristicTranslation = (getDerivedCharacteristic) => deps.translateMap(getDerivedCharacteristic()?.translations);
18
+ const getSpiritTranslation = () => getDerivedCharacteristicTranslation(checkPenalty.getSpirit);
19
+ const getToughnessTranslation = () => getDerivedCharacteristicTranslation(checkPenalty.getToughness);
20
+ const penalty = (() => {
21
+ switch (checkPenalty.value) {
22
+ case "Spirit": {
23
+ const translation = getSpiritTranslation();
24
+ return translation === undefined
25
+ ? ""
26
+ : responsive(responsiveText, () => translation.name, () => translation.abbreviation);
27
+ }
28
+ case "HalfOfSpirit": {
29
+ const translation = getSpiritTranslation();
30
+ return translation === undefined
31
+ ? ""
32
+ : responsive(responsiveText, () => `${translation.name}/2`, () => `${translation.abbreviation}/2`);
33
+ }
34
+ case "Toughness": {
35
+ const translation = getToughnessTranslation();
36
+ return translation === undefined
37
+ ? ""
38
+ : responsive(responsiveText, () => `${translation.name}/2`, () => `${translation.abbreviation}/2`);
39
+ }
40
+ case "HigherOfSpiritAndToughness": {
41
+ const spiritTranslation = getSpiritTranslation();
42
+ const toughnessTranslation = getToughnessTranslation();
43
+ return spiritTranslation === undefined ||
44
+ toughnessTranslation === undefined
45
+ ? ""
46
+ : responsive(responsiveText, () => deps.translate("{0} or {1}, depending on which value is higher", spiritTranslation.abbreviation, toughnessTranslation.abbreviation), () => `${spiritTranslation.abbreviation}/${toughnessTranslation.abbreviation}`);
47
+ }
48
+ case "SummoningDifficulty":
49
+ return responsive(responsiveText, () => deps.translate("Invocation Difficulty"), () => deps.translate("ID"));
50
+ case "CreationDifficulty":
51
+ return responsive(responsiveText, () => deps.translate("Creation Difficulty"), () => deps.translate("CD"));
52
+ default:
53
+ return assertExhaustive(checkPenalty.value);
54
+ }
55
+ })();
56
+ return responsive(responsiveText, () => deps.translate(" (modified by {0})", penalty), () => deps.translate(" (− {0})", penalty));
57
+ })(),
58
+ });
@@ -0,0 +1,31 @@
1
+ import { LocaleMap } from "optolith-database-schema/types/_LocaleMap";
2
+ import { ResponsiveText, ResponsiveTextOptional, ResponsiveTextReplace } from "optolith-database-schema/types/_ResponsiveText";
3
+ import { TranslateMap } from "../../helpers/translate.js";
4
+ /**
5
+ * Whether the entry is displayed in a normal or compressed setting. Normal/full
6
+ * usually means a full library entry display, whether compressed usually means
7
+ * the character sheet.
8
+ */
9
+ export declare enum ResponsiveTextSize {
10
+ Compressed = 0,
11
+ Full = 1
12
+ }
13
+ /**
14
+ * Executes one of two functions depending on the responsive text size.
15
+ */
16
+ export declare const responsive: <T, A extends unknown[]>(size: ResponsiveTextSize, full: (...args: A) => T, compressed: (...args: A) => T, ...args: A) => T;
17
+ /**
18
+ * Returns the responsive text for a given size.
19
+ */
20
+ export declare const getResponsiveText: (value: ResponsiveText | undefined, size: ResponsiveTextSize) => string;
21
+ /**
22
+ * Returns the responsive text for a given size if it is defined.
23
+ */
24
+ export declare const getResponsiveTextOptional: (value: ResponsiveTextOptional | undefined, size: ResponsiveTextSize) => string | undefined;
25
+ /**
26
+ * Replaces a text with a given value if a replacement is requested, otherwise
27
+ * just return the .
28
+ */
29
+ export declare const replaceTextIfRequested: (translation: LocaleMap<{
30
+ replacement?: ResponsiveTextReplace;
31
+ }> | undefined, valueToReplace: string, translateMap: TranslateMap, responsiveText: ResponsiveTextSize) => string;
@@ -0,0 +1,49 @@
1
+ import { mapNullable } from "@optolith/helpers/nullable";
2
+ import { assertExhaustive } from "@optolith/helpers/typeSafety";
3
+ import { MISSING_VALUE } from "./unknown.js";
4
+ /**
5
+ * Whether the entry is displayed in a normal or compressed setting. Normal/full
6
+ * usually means a full library entry display, whether compressed usually means
7
+ * the character sheet.
8
+ */
9
+ export var ResponsiveTextSize;
10
+ (function (ResponsiveTextSize) {
11
+ ResponsiveTextSize[ResponsiveTextSize["Compressed"] = 0] = "Compressed";
12
+ ResponsiveTextSize[ResponsiveTextSize["Full"] = 1] = "Full";
13
+ })(ResponsiveTextSize || (ResponsiveTextSize = {}));
14
+ /**
15
+ * Executes one of two functions depending on the responsive text size.
16
+ */
17
+ export const responsive = (size, full, compressed, ...args) => {
18
+ switch (size) {
19
+ case ResponsiveTextSize.Compressed:
20
+ return compressed(...args);
21
+ case ResponsiveTextSize.Full:
22
+ return full(...args);
23
+ default:
24
+ return assertExhaustive(size);
25
+ }
26
+ };
27
+ /**
28
+ * Returns the responsive text for a given size.
29
+ */
30
+ export const getResponsiveText = (value, size) => {
31
+ if (value === undefined) {
32
+ return MISSING_VALUE;
33
+ }
34
+ return responsive(size, () => value.full, () => value.compressed);
35
+ };
36
+ /**
37
+ * Returns the responsive text for a given size if it is defined.
38
+ */
39
+ export const getResponsiveTextOptional = (value, size) => {
40
+ if (value === undefined) {
41
+ return MISSING_VALUE;
42
+ }
43
+ return responsive(size, () => value.full, () => value.compressed);
44
+ };
45
+ /**
46
+ * Replaces a text with a given value if a replacement is requested, otherwise
47
+ * just return the .
48
+ */
49
+ export const replaceTextIfRequested = (translation, valueToReplace, translateMap, responsiveText) => mapNullable(translateMap(translation)?.replacement, (replacement) => getResponsiveText(replacement, responsiveText).replace("$1", valueToReplace)) ?? valueToReplace;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * String to display when a translation that should be present is missing.
3
+ */
4
+ export declare const MISSING_VALUE = "???";
@@ -0,0 +1,4 @@
1
+ /**
2
+ * String to display when a translation that should be present is missing.
3
+ */
4
+ export const MISSING_VALUE = "???";
@@ -0,0 +1,13 @@
1
+ import { NewApplicationsAndUsesCache } from "optolith-database-schema/cache/newApplicationsAndUses";
2
+ import { Skill } from "optolith-database-schema/types/Skill";
3
+ import { All, GetById } from "../helpers/getTypes.js";
4
+ /**
5
+ * Get a JSON representation of the rules text for a skill.
6
+ */
7
+ export declare const getSkillLibraryEntry: import("../libraryEntry.js").LibraryEntryCreator<Skill | undefined, {
8
+ getAttributeById: GetById.Static.Attribute;
9
+ blessedTraditions: All.Static.BlessedTraditions;
10
+ diseases: All.Static.Diseases;
11
+ regions: All.Static.Regions;
12
+ cache: NewApplicationsAndUsesCache;
13
+ }, import("../libraryEntry.js").LibraryEntry>;
@@ -0,0 +1,109 @@
1
+ import { isNotNullish } from "@optolith/helpers/nullable";
2
+ import { assertExhaustive } from "@optolith/helpers/typeSafety";
3
+ import { createLibraryEntryCreator } from "../libraryEntry.js";
4
+ import { createImprovementCost } from "./partial/rated/improvementCost.js";
5
+ import { getTextForCheck } from "./partial/rated/skillCheck.js";
6
+ /**
7
+ * Get a JSON representation of the rules text for a skill.
8
+ */
9
+ export const getSkillLibraryEntry = createLibraryEntryCreator((entry, { getAttributeById, blessedTraditions, diseases, regions, cache }) => ({ translate, translateMap, localeCompare }) => {
10
+ const translation = translateMap(entry.translations);
11
+ if (translation === undefined) {
12
+ return undefined;
13
+ }
14
+ const newApplications = (entry === undefined ? [] : cache.newApplications[entry.id] ?? [])
15
+ .map((x) => translateMap(x.data.translations)?.name)
16
+ .filter(isNotNullish)
17
+ .sort(localeCompare);
18
+ const uses = (entry === undefined ? [] : cache.uses[entry.id] ?? [])
19
+ .map((x) => translateMap(x.data.translations)?.name)
20
+ .filter(isNotNullish)
21
+ .sort(localeCompare);
22
+ const applications = (() => {
23
+ switch (entry.applications.tag) {
24
+ case "Derived":
25
+ return (() => {
26
+ switch (entry.applications.derived) {
27
+ case "BlessedTraditions":
28
+ return Object.values(blessedTraditions)
29
+ .map((x) => translateMap(x.translations)?.name)
30
+ .filter(isNotNullish)
31
+ .sort(localeCompare);
32
+ case "Diseases":
33
+ return Object.values(diseases)
34
+ .map((x) => translateMap(x.translations)?.name)
35
+ .filter(isNotNullish)
36
+ .sort(localeCompare);
37
+ case "Regions":
38
+ return Object.values(regions)
39
+ .map((x) => translateMap(x.translations)?.name)
40
+ .filter(isNotNullish)
41
+ .sort(localeCompare);
42
+ default:
43
+ return assertExhaustive(entry.applications.derived);
44
+ }
45
+ })();
46
+ case "Explicit":
47
+ return entry.applications.explicit
48
+ .map((x) => translateMap(x.translations)?.name)
49
+ .filter(isNotNullish)
50
+ .sort(localeCompare);
51
+ default:
52
+ return assertExhaustive(entry.applications);
53
+ }
54
+ })();
55
+ return {
56
+ title: translation.name,
57
+ className: "skill",
58
+ content: [
59
+ newApplications.length === 0
60
+ ? undefined
61
+ : {
62
+ label: translate("New Applications"),
63
+ value: newApplications.join(", "),
64
+ },
65
+ uses.length === 0
66
+ ? undefined
67
+ : {
68
+ label: translate("Uses"),
69
+ value: uses.join(", "),
70
+ },
71
+ getTextForCheck({ translate, translateMap, getAttributeById }, entry.check),
72
+ {
73
+ label: translate("Applications"),
74
+ value: applications.join(", "),
75
+ },
76
+ {
77
+ label: translate("Encumbrance"),
78
+ value: entry.encumbrance === "True"
79
+ ? translate("Yes")
80
+ : entry.encumbrance === "False"
81
+ ? translate("No")
82
+ : translation.encumbrance_description ?? translate("Maybe"),
83
+ },
84
+ translation?.tools === undefined
85
+ ? undefined
86
+ : {
87
+ label: translate("Tools"),
88
+ value: translation.tools,
89
+ },
90
+ {
91
+ label: translate("Quality"),
92
+ value: translation.quality,
93
+ },
94
+ {
95
+ label: translate("Failed Check"),
96
+ value: translation.failed,
97
+ },
98
+ {
99
+ label: translate("Critical Success"),
100
+ value: translation.critical,
101
+ },
102
+ {
103
+ label: translate("Botch"),
104
+ value: translation.botch,
105
+ },
106
+ createImprovementCost(translate, entry.improvement_cost),
107
+ ],
108
+ };
109
+ });
@@ -0,0 +1,38 @@
1
+ import { Cantrip } from "optolith-database-schema/types/Cantrip";
2
+ import { DerivedCharacteristic } from "optolith-database-schema/types/DerivedCharacteristic";
3
+ import { Ritual } from "optolith-database-schema/types/Ritual";
4
+ import { Spell } from "optolith-database-schema/types/Spell";
5
+ import { GetById } from "../helpers/getTypes.js";
6
+ /**
7
+ * Get a JSON representation of the rules text for a cantrip.
8
+ */
9
+ export declare const getCantripLibraryEntry: import("../libraryEntry.js").LibraryEntryCreator<Cantrip | undefined, {
10
+ getTargetCategoryById: GetById.Static.TargetCategory;
11
+ getPropertyById: GetById.Static.Property;
12
+ getMagicalTraditionById: GetById.Static.MagicalTradition;
13
+ getCurriculumById: GetById.Static.Curriculum;
14
+ }, import("../libraryEntry.js").LibraryEntry>;
15
+ /**
16
+ * Get a JSON representation of the rules text for a skill.
17
+ */
18
+ export declare const getSpellLibraryEntry: import("../libraryEntry.js").LibraryEntryCreator<Spell | undefined, {
19
+ getAttributeById: GetById.Static.Attribute;
20
+ getSpirit: () => DerivedCharacteristic | undefined;
21
+ getToughness: () => DerivedCharacteristic | undefined;
22
+ getSkillModificationLevelById: GetById.Static.SkillModificationLevel;
23
+ getTargetCategoryById: GetById.Static.TargetCategory;
24
+ getPropertyById: GetById.Static.Property;
25
+ getMagicalTraditionById: GetById.Static.MagicalTradition;
26
+ }, import("../libraryEntry.js").LibraryEntry>;
27
+ /**
28
+ * Get a JSON representation of the rules text for a ritual.
29
+ */
30
+ export declare const getRitualLibraryEntry: import("../libraryEntry.js").LibraryEntryCreator<Ritual | undefined, {
31
+ getAttributeById: GetById.Static.Attribute;
32
+ getSpirit: () => DerivedCharacteristic | undefined;
33
+ getToughness: () => DerivedCharacteristic | undefined;
34
+ getSkillModificationLevelById: GetById.Static.SkillModificationLevel;
35
+ getTargetCategoryById: GetById.Static.TargetCategory;
36
+ getPropertyById: GetById.Static.Property;
37
+ getMagicalTraditionById: GetById.Static.MagicalTradition;
38
+ }, import("../libraryEntry.js").LibraryEntry>;