22/// Worker APIs
33/////////////////////////////
44
5+ interface AacEncoderConfig {
6+ format ?: AacBitstreamFormat ;
7+ }
8+
59interface AddEventListenerOptions extends EventListenerOptions {
610 once ?: boolean ;
711 passive ?: boolean ;
@@ -47,6 +51,61 @@ interface AudioConfiguration {
4751 spatialRendering ?: boolean ;
4852}
4953
54+ interface AudioDataCopyToOptions {
55+ format ?: AudioSampleFormat ;
56+ frameCount ?: number ;
57+ frameOffset ?: number ;
58+ planeIndex : number ;
59+ }
60+
61+ interface AudioDataInit {
62+ data : BufferSource ;
63+ format : AudioSampleFormat ;
64+ numberOfChannels : number ;
65+ numberOfFrames : number ;
66+ sampleRate : number ;
67+ timestamp : number ;
68+ transfer ?: ArrayBuffer [ ] ;
69+ }
70+
71+ interface AudioDecoderConfig {
72+ codec : string ;
73+ description ?: BufferSource ;
74+ numberOfChannels : number ;
75+ sampleRate : number ;
76+ }
77+
78+ interface AudioDecoderInit {
79+ error : WebCodecsErrorCallback ;
80+ output : AudioDataOutputCallback ;
81+ }
82+
83+ interface AudioDecoderSupport {
84+ config ?: AudioDecoderConfig ;
85+ supported ?: boolean ;
86+ }
87+
88+ interface AudioEncoderConfig {
89+ aac ?: AacEncoderConfig ;
90+ bitrate ?: number ;
91+ bitrateMode ?: BitrateMode ;
92+ codec : string ;
93+ flac ?: FlacEncoderConfig ;
94+ numberOfChannels : number ;
95+ opus ?: OpusEncoderConfig ;
96+ sampleRate : number ;
97+ }
98+
99+ interface AudioEncoderInit {
100+ error : WebCodecsErrorCallback ;
101+ output : EncodedAudioChunkOutputCallback ;
102+ }
103+
104+ interface AudioEncoderSupport {
105+ config ?: AudioEncoderConfig ;
106+ supported ?: boolean ;
107+ }
108+
50109interface AvcEncoderConfig {
51110 format ?: AvcBitstreamFormat ;
52111}
@@ -163,6 +222,18 @@ interface EcdsaParams extends Algorithm {
163222 hash : HashAlgorithmIdentifier ;
164223}
165224
225+ interface EncodedAudioChunkInit {
226+ data : AllowSharedBufferSource ;
227+ duration ?: number ;
228+ timestamp : number ;
229+ transfer ?: ArrayBuffer [ ] ;
230+ type : EncodedAudioChunkType ;
231+ }
232+
233+ interface EncodedAudioChunkMetadata {
234+ decoderConfig ?: AudioDecoderConfig ;
235+ }
236+
166237interface EncodedVideoChunkInit {
167238 data : AllowSharedBufferSource ;
168239 duration ?: number ;
@@ -240,6 +311,11 @@ interface FileSystemRemoveOptions {
240311 recursive ?: boolean ;
241312}
242313
314+ interface FlacEncoderConfig {
315+ blockSize ?: number ;
316+ compressLevel ?: number ;
317+ }
318+
243319interface FontFaceDescriptors {
244320 ascentOverride ?: string ;
245321 descentOverride ?: string ;
@@ -430,6 +506,17 @@ interface NotificationOptions {
430506 tag ?: string ;
431507}
432508
509+ interface OpusEncoderConfig {
510+ application ?: OpusApplication ;
511+ complexity ?: number ;
512+ format ?: OpusBitstreamFormat ;
513+ frameDuration ?: number ;
514+ packetlossperc ?: number ;
515+ signal ?: OpusSignal ;
516+ usedtx ?: boolean ;
517+ useinbandfec ?: boolean ;
518+ }
519+
433520interface Pbkdf2Params extends Algorithm {
434521 hash : HashAlgorithmIdentifier ;
435522 iterations : number ;
@@ -870,6 +957,7 @@ interface WebTransportHash {
870957interface WebTransportOptions {
871958 allowPooling ?: boolean ;
872959 congestionControl ?: WebTransportCongestionControl ;
960+ protocols ?: string [ ] ;
873961 requireUnreliable ?: boolean ;
874962 serverCertificateHashes ?: WebTransportHash [ ] ;
875963}
@@ -990,6 +1078,113 @@ interface AnimationFrameProvider {
9901078 requestAnimationFrame ( callback : FrameRequestCallback ) : number ;
9911079}
9921080
1081+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData) */
1082+ interface AudioData {
1083+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/duration) */
1084+ readonly duration : number ;
1085+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/format) */
1086+ readonly format : AudioSampleFormat | null ;
1087+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfChannels) */
1088+ readonly numberOfChannels : number ;
1089+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfFrames) */
1090+ readonly numberOfFrames : number ;
1091+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/sampleRate) */
1092+ readonly sampleRate : number ;
1093+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/timestamp) */
1094+ readonly timestamp : number ;
1095+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/allocationSize) */
1096+ allocationSize ( options : AudioDataCopyToOptions ) : number ;
1097+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/clone) */
1098+ clone ( ) : AudioData ;
1099+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/close) */
1100+ close ( ) : void ;
1101+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/copyTo) */
1102+ copyTo ( destination : AllowSharedBufferSource , options : AudioDataCopyToOptions ) : void ;
1103+ }
1104+
1105+ declare var AudioData : {
1106+ prototype : AudioData ;
1107+ new ( init : AudioDataInit ) : AudioData ;
1108+ } ;
1109+
1110+ interface AudioDecoderEventMap {
1111+ "dequeue" : Event ;
1112+ }
1113+
1114+ /**
1115+ * Available only in secure contexts.
1116+ *
1117+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder)
1118+ */
1119+ interface AudioDecoder extends EventTarget {
1120+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decodeQueueSize) */
1121+ readonly decodeQueueSize : number ;
1122+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/dequeue_event) */
1123+ ondequeue : ( ( this : AudioDecoder , ev : Event ) => any ) | null ;
1124+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/state) */
1125+ readonly state : CodecState ;
1126+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/close) */
1127+ close ( ) : void ;
1128+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/configure) */
1129+ configure ( config : AudioDecoderConfig ) : void ;
1130+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decode) */
1131+ decode ( chunk : EncodedAudioChunk ) : void ;
1132+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/flush) */
1133+ flush ( ) : Promise < void > ;
1134+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/reset) */
1135+ reset ( ) : void ;
1136+ addEventListener < K extends keyof AudioDecoderEventMap > ( type : K , listener : ( this : AudioDecoder , ev : AudioDecoderEventMap [ K ] ) => any , options ?: boolean | AddEventListenerOptions ) : void ;
1137+ addEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | AddEventListenerOptions ) : void ;
1138+ removeEventListener < K extends keyof AudioDecoderEventMap > ( type : K , listener : ( this : AudioDecoder , ev : AudioDecoderEventMap [ K ] ) => any , options ?: boolean | EventListenerOptions ) : void ;
1139+ removeEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | EventListenerOptions ) : void ;
1140+ }
1141+
1142+ declare var AudioDecoder : {
1143+ prototype : AudioDecoder ;
1144+ new ( init : AudioDecoderInit ) : AudioDecoder ;
1145+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/isConfigSupported_static) */
1146+ isConfigSupported ( config : AudioDecoderConfig ) : Promise < AudioDecoderSupport > ;
1147+ } ;
1148+
1149+ interface AudioEncoderEventMap {
1150+ "dequeue" : Event ;
1151+ }
1152+
1153+ /**
1154+ * Available only in secure contexts.
1155+ *
1156+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder)
1157+ */
1158+ interface AudioEncoder extends EventTarget {
1159+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encodeQueueSize) */
1160+ readonly encodeQueueSize : number ;
1161+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/dequeue_event) */
1162+ ondequeue : ( ( this : AudioEncoder , ev : Event ) => any ) | null ;
1163+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/state) */
1164+ readonly state : CodecState ;
1165+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/close) */
1166+ close ( ) : void ;
1167+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/configure) */
1168+ configure ( config : AudioEncoderConfig ) : void ;
1169+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encode) */
1170+ encode ( data : AudioData ) : void ;
1171+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/flush) */
1172+ flush ( ) : Promise < void > ;
1173+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/reset) */
1174+ reset ( ) : void ;
1175+ addEventListener < K extends keyof AudioEncoderEventMap > ( type : K , listener : ( this : AudioEncoder , ev : AudioEncoderEventMap [ K ] ) => any , options ?: boolean | AddEventListenerOptions ) : void ;
1176+ addEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | AddEventListenerOptions ) : void ;
1177+ removeEventListener < K extends keyof AudioEncoderEventMap > ( type : K , listener : ( this : AudioEncoder , ev : AudioEncoderEventMap [ K ] ) => any , options ?: boolean | EventListenerOptions ) : void ;
1178+ removeEventListener ( type : string , listener : EventListenerOrEventListenerObject , options ?: boolean | EventListenerOptions ) : void ;
1179+ }
1180+
1181+ declare var AudioEncoder : {
1182+ prototype : AudioEncoder ;
1183+ new ( init : AudioEncoderInit ) : AudioEncoder ;
1184+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/isConfigSupported_static) */
1185+ isConfigSupported ( config : AudioEncoderConfig ) : Promise < AudioEncoderSupport > ;
1186+ } ;
1187+
9931188/**
9941189 * A file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user's system.
9951190 *
@@ -2378,6 +2573,25 @@ interface EXT_texture_norm16 {
23782573 readonly RGBA16_SNORM_EXT : 0x8F9B ;
23792574}
23802575
2576+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk) */
2577+ interface EncodedAudioChunk {
2578+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/byteLength) */
2579+ readonly byteLength : number ;
2580+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/duration) */
2581+ readonly duration : number | null ;
2582+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/timestamp) */
2583+ readonly timestamp : number ;
2584+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/type) */
2585+ readonly type : EncodedAudioChunkType ;
2586+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/copyTo) */
2587+ copyTo ( destination : AllowSharedBufferSource ) : void ;
2588+ }
2589+
2590+ declare var EncodedAudioChunk : {
2591+ prototype : EncodedAudioChunk ;
2592+ new ( init : EncodedAudioChunkInit ) : EncodedAudioChunk ;
2593+ } ;
2594+
23812595/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk) */
23822596interface EncodedVideoChunk {
23832597 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/byteLength) */
@@ -9113,6 +9327,14 @@ declare namespace WebAssembly {
91139327 function validate ( bytes : BufferSource ) : boolean ;
91149328}
91159329
9330+ interface AudioDataOutputCallback {
9331+ ( output : AudioData ) : void ;
9332+ }
9333+
9334+ interface EncodedAudioChunkOutputCallback {
9335+ ( output : EncodedAudioChunk , metadata ?: EncodedAudioChunkMetadata ) : void ;
9336+ }
9337+
91169338interface EncodedVideoChunkOutputCallback {
91179339 ( chunk : EncodedVideoChunk , metadata ?: EncodedVideoChunkMetadata ) : void ;
91189340}
@@ -9364,12 +9586,15 @@ type ReportList = Report[];
93649586type RequestInfo = Request | string ;
93659587type TexImageSource = ImageBitmap | ImageData | OffscreenCanvas | VideoFrame ;
93669588type TimerHandler = string | Function ;
9367- type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | MediaSourceHandle | ReadableStream | WritableStream | TransformStream | VideoFrame | ArrayBuffer ;
9589+ type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | MediaSourceHandle | ReadableStream | WritableStream | TransformStream | AudioData | VideoFrame | ArrayBuffer ;
93689590type Uint32List = Uint32Array | GLuint [ ] ;
93699591type XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string ;
9592+ type AacBitstreamFormat = "aac" | "adts" ;
93709593type AlphaOption = "discard" | "keep" ;
9594+ type AudioSampleFormat = "f32" | "f32-planar" | "s16" | "s16-planar" | "s32" | "s32-planar" | "u8" | "u8-planar" ;
93719595type AvcBitstreamFormat = "annexb" | "avc" ;
93729596type BinaryType = "arraybuffer" | "blob" ;
9597+ type BitrateMode = "constant" | "variable" ;
93739598type CSSMathOperator = "clamp" | "invert" | "max" | "min" | "negate" | "product" | "sum" ;
93749599type CSSNumericBaseType = "angle" | "flex" | "frequency" | "length" | "percent" | "resolution" | "time" ;
93759600type CanvasDirection = "inherit" | "ltr" | "rtl" ;
@@ -9388,6 +9613,7 @@ type ColorGamut = "p3" | "rec2020" | "srgb";
93889613type ColorSpaceConversion = "default" | "none" ;
93899614type CompressionFormat = "deflate" | "deflate-raw" | "gzip" ;
93909615type DocumentVisibilityState = "hidden" | "visible" ;
9616+ type EncodedAudioChunkType = "delta" | "key" ;
93919617type EncodedVideoChunkType = "delta" | "key" ;
93929618type EndingType = "native" | "transparent" ;
93939619type FileSystemHandleKind = "directory" | "file" ;
@@ -9414,6 +9640,9 @@ type MediaEncodingType = "record" | "webrtc";
94149640type NotificationDirection = "auto" | "ltr" | "rtl" ;
94159641type NotificationPermission = "default" | "denied" | "granted" ;
94169642type OffscreenRenderingContextId = "2d" | "bitmaprenderer" | "webgl" | "webgl2" | "webgpu" ;
9643+ type OpusApplication = "audio" | "lowdelay" | "voip" ;
9644+ type OpusBitstreamFormat = "ogg" | "opus" ;
9645+ type OpusSignal = "auto" | "music" | "voice" ;
94179646type PermissionName = "geolocation" | "midi" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock" | "storage-access" ;
94189647type PermissionState = "denied" | "granted" | "prompt" ;
94199648type PredefinedColorSpace = "display-p3" | "srgb" ;
0 commit comments