UNPKG

4.99 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}
65
66declare class ChromeHid {
67 getDevices: (options: ChromeHidGetDevicesOptions,
68 callback: (i: Array<ChromeHidDeviceInfo>) => void) => void;
69
70 send: (connectionId: number, reportId: number, data: ArrayBuffer, callback: () => void) => void;
71
72 receive: (connectionId: number, callback: (reportId: number, data: ArrayBuffer) => void) => void;
73
74 connect: (deviceId: number, callback: (connection: {connectionId: number}) => void) => void;
75
76 disconnect: (connectionId: number, callback: () => void) => void;
77}
78
79declare class ChromePlatformInfo {
80 os: string;
81 arch: string;
82 nacl_arch: string;
83}
84
85declare class ChromeRuntime {
86 lastError: string;
87 getPlatformInfo(callback: (platformInfo: ChromePlatformInfo) => void): void,
88 onMessageExternal: ChromeOnMessage;
89 onMessage: ChromeOnMessage;
90 getManifest(): Object;
91 id: string;
92
93 sendMessage(
94 message: any,
95 options?: {includeTlsChannelId?: boolean},
96 callback?: (response?: any) => void
97 ): void;
98 sendMessage(
99 extensionId: string,
100 message: any,
101 options?: {includeTlsChannelId?: boolean},
102 callback?: (response?: any) => void
103 ): void;
104
105}
106
107declare type ChromeStorageItems = { [key:string]: any}
108declare type ChromeCallback = () => void;
109
110declare class ChromeStorageArea {
111 getBytesInUse(callback: (bytesInUse: number) => void): void;
112 getBytesInUse(keys: string, callback: (bytesInUse: number) => void): void;
113 getBytesInUse(keys: string[], callback: (bytesInUse: number) => void): void;
114 clear(callback?: ChromeCallback): void;
115 set(items: ChromeStorageItems, callback?: ChromeCallback): void;
116 remove(keys: string, callback?: ChromeCallback): void;
117 remove(keys: string[], callback?: ChromeCallback): void;
118 get(callback: (items: ChromeStorageItems) => void): void;
119 get(keys: string, callback: (items: ChromeStorageItems) => void): void;
120 get(keys: string[], callback: (items: ChromeStorageItems) => void): void;
121
122 QUOTA_BYTES: number
123}
124
125declare class ChromeStorage {
126 local: ChromeStorageArea;
127}
128
129declare class ChromeMessageSender {
130 tabs: ?any;
131 frameId: ?number;
132 id: ?string;
133 url: ?string;
134 tlsChanelId: ?string;
135}
136
137declare class ChromeOnMessage {
138 addListener: (
139 callback: (
140 message: Object, sender:ChromeMessageSender, sendResponse: (
141 response: Object
142 ) => void
143 ) => boolean
144 ) => void;
145}
146
147declare class ChromeApp {
148 runtime: ChromeAppRuntime;
149 window: ChromeAppWindow;
150}
151
152declare class ChromeAppRuntime {
153 onLaunched: ChromeAppOnLaunched;
154}
155
156declare class ChromeAppOnLaunched {
157 addListener: (
158 callback: () => void //callback can have more parameters but I am not using them
159 ) => void;
160}
161
162declare class ChromeBrowser {
163 // according to specification, callback is optional, but in reality it's mandatory (as of now)
164 openTab: (options: {url: string}, callback: () => void) => void
165}
166
167declare type ChromeBoundsSpecification = {
168 left? : number,
169 top? : number,
170 width? : number,
171 height? : number,
172 minWidth?: number,
173 minHeight?: number,
174 maxWidth?: number,
175 maxHeight?: number
176}
177
178declare class ChromeAppWindowOnClosed {
179 addListener: ( callback: () => void ) => void
180}
181
182declare class ChromeAppWindow {
183 create: (url: string, options: {innerBounds: ChromeBoundsSpecification}, callback: (createdWindow: ChromeAppWindow) => void) => void;
184 onClosed: ChromeAppWindowOnClosed;
185}
186
187declare var chrome: Chrome;