UNPKG

5.11 kBJavaScriptView Raw
1declare class Chrome {
2 hid: ChromeHid;
3 runtime: ChromeRuntime;
4 storage: ChromeStorage;
5 app: ChromeApp;
6 browser: ChromeBrowser;
7 sockets: ChromeSockets;
8}
9
10declare class ChromeSockets {
11 udp: ChromeUdp;
12}
13
14declare type ChromeUdpProperties = {
15 persistent?: boolean;
16 name?: string;
17 bufferSize?: number;
18}
19
20declare type ChromeUdpCreateInfo = {
21 socketId: number;
22}
23
24declare type ChromeUdpSendInfo = {
25 resultCode: number;
26 bytesSent?: number;
27}
28
29declare class ChromeOnReceive {
30 addListener: (callback: (info: ChromeUdpReceiveInfo) => void) => void;
31}
32
33declare type ChromeUdpReceiveInfo = {
34 socketId: number;
35 data: ArrayBuffer;
36 remoteAddress: string;
37 remotePort: number;
38}
39
40declare class ChromeUdp {
41 create: (properties: ChromeUdpProperties, callback: (info: ChromeUdpCreateInfo) => void) => void;
42 close: (socketId: number, callback: () => void) => void;
43 bind: (socketId: number, address: string, port: number, callback: (result: number) => void) => void;
44 send: (socketId: number, data: ArrayBuffer, address: string, port: number,
45 callback: (info: ChromeUdpSendInfo) => void
46 ) => void;
47 onReceive: ChromeOnReceive;
48}
49
50declare class ChromeHidDeviceInfo {
51 deviceId: number;
52 vendorId: number;
53 productId: number;
54 collections: Array<{usagePage: number, usage: number, reportIds:Array<number>}>;
55 maxInputReportSize: number;
56 maxOutputReportSize: number;
57 maxFeatureReportSize: number;
58 reportDescriptor: ArrayBuffer;
59}
60
61declare type ChromeHidGetDevicesOptions = {
62 vendorId? : number;
63 productId? : number;
64 filters?: Array<{
65 vendorId? : number;
66 productId? : number;
67 usagePage? : number;
68 usage? : number;
69 }>
70}
71
72declare class ChromeHid {
73 getDevices: (options: ChromeHidGetDevicesOptions,
74 callback: (i: Array<ChromeHidDeviceInfo>) => void) => void;
75
76 send: (connectionId: number, reportId: number, data: ArrayBuffer, callback: () => void) => void;
77
78 receive: (connectionId: number, callback: (reportId: number, data: ArrayBuffer) => void) => void;
79
80 connect: (deviceId: number, callback: (connection: {connectionId: number}) => void) => void;
81
82 disconnect: (connectionId: number, callback: () => void) => void;
83}
84
85declare class ChromePlatformInfo {
86 os: string;
87 arch: string;
88 nacl_arch: string;
89}
90
91declare class ChromeRuntime {
92 lastError: string;
93 getPlatformInfo(callback: (platformInfo: ChromePlatformInfo) => void): void,
94 onMessageExternal: ChromeOnMessage;
95 onMessage: ChromeOnMessage;
96 getManifest(): Object;
97 id: string;
98
99 sendMessage(
100 message: any,
101 options?: {includeTlsChannelId?: boolean},
102 callback?: (response?: any) => void
103 ): void;
104 sendMessage(
105 extensionId: string,
106 message: any,
107 options?: {includeTlsChannelId?: boolean},
108 callback?: (response?: any) => void
109 ): void;
110
111}
112
113declare type ChromeStorageItems = { [key:string]: any}
114declare type ChromeCallback = () => void;
115
116declare class ChromeStorageArea {
117 getBytesInUse(callback: (bytesInUse: number) => void): void;
118 getBytesInUse(keys: string, callback: (bytesInUse: number) => void): void;
119 getBytesInUse(keys: string[], callback: (bytesInUse: number) => void): void;
120 clear(callback?: ChromeCallback): void;
121 set(items: ChromeStorageItems, callback?: ChromeCallback): void;
122 remove(keys: string, callback?: ChromeCallback): void;
123 remove(keys: string[], callback?: ChromeCallback): void;
124 get(callback: (items: ChromeStorageItems) => void): void;
125 get(keys: string, callback: (items: ChromeStorageItems) => void): void;
126 get(keys: string[], callback: (items: ChromeStorageItems) => void): void;
127
128 QUOTA_BYTES: number
129}
130
131declare class ChromeStorage {
132 local: ChromeStorageArea;
133}
134
135declare class ChromeMessageSender {
136 tabs: ?any;
137 frameId: ?number;
138 id: ?string;
139 url: ?string;
140 tlsChanelId: ?string;
141}
142
143declare class ChromeOnMessage {
144 addListener: (
145 callback: (
146 message: Object, sender:ChromeMessageSender, sendResponse: (
147 response: Object
148 ) => void
149 ) => boolean
150 ) => void;
151}
152
153declare class ChromeApp {
154 runtime: ChromeAppRuntime;
155 window: ChromeAppWindow;
156}
157
158declare class ChromeAppRuntime {
159 onLaunched: ChromeAppOnLaunched;
160}
161
162declare class ChromeAppOnLaunched {
163 addListener: (
164 callback: () => void //callback can have more parameters but I am not using them
165 ) => void;
166}
167
168declare class ChromeBrowser {
169 // according to specification, callback is optional, but in reality it's mandatory (as of now)
170 openTab: (options: {url: string}, callback: () => void) => void
171}
172
173declare type ChromeBoundsSpecification = {
174 left? : number,
175 top? : number,
176 width? : number,
177 height? : number,
178 minWidth?: number,
179 minHeight?: number,
180 maxWidth?: number,
181 maxHeight?: number
182}
183
184declare class ChromeAppWindowOnClosed {
185 addListener: ( callback: () => void ) => void
186}
187
188declare class ChromeAppWindow {
189 create: (url: string, options: {innerBounds: ChromeBoundsSpecification}, callback: (createdWindow: ChromeAppWindow) => void) => void;
190 onClosed: ChromeAppWindowOnClosed;
191}
192
193declare var chrome: Chrome;