-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.d.ts
75 lines (59 loc) · 2.14 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
interface BaseMonetizationEventDetail {
paymentPointer: string
requestId: string
}
export interface MonetizationPendingEvent extends CustomEvent<BaseMonetizationEventDetail> {
type: 'monetizationpending'
}
export interface MonetizationStartEvent extends CustomEvent<BaseMonetizationEventDetail> {
type: 'monetizationstart'
}
interface MonetizationStopEventDetail extends BaseMonetizationEventDetail {
finalized: boolean
}
export interface MonetizationStopEvent extends CustomEvent<MonetizationStopEventDetail> {
type: 'monetizationstop'
}
interface MonetizationProgressEventDetail extends BaseMonetizationEventDetail {
amount: string
assetCode: string
assetScale: number
receipt?: string
}
export interface MonetizationProgressEvent extends CustomEvent<MonetizationProgressEventDetail> {
type: 'monetizationprogress'
}
export interface MonetizationEventMap {
monetizationpending: MonetizationPendingEvent
monetizationstart: MonetizationStartEvent
monetizationstop: MonetizationStopEvent
monetizationprogress: MonetizationProgressEvent
}
export type MonetizationEvent = MonetizationEventMap[keyof MonetizationEventMap]
export type MonetizationState = 'stopped' | 'pending' | 'started'
type EventListener<T, E extends Event = Event> = (this: T, evt: E) => any
interface EventListenerObject<T, E extends Event = Event> {
handleEvent(this: T, evt: E): void
}
type EventListenerOrListenerObject<T, E extends Event = Event> =
| EventListener<T, E>
| EventListenerObject<T, E>
// Note: The Coil extension uses a <div> instead of an EventTarget
export interface Monetization extends EventTarget {
state: MonetizationState
addEventListener<K extends keyof MonetizationEventMap>(
type: K,
listener: EventListenerOrListenerObject<Monetization, MonetizationEventMap[K]> | null,
options?: boolean | AddEventListenerOptions
): void
removeEventListener<K extends keyof MonetizationEventMap>(
type: K,
listener: EventListenerOrListenerObject<Monetization, MonetizationEventMap[K]> | null,
options?: boolean | EventListenerOptions
): void
}
declare global {
interface Document {
monetization?: Monetization
}
}