google-closure-compiler 20250412.0.0-nightly → 20250413.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/README.md +5 -30
  2. package/cli.js +3 -4
  3. package/externs/browser/decorators.js +276 -0
  4. package/externs/browser/deprecated.js +58 -0
  5. package/externs/browser/es6_proxy.js +143 -0
  6. package/externs/browser/fetchapi.js +449 -0
  7. package/externs/browser/fido.js +94 -0
  8. package/externs/browser/flash.js +226 -0
  9. package/externs/browser/gecko_css.js +126 -0
  10. package/externs/browser/gecko_dom.js +479 -0
  11. package/externs/browser/gecko_event.js +86 -0
  12. package/externs/browser/gecko_xml.js +73 -0
  13. package/externs/browser/google_legacy.js +31 -0
  14. package/externs/browser/html5.js +6647 -0
  15. package/externs/browser/ie_css.js +270 -0
  16. package/externs/browser/ie_dom.js +1232 -0
  17. package/externs/browser/ie_event.js +310 -0
  18. package/externs/browser/ie_vml.js +77 -0
  19. package/externs/browser/intersection_observer.js +178 -0
  20. package/externs/browser/intl.js +602 -0
  21. package/externs/browser/iphone.js +204 -0
  22. package/externs/browser/mediakeys.js +305 -0
  23. package/externs/browser/mediasource.js +155 -0
  24. package/externs/browser/nonstandard_anim_timing.js +97 -0
  25. package/externs/browser/nonstandard_audio.js +82 -0
  26. package/externs/browser/nonstandard_console.js +75 -0
  27. package/externs/browser/nonstandard_fileapi.js +1066 -0
  28. package/externs/browser/nonstandard_indexeddb.js +78 -0
  29. package/externs/browser/nonstandard_navigation_timing.js +38 -0
  30. package/externs/browser/nonstandard_selection.js +80 -0
  31. package/externs/browser/page_visibility.js +28 -0
  32. package/externs/browser/streamsapi.js +593 -0
  33. package/externs/browser/svg.js +10016 -0
  34. package/externs/browser/url.js +202 -0
  35. package/externs/browser/v8.js +134 -0
  36. package/externs/browser/w3c_abort.js +89 -0
  37. package/externs/browser/w3c_anim_timing.js +49 -0
  38. package/externs/browser/w3c_aria_mixin.js +286 -0
  39. package/externs/browser/w3c_audio.js +1660 -0
  40. package/externs/browser/w3c_batterystatus.js +85 -0
  41. package/externs/browser/w3c_clipboard.js +74 -0
  42. package/externs/browser/w3c_clipboardevent.js +47 -0
  43. package/externs/browser/w3c_composition_event.js +93 -0
  44. package/externs/browser/w3c_css.js +3790 -0
  45. package/externs/browser/w3c_css3d.js +199 -0
  46. package/externs/browser/w3c_device_sensor_event.js +122 -0
  47. package/externs/browser/w3c_dom1.js +1160 -0
  48. package/externs/browser/w3c_dom2.js +3151 -0
  49. package/externs/browser/w3c_dom3.js +555 -0
  50. package/externs/browser/w3c_dom4.js +289 -0
  51. package/externs/browser/w3c_elementtraversal.js +116 -0
  52. package/externs/browser/w3c_event.js +607 -0
  53. package/externs/browser/w3c_event3.js +77 -0
  54. package/externs/browser/w3c_eventsource.js +110 -0
  55. package/externs/browser/w3c_fileapi.js +302 -0
  56. package/externs/browser/w3c_gamepad.js +113 -0
  57. package/externs/browser/w3c_geolocation.js +130 -0
  58. package/externs/browser/w3c_geometry1.js +899 -0
  59. package/externs/browser/w3c_indexeddb.js +771 -0
  60. package/externs/browser/w3c_keyboardlock.js +47 -0
  61. package/externs/browser/w3c_mediacapabilities.js +206 -0
  62. package/externs/browser/w3c_midi.js +301 -0
  63. package/externs/browser/w3c_navigation.js +72 -0
  64. package/externs/browser/w3c_navigation_timing.js +437 -0
  65. package/externs/browser/w3c_netinfo.js +85 -0
  66. package/externs/browser/w3c_payment_request.js +401 -0
  67. package/externs/browser/w3c_permissions.js +112 -0
  68. package/externs/browser/w3c_permissions_policy.js +78 -0
  69. package/externs/browser/w3c_pointer_events.js +163 -0
  70. package/externs/browser/w3c_pointerlock.js +63 -0
  71. package/externs/browser/w3c_range.js +284 -0
  72. package/externs/browser/w3c_referrer_policy.js +36 -0
  73. package/externs/browser/w3c_requestidlecallback.js +76 -0
  74. package/externs/browser/w3c_rtc.js +3882 -0
  75. package/externs/browser/w3c_screen_orientation.js +53 -0
  76. package/externs/browser/w3c_screen_wake_lock.js +58 -0
  77. package/externs/browser/w3c_selection.js +209 -0
  78. package/externs/browser/w3c_selectors.js +113 -0
  79. package/externs/browser/w3c_serviceworker.js +739 -0
  80. package/externs/browser/w3c_speech.js +426 -0
  81. package/externs/browser/w3c_touch_event.js +296 -0
  82. package/externs/browser/w3c_trusted_types.js +142 -0
  83. package/externs/browser/w3c_vibration.js +38 -0
  84. package/externs/browser/w3c_webcodecs.js +1473 -0
  85. package/externs/browser/w3c_webcrypto.js +839 -0
  86. package/externs/browser/w3c_worklets.js +54 -0
  87. package/externs/browser/w3c_xml.js +533 -0
  88. package/externs/browser/web_animations.js +452 -0
  89. package/externs/browser/web_app_manifest.js +50 -0
  90. package/externs/browser/webassembly.js +223 -0
  91. package/externs/browser/webgl.js +3409 -0
  92. package/externs/browser/webgl2.js +2727 -0
  93. package/externs/browser/webgl2_compute.js +1609 -0
  94. package/externs/browser/webkit_css.js +456 -0
  95. package/externs/browser/webkit_dom.js +118 -0
  96. package/externs/browser/webkit_event.js +46 -0
  97. package/externs/browser/webkit_notifications.js +258 -0
  98. package/externs/browser/webkit_usercontent.js +55 -0
  99. package/externs/browser/weblocksapi.js +125 -0
  100. package/externs/browser/webstorage.js +171 -0
  101. package/externs/browser/whatwg_bitmap_context.js +37 -0
  102. package/externs/browser/whatwg_console.js +152 -0
  103. package/externs/browser/whatwg_encoding.js +99 -0
  104. package/externs/browser/whatwg_file_system.js +296 -0
  105. package/externs/browser/wicg_attribution_reporting.js +42 -0
  106. package/externs/browser/wicg_compression_stream.js +60 -0
  107. package/externs/browser/wicg_constructable_stylesheets.js +60 -0
  108. package/externs/browser/wicg_entries.js +169 -0
  109. package/externs/browser/wicg_file_handling.js +41 -0
  110. package/externs/browser/wicg_file_system_access.js +191 -0
  111. package/externs/browser/wicg_floc.js +41 -0
  112. package/externs/browser/wicg_ink.js +89 -0
  113. package/externs/browser/wicg_resizeobserver.js +100 -0
  114. package/externs/browser/wicg_scheduler.js +62 -0
  115. package/externs/browser/wicg_trust_token.js +89 -0
  116. package/externs/browser/wicg_uach.js +100 -0
  117. package/externs/browser/window.js +190 -0
  118. package/externs/es3.js +2716 -0
  119. package/externs/es5.js +284 -0
  120. package/externs/es6.js +2554 -0
  121. package/externs/es6_collections.js +323 -0
  122. package/index.js +13 -16
  123. package/lib/grunt/index.js +71 -92
  124. package/lib/grunt/vinyl-stream.js +12 -18
  125. package/lib/gulp/concat-to-json.js +30 -18
  126. package/lib/gulp/index.js +174 -181
  127. package/lib/gulp/json-to-vinyl.js +8 -8
  128. package/lib/node/{closure-compiler.js → index.js} +27 -51
  129. package/lib/utils.js +16 -14
  130. package/package.json +19 -16
  131. package/lib/logger.js +0 -89
@@ -0,0 +1,1660 @@
1
+ /*
2
+ * Copyright 2012 The Closure Compiler Authors.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /**
18
+ * @fileoverview Definitions for the API related to audio.
19
+ * Definitions for the Web Audio API.
20
+ * This file is based on the W3C Working Draft 08 December 2015.
21
+ * @see http://www.w3.org/TR/webaudio/
22
+ *
23
+ * @externs
24
+ */
25
+
26
+ /**
27
+ * @implements {EventTarget}
28
+ * @constructor
29
+ */
30
+ function BaseAudioContext() {}
31
+
32
+ /** @type {!AudioDestinationNode} */
33
+ BaseAudioContext.prototype.destination;
34
+
35
+ /** @type {number} */
36
+ BaseAudioContext.prototype.sampleRate;
37
+
38
+ /** @type {number} */
39
+ BaseAudioContext.prototype.currentTime;
40
+
41
+ /** @type {!AudioListener} */
42
+ BaseAudioContext.prototype.listener;
43
+
44
+ /** @type {!AudioWorklet} */
45
+ BaseAudioContext.prototype.audioWorklet;
46
+
47
+ /**
48
+ * @type {string}
49
+ * See https://www.w3.org/TR/webaudio/#BaseAudioContext for valid values
50
+ */
51
+ BaseAudioContext.prototype.state;
52
+
53
+ /**
54
+ * @param {number} numberOfChannels
55
+ * @param {number} length
56
+ * @param {number} sampleRate
57
+ * @return {!AudioBuffer}
58
+ */
59
+ BaseAudioContext.prototype.createBuffer = function(
60
+ numberOfChannels, length, sampleRate) {};
61
+
62
+ /**
63
+ * @param {!ArrayBuffer} audioData
64
+ * @param {function(!AudioBuffer)=} successCallback
65
+ * @param {function(?)=} errorCallback
66
+ * @return {!Promise<!AudioBuffer>}
67
+ */
68
+ BaseAudioContext.prototype.decodeAudioData = function(
69
+ audioData, successCallback, errorCallback) {};
70
+
71
+ /**
72
+ * @return {!AudioBufferSourceNode}
73
+ */
74
+ BaseAudioContext.prototype.createBufferSource = function() {};
75
+
76
+ /**
77
+ * @deprecated Use createAudioWorker instead
78
+ * @param {number=} bufferSize
79
+ * @param {number=} numberOfInputChannels_opt
80
+ * @param {number=} numberOfOutputChannels_opt
81
+ * @return {!ScriptProcessorNode}
82
+ */
83
+ BaseAudioContext.prototype.createScriptProcessor = function(
84
+ bufferSize, numberOfInputChannels_opt, numberOfOutputChannels_opt) {};
85
+
86
+ /**
87
+ * @return {!AnalyserNode}
88
+ */
89
+ BaseAudioContext.prototype.createAnalyser = function() {};
90
+
91
+ /**
92
+ * @return {!GainNode}
93
+ */
94
+ BaseAudioContext.prototype.createGain = function() {};
95
+
96
+ /**
97
+ * @param {number=} maxDelayTime
98
+ * @return {!DelayNode}
99
+ */
100
+ BaseAudioContext.prototype.createDelay = function(maxDelayTime) {};
101
+
102
+ /**
103
+ * @return {!BiquadFilterNode}
104
+ */
105
+ BaseAudioContext.prototype.createBiquadFilter = function() {};
106
+
107
+ /**
108
+ * @return {!WaveShaperNode}
109
+ */
110
+ BaseAudioContext.prototype.createWaveShaper = function() {};
111
+
112
+ /**
113
+ * @return {!PannerNode}
114
+ */
115
+ BaseAudioContext.prototype.createPanner = function() {};
116
+
117
+ /**
118
+ * @return {!StereoPannerNode}
119
+ */
120
+ BaseAudioContext.prototype.createStereoPanner = function() {};
121
+
122
+ /**
123
+ * @return {!ConvolverNode}
124
+ */
125
+ BaseAudioContext.prototype.createConvolver = function() {};
126
+
127
+ /**
128
+ * @param {number=} numberOfOutputs
129
+ * @return {!ChannelSplitterNode}
130
+ */
131
+ BaseAudioContext.prototype.createChannelSplitter = function(numberOfOutputs) {};
132
+
133
+ /**
134
+ * @param {number=} numberOfInputs
135
+ * @return {!ChannelMergerNode}
136
+ */
137
+ BaseAudioContext.prototype.createChannelMerger = function(numberOfInputs) {};
138
+
139
+ /**
140
+ * @return {!ConstantSourceNode}
141
+ */
142
+ BaseAudioContext.prototype.createConstantSource = function() {};
143
+
144
+ /**
145
+ * @return {!DynamicsCompressorNode}
146
+ */
147
+ BaseAudioContext.prototype.createDynamicsCompressor = function() {};
148
+
149
+ /**
150
+ * @return {!OscillatorNode}
151
+ */
152
+ BaseAudioContext.prototype.createOscillator = function() {};
153
+
154
+ /**
155
+ * @param {!Float32Array} real
156
+ * @param {!Float32Array} imag
157
+ * @return {!PeriodicWave}
158
+ */
159
+ BaseAudioContext.prototype.createPeriodicWave = function(real, imag) {};
160
+
161
+ /**
162
+ * @return {!Promise<void>}
163
+ */
164
+ BaseAudioContext.prototype.resume = function() {};
165
+
166
+ /**
167
+ * @return {!Promise<void>}
168
+ */
169
+ BaseAudioContext.prototype.suspend = function() {};
170
+
171
+ /**
172
+ * @return {!Promise<void>}
173
+ */
174
+ BaseAudioContext.prototype.close = function() {};
175
+
176
+ /** @type {?function(!Event)} */
177
+ BaseAudioContext.prototype.onstatechange;
178
+
179
+ /**
180
+ * @param {string} scriptURL
181
+ * @return {!Promise<!AudioWorker>}
182
+ */
183
+ BaseAudioContext.prototype.createAudioWorker = function(scriptURL) {};
184
+
185
+ /**
186
+ * @param {!IArrayLike<number>} feedforward
187
+ * @param {!IArrayLike<number>} feedback
188
+ * @return {!IIRFilterNode}
189
+ */
190
+ BaseAudioContext.prototype.createIIRFilter = function(feedforward, feedback) {};
191
+
192
+ /**
193
+ * @return {!SpatialPannerNode}
194
+ */
195
+ BaseAudioContext.prototype.createSpatialPanner = function() {};
196
+
197
+ /**
198
+ * @record
199
+ * @see https://webaudio.github.io/web-audio-api/#idl-def-AudioContextOptions
200
+ */
201
+ function AudioContextOptions() {};
202
+
203
+ /** @type {(undefined|string|number)} */
204
+ AudioContextOptions.prototype.latencyHint;
205
+
206
+ /** @type {(undefined|number)} */
207
+ AudioContextOptions.prototype.sampleRate;
208
+
209
+ /**
210
+ * Includes the non-standard contextOptions optional options parameter
211
+ * implemented by Chrome and Firefox.
212
+ * @param {!AudioContextOptions=} contextOptions
213
+ * @constructor
214
+ * @extends {BaseAudioContext}
215
+ */
216
+ function AudioContext(contextOptions) {}
217
+
218
+ /** @type {number} */
219
+ AudioContext.prototype.baseLatency;
220
+
221
+ /** @type {number} */
222
+ AudioContext.prototype.outputLatency;
223
+
224
+ /**
225
+ * @param {!HTMLMediaElement} mediaElement
226
+ * @return {!MediaElementAudioSourceNode}
227
+ */
228
+ AudioContext.prototype.createMediaElementSource = function(mediaElement) {};
229
+
230
+ /**
231
+ * @return {!MediaStreamAudioDestinationNode}
232
+ */
233
+ AudioContext.prototype.createMediaStreamDestination = function() {};
234
+
235
+ /**
236
+ * @param {!MediaStream} mediaStream
237
+ * @return {!MediaStreamAudioSourceNode}
238
+ */
239
+ AudioContext.prototype.createMediaStreamSource = function(mediaStream) {};
240
+
241
+ /**
242
+ * @deprecated Use createScriptProcessor instead.
243
+ * @param {number} bufferSize
244
+ * @param {number} numberOfInputs
245
+ * @param {number} numberOfOuputs
246
+ * @return {!ScriptProcessorNode}
247
+ */
248
+ AudioContext.prototype.createJavaScriptNode = function(
249
+ bufferSize, numberOfInputs, numberOfOuputs) {};
250
+
251
+ /**
252
+ * @deprecated Use createGain instead.
253
+ * @return {!GainNode}
254
+ */
255
+ AudioContext.prototype.createGainNode = function() {};
256
+
257
+ /**
258
+ * @deprecated Use createDelay instead.
259
+ * @param {number=} maxDelayTime
260
+ * @return {!DelayNode}
261
+ */
262
+ AudioContext.prototype.createDelayNode = function(maxDelayTime) {};
263
+
264
+ /**
265
+ * @param {number} numberOfChannels
266
+ * @param {number} length
267
+ * @param {number} sampleRate
268
+ * @constructor
269
+ * @extends {BaseAudioContext}
270
+ */
271
+ function OfflineAudioContext(numberOfChannels, length, sampleRate) {}
272
+
273
+ /**
274
+ * @return {!Promise<!AudioBuffer>}
275
+ */
276
+ OfflineAudioContext.prototype.startRendering = function() {};
277
+
278
+ /** @type {function(!OfflineAudioCompletionEvent)} */
279
+ OfflineAudioContext.prototype.oncomplete;
280
+
281
+ /**
282
+ * @constructor
283
+ * @extends {Event}
284
+ */
285
+ function OfflineAudioCompletionEvent() {}
286
+
287
+ /** @type {AudioBuffer} */
288
+ OfflineAudioCompletionEvent.prototype.renderedBuffer;
289
+
290
+ /**
291
+ * @constructor
292
+ * @implements {EventTarget}
293
+ * @see https://www.w3.org/TR/webaudio/#the-audionode-interface
294
+ */
295
+ function AudioNode() {}
296
+
297
+ /**
298
+ * @override
299
+ */
300
+ AudioNode.prototype.addEventListener = function(
301
+ type, listener, opt_useCapture) {};
302
+
303
+ /**
304
+ * @override
305
+ */
306
+ AudioNode.prototype.removeEventListener = function(
307
+ type, listener, opt_useCapture) {};
308
+
309
+ /**
310
+ * @override
311
+ * @return {boolean}
312
+ */
313
+ AudioNode.prototype.dispatchEvent = function(evt) {};
314
+
315
+ /**
316
+ * @param {!AudioNode|!AudioParam} destination
317
+ * @param {number=} output
318
+ * @param {number=} input
319
+ * @return {AudioNode|void}
320
+ */
321
+ AudioNode.prototype.connect = function(destination, output, input) {};
322
+
323
+ /**
324
+ * @param {!AudioNode|!AudioParam|number=} destination
325
+ * @param {number=} output
326
+ * @param {number=} input
327
+ */
328
+ AudioNode.prototype.disconnect = function(destination, output, input) {};
329
+
330
+ /** @type {!AudioContext} */
331
+ AudioNode.prototype.context;
332
+
333
+ /** @type {number} */
334
+ AudioNode.prototype.numberOfInputs;
335
+
336
+ /** @type {number} */
337
+ AudioNode.prototype.numberOfOutputs;
338
+
339
+ /** @type {number} */
340
+ AudioNode.prototype.channelCount;
341
+
342
+ /**
343
+ * @type {string}
344
+ * See https://www.w3.org/TR/webaudio/#the-audionode-interface for valid values
345
+ */
346
+ AudioNode.prototype.channelCountMode;
347
+
348
+ /**
349
+ * @type {string}
350
+ * See https://www.w3.org/TR/webaudio/#the-audionode-interface for valid values
351
+ */
352
+ AudioNode.prototype.channelInterpretation;
353
+
354
+ /**
355
+ * @constructor
356
+ * @extends {AudioNode}
357
+ */
358
+ function AudioSourceNode() {}
359
+
360
+ /**
361
+ * @constructor
362
+ * @extends {AudioNode}
363
+ */
364
+ function AudioDestinationNode() {}
365
+
366
+ /**
367
+ * @deprecated Use AudioDestinationNode#maxChannelCount
368
+ * @type {number}
369
+ */
370
+ AudioDestinationNode.prototype.numberOfChannels;
371
+
372
+ /** @type {number} */
373
+ AudioDestinationNode.prototype.maxChannelCount;
374
+
375
+ /**
376
+ * @constructor
377
+ */
378
+ function AudioParam() {}
379
+
380
+ /** @type {number} */
381
+ AudioParam.prototype.value;
382
+
383
+ /**
384
+ * @type {string}
385
+ * See https://www.w3.org/TR/webaudio/#dom-audioparam-automationrate for valid
386
+ * values.
387
+ */
388
+ AudioParam.prototype.automationRate;
389
+
390
+ /**
391
+ * @deprecated
392
+ * @type {number}
393
+ */
394
+ AudioParam.prototype.maxValue;
395
+
396
+ /**
397
+ * @deprecated
398
+ * @type {number}
399
+ */
400
+ AudioParam.prototype.minValue;
401
+
402
+ /** @type {number} */
403
+ AudioParam.prototype.defaultValue;
404
+
405
+ /**
406
+ * @deprecated
407
+ * @type {number}
408
+ */
409
+ AudioParam.prototype.units;
410
+
411
+ /**
412
+ * @param {number} value
413
+ * @param {number} startTime
414
+ * @return {!AudioParam}
415
+ * @throws {!TypeError} if startTime is negative or not a finite number
416
+ */
417
+ AudioParam.prototype.setValueAtTime = function(value, startTime) {};
418
+
419
+ /**
420
+ * @param {number} value
421
+ * @param {number} endTime
422
+ * @return {!AudioParam}
423
+ * @throws {!TypeError} if endTime is negative or not a finite number
424
+ */
425
+ AudioParam.prototype.linearRampToValueAtTime = function(value, endTime) {};
426
+
427
+ /**
428
+ * @param {number} value
429
+ * @param {number} endTime
430
+ * @return {!AudioParam}
431
+ * @throws {!TypeError} if endTime is negative or not a finite number
432
+ */
433
+ AudioParam.prototype.exponentialRampToValueAtTime = function(value, endTime) {};
434
+
435
+ /**
436
+ * @param {number} target
437
+ * @param {number} startTime
438
+ * @param {number} timeConstant
439
+ * @return {!AudioParam}
440
+ * @throws {!TypeError} if startTime is negative or not a finite number, or
441
+ * timeConstant is not strictly positive
442
+ */
443
+ AudioParam.prototype.setTargetAtTime = function(
444
+ target, startTime, timeConstant) {};
445
+
446
+ /**
447
+ * @deprecated Use setTargetAtTime instead.
448
+ * @param {number} target
449
+ * @param {number} startTime
450
+ * @param {number} timeConstant
451
+ * @return {!AudioParam}
452
+ */
453
+ AudioParam.prototype.setTargetValueAtTime = function(
454
+ target, startTime, timeConstant) {};
455
+
456
+ /**
457
+ * @param {!Float32Array} values
458
+ * @param {number} startTime
459
+ * @param {number} duration
460
+ * @return {!AudioParam}
461
+ * @throws {!TypeError} if startTime is negative or not a finite number
462
+ */
463
+ AudioParam.prototype.setValueCurveAtTime = function(
464
+ values, startTime, duration) {};
465
+
466
+ /**
467
+ * @param {number} startTime
468
+ * @return {!AudioParam}
469
+ * @throws {!TypeError} if startTime is negative or not a finite number
470
+ */
471
+ AudioParam.prototype.cancelScheduledValues = function(startTime) {};
472
+
473
+ /**
474
+ * @constructor
475
+ * @extends {AudioParam}
476
+ */
477
+ function AudioGain() {}
478
+
479
+ /**
480
+ * @constructor
481
+ * @extends {AudioNode}
482
+ */
483
+ function GainNode() {}
484
+
485
+ /** @type {!AudioParam} */
486
+ GainNode.prototype.gain;
487
+
488
+ /**
489
+ * @constructor
490
+ * @extends {AudioNode}
491
+ */
492
+ function DelayNode() {}
493
+
494
+ /** @type {!AudioParam} */
495
+ DelayNode.prototype.delayTime;
496
+
497
+ /**
498
+ * @constructor
499
+ */
500
+ function AudioBuffer() {}
501
+
502
+ /**
503
+ * @deprecated
504
+ * @type {!AudioGain}
505
+ */
506
+ AudioBuffer.prototype.gain;
507
+
508
+ /** @type {number} */
509
+ AudioBuffer.prototype.sampleRate;
510
+
511
+ /** @type {number} */
512
+ AudioBuffer.prototype.length;
513
+
514
+ /** @type {number} */
515
+ AudioBuffer.prototype.duration;
516
+
517
+ /** @type {number} */
518
+ AudioBuffer.prototype.numberOfChannels;
519
+
520
+ /**
521
+ * @param {number} channel
522
+ * @return {!Float32Array}
523
+ */
524
+ AudioBuffer.prototype.getChannelData = function(channel) {};
525
+
526
+ /**
527
+ * @param {!Float32Array} destination
528
+ * @param {number} channelNumber
529
+ * @param {number=} startInChannel
530
+ */
531
+ AudioBuffer.prototype.copyFromChannel = function(
532
+ destination, channelNumber, startInChannel) {};
533
+
534
+ /**
535
+ * @param {!Float32Array} source
536
+ * @param {number} channelNumber
537
+ * @param {number=} startInChannel
538
+ */
539
+ AudioBuffer.prototype.copyToChannel = function(
540
+ source, channelNumber, startInChannel) {};
541
+
542
+ /**
543
+ * @constructor
544
+ * @extends {AudioNode}
545
+ */
546
+ function AudioBufferSourceNode() {}
547
+
548
+ /**
549
+ * @deprecated
550
+ * @const {number}
551
+ */
552
+ AudioBufferSourceNode.prototype.UNSCHEDULED_STATE;
553
+
554
+ /**
555
+ * @deprecated
556
+ * @const {number}
557
+ */
558
+ AudioBufferSourceNode.prototype.SCHEDULED_STATE;
559
+
560
+ /**
561
+ * @deprecated
562
+ * @const {number}
563
+ */
564
+ AudioBufferSourceNode.prototype.PLAYING_STATE;
565
+
566
+ /**
567
+ * @deprecated
568
+ * @const {number}
569
+ */
570
+ AudioBufferSourceNode.prototype.FINISHED_STATE;
571
+
572
+ /**
573
+ * @deprecated
574
+ * @type {number}
575
+ */
576
+ AudioBufferSourceNode.prototype.playbackState;
577
+
578
+ /** @type {AudioBuffer} */
579
+ AudioBufferSourceNode.prototype.buffer;
580
+
581
+ /**
582
+ * @deprecated
583
+ * @type {number}
584
+ */
585
+ AudioBufferSourceNode.prototype.gain;
586
+
587
+ /** @type {!AudioParam} */
588
+ AudioBufferSourceNode.prototype.playbackRate;
589
+
590
+ /** @type {boolean} */
591
+ AudioBufferSourceNode.prototype.loop;
592
+
593
+ /** @type {number} */
594
+ AudioBufferSourceNode.prototype.loopStart;
595
+
596
+ /** @type {number} */
597
+ AudioBufferSourceNode.prototype.loopEnd;
598
+
599
+ /** @type {?function(!Event): void} */
600
+ AudioBufferSourceNode.prototype.onended;
601
+
602
+ /** @type {!AudioParam} */
603
+ AudioBufferSourceNode.prototype.detune;
604
+
605
+ /**
606
+ * @param {number=} when
607
+ * @param {number=} opt_offset
608
+ * @param {number=} opt_duration
609
+ * @throws {!TypeError} if any parameter is negative
610
+ */
611
+ AudioBufferSourceNode.prototype.start = function(
612
+ when, opt_offset, opt_duration) {};
613
+
614
+ /**
615
+ * @param {number=} when
616
+ * @throws {!TypeError} if when is negative
617
+ */
618
+ AudioBufferSourceNode.prototype.stop = function(when) {};
619
+
620
+ /**
621
+ * @deprecated Use AudioBufferSourceNode#start
622
+ * @param {number} when
623
+ * @return {undefined}
624
+ */
625
+ AudioBufferSourceNode.prototype.noteOn = function(when) {};
626
+
627
+ /**
628
+ * @param {number=} when
629
+ * @param {number=} opt_offset
630
+ * @param {number=} opt_duration
631
+ * @deprecated Use AudioBufferSourceNode#start
632
+ */
633
+ AudioBufferSourceNode.prototype.noteGrainOn = function(
634
+ when, opt_offset, opt_duration) {};
635
+
636
+ /**
637
+ * @param {number} when
638
+ * @deprecated Use AudioBufferSourceNode#stop
639
+ */
640
+ AudioBufferSourceNode.prototype.noteOff = function(when) {};
641
+
642
+ /**
643
+ * @record
644
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/MediaElementAudioSourceNode/MediaElementAudioSourceNode
645
+ */
646
+ function MediaElementAudioSourceOptions() {};
647
+
648
+ /** @type {(HTMLMediaElement|undefined)} */
649
+ MediaElementAudioSourceOptions.prototype.mediaElement;
650
+
651
+ /** @type {(number|undefined)} */
652
+ MediaElementAudioSourceOptions.prototype.channelCount;
653
+
654
+ /** @type {(string|undefined)} */
655
+ MediaElementAudioSourceOptions.prototype.channelCountMode;
656
+
657
+ /** @type {(string|undefined)} */
658
+ MediaElementAudioSourceOptions.prototype.channelInterpretation;
659
+
660
+ /**
661
+ * @constructor
662
+ * @param {!AudioContext} context
663
+ * @param {!MediaElementAudioSourceOptions} options
664
+ * @extends {AudioNode}
665
+ * @see https://webaudio.github.io/web-audio-api/#MediaElementAudioSourceNode-constructors
666
+ */
667
+ function MediaElementAudioSourceNode(context, options) {}
668
+
669
+ /**
670
+ * @constructor
671
+ */
672
+ function AudioWorker() {}
673
+
674
+ /** @type {?function(!Event)} */
675
+ AudioWorker.prototype.onloaded;
676
+
677
+ /** @type {?function(!Event)} */
678
+ AudioWorker.prototype.onmessage;
679
+
680
+ /** @type {!Array<!AudioWorkerParamDescriptor>} */
681
+ AudioWorker.prototype.parameters;
682
+
683
+ /**
684
+ * @param {string} name
685
+ * @param {number} defaultValue
686
+ * @return {!AudioParam}
687
+ */
688
+ AudioWorker.prototype.addParameter = function(name, defaultValue) {};
689
+
690
+ /**
691
+ * @param {number} numberOfInputs
692
+ * @param {number} numberOfOutputs
693
+ * @return {!AudioWorkerNode}
694
+ */
695
+ AudioWorker.prototype.createNode = function(numberOfInputs, numberOfOutputs) {};
696
+
697
+ /**
698
+ * @param {*} message
699
+ * @param {!Array<!Transferable>=} transfer
700
+ */
701
+ AudioWorker.prototype.postMessage = function(message, transfer) {};
702
+
703
+ /**
704
+ * @param {string} name
705
+ */
706
+ AudioWorker.prototype.removeParameter = function(name) {};
707
+
708
+ /**
709
+ */
710
+ AudioWorker.prototype.terminate = function() {};
711
+
712
+ /**
713
+ * @constructor
714
+ * @extends {AudioNode}
715
+ */
716
+ function AudioWorkerNode() {}
717
+
718
+ /** @type {?function(!Event)} */
719
+ AudioWorkerNode.prototype.onmessage;
720
+
721
+ /**
722
+ * @param {*} message
723
+ * @param {!Array<!Transferable>=} transfer
724
+ */
725
+ AudioWorkerNode.prototype.postMessage = function(message, transfer) {};
726
+
727
+ /**
728
+ * @constructor
729
+ */
730
+ function AudioWorkerParamDescriptor() {}
731
+
732
+ /** @type {number} */
733
+ AudioWorkerParamDescriptor.prototype.defaultValue;
734
+
735
+ /** @type {string} */
736
+ AudioWorkerParamDescriptor.prototype.name;
737
+
738
+ /**
739
+ * @constructor
740
+ */
741
+ function AudioWorkerGlobalScope() {}
742
+
743
+ /** @type {?function(!Event)} */
744
+ AudioWorkerGlobalScope.prototype.onaudioprocess;
745
+
746
+ /** @type {?function(!Event)} */
747
+ AudioWorkerGlobalScope.prototype.onnodecreate;
748
+
749
+ /** @type {!Array<!AudioWorkerParamDescriptor>} */
750
+ AudioWorkerGlobalScope.prototype.parameters;
751
+
752
+ /** @type {number} */
753
+ AudioWorkerGlobalScope.prototype.sampleRate;
754
+
755
+ /**
756
+ * @param {string} name
757
+ * @param {number} defaultValue
758
+ * @return {!AudioParam}
759
+ */
760
+ AudioWorkerGlobalScope.prototype.addParameter = function(name, defaultValue) {};
761
+
762
+ /**
763
+ * @param {string} name
764
+ */
765
+ AudioWorkerGlobalScope.prototype.removeParameter = function(name) {};
766
+
767
+ /**
768
+ * @constructor
769
+ */
770
+ function AudioWorkerNodeProcessor() {}
771
+
772
+ /** @type {?function(!Event)} */
773
+ AudioWorkerNodeProcessor.prototype.onmessage;
774
+
775
+ /**
776
+ * @param {*} message
777
+ * @param {!Array<!Transferable>=} transfer
778
+ */
779
+ AudioWorkerNodeProcessor.prototype.postMessage = function(message, transfer) {};
780
+
781
+ /**
782
+ * @constructor
783
+ * @extends {AudioNode}
784
+ * @deprecated Use AudioWorkerNode
785
+ */
786
+ function JavaScriptAudioNode() {}
787
+
788
+ /**
789
+ * @type {EventListener|(function(!AudioProcessingEvent):(boolean|undefined))}
790
+ * @deprecated Use AudioWorkerNode
791
+ */
792
+ JavaScriptAudioNode.prototype.onaudioprocess;
793
+
794
+ /**
795
+ * @type {number}
796
+ * @deprecated Use AudioWorkerNode
797
+ */
798
+ JavaScriptAudioNode.prototype.bufferSize;
799
+
800
+ /**
801
+ * @constructor
802
+ * @extends {AudioNode}
803
+ * @deprecated Use AudioWorkerNode
804
+ */
805
+ function ScriptProcessorNode() {}
806
+
807
+ /**
808
+ * @type {EventListener|(function(!AudioProcessingEvent):(boolean|undefined))}
809
+ * @deprecated Use AudioWorkerNode
810
+ */
811
+ ScriptProcessorNode.prototype.onaudioprocess;
812
+
813
+ /**
814
+ * @type {number}
815
+ * @deprecated Use AudioWorkerNode
816
+ */
817
+ ScriptProcessorNode.prototype.bufferSize;
818
+
819
+ /**
820
+ * @constructor
821
+ * @extends {Event}
822
+ */
823
+ function AudioWorkerNodeCreationEvent() {}
824
+
825
+ /** @type {!Array} */
826
+ AudioWorkerNodeCreationEvent.prototype.inputs;
827
+
828
+ /** @type {!AudioWorkerNodeProcessor} */
829
+ AudioWorkerNodeCreationEvent.prototype.node;
830
+
831
+ /** @type {!Array} */
832
+ AudioWorkerNodeCreationEvent.prototype.outputs;
833
+
834
+ /**
835
+ * @constructor
836
+ * @extends {Event}
837
+ */
838
+ function AudioProcessEvent() {}
839
+
840
+ /** @type {!Float32Array} */
841
+ AudioProcessEvent.prototype.inputs;
842
+
843
+ /** @type {!AudioWorkerNodeProcessor} */
844
+ AudioProcessEvent.prototype.node;
845
+
846
+ /** @type {!Float32Array} */
847
+ AudioProcessEvent.prototype.outputs;
848
+
849
+ /** @type {!Object} */
850
+ AudioProcessEvent.prototype.parameters;
851
+
852
+ /** @type {number} */
853
+ AudioProcessEvent.prototype.playbackTime;
854
+
855
+ /**
856
+ * @constructor
857
+ * @extends {Event}
858
+ * @deprecated Use AudioProcessEvent
859
+ */
860
+ function AudioProcessingEvent() {}
861
+
862
+ /**
863
+ * @type {!ScriptProcessorNode}
864
+ * @deprecated Use AudioProcessEvent
865
+ */
866
+ AudioProcessingEvent.prototype.node;
867
+
868
+ /**
869
+ * @type {number}
870
+ * @deprecated Use AudioProcessEvent
871
+ */
872
+ AudioProcessingEvent.prototype.playbackTime;
873
+
874
+ /**
875
+ * @type {!AudioBuffer}
876
+ * @deprecated Use AudioProcessEvent
877
+ */
878
+ AudioProcessingEvent.prototype.inputBuffer;
879
+
880
+ /**
881
+ * @type {!AudioBuffer}
882
+ * @deprecated Use AudioProcessEvent
883
+ */
884
+ AudioProcessingEvent.prototype.outputBuffer;
885
+
886
+ /**
887
+ * @deprecated
888
+ * @constructor
889
+ * @extends {AudioNode}
890
+ */
891
+ function AudioPannerNode() {}
892
+
893
+ /**
894
+ * @deprecated
895
+ * @const {number}
896
+ */
897
+ AudioPannerNode.prototype.EQUALPOWER;
898
+
899
+ /**
900
+ * @deprecated
901
+ * @const {number}
902
+ */
903
+ AudioPannerNode.prototype.HRTF;
904
+
905
+ /**
906
+ * @deprecated
907
+ * @const {number}
908
+ */
909
+ AudioPannerNode.prototype.SOUNDFIELD;
910
+
911
+ /**
912
+ * @deprecated
913
+ * @const {number}
914
+ */
915
+ AudioPannerNode.prototype.LINEAR_DISTANCE;
916
+
917
+ /**
918
+ * @deprecated
919
+ * @const {number}
920
+ */
921
+ AudioPannerNode.prototype.INVERSE_DISTANCE;
922
+
923
+ /**
924
+ * @deprecated
925
+ * @const {number}
926
+ */
927
+ AudioPannerNode.prototype.EXPONENTIAL_DISTANCE;
928
+
929
+ /**
930
+ * @deprecated
931
+ * @type {number|string}
932
+ */
933
+ AudioPannerNode.prototype.panningModel;
934
+
935
+ /**
936
+ * @deprecated
937
+ * @param {number} x
938
+ * @param {number} y
939
+ * @param {number} z
940
+ * @return {undefined}
941
+ */
942
+ AudioPannerNode.prototype.setPosition = function(x, y, z) {};
943
+
944
+ /**
945
+ * @deprecated
946
+ * @param {number} x
947
+ * @param {number} y
948
+ * @param {number} z
949
+ * @return {undefined}
950
+ */
951
+ AudioPannerNode.prototype.setOrientation = function(x, y, z) {};
952
+
953
+ /**
954
+ * @deprecated
955
+ * @param {number} x
956
+ * @param {number} y
957
+ * @param {number} z
958
+ * @return {undefined}
959
+ */
960
+ AudioPannerNode.prototype.setVelocity = function(x, y, z) {};
961
+
962
+ /**
963
+ * @deprecated
964
+ * @type {number|string}
965
+ */
966
+ AudioPannerNode.prototype.distanceModel;
967
+
968
+ /**
969
+ * @deprecated
970
+ * @type {number}
971
+ */
972
+ AudioPannerNode.prototype.refDistance;
973
+
974
+ /**
975
+ * @deprecated
976
+ * @type {number}
977
+ */
978
+ AudioPannerNode.prototype.maxDistance;
979
+
980
+ /**
981
+ * @deprecated
982
+ * @type {number}
983
+ */
984
+ AudioPannerNode.prototype.rolloffFactor;
985
+
986
+ /**
987
+ * @deprecated
988
+ * @type {number}
989
+ */
990
+ AudioPannerNode.prototype.coneInnerAngle;
991
+
992
+ /**
993
+ * @deprecated
994
+ * @type {number}
995
+ */
996
+ AudioPannerNode.prototype.coneOuterAngle;
997
+
998
+ /**
999
+ * @deprecated
1000
+ * @type {number}
1001
+ */
1002
+ AudioPannerNode.prototype.coneOuterGain;
1003
+
1004
+ /**
1005
+ * @deprecated
1006
+ * @type {!AudioGain}
1007
+ */
1008
+ AudioPannerNode.prototype.coneGain;
1009
+
1010
+ /**
1011
+ * @deprecated
1012
+ * @type {!AudioGain}
1013
+ */
1014
+ AudioPannerNode.prototype.distanceGain;
1015
+
1016
+ /**
1017
+ * @constructor
1018
+ * @extends {AudioNode}
1019
+ */
1020
+ function PannerNode() {}
1021
+
1022
+ /** @type {number} */
1023
+ PannerNode.prototype.coneInnerAngle;
1024
+
1025
+ /** @type {number} */
1026
+ PannerNode.prototype.coneOuterAngle;
1027
+
1028
+ /** @type {number} */
1029
+ PannerNode.prototype.coneOuterGain;
1030
+
1031
+ /**
1032
+ * @type {string}
1033
+ * See https://www.w3.org/TR/webaudio/#the-pannernode-interface for valid values
1034
+ */
1035
+ PannerNode.prototype.distanceModel;
1036
+
1037
+ /** @type {number} */
1038
+ PannerNode.prototype.maxDistance;
1039
+
1040
+ /**
1041
+ * @type {string}
1042
+ * See https://www.w3.org/TR/webaudio/#the-pannernode-interface for valid values
1043
+ */
1044
+ PannerNode.prototype.panningModel;
1045
+
1046
+ /** @type {number} */
1047
+ PannerNode.prototype.refDistance;
1048
+
1049
+ /** @type {number} */
1050
+ PannerNode.prototype.rolloffFactor;
1051
+
1052
+ /**
1053
+ * @param {number} x
1054
+ * @param {number} y
1055
+ * @param {number} z
1056
+ */
1057
+ PannerNode.prototype.setOrientation = function(x, y, z) {};
1058
+
1059
+ /**
1060
+ * @param {number} x
1061
+ * @param {number} y
1062
+ * @param {number} z
1063
+ */
1064
+ PannerNode.prototype.setPosition = function(x, y, z) {};
1065
+
1066
+ /**
1067
+ * @param {number} x
1068
+ * @param {number} y
1069
+ * @param {number} z
1070
+ */
1071
+ PannerNode.prototype.setVelocity = function(x, y, z) {};
1072
+
1073
+ /**
1074
+ * @constructor
1075
+ * @deprecated Use SpatialListener
1076
+ */
1077
+ function AudioListener() {}
1078
+
1079
+ /**
1080
+ * @type {number}
1081
+ * @deprecated Use SpatialListener
1082
+ */
1083
+ AudioListener.prototype.gain;
1084
+
1085
+ /**
1086
+ * @type {number}
1087
+ * @deprecated Use SpatialListener
1088
+ */
1089
+ AudioListener.prototype.dopplerFactor;
1090
+
1091
+ /**
1092
+ * @type {number}
1093
+ * @deprecated Use SpatialListener
1094
+ */
1095
+ AudioListener.prototype.speedOfSound;
1096
+
1097
+ /**
1098
+ * @param {number} x
1099
+ * @param {number} y
1100
+ * @param {number} z
1101
+ * @deprecated Use SpatialListener
1102
+ */
1103
+ AudioListener.prototype.setPosition = function(x, y, z) {};
1104
+
1105
+ /**
1106
+ * @param {number} x
1107
+ * @param {number} y
1108
+ * @param {number} z
1109
+ * @param {number} xUp
1110
+ * @param {number} yUp
1111
+ * @param {number} zUp
1112
+ * @deprecated Use SpatialListener
1113
+ */
1114
+ AudioListener.prototype.setOrientation = function(x, y, z, xUp, yUp, zUp) {};
1115
+
1116
+ /**
1117
+ * @param {number} x
1118
+ * @param {number} y
1119
+ * @param {number} z
1120
+ * @deprecated Use SpatialListener
1121
+ */
1122
+ AudioListener.prototype.setVelocity = function(x, y, z) {};
1123
+
1124
+ /**
1125
+ * @constructor
1126
+ * @extends {AudioNode}
1127
+ */
1128
+ function SpatialPannerNode() {}
1129
+
1130
+ /** @type {number} */
1131
+ SpatialPannerNode.prototype.coneInnerAngle;
1132
+
1133
+ /** @type {number} */
1134
+ SpatialPannerNode.prototype.coneOuterAngle;
1135
+
1136
+ /** @type {number} */
1137
+ SpatialPannerNode.prototype.coneOuterGain;
1138
+
1139
+ /**
1140
+ * @type {string}
1141
+ * See https://www.w3.org/TR/webaudio/#the-pannernode-interface for valid values
1142
+ */
1143
+ SpatialPannerNode.prototype.distanceModel;
1144
+
1145
+ /** @type {number} */
1146
+ SpatialPannerNode.prototype.maxDistance;
1147
+
1148
+ /** @type {!AudioParam} */
1149
+ SpatialPannerNode.prototype.orientationX;
1150
+
1151
+ /** @type {!AudioParam} */
1152
+ SpatialPannerNode.prototype.orientationY;
1153
+
1154
+ /** @type {!AudioParam} */
1155
+ SpatialPannerNode.prototype.orientationZ;
1156
+
1157
+ /**
1158
+ * @type {string}
1159
+ * See https://www.w3.org/TR/webaudio/#the-pannernode-interface for valid values
1160
+ */
1161
+ SpatialPannerNode.prototype.panningModel;
1162
+
1163
+ /** @type {!AudioParam} */
1164
+ SpatialPannerNode.prototype.positionX;
1165
+
1166
+ /** @type {!AudioParam} */
1167
+ SpatialPannerNode.prototype.positionY;
1168
+
1169
+ /** @type {!AudioParam} */
1170
+ SpatialPannerNode.prototype.positionZ;
1171
+
1172
+ /** @type {number} */
1173
+ SpatialPannerNode.prototype.refDistance;
1174
+
1175
+ /** @type {number} */
1176
+ SpatialPannerNode.prototype.rolloffFactor;
1177
+
1178
+ /**
1179
+ * @constructor
1180
+ */
1181
+ function SpatialListener() {}
1182
+
1183
+ /** @type {!AudioParam} */
1184
+ SpatialListener.prototype.forwardX;
1185
+
1186
+ /** @type {!AudioParam} */
1187
+ SpatialListener.prototype.forwardY;
1188
+
1189
+ /** @type {!AudioParam} */
1190
+ SpatialListener.prototype.forwardZ;
1191
+
1192
+ /** @type {!AudioParam} */
1193
+ SpatialListener.prototype.positionX;
1194
+
1195
+ /** @type {!AudioParam} */
1196
+ SpatialListener.prototype.positionY;
1197
+
1198
+ /** @type {!AudioParam} */
1199
+ SpatialListener.prototype.positionZ;
1200
+
1201
+ /** @type {!AudioParam} */
1202
+ SpatialListener.prototype.upX;
1203
+
1204
+ /** @type {!AudioParam} */
1205
+ SpatialListener.prototype.upY;
1206
+
1207
+ /** @type {!AudioParam} */
1208
+ SpatialListener.prototype.upZ;
1209
+
1210
+ /**
1211
+ * @constructor
1212
+ * @extends {AudioNode}
1213
+ * @see http://webaudio.github.io/web-audio-api/#the-stereopannernode-interface
1214
+ */
1215
+ function StereoPannerNode() {}
1216
+
1217
+ /** @type {!AudioParam} */
1218
+ StereoPannerNode.prototype.pan;
1219
+
1220
+ /**
1221
+ * @constructor
1222
+ * @extends {AudioNode}
1223
+ */
1224
+ function ConvolverNode() {}
1225
+
1226
+ /** @type {?AudioBuffer} */
1227
+ ConvolverNode.prototype.buffer;
1228
+
1229
+ /** @type {boolean} */
1230
+ ConvolverNode.prototype.normalize;
1231
+
1232
+ /**
1233
+ * @constructor
1234
+ * @extends {AudioNode}
1235
+ */
1236
+ var AnalyserNode = function() {};
1237
+
1238
+ /**
1239
+ * @param {!Float32Array} array
1240
+ */
1241
+ AnalyserNode.prototype.getFloatFrequencyData = function(array) {};
1242
+
1243
+ /**
1244
+ * @param {!Uint8Array} array
1245
+ */
1246
+ AnalyserNode.prototype.getByteFrequencyData = function(array) {};
1247
+
1248
+ /**
1249
+ * @param {!Uint8Array} array
1250
+ */
1251
+ AnalyserNode.prototype.getByteTimeDomainData = function(array) {};
1252
+
1253
+ /**
1254
+ * @param {!Float32Array} array
1255
+ */
1256
+ AnalyserNode.prototype.getFloatTimeDomainData = function(array) {};
1257
+
1258
+ /** @type {number} */
1259
+ AnalyserNode.prototype.fftSize;
1260
+
1261
+ /** @type {number} */
1262
+ AnalyserNode.prototype.frequencyBinCount;
1263
+
1264
+ /** @type {number} */
1265
+ AnalyserNode.prototype.minDecibels;
1266
+
1267
+ /** @type {number} */
1268
+ AnalyserNode.prototype.maxDecibels;
1269
+
1270
+ /** @type {number} */
1271
+ AnalyserNode.prototype.smoothingTimeConstant;
1272
+
1273
+ /**
1274
+ * @constructor
1275
+ * @extends {AnalyserNode}
1276
+ * @deprecated Use AnalyserNode
1277
+ *
1278
+ * This constructor has been added for backwards compatibility.
1279
+ */
1280
+ var RealtimeAnalyserNode = function() {};
1281
+
1282
+ /**
1283
+ * @record
1284
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/ChannelSplitterNode/ChannelSplitterNode
1285
+ */
1286
+ function ChannelSplitterOptions() {};
1287
+
1288
+ /** @type {(number|undefined)} */
1289
+ ChannelSplitterOptions.prototype.numberOfOutputs;
1290
+
1291
+ /** @type {(number|undefined)} */
1292
+ ChannelSplitterOptions.prototype.channelCount;
1293
+
1294
+ /** @type {(string|undefined)} */
1295
+ ChannelSplitterOptions.prototype.channelCountMode;
1296
+
1297
+ /** @type {(string|undefined)} */
1298
+ ChannelSplitterOptions.prototype.channelInterpretation;
1299
+
1300
+ /**
1301
+ * @constructor
1302
+ * @param {!BaseAudioContext} context
1303
+ * @param {!ChannelSplitterOptions=} options
1304
+ * @extends {AudioNode}
1305
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/ChannelSplitterNode/ChannelSplitterNode
1306
+ */
1307
+ function ChannelSplitterNode(context, options) {}
1308
+
1309
+ /**
1310
+ * @constructor
1311
+ * @extends {ChannelSplitterNode}
1312
+ * @deprecated Use ChannelSplitterNode
1313
+ *
1314
+ * This constructor has been added for backwards compatibility.
1315
+ */
1316
+ function AudioChannelSplitter() {}
1317
+
1318
+ /**
1319
+ * @record
1320
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/ChannelMergerNode/ChannelMergerNode
1321
+ */
1322
+ function ChannelMergerOptions() {};
1323
+
1324
+ /** @type {(number|undefined)} */
1325
+ ChannelMergerOptions.prototype.numberOfInputs;
1326
+
1327
+ /** @type {(number|undefined)} */
1328
+ ChannelMergerOptions.prototype.channelCount;
1329
+
1330
+ /** @type {(string|undefined)} */
1331
+ ChannelMergerOptions.prototype.channelCountMode;
1332
+
1333
+ /** @type {(string|undefined)} */
1334
+ ChannelMergerOptions.prototype.channelInterpretation;
1335
+
1336
+ /**
1337
+ * @constructor
1338
+ * @param {!BaseAudioContext} context
1339
+ * @param {!ChannelMergerOptions=} options
1340
+ * @extends {AudioNode}
1341
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/ChannelMergerNode/ChannelMergerNode
1342
+ */
1343
+ function ChannelMergerNode(context, options) {}
1344
+
1345
+ /**
1346
+ * @constructor
1347
+ * @extends {ChannelMergerNode}
1348
+ * @deprecated Use ChannelMergerNode
1349
+ *
1350
+ * This constructor has been added for backwards compatibility.
1351
+ */
1352
+ function AudioChannelMerger() {}
1353
+
1354
+ /**
1355
+ * @constructor
1356
+ * @extends {AudioNode}
1357
+ */
1358
+ function DynamicsCompressorNode() {}
1359
+
1360
+ /** @type {!AudioParam} */
1361
+ DynamicsCompressorNode.prototype.threshold;
1362
+
1363
+ /** @type {!AudioParam} */
1364
+ DynamicsCompressorNode.prototype.knee;
1365
+
1366
+ /** @type {!AudioParam} */
1367
+ DynamicsCompressorNode.prototype.ratio;
1368
+
1369
+ /** @type {number} */
1370
+ DynamicsCompressorNode.prototype.reduction;
1371
+
1372
+ /** @type {!AudioParam} */
1373
+ DynamicsCompressorNode.prototype.attack;
1374
+
1375
+ /** @type {!AudioParam} */
1376
+ DynamicsCompressorNode.prototype.release;
1377
+
1378
+ /**
1379
+ * @constructor
1380
+ * @extends {AudioNode}
1381
+ */
1382
+ function BiquadFilterNode() {}
1383
+
1384
+ /**
1385
+ * A read-able and write-able string that specifies the type of the filter.
1386
+ * See http://webaudio.github.io/web-audio-api/#the-biquadfilternode-interface
1387
+ * for valid values.
1388
+ * @type {string}
1389
+ */
1390
+ BiquadFilterNode.prototype.type;
1391
+
1392
+ /** @type {!AudioParam} */
1393
+ BiquadFilterNode.prototype.frequency;
1394
+
1395
+ /** @type {!AudioParam} */
1396
+ BiquadFilterNode.prototype.detune;
1397
+
1398
+ /** @type {!AudioParam} */
1399
+ BiquadFilterNode.prototype.Q;
1400
+
1401
+ /** @type {!AudioParam} */
1402
+ BiquadFilterNode.prototype.gain;
1403
+ /**
1404
+ * @param {Float32Array} frequencyHz
1405
+ * @param {Float32Array} magResponse
1406
+ * @param {Float32Array} phaseResponse
1407
+ * @return {undefined}
1408
+ */
1409
+ BiquadFilterNode.prototype.getFrequencyResponse = function(
1410
+ frequencyHz, magResponse, phaseResponse) {};
1411
+
1412
+ /**
1413
+ * @constructor
1414
+ * @extends {AudioNode}
1415
+ */
1416
+ function IIRFilterNode() {}
1417
+
1418
+ /**
1419
+ * @param {!Float32Array} frequencyHz
1420
+ * @param {!Float32Array} magResponse
1421
+ * @param {!Float32Array} phaseResponse
1422
+ * @return {undefined}
1423
+ */
1424
+ IIRFilterNode.prototype.getFrequencyResponse = function(
1425
+ frequencyHz, magResponse, phaseResponse) {};
1426
+
1427
+ /**
1428
+ * @constructor
1429
+ * @extends {AudioNode}
1430
+ */
1431
+ function WaveShaperNode() {}
1432
+
1433
+ /** @type {Float32Array} */
1434
+ WaveShaperNode.prototype.curve;
1435
+
1436
+ /** @type {string} */
1437
+ WaveShaperNode.prototype.oversample;
1438
+
1439
+ /**
1440
+ * @deprecated
1441
+ * @constructor
1442
+ */
1443
+ function WaveTable() {}
1444
+
1445
+ /**
1446
+ * @constructor
1447
+ * @extends {AudioNode}
1448
+ */
1449
+ function OscillatorNode() {}
1450
+
1451
+ /**
1452
+ * @type {string}
1453
+ * See https://www.w3.org/TR/webaudio/#the-oscillatornode-interface for valid
1454
+ * values
1455
+ */
1456
+ OscillatorNode.prototype.type;
1457
+
1458
+ /**
1459
+ * @deprecated
1460
+ * @type {number}
1461
+ */
1462
+ OscillatorNode.prototype.playbackState;
1463
+
1464
+ /** @type {!AudioParam} */
1465
+ OscillatorNode.prototype.frequency;
1466
+
1467
+ /** @type {!AudioParam} */
1468
+ OscillatorNode.prototype.detune;
1469
+
1470
+ /**
1471
+ * @param {number=} when
1472
+ */
1473
+ OscillatorNode.prototype.start = function(when) {};
1474
+
1475
+ /**
1476
+ * @param {number=} when
1477
+ */
1478
+ OscillatorNode.prototype.stop = function(when) {};
1479
+
1480
+ /**
1481
+ * @deprecated
1482
+ * @param {!WaveTable} waveTable
1483
+ */
1484
+ OscillatorNode.prototype.setWaveTable = function(waveTable) {};
1485
+
1486
+ /**
1487
+ * @param {!PeriodicWave} periodicWave
1488
+ */
1489
+ OscillatorNode.prototype.setPeriodicWave = function(periodicWave) {};
1490
+
1491
+ /** @type {?function(!Event)} */
1492
+ OscillatorNode.prototype.onended;
1493
+
1494
+ /**
1495
+ * @constructor
1496
+ */
1497
+ function PeriodicWave() {}
1498
+
1499
+ /**
1500
+ * @record
1501
+ * @see https://www.w3.org/TR/webaudio/#dictdef-constantsourceoptions
1502
+ */
1503
+ function ConstantSourceOptions() {};
1504
+
1505
+ /** @const {(number|undefined)} */
1506
+ ConstantSourceOptions.offset;
1507
+
1508
+ /**
1509
+ * @param {!BaseAudioContext} context
1510
+ * @param {!ConstantSourceOptions=} options
1511
+ * @constructor
1512
+ * @extends {AudioNode}
1513
+ * @see https://www.w3.org/TR/webaudio/#ConstantSourceNode
1514
+ */
1515
+ function ConstantSourceNode(context, options) {}
1516
+
1517
+ /**
1518
+ * @param {number=} when
1519
+ */
1520
+ ConstantSourceNode.prototype.start = function(when) {};
1521
+
1522
+ /**
1523
+ * @param {number=} when
1524
+ */
1525
+ ConstantSourceNode.prototype.stop = function(when) {};
1526
+
1527
+ /** @type {!AudioParam} */
1528
+ ConstantSourceNode.prototype.offset;
1529
+
1530
+ /**
1531
+ * @constructor
1532
+ * @extends {AudioNode}
1533
+ */
1534
+ function MediaStreamAudioSourceNode() {}
1535
+
1536
+ /** @type {!MediaStream} */
1537
+ MediaStreamAudioSourceNode.prototype.mediaStream;
1538
+
1539
+ /**
1540
+ * @constructor
1541
+ * @extends {AudioNode}
1542
+ */
1543
+ function MediaStreamAudioDestinationNode() {}
1544
+
1545
+ /** @type {!MediaStream} */
1546
+ MediaStreamAudioDestinationNode.prototype.stream;
1547
+
1548
+ /**
1549
+ * @constructor
1550
+ * @see https://www.w3.org/TR/webaudio/#audioworklet
1551
+ * @implements {Worklet}
1552
+ */
1553
+ function AudioWorklet() {}
1554
+
1555
+ /**
1556
+ * @constructor
1557
+ * @see https://www.w3.org/TR/webaudio/#audioworkletglobalscope
1558
+ * @implements {WorkletGlobalScope}
1559
+ */
1560
+ function AudioWorkletGlobalScope() {}
1561
+
1562
+ /** @type {number} */
1563
+ AudioWorkletGlobalScope.prototype.currentFrame;
1564
+
1565
+ /** @type {number} */
1566
+ AudioWorkletGlobalScope.prototype.currentTime;
1567
+
1568
+ /** @type {number} */
1569
+ AudioWorkletGlobalScope.prototype.sampleRate;
1570
+
1571
+ /**
1572
+ * @param {!string} name
1573
+ * @param {!function()} processorCtor
1574
+ */
1575
+ AudioWorkletGlobalScope.prototype.registerProcessor = function(
1576
+ name, processorCtor) {};
1577
+
1578
+ /**
1579
+ * @constructor
1580
+ * @extends {AudioNode}
1581
+ * @param {!BaseAudioContext} context
1582
+ * @param {string} name
1583
+ * @param {!AudioWorkletNodeOptions=} options
1584
+ * @see https://www.w3.org/TR/webaudio/#audioworkletnode
1585
+ */
1586
+ function AudioWorkletNode(context, name, options) {}
1587
+
1588
+ /** @type {!EventListener|function()} */
1589
+ AudioWorkletNode.prototype.onprocesserror;
1590
+
1591
+ /** @type {!Object<string, !AudioParam>} */
1592
+ AudioWorkletNode.prototype.parameters;
1593
+
1594
+ /** @type {!MessagePort} */
1595
+ AudioWorkletNode.prototype.port;
1596
+
1597
+ /**
1598
+ * @record
1599
+ * @see https://webaudio.github.io/web-audio-api/#dictdef-audioworkletnodeoptions
1600
+ */
1601
+ function AudioWorkletNodeOptions() {};
1602
+
1603
+ /** @type {number|undefined} */
1604
+ AudioWorkletNodeOptions.prototype.numberOfInputs;
1605
+
1606
+ /** @type {number|undefined} */
1607
+ AudioWorkletNodeOptions.prototype.numberOfOutputs;
1608
+
1609
+ /** @type {!Array<number>|undefined} */
1610
+ AudioWorkletNodeOptions.prototype.outputChannelCount;
1611
+
1612
+ /** @type {!Object<string, number>|undefined} */
1613
+ AudioWorkletNodeOptions.prototype.parameterData;
1614
+
1615
+ /** @type {?|undefined} */
1616
+ AudioWorkletNodeOptions.prototype.processorOptions;
1617
+
1618
+ /**
1619
+ * @constructor
1620
+ * @param {!AudioWorkletNodeOptions=} options
1621
+ * @see https://www.w3.org/TR/webaudio/#audioworkletprocessor
1622
+ */
1623
+ function AudioWorkletProcessor(options) {}
1624
+
1625
+ /** @type {!MessagePort} */
1626
+ AudioWorkletProcessor.prototype.port;
1627
+
1628
+ /**
1629
+ * @param {!Array<!Array<!Float32Array>>} inputs
1630
+ * @param {!Array<!Array<!Float32Array>>} outputs
1631
+ * @param {!Object<string, !Float32Array>} parameters
1632
+ * @return {boolean}
1633
+ */
1634
+ AudioWorkletProcessor.prototype.process = function(
1635
+ inputs, outputs, parameters) {};
1636
+
1637
+ /**
1638
+ * @record
1639
+ * @see https://www.w3.org/TR/webaudio/#dictdef-audioparamdescriptor
1640
+ */
1641
+ function AudioParamDescriptor() {};
1642
+
1643
+ /**
1644
+ * @type {string}
1645
+ * See https://www.w3.org/TR/webaudio/#dom-audioparam-automationrate for valid
1646
+ * values.
1647
+ */
1648
+ AudioParamDescriptor.prototype.automationRate;
1649
+
1650
+ /** @type {number} */
1651
+ AudioParamDescriptor.prototype.defaultValue;
1652
+
1653
+ /** @type {number} */
1654
+ AudioParamDescriptor.prototype.maxValue;
1655
+
1656
+ /** @type {number} */
1657
+ AudioParamDescriptor.prototype.minValue;
1658
+
1659
+ /** @type {string} */
1660
+ AudioParamDescriptor.prototype.name;