forked from DefinitelyTyped/DefinitelyTyped
-
Notifications
You must be signed in to change notification settings - Fork 0
/
notifyjs.d.ts
112 lines (97 loc) · 3.15 KB
/
notifyjs.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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
// Type definitions for notify.js 1.2.3
// Project: https://github.com/alexgibson/notify.js
// Definitions by: soundTricker <https://github.com/soundTricker>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare var Notify: {
new (title : string , options? : notifyjs.INotifyOption): notifyjs.INotify;
/**
* Check is permission is needed for the user to receive notifications.
* @return true : needs permission, false : does not need
*/
needsPermission : boolean;
/**
* Asks the user for permission to display notifications
* @param onPermissionGrantedCallback A callback for permission is granted.
* @param onPermissionDeniedCallback A callback for permission is denied.
*/
requestPermission(onPermissionGrantedCallback?: ()=> any, onPermissionDeniedCallback? : ()=> any) : void;
/**
* return true if the browser supports HTML5 Notification
* @param true : the browser supports HTML5 Notification, false ; the browser does not supports HTML5 Notification.
*/
isSupported: boolean;
/**
* shows the user's current permission level (granted, denied or default), returns null if notifications are not supported.
* @return 'granted' : permission has been given, 'denied' : permission has been denied, 'default' : permission has not yet been set, null : notifications are not supported
*/
permissionLevel: string;
}
declare module notifyjs {
/**
* Interface for Web Notifications API Wrapper.
*/
interface INotify {
/**
* Show the notification.
*/
show() : void;
/**
* Remove all event listener.
*/
destroy() : void;
/**
* Close the notification.
*/
close() : void;
onShowNotification(e : Event) : void;
onCloseNotification() : void;
onClickNotification() : void;
onErrorNotification() : void;
handleEvent(e : Event) : void;
}
/**
* Interface for the Notify's optional parameter.
*/
interface INotifyOption {
/**
* notification message body
*/
body? : string;
/**
* path for icon to display in notification
*/
icon? : string;
/**
* unique identifier to stop duplicate notifications
*/
tag? : string;
/**
* number of seconds to close the notification automatically
*/
timeout? : number;
/**
* callback when notification is shown
*/
notifyShow? (e : Event): any;
/**
* callback when notification is closed
*/
notifyClose? : Function;
/**
* callback when notification is clicked
*/
notifyClick? : Function;
/**
* callback when notification throws an error
*/
notifyError? : Function;
/**
* callback when user has granted permission
*/
permissionGranted? : Function;
/**
* callback when user has denied permission
*/
permissionDenied? : Function;
}
}