1/*! *****************************************************************************
2Copyright (c) Microsoft Corporation. All rights reserved.
3Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4this file except in compliance with the License. You may obtain a copy of the
5License at http://www.apache.org/licenses/LICENSE-2.0
6
7THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
8KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
9WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
10MERCHANTABLITY OR NON-INFRINGEMENT.
11
12See the Apache Version 2.0 License for specific language governing permissions
13and limitations under the License.
14***************************************************************************** */
15
16
17
18/// <reference no-default-lib="true"/>
19
20
21/////////////////////////////
22/// Worker Iterable APIs
23/////////////////////////////
24
25interface Cache {
26    addAll(requests: Iterable<RequestInfo>): Promise<void>;
27}
28
29interface CanvasPathDrawingStyles {
30    setLineDash(segments: Iterable<number>): void;
31}
32
33interface DOMStringList {
34    [Symbol.iterator](): IterableIterator<string>;
35}
36
37interface FileList {
38    [Symbol.iterator](): IterableIterator<File>;
39}
40
41interface FormData {
42    [Symbol.iterator](): IterableIterator<[string, FormDataEntryValue]>;
43    /**
44     * Returns an array of key, value pairs for every entry in the list.
45     */
46    entries(): IterableIterator<[string, FormDataEntryValue]>;
47    /**
48     * Returns a list of keys in the list.
49     */
50    keys(): IterableIterator<string>;
51    /**
52     * Returns a list of values in the list.
53     */
54    values(): IterableIterator<FormDataEntryValue>;
55}
56
57interface Headers {
58    [Symbol.iterator](): IterableIterator<[string, string]>;
59    /**
60     * Returns an iterator allowing to go through all key/value pairs contained in this object.
61     */
62    entries(): IterableIterator<[string, string]>;
63    /**
64     * Returns an iterator allowing to go through all keys of the key/value pairs contained in this object.
65     */
66    keys(): IterableIterator<string>;
67    /**
68     * Returns an iterator allowing to go through all values of the key/value pairs contained in this object.
69     */
70    values(): IterableIterator<string>;
71}
72
73interface IDBDatabase {
74    /**
75     * Returns a new transaction with the given mode ("readonly" or "readwrite") and scope which can be a single object store name or an array of names.
76     */
77    transaction(storeNames: string | Iterable<string>, mode?: IDBTransactionMode): IDBTransaction;
78}
79
80interface IDBObjectStore {
81    /**
82     * Creates a new index in store with the given name, keyPath and options and returns a new IDBIndex. If the keyPath and options define constraints that cannot be satisfied with the data already in store the upgrade transaction will abort with a "ConstraintError" DOMException.
83     *
84     * Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.
85     */
86    createIndex(name: string, keyPath: string | Iterable<string>, options?: IDBIndexParameters): IDBIndex;
87}
88
89interface URLSearchParams {
90    [Symbol.iterator](): IterableIterator<[string, string]>;
91    /**
92     * Returns an array of key, value pairs for every entry in the search params.
93     */
94    entries(): IterableIterator<[string, string]>;
95    /**
96     * Returns a list of keys in the search params.
97     */
98    keys(): IterableIterator<string>;
99    /**
100     * Returns a list of values in the search params.
101     */
102    values(): IterableIterator<string>;
103}
104
105interface WEBGL_draw_buffers {
106    drawBuffersWEBGL(buffers: Iterable<GLenum>): void;
107}
108
109interface WebGL2RenderingContextBase {
110    clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLfloat>, srcOffset?: GLuint): void;
111    clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLint>, srcOffset?: GLuint): void;
112    clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLuint>, srcOffset?: GLuint): void;
113    drawBuffers(buffers: Iterable<GLenum>): void;
114    getActiveUniforms(program: WebGLProgram, uniformIndices: Iterable<GLuint>, pname: GLenum): any;
115    getUniformIndices(program: WebGLProgram, uniformNames: Iterable<string>): Iterable<GLuint> | null;
116    invalidateFramebuffer(target: GLenum, attachments: Iterable<GLenum>): void;
117    invalidateSubFramebuffer(target: GLenum, attachments: Iterable<GLenum>, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
118    transformFeedbackVaryings(program: WebGLProgram, varyings: Iterable<string>, bufferMode: GLenum): void;
119    uniform1uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;
120    uniform2uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;
121    uniform3uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;
122    uniform4uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: GLuint, srcLength?: GLuint): void;
123    uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
124    uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
125    uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
126    uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
127    uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
128    uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
129    vertexAttribI4iv(index: GLuint, values: Iterable<GLint>): void;
130    vertexAttribI4uiv(index: GLuint, values: Iterable<GLuint>): void;
131}
132
133interface WebGL2RenderingContextOverloads {
134    uniform1fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
135    uniform1iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;
136    uniform2fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
137    uniform2iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;
138    uniform3fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
139    uniform3iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;
140    uniform4fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
141    uniform4iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: GLuint, srcLength?: GLuint): void;
142    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
143    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
144    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: GLuint, srcLength?: GLuint): void;
145}
146
147interface WebGLRenderingContextBase {
148    vertexAttrib1fv(index: GLuint, values: Iterable<GLfloat>): void;
149    vertexAttrib2fv(index: GLuint, values: Iterable<GLfloat>): void;
150    vertexAttrib3fv(index: GLuint, values: Iterable<GLfloat>): void;
151    vertexAttrib4fv(index: GLuint, values: Iterable<GLfloat>): void;
152}
153
154interface WebGLRenderingContextOverloads {
155    uniform1fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;
156    uniform1iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;
157    uniform2fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;
158    uniform2iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;
159    uniform3fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;
160    uniform3iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;
161    uniform4fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;
162    uniform4iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;
163    uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;
164    uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;
165    uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;
166}
167