• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/// <reference types="node" />
2
3// See https://github.com/nodejs/undici/issues/1740
4
5export type DOMException = typeof globalThis extends { DOMException: infer T }
6 ? T
7 : any
8
9export type EventTarget = typeof globalThis extends { EventTarget: infer T }
10  ? T
11  : {
12    addEventListener(
13      type: string,
14      listener: any,
15      options?: any,
16    ): void
17    dispatchEvent(event: Event): boolean
18    removeEventListener(
19      type: string,
20      listener: any,
21      options?: any | boolean,
22    ): void
23  }
24
25export type Event = typeof globalThis extends { Event: infer T }
26  ? T
27  : {
28    readonly bubbles: boolean
29    cancelBubble: () => void
30    readonly cancelable: boolean
31    readonly composed: boolean
32    composedPath(): [EventTarget?]
33    readonly currentTarget: EventTarget | null
34    readonly defaultPrevented: boolean
35    readonly eventPhase: 0 | 2
36    readonly isTrusted: boolean
37    preventDefault(): void
38    returnValue: boolean
39    readonly srcElement: EventTarget | null
40    stopImmediatePropagation(): void
41    stopPropagation(): void
42    readonly target: EventTarget | null
43    readonly timeStamp: number
44    readonly type: string
45  }
46
47export interface EventInit {
48  bubbles?: boolean
49  cancelable?: boolean
50  composed?: boolean
51}
52
53export interface EventListenerOptions {
54  capture?: boolean
55}
56
57export interface AddEventListenerOptions extends EventListenerOptions {
58  once?: boolean
59  passive?: boolean
60  signal?: AbortSignal
61}
62
63export type EventListenerOrEventListenerObject = EventListener | EventListenerObject
64
65export interface EventListenerObject {
66  handleEvent (object: Event): void
67}
68
69export interface EventListener {
70  (evt: Event): void
71}
72