@lumiastream/lumia-types 3.3.7-alpha.3 → 3.3.7-alpha.6

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.
@@ -706,6 +706,18 @@ const myUserColor = '{{userSelectedColor}}';
706
706
 
707
707
  ---
708
708
 
709
+ ## Module Flavors
710
+
711
+ Custom overlay modules carry an optional `content.flavor` field that tells the runtime which compatibility layer (if any) to load before executing your HTML/CSS/JS. Most overlays you write from scratch don't set this — the field is mainly used by automated import flows.
712
+
713
+ | `flavor` value | Set by | What the runtime does |
714
+ | ----------------------- | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
715
+ | _undefined_ / missing | Hand-authored Lumia custom overlays | Runs your JS directly with the Lumia `Overlay.*` API available on `window.Overlay`. Use this by default. |
716
+ | `'streamelements'` | StreamElements import wizard | Loads the SE compatibility shim before your JS runs: jQuery, Lodash, GSAP, a `SE_API` polyfill with `store`/`counters`, the `fieldData` object, the SE event reshape (`onWidgetLoad` / `onEventReceived` listeners), and listener-name aliasing so widgets coded against `subscriber-latest` etc. still fire. Useful for "I dragged in an SE widget and I want it to keep working as I tune it over." |
717
+ | `'ai-generated'` | The wizard's "Generate with AI" step | Plain Lumia runtime (same as undefined), tagged so the editor can label the layer as AI-authored in disclosures. No runtime difference from the default flavor — purely a provenance marker. |
718
+
719
+ If you're inspecting an imported overlay's JSON and see `"flavor": "streamelements"`, that's why it can call `SE_API.store.set(...)`, `jQuery`, etc. — none of those are part of the native Lumia overlay API, but the shim makes them available for that specific layer.
720
+
709
721
  ## Code ID
710
722
 
711
723
  The codeId is primarily meant to be used when talking to Lumia Stream. It is used to store storage data, it is used when calling send overlay content that will only send to overlays with that specific code id. It can be retrieved within the overlay using `Overlay.on('overlaycontent', (data) => {...})`
@@ -42,6 +42,164 @@ export enum ConfigsFieldType {
42
42
  SLIDER = 'slider',
43
43
  }
44
44
 
45
+ /**
46
+ * Conditional render rule for a config field.
47
+ * The field is shown only when `Overlay.data[key]` strictly equals one of `equals`
48
+ * (scalar) or intersects with `equals` (when either side is an array).
49
+ *
50
+ * @example
51
+ * { key: 'mode', equals: 'advanced' }
52
+ * { key: 'platform', equals: ['twitch', 'kick'] }
53
+ */
54
+ export interface ConfigVisibleIf {
55
+ /** Key of another config field to read from `Overlay.data`. */
56
+ key: string;
57
+ /** Value (or list of values) that triggers visibility. */
58
+ equals: string | number | boolean | Array<string | number | boolean>;
59
+ }
60
+
61
+ /** Properties common to every config field, regardless of `type`. */
62
+ export interface BaseConfigField {
63
+ /** Human-readable name shown next to the control in the Configs sidebar. */
64
+ label: string;
65
+ /**
66
+ * Display order priority. Lower numbers appear first.
67
+ * Fields without `order` render after ordered fields, sorted alphabetically by key.
68
+ */
69
+ order?: number;
70
+ /**
71
+ * Conditional render rule. When set, the field renders only when
72
+ * `Overlay.data[visibleIf.key]` matches `visibleIf.equals`.
73
+ */
74
+ visibleIf?: ConfigVisibleIf;
75
+ /**
76
+ * Hard-hide rule. When `true`, the field is never displayed in the Configs
77
+ * sidebar, but its `value` still flows into `Overlay.data` for internal use.
78
+ * Useful for locking event subscriptions or advanced settings.
79
+ */
80
+ hidden?: boolean;
81
+ }
82
+
83
+ /** Single-line text input. Supports Lumia variable insertion. */
84
+ export interface InputConfigField extends BaseConfigField {
85
+ type: ConfigsFieldType.INPUT | 'input';
86
+ /** Default text value. Omit to leave blank on first load. */
87
+ value?: string;
88
+ /** Placeholder text shown when the input is empty. */
89
+ placeholder?: string;
90
+ /**
91
+ * When `true`, renders a variable-enabled input. Users can insert Lumia
92
+ * variables (e.g. `{{username}}`) via a picker triggered by a `{}` adornment.
93
+ */
94
+ enableVariables?: boolean;
95
+ /**
96
+ * Curated variable list to surface at the top of the picker.
97
+ * System/function variables remain available below. Has no effect unless
98
+ * `enableVariables` is also `true`.
99
+ */
100
+ allowedVariables?: string[];
101
+ }
102
+
103
+ /** Numeric input spinner. */
104
+ export interface NumberConfigField extends BaseConfigField {
105
+ type: ConfigsFieldType.NUMBER | 'number';
106
+ /** Default numeric value. */
107
+ value?: number;
108
+ }
109
+
110
+ /** Checkbox toggle. */
111
+ export interface CheckboxConfigField extends BaseConfigField {
112
+ type: ConfigsFieldType.CHECKBOX | 'checkbox';
113
+ /** Default checked state. */
114
+ value?: boolean;
115
+ }
116
+
117
+ /** Single-select dropdown menu. */
118
+ export interface DropdownConfigField extends BaseConfigField {
119
+ type: ConfigsFieldType.DROPDOWN | 'dropdown';
120
+ /** Default selected option key. */
121
+ value?: string;
122
+ /** Map of option keys to display labels. */
123
+ options: Record<string, string>;
124
+ }
125
+
126
+ /** Multi-select dropdown. */
127
+ export interface MultiselectConfigField extends BaseConfigField {
128
+ type: ConfigsFieldType.MULTISELECT | 'multiselect';
129
+ /** Default selected option keys. */
130
+ value?: string[];
131
+ /** Map of option keys to display labels. */
132
+ options: Record<string, string>;
133
+ }
134
+
135
+ /** Color picker widget. Value is a hex/rgba string. */
136
+ export interface ColorpickerConfigField extends BaseConfigField {
137
+ type: ConfigsFieldType.COLORPICKER | 'colorpicker';
138
+ /** Default color (hex like `#ff4076` or rgba). */
139
+ value?: string;
140
+ }
141
+
142
+ /** Font picker that loads Google fonts on demand. Value is the font family name. */
143
+ export interface FontpickerConfigField extends BaseConfigField {
144
+ type: ConfigsFieldType.FONTPICKER | 'fontpicker';
145
+ /** Default font family name (e.g. `Roboto`). */
146
+ value?: string;
147
+ }
148
+
149
+ /** Slider numeric-range options. */
150
+ export interface SliderOptions {
151
+ /** Minimum value. */
152
+ min?: number;
153
+ /** Maximum value. */
154
+ max?: number;
155
+ /** Step increment between values. */
156
+ step?: number;
157
+ /** String prefixed to the displayed value (e.g. `$`). */
158
+ prefix?: string;
159
+ /** String suffixed to the displayed value (e.g. `px`). */
160
+ suffix?: string;
161
+ }
162
+
163
+ /** Number slider with min/max/step and optional value adornments. */
164
+ export interface SliderConfigField extends BaseConfigField {
165
+ type: ConfigsFieldType.SLIDER | 'slider';
166
+ /** Default numeric value. */
167
+ value?: number;
168
+ /** Range and adornment options. */
169
+ options: SliderOptions;
170
+ }
171
+
172
+ /**
173
+ * Discriminated union of every config-field shape the renderer accepts.
174
+ * Use this when typing the `configs` map for a Lumia custom overlay.
175
+ *
176
+ * @example
177
+ * const configs: ConfigsSchema = {
178
+ * font: { type: 'fontpicker', label: 'Font', value: 'Roboto' },
179
+ * size: {
180
+ * type: 'slider',
181
+ * label: 'Font size',
182
+ * value: 48,
183
+ * options: { min: 10, max: 120, step: 2, suffix: 'px' },
184
+ * },
185
+ * };
186
+ */
187
+ export type ConfigField =
188
+ | InputConfigField
189
+ | NumberConfigField
190
+ | CheckboxConfigField
191
+ | DropdownConfigField
192
+ | MultiselectConfigField
193
+ | ColorpickerConfigField
194
+ | FontpickerConfigField
195
+ | SliderConfigField;
196
+
197
+ /**
198
+ * The configs map a custom overlay declares in its Configs tab.
199
+ * Keys become accessible at runtime as `Overlay.data[key]`.
200
+ */
201
+ export type ConfigsSchema = Record<string, ConfigField>;
202
+
45
203
  /**
46
204
  * Core event types that overlays can listen to.
47
205
  * Used as discriminants for the overlay event system.
@@ -1686,6 +1844,18 @@ export declare enum SystemVariables {
1686
1844
  VTUBESTUDIO_CURRENT_BACKGROUND = "vtubestudio_current_background",
1687
1845
  /** Last VTS hotkey triggered. Use as {{vtubestudio_last_hotkey_triggered}}. */
1688
1846
  VTUBESTUDIO_LAST_HOTKEY_TRIGGERED = "vtubestudio_last_hotkey_triggered",
1847
+ /** Tiltify campaign fundraising goal (currency value). Use as {{tiltify_goal_amount}}. */
1848
+ TILTIFY_GOAL_AMOUNT = "tiltify_goal_amount",
1849
+ /** Tiltify campaign amount raised so far (currency value). Use as {{tiltify_total_raised}}. */
1850
+ TILTIFY_TOTAL_RAISED = "tiltify_total_raised",
1851
+ /** Extra Life campaign fundraising goal (USD). Use as {{extralife_goal_amount}}. */
1852
+ EXTRALIFE_GOAL_AMOUNT = "extralife_goal_amount",
1853
+ /** Extra Life campaign amount raised so far (USD). Use as {{extralife_total_raised}}. */
1854
+ EXTRALIFE_TOTAL_RAISED = "extralife_total_raised",
1855
+ /** DonorDrive campaign fundraising goal. Use as {{donordrive_goal_amount}}. */
1856
+ DONORDRIVE_GOAL_AMOUNT = "donordrive_goal_amount",
1857
+ /** DonorDrive campaign amount raised so far. Use as {{donordrive_total_raised}}. */
1858
+ DONORDRIVE_TOTAL_RAISED = "donordrive_total_raised",
1689
1859
  /** Heart rate BPM (Pulsoid/Hyperate). Use as {{heartrate_bpm}}. */
1690
1860
  HEARTRATE_BPM = "heartrate_bpm"
1691
1861
  }
@@ -42,6 +42,164 @@ export enum ConfigsFieldType {
42
42
  SLIDER = 'slider',
43
43
  }
44
44
 
45
+ /**
46
+ * Conditional render rule for a config field.
47
+ * The field is shown only when `Overlay.data[key]` strictly equals one of `equals`
48
+ * (scalar) or intersects with `equals` (when either side is an array).
49
+ *
50
+ * @example
51
+ * { key: 'mode', equals: 'advanced' }
52
+ * { key: 'platform', equals: ['twitch', 'kick'] }
53
+ */
54
+ export interface ConfigVisibleIf {
55
+ /** Key of another config field to read from `Overlay.data`. */
56
+ key: string;
57
+ /** Value (or list of values) that triggers visibility. */
58
+ equals: string | number | boolean | Array<string | number | boolean>;
59
+ }
60
+
61
+ /** Properties common to every config field, regardless of `type`. */
62
+ export interface BaseConfigField {
63
+ /** Human-readable name shown next to the control in the Configs sidebar. */
64
+ label: string;
65
+ /**
66
+ * Display order priority. Lower numbers appear first.
67
+ * Fields without `order` render after ordered fields, sorted alphabetically by key.
68
+ */
69
+ order?: number;
70
+ /**
71
+ * Conditional render rule. When set, the field renders only when
72
+ * `Overlay.data[visibleIf.key]` matches `visibleIf.equals`.
73
+ */
74
+ visibleIf?: ConfigVisibleIf;
75
+ /**
76
+ * Hard-hide rule. When `true`, the field is never displayed in the Configs
77
+ * sidebar, but its `value` still flows into `Overlay.data` for internal use.
78
+ * Useful for locking event subscriptions or advanced settings.
79
+ */
80
+ hidden?: boolean;
81
+ }
82
+
83
+ /** Single-line text input. Supports Lumia variable insertion. */
84
+ export interface InputConfigField extends BaseConfigField {
85
+ type: ConfigsFieldType.INPUT | 'input';
86
+ /** Default text value. Omit to leave blank on first load. */
87
+ value?: string;
88
+ /** Placeholder text shown when the input is empty. */
89
+ placeholder?: string;
90
+ /**
91
+ * When `true`, renders a variable-enabled input. Users can insert Lumia
92
+ * variables (e.g. `{{username}}`) via a picker triggered by a `{}` adornment.
93
+ */
94
+ enableVariables?: boolean;
95
+ /**
96
+ * Curated variable list to surface at the top of the picker.
97
+ * System/function variables remain available below. Has no effect unless
98
+ * `enableVariables` is also `true`.
99
+ */
100
+ allowedVariables?: string[];
101
+ }
102
+
103
+ /** Numeric input spinner. */
104
+ export interface NumberConfigField extends BaseConfigField {
105
+ type: ConfigsFieldType.NUMBER | 'number';
106
+ /** Default numeric value. */
107
+ value?: number;
108
+ }
109
+
110
+ /** Checkbox toggle. */
111
+ export interface CheckboxConfigField extends BaseConfigField {
112
+ type: ConfigsFieldType.CHECKBOX | 'checkbox';
113
+ /** Default checked state. */
114
+ value?: boolean;
115
+ }
116
+
117
+ /** Single-select dropdown menu. */
118
+ export interface DropdownConfigField extends BaseConfigField {
119
+ type: ConfigsFieldType.DROPDOWN | 'dropdown';
120
+ /** Default selected option key. */
121
+ value?: string;
122
+ /** Map of option keys to display labels. */
123
+ options: Record<string, string>;
124
+ }
125
+
126
+ /** Multi-select dropdown. */
127
+ export interface MultiselectConfigField extends BaseConfigField {
128
+ type: ConfigsFieldType.MULTISELECT | 'multiselect';
129
+ /** Default selected option keys. */
130
+ value?: string[];
131
+ /** Map of option keys to display labels. */
132
+ options: Record<string, string>;
133
+ }
134
+
135
+ /** Color picker widget. Value is a hex/rgba string. */
136
+ export interface ColorpickerConfigField extends BaseConfigField {
137
+ type: ConfigsFieldType.COLORPICKER | 'colorpicker';
138
+ /** Default color (hex like `#ff4076` or rgba). */
139
+ value?: string;
140
+ }
141
+
142
+ /** Font picker that loads Google fonts on demand. Value is the font family name. */
143
+ export interface FontpickerConfigField extends BaseConfigField {
144
+ type: ConfigsFieldType.FONTPICKER | 'fontpicker';
145
+ /** Default font family name (e.g. `Roboto`). */
146
+ value?: string;
147
+ }
148
+
149
+ /** Slider numeric-range options. */
150
+ export interface SliderOptions {
151
+ /** Minimum value. */
152
+ min?: number;
153
+ /** Maximum value. */
154
+ max?: number;
155
+ /** Step increment between values. */
156
+ step?: number;
157
+ /** String prefixed to the displayed value (e.g. `$`). */
158
+ prefix?: string;
159
+ /** String suffixed to the displayed value (e.g. `px`). */
160
+ suffix?: string;
161
+ }
162
+
163
+ /** Number slider with min/max/step and optional value adornments. */
164
+ export interface SliderConfigField extends BaseConfigField {
165
+ type: ConfigsFieldType.SLIDER | 'slider';
166
+ /** Default numeric value. */
167
+ value?: number;
168
+ /** Range and adornment options. */
169
+ options: SliderOptions;
170
+ }
171
+
172
+ /**
173
+ * Discriminated union of every config-field shape the renderer accepts.
174
+ * Use this when typing the `configs` map for a Lumia custom overlay.
175
+ *
176
+ * @example
177
+ * const configs: ConfigsSchema = {
178
+ * font: { type: 'fontpicker', label: 'Font', value: 'Roboto' },
179
+ * size: {
180
+ * type: 'slider',
181
+ * label: 'Font size',
182
+ * value: 48,
183
+ * options: { min: 10, max: 120, step: 2, suffix: 'px' },
184
+ * },
185
+ * };
186
+ */
187
+ export type ConfigField =
188
+ | InputConfigField
189
+ | NumberConfigField
190
+ | CheckboxConfigField
191
+ | DropdownConfigField
192
+ | MultiselectConfigField
193
+ | ColorpickerConfigField
194
+ | FontpickerConfigField
195
+ | SliderConfigField;
196
+
197
+ /**
198
+ * The configs map a custom overlay declares in its Configs tab.
199
+ * Keys become accessible at runtime as `Overlay.data[key]`.
200
+ */
201
+ export type ConfigsSchema = Record<string, ConfigField>;
202
+
45
203
  /**
46
204
  * Core event types that overlays can listen to.
47
205
  * Used as discriminants for the overlay event system.
@@ -1686,6 +1844,18 @@ export declare enum SystemVariables {
1686
1844
  VTUBESTUDIO_CURRENT_BACKGROUND = "vtubestudio_current_background",
1687
1845
  /** Last VTS hotkey triggered. Use as {{vtubestudio_last_hotkey_triggered}}. */
1688
1846
  VTUBESTUDIO_LAST_HOTKEY_TRIGGERED = "vtubestudio_last_hotkey_triggered",
1847
+ /** Tiltify campaign fundraising goal (currency value). Use as {{tiltify_goal_amount}}. */
1848
+ TILTIFY_GOAL_AMOUNT = "tiltify_goal_amount",
1849
+ /** Tiltify campaign amount raised so far (currency value). Use as {{tiltify_total_raised}}. */
1850
+ TILTIFY_TOTAL_RAISED = "tiltify_total_raised",
1851
+ /** Extra Life campaign fundraising goal (USD). Use as {{extralife_goal_amount}}. */
1852
+ EXTRALIFE_GOAL_AMOUNT = "extralife_goal_amount",
1853
+ /** Extra Life campaign amount raised so far (USD). Use as {{extralife_total_raised}}. */
1854
+ EXTRALIFE_TOTAL_RAISED = "extralife_total_raised",
1855
+ /** DonorDrive campaign fundraising goal. Use as {{donordrive_goal_amount}}. */
1856
+ DONORDRIVE_GOAL_AMOUNT = "donordrive_goal_amount",
1857
+ /** DonorDrive campaign amount raised so far. Use as {{donordrive_total_raised}}. */
1858
+ DONORDRIVE_TOTAL_RAISED = "donordrive_total_raised",
1689
1859
  /** Heart rate BPM (Pulsoid/Hyperate). Use as {{heartrate_bpm}}. */
1690
1860
  HEARTRATE_BPM = "heartrate_bpm"
1691
1861
  }
@@ -858,6 +858,23 @@ export var SystemVariables;
858
858
  SystemVariables["VTUBESTUDIO_CURRENT_BACKGROUND"] = "vtubestudio_current_background";
859
859
  /** Last VTS hotkey triggered. Use as {{vtubestudio_last_hotkey_triggered}}. */
860
860
  SystemVariables["VTUBESTUDIO_LAST_HOTKEY_TRIGGERED"] = "vtubestudio_last_hotkey_triggered";
861
+ // ─────────────────────────────── Charity Campaigns ────────────────────────────
862
+ // Campaign totals from the polled-API charity integrations (Tiltify / Extra
863
+ // Life / DonorDrive). Written by their respective managers on every poll;
864
+ // goal_amount mirrors the campaign target the streamer set on the platform
865
+ // and total_raised mirrors the running raised total. Reset to 0 on Stop.
866
+ /** Tiltify campaign fundraising goal (currency value). Use as {{tiltify_goal_amount}}. */
867
+ SystemVariables["TILTIFY_GOAL_AMOUNT"] = "tiltify_goal_amount";
868
+ /** Tiltify campaign amount raised so far (currency value). Use as {{tiltify_total_raised}}. */
869
+ SystemVariables["TILTIFY_TOTAL_RAISED"] = "tiltify_total_raised";
870
+ /** Extra Life campaign fundraising goal (USD). Use as {{extralife_goal_amount}}. */
871
+ SystemVariables["EXTRALIFE_GOAL_AMOUNT"] = "extralife_goal_amount";
872
+ /** Extra Life campaign amount raised so far (USD). Use as {{extralife_total_raised}}. */
873
+ SystemVariables["EXTRALIFE_TOTAL_RAISED"] = "extralife_total_raised";
874
+ /** DonorDrive campaign fundraising goal. Use as {{donordrive_goal_amount}}. */
875
+ SystemVariables["DONORDRIVE_GOAL_AMOUNT"] = "donordrive_goal_amount";
876
+ /** DonorDrive campaign amount raised so far. Use as {{donordrive_total_raised}}. */
877
+ SystemVariables["DONORDRIVE_TOTAL_RAISED"] = "donordrive_total_raised";
861
878
  // ────────────────────────────────── Sensors ────────────────────────────────────
862
879
  /** Heart rate BPM (Pulsoid/Hyperate). Use as {{heartrate_bpm}}. */
863
880
  SystemVariables["HEARTRATE_BPM"] = "heartrate_bpm";
@@ -1612,11 +1629,13 @@ export const AllVariables = {
1612
1629
  },
1613
1630
  },
1614
1631
  donordrive: {
1632
+ variables: ['donordrive_goal_amount', 'donordrive_total_raised'],
1615
1633
  alerts: {
1616
1634
  donation: ['username', 'currency', 'amount'],
1617
1635
  },
1618
1636
  },
1619
1637
  extralife: {
1638
+ variables: ['extralife_goal_amount', 'extralife_total_raised'],
1620
1639
  alerts: {
1621
1640
  donation: ['username', 'currency', 'amount'],
1622
1641
  },
@@ -2270,6 +2289,7 @@ export const AllVariables = {
2270
2289
  },
2271
2290
  },
2272
2291
  tiltify: {
2292
+ variables: ['tiltify_goal_amount', 'tiltify_total_raised'],
2273
2293
  alerts: {
2274
2294
  campaignDonation: ['username', 'currency', 'amount'],
2275
2295
  },
@@ -840,6 +840,18 @@ export declare enum SystemVariables {
840
840
  VTUBESTUDIO_CURRENT_BACKGROUND = "vtubestudio_current_background",
841
841
  /** Last VTS hotkey triggered. Use as {{vtubestudio_last_hotkey_triggered}}. */
842
842
  VTUBESTUDIO_LAST_HOTKEY_TRIGGERED = "vtubestudio_last_hotkey_triggered",
843
+ /** Tiltify campaign fundraising goal (currency value). Use as {{tiltify_goal_amount}}. */
844
+ TILTIFY_GOAL_AMOUNT = "tiltify_goal_amount",
845
+ /** Tiltify campaign amount raised so far (currency value). Use as {{tiltify_total_raised}}. */
846
+ TILTIFY_TOTAL_RAISED = "tiltify_total_raised",
847
+ /** Extra Life campaign fundraising goal (USD). Use as {{extralife_goal_amount}}. */
848
+ EXTRALIFE_GOAL_AMOUNT = "extralife_goal_amount",
849
+ /** Extra Life campaign amount raised so far (USD). Use as {{extralife_total_raised}}. */
850
+ EXTRALIFE_TOTAL_RAISED = "extralife_total_raised",
851
+ /** DonorDrive campaign fundraising goal. Use as {{donordrive_goal_amount}}. */
852
+ DONORDRIVE_GOAL_AMOUNT = "donordrive_goal_amount",
853
+ /** DonorDrive campaign amount raised so far. Use as {{donordrive_total_raised}}. */
854
+ DONORDRIVE_TOTAL_RAISED = "donordrive_total_raised",
843
855
  /** Heart rate BPM (Pulsoid/Hyperate). Use as {{heartrate_bpm}}. */
844
856
  HEARTRATE_BPM = "heartrate_bpm"
845
857
  }
@@ -904,11 +916,13 @@ export declare const AllVariables: {
904
916
  };
905
917
  };
906
918
  donordrive: {
919
+ variables: string[];
907
920
  alerts: {
908
921
  donation: string[];
909
922
  };
910
923
  };
911
924
  extralife: {
925
+ variables: string[];
912
926
  alerts: {
913
927
  donation: string[];
914
928
  };
@@ -1283,6 +1297,7 @@ export declare const AllVariables: {
1283
1297
  };
1284
1298
  };
1285
1299
  tiltify: {
1300
+ variables: string[];
1286
1301
  alerts: {
1287
1302
  campaignDonation: string[];
1288
1303
  };
@@ -863,6 +863,23 @@ var SystemVariables;
863
863
  SystemVariables["VTUBESTUDIO_CURRENT_BACKGROUND"] = "vtubestudio_current_background";
864
864
  /** Last VTS hotkey triggered. Use as {{vtubestudio_last_hotkey_triggered}}. */
865
865
  SystemVariables["VTUBESTUDIO_LAST_HOTKEY_TRIGGERED"] = "vtubestudio_last_hotkey_triggered";
866
+ // ─────────────────────────────── Charity Campaigns ────────────────────────────
867
+ // Campaign totals from the polled-API charity integrations (Tiltify / Extra
868
+ // Life / DonorDrive). Written by their respective managers on every poll;
869
+ // goal_amount mirrors the campaign target the streamer set on the platform
870
+ // and total_raised mirrors the running raised total. Reset to 0 on Stop.
871
+ /** Tiltify campaign fundraising goal (currency value). Use as {{tiltify_goal_amount}}. */
872
+ SystemVariables["TILTIFY_GOAL_AMOUNT"] = "tiltify_goal_amount";
873
+ /** Tiltify campaign amount raised so far (currency value). Use as {{tiltify_total_raised}}. */
874
+ SystemVariables["TILTIFY_TOTAL_RAISED"] = "tiltify_total_raised";
875
+ /** Extra Life campaign fundraising goal (USD). Use as {{extralife_goal_amount}}. */
876
+ SystemVariables["EXTRALIFE_GOAL_AMOUNT"] = "extralife_goal_amount";
877
+ /** Extra Life campaign amount raised so far (USD). Use as {{extralife_total_raised}}. */
878
+ SystemVariables["EXTRALIFE_TOTAL_RAISED"] = "extralife_total_raised";
879
+ /** DonorDrive campaign fundraising goal. Use as {{donordrive_goal_amount}}. */
880
+ SystemVariables["DONORDRIVE_GOAL_AMOUNT"] = "donordrive_goal_amount";
881
+ /** DonorDrive campaign amount raised so far. Use as {{donordrive_total_raised}}. */
882
+ SystemVariables["DONORDRIVE_TOTAL_RAISED"] = "donordrive_total_raised";
866
883
  // ────────────────────────────────── Sensors ────────────────────────────────────
867
884
  /** Heart rate BPM (Pulsoid/Hyperate). Use as {{heartrate_bpm}}. */
868
885
  SystemVariables["HEARTRATE_BPM"] = "heartrate_bpm";
@@ -1617,11 +1634,13 @@ exports.AllVariables = {
1617
1634
  },
1618
1635
  },
1619
1636
  donordrive: {
1637
+ variables: ['donordrive_goal_amount', 'donordrive_total_raised'],
1620
1638
  alerts: {
1621
1639
  donation: ['username', 'currency', 'amount'],
1622
1640
  },
1623
1641
  },
1624
1642
  extralife: {
1643
+ variables: ['extralife_goal_amount', 'extralife_total_raised'],
1625
1644
  alerts: {
1626
1645
  donation: ['username', 'currency', 'amount'],
1627
1646
  },
@@ -2275,6 +2294,7 @@ exports.AllVariables = {
2275
2294
  },
2276
2295
  },
2277
2296
  tiltify: {
2297
+ variables: ['tiltify_goal_amount', 'tiltify_total_raised'],
2278
2298
  alerts: {
2279
2299
  campaignDonation: ['username', 'currency', 'amount'],
2280
2300
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumiastream/lumia-types",
3
- "version": "3.3.7-alpha.3",
3
+ "version": "3.3.7-alpha.6",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/esm/index.js",