overlay-toolkit 0.9.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.
package/README.md ADDED
@@ -0,0 +1,4 @@
1
+ # Overlay Toolkit Library
2
+
3
+ An API wrapper for [OverlayToolkit](https://github.com/Lotlab/ffxiv-overlay-toolkit), which is function collection extend ffxiv overlay plugin.
4
+
@@ -0,0 +1,654 @@
1
+ export interface LogLineEntry {
2
+ /**
3
+ * Line type of log line, in human friendly string
4
+ */
5
+ readonly type: string;
6
+ /**
7
+ * Line type of log line, in decimal
8
+ */
9
+ readonly typeCode: number;
10
+ /**
11
+ * Time of log line, in TZ (ISO 8601) format
12
+ */
13
+ readonly time: string;
14
+ }
15
+ export declare class LogLineBase implements LogLineEntry {
16
+ type: string;
17
+ typeCode: number;
18
+ time: string;
19
+ constructor(type: string, log: string[]);
20
+ get timeDate(): Date;
21
+ }
22
+ /**
23
+ * Game log line, DO NOT WRITE TRIGGER AGAINST THIS
24
+ */
25
+ export declare class GameLogLine extends LogLineBase {
26
+ code: string;
27
+ name: string;
28
+ line: string;
29
+ constructor(log: string[]);
30
+ }
31
+ /**
32
+ * This message is sent when first logging in and whenever the zone is changed.
33
+ */
34
+ export declare class ChangeZone extends LogLineBase {
35
+ /**
36
+ * Zone ID of the zone, in decimal
37
+ */
38
+ zoneID: number;
39
+ /**
40
+ * Zone name of the zone, in human friendly string
41
+ */
42
+ zoneName: string;
43
+ constructor(log: string[]);
44
+ }
45
+ /**
46
+ * This message is sent when the primary player changes.
47
+ */
48
+ export declare class ChangePrimaryPlayer extends LogLineBase {
49
+ /**
50
+ * Character ID of the character, in decimal
51
+ */
52
+ charID: number;
53
+ /**
54
+ * Character name of the character, in human friendly string
55
+ */
56
+ charName: string;
57
+ constructor(log: string[]);
58
+ get charIDHex(): string;
59
+ }
60
+ /**
61
+ * This message is sent when a new object is added to the scene or becomes close enough to the player that they can view its actions.
62
+ */
63
+ export declare class AddCombatant extends LogLineBase {
64
+ /**
65
+ * ID of the combatant, in decimal
66
+ */
67
+ id: number;
68
+ /**
69
+ * Name of the combatant, in human friendly string
70
+ */
71
+ name: string;
72
+ job: number;
73
+ level: number;
74
+ ownerID: number;
75
+ worldID: number;
76
+ worldName: string;
77
+ npcNameID: number;
78
+ npcBaseID: number;
79
+ currentHP: number;
80
+ hp: number;
81
+ currentMP: number;
82
+ mp: number;
83
+ x: number;
84
+ y: number;
85
+ z: number;
86
+ heading: number;
87
+ constructor(log: string[]);
88
+ }
89
+ /**
90
+ * This message is sent when an object is removed from the scene, either because the player has moved too far away from it, it has died, or the player has changed zones.
91
+ */
92
+ export declare class RemoveCombatant extends LogLineBase {
93
+ /**
94
+ * ID of the combatant, in decimal
95
+ */
96
+ id: number;
97
+ name: string;
98
+ job: number;
99
+ level: number;
100
+ ownerID: number;
101
+ world: string;
102
+ npcNameID: number;
103
+ npcBaseID: number;
104
+ currentHP: number;
105
+ hp: number;
106
+ currentMP: number;
107
+ mp: number;
108
+ x: number;
109
+ y: number;
110
+ z: number;
111
+ heading: number;
112
+ constructor(log: string[]);
113
+ }
114
+ /**
115
+ * This line represents the players currently in the party, and is sent whenever the party makeup changes.
116
+ *
117
+ * This data is not necessarily sorted in the same order as the in-game party UI.
118
+ */
119
+ export declare class PartyList extends LogLineBase {
120
+ /**
121
+ * IDs of the players in the party, in decimal
122
+ */
123
+ party: number[];
124
+ constructor(log: string[]);
125
+ }
126
+ /**
127
+ * This message is sent whenever your player's stats change and upon entering a new zone/instance.
128
+ *
129
+ * This is only emitted for the local player. It is not possible to automatically pull other players' stats.
130
+ */
131
+ export declare class PlayerStats extends LogLineBase {
132
+ job: number;
133
+ strength: number;
134
+ dexterity: number;
135
+ vitality: number;
136
+ intelligence: number;
137
+ mind: number;
138
+ piety: number;
139
+ attackPower: number;
140
+ directHit: number;
141
+ criticalHit: number;
142
+ attakcMagicPotency: number;
143
+ healingMagicPotency: number;
144
+ determination: number;
145
+ skillSpeed: number;
146
+ spellSpeed: number;
147
+ tenacity: number;
148
+ localContentID: number;
149
+ constructor(log: string[]);
150
+ }
151
+ /**
152
+ * For abilities with cast bars, this is the log line that specifies that a player or a monster has started casting an ability.
153
+ * This precedes a NetworkAbility, NetworkAOEAbility, or NetworkCancelAbility where it uses the ability or is interrupted.
154
+ */
155
+ export declare class NetowrkStartsCasting extends LogLineBase {
156
+ sourceID: number;
157
+ sourceName: string;
158
+ id: number;
159
+ ability: string;
160
+ targetID: number;
161
+ targetName: string;
162
+ castTime: number;
163
+ x: number;
164
+ y: number;
165
+ z: number;
166
+ heading: number;
167
+ constructor(log: string[]);
168
+ }
169
+ export interface ActionEffect {
170
+ flags: number;
171
+ damage: string;
172
+ }
173
+ /**
174
+ * This is an ability that ends up hitting a single target (possibly the caster's self). The reason this is worded as "ends up hitting" is that some AOE abilities may only hit a single target, in which case they still result in this type
175
+ */
176
+ export declare class NetworkAbility extends LogLineBase {
177
+ sourceID: number;
178
+ sourceName: string;
179
+ id: number;
180
+ ability: string;
181
+ targetID: number;
182
+ targetName: string;
183
+ effects: ActionEffect[];
184
+ targetCurrentHP: number;
185
+ targetMaxHP: number;
186
+ targetCurrentMP: number;
187
+ targetMaxMP: number;
188
+ targetX: number;
189
+ targetY: number;
190
+ targetZ: number;
191
+ targetHeading: number;
192
+ currentHP: number;
193
+ maxHP: number;
194
+ currentMP: number;
195
+ maxMP: number;
196
+ x: number;
197
+ y: number;
198
+ z: number;
199
+ heading: number;
200
+ sequence: number;
201
+ targetIndex: number;
202
+ targetCount: number;
203
+ ownerID: number;
204
+ ownerName: string;
205
+ effectDisplayType: number;
206
+ actionID: number;
207
+ actionAnimationID: number;
208
+ animationLockTime: number;
209
+ rotationHex: number;
210
+ constructor(log: string[]);
211
+ }
212
+ /**
213
+ * For abilities with cast bars, this is the log line that specifies that the cast was cancelled either due to movement or an interrupt and it won't go off.
214
+ */
215
+ export declare class NetworkCancelAbility extends LogLineBase {
216
+ sourceID: number;
217
+ source: string;
218
+ id: number;
219
+ name: string;
220
+ reason: string;
221
+ constructor(log: string[]);
222
+ }
223
+ /**
224
+ * HoT (heal over time) and DoT (damage over time) amounts. For most DoTs and HoTs, this line conveys an aggregated tick for every DoT/HoT source on that target from all sources.
225
+ */
226
+ export declare class NetworkDoT extends LogLineBase {
227
+ id: number;
228
+ name: string;
229
+ which: string;
230
+ effectID: number;
231
+ damage: number;
232
+ currentHP: number;
233
+ maxHP: number;
234
+ currentMP: number;
235
+ maxMP: number;
236
+ x: number;
237
+ y: number;
238
+ z: number;
239
+ heading: number;
240
+ sourceID: number;
241
+ sourceName: string;
242
+ damageType: number;
243
+ sourceCurrentHP: number;
244
+ sourceMaxHP: number;
245
+ sourceCurrentMP: number;
246
+ sourceMaxMP: number;
247
+ sourceX: number;
248
+ sourceY: number;
249
+ sourceZ: number;
250
+ sourceHeading: number;
251
+ constructor(log: string[]);
252
+ }
253
+ /**
254
+ * This message corresponds to an actor being defeated and killed. This usually comes along with a game log message such as You defeat the worm's heart.
255
+ */
256
+ export declare class NetworkDeath extends LogLineBase {
257
+ targetID: number;
258
+ targetName: string;
259
+ sourceID: number;
260
+ sourceName: string;
261
+ constructor(log: string[]);
262
+ }
263
+ /**
264
+ * This message is the "gains effect" message for players and mobs gaining effects whether they are good or bad.
265
+ */
266
+ export declare class NetworkBuff extends LogLineBase {
267
+ effectID: number;
268
+ effectName: string;
269
+ duration: number;
270
+ sourceID: number;
271
+ sourceName: string;
272
+ targetID: number;
273
+ targetName: string;
274
+ count: number;
275
+ targetMaxHP: number;
276
+ sourceMaxHP: number;
277
+ constructor(log: string[]);
278
+ }
279
+ export declare class NetworkTargetIcon extends LogLineBase {
280
+ targetID: number;
281
+ targetName: string;
282
+ id: number;
283
+ data0: number;
284
+ constructor(log: string[]);
285
+ }
286
+ /**
287
+ * This message indicates a floor waymarker was added or deleted.
288
+ */
289
+ export declare class NetworkRaidMarker extends LogLineBase {
290
+ operation: string;
291
+ waymark: number;
292
+ id: number;
293
+ name: string;
294
+ x: number;
295
+ y: number;
296
+ z: number;
297
+ constructor(log: string[]);
298
+ }
299
+ /**
300
+ * This message indicates a target marker placed above or removed from a combatant's head by a player.
301
+ */
302
+ export declare class NetworkTargetMarker extends LogLineBase {
303
+ operation: string;
304
+ waymark: number;
305
+ id: number;
306
+ name: string;
307
+ targetID: number;
308
+ targetName: string;
309
+ constructor(log: string[]);
310
+ }
311
+ /**
312
+ * This is the paired "end" message to the NetworkBuff "begin" message. This message corresponds to the loss of effects (either positive or negative).
313
+ */
314
+ export declare class NetworkBuffRemove extends LogLineBase {
315
+ effectID: number;
316
+ effectName: string;
317
+ sourceID: number;
318
+ sourceName: string;
319
+ targetID: number;
320
+ targetName: string;
321
+ count: number;
322
+ constructor(log: string[]);
323
+ }
324
+ /**
325
+ * Info about the current player's job gauge.
326
+ */
327
+ export declare class NetworkGauge extends LogLineBase {
328
+ id: number;
329
+ /**
330
+ * The data of the gauge, in a Uint8Array.
331
+ *
332
+ * First byte is always the job.
333
+ */
334
+ data: Uint8Array;
335
+ constructor(log: string[]);
336
+ }
337
+ /**
338
+ * To control aspects of the user interface, the game sends packets called Actor Controls.
339
+ * These are broken into 3 types: ActorControl, ActorControlSelf, and ActorControlTarget.
340
+ * If ActorControl is global, then ActorControlSelf / ActorControlTarget affects individual actor(s).
341
+ */
342
+ export declare class NetworkActorControl extends LogLineBase {
343
+ instance: number;
344
+ command: number;
345
+ data: number[];
346
+ constructor(log: string[]);
347
+ }
348
+ /**
349
+ * This log message toggles whether the nameplate for a particular entity is visible or not. This can help you know when a mob is targetable, for example.
350
+ */
351
+ export declare class NetworkNameToggle extends LogLineBase {
352
+ id: number;
353
+ name: string;
354
+ targetID: number;
355
+ targetName: string;
356
+ /**
357
+ * 1 = show, 0 = hide
358
+ */
359
+ toggle: boolean;
360
+ constructor(log: string[]);
361
+ }
362
+ /**
363
+ * This log line is for tethers between enemies or enemies and players. This does not appear to be used for player to player skill tethers like dragonsight or cover. (It can be used for enemy-inflicted player to player tethers such as burning chains in Shinryu N/EX.)
364
+ */
365
+ export declare class NetworkTether extends LogLineBase {
366
+ sourceID: number;
367
+ sourceName: string;
368
+ targetID: number;
369
+ targetName: string;
370
+ id: number;
371
+ constructor(log: string[]);
372
+ }
373
+ /**
374
+ * This log line is recorded every server tick where limit break energy is generated while in combat in a light or full party.
375
+ */
376
+ export declare class LimitBreak extends LogLineBase {
377
+ /**
378
+ * The limit break value, in decimal. Maximum value is 10000 * bars
379
+ */
380
+ value: number;
381
+ bars: number;
382
+ constructor(log: string[]);
383
+ }
384
+ export declare class NetworkActionSync extends LogLineBase {
385
+ id: number;
386
+ name: string;
387
+ sequenceID: number;
388
+ currentHP: number;
389
+ maxHP: number;
390
+ currentMP: number;
391
+ maxMP: number;
392
+ currentShield: number;
393
+ x: number;
394
+ y: number;
395
+ z: number;
396
+ heading: number;
397
+ constructor(log: string[]);
398
+ }
399
+ export declare class NetworkStatusEffects extends LogLineBase {
400
+ targetID: number;
401
+ targetName: string;
402
+ jobLevelData: number;
403
+ currentHP: number;
404
+ maxHP: number;
405
+ currentMP: number;
406
+ maxMP: number;
407
+ currentShield: number;
408
+ x: number;
409
+ y: number;
410
+ z: number;
411
+ heading: number;
412
+ data: number[];
413
+ constructor(log: string[]);
414
+ }
415
+ /**
416
+ * This line represents passive HP/MP regen ticks. It conveys the new values for HP/MP. Like Line 37 and Line 38, the HP value is an update, rather than a value in memory.
417
+ */
418
+ export declare class NetworkUpdateHP extends LogLineBase {
419
+ id: number;
420
+ name: string;
421
+ currentHP: number;
422
+ maxHP: number;
423
+ currentMP: number;
424
+ maxMP: number;
425
+ x: number;
426
+ y: number;
427
+ z: number;
428
+ heading: number;
429
+ constructor(log: string[]);
430
+ }
431
+ /**
432
+ * This line is sent when the map changes. It will be sent when changing zones, but is also sent when changing subzones where the map changes (e.g. crossing a zone line while in a dungeon).
433
+ */
434
+ export declare class MapLog extends LogLineBase {
435
+ id: number;
436
+ regionName: string;
437
+ placeName: string;
438
+ placeNameSub: string;
439
+ constructor(log: string[]);
440
+ }
441
+ /**
442
+ * This log line is sent when there are system log messages.
443
+ */
444
+ export declare class SystemLogMessage extends LogLineBase {
445
+ instance: number;
446
+ id: number;
447
+ params: number[];
448
+ constructor(log: string[]);
449
+ }
450
+ export declare class StatusList3 extends LogLineBase {
451
+ id: number;
452
+ name: string;
453
+ statusList: number[];
454
+ constructor(log: string[]);
455
+ }
456
+ export declare class Debug extends LogLineBase {
457
+ message: string;
458
+ constructor(log: string[]);
459
+ }
460
+ export declare class PacketDump extends LogLineBase {
461
+ len: number;
462
+ src: number;
463
+ dst: number;
464
+ packetType: number;
465
+ data?: Uint8Array;
466
+ constructor(log: string[]);
467
+ }
468
+ export declare class Version extends LogLineBase {
469
+ message: string;
470
+ constructor(log: string[]);
471
+ }
472
+ export declare class Error extends LogLineBase {
473
+ message: string;
474
+ constructor(log: string[]);
475
+ }
476
+ /**
477
+ * This line is emitted into logs when any custom logs are registered with OverlayPlugin.
478
+ * This is so that it is obvious which log lines and versions to expect for a given log file.
479
+ */
480
+ export declare class LineRegistration extends LogLineBase {
481
+ id: number;
482
+ source: string;
483
+ name: string;
484
+ version: string;
485
+ constructor(log: string[]);
486
+ }
487
+ /**
488
+ * This message is sent to cause a specific visual effect to render in the game client during instanced content.
489
+ * MapEffect lines are not tied to any particular actor or action but may provide visual-based information about how an upcoming mechanic will resolve.
490
+ */
491
+ export declare class MapEffect extends LogLineBase {
492
+ instance: number;
493
+ flags: number;
494
+ location: number;
495
+ data0: number;
496
+ data1: number;
497
+ constructor(log: string[]);
498
+ }
499
+ export declare class FateDirector extends LogLineBase {
500
+ category: string;
501
+ unknown: number;
502
+ id: number;
503
+ progress: number;
504
+ constructor(log: string[]);
505
+ }
506
+ export declare class CEDirector extends LogLineBase {
507
+ popTime: number;
508
+ timeRemaining: number;
509
+ unknown: number;
510
+ ceKey: number;
511
+ numPlayers: number;
512
+ status: number;
513
+ unknown2: number;
514
+ progress: number;
515
+ constructor(log: string[]);
516
+ }
517
+ /**
518
+ * This log line tracks in combat state. inGameCombat is whether FFXIV itself considers you in combat. inACTCombat is whether ACT considers you in combat, which may include other people around you and not yourself and also takes your ACT encounter settings into consideration.
519
+ */
520
+ export declare class InCombat extends LogLineBase {
521
+ inACTCombat: boolean;
522
+ inGameCombat: boolean;
523
+ isACTChanged: boolean;
524
+ isGameChanged: boolean;
525
+ constructor(log: string[]);
526
+ }
527
+ export declare class CombatantMemory extends LogLineBase {
528
+ change: string;
529
+ id: number;
530
+ data: Map<string, string>;
531
+ constructor(log: string[]);
532
+ }
533
+ export declare class RSVData extends LogLineBase {
534
+ locale: string;
535
+ unknown: number;
536
+ key: string;
537
+ value: string;
538
+ constructor(log: string[]);
539
+ }
540
+ export declare class StartsUsingExtra extends LogLineBase {
541
+ sourceID: number;
542
+ id: number;
543
+ x: number;
544
+ y: number;
545
+ z: number;
546
+ heading: number;
547
+ constructor(log: string[]);
548
+ }
549
+ /**
550
+ * This line contains extra data for Ability/NetworkAOEAbility network data.
551
+ */
552
+ export declare class AbilityExtra extends LogLineBase {
553
+ sourceID: number;
554
+ id: number;
555
+ globalEffectCounter: number;
556
+ dataFlag: number;
557
+ x: number;
558
+ y: number;
559
+ z: number;
560
+ heading: number;
561
+ animationTargetId: number;
562
+ constructor(log: string[]);
563
+ }
564
+ export declare class ContentFinderSettings extends LogLineBase {
565
+ zoneID: number;
566
+ zoneName: string;
567
+ inContentFinderContent: boolean;
568
+ unrestrictedParty: boolean;
569
+ minimalItemLevel: boolean;
570
+ silenceEcho: boolean;
571
+ explorerMode: boolean;
572
+ levelSync: boolean;
573
+ constructor(log: string[]);
574
+ }
575
+ export declare class NpcYell extends LogLineBase {
576
+ npcId: number;
577
+ npcNameId: number;
578
+ npcYellId: number;
579
+ constructor(log: string[]);
580
+ }
581
+ export declare class BattleTalk2 extends LogLineBase {
582
+ npcId: number;
583
+ instance: number;
584
+ npcNameId: number;
585
+ instanceContentTextId: number;
586
+ displayMs: number;
587
+ constructor(log: string[]);
588
+ }
589
+ export declare class Countdown extends LogLineBase {
590
+ id: number;
591
+ worldID: number;
592
+ countdownTime: number;
593
+ result: number;
594
+ name: string;
595
+ constructor(log: string[]);
596
+ }
597
+ export declare class CountdownCancel extends LogLineBase {
598
+ id: number;
599
+ worldID: number;
600
+ name: string;
601
+ constructor(log: string[]);
602
+ }
603
+ export declare class ActorMove extends LogLineBase {
604
+ id: number;
605
+ heading: number;
606
+ unk1: number;
607
+ unk2: number;
608
+ x: number;
609
+ y: number;
610
+ z: number;
611
+ constructor(log: string[]);
612
+ }
613
+ export declare class ActorSetPos extends LogLineBase {
614
+ id: number;
615
+ heading: number;
616
+ unk1: number;
617
+ unk2: number;
618
+ x: number;
619
+ y: number;
620
+ z: number;
621
+ constructor(log: string[]);
622
+ }
623
+ export declare class SpawnNpcExtra extends LogLineBase {
624
+ id: number;
625
+ parentID: number;
626
+ tetherID: number;
627
+ animationState: number;
628
+ constructor(log: string[]);
629
+ }
630
+ export declare class ActorControlExtra extends LogLineBase {
631
+ id: number;
632
+ category: number;
633
+ param1: number;
634
+ param2: number;
635
+ param3: number;
636
+ param4: number;
637
+ constructor(log: string[]);
638
+ }
639
+ export declare class ActorControlSelfExtra extends LogLineBase {
640
+ id: number;
641
+ category: number;
642
+ param1: number;
643
+ param2: number;
644
+ param3: number;
645
+ param4: number;
646
+ param5: number;
647
+ param6: number;
648
+ constructor(log: string[]);
649
+ }
650
+ export declare class UnknownLogLine extends LogLineBase {
651
+ rawLines: string[];
652
+ constructor(log: string[]);
653
+ }
654
+ export declare function ParseLogLine(log: string[]): LogLineEntry;
package/dist/hid.d.ts ADDED
@@ -0,0 +1,46 @@
1
+ export interface OverlayHID extends EventTarget {
2
+ onconnect: ((this: this, ev: OverlayHIDConnectionEvent) => any) | null;
3
+ ondisconnect: ((this: this, ev: OverlayHIDConnectionEvent) => any) | null;
4
+ getDevices(): Promise<OverlayHIDDevice[]>;
5
+ requestDevice(options?: HIDDeviceRequestOptions): Promise<OverlayHIDDevice[]>;
6
+ addEventListener(type: "connect" | "disconnect", listener: (this: this, ev: OverlayHIDConnectionEvent) => any, useCapture?: boolean): void;
7
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions): void;
8
+ removeEventListener(type: "connect" | "disconnect", callback: (this: this, ev: OverlayHIDConnectionEvent) => any, useCapture?: boolean): void;
9
+ removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;
10
+ }
11
+ export declare function NewHID(): OverlayHID;
12
+ interface HIDDeviceInfo {
13
+ readonly vendorId: number;
14
+ readonly productId: number;
15
+ readonly productName: string;
16
+ readonly collections: HIDCollectionInfo[];
17
+ }
18
+ export interface OverlayHIDDevice extends HIDDeviceInfo, EventTarget {
19
+ oninputreport: ((this: OverlayHIDDevice, ev: OverlayHIDInputReportEvent) => any) | null;
20
+ opened: boolean;
21
+ open(): Promise<void>;
22
+ close(): Promise<void>;
23
+ forget(): Promise<void>;
24
+ sendReport(reportId: number, data: BufferSource): Promise<void>;
25
+ sendFeatureReport(reportId: number, data: BufferSource): Promise<void>;
26
+ receiveFeatureReport(reportId: number): Promise<DataView>;
27
+ addEventListener(type: "inputreport", listener: (this: OverlayHIDDevice, ev: OverlayHIDInputReportEvent) => any): void;
28
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions): void;
29
+ removeEventListener(type: "inputreport", callback: (this: OverlayHIDDevice, ev: OverlayHIDInputReportEvent) => any): void;
30
+ removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;
31
+ }
32
+ export interface OverlayHIDConnectionEvent extends Event {
33
+ readonly device: OverlayHIDDevice;
34
+ }
35
+ export interface OverlayHIDInputEvent extends Event {
36
+ readonly device: OverlayHIDDevice;
37
+ readonly reportId: number;
38
+ readonly data: DataView;
39
+ }
40
+ declare class OverlayHIDInputReportEvent extends Event implements OverlayHIDInputEvent {
41
+ readonly device: OverlayHIDDevice;
42
+ readonly reportId: number;
43
+ readonly data: DataView;
44
+ constructor(type: string, device: OverlayHIDDevice, reportId: number, data: DataView);
45
+ }
46
+ export {};
@@ -0,0 +1,9 @@
1
+ export type TypedEventTarget<EventMap extends object> = {
2
+ new (): IntermediateEventTarget<EventMap>;
3
+ };
4
+ export interface IntermediateEventTarget<EventMap> extends EventTarget {
5
+ addEventListener<K extends keyof EventMap>(type: K, callback: (event: EventMap[K] extends Event ? EventMap[K] : never) => EventMap[K] extends Event ? void : never, options?: boolean | AddEventListenerOptions): void;
6
+ addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;
7
+ removeEventListener<K extends keyof EventMap>(type: K, callback: (event: EventMap[K] extends Event ? EventMap[K] : never) => EventMap[K] extends Event ? void : never, options?: boolean | AddEventListenerOptions): void;
8
+ removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;
9
+ }