@tixyel/streamelements 7.6.5 → 7.6.7

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.
package/README.md CHANGED
@@ -19,11 +19,11 @@ Add the following to your HTML:
19
19
  <script>
20
20
  const { Client, Simulation, logger } = window.Tixyel;
21
21
 
22
- const client = new Client({ id: 'my-widget' })
22
+ const client = new Client({ id: "my-widget" });
23
23
 
24
- client.on('load', (event) => {})
25
- client.on('event', (provider, event) => {})
26
- client.on('session', (session) => {})
24
+ client.on("load", (event) => {});
25
+ client.on("event", (provider, event) => {});
26
+ client.on("session", (session) => {});
27
27
  </script>
28
28
  ```
29
29
 
package/dist/index.d.ts CHANGED
@@ -7,240 +7,6 @@
7
7
  import { ComfyJSInstance, OnErrorHandler, OnCommandHandler, OnChatHandler, OnWhisperHandler, OnMessageDeletedHandler, OnJoinHandler, OnPartHandler, OnHostedHandler, OnRaidHandler, OnSubHandler, OnResubHandler, OnSubGiftHandler, OnSubMysteryGiftHandler, OnGiftSubContinueHandler, OnCheerHandler, OnChatModeHandler, OnRewardHandler, OnConnectedHandler, OnReconnectHandler } from 'comfy.js';
8
8
  export { ComfyJSInstance } from 'comfy.js';
9
9
 
10
- type Provider$1 = 'twitch' | 'youtube' | 'kick' | 'facebook' | 'streamelements';
11
- type ClientProviderEvents = {
12
- streamelements: StreamElements.Event.Provider.StreamElements.Events;
13
- twitch: StreamElements.Event.Provider.Twitch.Events;
14
- youtube: StreamElements.Event.Provider.YouTube.Events;
15
- kick: StreamElements.Event.Provider.Kick.Events;
16
- facebook: StreamElements.Event.Provider.Facebook.Events;
17
- };
18
- type ClientCustomEventPayload<TProvider extends string = string> = {
19
- provider: TProvider;
20
- };
21
- type ClientCustomProviderEvents = Record<string, ClientCustomEventPayload>;
22
- type ClientCustomEventsWithoutInternalProviders<CustomEvents> = Omit<CustomEvents, keyof ClientProviderEvents>;
23
- type ValidateCustomProviderEvents<CustomEvents> = CustomEvents extends Record<string, unknown> ? {
24
- [K in keyof ClientCustomEventsWithoutInternalProviders<CustomEvents> & string]: ClientCustomEventsWithoutInternalProviders<CustomEvents>[K] extends ClientCustomEventPayload<K> ? ClientCustomEventsWithoutInternalProviders<CustomEvents>[K] : never;
25
- } : {};
26
- type ClientAllProviderEvents<CustomEvents = {}> = ClientProviderEvents & ValidateCustomProviderEvents<CustomEvents>;
27
- type ClientEvents<CustomEvents = {}> = {
28
- [K in keyof ClientAllProviderEvents<CustomEvents> & string]: {
29
- provider: K;
30
- data: ClientAllProviderEvents<CustomEvents>[K];
31
- };
32
- }[keyof ClientAllProviderEvents<CustomEvents> & string];
33
- type ClientEventTuple<CustomEvents = {}> = {
34
- [K in keyof ClientAllProviderEvents<CustomEvents> & string]: [
35
- provider: K,
36
- event: ClientAllProviderEvents<CustomEvents>[K]
37
- ];
38
- }[keyof ClientAllProviderEvents<CustomEvents> & string];
39
-
40
- declare namespace StreamElementsEvents {
41
- namespace Tip {
42
- type Data = {
43
- listener: 'tip-latest';
44
- event: Event;
45
- };
46
- type Event = {
47
- amount: number;
48
- avatar: string;
49
- name: string;
50
- displayName: string;
51
- providerId: string;
52
- _id: string;
53
- sessionTop: boolean;
54
- type: 'tip';
55
- originalEventName: 'tip-latest';
56
- };
57
- }
58
- namespace KVStore {
59
- type Data = {
60
- listener: 'kvstore:update';
61
- event: Event;
62
- };
63
- type Event = {
64
- data: {
65
- key: `customWidget.${string}`;
66
- value: string | number | boolean | Record<string, any>;
67
- };
68
- };
69
- }
70
- namespace BotCounter {
71
- type Data = {
72
- listener: 'bot:counter';
73
- event: Event;
74
- };
75
- type Event = {
76
- counter: string;
77
- value: number;
78
- };
79
- }
80
- namespace AlertService {
81
- type Data = {
82
- listener: 'alertService:toggleSound';
83
- event: Event;
84
- };
85
- type Event = {
86
- muted: boolean;
87
- };
88
- }
89
- namespace EventSkip {
90
- type Data = {
91
- listener: 'event:skip';
92
- event: Event;
93
- };
94
- type Event = {};
95
- }
96
- namespace EventTest {
97
- export type Data = {
98
- listener: 'event:test';
99
- event: Event;
100
- };
101
- export type Event = widgetButton | emulatedEvents<EventType> | Session;
102
- type items = {
103
- name: string;
104
- price: number;
105
- quantity: number;
106
- };
107
- type widgetButton = {
108
- listener: 'widget-button';
109
- field: string;
110
- value: string | number | boolean;
111
- };
112
- type EventType = 'follower' | 'subscriber' | 'tip' | 'cheer' | 'raid';
113
- type EventTier = 'prime' | '1000' | '2000' | '3000';
114
- type emulatedEvents<T extends EventType> = {
115
- listener: `${T}-latest`;
116
- event: {
117
- type: T;
118
- name: string;
119
- amount: number;
120
- count: number;
121
- message?: string;
122
- gifted?: boolean;
123
- bulkGifted?: boolean;
124
- sender?: string;
125
- subExtension?: boolean;
126
- items: items[];
127
- tier: EventTier;
128
- month: string;
129
- isTest: true;
130
- };
131
- };
132
- type Session = SessionCount | SessionTotal | SessionTop | SessionGoal | SessionRecent | SessionPoints;
133
- type SessionCount = {
134
- listener: `${EventType}-count`;
135
- event: {
136
- type: EventType;
137
- name: string;
138
- count: number;
139
- items: items[];
140
- tier: EventTier;
141
- month: string;
142
- isTest: true;
143
- };
144
- };
145
- type SessionTotal = {
146
- listener: `${EventType}-total`;
147
- event: {
148
- type: EventType;
149
- name: string;
150
- amount: number;
151
- count: number;
152
- items: items[];
153
- tier: EventTier;
154
- month: string;
155
- isTest: true;
156
- };
157
- };
158
- type SessionTop = {
159
- listener: `${EventType}-top`;
160
- event: {
161
- type: EventType;
162
- name: string;
163
- amount: number;
164
- count: number;
165
- items: items[];
166
- tier: EventTier;
167
- month: string;
168
- isTest: true;
169
- };
170
- };
171
- type SessionGoal = {
172
- listener: `${EventType}-goal`;
173
- event: {
174
- type: EventType;
175
- name: string;
176
- amount: number;
177
- count: number;
178
- items: items[];
179
- tier: EventTier;
180
- month: string;
181
- isTest: true;
182
- };
183
- };
184
- type SessionRecent = {
185
- listener: `${EventType}-recent`;
186
- event: {
187
- event: SessionRecentEvent[];
188
- };
189
- };
190
- type SessionRecentEvent = {
191
- type: EventType;
192
- name: string;
193
- amount: number;
194
- count: number;
195
- tier: EventTier;
196
- isTest: true;
197
- };
198
- type SessionPoints = {
199
- listener: `${EventType}-points`;
200
- event: {
201
- type: EventType;
202
- name: string;
203
- amount: number;
204
- count: number;
205
- items: items[];
206
- tier: EventTier;
207
- month: string;
208
- isTest: true;
209
- };
210
- };
211
- export {};
212
- }
213
- interface BaseEvent {
214
- provider: Provider$1;
215
- flagged: boolean;
216
- channel: string;
217
- createdAt: string;
218
- _id: string;
219
- expiresAt: string;
220
- updatedAt: string;
221
- activityId: string;
222
- sessionEventsCount: number;
223
- isMock?: boolean;
224
- }
225
- namespace Event {
226
- type Data = {
227
- listener: 'event';
228
- event: Event;
229
- };
230
- type Event = Tip;
231
- interface Tip extends BaseEvent {
232
- type: 'tip';
233
- data: {
234
- amount: string;
235
- currency: string;
236
- username: string;
237
- message: string;
238
- avatar: string;
239
- };
240
- }
241
- }
242
- }
243
-
244
10
  type TwitchEmote = {
245
11
  type: 'twitch';
246
12
  name: string;
@@ -510,20 +276,20 @@ declare namespace TwitchEvents {
510
276
  time: number;
511
277
  tags: Partial<MapNumberValuesToString<Twitch.IRC>> & {
512
278
  'badge-info': string;
513
- 'badges': string;
279
+ badges: string;
514
280
  'client-nonce': string;
515
- 'color': string;
281
+ color: string;
516
282
  'display-name': string;
517
- 'emotes': string;
283
+ emotes: string;
518
284
  'first-msg': '1' | '0';
519
- 'flags': string;
520
- 'id': string;
521
- 'mod': '1' | '0';
285
+ flags: string;
286
+ id: string;
287
+ mod: '1' | '0';
522
288
  'returning-chatter': '1' | '0';
523
289
  'room-id': string;
524
- 'subscriber': '1' | '0';
290
+ subscriber: '1' | '0';
525
291
  'tmi-sent-ts': string;
526
- 'turbo': '1' | '0';
292
+ turbo: '1' | '0';
527
293
  'user-id': string;
528
294
  'user-type': '' | 'mod' | 'admin' | 'global_mod' | 'staff';
529
295
  };
@@ -1693,6 +1459,252 @@ declare namespace StreamElements {
1693
1459
  }
1694
1460
  }
1695
1461
 
1462
+ type Provider$1 = 'twitch' | 'youtube' | 'kick' | 'facebook' | 'streamelements';
1463
+ type ClientProviderEvents = {
1464
+ streamelements: StreamElements.Event.Provider.StreamElements.Events;
1465
+ twitch: StreamElements.Event.Provider.Twitch.Events;
1466
+ youtube: StreamElements.Event.Provider.YouTube.Events;
1467
+ kick: StreamElements.Event.Provider.Kick.Events;
1468
+ facebook: StreamElements.Event.Provider.Facebook.Events;
1469
+ };
1470
+ type ClientCustomEventPayload<TProvider extends string = string> = {
1471
+ provider: TProvider;
1472
+ };
1473
+ type ClientCustomProviderEvents = Record<string, ClientCustomEventPayload>;
1474
+ type ClientCustomEventsWithoutInternalProviders<CustomEvents> = Omit<CustomEvents, keyof ClientProviderEvents>;
1475
+ type ValidateCustomProviderEvents<CustomEvents> = CustomEvents extends Record<string, unknown> ? {
1476
+ [K in keyof ClientCustomEventsWithoutInternalProviders<CustomEvents> & string]: ClientCustomEventsWithoutInternalProviders<CustomEvents>[K] extends ClientCustomEventPayload<K> ? ClientCustomEventsWithoutInternalProviders<CustomEvents>[K] : never;
1477
+ } : {};
1478
+ type ClientAllProviderEvents<CustomEvents = {}> = ClientProviderEvents & ValidateCustomProviderEvents<CustomEvents>;
1479
+ type ClientEvents<CustomEvents = {}> = {
1480
+ [K in keyof ClientAllProviderEvents<CustomEvents> & string]: {
1481
+ provider: K;
1482
+ data: ClientAllProviderEvents<CustomEvents>[K];
1483
+ };
1484
+ }[keyof ClientAllProviderEvents<CustomEvents> & string];
1485
+ type ClientEventTuple<CustomEvents = {}> = {
1486
+ [K in keyof ClientAllProviderEvents<CustomEvents> & string]: [
1487
+ provider: K,
1488
+ event: ClientAllProviderEvents<CustomEvents>[K]
1489
+ ];
1490
+ }[keyof ClientAllProviderEvents<CustomEvents> & string];
1491
+
1492
+ declare namespace StreamElementsEvents {
1493
+ namespace Tip {
1494
+ type Data = {
1495
+ listener: 'tip-latest';
1496
+ event: Event;
1497
+ };
1498
+ type Event = {
1499
+ amount: number;
1500
+ avatar: string;
1501
+ name: string;
1502
+ displayName: string;
1503
+ providerId: string;
1504
+ _id: string;
1505
+ sessionTop: boolean;
1506
+ type: 'tip';
1507
+ originalEventName: 'tip-latest';
1508
+ };
1509
+ }
1510
+ namespace KVStore {
1511
+ type Data = {
1512
+ listener: 'kvstore:update';
1513
+ event: Event;
1514
+ };
1515
+ type Event = {
1516
+ data: {
1517
+ key: `customWidget.${string}`;
1518
+ value: string | number | boolean | Record<string, any>;
1519
+ };
1520
+ };
1521
+ }
1522
+ namespace BotCounter {
1523
+ type Data = {
1524
+ listener: 'bot:counter';
1525
+ event: Event;
1526
+ };
1527
+ type Event = {
1528
+ counter: string;
1529
+ value: number;
1530
+ };
1531
+ }
1532
+ namespace AlertService {
1533
+ type Data = {
1534
+ listener: 'alertService:toggleSound';
1535
+ event: Event;
1536
+ };
1537
+ type Event = {
1538
+ muted: boolean;
1539
+ };
1540
+ }
1541
+ namespace EventSkip {
1542
+ type Data = {
1543
+ listener: 'event:skip';
1544
+ event: Event;
1545
+ };
1546
+ type Event = {};
1547
+ }
1548
+ namespace EventTest {
1549
+ export type Data = {
1550
+ listener: 'event:test';
1551
+ event: Event;
1552
+ };
1553
+ export type Event = widgetButton | emulatedEvents<EventType> | Session;
1554
+ type items = {
1555
+ name: string;
1556
+ price: number;
1557
+ quantity: number;
1558
+ };
1559
+ type widgetButton = {
1560
+ listener: 'widget-button';
1561
+ field: string;
1562
+ value: string | number | boolean;
1563
+ };
1564
+ type EventType = 'follower' | 'subscriber' | 'tip' | 'cheer' | 'raid';
1565
+ type EventTier = 'prime' | '1000' | '2000' | '3000';
1566
+ type emulatedEvents<T extends EventType> = {
1567
+ listener: `${T}-latest`;
1568
+ event: {
1569
+ type: T;
1570
+ name: string;
1571
+ amount: number;
1572
+ count: number;
1573
+ message?: string;
1574
+ gifted?: boolean;
1575
+ bulkGifted?: boolean;
1576
+ sender?: string;
1577
+ subExtension?: boolean;
1578
+ items: items[];
1579
+ tier: EventTier;
1580
+ month: string;
1581
+ isTest: true;
1582
+ };
1583
+ };
1584
+ type Session = SessionCount | SessionTotal | SessionTop | SessionGoal | SessionRecent | SessionPoints;
1585
+ type SessionCount = {
1586
+ listener: `${EventType}-count`;
1587
+ event: {
1588
+ type: EventType;
1589
+ name: string;
1590
+ count: number;
1591
+ items: items[];
1592
+ tier: EventTier;
1593
+ month: string;
1594
+ isTest: true;
1595
+ };
1596
+ };
1597
+ type SessionTotal = {
1598
+ listener: `${EventType}-total`;
1599
+ event: {
1600
+ type: EventType;
1601
+ name: string;
1602
+ amount: number;
1603
+ count: number;
1604
+ items: items[];
1605
+ tier: EventTier;
1606
+ month: string;
1607
+ isTest: true;
1608
+ };
1609
+ };
1610
+ type SessionTop = {
1611
+ listener: `${EventType}-top`;
1612
+ event: {
1613
+ type: EventType;
1614
+ name: string;
1615
+ amount: number;
1616
+ count: number;
1617
+ items: items[];
1618
+ tier: EventTier;
1619
+ month: string;
1620
+ isTest: true;
1621
+ };
1622
+ };
1623
+ type SessionGoal = {
1624
+ listener: `${EventType}-goal`;
1625
+ event: {
1626
+ type: EventType;
1627
+ name: string;
1628
+ amount: number;
1629
+ count: number;
1630
+ items: items[];
1631
+ tier: EventTier;
1632
+ month: string;
1633
+ isTest: true;
1634
+ };
1635
+ };
1636
+ type SessionRecent = {
1637
+ listener: `${EventType}-recent`;
1638
+ event: {
1639
+ event: SessionRecentEvent[];
1640
+ };
1641
+ };
1642
+ type SessionRecentEvent = {
1643
+ type: EventType;
1644
+ name: string;
1645
+ amount: number;
1646
+ count: number;
1647
+ tier: EventTier;
1648
+ isTest: true;
1649
+ };
1650
+ type SessionPoints = {
1651
+ listener: `${EventType}-points`;
1652
+ event: {
1653
+ type: EventType;
1654
+ name: string;
1655
+ amount: number;
1656
+ count: number;
1657
+ items: items[];
1658
+ tier: EventTier;
1659
+ month: string;
1660
+ isTest: true;
1661
+ };
1662
+ };
1663
+ export {};
1664
+ }
1665
+ interface BaseEvent {
1666
+ provider: Provider$1;
1667
+ flagged: boolean;
1668
+ channel: string;
1669
+ createdAt: string;
1670
+ _id: string;
1671
+ expiresAt: string;
1672
+ updatedAt: string;
1673
+ activityId: string;
1674
+ sessionEventsCount: number;
1675
+ isMock?: boolean;
1676
+ }
1677
+ namespace Event {
1678
+ type Data = {
1679
+ listener: 'event';
1680
+ event: Event;
1681
+ };
1682
+ type Event = Tip;
1683
+ interface Tip extends BaseEvent {
1684
+ type: 'tip';
1685
+ data: {
1686
+ amount: string;
1687
+ currency: string;
1688
+ username: string;
1689
+ message: string;
1690
+ avatar: string;
1691
+ };
1692
+ }
1693
+ }
1694
+ }
1695
+
1696
+ type JSONPrimitive = string | number | boolean | null;
1697
+ type JSONSerializable = JSONPrimitive | JSONSerializable[] | {
1698
+ [k: string]: JSONSerializable | undefined;
1699
+ };
1700
+ type JSONObject = {
1701
+ [key: string]: JSONSerializable | undefined;
1702
+ };
1703
+
1704
+ type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
1705
+ [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
1706
+ }[Keys];
1707
+
1696
1708
  interface CommandOptions {
1697
1709
  prefix?: string;
1698
1710
  name: string;
@@ -1788,19 +1800,13 @@ declare class EventProvider<EventMap extends Record<string, any[]> = Record<stri
1788
1800
  removeAllListeners<K extends keyof EventMap>(eventName: K): this;
1789
1801
  }
1790
1802
 
1791
- type JSONPrimitive = string | number | boolean | null;
1792
- type JSONSerializable = JSONPrimitive | JSONSerializable[] | {
1793
- [k: string]: JSONSerializable | undefined;
1794
- };
1795
- type JSONObject = {
1796
- [key: string]: JSONSerializable | undefined;
1797
- };
1798
-
1799
1803
  type UseStorageEvents<T> = {
1800
- load: [T | null];
1801
- update: [T];
1804
+ load: [T];
1805
+ update: [T, from: string];
1806
+ save: [T];
1802
1807
  };
1803
1808
  type UseStorageOptions<T> = {
1809
+ /** The unique identifier for the storage instance. */
1804
1810
  id?: string;
1805
1811
  data: T;
1806
1812
  };
@@ -1809,6 +1815,7 @@ declare class useStorage<T extends JSONObject> extends EventProvider<UseStorageE
1809
1815
  /** The unique identifier for the storage instance. */
1810
1816
  id: string;
1811
1817
  loaded: boolean;
1818
+ private initial;
1812
1819
  data: T;
1813
1820
  constructor(options: UseStorageOptions<T>);
1814
1821
  /**
@@ -1831,14 +1838,6 @@ declare class useStorage<T extends JSONObject> extends EventProvider<UseStorageE
1831
1838
  * Clears all data from the storage.
1832
1839
  */
1833
1840
  clear(): void;
1834
- /**
1835
- * Sets a value in the storage at the specified path.
1836
- * @param obj The object to set the value in
1837
- * @param path The path to set the value at
1838
- * @param value The value to set
1839
- * @returns The updated object
1840
- */
1841
- static setByPath<P extends string, T extends object>(obj: T, path: P, value: PathValue<T, P>): void;
1842
1841
  on<K extends keyof UseStorageEvents<T>>(eventName: K, callback: (this: useStorage<T>, ...args: UseStorageEvents<T>[K]) => void): this;
1843
1842
  }
1844
1843
 
@@ -1928,10 +1927,6 @@ declare class Client<CustomEvents = {}> extends EventProvider<ClientMapEvents<Cu
1928
1927
  on<K extends keyof ClientMapEvents<CustomEvents>>(eventName: K, callback: (this: Client<CustomEvents>, ...args: ClientMapEvents<CustomEvents>[K]) => void): this;
1929
1928
  }
1930
1929
 
1931
- type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
1932
- [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
1933
- }[Keys];
1934
-
1935
1930
  interface ButtonOptions {
1936
1931
  field: string | ((field: string, value: string | boolean | number) => boolean);
1937
1932
  template?: string;
@@ -2508,6 +2503,36 @@ declare class ObjectHelper {
2508
2503
  * @returns An array of keys from the object, typed as an array of strings.
2509
2504
  */
2510
2505
  keys<K extends string, V>(obj: Record<K, V>): K[];
2506
+ /**
2507
+ * Updates a value in a nested object at the specified path, with an option to create missing intermediate objects.
2508
+ * @param obj - The target object to update.
2509
+ * @param path - The path to the property being updated.
2510
+ * @param value - The value to set at the specified path.
2511
+ * @param createMissing - Whether to create missing intermediate objects along the path if they don't exist.
2512
+ * @returns The updated object with the new value set at the specified path.
2513
+ * @example
2514
+ * ```javascript
2515
+ * const obj1 = { a: { b: 1 }, c: 2 };
2516
+ * updateViaPath(obj1, 'a.d', 9999, false);
2517
+ * console.log(obj1);
2518
+ * // Output: { a: { b: 1, d: 9999 }, c: 2 }
2519
+ *
2520
+ * const obj2 = { a: { b: 1 }, c: 2 };
2521
+ * updateViaPath(obj2, 'a.e.f', 8888, true);
2522
+ * console.log(obj2);
2523
+ * // Output: { a: { b: 1, e: { f: 8888 } }, c: 2 }
2524
+ * ```
2525
+ * @returns The updated object with the new value set at the specified path.
2526
+ */
2527
+ updateViaPath<P extends string, T extends object>(obj: T, path: P, value: PathValue<T, P>, createMissing?: boolean): T;
2528
+ /**
2529
+ * Compares two values for differences, with an option to use JSON stringification for comparison.
2530
+ * @param a - The first value to compare.
2531
+ * @param b - The second value to compare.
2532
+ * @param method - The method to use for comparison, either 'json' for JSON stringification or 'default' for a recursive comparison.
2533
+ * @returns A boolean indicating whether the two values are different based on the specified comparison method.
2534
+ */
2535
+ isDiff(a: any, b: any, method?: 'json' | 'default'): boolean;
2511
2536
  }
2512
2537
 
2513
2538
  type BadgeOptions = Twitch.tags[] | Twitch.tags | `${Twitch.tags}/${string}` | `${Twitch.tags}/${string}`[];
@@ -3036,7 +3061,7 @@ declare class UtilsHelper {
3036
3061
  userId: string;
3037
3062
  name: string;
3038
3063
  broadcasterId?: string;
3039
- }, session: StreamElements.Session.Data, checkWithAPI?: boolean): Promise<3 | 1 | 2>;
3064
+ }, session: StreamElements.Session.Data, checkWithAPI?: boolean): Promise<1 | 2 | 3>;
3040
3065
  /**
3041
3066
  * Identifies a user based on the received event and session data, returning their ID, name, role, badges, and top status.
3042
3067
  * @param receivedEvent - The event received from the provider (Twitch or YouTube) containing user information.
@@ -3577,7 +3602,7 @@ interface FakeUserPoolOptions {
3577
3602
  };
3578
3603
  }
3579
3604
  type FakeUserPoolEvents = {
3580
- 'warn': [warning: Error];
3605
+ warn: [warning: Error];
3581
3606
  };
3582
3607
  declare class FakeUserPool extends EventProvider<FakeUserPoolEvents> {
3583
3608
  readonly users: FakeUser[];