diff options
feat: at the expense of us carrying the entire ts base type defs in the repo, and hating the code, the ts shit all fits in <5MB .js files
Diffstat (limited to 'src/routes')
-rw-r--r-- | src/routes/Monaco.svelte | 21 | ||||
-rw-r--r-- | src/routes/filemap.d.ts | 2 | ||||
-rw-r--r-- | src/routes/filemap.js | 174 | ||||
-rw-r--r-- | src/routes/ts-worker.ts | 11 |
4 files changed, 188 insertions, 20 deletions
diff --git a/src/routes/Monaco.svelte b/src/routes/Monaco.svelte index cfe9767..295b432 100644 --- a/src/routes/Monaco.svelte +++ b/src/routes/Monaco.svelte @@ -1,11 +1,11 @@ <script lang="ts"> import type monaco from 'monaco-editor'; import { onDestroy, onMount } from 'svelte'; - // import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'; + import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'; // import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'; // import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker'; // import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker'; - // import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'; + import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'; // @ts-ignore import wrqTypes from '@types/webextension-polyfill/namespaces/webRequest.d.ts?raw'; // @ts-ignore @@ -52,14 +52,9 @@ declare global { // return new htmlWorker(); // } if (label === 'typescript' || label === 'javascript') { - return await ( - await import('./ts-worker') - ).default; + return new tsWorker(); } - // return new editorWorker(); - return new ( - await import('monaco-editor/esm/vs/editor/editor.worker?worker') - ).default(); + return new editorWorker(); }, }; @@ -89,6 +84,14 @@ declare global { }, }); if (!divEl) while (!divEl) await new Promise((rs) => setTimeout(rs, 100)); + for (const [_filename, contents] of Object.entries( + (await import('./filemap.js')).default + )) { + Monaco.languages.typescript.typescriptDefaults.addExtraLib( + contents + // ,_filename + ); + } Monaco.languages.typescript.typescriptDefaults.addExtraLib( evTypes, 'node_modules/@types/webextension-polyfill/namespaces/events.d.ts' diff --git a/src/routes/filemap.d.ts b/src/routes/filemap.d.ts new file mode 100644 index 0000000..ad47a35 --- /dev/null +++ b/src/routes/filemap.d.ts @@ -0,0 +1,2 @@ +const v: Record<string,string>; +export default v; diff --git a/src/routes/filemap.js b/src/routes/filemap.js new file mode 100644 index 0000000..b77d909 --- /dev/null +++ b/src/routes/filemap.js @@ -0,0 +1,174 @@ +export default { + 'lib.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es5" />\n/// <reference lib="dom" />\n/// <reference lib="webworker.importscripts" />\n/// <reference lib="scripthost" />\n', + 'lib.decorators.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/**\n * The decorator context types provided to class element decorators.\n */\ntype ClassMemberDecoratorContext =\n | ClassMethodDecoratorContext\n | ClassGetterDecoratorContext\n | ClassSetterDecoratorContext\n | ClassFieldDecoratorContext\n | ClassAccessorDecoratorContext;\n\n/**\n * The decorator context types provided to any decorator.\n */\ntype DecoratorContext =\n | ClassDecoratorContext\n | ClassMemberDecoratorContext;\n\ntype DecoratorMetadataObject = Record<PropertyKey, unknown> & object;\n\ntype DecoratorMetadata = typeof globalThis extends { Symbol: { readonly metadata: symbol; }; } ? DecoratorMetadataObject : DecoratorMetadataObject | undefined;\n\n/**\n * Context provided to a class decorator.\n * @template Class The type of the decorated class associated with this context.\n */\ninterface ClassDecoratorContext<\n Class extends abstract new (...args: any) => any = abstract new (...args: any) => any,\n> {\n /** The kind of element that was decorated. */\n readonly kind: "class";\n\n /** The name of the decorated class. */\n readonly name: string | undefined;\n\n /**\n * Adds a callback to be invoked after the class definition has been finalized.\n *\n * @example\n * ```ts\n * function customElement(name: string): ClassDecoratorFunction {\n * return (target, context) => {\n * context.addInitializer(function () {\n * customElements.define(name, this);\n * });\n * }\n * }\n *\n * @customElement("my-element")\n * class MyElement {}\n * ```\n */\n addInitializer(initializer: (this: Class) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Context provided to a class method decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The type of the decorated class method.\n */\ninterface ClassMethodDecoratorContext<\n This = unknown,\n Value extends (this: This, ...args: any) => any = (this: This, ...args: any) => any,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: "method";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n /**\n * Gets the current value of the method from the provided object.\n *\n * @example\n * let fn = context.access.get(instance);\n */\n get(object: This): Value;\n };\n\n /**\n * Adds a callback to be invoked either before static initializers are run (when\n * decorating a `static` element), or before instance initializers are run (when\n * decorating a non-`static` element).\n *\n * @example\n * ```ts\n * const bound: ClassMethodDecoratorFunction = (value, context) {\n * if (context.private) throw new TypeError("Not supported on private methods.");\n * context.addInitializer(function () {\n * this[context.name] = this[context.name].bind(this);\n * });\n * }\n *\n * class C {\n * message = "Hello";\n *\n * @bound\n * m() {\n * console.log(this.message);\n * }\n * }\n * ```\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Context provided to a class getter decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The property type of the decorated class getter.\n */\ninterface ClassGetterDecoratorContext<\n This = unknown,\n Value = unknown,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: "getter";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n /**\n * Invokes the getter on the provided object.\n *\n * @example\n * let value = context.access.get(instance);\n */\n get(object: This): Value;\n };\n\n /**\n * Adds a callback to be invoked either before static initializers are run (when\n * decorating a `static` element), or before instance initializers are run (when\n * decorating a non-`static` element).\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Context provided to a class setter decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The type of the decorated class setter.\n */\ninterface ClassSetterDecoratorContext<\n This = unknown,\n Value = unknown,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: "setter";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n /**\n * Invokes the setter on the provided object.\n *\n * @example\n * context.access.set(instance, value);\n */\n set(object: This, value: Value): void;\n };\n\n /**\n * Adds a callback to be invoked either before static initializers are run (when\n * decorating a `static` element), or before instance initializers are run (when\n * decorating a non-`static` element).\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Context provided to a class `accessor` field decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The type of decorated class field.\n */\ninterface ClassAccessorDecoratorContext<\n This = unknown,\n Value = unknown,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: "accessor";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n\n /**\n * Invokes the getter on the provided object.\n *\n * @example\n * let value = context.access.get(instance);\n */\n get(object: This): Value;\n\n /**\n * Invokes the setter on the provided object.\n *\n * @example\n * context.access.set(instance, value);\n */\n set(object: This, value: Value): void;\n };\n\n /**\n * Adds a callback to be invoked either before static initializers are run (when\n * decorating a `static` element), or before instance initializers are run (when\n * decorating a non-`static` element).\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Describes the target provided to class `accessor` field decorators.\n * @template This The `this` type to which the target applies.\n * @template Value The property type for the class `accessor` field.\n */\ninterface ClassAccessorDecoratorTarget<This, Value> {\n /**\n * Invokes the getter that was defined prior to decorator application.\n *\n * @example\n * let value = target.get.call(instance);\n */\n get(this: This): Value;\n\n /**\n * Invokes the setter that was defined prior to decorator application.\n *\n * @example\n * target.set.call(instance, value);\n */\n set(this: This, value: Value): void;\n}\n\n/**\n * Describes the allowed return value from a class `accessor` field decorator.\n * @template This The `this` type to which the target applies.\n * @template Value The property type for the class `accessor` field.\n */\ninterface ClassAccessorDecoratorResult<This, Value> {\n /**\n * An optional replacement getter function. If not provided, the existing getter function is used instead.\n */\n get?(this: This): Value;\n\n /**\n * An optional replacement setter function. If not provided, the existing setter function is used instead.\n */\n set?(this: This, value: Value): void;\n\n /**\n * An optional initializer mutator that is invoked when the underlying field initializer is evaluated.\n * @param value The incoming initializer value.\n * @returns The replacement initializer value.\n */\n init?(this: This, value: Value): Value;\n}\n\n/**\n * Context provided to a class field decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The type of the decorated class field.\n */\ninterface ClassFieldDecoratorContext<\n This = unknown,\n Value = unknown,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: "field";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n\n /**\n * Gets the value of the field on the provided object.\n */\n get(object: This): Value;\n\n /**\n * Sets the value of the field on the provided object.\n */\n set(object: This, value: Value): void;\n };\n\n /**\n * Adds a callback to be invoked either before static initializers are run (when\n * decorating a `static` element), or before instance initializers are run (when\n * decorating a non-`static` element).\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n', + 'lib.decorators.legacy.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ndeclare type ClassDecorator = <TFunction extends Function>(target: TFunction) => TFunction | void;\ndeclare type PropertyDecorator = (target: Object, propertyKey: string | symbol) => void;\ndeclare type MethodDecorator = <T>(target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;\ndeclare type ParameterDecorator = (target: Object, propertyKey: string | symbol | undefined, parameterIndex: number) => void;\n', + 'lib.dom.asynciterable.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/////////////////////////////\n/// Window Async Iterable APIs\n/////////////////////////////\n\ninterface FileSystemDirectoryHandle {\n [Symbol.asyncIterator](): AsyncIterableIterator<[string, FileSystemHandle]>;\n entries(): AsyncIterableIterator<[string, FileSystemHandle]>;\n keys(): AsyncIterableIterator<string>;\n values(): AsyncIterableIterator<FileSystemHandle>;\n}\n', + 'lib.dom.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/////////////////////////////\n/// Window APIs\n/////////////////////////////\n\ninterface AddEventListenerOptions extends EventListenerOptions {\n once?: boolean;\n passive?: boolean;\n signal?: AbortSignal;\n}\n\ninterface AesCbcParams extends Algorithm {\n iv: BufferSource;\n}\n\ninterface AesCtrParams extends Algorithm {\n counter: BufferSource;\n length: number;\n}\n\ninterface AesDerivedKeyParams extends Algorithm {\n length: number;\n}\n\ninterface AesGcmParams extends Algorithm {\n additionalData?: BufferSource;\n iv: BufferSource;\n tagLength?: number;\n}\n\ninterface AesKeyAlgorithm extends KeyAlgorithm {\n length: number;\n}\n\ninterface AesKeyGenParams extends Algorithm {\n length: number;\n}\n\ninterface Algorithm {\n name: string;\n}\n\ninterface AnalyserOptions extends AudioNodeOptions {\n fftSize?: number;\n maxDecibels?: number;\n minDecibels?: number;\n smoothingTimeConstant?: number;\n}\n\ninterface AnimationEventInit extends EventInit {\n animationName?: string;\n elapsedTime?: number;\n pseudoElement?: string;\n}\n\ninterface AnimationPlaybackEventInit extends EventInit {\n currentTime?: CSSNumberish | null;\n timelineTime?: CSSNumberish | null;\n}\n\ninterface AssignedNodesOptions {\n flatten?: boolean;\n}\n\ninterface AudioBufferOptions {\n length: number;\n numberOfChannels?: number;\n sampleRate: number;\n}\n\ninterface AudioBufferSourceOptions {\n buffer?: AudioBuffer | null;\n detune?: number;\n loop?: boolean;\n loopEnd?: number;\n loopStart?: number;\n playbackRate?: number;\n}\n\ninterface AudioConfiguration {\n bitrate?: number;\n channels?: string;\n contentType: string;\n samplerate?: number;\n spatialRendering?: boolean;\n}\n\ninterface AudioContextOptions {\n latencyHint?: AudioContextLatencyCategory | number;\n sampleRate?: number;\n}\n\ninterface AudioNodeOptions {\n channelCount?: number;\n channelCountMode?: ChannelCountMode;\n channelInterpretation?: ChannelInterpretation;\n}\n\ninterface AudioProcessingEventInit extends EventInit {\n inputBuffer: AudioBuffer;\n outputBuffer: AudioBuffer;\n playbackTime: number;\n}\n\ninterface AudioTimestamp {\n contextTime?: number;\n performanceTime?: DOMHighResTimeStamp;\n}\n\ninterface AudioWorkletNodeOptions extends AudioNodeOptions {\n numberOfInputs?: number;\n numberOfOutputs?: number;\n outputChannelCount?: number[];\n parameterData?: Record<string, number>;\n processorOptions?: any;\n}\n\ninterface AuthenticationExtensionsClientInputs {\n appid?: string;\n credProps?: boolean;\n hmacCreateSecret?: boolean;\n minPinLength?: boolean;\n}\n\ninterface AuthenticationExtensionsClientOutputs {\n appid?: boolean;\n credProps?: CredentialPropertiesOutput;\n hmacCreateSecret?: boolean;\n}\n\ninterface AuthenticatorSelectionCriteria {\n authenticatorAttachment?: AuthenticatorAttachment;\n requireResidentKey?: boolean;\n residentKey?: ResidentKeyRequirement;\n userVerification?: UserVerificationRequirement;\n}\n\ninterface AvcEncoderConfig {\n format?: AvcBitstreamFormat;\n}\n\ninterface BiquadFilterOptions extends AudioNodeOptions {\n Q?: number;\n detune?: number;\n frequency?: number;\n gain?: number;\n type?: BiquadFilterType;\n}\n\ninterface BlobEventInit {\n data: Blob;\n timecode?: DOMHighResTimeStamp;\n}\n\ninterface BlobPropertyBag {\n endings?: EndingType;\n type?: string;\n}\n\ninterface CSSMatrixComponentOptions {\n is2D?: boolean;\n}\n\ninterface CSSNumericType {\n angle?: number;\n flex?: number;\n frequency?: number;\n length?: number;\n percent?: number;\n percentHint?: CSSNumericBaseType;\n resolution?: number;\n time?: number;\n}\n\ninterface CSSStyleSheetInit {\n baseURL?: string;\n disabled?: boolean;\n media?: MediaList | string;\n}\n\ninterface CacheQueryOptions {\n ignoreMethod?: boolean;\n ignoreSearch?: boolean;\n ignoreVary?: boolean;\n}\n\ninterface CanvasRenderingContext2DSettings {\n alpha?: boolean;\n colorSpace?: PredefinedColorSpace;\n desynchronized?: boolean;\n willReadFrequently?: boolean;\n}\n\ninterface ChannelMergerOptions extends AudioNodeOptions {\n numberOfInputs?: number;\n}\n\ninterface ChannelSplitterOptions extends AudioNodeOptions {\n numberOfOutputs?: number;\n}\n\ninterface CheckVisibilityOptions {\n checkOpacity?: boolean;\n checkVisibilityCSS?: boolean;\n}\n\ninterface ClientQueryOptions {\n includeUncontrolled?: boolean;\n type?: ClientTypes;\n}\n\ninterface ClipboardEventInit extends EventInit {\n clipboardData?: DataTransfer | null;\n}\n\ninterface ClipboardItemOptions {\n presentationStyle?: PresentationStyle;\n}\n\ninterface CloseEventInit extends EventInit {\n code?: number;\n reason?: string;\n wasClean?: boolean;\n}\n\ninterface CompositionEventInit extends UIEventInit {\n data?: string;\n}\n\ninterface ComputedEffectTiming extends EffectTiming {\n activeDuration?: CSSNumberish;\n currentIteration?: number | null;\n endTime?: CSSNumberish;\n localTime?: CSSNumberish | null;\n progress?: number | null;\n startTime?: CSSNumberish;\n}\n\ninterface ComputedKeyframe {\n composite: CompositeOperationOrAuto;\n computedOffset: number;\n easing: string;\n offset: number | null;\n [property: string]: string | number | null | undefined;\n}\n\ninterface ConstantSourceOptions {\n offset?: number;\n}\n\ninterface ConstrainBooleanParameters {\n exact?: boolean;\n ideal?: boolean;\n}\n\ninterface ConstrainDOMStringParameters {\n exact?: string | string[];\n ideal?: string | string[];\n}\n\ninterface ConstrainDoubleRange extends DoubleRange {\n exact?: number;\n ideal?: number;\n}\n\ninterface ConstrainULongRange extends ULongRange {\n exact?: number;\n ideal?: number;\n}\n\ninterface ConvolverOptions extends AudioNodeOptions {\n buffer?: AudioBuffer | null;\n disableNormalization?: boolean;\n}\n\ninterface CredentialCreationOptions {\n publicKey?: PublicKeyCredentialCreationOptions;\n signal?: AbortSignal;\n}\n\ninterface CredentialPropertiesOutput {\n rk?: boolean;\n}\n\ninterface CredentialRequestOptions {\n mediation?: CredentialMediationRequirement;\n publicKey?: PublicKeyCredentialRequestOptions;\n signal?: AbortSignal;\n}\n\ninterface CryptoKeyPair {\n privateKey: CryptoKey;\n publicKey: CryptoKey;\n}\n\ninterface CustomEventInit<T = any> extends EventInit {\n detail?: T;\n}\n\ninterface DOMMatrix2DInit {\n a?: number;\n b?: number;\n c?: number;\n d?: number;\n e?: number;\n f?: number;\n m11?: number;\n m12?: number;\n m21?: number;\n m22?: number;\n m41?: number;\n m42?: number;\n}\n\ninterface DOMMatrixInit extends DOMMatrix2DInit {\n is2D?: boolean;\n m13?: number;\n m14?: number;\n m23?: number;\n m24?: number;\n m31?: number;\n m32?: number;\n m33?: number;\n m34?: number;\n m43?: number;\n m44?: number;\n}\n\ninterface DOMPointInit {\n w?: number;\n x?: number;\n y?: number;\n z?: number;\n}\n\ninterface DOMQuadInit {\n p1?: DOMPointInit;\n p2?: DOMPointInit;\n p3?: DOMPointInit;\n p4?: DOMPointInit;\n}\n\ninterface DOMRectInit {\n height?: number;\n width?: number;\n x?: number;\n y?: number;\n}\n\ninterface DelayOptions extends AudioNodeOptions {\n delayTime?: number;\n maxDelayTime?: number;\n}\n\ninterface DeviceMotionEventAccelerationInit {\n x?: number | null;\n y?: number | null;\n z?: number | null;\n}\n\ninterface DeviceMotionEventInit extends EventInit {\n acceleration?: DeviceMotionEventAccelerationInit;\n accelerationIncludingGravity?: DeviceMotionEventAccelerationInit;\n interval?: number;\n rotationRate?: DeviceMotionEventRotationRateInit;\n}\n\ninterface DeviceMotionEventRotationRateInit {\n alpha?: number | null;\n beta?: number | null;\n gamma?: number | null;\n}\n\ninterface DeviceOrientationEventInit extends EventInit {\n absolute?: boolean;\n alpha?: number | null;\n beta?: number | null;\n gamma?: number | null;\n}\n\ninterface DisplayMediaStreamOptions {\n audio?: boolean | MediaTrackConstraints;\n video?: boolean | MediaTrackConstraints;\n}\n\ninterface DocumentTimelineOptions {\n originTime?: DOMHighResTimeStamp;\n}\n\ninterface DoubleRange {\n max?: number;\n min?: number;\n}\n\ninterface DragEventInit extends MouseEventInit {\n dataTransfer?: DataTransfer | null;\n}\n\ninterface DynamicsCompressorOptions extends AudioNodeOptions {\n attack?: number;\n knee?: number;\n ratio?: number;\n release?: number;\n threshold?: number;\n}\n\ninterface EcKeyAlgorithm extends KeyAlgorithm {\n namedCurve: NamedCurve;\n}\n\ninterface EcKeyGenParams extends Algorithm {\n namedCurve: NamedCurve;\n}\n\ninterface EcKeyImportParams extends Algorithm {\n namedCurve: NamedCurve;\n}\n\ninterface EcdhKeyDeriveParams extends Algorithm {\n public: CryptoKey;\n}\n\ninterface EcdsaParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface EffectTiming {\n delay?: number;\n direction?: PlaybackDirection;\n duration?: number | CSSNumericValue | string;\n easing?: string;\n endDelay?: number;\n fill?: FillMode;\n iterationStart?: number;\n iterations?: number;\n playbackRate?: number;\n}\n\ninterface ElementCreationOptions {\n is?: string;\n}\n\ninterface ElementDefinitionOptions {\n extends?: string;\n}\n\ninterface EncodedVideoChunkInit {\n data: AllowSharedBufferSource;\n duration?: number;\n timestamp: number;\n type: EncodedVideoChunkType;\n}\n\ninterface EncodedVideoChunkMetadata {\n decoderConfig?: VideoDecoderConfig;\n}\n\ninterface ErrorEventInit extends EventInit {\n colno?: number;\n error?: any;\n filename?: string;\n lineno?: number;\n message?: string;\n}\n\ninterface EventInit {\n bubbles?: boolean;\n cancelable?: boolean;\n composed?: boolean;\n}\n\ninterface EventListenerOptions {\n capture?: boolean;\n}\n\ninterface EventModifierInit extends UIEventInit {\n altKey?: boolean;\n ctrlKey?: boolean;\n metaKey?: boolean;\n modifierAltGraph?: boolean;\n modifierCapsLock?: boolean;\n modifierFn?: boolean;\n modifierFnLock?: boolean;\n modifierHyper?: boolean;\n modifierNumLock?: boolean;\n modifierScrollLock?: boolean;\n modifierSuper?: boolean;\n modifierSymbol?: boolean;\n modifierSymbolLock?: boolean;\n shiftKey?: boolean;\n}\n\ninterface EventSourceInit {\n withCredentials?: boolean;\n}\n\ninterface FilePropertyBag extends BlobPropertyBag {\n lastModified?: number;\n}\n\ninterface FileSystemCreateWritableOptions {\n keepExistingData?: boolean;\n}\n\ninterface FileSystemFlags {\n create?: boolean;\n exclusive?: boolean;\n}\n\ninterface FileSystemGetDirectoryOptions {\n create?: boolean;\n}\n\ninterface FileSystemGetFileOptions {\n create?: boolean;\n}\n\ninterface FileSystemRemoveOptions {\n recursive?: boolean;\n}\n\ninterface FocusEventInit extends UIEventInit {\n relatedTarget?: EventTarget | null;\n}\n\ninterface FocusOptions {\n preventScroll?: boolean;\n}\n\ninterface FontFaceDescriptors {\n ascentOverride?: string;\n descentOverride?: string;\n display?: FontDisplay;\n featureSettings?: string;\n lineGapOverride?: string;\n stretch?: string;\n style?: string;\n unicodeRange?: string;\n weight?: string;\n}\n\ninterface FontFaceSetLoadEventInit extends EventInit {\n fontfaces?: FontFace[];\n}\n\ninterface FormDataEventInit extends EventInit {\n formData: FormData;\n}\n\ninterface FullscreenOptions {\n navigationUI?: FullscreenNavigationUI;\n}\n\ninterface GainOptions extends AudioNodeOptions {\n gain?: number;\n}\n\ninterface GamepadEffectParameters {\n duration?: number;\n startDelay?: number;\n strongMagnitude?: number;\n weakMagnitude?: number;\n}\n\ninterface GamepadEventInit extends EventInit {\n gamepad: Gamepad;\n}\n\ninterface GetAnimationsOptions {\n subtree?: boolean;\n}\n\ninterface GetNotificationOptions {\n tag?: string;\n}\n\ninterface GetRootNodeOptions {\n composed?: boolean;\n}\n\ninterface HashChangeEventInit extends EventInit {\n newURL?: string;\n oldURL?: string;\n}\n\ninterface HkdfParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n info: BufferSource;\n salt: BufferSource;\n}\n\ninterface HmacImportParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n length?: number;\n}\n\ninterface HmacKeyAlgorithm extends KeyAlgorithm {\n hash: KeyAlgorithm;\n length: number;\n}\n\ninterface HmacKeyGenParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n length?: number;\n}\n\ninterface IDBDatabaseInfo {\n name?: string;\n version?: number;\n}\n\ninterface IDBIndexParameters {\n multiEntry?: boolean;\n unique?: boolean;\n}\n\ninterface IDBObjectStoreParameters {\n autoIncrement?: boolean;\n keyPath?: string | string[] | null;\n}\n\ninterface IDBTransactionOptions {\n durability?: IDBTransactionDurability;\n}\n\ninterface IDBVersionChangeEventInit extends EventInit {\n newVersion?: number | null;\n oldVersion?: number;\n}\n\ninterface IIRFilterOptions extends AudioNodeOptions {\n feedback: number[];\n feedforward: number[];\n}\n\ninterface IdleRequestOptions {\n timeout?: number;\n}\n\ninterface ImageBitmapOptions {\n colorSpaceConversion?: ColorSpaceConversion;\n imageOrientation?: ImageOrientation;\n premultiplyAlpha?: PremultiplyAlpha;\n resizeHeight?: number;\n resizeQuality?: ResizeQuality;\n resizeWidth?: number;\n}\n\ninterface ImageBitmapRenderingContextSettings {\n alpha?: boolean;\n}\n\ninterface ImageDataSettings {\n colorSpace?: PredefinedColorSpace;\n}\n\ninterface ImageEncodeOptions {\n quality?: number;\n type?: string;\n}\n\ninterface ImportMeta {\n url: string;\n}\n\ninterface InputEventInit extends UIEventInit {\n data?: string | null;\n dataTransfer?: DataTransfer | null;\n inputType?: string;\n isComposing?: boolean;\n targetRanges?: StaticRange[];\n}\n\ninterface IntersectionObserverEntryInit {\n boundingClientRect: DOMRectInit;\n intersectionRatio: number;\n intersectionRect: DOMRectInit;\n isIntersecting: boolean;\n rootBounds: DOMRectInit | null;\n target: Element;\n time: DOMHighResTimeStamp;\n}\n\ninterface IntersectionObserverInit {\n root?: Element | Document | null;\n rootMargin?: string;\n threshold?: number | number[];\n}\n\ninterface JsonWebKey {\n alg?: string;\n crv?: string;\n d?: string;\n dp?: string;\n dq?: string;\n e?: string;\n ext?: boolean;\n k?: string;\n key_ops?: string[];\n kty?: string;\n n?: string;\n oth?: RsaOtherPrimesInfo[];\n p?: string;\n q?: string;\n qi?: string;\n use?: string;\n x?: string;\n y?: string;\n}\n\ninterface KeyAlgorithm {\n name: string;\n}\n\ninterface KeyboardEventInit extends EventModifierInit {\n /** @deprecated */\n charCode?: number;\n code?: string;\n isComposing?: boolean;\n key?: string;\n /** @deprecated */\n keyCode?: number;\n location?: number;\n repeat?: boolean;\n}\n\ninterface Keyframe {\n composite?: CompositeOperationOrAuto;\n easing?: string;\n offset?: number | null;\n [property: string]: string | number | null | undefined;\n}\n\ninterface KeyframeAnimationOptions extends KeyframeEffectOptions {\n id?: string;\n timeline?: AnimationTimeline | null;\n}\n\ninterface KeyframeEffectOptions extends EffectTiming {\n composite?: CompositeOperation;\n iterationComposite?: IterationCompositeOperation;\n pseudoElement?: string | null;\n}\n\ninterface LockInfo {\n clientId?: string;\n mode?: LockMode;\n name?: string;\n}\n\ninterface LockManagerSnapshot {\n held?: LockInfo[];\n pending?: LockInfo[];\n}\n\ninterface LockOptions {\n ifAvailable?: boolean;\n mode?: LockMode;\n signal?: AbortSignal;\n steal?: boolean;\n}\n\ninterface MIDIConnectionEventInit extends EventInit {\n port?: MIDIPort;\n}\n\ninterface MIDIMessageEventInit extends EventInit {\n data?: Uint8Array;\n}\n\ninterface MIDIOptions {\n software?: boolean;\n sysex?: boolean;\n}\n\ninterface MediaCapabilitiesDecodingInfo extends MediaCapabilitiesInfo {\n configuration?: MediaDecodingConfiguration;\n}\n\ninterface MediaCapabilitiesEncodingInfo extends MediaCapabilitiesInfo {\n configuration?: MediaEncodingConfiguration;\n}\n\ninterface MediaCapabilitiesInfo {\n powerEfficient: boolean;\n smooth: boolean;\n supported: boolean;\n}\n\ninterface MediaConfiguration {\n audio?: AudioConfiguration;\n video?: VideoConfiguration;\n}\n\ninterface MediaDecodingConfiguration extends MediaConfiguration {\n type: MediaDecodingType;\n}\n\ninterface MediaElementAudioSourceOptions {\n mediaElement: HTMLMediaElement;\n}\n\ninterface MediaEncodingConfiguration extends MediaConfiguration {\n type: MediaEncodingType;\n}\n\ninterface MediaEncryptedEventInit extends EventInit {\n initData?: ArrayBuffer | null;\n initDataType?: string;\n}\n\ninterface MediaImage {\n sizes?: string;\n src: string;\n type?: string;\n}\n\ninterface MediaKeyMessageEventInit extends EventInit {\n message: ArrayBuffer;\n messageType: MediaKeyMessageType;\n}\n\ninterface MediaKeySystemConfiguration {\n audioCapabilities?: MediaKeySystemMediaCapability[];\n distinctiveIdentifier?: MediaKeysRequirement;\n initDataTypes?: string[];\n label?: string;\n persistentState?: MediaKeysRequirement;\n sessionTypes?: string[];\n videoCapabilities?: MediaKeySystemMediaCapability[];\n}\n\ninterface MediaKeySystemMediaCapability {\n contentType?: string;\n encryptionScheme?: string | null;\n robustness?: string;\n}\n\ninterface MediaMetadataInit {\n album?: string;\n artist?: string;\n artwork?: MediaImage[];\n title?: string;\n}\n\ninterface MediaPositionState {\n duration?: number;\n playbackRate?: number;\n position?: number;\n}\n\ninterface MediaQueryListEventInit extends EventInit {\n matches?: boolean;\n media?: string;\n}\n\ninterface MediaRecorderOptions {\n audioBitsPerSecond?: number;\n bitsPerSecond?: number;\n mimeType?: string;\n videoBitsPerSecond?: number;\n}\n\ninterface MediaSessionActionDetails {\n action: MediaSessionAction;\n fastSeek?: boolean;\n seekOffset?: number;\n seekTime?: number;\n}\n\ninterface MediaStreamAudioSourceOptions {\n mediaStream: MediaStream;\n}\n\ninterface MediaStreamConstraints {\n audio?: boolean | MediaTrackConstraints;\n peerIdentity?: string;\n preferCurrentTab?: boolean;\n video?: boolean | MediaTrackConstraints;\n}\n\ninterface MediaStreamTrackEventInit extends EventInit {\n track: MediaStreamTrack;\n}\n\ninterface MediaTrackCapabilities {\n aspectRatio?: DoubleRange;\n autoGainControl?: boolean[];\n channelCount?: ULongRange;\n deviceId?: string;\n displaySurface?: string;\n echoCancellation?: boolean[];\n facingMode?: string[];\n frameRate?: DoubleRange;\n groupId?: string;\n height?: ULongRange;\n noiseSuppression?: boolean[];\n sampleRate?: ULongRange;\n sampleSize?: ULongRange;\n width?: ULongRange;\n}\n\ninterface MediaTrackConstraintSet {\n aspectRatio?: ConstrainDouble;\n autoGainControl?: ConstrainBoolean;\n channelCount?: ConstrainULong;\n deviceId?: ConstrainDOMString;\n displaySurface?: ConstrainDOMString;\n echoCancellation?: ConstrainBoolean;\n facingMode?: ConstrainDOMString;\n frameRate?: ConstrainDouble;\n groupId?: ConstrainDOMString;\n height?: ConstrainULong;\n noiseSuppression?: ConstrainBoolean;\n sampleRate?: ConstrainULong;\n sampleSize?: ConstrainULong;\n width?: ConstrainULong;\n}\n\ninterface MediaTrackConstraints extends MediaTrackConstraintSet {\n advanced?: MediaTrackConstraintSet[];\n}\n\ninterface MediaTrackSettings {\n aspectRatio?: number;\n autoGainControl?: boolean;\n channelCount?: number;\n deviceId?: string;\n displaySurface?: string;\n echoCancellation?: boolean;\n facingMode?: string;\n frameRate?: number;\n groupId?: string;\n height?: number;\n noiseSuppression?: boolean;\n sampleRate?: number;\n sampleSize?: number;\n width?: number;\n}\n\ninterface MediaTrackSupportedConstraints {\n aspectRatio?: boolean;\n autoGainControl?: boolean;\n channelCount?: boolean;\n deviceId?: boolean;\n displaySurface?: boolean;\n echoCancellation?: boolean;\n facingMode?: boolean;\n frameRate?: boolean;\n groupId?: boolean;\n height?: boolean;\n noiseSuppression?: boolean;\n sampleRate?: boolean;\n sampleSize?: boolean;\n width?: boolean;\n}\n\ninterface MessageEventInit<T = any> extends EventInit {\n data?: T;\n lastEventId?: string;\n origin?: string;\n ports?: MessagePort[];\n source?: MessageEventSource | null;\n}\n\ninterface MouseEventInit extends EventModifierInit {\n button?: number;\n buttons?: number;\n clientX?: number;\n clientY?: number;\n movementX?: number;\n movementY?: number;\n relatedTarget?: EventTarget | null;\n screenX?: number;\n screenY?: number;\n}\n\ninterface MultiCacheQueryOptions extends CacheQueryOptions {\n cacheName?: string;\n}\n\ninterface MutationObserverInit {\n /** Set to a list of attribute local names (without namespace) if not all attribute mutations need to be observed and attributes is true or omitted. */\n attributeFilter?: string[];\n /** Set to true if attributes is true or omitted and target\'s attribute value before the mutation needs to be recorded. */\n attributeOldValue?: boolean;\n /** Set to true if mutations to target\'s attributes are to be observed. Can be omitted if attributeOldValue or attributeFilter is specified. */\n attributes?: boolean;\n /** Set to true if mutations to target\'s data are to be observed. Can be omitted if characterDataOldValue is specified. */\n characterData?: boolean;\n /** Set to true if characterData is set to true or omitted and target\'s data before the mutation needs to be recorded. */\n characterDataOldValue?: boolean;\n /** Set to true if mutations to target\'s children are to be observed. */\n childList?: boolean;\n /** Set to true if mutations to not just target, but also target\'s descendants are to be observed. */\n subtree?: boolean;\n}\n\ninterface NavigationPreloadState {\n enabled?: boolean;\n headerValue?: string;\n}\n\ninterface NotificationOptions {\n badge?: string;\n body?: string;\n data?: any;\n dir?: NotificationDirection;\n icon?: string;\n lang?: string;\n requireInteraction?: boolean;\n silent?: boolean | null;\n tag?: string;\n}\n\ninterface OfflineAudioCompletionEventInit extends EventInit {\n renderedBuffer: AudioBuffer;\n}\n\ninterface OfflineAudioContextOptions {\n length: number;\n numberOfChannels?: number;\n sampleRate: number;\n}\n\ninterface OptionalEffectTiming {\n delay?: number;\n direction?: PlaybackDirection;\n duration?: number | string;\n easing?: string;\n endDelay?: number;\n fill?: FillMode;\n iterationStart?: number;\n iterations?: number;\n playbackRate?: number;\n}\n\ninterface OscillatorOptions extends AudioNodeOptions {\n detune?: number;\n frequency?: number;\n periodicWave?: PeriodicWave;\n type?: OscillatorType;\n}\n\ninterface PageTransitionEventInit extends EventInit {\n persisted?: boolean;\n}\n\ninterface PannerOptions extends AudioNodeOptions {\n coneInnerAngle?: number;\n coneOuterAngle?: number;\n coneOuterGain?: number;\n distanceModel?: DistanceModelType;\n maxDistance?: number;\n orientationX?: number;\n orientationY?: number;\n orientationZ?: number;\n panningModel?: PanningModelType;\n positionX?: number;\n positionY?: number;\n positionZ?: number;\n refDistance?: number;\n rolloffFactor?: number;\n}\n\ninterface PaymentCurrencyAmount {\n currency: string;\n value: string;\n}\n\ninterface PaymentDetailsBase {\n displayItems?: PaymentItem[];\n modifiers?: PaymentDetailsModifier[];\n}\n\ninterface PaymentDetailsInit extends PaymentDetailsBase {\n id?: string;\n total: PaymentItem;\n}\n\ninterface PaymentDetailsModifier {\n additionalDisplayItems?: PaymentItem[];\n data?: any;\n supportedMethods: string;\n total?: PaymentItem;\n}\n\ninterface PaymentDetailsUpdate extends PaymentDetailsBase {\n paymentMethodErrors?: any;\n total?: PaymentItem;\n}\n\ninterface PaymentItem {\n amount: PaymentCurrencyAmount;\n label: string;\n pending?: boolean;\n}\n\ninterface PaymentMethodChangeEventInit extends PaymentRequestUpdateEventInit {\n methodDetails?: any;\n methodName?: string;\n}\n\ninterface PaymentMethodData {\n data?: any;\n supportedMethods: string;\n}\n\ninterface PaymentRequestUpdateEventInit extends EventInit {\n}\n\ninterface PaymentValidationErrors {\n error?: string;\n paymentMethod?: any;\n}\n\ninterface Pbkdf2Params extends Algorithm {\n hash: HashAlgorithmIdentifier;\n iterations: number;\n salt: BufferSource;\n}\n\ninterface PerformanceMarkOptions {\n detail?: any;\n startTime?: DOMHighResTimeStamp;\n}\n\ninterface PerformanceMeasureOptions {\n detail?: any;\n duration?: DOMHighResTimeStamp;\n end?: string | DOMHighResTimeStamp;\n start?: string | DOMHighResTimeStamp;\n}\n\ninterface PerformanceObserverInit {\n buffered?: boolean;\n entryTypes?: string[];\n type?: string;\n}\n\ninterface PeriodicWaveConstraints {\n disableNormalization?: boolean;\n}\n\ninterface PeriodicWaveOptions extends PeriodicWaveConstraints {\n imag?: number[] | Float32Array;\n real?: number[] | Float32Array;\n}\n\ninterface PermissionDescriptor {\n name: PermissionName;\n}\n\ninterface PictureInPictureEventInit extends EventInit {\n pictureInPictureWindow: PictureInPictureWindow;\n}\n\ninterface PlaneLayout {\n offset: number;\n stride: number;\n}\n\ninterface PointerEventInit extends MouseEventInit {\n coalescedEvents?: PointerEvent[];\n height?: number;\n isPrimary?: boolean;\n pointerId?: number;\n pointerType?: string;\n predictedEvents?: PointerEvent[];\n pressure?: number;\n tangentialPressure?: number;\n tiltX?: number;\n tiltY?: number;\n twist?: number;\n width?: number;\n}\n\ninterface PopStateEventInit extends EventInit {\n state?: any;\n}\n\ninterface PositionOptions {\n enableHighAccuracy?: boolean;\n maximumAge?: number;\n timeout?: number;\n}\n\ninterface ProgressEventInit extends EventInit {\n lengthComputable?: boolean;\n loaded?: number;\n total?: number;\n}\n\ninterface PromiseRejectionEventInit extends EventInit {\n promise: Promise<any>;\n reason?: any;\n}\n\ninterface PropertyDefinition {\n inherits: boolean;\n initialValue?: string;\n name: string;\n syntax?: string;\n}\n\ninterface PropertyIndexedKeyframes {\n composite?: CompositeOperationOrAuto | CompositeOperationOrAuto[];\n easing?: string | string[];\n offset?: number | (number | null)[];\n [property: string]: string | string[] | number | null | (number | null)[] | undefined;\n}\n\ninterface PublicKeyCredentialCreationOptions {\n attestation?: AttestationConveyancePreference;\n authenticatorSelection?: AuthenticatorSelectionCriteria;\n challenge: BufferSource;\n excludeCredentials?: PublicKeyCredentialDescriptor[];\n extensions?: AuthenticationExtensionsClientInputs;\n pubKeyCredParams: PublicKeyCredentialParameters[];\n rp: PublicKeyCredentialRpEntity;\n timeout?: number;\n user: PublicKeyCredentialUserEntity;\n}\n\ninterface PublicKeyCredentialDescriptor {\n id: BufferSource;\n transports?: AuthenticatorTransport[];\n type: PublicKeyCredentialType;\n}\n\ninterface PublicKeyCredentialEntity {\n name: string;\n}\n\ninterface PublicKeyCredentialParameters {\n alg: COSEAlgorithmIdentifier;\n type: PublicKeyCredentialType;\n}\n\ninterface PublicKeyCredentialRequestOptions {\n allowCredentials?: PublicKeyCredentialDescriptor[];\n challenge: BufferSource;\n extensions?: AuthenticationExtensionsClientInputs;\n rpId?: string;\n timeout?: number;\n userVerification?: UserVerificationRequirement;\n}\n\ninterface PublicKeyCredentialRpEntity extends PublicKeyCredentialEntity {\n id?: string;\n}\n\ninterface PublicKeyCredentialUserEntity extends PublicKeyCredentialEntity {\n displayName: string;\n id: BufferSource;\n}\n\ninterface PushSubscriptionJSON {\n endpoint?: string;\n expirationTime?: EpochTimeStamp | null;\n keys?: Record<string, string>;\n}\n\ninterface PushSubscriptionOptionsInit {\n applicationServerKey?: BufferSource | string | null;\n userVisibleOnly?: boolean;\n}\n\ninterface QueuingStrategy<T = any> {\n highWaterMark?: number;\n size?: QueuingStrategySize<T>;\n}\n\ninterface QueuingStrategyInit {\n /**\n * Creates a new ByteLengthQueuingStrategy with the provided high water mark.\n *\n * Note that the provided high water mark will not be validated ahead of time. Instead, if it is negative, NaN, or not a number, the resulting ByteLengthQueuingStrategy will cause the corresponding stream constructor to throw.\n */\n highWaterMark: number;\n}\n\ninterface RTCAnswerOptions extends RTCOfferAnswerOptions {\n}\n\ninterface RTCCertificateExpiration {\n expires?: number;\n}\n\ninterface RTCConfiguration {\n bundlePolicy?: RTCBundlePolicy;\n certificates?: RTCCertificate[];\n iceCandidatePoolSize?: number;\n iceServers?: RTCIceServer[];\n iceTransportPolicy?: RTCIceTransportPolicy;\n rtcpMuxPolicy?: RTCRtcpMuxPolicy;\n}\n\ninterface RTCDTMFToneChangeEventInit extends EventInit {\n tone?: string;\n}\n\ninterface RTCDataChannelEventInit extends EventInit {\n channel: RTCDataChannel;\n}\n\ninterface RTCDataChannelInit {\n id?: number;\n maxPacketLifeTime?: number;\n maxRetransmits?: number;\n negotiated?: boolean;\n ordered?: boolean;\n protocol?: string;\n}\n\ninterface RTCDtlsFingerprint {\n algorithm?: string;\n value?: string;\n}\n\ninterface RTCEncodedAudioFrameMetadata {\n contributingSources?: number[];\n payloadType?: number;\n sequenceNumber?: number;\n synchronizationSource?: number;\n}\n\ninterface RTCEncodedVideoFrameMetadata {\n contributingSources?: number[];\n dependencies?: number[];\n frameId?: number;\n height?: number;\n payloadType?: number;\n spatialIndex?: number;\n synchronizationSource?: number;\n temporalIndex?: number;\n timestamp?: number;\n width?: number;\n}\n\ninterface RTCErrorEventInit extends EventInit {\n error: RTCError;\n}\n\ninterface RTCErrorInit {\n errorDetail: RTCErrorDetailType;\n httpRequestStatusCode?: number;\n receivedAlert?: number;\n sctpCauseCode?: number;\n sdpLineNumber?: number;\n sentAlert?: number;\n}\n\ninterface RTCIceCandidateInit {\n candidate?: string;\n sdpMLineIndex?: number | null;\n sdpMid?: string | null;\n usernameFragment?: string | null;\n}\n\ninterface RTCIceCandidatePair {\n local?: RTCIceCandidate;\n remote?: RTCIceCandidate;\n}\n\ninterface RTCIceCandidatePairStats extends RTCStats {\n availableIncomingBitrate?: number;\n availableOutgoingBitrate?: number;\n bytesReceived?: number;\n bytesSent?: number;\n currentRoundTripTime?: number;\n lastPacketReceivedTimestamp?: DOMHighResTimeStamp;\n lastPacketSentTimestamp?: DOMHighResTimeStamp;\n localCandidateId: string;\n nominated?: boolean;\n remoteCandidateId: string;\n requestsReceived?: number;\n requestsSent?: number;\n responsesReceived?: number;\n responsesSent?: number;\n state: RTCStatsIceCandidatePairState;\n totalRoundTripTime?: number;\n transportId: string;\n}\n\ninterface RTCIceServer {\n credential?: string;\n urls: string | string[];\n username?: string;\n}\n\ninterface RTCInboundRtpStreamStats extends RTCReceivedRtpStreamStats {\n audioLevel?: number;\n bytesReceived?: number;\n concealedSamples?: number;\n concealmentEvents?: number;\n decoderImplementation?: string;\n estimatedPlayoutTimestamp?: DOMHighResTimeStamp;\n fecPacketsDiscarded?: number;\n fecPacketsReceived?: number;\n firCount?: number;\n frameHeight?: number;\n frameWidth?: number;\n framesDecoded?: number;\n framesDropped?: number;\n framesPerSecond?: number;\n framesReceived?: number;\n headerBytesReceived?: number;\n insertedSamplesForDeceleration?: number;\n jitterBufferDelay?: number;\n jitterBufferEmittedCount?: number;\n keyFramesDecoded?: number;\n lastPacketReceivedTimestamp?: DOMHighResTimeStamp;\n mid?: string;\n nackCount?: number;\n packetsDiscarded?: number;\n pliCount?: number;\n qpSum?: number;\n remoteId?: string;\n removedSamplesForAcceleration?: number;\n silentConcealedSamples?: number;\n totalAudioEnergy?: number;\n totalDecodeTime?: number;\n totalInterFrameDelay?: number;\n totalProcessingDelay?: number;\n totalSamplesDuration?: number;\n totalSamplesReceived?: number;\n totalSquaredInterFrameDelay?: number;\n trackIdentifier: string;\n}\n\ninterface RTCLocalSessionDescriptionInit {\n sdp?: string;\n type?: RTCSdpType;\n}\n\ninterface RTCOfferAnswerOptions {\n}\n\ninterface RTCOfferOptions extends RTCOfferAnswerOptions {\n iceRestart?: boolean;\n offerToReceiveAudio?: boolean;\n offerToReceiveVideo?: boolean;\n}\n\ninterface RTCOutboundRtpStreamStats extends RTCSentRtpStreamStats {\n firCount?: number;\n frameHeight?: number;\n frameWidth?: number;\n framesEncoded?: number;\n framesPerSecond?: number;\n framesSent?: number;\n headerBytesSent?: number;\n hugeFramesSent?: number;\n keyFramesEncoded?: number;\n mediaSourceId?: string;\n nackCount?: number;\n pliCount?: number;\n qpSum?: number;\n qualityLimitationResolutionChanges?: number;\n remoteId?: string;\n retransmittedBytesSent?: number;\n retransmittedPacketsSent?: number;\n rid?: string;\n rtxSsrc?: number;\n targetBitrate?: number;\n totalEncodeTime?: number;\n totalEncodedBytesTarget?: number;\n totalPacketSendDelay?: number;\n}\n\ninterface RTCPeerConnectionIceErrorEventInit extends EventInit {\n address?: string | null;\n errorCode: number;\n errorText?: string;\n port?: number | null;\n url?: string;\n}\n\ninterface RTCPeerConnectionIceEventInit extends EventInit {\n candidate?: RTCIceCandidate | null;\n url?: string | null;\n}\n\ninterface RTCReceivedRtpStreamStats extends RTCRtpStreamStats {\n jitter?: number;\n packetsLost?: number;\n packetsReceived?: number;\n}\n\ninterface RTCRtcpParameters {\n cname?: string;\n reducedSize?: boolean;\n}\n\ninterface RTCRtpCapabilities {\n codecs: RTCRtpCodecCapability[];\n headerExtensions: RTCRtpHeaderExtensionCapability[];\n}\n\ninterface RTCRtpCodec {\n channels?: number;\n clockRate: number;\n mimeType: string;\n sdpFmtpLine?: string;\n}\n\ninterface RTCRtpCodecCapability extends RTCRtpCodec {\n}\n\ninterface RTCRtpCodecParameters extends RTCRtpCodec {\n payloadType: number;\n}\n\ninterface RTCRtpCodingParameters {\n rid?: string;\n}\n\ninterface RTCRtpContributingSource {\n audioLevel?: number;\n rtpTimestamp: number;\n source: number;\n timestamp: DOMHighResTimeStamp;\n}\n\ninterface RTCRtpEncodingParameters extends RTCRtpCodingParameters {\n active?: boolean;\n maxBitrate?: number;\n maxFramerate?: number;\n networkPriority?: RTCPriorityType;\n priority?: RTCPriorityType;\n scaleResolutionDownBy?: number;\n}\n\ninterface RTCRtpHeaderExtensionCapability {\n uri: string;\n}\n\ninterface RTCRtpHeaderExtensionParameters {\n encrypted?: boolean;\n id: number;\n uri: string;\n}\n\ninterface RTCRtpParameters {\n codecs: RTCRtpCodecParameters[];\n headerExtensions: RTCRtpHeaderExtensionParameters[];\n rtcp: RTCRtcpParameters;\n}\n\ninterface RTCRtpReceiveParameters extends RTCRtpParameters {\n}\n\ninterface RTCRtpSendParameters extends RTCRtpParameters {\n degradationPreference?: RTCDegradationPreference;\n encodings: RTCRtpEncodingParameters[];\n transactionId: string;\n}\n\ninterface RTCRtpStreamStats extends RTCStats {\n codecId?: string;\n kind: string;\n ssrc: number;\n transportId?: string;\n}\n\ninterface RTCRtpSynchronizationSource extends RTCRtpContributingSource {\n}\n\ninterface RTCRtpTransceiverInit {\n direction?: RTCRtpTransceiverDirection;\n sendEncodings?: RTCRtpEncodingParameters[];\n streams?: MediaStream[];\n}\n\ninterface RTCSentRtpStreamStats extends RTCRtpStreamStats {\n bytesSent?: number;\n packetsSent?: number;\n}\n\ninterface RTCSessionDescriptionInit {\n sdp?: string;\n type: RTCSdpType;\n}\n\ninterface RTCSetParameterOptions {\n}\n\ninterface RTCStats {\n id: string;\n timestamp: DOMHighResTimeStamp;\n type: RTCStatsType;\n}\n\ninterface RTCTrackEventInit extends EventInit {\n receiver: RTCRtpReceiver;\n streams?: MediaStream[];\n track: MediaStreamTrack;\n transceiver: RTCRtpTransceiver;\n}\n\ninterface RTCTransportStats extends RTCStats {\n bytesReceived?: number;\n bytesSent?: number;\n dtlsCipher?: string;\n dtlsState: RTCDtlsTransportState;\n localCertificateId?: string;\n remoteCertificateId?: string;\n selectedCandidatePairId?: string;\n srtpCipher?: string;\n tlsVersion?: string;\n}\n\ninterface ReadableStreamGetReaderOptions {\n /**\n * Creates a ReadableStreamBYOBReader and locks the stream to the new reader.\n *\n * This call behaves the same way as the no-argument variant, except that it only works on readable byte streams, i.e. streams which were constructed specifically with the ability to handle "bring your own buffer" reading. The returned BYOB reader provides the ability to directly read individual chunks from the stream via its read() method, into developer-supplied buffers, allowing more precise control over allocation.\n */\n mode?: ReadableStreamReaderMode;\n}\n\ninterface ReadableStreamReadDoneResult<T> {\n done: true;\n value?: T;\n}\n\ninterface ReadableStreamReadValueResult<T> {\n done: false;\n value: T;\n}\n\ninterface ReadableWritablePair<R = any, W = any> {\n readable: ReadableStream<R>;\n /**\n * Provides a convenient, chainable way of piping this readable stream through a transform stream (or any other { writable, readable } pair). It simply pipes the stream into the writable side of the supplied pair, and returns the readable side for further use.\n *\n * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.\n */\n writable: WritableStream<W>;\n}\n\ninterface RegistrationOptions {\n scope?: string;\n type?: WorkerType;\n updateViaCache?: ServiceWorkerUpdateViaCache;\n}\n\ninterface ReportingObserverOptions {\n buffered?: boolean;\n types?: string[];\n}\n\ninterface RequestInit {\n /** A BodyInit object or null to set request\'s body. */\n body?: BodyInit | null;\n /** A string indicating how the request will interact with the browser\'s cache to set request\'s cache. */\n cache?: RequestCache;\n /** A string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. Sets request\'s credentials. */\n credentials?: RequestCredentials;\n /** A Headers object, an object literal, or an array of two-item arrays to set request\'s headers. */\n headers?: HeadersInit;\n /** A cryptographic hash of the resource to be fetched by request. Sets request\'s integrity. */\n integrity?: string;\n /** A boolean to set request\'s keepalive. */\n keepalive?: boolean;\n /** A string to set request\'s method. */\n method?: string;\n /** A string to indicate whether the request will use CORS, or will be restricted to same-origin URLs. Sets request\'s mode. */\n mode?: RequestMode;\n priority?: RequestPriority;\n /** A string indicating whether request follows redirects, results in an error upon encountering a redirect, or returns the redirect (in an opaque fashion). Sets request\'s redirect. */\n redirect?: RequestRedirect;\n /** A string whose value is a same-origin URL, "about:client", or the empty string, to set request\'s referrer. */\n referrer?: string;\n /** A referrer policy to set request\'s referrerPolicy. */\n referrerPolicy?: ReferrerPolicy;\n /** An AbortSignal to set request\'s signal. */\n signal?: AbortSignal | null;\n /** Can only be null. Used to disassociate request from any Window. */\n window?: null;\n}\n\ninterface ResizeObserverOptions {\n box?: ResizeObserverBoxOptions;\n}\n\ninterface ResponseInit {\n headers?: HeadersInit;\n status?: number;\n statusText?: string;\n}\n\ninterface RsaHashedImportParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm {\n hash: KeyAlgorithm;\n}\n\ninterface RsaHashedKeyGenParams extends RsaKeyGenParams {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface RsaKeyAlgorithm extends KeyAlgorithm {\n modulusLength: number;\n publicExponent: BigInteger;\n}\n\ninterface RsaKeyGenParams extends Algorithm {\n modulusLength: number;\n publicExponent: BigInteger;\n}\n\ninterface RsaOaepParams extends Algorithm {\n label?: BufferSource;\n}\n\ninterface RsaOtherPrimesInfo {\n d?: string;\n r?: string;\n t?: string;\n}\n\ninterface RsaPssParams extends Algorithm {\n saltLength: number;\n}\n\ninterface SVGBoundingBoxOptions {\n clipped?: boolean;\n fill?: boolean;\n markers?: boolean;\n stroke?: boolean;\n}\n\ninterface ScrollIntoViewOptions extends ScrollOptions {\n block?: ScrollLogicalPosition;\n inline?: ScrollLogicalPosition;\n}\n\ninterface ScrollOptions {\n behavior?: ScrollBehavior;\n}\n\ninterface ScrollToOptions extends ScrollOptions {\n left?: number;\n top?: number;\n}\n\ninterface SecurityPolicyViolationEventInit extends EventInit {\n blockedURI?: string;\n columnNumber?: number;\n disposition: SecurityPolicyViolationEventDisposition;\n documentURI: string;\n effectiveDirective: string;\n lineNumber?: number;\n originalPolicy: string;\n referrer?: string;\n sample?: string;\n sourceFile?: string;\n statusCode: number;\n violatedDirective: string;\n}\n\ninterface ShadowRootInit {\n delegatesFocus?: boolean;\n mode: ShadowRootMode;\n slotAssignment?: SlotAssignmentMode;\n}\n\ninterface ShareData {\n files?: File[];\n text?: string;\n title?: string;\n url?: string;\n}\n\ninterface SpeechSynthesisErrorEventInit extends SpeechSynthesisEventInit {\n error: SpeechSynthesisErrorCode;\n}\n\ninterface SpeechSynthesisEventInit extends EventInit {\n charIndex?: number;\n charLength?: number;\n elapsedTime?: number;\n name?: string;\n utterance: SpeechSynthesisUtterance;\n}\n\ninterface StaticRangeInit {\n endContainer: Node;\n endOffset: number;\n startContainer: Node;\n startOffset: number;\n}\n\ninterface StereoPannerOptions extends AudioNodeOptions {\n pan?: number;\n}\n\ninterface StorageEstimate {\n quota?: number;\n usage?: number;\n}\n\ninterface StorageEventInit extends EventInit {\n key?: string | null;\n newValue?: string | null;\n oldValue?: string | null;\n storageArea?: Storage | null;\n url?: string;\n}\n\ninterface StreamPipeOptions {\n preventAbort?: boolean;\n preventCancel?: boolean;\n /**\n * Pipes this readable stream to a given writable stream destination. The way in which the piping process behaves under various error conditions can be customized with a number of passed options. It returns a promise that fulfills when the piping process completes successfully, or rejects if any errors were encountered.\n *\n * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.\n *\n * Errors and closures of the source and destination streams propagate as follows:\n *\n * An error in this source readable stream will abort destination, unless preventAbort is truthy. The returned promise will be rejected with the source\'s error, or with any error that occurs during aborting the destination.\n *\n * An error in destination will cancel this source readable stream, unless preventCancel is truthy. The returned promise will be rejected with the destination\'s error, or with any error that occurs during canceling the source.\n *\n * When this source readable stream closes, destination will be closed, unless preventClose is truthy. The returned promise will be fulfilled once this process completes, unless an error is encountered while closing the destination, in which case it will be rejected with that error.\n *\n * If destination starts out closed or closing, this source readable stream will be canceled, unless preventCancel is true. The returned promise will be rejected with an error indicating piping to a closed stream failed, or with any error that occurs during canceling the source.\n *\n * The signal option can be set to an AbortSignal to allow aborting an ongoing pipe operation via the corresponding AbortController. In this case, this source readable stream will be canceled, and destination aborted, unless the respective options preventCancel or preventAbort are set.\n */\n preventClose?: boolean;\n signal?: AbortSignal;\n}\n\ninterface StructuredSerializeOptions {\n transfer?: Transferable[];\n}\n\ninterface SubmitEventInit extends EventInit {\n submitter?: HTMLElement | null;\n}\n\ninterface TextDecodeOptions {\n stream?: boolean;\n}\n\ninterface TextDecoderOptions {\n fatal?: boolean;\n ignoreBOM?: boolean;\n}\n\ninterface TextEncoderEncodeIntoResult {\n read: number;\n written: number;\n}\n\ninterface ToggleEventInit extends EventInit {\n newState?: string;\n oldState?: string;\n}\n\ninterface TouchEventInit extends EventModifierInit {\n changedTouches?: Touch[];\n targetTouches?: Touch[];\n touches?: Touch[];\n}\n\ninterface TouchInit {\n altitudeAngle?: number;\n azimuthAngle?: number;\n clientX?: number;\n clientY?: number;\n force?: number;\n identifier: number;\n pageX?: number;\n pageY?: number;\n radiusX?: number;\n radiusY?: number;\n rotationAngle?: number;\n screenX?: number;\n screenY?: number;\n target: EventTarget;\n touchType?: TouchType;\n}\n\ninterface TrackEventInit extends EventInit {\n track?: TextTrack | null;\n}\n\ninterface Transformer<I = any, O = any> {\n flush?: TransformerFlushCallback<O>;\n readableType?: undefined;\n start?: TransformerStartCallback<O>;\n transform?: TransformerTransformCallback<I, O>;\n writableType?: undefined;\n}\n\ninterface TransitionEventInit extends EventInit {\n elapsedTime?: number;\n propertyName?: string;\n pseudoElement?: string;\n}\n\ninterface UIEventInit extends EventInit {\n detail?: number;\n view?: Window | null;\n /** @deprecated */\n which?: number;\n}\n\ninterface ULongRange {\n max?: number;\n min?: number;\n}\n\ninterface UnderlyingByteSource {\n autoAllocateChunkSize?: number;\n cancel?: UnderlyingSourceCancelCallback;\n pull?: (controller: ReadableByteStreamController) => void | PromiseLike<void>;\n start?: (controller: ReadableByteStreamController) => any;\n type: "bytes";\n}\n\ninterface UnderlyingDefaultSource<R = any> {\n cancel?: UnderlyingSourceCancelCallback;\n pull?: (controller: ReadableStreamDefaultController<R>) => void | PromiseLike<void>;\n start?: (controller: ReadableStreamDefaultController<R>) => any;\n type?: undefined;\n}\n\ninterface UnderlyingSink<W = any> {\n abort?: UnderlyingSinkAbortCallback;\n close?: UnderlyingSinkCloseCallback;\n start?: UnderlyingSinkStartCallback;\n type?: undefined;\n write?: UnderlyingSinkWriteCallback<W>;\n}\n\ninterface UnderlyingSource<R = any> {\n autoAllocateChunkSize?: number;\n cancel?: UnderlyingSourceCancelCallback;\n pull?: UnderlyingSourcePullCallback<R>;\n start?: UnderlyingSourceStartCallback<R>;\n type?: ReadableStreamType;\n}\n\ninterface ValidityStateFlags {\n badInput?: boolean;\n customError?: boolean;\n patternMismatch?: boolean;\n rangeOverflow?: boolean;\n rangeUnderflow?: boolean;\n stepMismatch?: boolean;\n tooLong?: boolean;\n tooShort?: boolean;\n typeMismatch?: boolean;\n valueMissing?: boolean;\n}\n\ninterface VideoColorSpaceInit {\n fullRange?: boolean | null;\n matrix?: VideoMatrixCoefficients | null;\n primaries?: VideoColorPrimaries | null;\n transfer?: VideoTransferCharacteristics | null;\n}\n\ninterface VideoConfiguration {\n bitrate: number;\n colorGamut?: ColorGamut;\n contentType: string;\n framerate: number;\n hdrMetadataType?: HdrMetadataType;\n height: number;\n scalabilityMode?: string;\n transferFunction?: TransferFunction;\n width: number;\n}\n\ninterface VideoDecoderConfig {\n codec: string;\n codedHeight?: number;\n codedWidth?: number;\n colorSpace?: VideoColorSpaceInit;\n description?: AllowSharedBufferSource;\n displayAspectHeight?: number;\n displayAspectWidth?: number;\n hardwareAcceleration?: HardwareAcceleration;\n optimizeForLatency?: boolean;\n}\n\ninterface VideoDecoderInit {\n error: WebCodecsErrorCallback;\n output: VideoFrameOutputCallback;\n}\n\ninterface VideoDecoderSupport {\n config?: VideoDecoderConfig;\n supported?: boolean;\n}\n\ninterface VideoEncoderConfig {\n alpha?: AlphaOption;\n avc?: AvcEncoderConfig;\n bitrate?: number;\n bitrateMode?: VideoEncoderBitrateMode;\n codec: string;\n displayHeight?: number;\n displayWidth?: number;\n framerate?: number;\n hardwareAcceleration?: HardwareAcceleration;\n height: number;\n latencyMode?: LatencyMode;\n scalabilityMode?: string;\n width: number;\n}\n\ninterface VideoEncoderEncodeOptions {\n keyFrame?: boolean;\n}\n\ninterface VideoEncoderInit {\n error: WebCodecsErrorCallback;\n output: EncodedVideoChunkOutputCallback;\n}\n\ninterface VideoEncoderSupport {\n config?: VideoEncoderConfig;\n supported?: boolean;\n}\n\ninterface VideoFrameBufferInit {\n codedHeight: number;\n codedWidth: number;\n colorSpace?: VideoColorSpaceInit;\n displayHeight?: number;\n displayWidth?: number;\n duration?: number;\n format: VideoPixelFormat;\n layout?: PlaneLayout[];\n timestamp: number;\n visibleRect?: DOMRectInit;\n}\n\ninterface VideoFrameCallbackMetadata {\n captureTime?: DOMHighResTimeStamp;\n expectedDisplayTime: DOMHighResTimeStamp;\n height: number;\n mediaTime: number;\n presentationTime: DOMHighResTimeStamp;\n presentedFrames: number;\n processingDuration?: number;\n receiveTime?: DOMHighResTimeStamp;\n rtpTimestamp?: number;\n width: number;\n}\n\ninterface VideoFrameCopyToOptions {\n layout?: PlaneLayout[];\n rect?: DOMRectInit;\n}\n\ninterface VideoFrameInit {\n alpha?: AlphaOption;\n displayHeight?: number;\n displayWidth?: number;\n duration?: number;\n timestamp?: number;\n visibleRect?: DOMRectInit;\n}\n\ninterface WaveShaperOptions extends AudioNodeOptions {\n curve?: number[] | Float32Array;\n oversample?: OverSampleType;\n}\n\ninterface WebGLContextAttributes {\n alpha?: boolean;\n antialias?: boolean;\n depth?: boolean;\n desynchronized?: boolean;\n failIfMajorPerformanceCaveat?: boolean;\n powerPreference?: WebGLPowerPreference;\n premultipliedAlpha?: boolean;\n preserveDrawingBuffer?: boolean;\n stencil?: boolean;\n}\n\ninterface WebGLContextEventInit extends EventInit {\n statusMessage?: string;\n}\n\ninterface WebTransportCloseInfo {\n closeCode?: number;\n reason?: string;\n}\n\ninterface WebTransportErrorOptions {\n source?: WebTransportErrorSource;\n streamErrorCode?: number | null;\n}\n\ninterface WebTransportHash {\n algorithm?: string;\n value?: BufferSource;\n}\n\ninterface WebTransportOptions {\n allowPooling?: boolean;\n congestionControl?: WebTransportCongestionControl;\n requireUnreliable?: boolean;\n serverCertificateHashes?: WebTransportHash[];\n}\n\ninterface WebTransportSendStreamOptions {\n sendOrder?: number;\n}\n\ninterface WheelEventInit extends MouseEventInit {\n deltaMode?: number;\n deltaX?: number;\n deltaY?: number;\n deltaZ?: number;\n}\n\ninterface WindowPostMessageOptions extends StructuredSerializeOptions {\n targetOrigin?: string;\n}\n\ninterface WorkerOptions {\n credentials?: RequestCredentials;\n name?: string;\n type?: WorkerType;\n}\n\ninterface WorkletOptions {\n credentials?: RequestCredentials;\n}\n\ninterface WriteParams {\n data?: BufferSource | Blob | string | null;\n position?: number | null;\n size?: number | null;\n type: WriteCommandType;\n}\n\ntype NodeFilter = ((node: Node) => number) | { acceptNode(node: Node): number; };\n\ndeclare var NodeFilter: {\n readonly FILTER_ACCEPT: 1;\n readonly FILTER_REJECT: 2;\n readonly FILTER_SKIP: 3;\n readonly SHOW_ALL: 0xFFFFFFFF;\n readonly SHOW_ELEMENT: 0x1;\n readonly SHOW_ATTRIBUTE: 0x2;\n readonly SHOW_TEXT: 0x4;\n readonly SHOW_CDATA_SECTION: 0x8;\n readonly SHOW_ENTITY_REFERENCE: 0x10;\n readonly SHOW_ENTITY: 0x20;\n readonly SHOW_PROCESSING_INSTRUCTION: 0x40;\n readonly SHOW_COMMENT: 0x80;\n readonly SHOW_DOCUMENT: 0x100;\n readonly SHOW_DOCUMENT_TYPE: 0x200;\n readonly SHOW_DOCUMENT_FRAGMENT: 0x400;\n readonly SHOW_NOTATION: 0x800;\n};\n\ntype XPathNSResolver = ((prefix: string | null) => string | null) | { lookupNamespaceURI(prefix: string | null): string | null; };\n\n/**\n * The ANGLE_instanced_arrays extension is part of the WebGL API and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays)\n */\ninterface ANGLE_instanced_arrays {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawArraysInstancedANGLE) */\n drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawElementsInstancedANGLE) */\n drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/vertexAttribDivisorANGLE) */\n vertexAttribDivisorANGLE(index: GLuint, divisor: GLuint): void;\n readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: 0x88FE;\n}\n\ninterface ARIAMixin {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaAtomic) */\n ariaAtomic: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaAutoComplete) */\n ariaAutoComplete: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaBusy) */\n ariaBusy: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaChecked) */\n ariaChecked: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaColCount) */\n ariaColCount: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaColIndex) */\n ariaColIndex: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaColSpan) */\n ariaColSpan: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaCurrent) */\n ariaCurrent: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaDescription) */\n ariaDescription: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaDisabled) */\n ariaDisabled: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaExpanded) */\n ariaExpanded: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaHasPopup) */\n ariaHasPopup: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaHidden) */\n ariaHidden: string | null;\n ariaInvalid: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaKeyShortcuts) */\n ariaKeyShortcuts: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLabel) */\n ariaLabel: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLevel) */\n ariaLevel: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLive) */\n ariaLive: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaModal) */\n ariaModal: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaMultiLine) */\n ariaMultiLine: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaMultiSelectable) */\n ariaMultiSelectable: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaOrientation) */\n ariaOrientation: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaPlaceholder) */\n ariaPlaceholder: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaPosInSet) */\n ariaPosInSet: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaPressed) */\n ariaPressed: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaReadOnly) */\n ariaReadOnly: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRequired) */\n ariaRequired: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRoleDescription) */\n ariaRoleDescription: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRowCount) */\n ariaRowCount: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRowIndex) */\n ariaRowIndex: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRowSpan) */\n ariaRowSpan: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaSelected) */\n ariaSelected: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaSetSize) */\n ariaSetSize: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaSort) */\n ariaSort: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueMax) */\n ariaValueMax: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueMin) */\n ariaValueMin: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueNow) */\n ariaValueNow: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueText) */\n ariaValueText: string | null;\n role: string | null;\n}\n\n/**\n * A controller object that allows you to abort one or more DOM requests as and when desired.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController)\n */\ninterface AbortController {\n /**\n * Returns the AbortSignal object associated with this object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/signal)\n */\n readonly signal: AbortSignal;\n /**\n * Invoking this method will set this object\'s AbortSignal\'s aborted flag and signal to any observers that the associated activity is to be aborted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/abort)\n */\n abort(reason?: any): void;\n}\n\ndeclare var AbortController: {\n prototype: AbortController;\n new(): AbortController;\n};\n\ninterface AbortSignalEventMap {\n "abort": Event;\n}\n\n/**\n * A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal)\n */\ninterface AbortSignal extends EventTarget {\n /**\n * Returns true if this AbortSignal\'s AbortController has signaled to abort, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/aborted)\n */\n readonly aborted: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_event) */\n onabort: ((this: AbortSignal, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/reason) */\n readonly reason: any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/throwIfAborted) */\n throwIfAborted(): void;\n addEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AbortSignal: {\n prototype: AbortSignal;\n new(): AbortSignal;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_static) */\n abort(reason?: any): AbortSignal;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/timeout_static) */\n timeout(milliseconds: number): AbortSignal;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange) */\ninterface AbstractRange {\n /**\n * Returns true if range is collapsed, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/collapsed)\n */\n readonly collapsed: boolean;\n /**\n * Returns range\'s end node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/endContainer)\n */\n readonly endContainer: Node;\n /**\n * Returns range\'s end offset.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/endOffset)\n */\n readonly endOffset: number;\n /**\n * Returns range\'s start node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/startContainer)\n */\n readonly startContainer: Node;\n /**\n * Returns range\'s start offset.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/startOffset)\n */\n readonly startOffset: number;\n}\n\ndeclare var AbstractRange: {\n prototype: AbstractRange;\n new(): AbstractRange;\n};\n\ninterface AbstractWorkerEventMap {\n "error": ErrorEvent;\n}\n\ninterface AbstractWorker {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/error_event) */\n onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;\n addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/**\n * A node able to provide real-time frequency and time-domain analysis information. It is an AudioNode that passes the audio stream unchanged from the input to the output, but allows you to take the generated data, process it, and create audio visualizations.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode)\n */\ninterface AnalyserNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/fftSize) */\n fftSize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/frequencyBinCount) */\n readonly frequencyBinCount: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/maxDecibels) */\n maxDecibels: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/minDecibels) */\n minDecibels: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/smoothingTimeConstant) */\n smoothingTimeConstant: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getByteFrequencyData) */\n getByteFrequencyData(array: Uint8Array): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getByteTimeDomainData) */\n getByteTimeDomainData(array: Uint8Array): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getFloatFrequencyData) */\n getFloatFrequencyData(array: Float32Array): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getFloatTimeDomainData) */\n getFloatTimeDomainData(array: Float32Array): void;\n}\n\ndeclare var AnalyserNode: {\n prototype: AnalyserNode;\n new(context: BaseAudioContext, options?: AnalyserOptions): AnalyserNode;\n};\n\ninterface Animatable {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animate) */\n animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAnimations) */\n getAnimations(options?: GetAnimationsOptions): Animation[];\n}\n\ninterface AnimationEventMap {\n "cancel": AnimationPlaybackEvent;\n "finish": AnimationPlaybackEvent;\n "remove": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation) */\ninterface Animation extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/currentTime) */\n currentTime: CSSNumberish | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/effect) */\n effect: AnimationEffect | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finished) */\n readonly finished: Promise<Animation>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/id) */\n id: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/cancel_event) */\n oncancel: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finish_event) */\n onfinish: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/remove_event) */\n onremove: ((this: Animation, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/pending) */\n readonly pending: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/playState) */\n readonly playState: AnimationPlayState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/playbackRate) */\n playbackRate: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/ready) */\n readonly ready: Promise<Animation>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/replaceState) */\n readonly replaceState: AnimationReplaceState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/startTime) */\n startTime: CSSNumberish | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/timeline) */\n timeline: AnimationTimeline | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/cancel) */\n cancel(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/commitStyles) */\n commitStyles(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finish) */\n finish(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/pause) */\n pause(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/persist) */\n persist(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/play) */\n play(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/reverse) */\n reverse(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/updatePlaybackRate) */\n updatePlaybackRate(playbackRate: number): void;\n addEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Animation: {\n prototype: Animation;\n new(effect?: AnimationEffect | null, timeline?: AnimationTimeline | null): Animation;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect) */\ninterface AnimationEffect {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/getComputedTiming) */\n getComputedTiming(): ComputedEffectTiming;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/getTiming) */\n getTiming(): EffectTiming;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/updateTiming) */\n updateTiming(timing?: OptionalEffectTiming): void;\n}\n\ndeclare var AnimationEffect: {\n prototype: AnimationEffect;\n new(): AnimationEffect;\n};\n\n/**\n * Events providing information related to animations.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent)\n */\ninterface AnimationEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/animationName) */\n readonly animationName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/elapsedTime) */\n readonly elapsedTime: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/pseudoElement) */\n readonly pseudoElement: string;\n}\n\ndeclare var AnimationEvent: {\n prototype: AnimationEvent;\n new(type: string, animationEventInitDict?: AnimationEventInit): AnimationEvent;\n};\n\ninterface AnimationFrameProvider {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/cancelAnimationFrame) */\n cancelAnimationFrame(handle: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/requestAnimationFrame) */\n requestAnimationFrame(callback: FrameRequestCallback): number;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent) */\ninterface AnimationPlaybackEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent/currentTime) */\n readonly currentTime: CSSNumberish | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent/timelineTime) */\n readonly timelineTime: CSSNumberish | null;\n}\n\ndeclare var AnimationPlaybackEvent: {\n prototype: AnimationPlaybackEvent;\n new(type: string, eventInitDict?: AnimationPlaybackEventInit): AnimationPlaybackEvent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationTimeline) */\ninterface AnimationTimeline {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationTimeline/currentTime) */\n readonly currentTime: CSSNumberish | null;\n}\n\ndeclare var AnimationTimeline: {\n prototype: AnimationTimeline;\n new(): AnimationTimeline;\n};\n\n/**\n * A DOM element\'s attribute as an object. In most DOM methods, you will probably directly retrieve the attribute as a string (e.g., Element.getAttribute(), but certain functions (e.g., Element.getAttributeNode()) or means of iterating give Attr types.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr)\n */\ninterface Attr extends Node {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/localName) */\n readonly localName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/namespaceURI) */\n readonly namespaceURI: string | null;\n readonly ownerDocument: Document;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/ownerElement) */\n readonly ownerElement: Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/prefix) */\n readonly prefix: string | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/specified)\n */\n readonly specified: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/value) */\n value: string;\n}\n\ndeclare var Attr: {\n prototype: Attr;\n new(): Attr;\n};\n\n/**\n * A short audio asset residing in memory, created from an audio file using the AudioContext.decodeAudioData() method, or from raw data using AudioContext.createBuffer(). Once put into an AudioBuffer, the audio can then be played by being passed into an AudioBufferSourceNode.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer)\n */\ninterface AudioBuffer {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/duration) */\n readonly duration: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/numberOfChannels) */\n readonly numberOfChannels: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/sampleRate) */\n readonly sampleRate: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/copyFromChannel) */\n copyFromChannel(destination: Float32Array, channelNumber: number, bufferOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/copyToChannel) */\n copyToChannel(source: Float32Array, channelNumber: number, bufferOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/getChannelData) */\n getChannelData(channel: number): Float32Array;\n}\n\ndeclare var AudioBuffer: {\n prototype: AudioBuffer;\n new(options: AudioBufferOptions): AudioBuffer;\n};\n\n/**\n * An AudioScheduledSourceNode which represents an audio source consisting of in-memory audio data, stored in an AudioBuffer. It\'s especially useful for playing back audio which has particularly stringent timing accuracy requirements, such as for sounds that must match a specific rhythm and can be kept in memory rather than being played from disk or the network.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode)\n */\ninterface AudioBufferSourceNode extends AudioScheduledSourceNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/buffer) */\n buffer: AudioBuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/detune) */\n readonly detune: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loop) */\n loop: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loopEnd) */\n loopEnd: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loopStart) */\n loopStart: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/playbackRate) */\n readonly playbackRate: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/start) */\n start(when?: number, offset?: number, duration?: number): void;\n addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioBufferSourceNode: {\n prototype: AudioBufferSourceNode;\n new(context: BaseAudioContext, options?: AudioBufferSourceOptions): AudioBufferSourceNode;\n};\n\n/**\n * An audio-processing graph built from audio modules linked together, each represented by an AudioNode.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext)\n */\ninterface AudioContext extends BaseAudioContext {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/baseLatency) */\n readonly baseLatency: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/outputLatency) */\n readonly outputLatency: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/close) */\n close(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaElementSource) */\n createMediaElementSource(mediaElement: HTMLMediaElement): MediaElementAudioSourceNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamDestination) */\n createMediaStreamDestination(): MediaStreamAudioDestinationNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamSource) */\n createMediaStreamSource(mediaStream: MediaStream): MediaStreamAudioSourceNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/getOutputTimestamp) */\n getOutputTimestamp(): AudioTimestamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/resume) */\n resume(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/suspend) */\n suspend(): Promise<void>;\n addEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioContext: {\n prototype: AudioContext;\n new(contextOptions?: AudioContextOptions): AudioContext;\n};\n\n/**\n * AudioDestinationNode has no output (as it is the output, no more AudioNode can be linked after it in the audio graph) and one input. The number of channels in the input must be between 0 and the maxChannelCount value or an exception is raised.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDestinationNode)\n */\ninterface AudioDestinationNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDestinationNode/maxChannelCount) */\n readonly maxChannelCount: number;\n}\n\ndeclare var AudioDestinationNode: {\n prototype: AudioDestinationNode;\n new(): AudioDestinationNode;\n};\n\n/**\n * The position and orientation of the unique person listening to the audio scene, and is used in audio spatialization. All PannerNodes spatialize in relation to the AudioListener stored in the BaseAudioContext.listener attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener)\n */\ninterface AudioListener {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/forwardX) */\n readonly forwardX: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/forwardY) */\n readonly forwardY: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/forwardZ) */\n readonly forwardZ: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/positionX) */\n readonly positionX: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/positionY) */\n readonly positionY: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/positionZ) */\n readonly positionZ: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/upX) */\n readonly upX: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/upY) */\n readonly upY: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/upZ) */\n readonly upZ: AudioParam;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/setOrientation)\n */\n setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/setPosition)\n */\n setPosition(x: number, y: number, z: number): void;\n}\n\ndeclare var AudioListener: {\n prototype: AudioListener;\n new(): AudioListener;\n};\n\n/**\n * A generic interface for representing an audio processing module. Examples include:\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode)\n */\ninterface AudioNode extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelCount) */\n channelCount: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelCountMode) */\n channelCountMode: ChannelCountMode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelInterpretation) */\n channelInterpretation: ChannelInterpretation;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/context) */\n readonly context: BaseAudioContext;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/numberOfInputs) */\n readonly numberOfInputs: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/numberOfOutputs) */\n readonly numberOfOutputs: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/connect) */\n connect(destinationNode: AudioNode, output?: number, input?: number): AudioNode;\n connect(destinationParam: AudioParam, output?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/disconnect) */\n disconnect(): void;\n disconnect(output: number): void;\n disconnect(destinationNode: AudioNode): void;\n disconnect(destinationNode: AudioNode, output: number): void;\n disconnect(destinationNode: AudioNode, output: number, input: number): void;\n disconnect(destinationParam: AudioParam): void;\n disconnect(destinationParam: AudioParam, output: number): void;\n}\n\ndeclare var AudioNode: {\n prototype: AudioNode;\n new(): AudioNode;\n};\n\n/**\n * The Web Audio API\'s AudioParam interface represents an audio-related parameter, usually a parameter of an AudioNode (such as GainNode.gain).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam)\n */\ninterface AudioParam {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/automationRate) */\n automationRate: AutomationRate;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/defaultValue) */\n readonly defaultValue: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/maxValue) */\n readonly maxValue: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/minValue) */\n readonly minValue: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/value) */\n value: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/cancelAndHoldAtTime) */\n cancelAndHoldAtTime(cancelTime: number): AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/cancelScheduledValues) */\n cancelScheduledValues(cancelTime: number): AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/exponentialRampToValueAtTime) */\n exponentialRampToValueAtTime(value: number, endTime: number): AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/linearRampToValueAtTime) */\n linearRampToValueAtTime(value: number, endTime: number): AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setTargetAtTime) */\n setTargetAtTime(target: number, startTime: number, timeConstant: number): AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setValueAtTime) */\n setValueAtTime(value: number, startTime: number): AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setValueCurveAtTime) */\n setValueCurveAtTime(values: number[] | Float32Array, startTime: number, duration: number): AudioParam;\n}\n\ndeclare var AudioParam: {\n prototype: AudioParam;\n new(): AudioParam;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParamMap) */\ninterface AudioParamMap {\n forEach(callbackfn: (value: AudioParam, key: string, parent: AudioParamMap) => void, thisArg?: any): void;\n}\n\ndeclare var AudioParamMap: {\n prototype: AudioParamMap;\n new(): AudioParamMap;\n};\n\n/**\n * The Web Audio API events that occur when a ScriptProcessorNode input buffer is ready to be processed.\n * @deprecated As of the August 29 2014 Web Audio API spec publication, this feature has been marked as deprecated, and is soon to be replaced by AudioWorklet.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent)\n */\ninterface AudioProcessingEvent extends Event {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/inputBuffer)\n */\n readonly inputBuffer: AudioBuffer;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/outputBuffer)\n */\n readonly outputBuffer: AudioBuffer;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/playbackTime)\n */\n readonly playbackTime: number;\n}\n\n/** @deprecated */\ndeclare var AudioProcessingEvent: {\n prototype: AudioProcessingEvent;\n new(type: string, eventInitDict: AudioProcessingEventInit): AudioProcessingEvent;\n};\n\ninterface AudioScheduledSourceNodeEventMap {\n "ended": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode) */\ninterface AudioScheduledSourceNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/ended_event) */\n onended: ((this: AudioScheduledSourceNode, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/start) */\n start(when?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/stop) */\n stop(when?: number): void;\n addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioScheduledSourceNode: {\n prototype: AudioScheduledSourceNode;\n new(): AudioScheduledSourceNode;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorklet)\n */\ninterface AudioWorklet extends Worklet {\n}\n\ndeclare var AudioWorklet: {\n prototype: AudioWorklet;\n new(): AudioWorklet;\n};\n\ninterface AudioWorkletNodeEventMap {\n "processorerror": Event;\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode)\n */\ninterface AudioWorkletNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/processorerror_event) */\n onprocessorerror: ((this: AudioWorkletNode, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/parameters) */\n readonly parameters: AudioParamMap;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/port) */\n readonly port: MessagePort;\n addEventListener<K extends keyof AudioWorkletNodeEventMap>(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof AudioWorkletNodeEventMap>(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioWorkletNode: {\n prototype: AudioWorkletNode;\n new(context: BaseAudioContext, name: string, options?: AudioWorkletNodeOptions): AudioWorkletNode;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse)\n */\ninterface AuthenticatorAssertionResponse extends AuthenticatorResponse {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/authenticatorData) */\n readonly authenticatorData: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/signature) */\n readonly signature: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/userHandle) */\n readonly userHandle: ArrayBuffer | null;\n}\n\ndeclare var AuthenticatorAssertionResponse: {\n prototype: AuthenticatorAssertionResponse;\n new(): AuthenticatorAssertionResponse;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse)\n */\ninterface AuthenticatorAttestationResponse extends AuthenticatorResponse {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/attestationObject) */\n readonly attestationObject: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getAuthenticatorData) */\n getAuthenticatorData(): ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getPublicKey) */\n getPublicKey(): ArrayBuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getPublicKeyAlgorithm) */\n getPublicKeyAlgorithm(): COSEAlgorithmIdentifier;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getTransports) */\n getTransports(): string[];\n}\n\ndeclare var AuthenticatorAttestationResponse: {\n prototype: AuthenticatorAttestationResponse;\n new(): AuthenticatorAttestationResponse;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorResponse)\n */\ninterface AuthenticatorResponse {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorResponse/clientDataJSON) */\n readonly clientDataJSON: ArrayBuffer;\n}\n\ndeclare var AuthenticatorResponse: {\n prototype: AuthenticatorResponse;\n new(): AuthenticatorResponse;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BarProp) */\ninterface BarProp {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BarProp/visible) */\n readonly visible: boolean;\n}\n\ndeclare var BarProp: {\n prototype: BarProp;\n new(): BarProp;\n};\n\ninterface BaseAudioContextEventMap {\n "statechange": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext) */\ninterface BaseAudioContext extends EventTarget {\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/audioWorklet)\n */\n readonly audioWorklet: AudioWorklet;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/currentTime) */\n readonly currentTime: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/destination) */\n readonly destination: AudioDestinationNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/listener) */\n readonly listener: AudioListener;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/statechange_event) */\n onstatechange: ((this: BaseAudioContext, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/sampleRate) */\n readonly sampleRate: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/state) */\n readonly state: AudioContextState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createAnalyser) */\n createAnalyser(): AnalyserNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBiquadFilter) */\n createBiquadFilter(): BiquadFilterNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBuffer) */\n createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBufferSource) */\n createBufferSource(): AudioBufferSourceNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createChannelMerger) */\n createChannelMerger(numberOfInputs?: number): ChannelMergerNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createChannelSplitter) */\n createChannelSplitter(numberOfOutputs?: number): ChannelSplitterNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createConstantSource) */\n createConstantSource(): ConstantSourceNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createConvolver) */\n createConvolver(): ConvolverNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createDelay) */\n createDelay(maxDelayTime?: number): DelayNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createDynamicsCompressor) */\n createDynamicsCompressor(): DynamicsCompressorNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createGain) */\n createGain(): GainNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createIIRFilter) */\n createIIRFilter(feedforward: number[], feedback: number[]): IIRFilterNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createOscillator) */\n createOscillator(): OscillatorNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPanner) */\n createPanner(): PannerNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPeriodicWave) */\n createPeriodicWave(real: number[] | Float32Array, imag: number[] | Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createScriptProcessor)\n */\n createScriptProcessor(bufferSize?: number, numberOfInputChannels?: number, numberOfOutputChannels?: number): ScriptProcessorNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createStereoPanner) */\n createStereoPanner(): StereoPannerNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createWaveShaper) */\n createWaveShaper(): WaveShaperNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/decodeAudioData) */\n decodeAudioData(audioData: ArrayBuffer, successCallback?: DecodeSuccessCallback | null, errorCallback?: DecodeErrorCallback | null): Promise<AudioBuffer>;\n addEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var BaseAudioContext: {\n prototype: BaseAudioContext;\n new(): BaseAudioContext;\n};\n\n/**\n * The beforeunload event is fired when the window, the document and its resources are about to be unloaded.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BeforeUnloadEvent)\n */\ninterface BeforeUnloadEvent extends Event {\n /** @deprecated */\n returnValue: any;\n}\n\ndeclare var BeforeUnloadEvent: {\n prototype: BeforeUnloadEvent;\n new(): BeforeUnloadEvent;\n};\n\n/**\n * A simple low-order filter, and is created using the AudioContext.createBiquadFilter() method. It is an AudioNode that can represent different kinds of filters, tone control devices, and graphic equalizers.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode)\n */\ninterface BiquadFilterNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/Q) */\n readonly Q: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/detune) */\n readonly detune: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/frequency) */\n readonly frequency: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/gain) */\n readonly gain: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/type) */\n type: BiquadFilterType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/getFrequencyResponse) */\n getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void;\n}\n\ndeclare var BiquadFilterNode: {\n prototype: BiquadFilterNode;\n new(context: BaseAudioContext, options?: BiquadFilterOptions): BiquadFilterNode;\n};\n\n/**\n * 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.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob)\n */\ninterface Blob {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/size) */\n readonly size: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/type) */\n readonly type: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/arrayBuffer) */\n arrayBuffer(): Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/slice) */\n slice(start?: number, end?: number, contentType?: string): Blob;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/stream) */\n stream(): ReadableStream<Uint8Array>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/text) */\n text(): Promise<string>;\n}\n\ndeclare var Blob: {\n prototype: Blob;\n new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BlobEvent) */\ninterface BlobEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BlobEvent/data) */\n readonly data: Blob;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BlobEvent/timecode) */\n readonly timecode: DOMHighResTimeStamp;\n}\n\ndeclare var BlobEvent: {\n prototype: BlobEvent;\n new(type: string, eventInitDict: BlobEventInit): BlobEvent;\n};\n\ninterface Body {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body) */\n readonly body: ReadableStream<Uint8Array> | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */\n readonly bodyUsed: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */\n arrayBuffer(): Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */\n blob(): Promise<Blob>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/formData) */\n formData(): Promise<FormData>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/json) */\n json(): Promise<any>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/text) */\n text(): Promise<string>;\n}\n\ninterface BroadcastChannelEventMap {\n "message": MessageEvent;\n "messageerror": MessageEvent;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel) */\ninterface BroadcastChannel extends EventTarget {\n /**\n * Returns the channel name (as passed to the constructor).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/name)\n */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/message_event) */\n onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/messageerror_event) */\n onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\n /**\n * Closes the BroadcastChannel object, opening it up to garbage collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/close)\n */\n close(): void;\n /**\n * Sends the given message to other BroadcastChannel objects set up for this channel. Messages can be structured objects, e.g. nested objects and arrays.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/postMessage)\n */\n postMessage(message: any): void;\n addEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var BroadcastChannel: {\n prototype: BroadcastChannel;\n new(name: string): BroadcastChannel;\n};\n\n/**\n * This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy)\n */\ninterface ByteLengthQueuingStrategy extends QueuingStrategy<ArrayBufferView> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/highWaterMark) */\n readonly highWaterMark: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/size) */\n readonly size: QueuingStrategySize<ArrayBufferView>;\n}\n\ndeclare var ByteLengthQueuingStrategy: {\n prototype: ByteLengthQueuingStrategy;\n new(init: QueuingStrategyInit): ByteLengthQueuingStrategy;\n};\n\n/**\n * A CDATA section that can be used within XML to include extended portions of unescaped text. The symbols < and & don’t need escaping as they normally do when inside a CDATA section.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CDATASection)\n */\ninterface CDATASection extends Text {\n}\n\ndeclare var CDATASection: {\n prototype: CDATASection;\n new(): CDATASection;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSAnimation) */\ninterface CSSAnimation extends Animation {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSAnimation/animationName) */\n readonly animationName: string;\n addEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSAnimation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSAnimation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var CSSAnimation: {\n prototype: CSSAnimation;\n new(): CSSAnimation;\n};\n\n/**\n * A single condition CSS at-rule, which consists of a condition and a statement block. It is a child of CSSGroupingRule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSConditionRule)\n */\ninterface CSSConditionRule extends CSSGroupingRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSConditionRule/conditionText) */\n readonly conditionText: string;\n}\n\ndeclare var CSSConditionRule: {\n prototype: CSSConditionRule;\n new(): CSSConditionRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule) */\ninterface CSSContainerRule extends CSSConditionRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule/containerName) */\n readonly containerName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule/containerQuery) */\n readonly containerQuery: string;\n}\n\ndeclare var CSSContainerRule: {\n prototype: CSSContainerRule;\n new(): CSSContainerRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule) */\ninterface CSSCounterStyleRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/additiveSymbols) */\n additiveSymbols: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/fallback) */\n fallback: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/name) */\n name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/negative) */\n negative: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/pad) */\n pad: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/prefix) */\n prefix: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/range) */\n range: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/speakAs) */\n speakAs: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/suffix) */\n suffix: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/symbols) */\n symbols: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/system) */\n system: string;\n}\n\ndeclare var CSSCounterStyleRule: {\n prototype: CSSCounterStyleRule;\n new(): CSSCounterStyleRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFaceRule) */\ninterface CSSFontFaceRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFaceRule/style) */\n readonly style: CSSStyleDeclaration;\n}\n\ndeclare var CSSFontFaceRule: {\n prototype: CSSFontFaceRule;\n new(): CSSFontFaceRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFeatureValuesRule) */\ninterface CSSFontFeatureValuesRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFeatureValuesRule/fontFamily) */\n fontFamily: string;\n}\n\ndeclare var CSSFontFeatureValuesRule: {\n prototype: CSSFontFeatureValuesRule;\n new(): CSSFontFeatureValuesRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule) */\ninterface CSSFontPaletteValuesRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/basePalette) */\n readonly basePalette: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/fontFamily) */\n readonly fontFamily: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/overrideColors) */\n readonly overrideColors: string;\n}\n\ndeclare var CSSFontPaletteValuesRule: {\n prototype: CSSFontPaletteValuesRule;\n new(): CSSFontPaletteValuesRule;\n};\n\n/**\n * Any CSS at-rule that contains other rules nested within it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule)\n */\ninterface CSSGroupingRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/cssRules) */\n readonly cssRules: CSSRuleList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/deleteRule) */\n deleteRule(index: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/insertRule) */\n insertRule(rule: string, index?: number): number;\n}\n\ndeclare var CSSGroupingRule: {\n prototype: CSSGroupingRule;\n new(): CSSGroupingRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImageValue) */\ninterface CSSImageValue extends CSSStyleValue {\n}\n\ndeclare var CSSImageValue: {\n prototype: CSSImageValue;\n new(): CSSImageValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule) */\ninterface CSSImportRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/href) */\n readonly href: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/layerName) */\n readonly layerName: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/media) */\n readonly media: MediaList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/styleSheet) */\n readonly styleSheet: CSSStyleSheet | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/supportsText) */\n readonly supportsText: string | null;\n}\n\ndeclare var CSSImportRule: {\n prototype: CSSImportRule;\n new(): CSSImportRule;\n};\n\n/**\n * An object representing a set of style for a given keyframe. It corresponds to the contains of a single keyframe of a @keyframes at-rule. It implements the CSSRule interface with a type value of 8 (CSSRule.KEYFRAME_RULE).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule)\n */\ninterface CSSKeyframeRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule/keyText) */\n keyText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule/style) */\n readonly style: CSSStyleDeclaration;\n}\n\ndeclare var CSSKeyframeRule: {\n prototype: CSSKeyframeRule;\n new(): CSSKeyframeRule;\n};\n\n/**\n * An object representing a complete set of keyframes for a CSS animation. It corresponds to the contains of a whole @keyframes at-rule. It implements the CSSRule interface with a type value of 7 (CSSRule.KEYFRAMES_RULE).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule)\n */\ninterface CSSKeyframesRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/cssRules) */\n readonly cssRules: CSSRuleList;\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/name) */\n name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/appendRule) */\n appendRule(rule: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/deleteRule) */\n deleteRule(select: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/findRule) */\n findRule(select: string): CSSKeyframeRule | null;\n [index: number]: CSSKeyframeRule;\n}\n\ndeclare var CSSKeyframesRule: {\n prototype: CSSKeyframesRule;\n new(): CSSKeyframesRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeywordValue) */\ninterface CSSKeywordValue extends CSSStyleValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeywordValue/value) */\n value: string;\n}\n\ndeclare var CSSKeywordValue: {\n prototype: CSSKeywordValue;\n new(value: string): CSSKeywordValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerBlockRule) */\ninterface CSSLayerBlockRule extends CSSGroupingRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerBlockRule/name) */\n readonly name: string;\n}\n\ndeclare var CSSLayerBlockRule: {\n prototype: CSSLayerBlockRule;\n new(): CSSLayerBlockRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerStatementRule) */\ninterface CSSLayerStatementRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerStatementRule/nameList) */\n readonly nameList: ReadonlyArray<string>;\n}\n\ndeclare var CSSLayerStatementRule: {\n prototype: CSSLayerStatementRule;\n new(): CSSLayerStatementRule;\n};\n\ninterface CSSMathClamp extends CSSMathValue {\n readonly lower: CSSNumericValue;\n readonly upper: CSSNumericValue;\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathClamp: {\n prototype: CSSMathClamp;\n new(lower: CSSNumberish, value: CSSNumberish, upper: CSSNumberish): CSSMathClamp;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathInvert) */\ninterface CSSMathInvert extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathInvert/value) */\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathInvert: {\n prototype: CSSMathInvert;\n new(arg: CSSNumberish): CSSMathInvert;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMax) */\ninterface CSSMathMax extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMax/values) */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathMax: {\n prototype: CSSMathMax;\n new(...args: CSSNumberish[]): CSSMathMax;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMin) */\ninterface CSSMathMin extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMin/values) */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathMin: {\n prototype: CSSMathMin;\n new(...args: CSSNumberish[]): CSSMathMin;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathNegate) */\ninterface CSSMathNegate extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathNegate/value) */\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathNegate: {\n prototype: CSSMathNegate;\n new(arg: CSSNumberish): CSSMathNegate;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathProduct) */\ninterface CSSMathProduct extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathProduct/values) */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathProduct: {\n prototype: CSSMathProduct;\n new(...args: CSSNumberish[]): CSSMathProduct;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathSum) */\ninterface CSSMathSum extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathSum/values) */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathSum: {\n prototype: CSSMathSum;\n new(...args: CSSNumberish[]): CSSMathSum;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathValue) */\ninterface CSSMathValue extends CSSNumericValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathValue/operator) */\n readonly operator: CSSMathOperator;\n}\n\ndeclare var CSSMathValue: {\n prototype: CSSMathValue;\n new(): CSSMathValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMatrixComponent) */\ninterface CSSMatrixComponent extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMatrixComponent/matrix) */\n matrix: DOMMatrix;\n}\n\ndeclare var CSSMatrixComponent: {\n prototype: CSSMatrixComponent;\n new(matrix: DOMMatrixReadOnly, options?: CSSMatrixComponentOptions): CSSMatrixComponent;\n};\n\n/**\n * A single CSS @media rule. It implements the CSSConditionRule interface, and therefore the CSSGroupingRule and the CSSRule interface with a type value of 4 (CSSRule.MEDIA_RULE).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMediaRule)\n */\ninterface CSSMediaRule extends CSSConditionRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMediaRule/media) */\n readonly media: MediaList;\n}\n\ndeclare var CSSMediaRule: {\n prototype: CSSMediaRule;\n new(): CSSMediaRule;\n};\n\n/**\n * An object representing a single CSS @namespace at-rule. It implements the CSSRule interface, with a type value of 10 (CSSRule.NAMESPACE_RULE).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule)\n */\ninterface CSSNamespaceRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule/namespaceURI) */\n readonly namespaceURI: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule/prefix) */\n readonly prefix: string;\n}\n\ndeclare var CSSNamespaceRule: {\n prototype: CSSNamespaceRule;\n new(): CSSNamespaceRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericArray) */\ninterface CSSNumericArray {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericArray/length) */\n readonly length: number;\n forEach(callbackfn: (value: CSSNumericValue, key: number, parent: CSSNumericArray) => void, thisArg?: any): void;\n [index: number]: CSSNumericValue;\n}\n\ndeclare var CSSNumericArray: {\n prototype: CSSNumericArray;\n new(): CSSNumericArray;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue) */\ninterface CSSNumericValue extends CSSStyleValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/add) */\n add(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/div) */\n div(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/equals) */\n equals(...value: CSSNumberish[]): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/max) */\n max(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/min) */\n min(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/mul) */\n mul(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/sub) */\n sub(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/to) */\n to(unit: string): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/toSum) */\n toSum(...units: string[]): CSSMathSum;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/type) */\n type(): CSSNumericType;\n}\n\ndeclare var CSSNumericValue: {\n prototype: CSSNumericValue;\n new(): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/parse_static) */\n parse(cssText: string): CSSNumericValue;\n};\n\n/**\n * CSSPageRule is an interface representing a single CSS @page rule. It implements the CSSRule interface with a type value of 6 (CSSRule.PAGE_RULE).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule)\n */\ninterface CSSPageRule extends CSSGroupingRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule/selectorText) */\n selectorText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule/style) */\n readonly style: CSSStyleDeclaration;\n}\n\ndeclare var CSSPageRule: {\n prototype: CSSPageRule;\n new(): CSSPageRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPerspective) */\ninterface CSSPerspective extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPerspective/length) */\n length: CSSPerspectiveValue;\n}\n\ndeclare var CSSPerspective: {\n prototype: CSSPerspective;\n new(length: CSSPerspectiveValue): CSSPerspective;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule) */\ninterface CSSPropertyRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/inherits) */\n readonly inherits: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/initialValue) */\n readonly initialValue: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/syntax) */\n readonly syntax: string;\n}\n\ndeclare var CSSPropertyRule: {\n prototype: CSSPropertyRule;\n new(): CSSPropertyRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate) */\ninterface CSSRotate extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/angle) */\n angle: CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/x) */\n x: CSSNumberish;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/y) */\n y: CSSNumberish;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/z) */\n z: CSSNumberish;\n}\n\ndeclare var CSSRotate: {\n prototype: CSSRotate;\n new(angle: CSSNumericValue): CSSRotate;\n new(x: CSSNumberish, y: CSSNumberish, z: CSSNumberish, angle: CSSNumericValue): CSSRotate;\n};\n\n/**\n * A single CSS rule. There are several types of rules, listed in the Type constants section below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule)\n */\ninterface CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/cssText) */\n cssText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/parentRule) */\n readonly parentRule: CSSRule | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/parentStyleSheet) */\n readonly parentStyleSheet: CSSStyleSheet | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/type)\n */\n readonly type: number;\n readonly STYLE_RULE: 1;\n readonly CHARSET_RULE: 2;\n readonly IMPORT_RULE: 3;\n readonly MEDIA_RULE: 4;\n readonly FONT_FACE_RULE: 5;\n readonly PAGE_RULE: 6;\n readonly NAMESPACE_RULE: 10;\n readonly KEYFRAMES_RULE: 7;\n readonly KEYFRAME_RULE: 8;\n readonly SUPPORTS_RULE: 12;\n readonly COUNTER_STYLE_RULE: 11;\n readonly FONT_FEATURE_VALUES_RULE: 14;\n}\n\ndeclare var CSSRule: {\n prototype: CSSRule;\n new(): CSSRule;\n readonly STYLE_RULE: 1;\n readonly CHARSET_RULE: 2;\n readonly IMPORT_RULE: 3;\n readonly MEDIA_RULE: 4;\n readonly FONT_FACE_RULE: 5;\n readonly PAGE_RULE: 6;\n readonly NAMESPACE_RULE: 10;\n readonly KEYFRAMES_RULE: 7;\n readonly KEYFRAME_RULE: 8;\n readonly SUPPORTS_RULE: 12;\n readonly COUNTER_STYLE_RULE: 11;\n readonly FONT_FEATURE_VALUES_RULE: 14;\n};\n\n/**\n * A CSSRuleList is an (indirect-modify only) array-like object containing an ordered collection of CSSRule objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList)\n */\ninterface CSSRuleList {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList/item) */\n item(index: number): CSSRule | null;\n [index: number]: CSSRule;\n}\n\ndeclare var CSSRuleList: {\n prototype: CSSRuleList;\n new(): CSSRuleList;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale) */\ninterface CSSScale extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/x) */\n x: CSSNumberish;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/y) */\n y: CSSNumberish;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/z) */\n z: CSSNumberish;\n}\n\ndeclare var CSSScale: {\n prototype: CSSScale;\n new(x: CSSNumberish, y: CSSNumberish, z?: CSSNumberish): CSSScale;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew) */\ninterface CSSSkew extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew/ax) */\n ax: CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew/ay) */\n ay: CSSNumericValue;\n}\n\ndeclare var CSSSkew: {\n prototype: CSSSkew;\n new(ax: CSSNumericValue, ay: CSSNumericValue): CSSSkew;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewX) */\ninterface CSSSkewX extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewX/ax) */\n ax: CSSNumericValue;\n}\n\ndeclare var CSSSkewX: {\n prototype: CSSSkewX;\n new(ax: CSSNumericValue): CSSSkewX;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewY) */\ninterface CSSSkewY extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewY/ay) */\n ay: CSSNumericValue;\n}\n\ndeclare var CSSSkewY: {\n prototype: CSSSkewY;\n new(ay: CSSNumericValue): CSSSkewY;\n};\n\n/**\n * An object that is a CSS declaration block, and exposes style information and various style-related methods and properties.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration)\n */\ninterface CSSStyleDeclaration {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/accent-color) */\n accentColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-content) */\n alignContent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-items) */\n alignItems: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-self) */\n alignSelf: string;\n alignmentBaseline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/all) */\n all: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation) */\n animation: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-composition) */\n animationComposition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-delay) */\n animationDelay: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-direction) */\n animationDirection: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-duration) */\n animationDuration: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode) */\n animationFillMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count) */\n animationIterationCount: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-name) */\n animationName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-play-state) */\n animationPlayState: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-timing-function) */\n animationTimingFunction: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/appearance) */\n appearance: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/aspect-ratio) */\n aspectRatio: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backdrop-filter) */\n backdropFilter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backface-visibility) */\n backfaceVisibility: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background) */\n background: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-attachment) */\n backgroundAttachment: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-blend-mode) */\n backgroundBlendMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-clip) */\n backgroundClip: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-color) */\n backgroundColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-image) */\n backgroundImage: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-origin) */\n backgroundOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position) */\n backgroundPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position-x) */\n backgroundPositionX: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position-y) */\n backgroundPositionY: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-repeat) */\n backgroundRepeat: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-size) */\n backgroundSize: string;\n baselineShift: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/baseline-source) */\n baselineSource: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/block-size) */\n blockSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border) */\n border: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block) */\n borderBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-color) */\n borderBlockColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end) */\n borderBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-color) */\n borderBlockEndColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-style) */\n borderBlockEndStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-width) */\n borderBlockEndWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start) */\n borderBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-color) */\n borderBlockStartColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-style) */\n borderBlockStartStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-width) */\n borderBlockStartWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-style) */\n borderBlockStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-width) */\n borderBlockWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom) */\n borderBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-color) */\n borderBottomColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius) */\n borderBottomLeftRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius) */\n borderBottomRightRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-style) */\n borderBottomStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-width) */\n borderBottomWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-collapse) */\n borderCollapse: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-color) */\n borderColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-end-end-radius) */\n borderEndEndRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-end-start-radius) */\n borderEndStartRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image) */\n borderImage: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-outset) */\n borderImageOutset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-repeat) */\n borderImageRepeat: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-slice) */\n borderImageSlice: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-source) */\n borderImageSource: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-width) */\n borderImageWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline) */\n borderInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-color) */\n borderInlineColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end) */\n borderInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-color) */\n borderInlineEndColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-style) */\n borderInlineEndStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-width) */\n borderInlineEndWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start) */\n borderInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-color) */\n borderInlineStartColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-style) */\n borderInlineStartStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-width) */\n borderInlineStartWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-style) */\n borderInlineStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-width) */\n borderInlineWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left) */\n borderLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-color) */\n borderLeftColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-style) */\n borderLeftStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-width) */\n borderLeftWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-radius) */\n borderRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right) */\n borderRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-color) */\n borderRightColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-style) */\n borderRightStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-width) */\n borderRightWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-spacing) */\n borderSpacing: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-start-end-radius) */\n borderStartEndRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-start-start-radius) */\n borderStartStartRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-style) */\n borderStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top) */\n borderTop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-color) */\n borderTopColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius) */\n borderTopLeftRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius) */\n borderTopRightRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-style) */\n borderTopStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-width) */\n borderTopWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-width) */\n borderWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/bottom) */\n bottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-shadow) */\n boxShadow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-sizing) */\n boxSizing: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-after) */\n breakAfter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-before) */\n breakBefore: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-inside) */\n breakInside: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/caption-side) */\n captionSide: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/caret-color) */\n caretColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clear) */\n clear: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clip)\n */\n clip: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clip-path) */\n clipPath: string;\n clipRule: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/color) */\n color: string;\n colorInterpolation: string;\n colorInterpolationFilters: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/color-scheme) */\n colorScheme: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-count) */\n columnCount: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-fill) */\n columnFill: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-gap) */\n columnGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule) */\n columnRule: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-color) */\n columnRuleColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-style) */\n columnRuleStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-width) */\n columnRuleWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-span) */\n columnSpan: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-width) */\n columnWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/columns) */\n columns: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain) */\n contain: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-contain-intrinsic-block-size) */\n containIntrinsicBlockSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-height) */\n containIntrinsicHeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-contain-intrinsic-inline-size) */\n containIntrinsicInlineSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-size) */\n containIntrinsicSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-width) */\n containIntrinsicWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container) */\n container: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container-name) */\n containerName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container-type) */\n containerType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/content) */\n content: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-increment) */\n counterIncrement: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-reset) */\n counterReset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-set) */\n counterSet: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/cssFloat) */\n cssFloat: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/cssText) */\n cssText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/cursor) */\n cursor: string;\n cx: string;\n cy: string;\n d: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/direction) */\n direction: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/display) */\n display: string;\n dominantBaseline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/empty-cells) */\n emptyCells: string;\n fill: string;\n fillOpacity: string;\n fillRule: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/filter) */\n filter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex) */\n flex: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-basis) */\n flexBasis: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-direction) */\n flexDirection: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-flow) */\n flexFlow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-grow) */\n flexGrow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-shrink) */\n flexShrink: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-wrap) */\n flexWrap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/float) */\n float: string;\n floodColor: string;\n floodOpacity: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font) */\n font: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-family) */\n fontFamily: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-feature-settings) */\n fontFeatureSettings: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-kerning) */\n fontKerning: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-optical-sizing) */\n fontOpticalSizing: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-palette) */\n fontPalette: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-size) */\n fontSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-size-adjust) */\n fontSizeAdjust: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-stretch) */\n fontStretch: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-style) */\n fontStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis) */\n fontSynthesis: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-small-caps) */\n fontSynthesisSmallCaps: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-style) */\n fontSynthesisStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-weight) */\n fontSynthesisWeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant) */\n fontVariant: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates) */\n fontVariantAlternates: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-caps) */\n fontVariantCaps: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian) */\n fontVariantEastAsian: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures) */\n fontVariantLigatures: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric) */\n fontVariantNumeric: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-position) */\n fontVariantPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variation-settings) */\n fontVariationSettings: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-weight) */\n fontWeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/forced-color-adjust) */\n forcedColorAdjust: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/gap) */\n gap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid) */\n grid: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-area) */\n gridArea: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns) */\n gridAutoColumns: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow) */\n gridAutoFlow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows) */\n gridAutoRows: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column) */\n gridColumn: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column-end) */\n gridColumnEnd: string;\n /** @deprecated This is a legacy alias of `columnGap`. */\n gridColumnGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column-start) */\n gridColumnStart: string;\n /** @deprecated This is a legacy alias of `gap`. */\n gridGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row) */\n gridRow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row-end) */\n gridRowEnd: string;\n /** @deprecated This is a legacy alias of `rowGap`. */\n gridRowGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row-start) */\n gridRowStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template) */\n gridTemplate: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-areas) */\n gridTemplateAreas: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-columns) */\n gridTemplateColumns: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-rows) */\n gridTemplateRows: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/height) */\n height: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/hyphenate-character) */\n hyphenateCharacter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/hyphens) */\n hyphens: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/image-orientation)\n */\n imageOrientation: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/image-rendering) */\n imageRendering: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inline-size) */\n inlineSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset) */\n inset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block) */\n insetBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block-end) */\n insetBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block-start) */\n insetBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline) */\n insetInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline-end) */\n insetInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline-start) */\n insetInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/isolation) */\n isolation: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-content) */\n justifyContent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-items) */\n justifyItems: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-self) */\n justifySelf: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/left) */\n left: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/letter-spacing) */\n letterSpacing: string;\n lightingColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/line-break) */\n lineBreak: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/line-height) */\n lineHeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style) */\n listStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-image) */\n listStyleImage: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-position) */\n listStylePosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-type) */\n listStyleType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin) */\n margin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block) */\n marginBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block-end) */\n marginBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block-start) */\n marginBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-bottom) */\n marginBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline) */\n marginInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline-end) */\n marginInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline-start) */\n marginInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-left) */\n marginLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-right) */\n marginRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-top) */\n marginTop: string;\n marker: string;\n markerEnd: string;\n markerMid: string;\n markerStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask) */\n mask: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-clip) */\n maskClip: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-composite) */\n maskComposite: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-image) */\n maskImage: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-mode) */\n maskMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-origin) */\n maskOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-position) */\n maskPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-repeat) */\n maskRepeat: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-size) */\n maskSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-type) */\n maskType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/math-depth) */\n mathDepth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/math-style) */\n mathStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-block-size) */\n maxBlockSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-height) */\n maxHeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-inline-size) */\n maxInlineSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-width) */\n maxWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-block-size) */\n minBlockSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-height) */\n minHeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-inline-size) */\n minInlineSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-width) */\n minWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode) */\n mixBlendMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/object-fit) */\n objectFit: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/object-position) */\n objectPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset) */\n offset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-anchor) */\n offsetAnchor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-distance) */\n offsetDistance: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-path) */\n offsetPath: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-position) */\n offsetPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-rotate) */\n offsetRotate: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/opacity) */\n opacity: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/order) */\n order: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/orphans) */\n orphans: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline) */\n outline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-color) */\n outlineColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-offset) */\n outlineOffset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-style) */\n outlineStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-width) */\n outlineWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow) */\n overflow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-anchor) */\n overflowAnchor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-clip-margin) */\n overflowClipMargin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-wrap) */\n overflowWrap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-x) */\n overflowX: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-y) */\n overflowY: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior) */\n overscrollBehavior: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-block) */\n overscrollBehaviorBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-inline) */\n overscrollBehaviorInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-x) */\n overscrollBehaviorX: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-y) */\n overscrollBehaviorY: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding) */\n padding: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block) */\n paddingBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block-end) */\n paddingBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block-start) */\n paddingBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-bottom) */\n paddingBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline) */\n paddingInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline-end) */\n paddingInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline-start) */\n paddingInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-left) */\n paddingLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-right) */\n paddingRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-top) */\n paddingTop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page) */\n page: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-after) */\n pageBreakAfter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-before) */\n pageBreakBefore: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-inside) */\n pageBreakInside: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/paint-order) */\n paintOrder: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/parentRule) */\n readonly parentRule: CSSRule | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective) */\n perspective: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective-origin) */\n perspectiveOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-content) */\n placeContent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-items) */\n placeItems: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-self) */\n placeSelf: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/pointer-events) */\n pointerEvents: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/position) */\n position: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/print-color-adjust) */\n printColorAdjust: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/quotes) */\n quotes: string;\n r: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/resize) */\n resize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/right) */\n right: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/rotate) */\n rotate: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/row-gap) */\n rowGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/ruby-position) */\n rubyPosition: string;\n rx: string;\n ry: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scale) */\n scale: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-behavior) */\n scrollBehavior: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin) */\n scrollMargin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block) */\n scrollMarginBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-end) */\n scrollMarginBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-start) */\n scrollMarginBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-bottom) */\n scrollMarginBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline) */\n scrollMarginInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-end) */\n scrollMarginInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-start) */\n scrollMarginInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-left) */\n scrollMarginLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-right) */\n scrollMarginRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-top) */\n scrollMarginTop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding) */\n scrollPadding: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block) */\n scrollPaddingBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-end) */\n scrollPaddingBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-start) */\n scrollPaddingBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-bottom) */\n scrollPaddingBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline) */\n scrollPaddingInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-end) */\n scrollPaddingInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-start) */\n scrollPaddingInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-left) */\n scrollPaddingLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-right) */\n scrollPaddingRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-top) */\n scrollPaddingTop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-align) */\n scrollSnapAlign: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-stop) */\n scrollSnapStop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type) */\n scrollSnapType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-color) */\n scrollbarColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-gutter) */\n scrollbarGutter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-width) */\n scrollbarWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold) */\n shapeImageThreshold: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-margin) */\n shapeMargin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-outside) */\n shapeOutside: string;\n shapeRendering: string;\n stopColor: string;\n stopOpacity: string;\n stroke: string;\n strokeDasharray: string;\n strokeDashoffset: string;\n strokeLinecap: string;\n strokeLinejoin: string;\n strokeMiterlimit: string;\n strokeOpacity: string;\n strokeWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/tab-size) */\n tabSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/table-layout) */\n tableLayout: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-align) */\n textAlign: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-align-last) */\n textAlignLast: string;\n textAnchor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-combine-upright) */\n textCombineUpright: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration) */\n textDecoration: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-color) */\n textDecorationColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-line) */\n textDecorationLine: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink) */\n textDecorationSkipInk: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-style) */\n textDecorationStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness) */\n textDecorationThickness: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis) */\n textEmphasis: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color) */\n textEmphasisColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position) */\n textEmphasisPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style) */\n textEmphasisStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-indent) */\n textIndent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-orientation) */\n textOrientation: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-overflow) */\n textOverflow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-rendering) */\n textRendering: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-shadow) */\n textShadow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-transform) */\n textTransform: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-underline-offset) */\n textUnderlineOffset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-underline-position) */\n textUnderlinePosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-wrap) */\n textWrap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/top) */\n top: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/touch-action) */\n touchAction: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform) */\n transform: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-box) */\n transformBox: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-origin) */\n transformOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-style) */\n transformStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition) */\n transition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-delay) */\n transitionDelay: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-duration) */\n transitionDuration: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-property) */\n transitionProperty: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-timing-function) */\n transitionTimingFunction: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/translate) */\n translate: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/unicode-bidi) */\n unicodeBidi: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/user-select) */\n userSelect: string;\n vectorEffect: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/vertical-align) */\n verticalAlign: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/visibility) */\n visibility: string;\n /**\n * @deprecated This is a legacy alias of `alignContent`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-content)\n */\n webkitAlignContent: string;\n /**\n * @deprecated This is a legacy alias of `alignItems`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-items)\n */\n webkitAlignItems: string;\n /**\n * @deprecated This is a legacy alias of `alignSelf`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-self)\n */\n webkitAlignSelf: string;\n /**\n * @deprecated This is a legacy alias of `animation`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation)\n */\n webkitAnimation: string;\n /**\n * @deprecated This is a legacy alias of `animationDelay`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-delay)\n */\n webkitAnimationDelay: string;\n /**\n * @deprecated This is a legacy alias of `animationDirection`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-direction)\n */\n webkitAnimationDirection: string;\n /**\n * @deprecated This is a legacy alias of `animationDuration`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-duration)\n */\n webkitAnimationDuration: string;\n /**\n * @deprecated This is a legacy alias of `animationFillMode`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode)\n */\n webkitAnimationFillMode: string;\n /**\n * @deprecated This is a legacy alias of `animationIterationCount`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count)\n */\n webkitAnimationIterationCount: string;\n /**\n * @deprecated This is a legacy alias of `animationName`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-name)\n */\n webkitAnimationName: string;\n /**\n * @deprecated This is a legacy alias of `animationPlayState`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-play-state)\n */\n webkitAnimationPlayState: string;\n /**\n * @deprecated This is a legacy alias of `animationTimingFunction`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-timing-function)\n */\n webkitAnimationTimingFunction: string;\n /**\n * @deprecated This is a legacy alias of `appearance`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/appearance)\n */\n webkitAppearance: string;\n /**\n * @deprecated This is a legacy alias of `backfaceVisibility`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backface-visibility)\n */\n webkitBackfaceVisibility: string;\n /**\n * @deprecated This is a legacy alias of `backgroundClip`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-clip)\n */\n webkitBackgroundClip: string;\n /**\n * @deprecated This is a legacy alias of `backgroundOrigin`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-origin)\n */\n webkitBackgroundOrigin: string;\n /**\n * @deprecated This is a legacy alias of `backgroundSize`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-size)\n */\n webkitBackgroundSize: string;\n /**\n * @deprecated This is a legacy alias of `borderBottomLeftRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius)\n */\n webkitBorderBottomLeftRadius: string;\n /**\n * @deprecated This is a legacy alias of `borderBottomRightRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius)\n */\n webkitBorderBottomRightRadius: string;\n /**\n * @deprecated This is a legacy alias of `borderRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-radius)\n */\n webkitBorderRadius: string;\n /**\n * @deprecated This is a legacy alias of `borderTopLeftRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius)\n */\n webkitBorderTopLeftRadius: string;\n /**\n * @deprecated This is a legacy alias of `borderTopRightRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius)\n */\n webkitBorderTopRightRadius: string;\n /**\n * @deprecated This is a legacy alias of `boxAlign`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-align)\n */\n webkitBoxAlign: string;\n /**\n * @deprecated This is a legacy alias of `boxFlex`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-flex)\n */\n webkitBoxFlex: string;\n /**\n * @deprecated This is a legacy alias of `boxOrdinalGroup`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-ordinal-group)\n */\n webkitBoxOrdinalGroup: string;\n /**\n * @deprecated This is a legacy alias of `boxOrient`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-orient)\n */\n webkitBoxOrient: string;\n /**\n * @deprecated This is a legacy alias of `boxPack`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-pack)\n */\n webkitBoxPack: string;\n /**\n * @deprecated This is a legacy alias of `boxShadow`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-shadow)\n */\n webkitBoxShadow: string;\n /**\n * @deprecated This is a legacy alias of `boxSizing`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-sizing)\n */\n webkitBoxSizing: string;\n /**\n * @deprecated This is a legacy alias of `filter`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/filter)\n */\n webkitFilter: string;\n /**\n * @deprecated This is a legacy alias of `flex`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex)\n */\n webkitFlex: string;\n /**\n * @deprecated This is a legacy alias of `flexBasis`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-basis)\n */\n webkitFlexBasis: string;\n /**\n * @deprecated This is a legacy alias of `flexDirection`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-direction)\n */\n webkitFlexDirection: string;\n /**\n * @deprecated This is a legacy alias of `flexFlow`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-flow)\n */\n webkitFlexFlow: string;\n /**\n * @deprecated This is a legacy alias of `flexGrow`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-grow)\n */\n webkitFlexGrow: string;\n /**\n * @deprecated This is a legacy alias of `flexShrink`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-shrink)\n */\n webkitFlexShrink: string;\n /**\n * @deprecated This is a legacy alias of `flexWrap`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-wrap)\n */\n webkitFlexWrap: string;\n /**\n * @deprecated This is a legacy alias of `justifyContent`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-content)\n */\n webkitJustifyContent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-line-clamp) */\n webkitLineClamp: string;\n /**\n * @deprecated This is a legacy alias of `mask`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask)\n */\n webkitMask: string;\n /**\n * @deprecated This is a legacy alias of `maskBorder`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border)\n */\n webkitMaskBoxImage: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderOutset`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-outset)\n */\n webkitMaskBoxImageOutset: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderRepeat`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-repeat)\n */\n webkitMaskBoxImageRepeat: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderSlice`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-slice)\n */\n webkitMaskBoxImageSlice: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderSource`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-source)\n */\n webkitMaskBoxImageSource: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderWidth`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-width)\n */\n webkitMaskBoxImageWidth: string;\n /**\n * @deprecated This is a legacy alias of `maskClip`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-clip)\n */\n webkitMaskClip: string;\n /**\n * @deprecated This is a legacy alias of `maskComposite`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-composite)\n */\n webkitMaskComposite: string;\n /**\n * @deprecated This is a legacy alias of `maskImage`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-image)\n */\n webkitMaskImage: string;\n /**\n * @deprecated This is a legacy alias of `maskOrigin`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-origin)\n */\n webkitMaskOrigin: string;\n /**\n * @deprecated This is a legacy alias of `maskPosition`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-position)\n */\n webkitMaskPosition: string;\n /**\n * @deprecated This is a legacy alias of `maskRepeat`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-repeat)\n */\n webkitMaskRepeat: string;\n /**\n * @deprecated This is a legacy alias of `maskSize`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-size)\n */\n webkitMaskSize: string;\n /**\n * @deprecated This is a legacy alias of `order`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/order)\n */\n webkitOrder: string;\n /**\n * @deprecated This is a legacy alias of `perspective`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective)\n */\n webkitPerspective: string;\n /**\n * @deprecated This is a legacy alias of `perspectiveOrigin`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective-origin)\n */\n webkitPerspectiveOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color) */\n webkitTextFillColor: string;\n /**\n * @deprecated This is a legacy alias of `textSizeAdjust`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-size-adjust)\n */\n webkitTextSizeAdjust: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke) */\n webkitTextStroke: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color) */\n webkitTextStrokeColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width) */\n webkitTextStrokeWidth: string;\n /**\n * @deprecated This is a legacy alias of `transform`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform)\n */\n webkitTransform: string;\n /**\n * @deprecated This is a legacy alias of `transformOrigin`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-origin)\n */\n webkitTransformOrigin: string;\n /**\n * @deprecated This is a legacy alias of `transformStyle`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-style)\n */\n webkitTransformStyle: string;\n /**\n * @deprecated This is a legacy alias of `transition`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition)\n */\n webkitTransition: string;\n /**\n * @deprecated This is a legacy alias of `transitionDelay`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-delay)\n */\n webkitTransitionDelay: string;\n /**\n * @deprecated This is a legacy alias of `transitionDuration`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-duration)\n */\n webkitTransitionDuration: string;\n /**\n * @deprecated This is a legacy alias of `transitionProperty`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-property)\n */\n webkitTransitionProperty: string;\n /**\n * @deprecated This is a legacy alias of `transitionTimingFunction`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-timing-function)\n */\n webkitTransitionTimingFunction: string;\n /**\n * @deprecated This is a legacy alias of `userSelect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/user-select)\n */\n webkitUserSelect: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/white-space) */\n whiteSpace: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/widows) */\n widows: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/width) */\n width: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/will-change) */\n willChange: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/word-break) */\n wordBreak: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/word-spacing) */\n wordSpacing: string;\n /** @deprecated */\n wordWrap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/writing-mode) */\n writingMode: string;\n x: string;\n y: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/z-index) */\n zIndex: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/getPropertyPriority) */\n getPropertyPriority(property: string): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/getPropertyValue) */\n getPropertyValue(property: string): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/item) */\n item(index: number): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/removeProperty) */\n removeProperty(property: string): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/setProperty) */\n setProperty(property: string, value: string | null, priority?: string): void;\n [index: number]: string;\n}\n\ndeclare var CSSStyleDeclaration: {\n prototype: CSSStyleDeclaration;\n new(): CSSStyleDeclaration;\n};\n\n/**\n * CSSStyleRule represents a single CSS style rule. It implements the CSSRule interface with a type value of 1 (CSSRule.STYLE_RULE).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule)\n */\ninterface CSSStyleRule extends CSSGroupingRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule/selectorText) */\n selectorText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule/style) */\n readonly style: CSSStyleDeclaration;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule/styleMap) */\n readonly styleMap: StylePropertyMap;\n}\n\ndeclare var CSSStyleRule: {\n prototype: CSSStyleRule;\n new(): CSSStyleRule;\n};\n\n/**\n * A single CSS style sheet. It inherits properties and methods from its parent, StyleSheet.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet)\n */\ninterface CSSStyleSheet extends StyleSheet {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/cssRules) */\n readonly cssRules: CSSRuleList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/ownerRule) */\n readonly ownerRule: CSSRule | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/rules)\n */\n readonly rules: CSSRuleList;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/addRule)\n */\n addRule(selector?: string, style?: string, index?: number): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/deleteRule) */\n deleteRule(index: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/insertRule) */\n insertRule(rule: string, index?: number): number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/removeRule)\n */\n removeRule(index?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/replace) */\n replace(text: string): Promise<CSSStyleSheet>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/replaceSync) */\n replaceSync(text: string): void;\n}\n\ndeclare var CSSStyleSheet: {\n prototype: CSSStyleSheet;\n new(options?: CSSStyleSheetInit): CSSStyleSheet;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue) */\ninterface CSSStyleValue {\n toString(): string;\n}\n\ndeclare var CSSStyleValue: {\n prototype: CSSStyleValue;\n new(): CSSStyleValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue/parse_static) */\n parse(property: string, cssText: string): CSSStyleValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue/parseAll_static) */\n parseAll(property: string, cssText: string): CSSStyleValue[];\n};\n\n/**\n * An object representing a single CSS @supports at-rule. It implements the CSSConditionRule interface, and therefore the CSSRule and CSSGroupingRule interfaces with a type value of 12 (CSSRule.SUPPORTS_RULE).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSupportsRule)\n */\ninterface CSSSupportsRule extends CSSConditionRule {\n}\n\ndeclare var CSSSupportsRule: {\n prototype: CSSSupportsRule;\n new(): CSSSupportsRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent) */\ninterface CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent/is2D) */\n is2D: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent/toMatrix) */\n toMatrix(): DOMMatrix;\n toString(): string;\n}\n\ndeclare var CSSTransformComponent: {\n prototype: CSSTransformComponent;\n new(): CSSTransformComponent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue) */\ninterface CSSTransformValue extends CSSStyleValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/is2D) */\n readonly is2D: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/toMatrix) */\n toMatrix(): DOMMatrix;\n forEach(callbackfn: (value: CSSTransformComponent, key: number, parent: CSSTransformValue) => void, thisArg?: any): void;\n [index: number]: CSSTransformComponent;\n}\n\ndeclare var CSSTransformValue: {\n prototype: CSSTransformValue;\n new(transforms: CSSTransformComponent[]): CSSTransformValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransition) */\ninterface CSSTransition extends Animation {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransition/transitionProperty) */\n readonly transitionProperty: string;\n addEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSTransition, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSTransition, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var CSSTransition: {\n prototype: CSSTransition;\n new(): CSSTransition;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate) */\ninterface CSSTranslate extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/x) */\n x: CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/y) */\n y: CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/z) */\n z: CSSNumericValue;\n}\n\ndeclare var CSSTranslate: {\n prototype: CSSTranslate;\n new(x: CSSNumericValue, y: CSSNumericValue, z?: CSSNumericValue): CSSTranslate;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue) */\ninterface CSSUnitValue extends CSSNumericValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue/unit) */\n readonly unit: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue/value) */\n value: number;\n}\n\ndeclare var CSSUnitValue: {\n prototype: CSSUnitValue;\n new(value: number, unit: string): CSSUnitValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue) */\ninterface CSSUnparsedValue extends CSSStyleValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue/length) */\n readonly length: number;\n forEach(callbackfn: (value: CSSUnparsedSegment, key: number, parent: CSSUnparsedValue) => void, thisArg?: any): void;\n [index: number]: CSSUnparsedSegment;\n}\n\ndeclare var CSSUnparsedValue: {\n prototype: CSSUnparsedValue;\n new(members: CSSUnparsedSegment[]): CSSUnparsedValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue) */\ninterface CSSVariableReferenceValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue/fallback) */\n readonly fallback: CSSUnparsedValue | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue/variable) */\n variable: string;\n}\n\ndeclare var CSSVariableReferenceValue: {\n prototype: CSSVariableReferenceValue;\n new(variable: string, fallback?: CSSUnparsedValue | null): CSSVariableReferenceValue;\n};\n\n/**\n * Provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don\'t have to use it in conjunction with service workers, even though it is defined in the service worker spec.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache)\n */\ninterface Cache {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/add) */\n add(request: RequestInfo | URL): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/addAll) */\n addAll(requests: RequestInfo[]): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/delete) */\n delete(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<boolean>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/keys) */\n keys(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<ReadonlyArray<Request>>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/match) */\n match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/matchAll) */\n matchAll(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<ReadonlyArray<Response>>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/put) */\n put(request: RequestInfo | URL, response: Response): Promise<void>;\n}\n\ndeclare var Cache: {\n prototype: Cache;\n new(): Cache;\n};\n\n/**\n * The storage for Cache objects.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage)\n */\ninterface CacheStorage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/delete) */\n delete(cacheName: string): Promise<boolean>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/has) */\n has(cacheName: string): Promise<boolean>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/keys) */\n keys(): Promise<string[]>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/match) */\n match(request: RequestInfo | URL, options?: MultiCacheQueryOptions): Promise<Response | undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/open) */\n open(cacheName: string): Promise<Cache>;\n}\n\ndeclare var CacheStorage: {\n prototype: CacheStorage;\n new(): CacheStorage;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasCaptureMediaStreamTrack) */\ninterface CanvasCaptureMediaStreamTrack extends MediaStreamTrack {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasCaptureMediaStreamTrack/canvas) */\n readonly canvas: HTMLCanvasElement;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasCaptureMediaStreamTrack/requestFrame) */\n requestFrame(): void;\n addEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: CanvasCaptureMediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: CanvasCaptureMediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var CanvasCaptureMediaStreamTrack: {\n prototype: CanvasCaptureMediaStreamTrack;\n new(): CanvasCaptureMediaStreamTrack;\n};\n\ninterface CanvasCompositing {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalAlpha) */\n globalAlpha: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation) */\n globalCompositeOperation: GlobalCompositeOperation;\n}\n\ninterface CanvasDrawImage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/drawImage) */\n drawImage(image: CanvasImageSource, dx: number, dy: number): void;\n drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void;\n drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;\n}\n\ninterface CanvasDrawPath {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/beginPath) */\n beginPath(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clip) */\n clip(fillRule?: CanvasFillRule): void;\n clip(path: Path2D, fillRule?: CanvasFillRule): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fill) */\n fill(fillRule?: CanvasFillRule): void;\n fill(path: Path2D, fillRule?: CanvasFillRule): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInPath) */\n isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;\n isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInStroke) */\n isPointInStroke(x: number, y: number): boolean;\n isPointInStroke(path: Path2D, x: number, y: number): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/stroke) */\n stroke(): void;\n stroke(path: Path2D): void;\n}\n\ninterface CanvasFillStrokeStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillStyle) */\n fillStyle: string | CanvasGradient | CanvasPattern;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeStyle) */\n strokeStyle: string | CanvasGradient | CanvasPattern;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createConicGradient) */\n createConicGradient(startAngle: number, x: number, y: number): CanvasGradient;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createLinearGradient) */\n createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createPattern) */\n createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createRadialGradient) */\n createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;\n}\n\ninterface CanvasFilters {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/filter) */\n filter: string;\n}\n\n/**\n * An opaque object describing a gradient. It is returned by the methods CanvasRenderingContext2D.createLinearGradient() or CanvasRenderingContext2D.createRadialGradient().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient)\n */\ninterface CanvasGradient {\n /**\n * Adds a color stop with the given color to the gradient at the given offset. 0.0 is the offset at one end of the gradient, 1.0 is the offset at the other end.\n *\n * Throws an "IndexSizeError" DOMException if the offset is out of range. Throws a "SyntaxError" DOMException if the color cannot be parsed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient/addColorStop)\n */\n addColorStop(offset: number, color: string): void;\n}\n\ndeclare var CanvasGradient: {\n prototype: CanvasGradient;\n new(): CanvasGradient;\n};\n\ninterface CanvasImageData {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createImageData) */\n createImageData(sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n createImageData(imagedata: ImageData): ImageData;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getImageData) */\n getImageData(sx: number, sy: number, sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/putImageData) */\n putImageData(imagedata: ImageData, dx: number, dy: number): void;\n putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;\n}\n\ninterface CanvasImageSmoothing {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingEnabled) */\n imageSmoothingEnabled: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingQuality) */\n imageSmoothingQuality: ImageSmoothingQuality;\n}\n\ninterface CanvasPath {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arc) */\n arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arcTo) */\n arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/bezierCurveTo) */\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/closePath) */\n closePath(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/ellipse) */\n ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineTo) */\n lineTo(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/moveTo) */\n moveTo(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/quadraticCurveTo) */\n quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rect) */\n rect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/roundRect) */\n roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | (number | DOMPointInit)[]): void;\n}\n\ninterface CanvasPathDrawingStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineCap) */\n lineCap: CanvasLineCap;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineDashOffset) */\n lineDashOffset: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineJoin) */\n lineJoin: CanvasLineJoin;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineWidth) */\n lineWidth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/miterLimit) */\n miterLimit: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getLineDash) */\n getLineDash(): number[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash) */\n setLineDash(segments: number[]): void;\n}\n\n/**\n * An opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern)\n */\ninterface CanvasPattern {\n /**\n * Sets the transformation matrix that will be used when rendering the pattern during a fill or stroke painting operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern/setTransform)\n */\n setTransform(transform?: DOMMatrix2DInit): void;\n}\n\ndeclare var CanvasPattern: {\n prototype: CanvasPattern;\n new(): CanvasPattern;\n};\n\ninterface CanvasRect {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clearRect) */\n clearRect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillRect) */\n fillRect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeRect) */\n strokeRect(x: number, y: number, w: number, h: number): void;\n}\n\n/**\n * The CanvasRenderingContext2D interface, part of the Canvas API, provides the 2D rendering context for the drawing surface of a <canvas> element. It is used for drawing shapes, text, images, and other objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D)\n */\ninterface CanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform, CanvasUserInterface {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/canvas) */\n readonly canvas: HTMLCanvasElement;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getContextAttributes) */\n getContextAttributes(): CanvasRenderingContext2DSettings;\n}\n\ndeclare var CanvasRenderingContext2D: {\n prototype: CanvasRenderingContext2D;\n new(): CanvasRenderingContext2D;\n};\n\ninterface CanvasShadowStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowBlur) */\n shadowBlur: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowColor) */\n shadowColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowOffsetX) */\n shadowOffsetX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowOffsetY) */\n shadowOffsetY: number;\n}\n\ninterface CanvasState {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/reset) */\n reset(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/restore) */\n restore(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/save) */\n save(): void;\n}\n\ninterface CanvasText {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillText) */\n fillText(text: string, x: number, y: number, maxWidth?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/measureText) */\n measureText(text: string): TextMetrics;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeText) */\n strokeText(text: string, x: number, y: number, maxWidth?: number): void;\n}\n\ninterface CanvasTextDrawingStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/direction) */\n direction: CanvasDirection;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/font) */\n font: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontKerning) */\n fontKerning: CanvasFontKerning;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontStretch) */\n fontStretch: CanvasFontStretch;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontVariantCaps) */\n fontVariantCaps: CanvasFontVariantCaps;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/letterSpacing) */\n letterSpacing: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textAlign) */\n textAlign: CanvasTextAlign;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textBaseline) */\n textBaseline: CanvasTextBaseline;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textRendering) */\n textRendering: CanvasTextRendering;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/wordSpacing) */\n wordSpacing: string;\n}\n\ninterface CanvasTransform {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getTransform) */\n getTransform(): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/resetTransform) */\n resetTransform(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rotate) */\n rotate(angle: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/scale) */\n scale(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setTransform) */\n setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;\n setTransform(transform?: DOMMatrix2DInit): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/transform) */\n transform(a: number, b: number, c: number, d: number, e: number, f: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/translate) */\n translate(x: number, y: number): void;\n}\n\ninterface CanvasUserInterface {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/drawFocusIfNeeded) */\n drawFocusIfNeeded(element: Element): void;\n drawFocusIfNeeded(path: Path2D, element: Element): void;\n}\n\n/**\n * The ChannelMergerNode interface, often used in conjunction with its opposite, ChannelSplitterNode, reunites different mono inputs into a single output. Each input is used to fill a channel of the output. This is useful for accessing each channels separately, e.g. for performing channel mixing where gain must be separately controlled on each channel.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ChannelMergerNode)\n */\ninterface ChannelMergerNode extends AudioNode {\n}\n\ndeclare var ChannelMergerNode: {\n prototype: ChannelMergerNode;\n new(context: BaseAudioContext, options?: ChannelMergerOptions): ChannelMergerNode;\n};\n\n/**\n * The ChannelSplitterNode interface, often used in conjunction with its opposite, ChannelMergerNode, separates the different channels of an audio source into a set of mono outputs. This is useful for accessing each channel separately, e.g. for performing channel mixing where gain must be separately controlled on each channel.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ChannelSplitterNode)\n */\ninterface ChannelSplitterNode extends AudioNode {\n}\n\ndeclare var ChannelSplitterNode: {\n prototype: ChannelSplitterNode;\n new(context: BaseAudioContext, options?: ChannelSplitterOptions): ChannelSplitterNode;\n};\n\n/**\n * The CharacterData abstract interface represents a Node object that contains characters. This is an abstract interface, meaning there aren\'t any object of type CharacterData: it is implemented by other interfaces, like Text, Comment, or ProcessingInstruction which aren\'t abstract.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData)\n */\ninterface CharacterData extends Node, ChildNode, NonDocumentTypeChildNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/data) */\n data: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/length) */\n readonly length: number;\n readonly ownerDocument: Document;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/appendData) */\n appendData(data: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/deleteData) */\n deleteData(offset: number, count: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/insertData) */\n insertData(offset: number, data: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceData) */\n replaceData(offset: number, count: number, data: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/substringData) */\n substringData(offset: number, count: number): string;\n}\n\ndeclare var CharacterData: {\n prototype: CharacterData;\n new(): CharacterData;\n};\n\ninterface ChildNode extends Node {\n /**\n * Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.\n *\n * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/after)\n */\n after(...nodes: (Node | string)[]): void;\n /**\n * Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.\n *\n * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/before)\n */\n before(...nodes: (Node | string)[]): void;\n /**\n * Removes node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)\n */\n remove(): void;\n /**\n * Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.\n *\n * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)\n */\n replaceWith(...nodes: (Node | string)[]): void;\n}\n\n/** @deprecated */\ninterface ClientRect extends DOMRect {\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard)\n */\ninterface Clipboard extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/read) */\n read(): Promise<ClipboardItems>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/readText) */\n readText(): Promise<string>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/write) */\n write(data: ClipboardItems): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/writeText) */\n writeText(data: string): Promise<void>;\n}\n\ndeclare var Clipboard: {\n prototype: Clipboard;\n new(): Clipboard;\n};\n\n/**\n * Events providing information related to modification of the clipboard, that is cut, copy, and paste events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardEvent)\n */\ninterface ClipboardEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardEvent/clipboardData) */\n readonly clipboardData: DataTransfer | null;\n}\n\ndeclare var ClipboardEvent: {\n prototype: ClipboardEvent;\n new(type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem)\n */\ninterface ClipboardItem {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem/types) */\n readonly types: ReadonlyArray<string>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem/getType) */\n getType(type: string): Promise<Blob>;\n}\n\ndeclare var ClipboardItem: {\n prototype: ClipboardItem;\n new(items: Record<string, string | Blob | PromiseLike<string | Blob>>, options?: ClipboardItemOptions): ClipboardItem;\n};\n\n/**\n * A CloseEvent is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object\'s onclose attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent)\n */\ninterface CloseEvent extends Event {\n /**\n * Returns the WebSocket connection close code provided by the server.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/code)\n */\n readonly code: number;\n /**\n * Returns the WebSocket connection close reason provided by the server.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/reason)\n */\n readonly reason: string;\n /**\n * Returns true if the connection closed cleanly; false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/wasClean)\n */\n readonly wasClean: boolean;\n}\n\ndeclare var CloseEvent: {\n prototype: CloseEvent;\n new(type: string, eventInitDict?: CloseEventInit): CloseEvent;\n};\n\n/**\n * Textual notations within markup; although it is generally not visually shown, such comments are available to be read in the source view.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Comment)\n */\ninterface Comment extends CharacterData {\n}\n\ndeclare var Comment: {\n prototype: Comment;\n new(data?: string): Comment;\n};\n\n/**\n * The DOM CompositionEvent represents events that occur due to the user indirectly entering text.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompositionEvent)\n */\ninterface CompositionEvent extends UIEvent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompositionEvent/data) */\n readonly data: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompositionEvent/initCompositionEvent)\n */\n initCompositionEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, viewArg?: WindowProxy | null, dataArg?: string): void;\n}\n\ndeclare var CompositionEvent: {\n prototype: CompositionEvent;\n new(type: string, eventInitDict?: CompositionEventInit): CompositionEvent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream) */\ninterface CompressionStream extends GenericTransformStream {\n}\n\ndeclare var CompressionStream: {\n prototype: CompressionStream;\n new(format: CompressionFormat): CompressionStream;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConstantSourceNode) */\ninterface ConstantSourceNode extends AudioScheduledSourceNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConstantSourceNode/offset) */\n readonly offset: AudioParam;\n addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ConstantSourceNode: {\n prototype: ConstantSourceNode;\n new(context: BaseAudioContext, options?: ConstantSourceOptions): ConstantSourceNode;\n};\n\n/**\n * An AudioNode that performs a Linear Convolution on a given AudioBuffer, often used to achieve a reverb effect. A ConvolverNode always has exactly one input and one output.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConvolverNode)\n */\ninterface ConvolverNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConvolverNode/buffer) */\n buffer: AudioBuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConvolverNode/normalize) */\n normalize: boolean;\n}\n\ndeclare var ConvolverNode: {\n prototype: ConvolverNode;\n new(context: BaseAudioContext, options?: ConvolverOptions): ConvolverNode;\n};\n\n/**\n * This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy)\n */\ninterface CountQueuingStrategy extends QueuingStrategy {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/highWaterMark) */\n readonly highWaterMark: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/size) */\n readonly size: QueuingStrategySize;\n}\n\ndeclare var CountQueuingStrategy: {\n prototype: CountQueuingStrategy;\n new(init: QueuingStrategyInit): CountQueuingStrategy;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Credential)\n */\ninterface Credential {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Credential/id) */\n readonly id: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Credential/type) */\n readonly type: string;\n}\n\ndeclare var Credential: {\n prototype: Credential;\n new(): Credential;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer)\n */\ninterface CredentialsContainer {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/create) */\n create(options?: CredentialCreationOptions): Promise<Credential | null>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/get) */\n get(options?: CredentialRequestOptions): Promise<Credential | null>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/preventSilentAccess) */\n preventSilentAccess(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/store) */\n store(credential: Credential): Promise<void>;\n}\n\ndeclare var CredentialsContainer: {\n prototype: CredentialsContainer;\n new(): CredentialsContainer;\n};\n\n/**\n * Basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto)\n */\ninterface Crypto {\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/subtle)\n */\n readonly subtle: SubtleCrypto;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/getRandomValues) */\n getRandomValues<T extends ArrayBufferView | null>(array: T): T;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/randomUUID)\n */\n randomUUID(): `${string}-${string}-${string}-${string}-${string}`;\n}\n\ndeclare var Crypto: {\n prototype: Crypto;\n new(): Crypto;\n};\n\n/**\n * The CryptoKey dictionary of the Web Crypto API represents a cryptographic key.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey)\n */\ninterface CryptoKey {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/algorithm) */\n readonly algorithm: KeyAlgorithm;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/extractable) */\n readonly extractable: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/type) */\n readonly type: KeyType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/usages) */\n readonly usages: KeyUsage[];\n}\n\ndeclare var CryptoKey: {\n prototype: CryptoKey;\n new(): CryptoKey;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry) */\ninterface CustomElementRegistry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/define) */\n define(name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/get) */\n get(name: string): CustomElementConstructor | undefined;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/getName) */\n getName(constructor: CustomElementConstructor): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/upgrade) */\n upgrade(root: Node): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/whenDefined) */\n whenDefined(name: string): Promise<CustomElementConstructor>;\n}\n\ndeclare var CustomElementRegistry: {\n prototype: CustomElementRegistry;\n new(): CustomElementRegistry;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent) */\ninterface CustomEvent<T = any> extends Event {\n /**\n * Returns any custom data event was created with. Typically used for synthetic events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/detail)\n */\n readonly detail: T;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/initCustomEvent)\n */\n initCustomEvent(type: string, bubbles?: boolean, cancelable?: boolean, detail?: T): void;\n}\n\ndeclare var CustomEvent: {\n prototype: CustomEvent;\n new<T>(type: string, eventInitDict?: CustomEventInit<T>): CustomEvent<T>;\n};\n\n/**\n * An abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException)\n */\ninterface DOMException extends Error {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/code)\n */\n readonly code: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/message) */\n readonly message: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/name) */\n readonly name: string;\n readonly INDEX_SIZE_ERR: 1;\n readonly DOMSTRING_SIZE_ERR: 2;\n readonly HIERARCHY_REQUEST_ERR: 3;\n readonly WRONG_DOCUMENT_ERR: 4;\n readonly INVALID_CHARACTER_ERR: 5;\n readonly NO_DATA_ALLOWED_ERR: 6;\n readonly NO_MODIFICATION_ALLOWED_ERR: 7;\n readonly NOT_FOUND_ERR: 8;\n readonly NOT_SUPPORTED_ERR: 9;\n readonly INUSE_ATTRIBUTE_ERR: 10;\n readonly INVALID_STATE_ERR: 11;\n readonly SYNTAX_ERR: 12;\n readonly INVALID_MODIFICATION_ERR: 13;\n readonly NAMESPACE_ERR: 14;\n readonly INVALID_ACCESS_ERR: 15;\n readonly VALIDATION_ERR: 16;\n readonly TYPE_MISMATCH_ERR: 17;\n readonly SECURITY_ERR: 18;\n readonly NETWORK_ERR: 19;\n readonly ABORT_ERR: 20;\n readonly URL_MISMATCH_ERR: 21;\n readonly QUOTA_EXCEEDED_ERR: 22;\n readonly TIMEOUT_ERR: 23;\n readonly INVALID_NODE_TYPE_ERR: 24;\n readonly DATA_CLONE_ERR: 25;\n}\n\ndeclare var DOMException: {\n prototype: DOMException;\n new(message?: string, name?: string): DOMException;\n readonly INDEX_SIZE_ERR: 1;\n readonly DOMSTRING_SIZE_ERR: 2;\n readonly HIERARCHY_REQUEST_ERR: 3;\n readonly WRONG_DOCUMENT_ERR: 4;\n readonly INVALID_CHARACTER_ERR: 5;\n readonly NO_DATA_ALLOWED_ERR: 6;\n readonly NO_MODIFICATION_ALLOWED_ERR: 7;\n readonly NOT_FOUND_ERR: 8;\n readonly NOT_SUPPORTED_ERR: 9;\n readonly INUSE_ATTRIBUTE_ERR: 10;\n readonly INVALID_STATE_ERR: 11;\n readonly SYNTAX_ERR: 12;\n readonly INVALID_MODIFICATION_ERR: 13;\n readonly NAMESPACE_ERR: 14;\n readonly INVALID_ACCESS_ERR: 15;\n readonly VALIDATION_ERR: 16;\n readonly TYPE_MISMATCH_ERR: 17;\n readonly SECURITY_ERR: 18;\n readonly NETWORK_ERR: 19;\n readonly ABORT_ERR: 20;\n readonly URL_MISMATCH_ERR: 21;\n readonly QUOTA_EXCEEDED_ERR: 22;\n readonly TIMEOUT_ERR: 23;\n readonly INVALID_NODE_TYPE_ERR: 24;\n readonly DATA_CLONE_ERR: 25;\n};\n\n/**\n * An object providing methods which are not dependent on any particular document. Such an object is returned by the Document.implementation property.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation)\n */\ninterface DOMImplementation {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createDocument) */\n createDocument(namespace: string | null, qualifiedName: string | null, doctype?: DocumentType | null): XMLDocument;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createDocumentType) */\n createDocumentType(qualifiedName: string, publicId: string, systemId: string): DocumentType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createHTMLDocument) */\n createHTMLDocument(title?: string): Document;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/hasFeature)\n */\n hasFeature(...args: any[]): true;\n}\n\ndeclare var DOMImplementation: {\n prototype: DOMImplementation;\n new(): DOMImplementation;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix) */\ninterface DOMMatrix extends DOMMatrixReadOnly {\n a: number;\n b: number;\n c: number;\n d: number;\n e: number;\n f: number;\n m11: number;\n m12: number;\n m13: number;\n m14: number;\n m21: number;\n m22: number;\n m23: number;\n m24: number;\n m31: number;\n m32: number;\n m33: number;\n m34: number;\n m41: number;\n m42: number;\n m43: number;\n m44: number;\n invertSelf(): DOMMatrix;\n multiplySelf(other?: DOMMatrixInit): DOMMatrix;\n preMultiplySelf(other?: DOMMatrixInit): DOMMatrix;\n rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;\n rotateFromVectorSelf(x?: number, y?: number): DOMMatrix;\n rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/scale3dSelf) */\n scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/scaleSelf) */\n scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n setMatrixValue(transformList: string): DOMMatrix;\n skewXSelf(sx?: number): DOMMatrix;\n skewYSelf(sy?: number): DOMMatrix;\n translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix;\n}\n\ndeclare var DOMMatrix: {\n prototype: DOMMatrix;\n new(init?: string | number[]): DOMMatrix;\n fromFloat32Array(array32: Float32Array): DOMMatrix;\n fromFloat64Array(array64: Float64Array): DOMMatrix;\n fromMatrix(other?: DOMMatrixInit): DOMMatrix;\n};\n\ntype SVGMatrix = DOMMatrix;\ndeclare var SVGMatrix: typeof DOMMatrix;\n\ntype WebKitCSSMatrix = DOMMatrix;\ndeclare var WebKitCSSMatrix: typeof DOMMatrix;\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly) */\ninterface DOMMatrixReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/a) */\n readonly a: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/b) */\n readonly b: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/c) */\n readonly c: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/d) */\n readonly d: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/e) */\n readonly e: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/f) */\n readonly f: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/is2D) */\n readonly is2D: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/isIdentity) */\n readonly isIdentity: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m11) */\n readonly m11: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m12) */\n readonly m12: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m13) */\n readonly m13: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m14) */\n readonly m14: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m21) */\n readonly m21: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m22) */\n readonly m22: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m23) */\n readonly m23: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m24) */\n readonly m24: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m31) */\n readonly m31: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m32) */\n readonly m32: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m33) */\n readonly m33: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m34) */\n readonly m34: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m41) */\n readonly m41: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m42) */\n readonly m42: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m43) */\n readonly m43: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m44) */\n readonly m44: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/flipX) */\n flipX(): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/flipY) */\n flipY(): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/inverse) */\n inverse(): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/multiply) */\n multiply(other?: DOMMatrixInit): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotate) */\n rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotateAxisAngle) */\n rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotateFromVector) */\n rotateFromVector(x?: number, y?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scale) */\n scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scale3d) */\n scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scaleNonUniform)\n */\n scaleNonUniform(scaleX?: number, scaleY?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/skewX) */\n skewX(sx?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/skewY) */\n skewY(sy?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toFloat32Array) */\n toFloat32Array(): Float32Array;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toFloat64Array) */\n toFloat64Array(): Float64Array;\n toJSON(): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/transformPoint) */\n transformPoint(point?: DOMPointInit): DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/translate) */\n translate(tx?: number, ty?: number, tz?: number): DOMMatrix;\n toString(): string;\n}\n\ndeclare var DOMMatrixReadOnly: {\n prototype: DOMMatrixReadOnly;\n new(init?: string | number[]): DOMMatrixReadOnly;\n fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;\n fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;\n fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;\n};\n\n/**\n * Provides the ability to parse XML or HTML source code from a string into a DOM Document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMParser)\n */\ninterface DOMParser {\n /**\n * Parses string using either the HTML or XML parser, according to type, and returns the resulting Document. type can be "text/html" (which will invoke the HTML parser), or any of "text/xml", "application/xml", "application/xhtml+xml", or "image/svg+xml" (which will invoke the XML parser).\n *\n * For the XML parser, if string cannot be parsed, then the returned Document will contain elements describing the resulting error.\n *\n * Note that script elements are not evaluated during parsing, and the resulting document\'s encoding will always be UTF-8.\n *\n * Values other than the above for type will cause a TypeError exception to be thrown.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMParser/parseFromString)\n */\n parseFromString(string: string, type: DOMParserSupportedType): Document;\n}\n\ndeclare var DOMParser: {\n prototype: DOMParser;\n new(): DOMParser;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint) */\ninterface DOMPoint extends DOMPointReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/w) */\n w: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/x) */\n x: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/y) */\n y: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/z) */\n z: number;\n}\n\ndeclare var DOMPoint: {\n prototype: DOMPoint;\n new(x?: number, y?: number, z?: number, w?: number): DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/fromPoint_static) */\n fromPoint(other?: DOMPointInit): DOMPoint;\n};\n\ntype SVGPoint = DOMPoint;\ndeclare var SVGPoint: typeof DOMPoint;\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly) */\ninterface DOMPointReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/w) */\n readonly w: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/x) */\n readonly x: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/y) */\n readonly y: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/z) */\n readonly z: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/matrixTransform) */\n matrixTransform(matrix?: DOMMatrixInit): DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/toJSON) */\n toJSON(): any;\n}\n\ndeclare var DOMPointReadOnly: {\n prototype: DOMPointReadOnly;\n new(x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/fromPoint_static) */\n fromPoint(other?: DOMPointInit): DOMPointReadOnly;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad) */\ninterface DOMQuad {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p1) */\n readonly p1: DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p2) */\n readonly p2: DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p3) */\n readonly p3: DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p4) */\n readonly p4: DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/getBounds) */\n getBounds(): DOMRect;\n toJSON(): any;\n}\n\ndeclare var DOMQuad: {\n prototype: DOMQuad;\n new(p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;\n fromQuad(other?: DOMQuadInit): DOMQuad;\n fromRect(other?: DOMRectInit): DOMQuad;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect) */\ninterface DOMRect extends DOMRectReadOnly {\n height: number;\n width: number;\n x: number;\n y: number;\n}\n\ndeclare var DOMRect: {\n prototype: DOMRect;\n new(x?: number, y?: number, width?: number, height?: number): DOMRect;\n fromRect(other?: DOMRectInit): DOMRect;\n};\n\ntype SVGRect = DOMRect;\ndeclare var SVGRect: typeof DOMRect;\n\ninterface DOMRectList {\n readonly length: number;\n item(index: number): DOMRect | null;\n [index: number]: DOMRect;\n}\n\ndeclare var DOMRectList: {\n prototype: DOMRectList;\n new(): DOMRectList;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly) */\ninterface DOMRectReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/bottom) */\n readonly bottom: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/height) */\n readonly height: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/left) */\n readonly left: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/right) */\n readonly right: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/top) */\n readonly top: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/width) */\n readonly width: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/x) */\n readonly x: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/y) */\n readonly y: number;\n toJSON(): any;\n}\n\ndeclare var DOMRectReadOnly: {\n prototype: DOMRectReadOnly;\n new(x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/fromRect_static) */\n fromRect(other?: DOMRectInit): DOMRectReadOnly;\n};\n\n/**\n * A type returned by some APIs which contains a list of DOMString (strings).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList)\n */\ninterface DOMStringList {\n /**\n * Returns the number of strings in strings.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/length)\n */\n readonly length: number;\n /**\n * Returns true if strings contains string, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/contains)\n */\n contains(string: string): boolean;\n /**\n * Returns the string with index index from strings.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/item)\n */\n item(index: number): string | null;\n [index: number]: string;\n}\n\ndeclare var DOMStringList: {\n prototype: DOMStringList;\n new(): DOMStringList;\n};\n\n/**\n * Used by the dataset HTML attribute to represent data for custom attributes added to elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringMap)\n */\ninterface DOMStringMap {\n [name: string]: string | undefined;\n}\n\ndeclare var DOMStringMap: {\n prototype: DOMStringMap;\n new(): DOMStringMap;\n};\n\n/**\n * A set of space-separated tokens. Such a set is returned by Element.classList, HTMLLinkElement.relList, HTMLAnchorElement.relList, HTMLAreaElement.relList, HTMLIframeElement.sandbox, or HTMLOutputElement.htmlFor. It is indexed beginning with 0 as with JavaScript Array objects. DOMTokenList is always case-sensitive.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList)\n */\ninterface DOMTokenList {\n /**\n * Returns the number of tokens.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/length)\n */\n readonly length: number;\n /**\n * Returns the associated set as string.\n *\n * Can be set, to change the associated attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/value)\n */\n value: string;\n toString(): string;\n /**\n * Adds all arguments passed, except those already present.\n *\n * Throws a "SyntaxError" DOMException if one of the arguments is the empty string.\n *\n * Throws an "InvalidCharacterError" DOMException if one of the arguments contains any ASCII whitespace.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/add)\n */\n add(...tokens: string[]): void;\n /**\n * Returns true if token is present, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/contains)\n */\n contains(token: string): boolean;\n /**\n * Returns the token with index index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/item)\n */\n item(index: number): string | null;\n /**\n * Removes arguments passed, if they are present.\n *\n * Throws a "SyntaxError" DOMException if one of the arguments is the empty string.\n *\n * Throws an "InvalidCharacterError" DOMException if one of the arguments contains any ASCII whitespace.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/remove)\n */\n remove(...tokens: string[]): void;\n /**\n * Replaces token with newToken.\n *\n * Returns true if token was replaced with newToken, and false otherwise.\n *\n * Throws a "SyntaxError" DOMException if one of the arguments is the empty string.\n *\n * Throws an "InvalidCharacterError" DOMException if one of the arguments contains any ASCII whitespace.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/replace)\n */\n replace(token: string, newToken: string): boolean;\n /**\n * Returns true if token is in the associated attribute\'s supported tokens. Returns false otherwise.\n *\n * Throws a TypeError if the associated attribute has no supported tokens defined.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/supports)\n */\n supports(token: string): boolean;\n /**\n * If force is not given, "toggles" token, removing it if it\'s present and adding it if it\'s not present. If force is true, adds token (same as add()). If force is false, removes token (same as remove()).\n *\n * Returns true if token is now present, and false otherwise.\n *\n * Throws a "SyntaxError" DOMException if token is empty.\n *\n * Throws an "InvalidCharacterError" DOMException if token contains any spaces.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/toggle)\n */\n toggle(token: string, force?: boolean): boolean;\n forEach(callbackfn: (value: string, key: number, parent: DOMTokenList) => void, thisArg?: any): void;\n [index: number]: string;\n}\n\ndeclare var DOMTokenList: {\n prototype: DOMTokenList;\n new(): DOMTokenList;\n};\n\n/**\n * Used to hold the data that is being dragged during a drag and drop operation. It may hold one or more data items, each of one or more data types. For more information about drag and drop, see HTML Drag and Drop API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer)\n */\ninterface DataTransfer {\n /**\n * Returns the kind of operation that is currently selected. If the kind of operation isn\'t one of those that is allowed by the effectAllowed attribute, then the operation will fail.\n *\n * Can be set, to change the selected operation.\n *\n * The possible values are "none", "copy", "link", and "move".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/dropEffect)\n */\n dropEffect: "none" | "copy" | "link" | "move";\n /**\n * Returns the kinds of operations that are to be allowed.\n *\n * Can be set (during the dragstart event), to change the allowed operations.\n *\n * The possible values are "none", "copy", "copyLink", "copyMove", "link", "linkMove", "move", "all", and "uninitialized",\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/effectAllowed)\n */\n effectAllowed: "none" | "copy" | "copyLink" | "copyMove" | "link" | "linkMove" | "move" | "all" | "uninitialized";\n /**\n * Returns a FileList of the files being dragged, if any.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/files)\n */\n readonly files: FileList;\n /**\n * Returns a DataTransferItemList object, with the drag data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/items)\n */\n readonly items: DataTransferItemList;\n /**\n * Returns a frozen array listing the formats that were set in the dragstart event. In addition, if any files are being dragged, then one of the types will be the string "Files".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/types)\n */\n readonly types: ReadonlyArray<string>;\n /**\n * Removes the data of the specified formats. Removes all data if the argument is omitted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/clearData)\n */\n clearData(format?: string): void;\n /**\n * Returns the specified data. If there is no such data, returns the empty string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/getData)\n */\n getData(format: string): string;\n /**\n * Adds the specified data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/setData)\n */\n setData(format: string, data: string): void;\n /**\n * Uses the given element to update the drag feedback, replacing any previously specified feedback.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/setDragImage)\n */\n setDragImage(image: Element, x: number, y: number): void;\n}\n\ndeclare var DataTransfer: {\n prototype: DataTransfer;\n new(): DataTransfer;\n};\n\n/**\n * One drag data item. During a drag operation, each drag event has a dataTransfer property which contains a list of drag data items. Each item in the list is a DataTransferItem object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem)\n */\ninterface DataTransferItem {\n /**\n * Returns the drag data item kind, one of: "string", "file".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/kind)\n */\n readonly kind: string;\n /**\n * Returns the drag data item type string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/type)\n */\n readonly type: string;\n /**\n * Returns a File object, if the drag data item kind is File.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/getAsFile)\n */\n getAsFile(): File | null;\n /**\n * Invokes the callback with the string data as the argument, if the drag data item kind is text.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/getAsString)\n */\n getAsString(callback: FunctionStringCallback | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/webkitGetAsEntry) */\n webkitGetAsEntry(): FileSystemEntry | null;\n}\n\ndeclare var DataTransferItem: {\n prototype: DataTransferItem;\n new(): DataTransferItem;\n};\n\n/**\n * A list of DataTransferItem objects representing items being dragged. During a drag operation, each DragEvent has a dataTransfer property and that property is a DataTransferItemList.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList)\n */\ninterface DataTransferItemList {\n /**\n * Returns the number of items in the drag data store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/length)\n */\n readonly length: number;\n /**\n * Adds a new entry for the given data to the drag data store. If the data is plain text then a type string has to be provided also.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/add)\n */\n add(data: string, type: string): DataTransferItem | null;\n add(data: File): DataTransferItem | null;\n /**\n * Removes all the entries in the drag data store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/clear)\n */\n clear(): void;\n /**\n * Removes the indexth entry in the drag data store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/remove)\n */\n remove(index: number): void;\n [index: number]: DataTransferItem;\n}\n\ndeclare var DataTransferItemList: {\n prototype: DataTransferItemList;\n new(): DataTransferItemList;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DecompressionStream) */\ninterface DecompressionStream extends GenericTransformStream {\n}\n\ndeclare var DecompressionStream: {\n prototype: DecompressionStream;\n new(format: CompressionFormat): DecompressionStream;\n};\n\n/**\n * A delay-line; an AudioNode audio-processing module that causes a delay between the arrival of an input data and its propagation to the output.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DelayNode)\n */\ninterface DelayNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DelayNode/delayTime) */\n readonly delayTime: AudioParam;\n}\n\ndeclare var DelayNode: {\n prototype: DelayNode;\n new(context: BaseAudioContext, options?: DelayOptions): DelayNode;\n};\n\n/**\n * The DeviceMotionEvent provides web developers with information about the speed of changes for the device\'s position and orientation.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent)\n */\ninterface DeviceMotionEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/acceleration) */\n readonly acceleration: DeviceMotionEventAcceleration | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/accelerationIncludingGravity) */\n readonly accelerationIncludingGravity: DeviceMotionEventAcceleration | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/interval) */\n readonly interval: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/rotationRate) */\n readonly rotationRate: DeviceMotionEventRotationRate | null;\n}\n\ndeclare var DeviceMotionEvent: {\n prototype: DeviceMotionEvent;\n new(type: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventAcceleration)\n */\ninterface DeviceMotionEventAcceleration {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventAcceleration/x) */\n readonly x: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventAcceleration/y) */\n readonly y: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventAcceleration/z) */\n readonly z: number | null;\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventRotationRate)\n */\ninterface DeviceMotionEventRotationRate {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventRotationRate/alpha) */\n readonly alpha: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventRotationRate/beta) */\n readonly beta: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventRotationRate/gamma) */\n readonly gamma: number | null;\n}\n\n/**\n * The DeviceOrientationEvent provides web developers with information from the physical orientation of the device running the web page.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent)\n */\ninterface DeviceOrientationEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/absolute) */\n readonly absolute: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/alpha) */\n readonly alpha: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/beta) */\n readonly beta: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/gamma) */\n readonly gamma: number | null;\n}\n\ndeclare var DeviceOrientationEvent: {\n prototype: DeviceOrientationEvent;\n new(type: string, eventInitDict?: DeviceOrientationEventInit): DeviceOrientationEvent;\n};\n\ninterface DocumentEventMap extends GlobalEventHandlersEventMap {\n "DOMContentLoaded": Event;\n "fullscreenchange": Event;\n "fullscreenerror": Event;\n "pointerlockchange": Event;\n "pointerlockerror": Event;\n "readystatechange": Event;\n "visibilitychange": Event;\n}\n\n/**\n * Any web page loaded in the browser and serves as an entry point into the web page\'s content, which is the DOM tree.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document)\n */\ninterface Document extends Node, DocumentOrShadowRoot, FontFaceSource, GlobalEventHandlers, NonElementParentNode, ParentNode, XPathEvaluatorBase {\n /**\n * Sets or gets the URL for the current document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/URL)\n */\n readonly URL: string;\n /**\n * Sets or gets the color of all active links in the document.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/alinkColor)\n */\n alinkColor: string;\n /**\n * Returns a reference to the collection of elements contained by the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/all)\n */\n readonly all: HTMLAllCollection;\n /**\n * Retrieves a collection of all a objects that have a name and/or id property. Objects in this collection are in HTML source order.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/anchors)\n */\n readonly anchors: HTMLCollectionOf<HTMLAnchorElement>;\n /**\n * Retrieves a collection of all applet objects in the document.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/applets)\n */\n readonly applets: HTMLCollection;\n /**\n * Deprecated. Sets or retrieves a value that indicates the background color behind the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/bgColor)\n */\n bgColor: string;\n /**\n * Specifies the beginning and end of the document body.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/body)\n */\n body: HTMLElement;\n /**\n * Returns document\'s encoding.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/characterSet)\n */\n readonly characterSet: string;\n /**\n * Gets or sets the character set used to encode the object.\n * @deprecated This is a legacy alias of `characterSet`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/characterSet)\n */\n readonly charset: string;\n /**\n * Gets a value that indicates whether standards-compliant mode is switched on for the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/compatMode)\n */\n readonly compatMode: string;\n /**\n * Returns document\'s content type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/contentType)\n */\n readonly contentType: string;\n /**\n * Returns the HTTP cookies that apply to the Document. If there are no cookies or cookies can\'t be applied to this resource, the empty string will be returned.\n *\n * Can be set, to add a new cookie to the element\'s set of HTTP cookies.\n *\n * If the contents are sandboxed into a unique origin (e.g. in an iframe with the sandbox attribute), a "SecurityError" DOMException will be thrown on getting and setting.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/cookie)\n */\n cookie: string;\n /**\n * Returns the script element, or the SVG script element, that is currently executing, as long as the element represents a classic script. In the case of reentrant script execution, returns the one that most recently started executing amongst those that have not yet finished executing.\n *\n * Returns null if the Document is not currently executing a script or SVG script element (e.g., because the running script is an event handler, or a timeout), or if the currently executing script or SVG script element represents a module script.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/currentScript)\n */\n readonly currentScript: HTMLOrSVGScriptElement | null;\n /**\n * Returns the Window object of the active document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/defaultView)\n */\n readonly defaultView: (WindowProxy & typeof globalThis) | null;\n /**\n * Sets or gets a value that indicates whether the document can be edited.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/designMode)\n */\n designMode: string;\n /**\n * Sets or retrieves a value that indicates the reading order of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/dir)\n */\n dir: string;\n /**\n * Gets an object representing the document type declaration associated with the current document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/doctype)\n */\n readonly doctype: DocumentType | null;\n /**\n * Gets a reference to the root node of the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/documentElement)\n */\n readonly documentElement: HTMLElement;\n /**\n * Returns document\'s URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/documentURI)\n */\n readonly documentURI: string;\n /**\n * Sets or gets the security domain of the document.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/domain)\n */\n domain: string;\n /**\n * Retrieves a collection of all embed objects in the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/embeds)\n */\n readonly embeds: HTMLCollectionOf<HTMLEmbedElement>;\n /**\n * Sets or gets the foreground (text) color of the document.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fgColor)\n */\n fgColor: string;\n /**\n * Retrieves a collection, in source order, of all form objects in the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/forms)\n */\n readonly forms: HTMLCollectionOf<HTMLFormElement>;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreen)\n */\n readonly fullscreen: boolean;\n /**\n * Returns true if document has the ability to display elements fullscreen and fullscreen is supported, or false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenEnabled)\n */\n readonly fullscreenEnabled: boolean;\n /**\n * Returns the head element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/head)\n */\n readonly head: HTMLHeadElement;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/hidden) */\n readonly hidden: boolean;\n /**\n * Retrieves a collection, in source order, of img objects in the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/images)\n */\n readonly images: HTMLCollectionOf<HTMLImageElement>;\n /**\n * Gets the implementation object of the current document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/implementation)\n */\n readonly implementation: DOMImplementation;\n /**\n * Returns the character encoding used to create the webpage that is loaded into the document object.\n * @deprecated This is a legacy alias of `characterSet`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/characterSet)\n */\n readonly inputEncoding: string;\n /**\n * Gets the date that the page was last modified, if the page supplies one.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/lastModified)\n */\n readonly lastModified: string;\n /**\n * Sets or gets the color of the document links.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/linkColor)\n */\n linkColor: string;\n /**\n * Retrieves a collection of all a objects that specify the href property and all area objects in the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/links)\n */\n readonly links: HTMLCollectionOf<HTMLAnchorElement | HTMLAreaElement>;\n /**\n * Contains information about the current URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/location)\n */\n get location(): Location;\n set location(href: string | Location);\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenchange_event) */\n onfullscreenchange: ((this: Document, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenerror_event) */\n onfullscreenerror: ((this: Document, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pointerlockchange_event) */\n onpointerlockchange: ((this: Document, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pointerlockerror_event) */\n onpointerlockerror: ((this: Document, ev: Event) => any) | null;\n /**\n * Fires when the state of the object has changed.\n * @param ev The event\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/readystatechange_event)\n */\n onreadystatechange: ((this: Document, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/visibilitychange_event) */\n onvisibilitychange: ((this: Document, ev: Event) => any) | null;\n readonly ownerDocument: null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pictureInPictureEnabled) */\n readonly pictureInPictureEnabled: boolean;\n /**\n * Return an HTMLCollection of the embed elements in the Document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/plugins)\n */\n readonly plugins: HTMLCollectionOf<HTMLEmbedElement>;\n /**\n * Retrieves a value that indicates the current state of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/readyState)\n */\n readonly readyState: DocumentReadyState;\n /**\n * Gets the URL of the location that referred the user to the current page.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/referrer)\n */\n readonly referrer: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/rootElement)\n */\n readonly rootElement: SVGSVGElement | null;\n /**\n * Retrieves a collection of all script objects in the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scripts)\n */\n readonly scripts: HTMLCollectionOf<HTMLScriptElement>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scrollingElement) */\n readonly scrollingElement: Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/timeline) */\n readonly timeline: DocumentTimeline;\n /**\n * Contains the title of the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/title)\n */\n title: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/visibilityState) */\n readonly visibilityState: DocumentVisibilityState;\n /**\n * Sets or gets the color of the links that the user has visited.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/vlinkColor)\n */\n vlinkColor: string;\n /**\n * Moves node from another document and returns it.\n *\n * If node is a document, throws a "NotSupportedError" DOMException or, if node is a shadow root, throws a "HierarchyRequestError" DOMException.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/adoptNode)\n */\n adoptNode<T extends Node>(node: T): T;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/captureEvents)\n */\n captureEvents(): void;\n /** @deprecated */\n caretRangeFromPoint(x: number, y: number): Range | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/clear)\n */\n clear(): void;\n /**\n * Closes an output stream and forces the sent data to display.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/close)\n */\n close(): void;\n /**\n * Creates an attribute object with a specified name.\n * @param name String that sets the attribute object\'s name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createAttribute)\n */\n createAttribute(localName: string): Attr;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createAttributeNS) */\n createAttributeNS(namespace: string | null, qualifiedName: string): Attr;\n /**\n * Returns a CDATASection node whose data is data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createCDATASection)\n */\n createCDATASection(data: string): CDATASection;\n /**\n * Creates a comment object with the specified data.\n * @param data Sets the comment object\'s data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createComment)\n */\n createComment(data: string): Comment;\n /**\n * Creates a new document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createDocumentFragment)\n */\n createDocumentFragment(): DocumentFragment;\n /**\n * Creates an instance of the element for the specified tag.\n * @param tagName The name of an element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createElement)\n */\n createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K];\n /** @deprecated */\n createElement<K extends keyof HTMLElementDeprecatedTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K];\n createElement(tagName: string, options?: ElementCreationOptions): HTMLElement;\n /**\n * Returns an element with namespace namespace. Its namespace prefix will be everything before ":" (U+003E) in qualifiedName or null. Its local name will be everything after ":" (U+003E) in qualifiedName or qualifiedName.\n *\n * If localName does not match the Name production an "InvalidCharacterError" DOMException will be thrown.\n *\n * If one of the following conditions is true a "NamespaceError" DOMException will be thrown:\n *\n * localName does not match the QName production.\n * Namespace prefix is not null and namespace is the empty string.\n * Namespace prefix is "xml" and namespace is not the XML namespace.\n * qualifiedName or namespace prefix is "xmlns" and namespace is not the XMLNS namespace.\n * namespace is the XMLNS namespace and neither qualifiedName nor namespace prefix is "xmlns".\n *\n * When supplied, options\'s is can be used to create a customized built-in element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createElementNS)\n */\n createElementNS(namespaceURI: "http://www.w3.org/1999/xhtml", qualifiedName: string): HTMLElement;\n createElementNS<K extends keyof SVGElementTagNameMap>(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: K): SVGElementTagNameMap[K];\n createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: string): SVGElement;\n createElementNS<K extends keyof MathMLElementTagNameMap>(namespaceURI: "http://www.w3.org/1998/Math/MathML", qualifiedName: K): MathMLElementTagNameMap[K];\n createElementNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", qualifiedName: string): MathMLElement;\n createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element;\n createElementNS(namespace: string | null, qualifiedName: string, options?: string | ElementCreationOptions): Element;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createEvent) */\n createEvent(eventInterface: "AnimationEvent"): AnimationEvent;\n createEvent(eventInterface: "AnimationPlaybackEvent"): AnimationPlaybackEvent;\n createEvent(eventInterface: "AudioProcessingEvent"): AudioProcessingEvent;\n createEvent(eventInterface: "BeforeUnloadEvent"): BeforeUnloadEvent;\n createEvent(eventInterface: "BlobEvent"): BlobEvent;\n createEvent(eventInterface: "ClipboardEvent"): ClipboardEvent;\n createEvent(eventInterface: "CloseEvent"): CloseEvent;\n createEvent(eventInterface: "CompositionEvent"): CompositionEvent;\n createEvent(eventInterface: "CustomEvent"): CustomEvent;\n createEvent(eventInterface: "DeviceMotionEvent"): DeviceMotionEvent;\n createEvent(eventInterface: "DeviceOrientationEvent"): DeviceOrientationEvent;\n createEvent(eventInterface: "DragEvent"): DragEvent;\n createEvent(eventInterface: "ErrorEvent"): ErrorEvent;\n createEvent(eventInterface: "Event"): Event;\n createEvent(eventInterface: "Events"): Event;\n createEvent(eventInterface: "FocusEvent"): FocusEvent;\n createEvent(eventInterface: "FontFaceSetLoadEvent"): FontFaceSetLoadEvent;\n createEvent(eventInterface: "FormDataEvent"): FormDataEvent;\n createEvent(eventInterface: "GamepadEvent"): GamepadEvent;\n createEvent(eventInterface: "HashChangeEvent"): HashChangeEvent;\n createEvent(eventInterface: "IDBVersionChangeEvent"): IDBVersionChangeEvent;\n createEvent(eventInterface: "InputEvent"): InputEvent;\n createEvent(eventInterface: "KeyboardEvent"): KeyboardEvent;\n createEvent(eventInterface: "MIDIConnectionEvent"): MIDIConnectionEvent;\n createEvent(eventInterface: "MIDIMessageEvent"): MIDIMessageEvent;\n createEvent(eventInterface: "MediaEncryptedEvent"): MediaEncryptedEvent;\n createEvent(eventInterface: "MediaKeyMessageEvent"): MediaKeyMessageEvent;\n createEvent(eventInterface: "MediaQueryListEvent"): MediaQueryListEvent;\n createEvent(eventInterface: "MediaStreamTrackEvent"): MediaStreamTrackEvent;\n createEvent(eventInterface: "MessageEvent"): MessageEvent;\n createEvent(eventInterface: "MouseEvent"): MouseEvent;\n createEvent(eventInterface: "MouseEvents"): MouseEvent;\n createEvent(eventInterface: "MutationEvent"): MutationEvent;\n createEvent(eventInterface: "MutationEvents"): MutationEvent;\n createEvent(eventInterface: "OfflineAudioCompletionEvent"): OfflineAudioCompletionEvent;\n createEvent(eventInterface: "PageTransitionEvent"): PageTransitionEvent;\n createEvent(eventInterface: "PaymentMethodChangeEvent"): PaymentMethodChangeEvent;\n createEvent(eventInterface: "PaymentRequestUpdateEvent"): PaymentRequestUpdateEvent;\n createEvent(eventInterface: "PictureInPictureEvent"): PictureInPictureEvent;\n createEvent(eventInterface: "PointerEvent"): PointerEvent;\n createEvent(eventInterface: "PopStateEvent"): PopStateEvent;\n createEvent(eventInterface: "ProgressEvent"): ProgressEvent;\n createEvent(eventInterface: "PromiseRejectionEvent"): PromiseRejectionEvent;\n createEvent(eventInterface: "RTCDTMFToneChangeEvent"): RTCDTMFToneChangeEvent;\n createEvent(eventInterface: "RTCDataChannelEvent"): RTCDataChannelEvent;\n createEvent(eventInterface: "RTCErrorEvent"): RTCErrorEvent;\n createEvent(eventInterface: "RTCPeerConnectionIceErrorEvent"): RTCPeerConnectionIceErrorEvent;\n createEvent(eventInterface: "RTCPeerConnectionIceEvent"): RTCPeerConnectionIceEvent;\n createEvent(eventInterface: "RTCTrackEvent"): RTCTrackEvent;\n createEvent(eventInterface: "SecurityPolicyViolationEvent"): SecurityPolicyViolationEvent;\n createEvent(eventInterface: "SpeechSynthesisErrorEvent"): SpeechSynthesisErrorEvent;\n createEvent(eventInterface: "SpeechSynthesisEvent"): SpeechSynthesisEvent;\n createEvent(eventInterface: "StorageEvent"): StorageEvent;\n createEvent(eventInterface: "SubmitEvent"): SubmitEvent;\n createEvent(eventInterface: "ToggleEvent"): ToggleEvent;\n createEvent(eventInterface: "TouchEvent"): TouchEvent;\n createEvent(eventInterface: "TrackEvent"): TrackEvent;\n createEvent(eventInterface: "TransitionEvent"): TransitionEvent;\n createEvent(eventInterface: "UIEvent"): UIEvent;\n createEvent(eventInterface: "UIEvents"): UIEvent;\n createEvent(eventInterface: "WebGLContextEvent"): WebGLContextEvent;\n createEvent(eventInterface: "WheelEvent"): WheelEvent;\n createEvent(eventInterface: string): Event;\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n * @param root The root element or node to start traversing on.\n * @param whatToShow The type of nodes or elements to appear in the node list\n * @param filter A custom NodeFilter function to use. For more information, see filter. Use null for no filter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createNodeIterator)\n */\n createNodeIterator(root: Node, whatToShow?: number, filter?: NodeFilter | null): NodeIterator;\n /**\n * Returns a ProcessingInstruction node whose target is target and data is data. If target does not match the Name production an "InvalidCharacterError" DOMException will be thrown. If data contains "?>" an "InvalidCharacterError" DOMException will be thrown.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createProcessingInstruction)\n */\n createProcessingInstruction(target: string, data: string): ProcessingInstruction;\n /**\n * Returns an empty range object that has both of its boundary points positioned at the beginning of the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createRange)\n */\n createRange(): Range;\n /**\n * Creates a text string from the specified value.\n * @param data String that specifies the nodeValue property of the text node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createTextNode)\n */\n createTextNode(data: string): Text;\n /**\n * Creates a TreeWalker object that you can use to traverse filtered lists of nodes or elements in a document.\n * @param root The root element or node to start traversing on.\n * @param whatToShow The type of nodes or elements to appear in the node list. For more information, see whatToShow.\n * @param filter A custom NodeFilter function to use.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createTreeWalker)\n */\n createTreeWalker(root: Node, whatToShow?: number, filter?: NodeFilter | null): TreeWalker;\n /**\n * Executes a command on the current document, current selection, or the given range.\n * @param commandId String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.\n * @param showUI Display the user interface, defaults to false.\n * @param value Value to assign.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/execCommand)\n */\n execCommand(commandId: string, showUI?: boolean, value?: string): boolean;\n /**\n * Stops document\'s fullscreen element from being displayed fullscreen and resolves promise when done.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitFullscreen)\n */\n exitFullscreen(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitPictureInPicture) */\n exitPictureInPicture(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitPointerLock) */\n exitPointerLock(): void;\n /**\n * Returns a reference to the first object with the specified value of the ID attribute.\n * @param elementId String that specifies the ID value.\n */\n getElementById(elementId: string): HTMLElement | null;\n /**\n * Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByClassName)\n */\n getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;\n /**\n * Gets a collection of objects based on the value of the NAME or ID attribute.\n * @param elementName Gets a collection of objects based on the value of the NAME or ID attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByName)\n */\n getElementsByName(elementName: string): NodeListOf<HTMLElement>;\n /**\n * Retrieves a collection of objects based on the specified element name.\n * @param name Specifies the name of an element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByTagName)\n */\n getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;\n getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;\n getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;\n /** @deprecated */\n getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;\n getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;\n /**\n * If namespace and localName are "*" returns a HTMLCollection of all descendant elements.\n *\n * If only namespace is "*" returns a HTMLCollection of all descendant elements whose local name is localName.\n *\n * If only localName is "*" returns a HTMLCollection of all descendant elements whose namespace is namespace.\n *\n * Otherwise, returns a HTMLCollection of all descendant elements whose namespace is namespace and local name is localName.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByTagNameNS)\n */\n getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;\n getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;\n getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;\n getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;\n /**\n * Returns an object representing the current selection of the document that is loaded into the object displaying a webpage.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getSelection)\n */\n getSelection(): Selection | null;\n /**\n * Gets a value indicating whether the object currently has focus.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/hasFocus)\n */\n hasFocus(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/hasStorageAccess) */\n hasStorageAccess(): Promise<boolean>;\n /**\n * Returns a copy of node. If deep is true, the copy also includes the node\'s descendants.\n *\n * If node is a document or a shadow root, throws a "NotSupportedError" DOMException.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/importNode)\n */\n importNode<T extends Node>(node: T, deep?: boolean): T;\n /**\n * Opens a new window and loads a document specified by a given URL. Also, opens a new window that uses the url parameter and the name parameter to collect the output of the write method and the writeln method.\n * @param url Specifies a MIME type for the document.\n * @param name Specifies the name of the window. This name is used as the value for the TARGET attribute on a form or an anchor element.\n * @param features Contains a list of items separated by commas. Each item consists of an option and a value, separated by an equals sign (for example, "fullscreen=yes, toolbar=yes"). The following values are supported.\n * @param replace Specifies whether the existing entry for the document is replaced in the history list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/open)\n */\n open(unused1?: string, unused2?: string): Document;\n open(url: string | URL, name: string, features: string): WindowProxy | null;\n /**\n * Returns a Boolean value that indicates whether a specified command can be successfully executed using execCommand, given the current state of the document.\n * @param commandId Specifies a command identifier.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandEnabled)\n */\n queryCommandEnabled(commandId: string): boolean;\n /**\n * Returns a Boolean value that indicates whether the specified command is in the indeterminate state.\n * @param commandId String that specifies a command identifier.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandIndeterm)\n */\n queryCommandIndeterm(commandId: string): boolean;\n /**\n * Returns a Boolean value that indicates the current state of the command.\n * @param commandId String that specifies a command identifier.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandState)\n */\n queryCommandState(commandId: string): boolean;\n /**\n * Returns a Boolean value that indicates whether the current command is supported on the current range.\n * @param commandId Specifies a command identifier.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandSupported)\n */\n queryCommandSupported(commandId: string): boolean;\n /**\n * Returns the current value of the document, range, or current selection for the given command.\n * @param commandId String that specifies a command identifier.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandValue)\n */\n queryCommandValue(commandId: string): string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/releaseEvents)\n */\n releaseEvents(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/requestStorageAccess) */\n requestStorageAccess(): Promise<void>;\n /**\n * Writes one or more HTML expressions to a document in the specified window.\n * @param content Specifies the text and HTML tags to write.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/write)\n */\n write(...text: string[]): void;\n /**\n * Writes one or more HTML expressions, followed by a carriage return, to a document in the specified window.\n * @param content The text and HTML tags to write.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/writeln)\n */\n writeln(...text: string[]): void;\n addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Document: {\n prototype: Document;\n new(): Document;\n};\n\n/**\n * A minimal document object that has no parent. It is used as a lightweight version of Document that stores a segment of a document structure comprised of nodes just like a standard document. The key difference is that because the document fragment isn\'t part of the active document tree structure, changes made to the fragment don\'t affect the document, cause reflow, or incur any performance impact that can occur when changes are made.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentFragment)\n */\ninterface DocumentFragment extends Node, NonElementParentNode, ParentNode {\n readonly ownerDocument: Document;\n getElementById(elementId: string): HTMLElement | null;\n}\n\ndeclare var DocumentFragment: {\n prototype: DocumentFragment;\n new(): DocumentFragment;\n};\n\ninterface DocumentOrShadowRoot {\n /**\n * Returns the deepest element in the document through which or to which key events are being routed. This is, roughly speaking, the focused element in the document.\n *\n * For the purposes of this API, when a child browsing context is focused, its container is focused in the parent browsing context. For example, if the user moves the focus to a text control in an iframe, the iframe is the element returned by the activeElement API in the iframe\'s node document.\n *\n * Similarly, when the focused element is in a different node tree than documentOrShadowRoot, the element returned will be the host that\'s located in the same node tree as documentOrShadowRoot if documentOrShadowRoot is a shadow-including inclusive ancestor of the focused element, and null if not.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/activeElement)\n */\n readonly activeElement: Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/adoptedStyleSheets) */\n adoptedStyleSheets: CSSStyleSheet[];\n /**\n * Returns document\'s fullscreen element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenElement)\n */\n readonly fullscreenElement: Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pictureInPictureElement) */\n readonly pictureInPictureElement: Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pointerLockElement) */\n readonly pointerLockElement: Element | null;\n /**\n * Retrieves a collection of styleSheet objects representing the style sheets that correspond to each instance of a link or style object in the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/styleSheets)\n */\n readonly styleSheets: StyleSheetList;\n /**\n * Returns the element for the specified x coordinate and the specified y coordinate.\n * @param x The x-offset\n * @param y The y-offset\n */\n elementFromPoint(x: number, y: number): Element | null;\n elementsFromPoint(x: number, y: number): Element[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getAnimations) */\n getAnimations(): Animation[];\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentTimeline) */\ninterface DocumentTimeline extends AnimationTimeline {\n}\n\ndeclare var DocumentTimeline: {\n prototype: DocumentTimeline;\n new(options?: DocumentTimelineOptions): DocumentTimeline;\n};\n\n/**\n * A Node containing a doctype.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType)\n */\ninterface DocumentType extends Node, ChildNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType/name) */\n readonly name: string;\n readonly ownerDocument: Document;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType/publicId) */\n readonly publicId: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType/systemId) */\n readonly systemId: string;\n}\n\ndeclare var DocumentType: {\n prototype: DocumentType;\n new(): DocumentType;\n};\n\n/**\n * A DOM event that represents a drag and drop interaction. The user initiates a drag by placing a pointer device (such as a mouse) on the touch surface and then dragging the pointer to a new location (such as another DOM element). Applications are free to interpret a drag and drop interaction in an application-specific way.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DragEvent)\n */\ninterface DragEvent extends MouseEvent {\n /**\n * Returns the DataTransfer object for the event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DragEvent/dataTransfer)\n */\n readonly dataTransfer: DataTransfer | null;\n}\n\ndeclare var DragEvent: {\n prototype: DragEvent;\n new(type: string, eventInitDict?: DragEventInit): DragEvent;\n};\n\n/**\n * Inherits properties from its parent, AudioNode.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode)\n */\ninterface DynamicsCompressorNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/attack) */\n readonly attack: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/knee) */\n readonly knee: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/ratio) */\n readonly ratio: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/reduction) */\n readonly reduction: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/release) */\n readonly release: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/threshold) */\n readonly threshold: AudioParam;\n}\n\ndeclare var DynamicsCompressorNode: {\n prototype: DynamicsCompressorNode;\n new(context: BaseAudioContext, options?: DynamicsCompressorOptions): DynamicsCompressorNode;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_blend_minmax) */\ninterface EXT_blend_minmax {\n readonly MIN_EXT: 0x8007;\n readonly MAX_EXT: 0x8008;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_color_buffer_float) */\ninterface EXT_color_buffer_float {\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_color_buffer_half_float) */\ninterface EXT_color_buffer_half_float {\n readonly RGBA16F_EXT: 0x881A;\n readonly RGB16F_EXT: 0x881B;\n readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;\n readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_float_blend) */\ninterface EXT_float_blend {\n}\n\n/**\n * The EXT_frag_depth extension is part of the WebGL API and enables to set a depth value of a fragment from within the fragment shader.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_frag_depth)\n */\ninterface EXT_frag_depth {\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_sRGB) */\ninterface EXT_sRGB {\n readonly SRGB_EXT: 0x8C40;\n readonly SRGB_ALPHA_EXT: 0x8C42;\n readonly SRGB8_ALPHA8_EXT: 0x8C43;\n readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: 0x8210;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_shader_texture_lod) */\ninterface EXT_shader_texture_lod {\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_compression_bptc) */\ninterface EXT_texture_compression_bptc {\n readonly COMPRESSED_RGBA_BPTC_UNORM_EXT: 0x8E8C;\n readonly COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT: 0x8E8D;\n readonly COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT: 0x8E8E;\n readonly COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT: 0x8E8F;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_compression_rgtc) */\ninterface EXT_texture_compression_rgtc {\n readonly COMPRESSED_RED_RGTC1_EXT: 0x8DBB;\n readonly COMPRESSED_SIGNED_RED_RGTC1_EXT: 0x8DBC;\n readonly COMPRESSED_RED_GREEN_RGTC2_EXT: 0x8DBD;\n readonly COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 0x8DBE;\n}\n\n/**\n * The EXT_texture_filter_anisotropic extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_filter_anisotropic)\n */\ninterface EXT_texture_filter_anisotropic {\n readonly TEXTURE_MAX_ANISOTROPY_EXT: 0x84FE;\n readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: 0x84FF;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_norm16) */\ninterface EXT_texture_norm16 {\n readonly R16_EXT: 0x822A;\n readonly RG16_EXT: 0x822C;\n readonly RGB16_EXT: 0x8054;\n readonly RGBA16_EXT: 0x805B;\n readonly R16_SNORM_EXT: 0x8F98;\n readonly RG16_SNORM_EXT: 0x8F99;\n readonly RGB16_SNORM_EXT: 0x8F9A;\n readonly RGBA16_SNORM_EXT: 0x8F9B;\n}\n\ninterface ElementEventMap {\n "fullscreenchange": Event;\n "fullscreenerror": Event;\n}\n\n/**\n * Element is the most general base class from which all objects in a Document inherit. It only has methods and properties common to all kinds of elements. More specific classes inherit from Element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element)\n */\ninterface Element extends Node, ARIAMixin, Animatable, ChildNode, InnerHTML, NonDocumentTypeChildNode, ParentNode, Slottable {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/attributes) */\n readonly attributes: NamedNodeMap;\n /**\n * Allows for manipulation of element\'s class content attribute as a set of whitespace-separated tokens through a DOMTokenList object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/classList)\n */\n readonly classList: DOMTokenList;\n /**\n * Returns the value of element\'s class content attribute. Can be set to change it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/className)\n */\n className: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientHeight) */\n readonly clientHeight: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientLeft) */\n readonly clientLeft: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientTop) */\n readonly clientTop: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientWidth) */\n readonly clientWidth: number;\n /**\n * Returns the value of element\'s id content attribute. Can be set to change it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/id)\n */\n id: string;\n /**\n * Returns the local name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/localName)\n */\n readonly localName: string;\n /**\n * Returns the namespace.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/namespaceURI)\n */\n readonly namespaceURI: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/fullscreenchange_event) */\n onfullscreenchange: ((this: Element, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/fullscreenerror_event) */\n onfullscreenerror: ((this: Element, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/outerHTML) */\n outerHTML: string;\n readonly ownerDocument: Document;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/part) */\n readonly part: DOMTokenList;\n /**\n * Returns the namespace prefix.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/prefix)\n */\n readonly prefix: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollHeight) */\n readonly scrollHeight: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollLeft) */\n scrollLeft: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollTop) */\n scrollTop: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollWidth) */\n readonly scrollWidth: number;\n /**\n * Returns element\'s shadow root, if any, and if shadow root\'s mode is "open", and null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/shadowRoot)\n */\n readonly shadowRoot: ShadowRoot | null;\n /**\n * Returns the value of element\'s slot content attribute. Can be set to change it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/slot)\n */\n slot: string;\n /**\n * Returns the HTML-uppercased qualified name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/tagName)\n */\n readonly tagName: string;\n /**\n * Creates a shadow root for element and returns it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)\n */\n attachShadow(init: ShadowRootInit): ShadowRoot;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility) */\n checkVisibility(options?: CheckVisibilityOptions): boolean;\n /**\n * Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/closest)\n */\n closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;\n closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;\n closest<K extends keyof MathMLElementTagNameMap>(selector: K): MathMLElementTagNameMap[K] | null;\n closest<E extends Element = Element>(selectors: string): E | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap) */\n computedStyleMap(): StylePropertyMapReadOnly;\n /**\n * Returns element\'s first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)\n */\n getAttribute(qualifiedName: string): string | null;\n /**\n * Returns element\'s attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)\n */\n getAttributeNS(namespace: string | null, localName: string): string | null;\n /**\n * Returns the qualified names of all element\'s attributes. Can contain duplicates.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)\n */\n getAttributeNames(): string[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode) */\n getAttributeNode(qualifiedName: string): Attr | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS) */\n getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect) */\n getBoundingClientRect(): DOMRect;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getClientRects) */\n getClientRects(): DOMRectList;\n /**\n * Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)\n */\n getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName) */\n getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;\n getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;\n getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;\n /** @deprecated */\n getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;\n getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS) */\n getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;\n getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;\n getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;\n getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;\n /**\n * Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)\n */\n hasAttribute(qualifiedName: string): boolean;\n /**\n * Returns true if element has an attribute whose namespace is namespace and local name is localName.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)\n */\n hasAttributeNS(namespace: string | null, localName: string): boolean;\n /**\n * Returns true if element has attributes, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)\n */\n hasAttributes(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture) */\n hasPointerCapture(pointerId: number): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement) */\n insertAdjacentElement(where: InsertPosition, element: Element): Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML) */\n insertAdjacentHTML(position: InsertPosition, text: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText) */\n insertAdjacentText(where: InsertPosition, data: string): void;\n /**\n * Returns true if matching selectors against element\'s root yields element, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/matches)\n */\n matches(selectors: string): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture) */\n releasePointerCapture(pointerId: number): void;\n /**\n * Removes element\'s first attribute whose qualified name is qualifiedName.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)\n */\n removeAttribute(qualifiedName: string): void;\n /**\n * Removes element\'s attribute whose namespace is namespace and local name is localName.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)\n */\n removeAttributeNS(namespace: string | null, localName: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode) */\n removeAttributeNode(attr: Attr): Attr;\n /**\n * Displays element fullscreen and resolves promise when done.\n *\n * When supplied, options\'s navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application\'s. The default value "auto" indicates no application preference.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)\n */\n requestFullscreen(options?: FullscreenOptions): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock) */\n requestPointerLock(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scroll) */\n scroll(options?: ScrollToOptions): void;\n scroll(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollBy) */\n scrollBy(options?: ScrollToOptions): void;\n scrollBy(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView) */\n scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollTo) */\n scrollTo(options?: ScrollToOptions): void;\n scrollTo(x: number, y: number): void;\n /**\n * Sets the value of element\'s first attribute whose qualified name is qualifiedName to value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)\n */\n setAttribute(qualifiedName: string, value: string): void;\n /**\n * Sets the value of element\'s attribute whose namespace is namespace and local name is localName to value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)\n */\n setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode) */\n setAttributeNode(attr: Attr): Attr | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS) */\n setAttributeNodeNS(attr: Attr): Attr | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture) */\n setPointerCapture(pointerId: number): void;\n /**\n * If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName.\n *\n * Returns true if qualifiedName is now present, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)\n */\n toggleAttribute(qualifiedName: string, force?: boolean): boolean;\n /**\n * @deprecated This is a legacy alias of `matches`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/matches)\n */\n webkitMatchesSelector(selectors: string): boolean;\n addEventListener<K extends keyof ElementEventMap>(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof ElementEventMap>(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Element: {\n prototype: Element;\n new(): Element;\n};\n\ninterface ElementCSSInlineStyle {\n readonly attributeStyleMap: StylePropertyMap;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/style) */\n readonly style: CSSStyleDeclaration;\n}\n\ninterface ElementContentEditable {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/contentEditable) */\n contentEditable: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/enterKeyHint) */\n enterKeyHint: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/inputMode) */\n inputMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/isContentEditable) */\n readonly isContentEditable: boolean;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals) */\ninterface ElementInternals extends ARIAMixin {\n /**\n * Returns the form owner of internals\'s target element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/form)\n */\n readonly form: HTMLFormElement | null;\n /**\n * Returns a NodeList of all the label elements that internals\'s target element is associated with.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/labels)\n */\n readonly labels: NodeList;\n /**\n * Returns the ShadowRoot for internals\'s target element, if the target element is a shadow host, or null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/shadowRoot)\n */\n readonly shadowRoot: ShadowRoot | null;\n /**\n * Returns the error message that would be shown to the user if internals\'s target element was to be checked for validity.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/validationMessage)\n */\n readonly validationMessage: string;\n /**\n * Returns the ValidityState object for internals\'s target element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/validity)\n */\n readonly validity: ValidityState;\n /**\n * Returns true if internals\'s target element will be validated when the form is submitted; false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/willValidate)\n */\n readonly willValidate: boolean;\n /**\n * Returns true if internals\'s target element has no validity problems; false otherwise. Fires an invalid event at the element in the latter case.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/checkValidity)\n */\n checkValidity(): boolean;\n /**\n * Returns true if internals\'s target element has no validity problems; otherwise, returns false, fires an invalid event at the element, and (if the event isn\'t canceled) reports the problem to the user.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/reportValidity)\n */\n reportValidity(): boolean;\n /**\n * Sets both the state and submission value of internals\'s target element to value.\n *\n * If value is null, the element won\'t participate in form submission.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/setFormValue)\n */\n setFormValue(value: File | string | FormData | null, state?: File | string | FormData | null): void;\n /**\n * Marks internals\'s target element as suffering from the constraints indicated by the flags argument, and sets the element\'s validation message to message. If anchor is specified, the user agent might use it to indicate problems with the constraints of internals\'s target element when the form owner is validated interactively or reportValidity() is called.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/setValidity)\n */\n setValidity(flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement): void;\n}\n\ndeclare var ElementInternals: {\n prototype: ElementInternals;\n new(): ElementInternals;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk) */\ninterface EncodedVideoChunk {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/byteLength) */\n readonly byteLength: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/duration) */\n readonly duration: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/timestamp) */\n readonly timestamp: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/type) */\n readonly type: EncodedVideoChunkType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/copyTo) */\n copyTo(destination: AllowSharedBufferSource): void;\n}\n\ndeclare var EncodedVideoChunk: {\n prototype: EncodedVideoChunk;\n new(init: EncodedVideoChunkInit): EncodedVideoChunk;\n};\n\n/**\n * Events providing information related to errors in scripts or in files.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent)\n */\ninterface ErrorEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/colno) */\n readonly colno: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/error) */\n readonly error: any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/filename) */\n readonly filename: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/lineno) */\n readonly lineno: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/message) */\n readonly message: string;\n}\n\ndeclare var ErrorEvent: {\n prototype: ErrorEvent;\n new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent;\n};\n\n/**\n * An event which takes place in the DOM.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event)\n */\ninterface Event {\n /**\n * Returns true or false depending on how event was initialized. True if event goes through its target\'s ancestors in reverse tree order, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/bubbles)\n */\n readonly bubbles: boolean;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelBubble)\n */\n cancelBubble: boolean;\n /**\n * Returns true or false depending on how event was initialized. Its return value does not always carry meaning, but true can indicate that part of the operation during which event was dispatched, can be canceled by invoking the preventDefault() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelable)\n */\n readonly cancelable: boolean;\n /**\n * Returns true or false depending on how event was initialized. True if event invokes listeners past a ShadowRoot node that is the root of its target, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composed)\n */\n readonly composed: boolean;\n /**\n * Returns the object whose event listener\'s callback is currently being invoked.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)\n */\n readonly currentTarget: EventTarget | null;\n /**\n * Returns true if preventDefault() was invoked successfully to indicate cancelation, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/defaultPrevented)\n */\n readonly defaultPrevented: boolean;\n /**\n * Returns the event\'s phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET, and BUBBLING_PHASE.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/eventPhase)\n */\n readonly eventPhase: number;\n /**\n * Returns true if event was dispatched by the user agent, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/isTrusted)\n */\n readonly isTrusted: boolean;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/returnValue)\n */\n returnValue: boolean;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/srcElement)\n */\n readonly srcElement: EventTarget | null;\n /**\n * Returns the object to which event is dispatched (its target).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)\n */\n readonly target: EventTarget | null;\n /**\n * Returns the event\'s timestamp as the number of milliseconds measured relative to the time origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/timeStamp)\n */\n readonly timeStamp: DOMHighResTimeStamp;\n /**\n * Returns the type of event, e.g. "click", "hashchange", or "submit".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/type)\n */\n readonly type: string;\n /**\n * Returns the invocation target objects of event\'s path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root\'s mode is "closed" that are not reachable from event\'s currentTarget.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composedPath)\n */\n composedPath(): EventTarget[];\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/initEvent)\n */\n initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;\n /**\n * If invoked when the cancelable attribute value is true, and while executing a listener for the event with passive set to false, signals to the operation that caused event to be dispatched that it needs to be canceled.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/preventDefault)\n */\n preventDefault(): void;\n /**\n * Invoking this method prevents event from reaching any registered event listeners after the current one finishes running and, when dispatched in a tree, also prevents event from reaching any other objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopImmediatePropagation)\n */\n stopImmediatePropagation(): void;\n /**\n * When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopPropagation)\n */\n stopPropagation(): void;\n readonly NONE: 0;\n readonly CAPTURING_PHASE: 1;\n readonly AT_TARGET: 2;\n readonly BUBBLING_PHASE: 3;\n}\n\ndeclare var Event: {\n prototype: Event;\n new(type: string, eventInitDict?: EventInit): Event;\n readonly NONE: 0;\n readonly CAPTURING_PHASE: 1;\n readonly AT_TARGET: 2;\n readonly BUBBLING_PHASE: 3;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventCounts) */\ninterface EventCounts {\n forEach(callbackfn: (value: number, key: string, parent: EventCounts) => void, thisArg?: any): void;\n}\n\ndeclare var EventCounts: {\n prototype: EventCounts;\n new(): EventCounts;\n};\n\ninterface EventListener {\n (evt: Event): void;\n}\n\ninterface EventListenerObject {\n handleEvent(object: Event): void;\n}\n\ninterface EventSourceEventMap {\n "error": Event;\n "message": MessageEvent;\n "open": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource) */\ninterface EventSource extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/error_event) */\n onerror: ((this: EventSource, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/message_event) */\n onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/open_event) */\n onopen: ((this: EventSource, ev: Event) => any) | null;\n /**\n * Returns the state of this EventSource object\'s connection. It can have the values described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/readyState)\n */\n readonly readyState: number;\n /**\n * Returns the URL providing the event stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/url)\n */\n readonly url: string;\n /**\n * Returns true if the credentials mode for connection requests to the URL providing the event stream is set to "include", and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/withCredentials)\n */\n readonly withCredentials: boolean;\n /**\n * Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/close)\n */\n close(): void;\n readonly CONNECTING: 0;\n readonly OPEN: 1;\n readonly CLOSED: 2;\n addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var EventSource: {\n prototype: EventSource;\n new(url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource;\n readonly CONNECTING: 0;\n readonly OPEN: 1;\n readonly CLOSED: 2;\n};\n\n/**\n * EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget)\n */\ninterface EventTarget {\n /**\n * Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.\n *\n * The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options\'s capture.\n *\n * When set to true, options\'s capture prevents callback from being invoked when the event\'s eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event\'s eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event\'s eventPhase attribute value is AT_TARGET.\n *\n * When set to true, options\'s passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.\n *\n * When set to true, options\'s once indicates that the callback will only be invoked once after which the event listener will be removed.\n *\n * If an AbortSignal is passed for options\'s signal, then the event listener will be removed when signal is aborted.\n *\n * The event listener is appended to target\'s event listener list and is not appended if it has the same type, callback, and capture.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)\n */\n addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void;\n /**\n * Dispatches a synthetic event event to target and returns true if either event\'s cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)\n */\n dispatchEvent(event: Event): boolean;\n /**\n * Removes the event listener in target\'s event listener list with the same type, callback, and options.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)\n */\n removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;\n}\n\ndeclare var EventTarget: {\n prototype: EventTarget;\n new(): EventTarget;\n};\n\n/**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/External)\n */\ninterface External {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/External/AddSearchProvider)\n */\n AddSearchProvider(): void;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/External/IsSearchProviderInstalled)\n */\n IsSearchProviderInstalled(): void;\n}\n\n/** @deprecated */\ndeclare var External: {\n prototype: External;\n new(): External;\n};\n\n/**\n * Provides information about files and allows JavaScript in a web page to access their content.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File)\n */\ninterface File extends Blob {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/lastModified) */\n readonly lastModified: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/webkitRelativePath) */\n readonly webkitRelativePath: string;\n}\n\ndeclare var File: {\n prototype: File;\n new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;\n};\n\n/**\n * An object of this type is returned by the files property of the HTML <input> element; this lets you access the list of files selected with the <input type="file"> element. It\'s also used for a list of files dropped into web content when using the drag and drop API; see the DataTransfer object for details on this usage.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList)\n */\ninterface FileList {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList/item) */\n item(index: number): File | null;\n [index: number]: File;\n}\n\ndeclare var FileList: {\n prototype: FileList;\n new(): FileList;\n};\n\ninterface FileReaderEventMap {\n "abort": ProgressEvent<FileReader>;\n "error": ProgressEvent<FileReader>;\n "load": ProgressEvent<FileReader>;\n "loadend": ProgressEvent<FileReader>;\n "loadstart": ProgressEvent<FileReader>;\n "progress": ProgressEvent<FileReader>;\n}\n\n/**\n * Lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user\'s computer, using File or Blob objects to specify the file or data to read.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader)\n */\ninterface FileReader extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/error) */\n readonly error: DOMException | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/abort_event) */\n onabort: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/error_event) */\n onerror: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/load_event) */\n onload: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/loadend_event) */\n onloadend: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/loadstart_event) */\n onloadstart: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/progress_event) */\n onprogress: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readyState) */\n readonly readyState: typeof FileReader.EMPTY | typeof FileReader.LOADING | typeof FileReader.DONE;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/result) */\n readonly result: string | ArrayBuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/abort) */\n abort(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsArrayBuffer) */\n readAsArrayBuffer(blob: Blob): void;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsBinaryString)\n */\n readAsBinaryString(blob: Blob): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsDataURL) */\n readAsDataURL(blob: Blob): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsText) */\n readAsText(blob: Blob, encoding?: string): void;\n readonly EMPTY: 0;\n readonly LOADING: 1;\n readonly DONE: 2;\n addEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var FileReader: {\n prototype: FileReader;\n new(): FileReader;\n readonly EMPTY: 0;\n readonly LOADING: 1;\n readonly DONE: 2;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystem) */\ninterface FileSystem {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystem/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystem/root) */\n readonly root: FileSystemDirectoryEntry;\n}\n\ndeclare var FileSystem: {\n prototype: FileSystem;\n new(): FileSystem;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry) */\ninterface FileSystemDirectoryEntry extends FileSystemEntry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry/createReader) */\n createReader(): FileSystemDirectoryReader;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry/getDirectory) */\n getDirectory(path?: string | null, options?: FileSystemFlags, successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry/getFile) */\n getFile(path?: string | null, options?: FileSystemFlags, successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;\n}\n\ndeclare var FileSystemDirectoryEntry: {\n prototype: FileSystemDirectoryEntry;\n new(): FileSystemDirectoryEntry;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle)\n */\ninterface FileSystemDirectoryHandle extends FileSystemHandle {\n readonly kind: "directory";\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/getDirectoryHandle) */\n getDirectoryHandle(name: string, options?: FileSystemGetDirectoryOptions): Promise<FileSystemDirectoryHandle>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/getFileHandle) */\n getFileHandle(name: string, options?: FileSystemGetFileOptions): Promise<FileSystemFileHandle>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/removeEntry) */\n removeEntry(name: string, options?: FileSystemRemoveOptions): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/resolve) */\n resolve(possibleDescendant: FileSystemHandle): Promise<string[] | null>;\n}\n\ndeclare var FileSystemDirectoryHandle: {\n prototype: FileSystemDirectoryHandle;\n new(): FileSystemDirectoryHandle;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryReader) */\ninterface FileSystemDirectoryReader {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryReader/readEntries) */\n readEntries(successCallback: FileSystemEntriesCallback, errorCallback?: ErrorCallback): void;\n}\n\ndeclare var FileSystemDirectoryReader: {\n prototype: FileSystemDirectoryReader;\n new(): FileSystemDirectoryReader;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry) */\ninterface FileSystemEntry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/filesystem) */\n readonly filesystem: FileSystem;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/fullPath) */\n readonly fullPath: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/isDirectory) */\n readonly isDirectory: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/isFile) */\n readonly isFile: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/getParent) */\n getParent(successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;\n}\n\ndeclare var FileSystemEntry: {\n prototype: FileSystemEntry;\n new(): FileSystemEntry;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileEntry) */\ninterface FileSystemFileEntry extends FileSystemEntry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileEntry/file) */\n file(successCallback: FileCallback, errorCallback?: ErrorCallback): void;\n}\n\ndeclare var FileSystemFileEntry: {\n prototype: FileSystemFileEntry;\n new(): FileSystemFileEntry;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle)\n */\ninterface FileSystemFileHandle extends FileSystemHandle {\n readonly kind: "file";\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/createWritable) */\n createWritable(options?: FileSystemCreateWritableOptions): Promise<FileSystemWritableFileStream>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/getFile) */\n getFile(): Promise<File>;\n}\n\ndeclare var FileSystemFileHandle: {\n prototype: FileSystemFileHandle;\n new(): FileSystemFileHandle;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle)\n */\ninterface FileSystemHandle {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/kind) */\n readonly kind: FileSystemHandleKind;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/isSameEntry) */\n isSameEntry(other: FileSystemHandle): Promise<boolean>;\n}\n\ndeclare var FileSystemHandle: {\n prototype: FileSystemHandle;\n new(): FileSystemHandle;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream)\n */\ninterface FileSystemWritableFileStream extends WritableStream {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/seek) */\n seek(position: number): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/truncate) */\n truncate(size: number): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/write) */\n write(data: FileSystemWriteChunkType): Promise<void>;\n}\n\ndeclare var FileSystemWritableFileStream: {\n prototype: FileSystemWritableFileStream;\n new(): FileSystemWritableFileStream;\n};\n\n/**\n * Focus-related events like focus, blur, focusin, or focusout.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FocusEvent)\n */\ninterface FocusEvent extends UIEvent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FocusEvent/relatedTarget) */\n readonly relatedTarget: EventTarget | null;\n}\n\ndeclare var FocusEvent: {\n prototype: FocusEvent;\n new(type: string, eventInitDict?: FocusEventInit): FocusEvent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace) */\ninterface FontFace {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/ascentOverride) */\n ascentOverride: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/descentOverride) */\n descentOverride: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/display) */\n display: FontDisplay;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/family) */\n family: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/featureSettings) */\n featureSettings: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/lineGapOverride) */\n lineGapOverride: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/loaded) */\n readonly loaded: Promise<FontFace>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/status) */\n readonly status: FontFaceLoadStatus;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/stretch) */\n stretch: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/style) */\n style: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/unicodeRange) */\n unicodeRange: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/weight) */\n weight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/load) */\n load(): Promise<FontFace>;\n}\n\ndeclare var FontFace: {\n prototype: FontFace;\n new(family: string, source: string | BinaryData, descriptors?: FontFaceDescriptors): FontFace;\n};\n\ninterface FontFaceSetEventMap {\n "loading": Event;\n "loadingdone": Event;\n "loadingerror": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet) */\ninterface FontFaceSet extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loading_event) */\n onloading: ((this: FontFaceSet, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loadingdone_event) */\n onloadingdone: ((this: FontFaceSet, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loadingerror_event) */\n onloadingerror: ((this: FontFaceSet, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/ready) */\n readonly ready: Promise<FontFaceSet>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/status) */\n readonly status: FontFaceSetLoadStatus;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/check) */\n check(font: string, text?: string): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/load) */\n load(font: string, text?: string): Promise<FontFace[]>;\n forEach(callbackfn: (value: FontFace, key: FontFace, parent: FontFaceSet) => void, thisArg?: any): void;\n addEventListener<K extends keyof FontFaceSetEventMap>(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof FontFaceSetEventMap>(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var FontFaceSet: {\n prototype: FontFaceSet;\n new(initialFaces: FontFace[]): FontFaceSet;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSetLoadEvent) */\ninterface FontFaceSetLoadEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSetLoadEvent/fontfaces) */\n readonly fontfaces: ReadonlyArray<FontFace>;\n}\n\ndeclare var FontFaceSetLoadEvent: {\n prototype: FontFaceSetLoadEvent;\n new(type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent;\n};\n\ninterface FontFaceSource {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fonts) */\n readonly fonts: FontFaceSet;\n}\n\n/**\n * Provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to "multipart/form-data".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData)\n */\ninterface FormData {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/append) */\n append(name: string, value: string | Blob): void;\n append(name: string, value: string): void;\n append(name: string, blobValue: Blob, filename?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/delete) */\n delete(name: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/get) */\n get(name: string): FormDataEntryValue | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/getAll) */\n getAll(name: string): FormDataEntryValue[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/has) */\n has(name: string): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/set) */\n set(name: string, value: string | Blob): void;\n set(name: string, value: string): void;\n set(name: string, blobValue: Blob, filename?: string): void;\n forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any): void;\n}\n\ndeclare var FormData: {\n prototype: FormData;\n new(form?: HTMLFormElement, submitter?: HTMLElement | null): FormData;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormDataEvent) */\ninterface FormDataEvent extends Event {\n /**\n * Returns a FormData object representing names and values of elements associated to the target form. Operations on the FormData object will affect form data to be submitted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormDataEvent/formData)\n */\n readonly formData: FormData;\n}\n\ndeclare var FormDataEvent: {\n prototype: FormDataEvent;\n new(type: string, eventInitDict: FormDataEventInit): FormDataEvent;\n};\n\n/**\n * A change in volume. It is an AudioNode audio-processing module that causes a given gain to be applied to the input data before its propagation to the output. A GainNode always has exactly one input and one output, both with the same number of channels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GainNode)\n */\ninterface GainNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GainNode/gain) */\n readonly gain: AudioParam;\n}\n\ndeclare var GainNode: {\n prototype: GainNode;\n new(context: BaseAudioContext, options?: GainOptions): GainNode;\n};\n\n/**\n * This Gamepad API interface defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad)\n */\ninterface Gamepad {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/axes) */\n readonly axes: ReadonlyArray<number>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/buttons) */\n readonly buttons: ReadonlyArray<GamepadButton>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/connected) */\n readonly connected: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/id) */\n readonly id: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/index) */\n readonly index: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/mapping) */\n readonly mapping: GamepadMappingType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/timestamp) */\n readonly timestamp: DOMHighResTimeStamp;\n readonly vibrationActuator: GamepadHapticActuator | null;\n}\n\ndeclare var Gamepad: {\n prototype: Gamepad;\n new(): Gamepad;\n};\n\n/**\n * An individual button of a gamepad or other controller, allowing access to the current state of different types of buttons available on the control device.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton)\n */\ninterface GamepadButton {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton/pressed) */\n readonly pressed: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton/touched) */\n readonly touched: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton/value) */\n readonly value: number;\n}\n\ndeclare var GamepadButton: {\n prototype: GamepadButton;\n new(): GamepadButton;\n};\n\n/**\n * This Gamepad API interface contains references to gamepads connected to the system, which is what the gamepad events Window.gamepadconnected and Window.gamepaddisconnected are fired in response to.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadEvent)\n */\ninterface GamepadEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadEvent/gamepad) */\n readonly gamepad: Gamepad;\n}\n\ndeclare var GamepadEvent: {\n prototype: GamepadEvent;\n new(type: string, eventInitDict: GamepadEventInit): GamepadEvent;\n};\n\n/**\n * This Gamepad API interface represents hardware in the controller designed to provide haptic feedback to the user (if available), most commonly vibration hardware.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadHapticActuator)\n */\ninterface GamepadHapticActuator {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadHapticActuator/type) */\n readonly type: GamepadHapticActuatorType;\n playEffect(type: GamepadHapticEffectType, params?: GamepadEffectParameters): Promise<GamepadHapticsResult>;\n reset(): Promise<GamepadHapticsResult>;\n}\n\ndeclare var GamepadHapticActuator: {\n prototype: GamepadHapticActuator;\n new(): GamepadHapticActuator;\n};\n\ninterface GenericTransformStream {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream/readable) */\n readonly readable: ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream/writable) */\n readonly writable: WritableStream;\n}\n\n/**\n * An object able to programmatically obtain the position of the device. It gives Web content access to the location of the device. This allows a Web site or app to offer customized results based on the user\'s location.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation)\n */\ninterface Geolocation {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation/clearWatch) */\n clearWatch(watchId: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation/getCurrentPosition) */\n getCurrentPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation/watchPosition) */\n watchPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions): number;\n}\n\ndeclare var Geolocation: {\n prototype: Geolocation;\n new(): Geolocation;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates)\n */\ninterface GeolocationCoordinates {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/accuracy) */\n readonly accuracy: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/altitude) */\n readonly altitude: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/altitudeAccuracy) */\n readonly altitudeAccuracy: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/heading) */\n readonly heading: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/latitude) */\n readonly latitude: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/longitude) */\n readonly longitude: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/speed) */\n readonly speed: number | null;\n}\n\ndeclare var GeolocationCoordinates: {\n prototype: GeolocationCoordinates;\n new(): GeolocationCoordinates;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPosition)\n */\ninterface GeolocationPosition {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPosition/coords) */\n readonly coords: GeolocationCoordinates;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPosition/timestamp) */\n readonly timestamp: EpochTimeStamp;\n}\n\ndeclare var GeolocationPosition: {\n prototype: GeolocationPosition;\n new(): GeolocationPosition;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPositionError) */\ninterface GeolocationPositionError {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPositionError/code) */\n readonly code: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPositionError/message) */\n readonly message: string;\n readonly PERMISSION_DENIED: 1;\n readonly POSITION_UNAVAILABLE: 2;\n readonly TIMEOUT: 3;\n}\n\ndeclare var GeolocationPositionError: {\n prototype: GeolocationPositionError;\n new(): GeolocationPositionError;\n readonly PERMISSION_DENIED: 1;\n readonly POSITION_UNAVAILABLE: 2;\n readonly TIMEOUT: 3;\n};\n\ninterface GlobalEventHandlersEventMap {\n "abort": UIEvent;\n "animationcancel": AnimationEvent;\n "animationend": AnimationEvent;\n "animationiteration": AnimationEvent;\n "animationstart": AnimationEvent;\n "auxclick": MouseEvent;\n "beforeinput": InputEvent;\n "beforetoggle": Event;\n "blur": FocusEvent;\n "cancel": Event;\n "canplay": Event;\n "canplaythrough": Event;\n "change": Event;\n "click": MouseEvent;\n "close": Event;\n "compositionend": CompositionEvent;\n "compositionstart": CompositionEvent;\n "compositionupdate": CompositionEvent;\n "contextmenu": MouseEvent;\n "copy": ClipboardEvent;\n "cuechange": Event;\n "cut": ClipboardEvent;\n "dblclick": MouseEvent;\n "drag": DragEvent;\n "dragend": DragEvent;\n "dragenter": DragEvent;\n "dragleave": DragEvent;\n "dragover": DragEvent;\n "dragstart": DragEvent;\n "drop": DragEvent;\n "durationchange": Event;\n "emptied": Event;\n "ended": Event;\n "error": ErrorEvent;\n "focus": FocusEvent;\n "focusin": FocusEvent;\n "focusout": FocusEvent;\n "formdata": FormDataEvent;\n "gotpointercapture": PointerEvent;\n "input": Event;\n "invalid": Event;\n "keydown": KeyboardEvent;\n "keypress": KeyboardEvent;\n "keyup": KeyboardEvent;\n "load": Event;\n "loadeddata": Event;\n "loadedmetadata": Event;\n "loadstart": Event;\n "lostpointercapture": PointerEvent;\n "mousedown": MouseEvent;\n "mouseenter": MouseEvent;\n "mouseleave": MouseEvent;\n "mousemove": MouseEvent;\n "mouseout": MouseEvent;\n "mouseover": MouseEvent;\n "mouseup": MouseEvent;\n "paste": ClipboardEvent;\n "pause": Event;\n "play": Event;\n "playing": Event;\n "pointercancel": PointerEvent;\n "pointerdown": PointerEvent;\n "pointerenter": PointerEvent;\n "pointerleave": PointerEvent;\n "pointermove": PointerEvent;\n "pointerout": PointerEvent;\n "pointerover": PointerEvent;\n "pointerup": PointerEvent;\n "progress": ProgressEvent;\n "ratechange": Event;\n "reset": Event;\n "resize": UIEvent;\n "scroll": Event;\n "scrollend": Event;\n "securitypolicyviolation": SecurityPolicyViolationEvent;\n "seeked": Event;\n "seeking": Event;\n "select": Event;\n "selectionchange": Event;\n "selectstart": Event;\n "slotchange": Event;\n "stalled": Event;\n "submit": SubmitEvent;\n "suspend": Event;\n "timeupdate": Event;\n "toggle": Event;\n "touchcancel": TouchEvent;\n "touchend": TouchEvent;\n "touchmove": TouchEvent;\n "touchstart": TouchEvent;\n "transitioncancel": TransitionEvent;\n "transitionend": TransitionEvent;\n "transitionrun": TransitionEvent;\n "transitionstart": TransitionEvent;\n "volumechange": Event;\n "waiting": Event;\n "webkitanimationend": Event;\n "webkitanimationiteration": Event;\n "webkitanimationstart": Event;\n "webkittransitionend": Event;\n "wheel": WheelEvent;\n}\n\ninterface GlobalEventHandlers {\n /**\n * Fires when the user aborts the download.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/abort_event)\n */\n onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationcancel_event) */\n onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationend_event) */\n onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationiteration_event) */\n onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationstart_event) */\n onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/auxclick_event) */\n onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/beforeinput_event) */\n onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/beforetoggle_event) */\n onbeforetoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Fires when the object loses the input focus.\n * @param ev The focus event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/blur_event)\n */\n onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/cancel_event) */\n oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Occurs when playback is possible, but would require further buffering.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplay_event)\n */\n oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplaythrough_event) */\n oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Fires when the contents of the object or selection have changed.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/change_event)\n */\n onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Fires when the user clicks the left mouse button on the object\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/click_event)\n */\n onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/close_event) */\n onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Fires when the user clicks the right mouse button in the client area, opening the context menu.\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/contextmenu_event)\n */\n oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/copy_event) */\n oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/cuechange_event) */\n oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/cut_event) */\n oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;\n /**\n * Fires when the user double-clicks the object.\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/dblclick_event)\n */\n ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /**\n * Fires on the source object continuously during a drag operation.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drag_event)\n */\n ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\n /**\n * Fires on the source object when the user releases the mouse at the close of a drag operation.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragend_event)\n */\n ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\n /**\n * Fires on the target element when the user drags the object to a valid drop target.\n * @param ev The drag event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragenter_event)\n */\n ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\n /**\n * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.\n * @param ev The drag event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragleave_event)\n */\n ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\n /**\n * Fires on the target element continuously while the user drags the object over a valid drop target.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragover_event)\n */\n ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\n /**\n * Fires on the source object when the user starts to drag a text selection or selected object.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragstart_event)\n */\n ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drop_event) */\n ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;\n /**\n * Occurs when the duration attribute is updated.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/durationchange_event)\n */\n ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Occurs when the media element is reset to its initial state.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/emptied_event)\n */\n onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Occurs when the end of playback is reached.\n * @param ev The event\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event)\n */\n onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Fires when an error occurs during object loading.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event)\n */\n onerror: OnErrorEventHandler;\n /**\n * Fires when the object receives focus.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event)\n */\n onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */\n onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/gotpointercapture_event) */\n ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/input_event) */\n oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/invalid_event) */\n oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Fires when the user presses a key.\n * @param ev The keyboard event\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keydown_event)\n */\n onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;\n /**\n * Fires when the user presses an alphanumeric key.\n * @param ev The event.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keypress_event)\n */\n onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;\n /**\n * Fires when the user releases a key.\n * @param ev The keyboard event\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keyup_event)\n */\n onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;\n /**\n * Fires immediately after the browser loads the object.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGElement/load_event)\n */\n onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Occurs when media data is loaded at the current playback position.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadeddata_event)\n */\n onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Occurs when the duration and dimensions of the media have been determined.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadedmetadata_event)\n */\n onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Occurs when Internet Explorer begins looking for media data.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadstart_event)\n */\n onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/lostpointercapture_event) */\n onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /**\n * Fires when the user clicks the object with either mouse button.\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousedown_event)\n */\n onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseenter_event) */\n onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseleave_event) */\n onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /**\n * Fires when the user moves the mouse over the object.\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousemove_event)\n */\n onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /**\n * Fires when the user moves the mouse pointer outside the boundaries of the object.\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseout_event)\n */\n onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /**\n * Fires when the user moves the mouse pointer into the object.\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseover_event)\n */\n onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /**\n * Fires when the user releases a mouse button while the mouse is over the object.\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseup_event)\n */\n onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/paste_event) */\n onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;\n /**\n * Occurs when playback is paused.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause_event)\n */\n onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Occurs when the play method is requested.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play_event)\n */\n onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Occurs when the audio or video has started playing.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/playing_event)\n */\n onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointercancel_event) */\n onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerdown_event) */\n onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerenter_event) */\n onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerleave_event) */\n onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointermove_event) */\n onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerout_event) */\n onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerover_event) */\n onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerup_event) */\n onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;\n /**\n * Occurs to indicate progress while downloading media data.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/progress_event)\n */\n onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;\n /**\n * Occurs when the playback rate is increased or decreased.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ratechange_event)\n */\n onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Fires when the user resets a form.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/reset_event)\n */\n onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/resize_event) */\n onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;\n /**\n * Fires when the user repositions the scroll box in the scroll bar on the object.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scroll_event)\n */\n onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scrollend_event) */\n onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/securitypolicyviolation_event) */\n onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;\n /**\n * Occurs when the seek operation ends.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeked_event)\n */\n onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Occurs when the current playback position is moved.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeking_event)\n */\n onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Fires when the current selection changes.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/select_event)\n */\n onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/selectionchange_event) */\n onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/selectstart_event) */\n onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/slotchange_event) */\n onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Occurs when the download has stopped.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/stalled_event)\n */\n onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/submit_event) */\n onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;\n /**\n * Occurs if the load operation has been intentionally halted.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/suspend_event)\n */\n onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Occurs to indicate the current playback position.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/timeupdate_event)\n */\n ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement/toggle_event) */\n ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchcancel_event) */\n ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchend_event) */\n ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchmove_event) */\n ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchstart_event) */\n ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitioncancel_event) */\n ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionend_event) */\n ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionrun_event) */\n ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionstart_event) */\n ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;\n /**\n * Occurs when the volume is changed, or playback is muted or unmuted.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/volumechange_event)\n */\n onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * Occurs when playback stops because the next frame of a video resource is not available.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/waiting_event)\n */\n onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * @deprecated This is a legacy alias of `onanimationend`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationend_event)\n */\n onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * @deprecated This is a legacy alias of `onanimationiteration`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationiteration_event)\n */\n onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * @deprecated This is a legacy alias of `onanimationstart`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationstart_event)\n */\n onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /**\n * @deprecated This is a legacy alias of `ontransitionend`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionend_event)\n */\n onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/wheel_event) */\n onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;\n addEventListener<K extends keyof GlobalEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof GlobalEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection) */\ninterface HTMLAllCollection {\n /**\n * Returns the number of elements in the collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection/length)\n */\n readonly length: number;\n /**\n * Returns the item with index index from the collection (determined by tree order).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection/item)\n */\n item(nameOrIndex?: string): HTMLCollection | Element | null;\n /**\n * Returns the item with ID or name name from the collection.\n *\n * If there are multiple matching items, then an HTMLCollection object containing all those elements is returned.\n *\n * Only button, form, iframe, input, map, meta, object, select, and textarea elements can have a name for the purpose of this method; their name is given by the value of their name attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection/namedItem)\n */\n namedItem(name: string): HTMLCollection | Element | null;\n [index: number]: Element;\n}\n\ndeclare var HTMLAllCollection: {\n prototype: HTMLAllCollection;\n new(): HTMLAllCollection;\n};\n\n/**\n * Hyperlink elements and provides special properties and methods (beyond those of the regular HTMLElement object interface that they inherit from) for manipulating the layout and presentation of such elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement)\n */\ninterface HTMLAnchorElement extends HTMLElement, HTMLHyperlinkElementUtils {\n /**\n * Sets or retrieves the character set used to encode the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/charset)\n */\n charset: string;\n /**\n * Sets or retrieves the coordinates of the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/coords)\n */\n coords: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/download) */\n download: string;\n /**\n * Sets or retrieves the language code of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/hreflang)\n */\n hreflang: string;\n /**\n * Sets or retrieves the shape of the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/name)\n */\n name: string;\n ping: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/referrerPolicy) */\n referrerPolicy: string;\n /**\n * Sets or retrieves the relationship between the object and the destination of the link.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/rel)\n */\n rel: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/relList) */\n readonly relList: DOMTokenList;\n /**\n * Sets or retrieves the relationship between the object and the destination of the link.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/rev)\n */\n rev: string;\n /**\n * Sets or retrieves the shape of the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/shape)\n */\n shape: string;\n /**\n * Sets or retrieves the window or frame at which to target content.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/target)\n */\n target: string;\n /**\n * Retrieves or sets the text of the object as a string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/text)\n */\n text: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/type) */\n type: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLAnchorElement: {\n prototype: HTMLAnchorElement;\n new(): HTMLAnchorElement;\n};\n\n/**\n * Provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <area> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement)\n */\ninterface HTMLAreaElement extends HTMLElement, HTMLHyperlinkElementUtils {\n /**\n * Sets or retrieves a text alternative to the graphic.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/alt)\n */\n alt: string;\n /**\n * Sets or retrieves the coordinates of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/coords)\n */\n coords: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/download) */\n download: string;\n /**\n * Sets or gets whether clicks in this region cause action.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/noHref)\n */\n noHref: boolean;\n ping: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/referrerPolicy) */\n referrerPolicy: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/rel) */\n rel: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/relList) */\n readonly relList: DOMTokenList;\n /**\n * Sets or retrieves the shape of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/shape)\n */\n shape: string;\n /**\n * Sets or retrieves the window or frame at which to target content.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/target)\n */\n target: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLAreaElement: {\n prototype: HTMLAreaElement;\n new(): HTMLAreaElement;\n};\n\n/**\n * Provides access to the properties of <audio> elements, as well as methods to manipulate them. It derives from the HTMLMediaElement interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAudioElement)\n */\ninterface HTMLAudioElement extends HTMLMediaElement {\n addEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLAudioElement: {\n prototype: HTMLAudioElement;\n new(): HTMLAudioElement;\n};\n\n/**\n * A HTML line break element (<br>). It inherits from HTMLElement.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBRElement)\n */\ninterface HTMLBRElement extends HTMLElement {\n /**\n * Sets or retrieves the side on which floating objects are not to be positioned when any IHTMLBlockElement is inserted into the document.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBRElement/clear)\n */\n clear: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLBRElement: {\n prototype: HTMLBRElement;\n new(): HTMLBRElement;\n};\n\n/**\n * Contains the base URI for a document. This object inherits all of the properties and methods as described in the HTMLElement interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBaseElement)\n */\ninterface HTMLBaseElement extends HTMLElement {\n /**\n * Gets or sets the baseline URL on which relative links are based.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBaseElement/href)\n */\n href: string;\n /**\n * Sets or retrieves the window or frame at which to target content.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBaseElement/target)\n */\n target: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLBaseElement: {\n prototype: HTMLBaseElement;\n new(): HTMLBaseElement;\n};\n\ninterface HTMLBodyElementEventMap extends HTMLElementEventMap, WindowEventHandlersEventMap {\n}\n\n/**\n * Provides special properties (beyond those inherited from the regular HTMLElement interface) for manipulating <body> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement)\n */\ninterface HTMLBodyElement extends HTMLElement, WindowEventHandlers {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement/aLink)\n */\n aLink: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement/background)\n */\n background: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement/bgColor)\n */\n bgColor: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement/link)\n */\n link: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement/text)\n */\n text: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement/vLink)\n */\n vLink: string;\n addEventListener<K extends keyof HTMLBodyElementEventMap>(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLBodyElementEventMap>(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLBodyElement: {\n prototype: HTMLBodyElement;\n new(): HTMLBodyElement;\n};\n\n/**\n * Provides properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <button> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement)\n */\ninterface HTMLButtonElement extends HTMLElement, PopoverInvokerElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/disabled) */\n disabled: boolean;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/form)\n */\n readonly form: HTMLFormElement | null;\n /**\n * Overrides the action attribute (where the data on a form is sent) on the parent form element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formAction)\n */\n formAction: string;\n /**\n * Used to override the encoding (formEnctype attribute) specified on the form element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formEnctype)\n */\n formEnctype: string;\n /**\n * Overrides the submit method attribute previously specified on a form element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formMethod)\n */\n formMethod: string;\n /**\n * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a "save draft"-type submit option.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formNoValidate)\n */\n formNoValidate: boolean;\n /**\n * Overrides the target attribute on a form element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formTarget)\n */\n formTarget: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/labels) */\n readonly labels: NodeListOf<HTMLLabelElement>;\n /**\n * Sets or retrieves the name of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/name)\n */\n name: string;\n /**\n * Gets the classification and default behavior of the button.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/type)\n */\n type: "submit" | "reset" | "button";\n /**\n * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/validationMessage)\n */\n readonly validationMessage: string;\n /**\n * Returns a ValidityState object that represents the validity states of an element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/validity)\n */\n readonly validity: ValidityState;\n /**\n * Sets or retrieves the default or selected value of the control.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/value)\n */\n value: string;\n /**\n * Returns whether an element will successfully validate based on forms validation rules and constraints.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/willValidate)\n */\n readonly willValidate: boolean;\n /** Returns whether a form will validate when it is submitted, without having to submit it. */\n checkValidity(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/reportValidity) */\n reportValidity(): boolean;\n /**\n * Sets a custom error message that is displayed when a form is submitted.\n * @param error Sets a custom error message that is displayed when a form is submitted.\n */\n setCustomValidity(error: string): void;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLButtonElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLButtonElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLButtonElement: {\n prototype: HTMLButtonElement;\n new(): HTMLButtonElement;\n};\n\n/**\n * Provides properties and methods for manipulating the layout and presentation of <canvas> elements. The HTMLCanvasElement interface also inherits the properties and methods of the HTMLElement interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement)\n */\ninterface HTMLCanvasElement extends HTMLElement {\n /**\n * Gets or sets the height of a canvas element on a document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/height)\n */\n height: number;\n /**\n * Gets or sets the width of a canvas element on a document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/width)\n */\n width: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/captureStream) */\n captureStream(frameRequestRate?: number): MediaStream;\n /**\n * Returns an object that provides methods and properties for drawing and manipulating images and graphics on a canvas element in a document. A context object includes information about colors, line widths, fonts, and other graphic parameters that can be drawn on a canvas.\n * @param contextId The identifier (ID) of the type of canvas to create. Internet Explorer 9 and Internet Explorer 10 support only a 2-D context using canvas.getContext("2d"); IE11 Preview also supports 3-D or WebGL context using canvas.getContext("experimental-webgl");\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/getContext)\n */\n getContext(contextId: "2d", options?: CanvasRenderingContext2DSettings): CanvasRenderingContext2D | null;\n getContext(contextId: "bitmaprenderer", options?: ImageBitmapRenderingContextSettings): ImageBitmapRenderingContext | null;\n getContext(contextId: "webgl", options?: WebGLContextAttributes): WebGLRenderingContext | null;\n getContext(contextId: "webgl2", options?: WebGLContextAttributes): WebGL2RenderingContext | null;\n getContext(contextId: string, options?: any): RenderingContext | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/toBlob) */\n toBlob(callback: BlobCallback, type?: string, quality?: any): void;\n /**\n * Returns the content of the current canvas as an image that you can use as a source for another canvas or an HTML element.\n * @param type The standard MIME type for the image format to return. If you do not specify this parameter, the default value is a PNG format image.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/toDataURL)\n */\n toDataURL(type?: string, quality?: any): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/transferControlToOffscreen) */\n transferControlToOffscreen(): OffscreenCanvas;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLCanvasElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLCanvasElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLCanvasElement: {\n prototype: HTMLCanvasElement;\n new(): HTMLCanvasElement;\n};\n\n/**\n * A generic collection (array-like object similar to arguments) of elements (in document order) and offers methods and properties for selecting from the list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection)\n */\ninterface HTMLCollectionBase {\n /**\n * Sets or retrieves the number of objects in a collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/length)\n */\n readonly length: number;\n /**\n * Retrieves an object from various collections.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/item)\n */\n item(index: number): Element | null;\n [index: number]: Element;\n}\n\ninterface HTMLCollection extends HTMLCollectionBase {\n /**\n * Retrieves a select object or an object from an options collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/namedItem)\n */\n namedItem(name: string): Element | null;\n}\n\ndeclare var HTMLCollection: {\n prototype: HTMLCollection;\n new(): HTMLCollection;\n};\n\ninterface HTMLCollectionOf<T extends Element> extends HTMLCollectionBase {\n item(index: number): T | null;\n namedItem(name: string): T | null;\n [index: number]: T;\n}\n\n/**\n * Provides special properties (beyond those of the regular HTMLElement interface it also has available to it by inheritance) for manipulating definition list (<dl>) elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDListElement)\n */\ninterface HTMLDListElement extends HTMLElement {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDListElement/compact)\n */\n compact: boolean;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLDListElement: {\n prototype: HTMLDListElement;\n new(): HTMLDListElement;\n};\n\n/**\n * Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <data> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDataElement)\n */\ninterface HTMLDataElement extends HTMLElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDataElement/value) */\n value: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLDataElement: {\n prototype: HTMLDataElement;\n new(): HTMLDataElement;\n};\n\n/**\n * Provides special properties (beyond the HTMLElement object interface it also has available to it by inheritance) to manipulate <datalist> elements and their content.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDataListElement)\n */\ninterface HTMLDataListElement extends HTMLElement {\n /**\n * Returns an HTMLCollection of the option elements of the datalist element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDataListElement/options)\n */\n readonly options: HTMLCollectionOf<HTMLOptionElement>;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLDataListElement: {\n prototype: HTMLDataListElement;\n new(): HTMLDataListElement;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement) */\ninterface HTMLDetailsElement extends HTMLElement {\n name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement/open) */\n open: boolean;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDetailsElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDetailsElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLDetailsElement: {\n prototype: HTMLDetailsElement;\n new(): HTMLDetailsElement;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement) */\ninterface HTMLDialogElement extends HTMLElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/open) */\n open: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/returnValue) */\n returnValue: string;\n /**\n * Closes the dialog element.\n *\n * The argument, if provided, provides a return value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/close)\n */\n close(returnValue?: string): void;\n /**\n * Displays the dialog element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/show)\n */\n show(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/showModal) */\n showModal(): void;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDialogElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDialogElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLDialogElement: {\n prototype: HTMLDialogElement;\n new(): HTMLDialogElement;\n};\n\n/** @deprecated */\ninterface HTMLDirectoryElement extends HTMLElement {\n /** @deprecated */\n compact: boolean;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDirectoryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDirectoryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/** @deprecated */\ndeclare var HTMLDirectoryElement: {\n prototype: HTMLDirectoryElement;\n new(): HTMLDirectoryElement;\n};\n\n/**\n * Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <div> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDivElement)\n */\ninterface HTMLDivElement extends HTMLElement {\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDivElement/align)\n */\n align: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLDivElement: {\n prototype: HTMLDivElement;\n new(): HTMLDivElement;\n};\n\n/** @deprecated use Document */\ninterface HTMLDocument extends Document {\n addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: HTMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: HTMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/** @deprecated */\ndeclare var HTMLDocument: {\n prototype: HTMLDocument;\n new(): HTMLDocument;\n};\n\ninterface HTMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {\n}\n\n/**\n * Any HTML element. Some elements directly implement this interface, while others implement it via an interface that inherits it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement)\n */\ninterface HTMLElement extends Element, ElementCSSInlineStyle, ElementContentEditable, GlobalEventHandlers, HTMLOrSVGElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/accessKey) */\n accessKey: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/accessKeyLabel) */\n readonly accessKeyLabel: string;\n autocapitalize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dir) */\n dir: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/draggable) */\n draggable: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidden) */\n hidden: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/inert) */\n inert: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/innerText) */\n innerText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/lang) */\n lang: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetHeight) */\n readonly offsetHeight: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetLeft) */\n readonly offsetLeft: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetParent) */\n readonly offsetParent: Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetTop) */\n readonly offsetTop: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetWidth) */\n readonly offsetWidth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/outerText) */\n outerText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/popover) */\n popover: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/spellcheck) */\n spellcheck: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/title) */\n title: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/translate) */\n translate: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals) */\n attachInternals(): ElementInternals;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/click) */\n click(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover) */\n hidePopover(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover) */\n showPopover(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover) */\n togglePopover(force?: boolean): boolean;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLElement: {\n prototype: HTMLElement;\n new(): HTMLElement;\n};\n\n/**\n * Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <embed> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLEmbedElement)\n */\ninterface HTMLEmbedElement extends HTMLElement {\n /** @deprecated */\n align: string;\n /** Sets or retrieves the height of the object. */\n height: string;\n /**\n * Sets or retrieves the name of the object.\n * @deprecated\n */\n name: string;\n /** Sets or retrieves a URL to be loaded by the object. */\n src: string;\n type: string;\n /** Sets or retrieves the width of the object. */\n width: string;\n getSVGDocument(): Document | null;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLEmbedElement: {\n prototype: HTMLEmbedElement;\n new(): HTMLEmbedElement;\n};\n\n/**\n * Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <fieldset> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement)\n */\ninterface HTMLFieldSetElement extends HTMLElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/disabled) */\n disabled: boolean;\n /**\n * Returns an HTMLCollection of the form controls in the element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/elements)\n */\n readonly elements: HTMLCollection;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/form)\n */\n readonly form: HTMLFormElement | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/name) */\n name: string;\n /**\n * Returns the string "fieldset".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/type)\n */\n readonly type: string;\n /**\n * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/validationMessage)\n */\n readonly validationMessage: string;\n /**\n * Returns a ValidityState object that represents the validity states of an element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/validity)\n */\n readonly validity: ValidityState;\n /**\n * Returns whether an element will successfully validate based on forms validation rules and constraints.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/willValidate)\n */\n readonly willValidate: boolean;\n /** Returns whether a form will validate when it is submitted, without having to submit it. */\n checkValidity(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/reportValidity) */\n reportValidity(): boolean;\n /**\n * Sets a custom error message that is displayed when a form is submitted.\n * @param error Sets a custom error message that is displayed when a form is submitted.\n */\n setCustomValidity(error: string): void;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFieldSetElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFieldSetElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLFieldSetElement: {\n prototype: HTMLFieldSetElement;\n new(): HTMLFieldSetElement;\n};\n\n/**\n * Implements the document object model (DOM) representation of the font element. The HTML Font Element <font> defines the font size, font face and color of text.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFontElement)\n */\ninterface HTMLFontElement extends HTMLElement {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFontElement/color)\n */\n color: string;\n /**\n * Sets or retrieves the current typeface family.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFontElement/face)\n */\n face: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFontElement/size)\n */\n size: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/** @deprecated */\ndeclare var HTMLFontElement: {\n prototype: HTMLFontElement;\n new(): HTMLFontElement;\n};\n\n/**\n * A collection of HTML form control elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormControlsCollection)\n */\ninterface HTMLFormControlsCollection extends HTMLCollectionBase {\n /**\n * Returns the item with ID or name name from the collection.\n *\n * If there are multiple matching items, then a RadioNodeList object containing all those elements is returned.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormControlsCollection/namedItem)\n */\n namedItem(name: string): RadioNodeList | Element | null;\n}\n\ndeclare var HTMLFormControlsCollection: {\n prototype: HTMLFormControlsCollection;\n new(): HTMLFormControlsCollection;\n};\n\n/**\n * A <form> element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement)\n */\ninterface HTMLFormElement extends HTMLElement {\n /**\n * Sets or retrieves a list of character encodings for input data that must be accepted by the server processing the form.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/acceptCharset)\n */\n acceptCharset: string;\n /**\n * Sets or retrieves the URL to which the form content is sent for processing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/action)\n */\n action: string;\n /**\n * Specifies whether autocomplete is applied to an editable text field.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/autocomplete)\n */\n autocomplete: AutoFillBase;\n /**\n * Retrieves a collection, in source order, of all controls in a given form.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/elements)\n */\n readonly elements: HTMLFormControlsCollection;\n /**\n * Sets or retrieves the MIME encoding for the form.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/encoding)\n */\n encoding: string;\n /**\n * Sets or retrieves the encoding type for the form.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/enctype)\n */\n enctype: string;\n /**\n * Sets or retrieves the number of objects in a collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/length)\n */\n readonly length: number;\n /**\n * Sets or retrieves how to send the form data to the server.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/method)\n */\n method: string;\n /**\n * Sets or retrieves the name of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/name)\n */\n name: string;\n /**\n * Designates a form that is not validated when submitted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/noValidate)\n */\n noValidate: boolean;\n rel: string;\n readonly relList: DOMTokenList;\n /**\n * Sets or retrieves the window or frame at which to target content.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/target)\n */\n target: string;\n /**\n * Returns whether a form will validate when it is submitted, without having to submit it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/checkValidity)\n */\n checkValidity(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/reportValidity) */\n reportValidity(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/requestSubmit) */\n requestSubmit(submitter?: HTMLElement | null): void;\n /**\n * Fires when the user resets a form.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/reset)\n */\n reset(): void;\n /**\n * Fires when a FORM is about to be submitted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/submit)\n */\n submit(): void;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFormElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFormElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n [index: number]: Element;\n [name: string]: any;\n}\n\ndeclare var HTMLFormElement: {\n prototype: HTMLFormElement;\n new(): HTMLFormElement;\n};\n\n/**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement)\n */\ninterface HTMLFrameElement extends HTMLElement {\n /**\n * Retrieves the document object of the page or frame.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/contentDocument)\n */\n readonly contentDocument: Document | null;\n /**\n * Retrieves the object of the specified.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/contentWindow)\n */\n readonly contentWindow: WindowProxy | null;\n /**\n * Sets or retrieves whether to display a border for the frame.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/frameBorder)\n */\n frameBorder: string;\n /**\n * Sets or retrieves a URI to a long description of the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/longDesc)\n */\n longDesc: string;\n /**\n * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/marginHeight)\n */\n marginHeight: string;\n /**\n * Sets or retrieves the left and right margin widths before displaying the text in a frame.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/marginWidth)\n */\n marginWidth: string;\n /**\n * Sets or retrieves the frame name.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/name)\n */\n name: string;\n /**\n * Sets or retrieves whether the user can resize the frame.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/noResize)\n */\n noResize: boolean;\n /**\n * Sets or retrieves whether the frame can be scrolled.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/scrolling)\n */\n scrolling: string;\n /**\n * Sets or retrieves a URL to be loaded by the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/src)\n */\n src: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/** @deprecated */\ndeclare var HTMLFrameElement: {\n prototype: HTMLFrameElement;\n new(): HTMLFrameElement;\n};\n\ninterface HTMLFrameSetElementEventMap extends HTMLElementEventMap, WindowEventHandlersEventMap {\n}\n\n/**\n * Provides special properties (beyond those of the regular HTMLElement interface they also inherit) for manipulating <frameset> elements.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameSetElement)\n */\ninterface HTMLFrameSetElement extends HTMLElement, WindowEventHandlers {\n /**\n * Sets or retrieves the frame widths of the object.\n * @deprecated\n */\n cols: string;\n /**\n * Sets or retrieves the frame heights of the object.\n * @deprecated\n */\n rows: string;\n addEventListener<K extends keyof HTMLFrameSetElementEventMap>(type: K, listener: (this: HTMLFrameSetElement, ev: HTMLFrameSetElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLFrameSetElementEventMap>(type: K, listener: (this: HTMLFrameSetElement, ev: HTMLFrameSetElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/** @deprecated */\ndeclare var HTMLFrameSetElement: {\n prototype: HTMLFrameSetElement;\n new(): HTMLFrameSetElement;\n};\n\n/**\n * Provides special properties (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating <hr> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHRElement)\n */\ninterface HTMLHRElement extends HTMLElement {\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n * @deprecated\n */\n align: string;\n /** @deprecated */\n color: string;\n /**\n * Sets or retrieves whether the horizontal rule is drawn with 3-D shading.\n * @deprecated\n */\n noShade: boolean;\n /** @deprecated */\n size: string;\n /**\n * Sets or retrieves the width of the object.\n * @deprecated\n */\n width: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLHRElement: {\n prototype: HTMLHRElement;\n new(): HTMLHRElement;\n};\n\n/**\n * Contains the descriptive information, or metadata, for a document. This object inherits all of the properties and methods described in the HTMLElement interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHeadElement)\n */\ninterface HTMLHeadElement extends HTMLElement {\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLHeadElement: {\n prototype: HTMLHeadElement;\n new(): HTMLHeadElement;\n};\n\n/**\n * The different heading elements. It inherits methods and properties from the HTMLElement interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHeadingElement)\n */\ninterface HTMLHeadingElement extends HTMLElement {\n /**\n * Sets or retrieves a value that indicates the table alignment.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHeadingElement/align)\n */\n align: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadingElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadingElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLHeadingElement: {\n prototype: HTMLHeadingElement;\n new(): HTMLHeadingElement;\n};\n\n/**\n * Serves as the root node for a given HTML document. This object inherits the properties and methods described in the HTMLElement interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHtmlElement)\n */\ninterface HTMLHtmlElement extends HTMLElement {\n /**\n * Sets or retrieves the DTD version that governs the current document.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHtmlElement/version)\n */\n version: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHtmlElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHtmlElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLHtmlElement: {\n prototype: HTMLHtmlElement;\n new(): HTMLHtmlElement;\n};\n\ninterface HTMLHyperlinkElementUtils {\n /**\n * Returns the hyperlink\'s URL\'s fragment (includes leading "#" if non-empty).\n *\n * Can be set, to change the URL\'s fragment (ignores leading "#").\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/hash)\n */\n hash: string;\n /**\n * Returns the hyperlink\'s URL\'s host and port (if different from the default port for the scheme).\n *\n * Can be set, to change the URL\'s host and port.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/host)\n */\n host: string;\n /**\n * Returns the hyperlink\'s URL\'s host.\n *\n * Can be set, to change the URL\'s host.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/hostname)\n */\n hostname: string;\n /**\n * Returns the hyperlink\'s URL.\n *\n * Can be set, to change the URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/href)\n */\n href: string;\n toString(): string;\n /**\n * Returns the hyperlink\'s URL\'s origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/origin)\n */\n readonly origin: string;\n /**\n * Returns the hyperlink\'s URL\'s password.\n *\n * Can be set, to change the URL\'s password.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/password)\n */\n password: string;\n /**\n * Returns the hyperlink\'s URL\'s path.\n *\n * Can be set, to change the URL\'s path.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/pathname)\n */\n pathname: string;\n /**\n * Returns the hyperlink\'s URL\'s port.\n *\n * Can be set, to change the URL\'s port.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/port)\n */\n port: string;\n /**\n * Returns the hyperlink\'s URL\'s scheme.\n *\n * Can be set, to change the URL\'s scheme.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/protocol)\n */\n protocol: string;\n /**\n * Returns the hyperlink\'s URL\'s query (includes leading "?" if non-empty).\n *\n * Can be set, to change the URL\'s query (ignores leading "?").\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/search)\n */\n search: string;\n /**\n * Returns the hyperlink\'s URL\'s username.\n *\n * Can be set, to change the URL\'s username.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/username)\n */\n username: string;\n}\n\n/**\n * Provides special properties and methods (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of inline frame elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement)\n */\ninterface HTMLIFrameElement extends HTMLElement {\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/align)\n */\n align: string;\n allow: string;\n allowFullscreen: boolean;\n /**\n * Retrieves the document object of the page or frame.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/contentDocument)\n */\n readonly contentDocument: Document | null;\n /**\n * Retrieves the object of the specified.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/contentWindow)\n */\n readonly contentWindow: WindowProxy | null;\n /**\n * Sets or retrieves whether to display a border for the frame.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/frameBorder)\n */\n frameBorder: string;\n /**\n * Sets or retrieves the height of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/height)\n */\n height: string;\n loading: string;\n /**\n * Sets or retrieves a URI to a long description of the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/longDesc)\n */\n longDesc: string;\n /**\n * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/marginHeight)\n */\n marginHeight: string;\n /**\n * Sets or retrieves the left and right margin widths before displaying the text in a frame.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/marginWidth)\n */\n marginWidth: string;\n /**\n * Sets or retrieves the frame name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/name)\n */\n name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/referrerPolicy) */\n referrerPolicy: ReferrerPolicy;\n readonly sandbox: DOMTokenList;\n /**\n * Sets or retrieves whether the frame can be scrolled.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/scrolling)\n */\n scrolling: string;\n /**\n * Sets or retrieves a URL to be loaded by the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/src)\n */\n src: string;\n /**\n * Sets or retrives the content of the page that is to contain.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/srcdoc)\n */\n srcdoc: string;\n /**\n * Sets or retrieves the width of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/width)\n */\n width: string;\n getSVGDocument(): Document | null;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLIFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLIFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLIFrameElement: {\n prototype: HTMLIFrameElement;\n new(): HTMLIFrameElement;\n};\n\n/**\n * Provides special properties and methods for manipulating <img> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement)\n */\ninterface HTMLImageElement extends HTMLElement {\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/align)\n */\n align: string;\n /**\n * Sets or retrieves a text alternative to the graphic.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/alt)\n */\n alt: string;\n /**\n * Specifies the properties of a border drawn around an object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/border)\n */\n border: string;\n /**\n * Retrieves whether the object is fully loaded.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/complete)\n */\n readonly complete: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/crossOrigin) */\n crossOrigin: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/currentSrc) */\n readonly currentSrc: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/decoding) */\n decoding: "async" | "sync" | "auto";\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/fetchPriority) */\n fetchPriority: string;\n /**\n * Sets or retrieves the height of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/height)\n */\n height: number;\n /**\n * Sets or retrieves the width of the border to draw around the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/hspace)\n */\n hspace: number;\n /**\n * Sets or retrieves whether the image is a server-side image map.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/isMap)\n */\n isMap: boolean;\n /**\n * Sets or retrieves the policy for loading image elements that are outside the viewport.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/loading)\n */\n loading: "eager" | "lazy";\n /**\n * Sets or retrieves a Uniform Resource Identifier (URI) to a long description of the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/longDesc)\n */\n longDesc: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/lowsrc)\n */\n lowsrc: string;\n /**\n * Sets or retrieves the name of the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/name)\n */\n name: string;\n /**\n * The original height of the image resource before sizing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/naturalHeight)\n */\n readonly naturalHeight: number;\n /**\n * The original width of the image resource before sizing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/naturalWidth)\n */\n readonly naturalWidth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/referrerPolicy) */\n referrerPolicy: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/sizes) */\n sizes: string;\n /**\n * The address or URL of the a media resource that is to be considered.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/src)\n */\n src: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/srcset) */\n srcset: string;\n /**\n * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/useMap)\n */\n useMap: string;\n /**\n * Sets or retrieves the vertical margin for the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/vspace)\n */\n vspace: number;\n /**\n * Sets or retrieves the width of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/width)\n */\n width: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/x) */\n readonly x: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/y) */\n readonly y: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/decode) */\n decode(): Promise<void>;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLImageElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLImageElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLImageElement: {\n prototype: HTMLImageElement;\n new(): HTMLImageElement;\n};\n\n/**\n * Provides special properties and methods for manipulating the options, layout, and presentation of <input> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement)\n */\ninterface HTMLInputElement extends HTMLElement, PopoverInvokerElement {\n /** Sets or retrieves a comma-separated list of content types. */\n accept: string;\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n * @deprecated\n */\n align: string;\n /** Sets or retrieves a text alternative to the graphic. */\n alt: string;\n /**\n * Specifies whether autocomplete is applied to an editable text field.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/autocomplete)\n */\n autocomplete: AutoFill;\n capture: string;\n /** Sets or retrieves the state of the check box or radio button. */\n checked: boolean;\n /** Sets or retrieves the state of the check box or radio button. */\n defaultChecked: boolean;\n /** Sets or retrieves the initial contents of the object. */\n defaultValue: string;\n dirName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/disabled) */\n disabled: boolean;\n /**\n * Returns a FileList object on a file type input object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/files)\n */\n files: FileList | null;\n /** Retrieves a reference to the form that the object is embedded in. */\n readonly form: HTMLFormElement | null;\n /**\n * Overrides the action attribute (where the data on a form is sent) on the parent form element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formAction)\n */\n formAction: string;\n /**\n * Used to override the encoding (formEnctype attribute) specified on the form element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formEnctype)\n */\n formEnctype: string;\n /**\n * Overrides the submit method attribute previously specified on a form element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formMethod)\n */\n formMethod: string;\n /**\n * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a "save draft"-type submit option.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formNoValidate)\n */\n formNoValidate: boolean;\n /**\n * Overrides the target attribute on a form element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formTarget)\n */\n formTarget: string;\n /**\n * Sets or retrieves the height of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/height)\n */\n height: number;\n /** When set, overrides the rendering of checkbox controls so that the current value is not visible. */\n indeterminate: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/labels) */\n readonly labels: NodeListOf<HTMLLabelElement> | null;\n /**\n * Specifies the ID of a pre-defined datalist of options for an input element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/list)\n */\n readonly list: HTMLDataListElement | null;\n /** Defines the maximum acceptable value for an input element with type="number".When used with the min and step attributes, lets you control the range and increment (such as only even numbers) that the user can enter into an input field. */\n max: string;\n /** Sets or retrieves the maximum number of characters that the user can enter in a text control. */\n maxLength: number;\n /** Defines the minimum acceptable value for an input element with type="number". When used with the max and step attributes, lets you control the range and increment (such as even numbers only) that the user can enter into an input field. */\n min: string;\n minLength: number;\n /**\n * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/multiple)\n */\n multiple: boolean;\n /** Sets or retrieves the name of the object. */\n name: string;\n /**\n * Gets or sets a string containing a regular expression that the user\'s input must match.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/pattern)\n */\n pattern: string;\n /**\n * Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/placeholder)\n */\n placeholder: string;\n readOnly: boolean;\n /**\n * When present, marks an element that can\'t be submitted without a value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/required)\n */\n required: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/selectionDirection) */\n selectionDirection: "forward" | "backward" | "none" | null;\n /** Gets or sets the end position or offset of a text selection. */\n selectionEnd: number | null;\n /** Gets or sets the starting position or offset of a text selection. */\n selectionStart: number | null;\n size: number;\n /** The address or URL of the a media resource that is to be considered. */\n src: string;\n /** Defines an increment or jump between values that you want to allow the user to enter. When used with the max and min attributes, lets you control the range and increment (for example, allow only even numbers) that the user can enter into an input field. */\n step: string;\n /** Returns the content type of the object. */\n type: string;\n /**\n * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.\n * @deprecated\n */\n useMap: string;\n /**\n * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/validationMessage)\n */\n readonly validationMessage: string;\n /**\n * Returns a ValidityState object that represents the validity states of an element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/validity)\n */\n readonly validity: ValidityState;\n /** Returns the value of the data at the cursor\'s current position. */\n value: string;\n /** Returns a Date object representing the form control\'s value, if applicable; otherwise, returns null. Can be set, to change the value. Throws an "InvalidStateError" DOMException if the control isn\'t date- or time-based. */\n valueAsDate: Date | null;\n /** Returns the input field value as a number. */\n valueAsNumber: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/webkitEntries) */\n readonly webkitEntries: ReadonlyArray<FileSystemEntry>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/webkitdirectory) */\n webkitdirectory: boolean;\n /**\n * Sets or retrieves the width of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/width)\n */\n width: number;\n /**\n * Returns whether an element will successfully validate based on forms validation rules and constraints.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/willValidate)\n */\n readonly willValidate: boolean;\n /**\n * Returns whether a form will validate when it is submitted, without having to submit it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/checkValidity)\n */\n checkValidity(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/reportValidity) */\n reportValidity(): boolean;\n /**\n * Makes the selection equal to the current object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/select)\n */\n select(): void;\n /**\n * Sets a custom error message that is displayed when a form is submitted.\n * @param error Sets a custom error message that is displayed when a form is submitted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setCustomValidity)\n */\n setCustomValidity(error: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setRangeText) */\n setRangeText(replacement: string): void;\n setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;\n /**\n * Sets the start and end positions of a selection in a text field.\n * @param start The offset into the text field for the start of the selection.\n * @param end The offset into the text field for the end of the selection.\n * @param direction The direction in which the selection is performed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setSelectionRange)\n */\n setSelectionRange(start: number | null, end: number | null, direction?: "forward" | "backward" | "none"): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/showPicker) */\n showPicker(): void;\n /**\n * Decrements a range input control\'s value by the value given by the Step attribute. If the optional parameter is used, it will decrement the input control\'s step value multiplied by the parameter\'s value.\n * @param n Value to decrement the value by.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/stepDown)\n */\n stepDown(n?: number): void;\n /**\n * Increments a range input control\'s value by the value given by the Step attribute. If the optional parameter is used, will increment the input control\'s value by that value.\n * @param n Value to increment the value by.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/stepUp)\n */\n stepUp(n?: number): void;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLInputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLInputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLInputElement: {\n prototype: HTMLInputElement;\n new(): HTMLInputElement;\n};\n\n/**\n * Exposes specific properties and methods (beyond those defined by regular HTMLElement interface it also has available to it by inheritance) for manipulating list elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLIElement)\n */\ninterface HTMLLIElement extends HTMLElement {\n /** @deprecated */\n type: string;\n /** Sets or retrieves the value of a list item. */\n value: number;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLIElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLIElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLLIElement: {\n prototype: HTMLLIElement;\n new(): HTMLLIElement;\n};\n\n/**\n * Gives access to properties specific to <label> elements. It inherits methods and properties from the base HTMLElement interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLabelElement)\n */\ninterface HTMLLabelElement extends HTMLElement {\n /**\n * Returns the form control that is associated with this element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLabelElement/control)\n */\n readonly control: HTMLElement | null;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLabelElement/form)\n */\n readonly form: HTMLFormElement | null;\n /**\n * Sets or retrieves the object to which the given label object is assigned.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLabelElement/htmlFor)\n */\n htmlFor: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLabelElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLabelElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLLabelElement: {\n prototype: HTMLLabelElement;\n new(): HTMLLabelElement;\n};\n\n/**\n * The HTMLLegendElement is an interface allowing to access properties of the <legend> elements. It inherits properties and methods from the HTMLElement interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLegendElement)\n */\ninterface HTMLLegendElement extends HTMLElement {\n /** @deprecated */\n align: string;\n /** Retrieves a reference to the form that the object is embedded in. */\n readonly form: HTMLFormElement | null;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLegendElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLegendElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLLegendElement: {\n prototype: HTMLLegendElement;\n new(): HTMLLegendElement;\n};\n\n/**\n * Reference information for external resources and the relationship of those resources to a document and vice-versa. This object inherits all of the properties and methods of the HTMLElement interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement)\n */\ninterface HTMLLinkElement extends HTMLElement, LinkStyle {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/as) */\n as: string;\n /**\n * Sets or retrieves the character set used to encode the object.\n * @deprecated\n */\n charset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/crossOrigin) */\n crossOrigin: string | null;\n disabled: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/fetchPriority) */\n fetchPriority: string;\n /**\n * Sets or retrieves a destination URL or an anchor point.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/href)\n */\n href: string;\n /**\n * Sets or retrieves the language code of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/hreflang)\n */\n hreflang: string;\n imageSizes: string;\n imageSrcset: string;\n integrity: string;\n /** Sets or retrieves the media type. */\n media: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/referrerPolicy) */\n referrerPolicy: string;\n /**\n * Sets or retrieves the relationship between the object and the destination of the link.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/rel)\n */\n rel: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/relList) */\n readonly relList: DOMTokenList;\n /**\n * Sets or retrieves the relationship between the object and the destination of the link.\n * @deprecated\n */\n rev: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/sizes) */\n readonly sizes: DOMTokenList;\n /**\n * Sets or retrieves the window or frame at which to target content.\n * @deprecated\n */\n target: string;\n /** Sets or retrieves the MIME type of the object. */\n type: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLinkElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLinkElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLLinkElement: {\n prototype: HTMLLinkElement;\n new(): HTMLLinkElement;\n};\n\n/**\n * Provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of map elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMapElement)\n */\ninterface HTMLMapElement extends HTMLElement {\n /**\n * Retrieves a collection of the area objects defined for the given map object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMapElement/areas)\n */\n readonly areas: HTMLCollection;\n /**\n * Sets or retrieves the name of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMapElement/name)\n */\n name: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMapElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMapElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLMapElement: {\n prototype: HTMLMapElement;\n new(): HTMLMapElement;\n};\n\n/**\n * Provides methods to manipulate <marquee> elements.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMarqueeElement)\n */\ninterface HTMLMarqueeElement extends HTMLElement {\n /** @deprecated */\n behavior: string;\n /** @deprecated */\n bgColor: string;\n /** @deprecated */\n direction: string;\n /** @deprecated */\n height: string;\n /** @deprecated */\n hspace: number;\n /** @deprecated */\n loop: number;\n /** @deprecated */\n scrollAmount: number;\n /** @deprecated */\n scrollDelay: number;\n /** @deprecated */\n trueSpeed: boolean;\n /** @deprecated */\n vspace: number;\n /** @deprecated */\n width: string;\n /** @deprecated */\n start(): void;\n /** @deprecated */\n stop(): void;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMarqueeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMarqueeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/** @deprecated */\ndeclare var HTMLMarqueeElement: {\n prototype: HTMLMarqueeElement;\n new(): HTMLMarqueeElement;\n};\n\ninterface HTMLMediaElementEventMap extends HTMLElementEventMap {\n "encrypted": MediaEncryptedEvent;\n "waitingforkey": Event;\n}\n\n/**\n * Adds to HTMLElement the properties and methods needed to support basic media-related capabilities that are common to audio and video.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement)\n */\ninterface HTMLMediaElement extends HTMLElement {\n /**\n * Gets or sets a value that indicates whether to start playing the media automatically.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/autoplay)\n */\n autoplay: boolean;\n /**\n * Gets a collection of buffered time ranges.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/buffered)\n */\n readonly buffered: TimeRanges;\n /**\n * Gets or sets a flag that indicates whether the client provides a set of controls for the media (in case the developer does not include controls for the player).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/controls)\n */\n controls: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/crossOrigin) */\n crossOrigin: string | null;\n /**\n * Gets the address or URL of the current media resource that is selected by IHTMLMediaElement.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/currentSrc)\n */\n readonly currentSrc: string;\n /**\n * Gets or sets the current playback position, in seconds.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/currentTime)\n */\n currentTime: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/defaultMuted) */\n defaultMuted: boolean;\n /**\n * Gets or sets the default playback rate when the user is not using fast forward or reverse for a video or audio resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/defaultPlaybackRate)\n */\n defaultPlaybackRate: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/disableRemotePlayback) */\n disableRemotePlayback: boolean;\n /**\n * Returns the duration in seconds of the current media resource. A NaN value is returned if duration is not available, or Infinity if the media resource is streaming.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/duration)\n */\n readonly duration: number;\n /**\n * Gets information about whether the playback has ended or not.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended)\n */\n readonly ended: boolean;\n /**\n * Returns an object representing the current error state of the audio or video element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/error)\n */\n readonly error: MediaError | null;\n /**\n * Gets or sets a flag to specify whether playback should restart after it completes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loop)\n */\n loop: boolean;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/mediaKeys)\n */\n readonly mediaKeys: MediaKeys | null;\n /**\n * Gets or sets a flag that indicates whether the audio (either audio or the audio track on video media) is muted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/muted)\n */\n muted: boolean;\n /**\n * Gets the current network activity for the element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/networkState)\n */\n readonly networkState: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/encrypted_event) */\n onencrypted: ((this: HTMLMediaElement, ev: MediaEncryptedEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/waitingforkey_event) */\n onwaitingforkey: ((this: HTMLMediaElement, ev: Event) => any) | null;\n /**\n * Gets a flag that specifies whether playback is paused.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/paused)\n */\n readonly paused: boolean;\n /**\n * Gets or sets the current rate of speed for the media resource to play. This speed is expressed as a multiple of the normal speed of the media resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/playbackRate)\n */\n playbackRate: number;\n /**\n * Gets TimeRanges for the current media resource that has been played.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/played)\n */\n readonly played: TimeRanges;\n /**\n * Gets or sets a value indicating what data should be preloaded, if any.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/preload)\n */\n preload: "none" | "metadata" | "auto" | "";\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/preservesPitch) */\n preservesPitch: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/readyState) */\n readonly readyState: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/remote) */\n readonly remote: RemotePlayback;\n /**\n * Returns a TimeRanges object that represents the ranges of the current media resource that can be seeked.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seekable)\n */\n readonly seekable: TimeRanges;\n /**\n * Gets a flag that indicates whether the client is currently moving to a new playback position in the media resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeking)\n */\n readonly seeking: boolean;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/sinkId)\n */\n readonly sinkId: string;\n /**\n * The address or URL of the a media resource that is to be considered.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/src)\n */\n src: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/srcObject) */\n srcObject: MediaProvider | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/textTracks) */\n readonly textTracks: TextTrackList;\n /**\n * Gets or sets the volume level for audio portions of the media element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/volume)\n */\n volume: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/addTextTrack) */\n addTextTrack(kind: TextTrackKind, label?: string, language?: string): TextTrack;\n /**\n * Returns a string that specifies whether the client can play a given media resource type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canPlayType)\n */\n canPlayType(type: string): CanPlayTypeResult;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/fastSeek) */\n fastSeek(time: number): void;\n /**\n * Resets the audio or video object and loads a new media resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/load)\n */\n load(): void;\n /**\n * Pauses the current playback and sets paused to TRUE.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause)\n */\n pause(): void;\n /**\n * Loads and starts playback of a media resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play)\n */\n play(): Promise<void>;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/setMediaKeys)\n */\n setMediaKeys(mediaKeys: MediaKeys | null): Promise<void>;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/setSinkId)\n */\n setSinkId(sinkId: string): Promise<void>;\n readonly NETWORK_EMPTY: 0;\n readonly NETWORK_IDLE: 1;\n readonly NETWORK_LOADING: 2;\n readonly NETWORK_NO_SOURCE: 3;\n readonly HAVE_NOTHING: 0;\n readonly HAVE_METADATA: 1;\n readonly HAVE_CURRENT_DATA: 2;\n readonly HAVE_FUTURE_DATA: 3;\n readonly HAVE_ENOUGH_DATA: 4;\n addEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLMediaElement: {\n prototype: HTMLMediaElement;\n new(): HTMLMediaElement;\n readonly NETWORK_EMPTY: 0;\n readonly NETWORK_IDLE: 1;\n readonly NETWORK_LOADING: 2;\n readonly NETWORK_NO_SOURCE: 3;\n readonly HAVE_NOTHING: 0;\n readonly HAVE_METADATA: 1;\n readonly HAVE_CURRENT_DATA: 2;\n readonly HAVE_FUTURE_DATA: 3;\n readonly HAVE_ENOUGH_DATA: 4;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMenuElement) */\ninterface HTMLMenuElement extends HTMLElement {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMenuElement/compact)\n */\n compact: boolean;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMenuElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMenuElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLMenuElement: {\n prototype: HTMLMenuElement;\n new(): HTMLMenuElement;\n};\n\n/**\n * Contains descriptive metadata about a document. It inherits all of the properties and methods described in the HTMLElement interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMetaElement)\n */\ninterface HTMLMetaElement extends HTMLElement {\n /** Gets or sets meta-information to associate with httpEquiv or name. */\n content: string;\n /** Gets or sets information used to bind the value of a content attribute of a meta element to an HTTP response header. */\n httpEquiv: string;\n media: string;\n /** Sets or retrieves the value specified in the content attribute of the meta object. */\n name: string;\n /**\n * Sets or retrieves a scheme to be used in interpreting the value of a property specified for the object.\n * @deprecated\n */\n scheme: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMetaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMetaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLMetaElement: {\n prototype: HTMLMetaElement;\n new(): HTMLMetaElement;\n};\n\n/**\n * The HTML <meter> elements expose the HTMLMeterElement interface, which provides special properties and methods (beyond the HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of <meter> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement)\n */\ninterface HTMLMeterElement extends HTMLElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/high) */\n high: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/labels) */\n readonly labels: NodeListOf<HTMLLabelElement>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/low) */\n low: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/max) */\n max: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/min) */\n min: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/optimum) */\n optimum: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/value) */\n value: number;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMeterElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMeterElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLMeterElement: {\n prototype: HTMLMeterElement;\n new(): HTMLMeterElement;\n};\n\n/**\n * Provides special properties (beyond the regular methods and properties available through the HTMLElement interface they also have available to them by inheritance) for manipulating modification elements, that is <del> and <ins>.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLModElement)\n */\ninterface HTMLModElement extends HTMLElement {\n /**\n * Sets or retrieves reference information about the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLModElement/cite)\n */\n cite: string;\n /**\n * Sets or retrieves the date and time of a modification to the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLModElement/dateTime)\n */\n dateTime: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLModElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLModElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLModElement: {\n prototype: HTMLModElement;\n new(): HTMLModElement;\n};\n\n/**\n * Provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating ordered list elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOListElement)\n */\ninterface HTMLOListElement extends HTMLElement {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOListElement/compact)\n */\n compact: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOListElement/reversed) */\n reversed: boolean;\n /**\n * The starting number.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOListElement/start)\n */\n start: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOListElement/type) */\n type: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLOListElement: {\n prototype: HTMLOListElement;\n new(): HTMLOListElement;\n};\n\n/**\n * Provides special properties and methods (beyond those on the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <object> element, representing external resources.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement)\n */\ninterface HTMLObjectElement extends HTMLElement {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/align)\n */\n align: string;\n /**\n * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/archive)\n */\n archive: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/border)\n */\n border: string;\n /**\n * Sets or retrieves the URL of the file containing the compiled Java class.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/code)\n */\n code: string;\n /**\n * Sets or retrieves the URL of the component.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/codeBase)\n */\n codeBase: string;\n /**\n * Sets or retrieves the Internet media type for the code associated with the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/codeType)\n */\n codeType: string;\n /**\n * Retrieves the document object of the page or frame.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/contentDocument)\n */\n readonly contentDocument: Document | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/contentWindow) */\n readonly contentWindow: WindowProxy | null;\n /**\n * Sets or retrieves the URL that references the data of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/data)\n */\n data: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/declare)\n */\n declare: boolean;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/form)\n */\n readonly form: HTMLFormElement | null;\n /**\n * Sets or retrieves the height of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/height)\n */\n height: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/hspace)\n */\n hspace: number;\n /**\n * Sets or retrieves the name of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/name)\n */\n name: string;\n /**\n * Sets or retrieves a message to be displayed while an object is loading.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/standby)\n */\n standby: string;\n /**\n * Sets or retrieves the MIME type of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/type)\n */\n type: string;\n /**\n * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/useMap)\n */\n useMap: string;\n /**\n * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/validationMessage)\n */\n readonly validationMessage: string;\n /**\n * Returns a ValidityState object that represents the validity states of an element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/validity)\n */\n readonly validity: ValidityState;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/vspace)\n */\n vspace: number;\n /**\n * Sets or retrieves the width of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/width)\n */\n width: string;\n /**\n * Returns whether an element will successfully validate based on forms validation rules and constraints.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/willValidate)\n */\n readonly willValidate: boolean;\n /**\n * Returns whether a form will validate when it is submitted, without having to submit it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/checkValidity)\n */\n checkValidity(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/getSVGDocument) */\n getSVGDocument(): Document | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/reportValidity) */\n reportValidity(): boolean;\n /**\n * Sets a custom error message that is displayed when a form is submitted.\n * @param error Sets a custom error message that is displayed when a form is submitted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/setCustomValidity)\n */\n setCustomValidity(error: string): void;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLObjectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLObjectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLObjectElement: {\n prototype: HTMLObjectElement;\n new(): HTMLObjectElement;\n};\n\n/**\n * Provides special properties and methods (beyond the regular HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of <optgroup> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptGroupElement)\n */\ninterface HTMLOptGroupElement extends HTMLElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptGroupElement/disabled) */\n disabled: boolean;\n /**\n * Sets or retrieves a value that you can use to implement your own label functionality for the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptGroupElement/label)\n */\n label: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptGroupElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptGroupElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLOptGroupElement: {\n prototype: HTMLOptGroupElement;\n new(): HTMLOptGroupElement;\n};\n\n/**\n * <option> elements and inherits all classes and methods of the HTMLElement interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement)\n */\ninterface HTMLOptionElement extends HTMLElement {\n /**\n * Sets or retrieves the status of an option.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/defaultSelected)\n */\n defaultSelected: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/disabled) */\n disabled: boolean;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/form)\n */\n readonly form: HTMLFormElement | null;\n /**\n * Sets or retrieves the ordinal position of an option in a list box.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/index)\n */\n readonly index: number;\n /**\n * Sets or retrieves a value that you can use to implement your own label functionality for the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/label)\n */\n label: string;\n /**\n * Sets or retrieves whether the option in the list box is the default item.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/selected)\n */\n selected: boolean;\n /**\n * Sets or retrieves the text string specified by the option tag.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/text)\n */\n text: string;\n /**\n * Sets or retrieves the value which is returned to the server when the form control is submitted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/value)\n */\n value: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLOptionElement: {\n prototype: HTMLOptionElement;\n new(): HTMLOptionElement;\n};\n\n/**\n * HTMLOptionsCollection is an interface representing a collection of HTML option elements (in document order) and offers methods and properties for traversing the list as well as optionally altering its items. This type is returned solely by the "options" property of select.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection)\n */\ninterface HTMLOptionsCollection extends HTMLCollectionOf<HTMLOptionElement> {\n /**\n * Returns the number of elements in the collection.\n *\n * When set to a smaller number, truncates the number of option elements in the corresponding container.\n *\n * When set to a greater number, adds new blank option elements to that container.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection/length)\n */\n length: number;\n /**\n * Returns the index of the first selected item, if any, or −1 if there is no selected item.\n *\n * Can be set, to change the selection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection/selectedIndex)\n */\n selectedIndex: number;\n /**\n * Inserts element before the node given by before.\n *\n * The before argument can be a number, in which case element is inserted before the item with that number, or an element from the collection, in which case element is inserted before that element.\n *\n * If before is omitted, null, or a number out of range, then element will be added at the end of the list.\n *\n * This method will throw a "HierarchyRequestError" DOMException if element is an ancestor of the element into which it is to be inserted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection/add)\n */\n add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number | null): void;\n /**\n * Removes the item with index index from the collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection/remove)\n */\n remove(index: number): void;\n}\n\ndeclare var HTMLOptionsCollection: {\n prototype: HTMLOptionsCollection;\n new(): HTMLOptionsCollection;\n};\n\ninterface HTMLOrSVGElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/autofocus) */\n autofocus: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dataset) */\n readonly dataset: DOMStringMap;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/nonce) */\n nonce?: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/tabIndex) */\n tabIndex: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur) */\n blur(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */\n focus(options?: FocusOptions): void;\n}\n\n/**\n * Provides properties and methods (beyond those inherited from HTMLElement) for manipulating the layout and presentation of <output> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement)\n */\ninterface HTMLOutputElement extends HTMLElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/defaultValue) */\n defaultValue: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/form) */\n readonly form: HTMLFormElement | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/htmlFor) */\n readonly htmlFor: DOMTokenList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/labels) */\n readonly labels: NodeListOf<HTMLLabelElement>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/name) */\n name: string;\n /**\n * Returns the string "output".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/type)\n */\n readonly type: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/validationMessage) */\n readonly validationMessage: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/validity) */\n readonly validity: ValidityState;\n /**\n * Returns the element\'s current value.\n *\n * Can be set, to change the value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/value)\n */\n value: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/willValidate) */\n readonly willValidate: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/checkValidity) */\n checkValidity(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/reportValidity) */\n reportValidity(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/setCustomValidity) */\n setCustomValidity(error: string): void;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOutputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOutputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLOutputElement: {\n prototype: HTMLOutputElement;\n new(): HTMLOutputElement;\n};\n\n/**\n * Provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating <p> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParagraphElement)\n */\ninterface HTMLParagraphElement extends HTMLElement {\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParagraphElement/align)\n */\n align: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParagraphElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParagraphElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLParagraphElement: {\n prototype: HTMLParagraphElement;\n new(): HTMLParagraphElement;\n};\n\n/**\n * Provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating <param> elements, representing a pair of a key and a value that acts as a parameter for an <object> element.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParamElement)\n */\ninterface HTMLParamElement extends HTMLElement {\n /**\n * Sets or retrieves the name of an input parameter for an element.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParamElement/name)\n */\n name: string;\n /**\n * Sets or retrieves the content type of the resource designated by the value attribute.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParamElement/type)\n */\n type: string;\n /**\n * Sets or retrieves the value of an input parameter for an element.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParamElement/value)\n */\n value: string;\n /**\n * Sets or retrieves the data type of the value attribute.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParamElement/valueType)\n */\n valueType: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParamElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParamElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/** @deprecated */\ndeclare var HTMLParamElement: {\n prototype: HTMLParamElement;\n new(): HTMLParamElement;\n};\n\n/**\n * A <picture> HTML element. It doesn\'t implement specific properties or methods.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLPictureElement)\n */\ninterface HTMLPictureElement extends HTMLElement {\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLPictureElement: {\n prototype: HTMLPictureElement;\n new(): HTMLPictureElement;\n};\n\n/**\n * Exposes specific properties and methods (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating a block of preformatted text (<pre>).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLPreElement)\n */\ninterface HTMLPreElement extends HTMLElement {\n /**\n * Sets or gets a value that you can use to implement your own width functionality for the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLPreElement/width)\n */\n width: number;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPreElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPreElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLPreElement: {\n prototype: HTMLPreElement;\n new(): HTMLPreElement;\n};\n\n/**\n * Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of <progress> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement)\n */\ninterface HTMLProgressElement extends HTMLElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement/labels) */\n readonly labels: NodeListOf<HTMLLabelElement>;\n /**\n * Defines the maximum, or "done" value for a progress element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement/max)\n */\n max: number;\n /**\n * Returns the quotient of value/max when the value attribute is set (determinate progress bar), or -1 when the value attribute is missing (indeterminate progress bar).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement/position)\n */\n readonly position: number;\n /**\n * Sets or gets the current value of a progress element. The value must be a non-negative number between 0 and the max value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement/value)\n */\n value: number;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLProgressElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLProgressElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLProgressElement: {\n prototype: HTMLProgressElement;\n new(): HTMLProgressElement;\n};\n\n/**\n * Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating quoting elements, like <blockquote> and <q>, but not the <cite> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLQuoteElement)\n */\ninterface HTMLQuoteElement extends HTMLElement {\n /**\n * Sets or retrieves reference information about the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLQuoteElement/cite)\n */\n cite: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLQuoteElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLQuoteElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLQuoteElement: {\n prototype: HTMLQuoteElement;\n new(): HTMLQuoteElement;\n};\n\n/**\n * HTML <script> elements expose the HTMLScriptElement interface, which provides special properties and methods for manipulating the behavior and execution of <script> elements (beyond the inherited HTMLElement interface).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement)\n */\ninterface HTMLScriptElement extends HTMLElement {\n async: boolean;\n /**\n * Sets or retrieves the character set used to encode the object.\n * @deprecated\n */\n charset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/crossOrigin) */\n crossOrigin: string | null;\n /** Sets or retrieves the status of the script. */\n defer: boolean;\n /**\n * Sets or retrieves the event for which the script is written.\n * @deprecated\n */\n event: string;\n fetchPriority: string;\n /**\n * Sets or retrieves the object that is bound to the event script.\n * @deprecated\n */\n htmlFor: string;\n integrity: string;\n noModule: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/referrerPolicy) */\n referrerPolicy: string;\n /** Retrieves the URL to an external file that contains the source code or data. */\n src: string;\n /** Retrieves or sets the text of the object as a string. */\n text: string;\n /** Sets or retrieves the MIME type for the associated scripting engine. */\n type: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLScriptElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLScriptElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLScriptElement: {\n prototype: HTMLScriptElement;\n new(): HTMLScriptElement;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/supports_static) */\n supports(type: string): boolean;\n};\n\n/**\n * A <select> HTML Element. These elements also share all of the properties and methods of other HTML elements via the HTMLElement interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement)\n */\ninterface HTMLSelectElement extends HTMLElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/autocomplete) */\n autocomplete: AutoFill;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/disabled) */\n disabled: boolean;\n /**\n * Retrieves a reference to the form that the object is embedded in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/form)\n */\n readonly form: HTMLFormElement | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/labels) */\n readonly labels: NodeListOf<HTMLLabelElement>;\n /**\n * Sets or retrieves the number of objects in a collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/length)\n */\n length: number;\n /**\n * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/multiple)\n */\n multiple: boolean;\n /**\n * Sets or retrieves the name of the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/name)\n */\n name: string;\n /**\n * Returns an HTMLOptionsCollection of the list of options.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/options)\n */\n readonly options: HTMLOptionsCollection;\n /**\n * When present, marks an element that can\'t be submitted without a value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/required)\n */\n required: boolean;\n /**\n * Sets or retrieves the index of the selected option in a select object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/selectedIndex)\n */\n selectedIndex: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/selectedOptions) */\n readonly selectedOptions: HTMLCollectionOf<HTMLOptionElement>;\n /**\n * Sets or retrieves the number of rows in the list box.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/size)\n */\n size: number;\n /**\n * Retrieves the type of select control based on the value of the MULTIPLE attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/type)\n */\n readonly type: string;\n /**\n * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/validationMessage)\n */\n readonly validationMessage: string;\n /**\n * Returns a ValidityState object that represents the validity states of an element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/validity)\n */\n readonly validity: ValidityState;\n /**\n * Sets or retrieves the value which is returned to the server when the form control is submitted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/value)\n */\n value: string;\n /**\n * Returns whether an element will successfully validate based on forms validation rules and constraints.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/willValidate)\n */\n readonly willValidate: boolean;\n /**\n * Adds an element to the areas, controlRange, or options collection.\n * @param element Variant of type Number that specifies the index position in the collection where the element is placed. If no value is given, the method places the element at the end of the collection.\n * @param before Variant of type Object that specifies an element to insert before, or null to append the object to the collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/add)\n */\n add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number | null): void;\n /**\n * Returns whether a form will validate when it is submitted, without having to submit it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/checkValidity)\n */\n checkValidity(): boolean;\n /**\n * Retrieves a select object or an object from an options collection.\n * @param name Variant of type Number or String that specifies the object or collection to retrieve. If this parameter is an integer, it is the zero-based index of the object. If this parameter is a string, all objects with matching name or id properties are retrieved, and a collection is returned if more than one match is made.\n * @param index Variant of type Number that specifies the zero-based index of the object to retrieve when a collection is returned.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/item)\n */\n item(index: number): HTMLOptionElement | null;\n /**\n * Retrieves a select object or an object from an options collection.\n * @param namedItem A String that specifies the name or id property of the object to retrieve. A collection is returned if more than one match is made.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/namedItem)\n */\n namedItem(name: string): HTMLOptionElement | null;\n /**\n * Removes an element from the collection.\n * @param index Number that specifies the zero-based index of the element to remove from the collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/remove)\n */\n remove(): void;\n remove(index: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/reportValidity) */\n reportValidity(): boolean;\n /**\n * Sets a custom error message that is displayed when a form is submitted.\n * @param error Sets a custom error message that is displayed when a form is submitted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/setCustomValidity)\n */\n setCustomValidity(error: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/showPicker) */\n showPicker(): void;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSelectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSelectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n [name: number]: HTMLOptionElement | HTMLOptGroupElement;\n}\n\ndeclare var HTMLSelectElement: {\n prototype: HTMLSelectElement;\n new(): HTMLSelectElement;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement) */\ninterface HTMLSlotElement extends HTMLElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/name) */\n name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/assign) */\n assign(...nodes: (Element | Text)[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/assignedElements) */\n assignedElements(options?: AssignedNodesOptions): Element[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/assignedNodes) */\n assignedNodes(options?: AssignedNodesOptions): Node[];\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLSlotElement: {\n prototype: HTMLSlotElement;\n new(): HTMLSlotElement;\n};\n\n/**\n * Provides special properties (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating <source> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement)\n */\ninterface HTMLSourceElement extends HTMLElement {\n height: number;\n /**\n * Gets or sets the intended media type of the media source.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/media)\n */\n media: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/sizes) */\n sizes: string;\n /**\n * The address or URL of the a media resource that is to be considered.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/src)\n */\n src: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/srcset) */\n srcset: string;\n /**\n * Gets or sets the MIME type of a media resource.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/type)\n */\n type: string;\n width: number;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLSourceElement: {\n prototype: HTMLSourceElement;\n new(): HTMLSourceElement;\n};\n\n/**\n * A <span> element and derives from the HTMLElement interface, but without implementing any additional properties or methods.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSpanElement)\n */\ninterface HTMLSpanElement extends HTMLElement {\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSpanElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSpanElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLSpanElement: {\n prototype: HTMLSpanElement;\n new(): HTMLSpanElement;\n};\n\n/**\n * A <style> element. It inherits properties and methods from its parent, HTMLElement, and from LinkStyle.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLStyleElement)\n */\ninterface HTMLStyleElement extends HTMLElement, LinkStyle {\n /**\n * Enables or disables the style sheet.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLStyleElement/disabled)\n */\n disabled: boolean;\n /**\n * Sets or retrieves the media type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLStyleElement/media)\n */\n media: string;\n /**\n * Retrieves the CSS language in which the style sheet is written.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLStyleElement/type)\n */\n type: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLStyleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLStyleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLStyleElement: {\n prototype: HTMLStyleElement;\n new(): HTMLStyleElement;\n};\n\n/**\n * Special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating table caption elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCaptionElement)\n */\ninterface HTMLTableCaptionElement extends HTMLElement {\n /**\n * Sets or retrieves the alignment of the caption or legend.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCaptionElement/align)\n */\n align: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCaptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCaptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLTableCaptionElement: {\n prototype: HTMLTableCaptionElement;\n new(): HTMLTableCaptionElement;\n};\n\n/**\n * Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of table cells, either header or data cells, in an HTML document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement)\n */\ninterface HTMLTableCellElement extends HTMLElement {\n /**\n * Sets or retrieves abbreviated text for the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/abbr)\n */\n abbr: string;\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/align)\n */\n align: string;\n /**\n * Sets or retrieves a comma-delimited list of conceptual categories associated with the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/axis)\n */\n axis: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/bgColor)\n */\n bgColor: string;\n /**\n * Retrieves the position of the object in the cells collection of a row.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/cellIndex)\n */\n readonly cellIndex: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/ch)\n */\n ch: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/chOff)\n */\n chOff: string;\n /**\n * Sets or retrieves the number columns in the table that the object should span.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/colSpan)\n */\n colSpan: number;\n /**\n * Sets or retrieves a list of header cells that provide information for the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/headers)\n */\n headers: string;\n /**\n * Sets or retrieves the height of the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/height)\n */\n height: string;\n /**\n * Sets or retrieves whether the browser automatically performs wordwrap.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/noWrap)\n */\n noWrap: boolean;\n /**\n * Sets or retrieves how many rows in a table the cell should span.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/rowSpan)\n */\n rowSpan: number;\n /**\n * Sets or retrieves the group of cells in a table to which the object\'s information applies.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/scope)\n */\n scope: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/vAlign)\n */\n vAlign: string;\n /**\n * Sets or retrieves the width of the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/width)\n */\n width: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLTableCellElement: {\n prototype: HTMLTableCellElement;\n new(): HTMLTableCellElement;\n};\n\n/**\n * Provides special properties (beyond the HTMLElement interface it also has available to it inheritance) for manipulating single or grouped table column elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement)\n */\ninterface HTMLTableColElement extends HTMLElement {\n /**\n * Sets or retrieves the alignment of the object relative to the display or table.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/align)\n */\n align: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/ch)\n */\n ch: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/chOff)\n */\n chOff: string;\n /**\n * Sets or retrieves the number of columns in the group.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/span)\n */\n span: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/vAlign)\n */\n vAlign: string;\n /**\n * Sets or retrieves the width of the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/width)\n */\n width: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableColElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableColElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLTableColElement: {\n prototype: HTMLTableColElement;\n new(): HTMLTableColElement;\n};\n\n/** @deprecated prefer HTMLTableCellElement */\ninterface HTMLTableDataCellElement extends HTMLTableCellElement {\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableDataCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableDataCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/**\n * Provides special properties and methods (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating the layout and presentation of tables in an HTML document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement)\n */\ninterface HTMLTableElement extends HTMLElement {\n /**\n * Sets or retrieves a value that indicates the table alignment.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/align)\n */\n align: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/bgColor)\n */\n bgColor: string;\n /**\n * Sets or retrieves the width of the border to draw around the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/border)\n */\n border: string;\n /**\n * Retrieves the caption object of a table.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/caption)\n */\n caption: HTMLTableCaptionElement | null;\n /**\n * Sets or retrieves the amount of space between the border of the cell and the content of the cell.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/cellPadding)\n */\n cellPadding: string;\n /**\n * Sets or retrieves the amount of space between cells in a table.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/cellSpacing)\n */\n cellSpacing: string;\n /**\n * Sets or retrieves the way the border frame around the table is displayed.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/frame)\n */\n frame: string;\n /**\n * Sets or retrieves the number of horizontal rows contained in the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/rows)\n */\n readonly rows: HTMLCollectionOf<HTMLTableRowElement>;\n /**\n * Sets or retrieves which dividing lines (inner borders) are displayed.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/rules)\n */\n rules: string;\n /**\n * Sets or retrieves a description and/or structure of the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/summary)\n */\n summary: string;\n /**\n * Retrieves a collection of all tBody objects in the table. Objects in this collection are in source order.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/tBodies)\n */\n readonly tBodies: HTMLCollectionOf<HTMLTableSectionElement>;\n /**\n * Retrieves the tFoot object of the table.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/tFoot)\n */\n tFoot: HTMLTableSectionElement | null;\n /**\n * Retrieves the tHead object of the table.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/tHead)\n */\n tHead: HTMLTableSectionElement | null;\n /**\n * Sets or retrieves the width of the object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/width)\n */\n width: string;\n /**\n * Creates an empty caption element in the table.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/createCaption)\n */\n createCaption(): HTMLTableCaptionElement;\n /**\n * Creates an empty tBody element in the table.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/createTBody)\n */\n createTBody(): HTMLTableSectionElement;\n /**\n * Creates an empty tFoot element in the table.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/createTFoot)\n */\n createTFoot(): HTMLTableSectionElement;\n /**\n * Returns the tHead element object if successful, or null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/createTHead)\n */\n createTHead(): HTMLTableSectionElement;\n /**\n * Deletes the caption element and its contents from the table.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/deleteCaption)\n */\n deleteCaption(): void;\n /**\n * Removes the specified row (tr) from the element and from the rows collection.\n * @param index Number that specifies the zero-based position in the rows collection of the row to remove.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/deleteRow)\n */\n deleteRow(index: number): void;\n /**\n * Deletes the tFoot element and its contents from the table.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/deleteTFoot)\n */\n deleteTFoot(): void;\n /**\n * Deletes the tHead element and its contents from the table.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/deleteTHead)\n */\n deleteTHead(): void;\n /**\n * Creates a new row (tr) in the table, and adds the row to the rows collection.\n * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/insertRow)\n */\n insertRow(index?: number): HTMLTableRowElement;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLTableElement: {\n prototype: HTMLTableElement;\n new(): HTMLTableElement;\n};\n\n/** @deprecated prefer HTMLTableCellElement */\ninterface HTMLTableHeaderCellElement extends HTMLTableCellElement {\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableHeaderCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableHeaderCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/**\n * Provides special properties and methods (beyond the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of rows in an HTML table.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement)\n */\ninterface HTMLTableRowElement extends HTMLElement {\n /**\n * Sets or retrieves how the object is aligned with adjacent text.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/align)\n */\n align: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/bgColor)\n */\n bgColor: string;\n /**\n * Retrieves a collection of all cells in the table row.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/cells)\n */\n readonly cells: HTMLCollectionOf<HTMLTableCellElement>;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/ch)\n */\n ch: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/chOff)\n */\n chOff: string;\n /**\n * Retrieves the position of the object in the rows collection for the table.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/rowIndex)\n */\n readonly rowIndex: number;\n /**\n * Retrieves the position of the object in the collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/sectionRowIndex)\n */\n readonly sectionRowIndex: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/vAlign)\n */\n vAlign: string;\n /**\n * Removes the specified cell from the table row, as well as from the cells collection.\n * @param index Number that specifies the zero-based position of the cell to remove from the table row. If no value is provided, the last cell in the cells collection is deleted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/deleteCell)\n */\n deleteCell(index: number): void;\n /**\n * Creates a new cell in the table row, and adds the cell to the cells collection.\n * @param index Number that specifies where to insert the cell in the tr. The default value is -1, which appends the new cell to the end of the cells collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/insertCell)\n */\n insertCell(index?: number): HTMLTableCellElement;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableRowElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableRowElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLTableRowElement: {\n prototype: HTMLTableRowElement;\n new(): HTMLTableRowElement;\n};\n\n/**\n * Provides special properties and methods (beyond the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of sections, that is headers, footers and bodies, in an HTML table.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement)\n */\ninterface HTMLTableSectionElement extends HTMLElement {\n /**\n * Sets or retrieves a value that indicates the table alignment.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/align)\n */\n align: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/ch)\n */\n ch: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/chOff)\n */\n chOff: string;\n /**\n * Sets or retrieves the number of horizontal rows contained in the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/rows)\n */\n readonly rows: HTMLCollectionOf<HTMLTableRowElement>;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/vAlign)\n */\n vAlign: string;\n /**\n * Removes the specified row (tr) from the element and from the rows collection.\n * @param index Number that specifies the zero-based position in the rows collection of the row to remove.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/deleteRow)\n */\n deleteRow(index: number): void;\n /**\n * Creates a new row (tr) in the table, and adds the row to the rows collection.\n * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/insertRow)\n */\n insertRow(index?: number): HTMLTableRowElement;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableSectionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableSectionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLTableSectionElement: {\n prototype: HTMLTableSectionElement;\n new(): HTMLTableSectionElement;\n};\n\n/**\n * Enables access to the contents of an HTML <template> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTemplateElement)\n */\ninterface HTMLTemplateElement extends HTMLElement {\n /**\n * Returns the template contents (a DocumentFragment).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTemplateElement/content)\n */\n readonly content: DocumentFragment;\n shadowRootMode: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTemplateElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTemplateElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLTemplateElement: {\n prototype: HTMLTemplateElement;\n new(): HTMLTemplateElement;\n};\n\n/**\n * Provides special properties and methods for manipulating the layout and presentation of <textarea> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement)\n */\ninterface HTMLTextAreaElement extends HTMLElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/autocomplete) */\n autocomplete: AutoFill;\n /** Sets or retrieves the width of the object. */\n cols: number;\n /** Sets or retrieves the initial contents of the object. */\n defaultValue: string;\n dirName: string;\n disabled: boolean;\n /** Retrieves a reference to the form that the object is embedded in. */\n readonly form: HTMLFormElement | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/labels) */\n readonly labels: NodeListOf<HTMLLabelElement>;\n /** Sets or retrieves the maximum number of characters that the user can enter in a text control. */\n maxLength: number;\n minLength: number;\n /** Sets or retrieves the name of the object. */\n name: string;\n /** Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field. */\n placeholder: string;\n /** Sets or retrieves the value indicated whether the content of the object is read-only. */\n readOnly: boolean;\n /** When present, marks an element that can\'t be submitted without a value. */\n required: boolean;\n /** Sets or retrieves the number of horizontal rows contained in the object. */\n rows: number;\n selectionDirection: "forward" | "backward" | "none";\n /** Gets or sets the end position or offset of a text selection. */\n selectionEnd: number;\n /** Gets or sets the starting position or offset of a text selection. */\n selectionStart: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/textLength) */\n readonly textLength: number;\n /** Retrieves the type of control. */\n readonly type: string;\n /** Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting. */\n readonly validationMessage: string;\n /** Returns a ValidityState object that represents the validity states of an element. */\n readonly validity: ValidityState;\n /** Retrieves or sets the text in the entry field of the textArea element. */\n value: string;\n /** Returns whether an element will successfully validate based on forms validation rules and constraints. */\n readonly willValidate: boolean;\n /** Sets or retrieves how to handle wordwrapping in the object. */\n wrap: string;\n /** Returns whether a form will validate when it is submitted, without having to submit it. */\n checkValidity(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/reportValidity) */\n reportValidity(): boolean;\n /** Highlights the input area of a form element. */\n select(): void;\n /**\n * Sets a custom error message that is displayed when a form is submitted.\n * @param error Sets a custom error message that is displayed when a form is submitted.\n */\n setCustomValidity(error: string): void;\n setRangeText(replacement: string): void;\n setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;\n /**\n * Sets the start and end positions of a selection in a text field.\n * @param start The offset into the text field for the start of the selection.\n * @param end The offset into the text field for the end of the selection.\n * @param direction The direction in which the selection is performed.\n */\n setSelectionRange(start: number | null, end: number | null, direction?: "forward" | "backward" | "none"): void;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTextAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTextAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLTextAreaElement: {\n prototype: HTMLTextAreaElement;\n new(): HTMLTextAreaElement;\n};\n\n/**\n * Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <time> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTimeElement)\n */\ninterface HTMLTimeElement extends HTMLElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTimeElement/dateTime) */\n dateTime: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTimeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTimeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLTimeElement: {\n prototype: HTMLTimeElement;\n new(): HTMLTimeElement;\n};\n\n/**\n * Contains the title for a document. This element inherits all of the properties and methods of the HTMLElement interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTitleElement)\n */\ninterface HTMLTitleElement extends HTMLElement {\n /**\n * Retrieves or sets the text of the object as a string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTitleElement/text)\n */\n text: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTitleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTitleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLTitleElement: {\n prototype: HTMLTitleElement;\n new(): HTMLTitleElement;\n};\n\n/**\n * The HTMLTrackElement\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement)\n */\ninterface HTMLTrackElement extends HTMLElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/default) */\n default: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/kind) */\n kind: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/label) */\n label: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/readyState) */\n readonly readyState: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/src) */\n src: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/srclang) */\n srclang: string;\n /**\n * Returns the TextTrack object corresponding to the text track of the track element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/track)\n */\n readonly track: TextTrack;\n readonly NONE: 0;\n readonly LOADING: 1;\n readonly LOADED: 2;\n readonly ERROR: 3;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTrackElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTrackElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLTrackElement: {\n prototype: HTMLTrackElement;\n new(): HTMLTrackElement;\n readonly NONE: 0;\n readonly LOADING: 1;\n readonly LOADED: 2;\n readonly ERROR: 3;\n};\n\n/**\n * Provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating unordered list elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLUListElement)\n */\ninterface HTMLUListElement extends HTMLElement {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLUListElement/compact)\n */\n compact: boolean;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLUListElement/type)\n */\n type: string;\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLUListElement: {\n prototype: HTMLUListElement;\n new(): HTMLUListElement;\n};\n\n/**\n * An invalid HTML element and derives from the HTMLElement interface, but without implementing any additional properties or methods.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLUnknownElement)\n */\ninterface HTMLUnknownElement extends HTMLElement {\n addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUnknownElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUnknownElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLUnknownElement: {\n prototype: HTMLUnknownElement;\n new(): HTMLUnknownElement;\n};\n\ninterface HTMLVideoElementEventMap extends HTMLMediaElementEventMap {\n "enterpictureinpicture": Event;\n "leavepictureinpicture": Event;\n}\n\n/**\n * Provides special properties and methods for manipulating video objects. It also inherits properties and methods of HTMLMediaElement and HTMLElement.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement)\n */\ninterface HTMLVideoElement extends HTMLMediaElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/disablePictureInPicture) */\n disablePictureInPicture: boolean;\n /**\n * Gets or sets the height of the video element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/height)\n */\n height: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/enterpictureinpicture_event) */\n onenterpictureinpicture: ((this: HTMLVideoElement, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/leavepictureinpicture_event) */\n onleavepictureinpicture: ((this: HTMLVideoElement, ev: Event) => any) | null;\n /** Gets or sets the playsinline of the video element. for example, On iPhone, video elements will now be allowed to play inline, and will not automatically enter fullscreen mode when playback begins. */\n playsInline: boolean;\n /**\n * Gets or sets a URL of an image to display, for example, like a movie poster. This can be a still frame from the video, or another image if no video data is available.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/poster)\n */\n poster: string;\n /**\n * Gets the intrinsic height of a video in CSS pixels, or zero if the dimensions are not known.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/videoHeight)\n */\n readonly videoHeight: number;\n /**\n * Gets the intrinsic width of a video in CSS pixels, or zero if the dimensions are not known.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/videoWidth)\n */\n readonly videoWidth: number;\n /**\n * Gets or sets the width of the video element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/width)\n */\n width: number;\n cancelVideoFrameCallback(handle: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/getVideoPlaybackQuality) */\n getVideoPlaybackQuality(): VideoPlaybackQuality;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/requestPictureInPicture) */\n requestPictureInPicture(): Promise<PictureInPictureWindow>;\n requestVideoFrameCallback(callback: VideoFrameRequestCallback): number;\n addEventListener<K extends keyof HTMLVideoElementEventMap>(type: K, listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof HTMLVideoElementEventMap>(type: K, listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var HTMLVideoElement: {\n prototype: HTMLVideoElement;\n new(): HTMLVideoElement;\n};\n\n/**\n * Events that fire when the fragment identifier of the URL has changed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HashChangeEvent)\n */\ninterface HashChangeEvent extends Event {\n /**\n * Returns the URL of the session history entry that is now current.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HashChangeEvent/newURL)\n */\n readonly newURL: string;\n /**\n * Returns the URL of the session history entry that was previously current.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HashChangeEvent/oldURL)\n */\n readonly oldURL: string;\n}\n\ndeclare var HashChangeEvent: {\n prototype: HashChangeEvent;\n new(type: string, eventInitDict?: HashChangeEventInit): HashChangeEvent;\n};\n\n/**\n * This Fetch API interface allows you to perform various actions on HTTP request and response headers. These actions include retrieving, setting, adding to, and removing. A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs. You can add to this using methods like append() (see Examples.) In all methods of this interface, header names are matched by case-insensitive byte sequence.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers)\n */\ninterface Headers {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/append) */\n append(name: string, value: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/delete) */\n delete(name: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/get) */\n get(name: string): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/getSetCookie) */\n getSetCookie(): string[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/has) */\n has(name: string): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/set) */\n set(name: string, value: string): void;\n forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void;\n}\n\ndeclare var Headers: {\n prototype: Headers;\n new(init?: HeadersInit): Headers;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Highlight) */\ninterface Highlight {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Highlight/priority) */\n priority: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Highlight/type) */\n type: HighlightType;\n forEach(callbackfn: (value: AbstractRange, key: AbstractRange, parent: Highlight) => void, thisArg?: any): void;\n}\n\ndeclare var Highlight: {\n prototype: Highlight;\n new(...initialRanges: AbstractRange[]): Highlight;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HighlightRegistry) */\ninterface HighlightRegistry {\n forEach(callbackfn: (value: Highlight, key: string, parent: HighlightRegistry) => void, thisArg?: any): void;\n}\n\ndeclare var HighlightRegistry: {\n prototype: HighlightRegistry;\n new(): HighlightRegistry;\n};\n\n/**\n * Allows manipulation of the browser session history, that is the pages visited in the tab or frame that the current page is loaded in.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/History)\n */\ninterface History {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/scrollRestoration) */\n scrollRestoration: ScrollRestoration;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/state) */\n readonly state: any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/back) */\n back(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/forward) */\n forward(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/go) */\n go(delta?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/pushState) */\n pushState(data: any, unused: string, url?: string | URL | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/replaceState) */\n replaceState(data: any, unused: string, url?: string | URL | null): void;\n}\n\ndeclare var History: {\n prototype: History;\n new(): History;\n};\n\n/**\n * This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor)\n */\ninterface IDBCursor {\n /**\n * Returns the direction ("next", "nextunique", "prev" or "prevunique") of the cursor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/direction)\n */\n readonly direction: IDBCursorDirection;\n /**\n * Returns the key of the cursor. Throws a "InvalidStateError" DOMException if the cursor is advancing or is finished.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/key)\n */\n readonly key: IDBValidKey;\n /**\n * Returns the effective key of the cursor. Throws a "InvalidStateError" DOMException if the cursor is advancing or is finished.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/primaryKey)\n */\n readonly primaryKey: IDBValidKey;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/request) */\n readonly request: IDBRequest;\n /**\n * Returns the IDBObjectStore or IDBIndex the cursor was opened from.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/source)\n */\n readonly source: IDBObjectStore | IDBIndex;\n /**\n * Advances the cursor through the next count records in range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/advance)\n */\n advance(count: number): void;\n /**\n * Advances the cursor to the next record in range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/continue)\n */\n continue(key?: IDBValidKey): void;\n /**\n * Advances the cursor to the next record in range matching or after key and primaryKey. Throws an "InvalidAccessError" DOMException if the source is not an index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/continuePrimaryKey)\n */\n continuePrimaryKey(key: IDBValidKey, primaryKey: IDBValidKey): void;\n /**\n * Delete the record pointed at by the cursor with a new value.\n *\n * If successful, request\'s result will be undefined.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/delete)\n */\n delete(): IDBRequest<undefined>;\n /**\n * Updated the record pointed at by the cursor with a new value.\n *\n * Throws a "DataError" DOMException if the effective object store uses in-line keys and the key would have changed.\n *\n * If successful, request\'s result will be the record\'s key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/update)\n */\n update(value: any): IDBRequest<IDBValidKey>;\n}\n\ndeclare var IDBCursor: {\n prototype: IDBCursor;\n new(): IDBCursor;\n};\n\n/**\n * This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database. It is the same as the IDBCursor, except that it includes the value property.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursorWithValue)\n */\ninterface IDBCursorWithValue extends IDBCursor {\n /**\n * Returns the cursor\'s current value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursorWithValue/value)\n */\n readonly value: any;\n}\n\ndeclare var IDBCursorWithValue: {\n prototype: IDBCursorWithValue;\n new(): IDBCursorWithValue;\n};\n\ninterface IDBDatabaseEventMap {\n "abort": Event;\n "close": Event;\n "error": Event;\n "versionchange": IDBVersionChangeEvent;\n}\n\n/**\n * This IndexedDB API interface provides a connection to a database; you can use an IDBDatabase object to open a transaction on your database then create, manipulate, and delete objects (data) in that database. The interface provides the only way to get and manage versions of the database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase)\n */\ninterface IDBDatabase extends EventTarget {\n /**\n * Returns the name of the database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/name)\n */\n readonly name: string;\n /**\n * Returns a list of the names of object stores in the database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/objectStoreNames)\n */\n readonly objectStoreNames: DOMStringList;\n onabort: ((this: IDBDatabase, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/close_event) */\n onclose: ((this: IDBDatabase, ev: Event) => any) | null;\n onerror: ((this: IDBDatabase, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/versionchange_event) */\n onversionchange: ((this: IDBDatabase, ev: IDBVersionChangeEvent) => any) | null;\n /**\n * Returns the version of the database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/version)\n */\n readonly version: number;\n /**\n * Closes the connection once all running transactions have finished.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/close)\n */\n close(): void;\n /**\n * Creates a new object store with the given name and options and returns a new IDBObjectStore.\n *\n * Throws a "InvalidStateError" DOMException if not called within an upgrade transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/createObjectStore)\n */\n createObjectStore(name: string, options?: IDBObjectStoreParameters): IDBObjectStore;\n /**\n * Deletes the object store with the given name.\n *\n * Throws a "InvalidStateError" DOMException if not called within an upgrade transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/deleteObjectStore)\n */\n deleteObjectStore(name: string): void;\n /**\n * 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.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/transaction)\n */\n transaction(storeNames: string | string[], mode?: IDBTransactionMode, options?: IDBTransactionOptions): IDBTransaction;\n addEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBDatabase: {\n prototype: IDBDatabase;\n new(): IDBDatabase;\n};\n\n/**\n * In the following code snippet, we make a request to open a database, and include handlers for the success and error cases. For a full working example, see our To-do Notifications app (view example live.)\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory)\n */\ninterface IDBFactory {\n /**\n * Compares two values as keys. Returns -1 if key1 precedes key2, 1 if key2 precedes key1, and 0 if the keys are equal.\n *\n * Throws a "DataError" DOMException if either input is not a valid key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/cmp)\n */\n cmp(first: any, second: any): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/databases) */\n databases(): Promise<IDBDatabaseInfo[]>;\n /**\n * Attempts to delete the named database. If the database already exists and there are open connections that don\'t close in response to a versionchange event, the request will be blocked until all they close. If the request is successful request\'s result will be null.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/deleteDatabase)\n */\n deleteDatabase(name: string): IDBOpenDBRequest;\n /**\n * Attempts to open a connection to the named database with the current version, or 1 if it does not already exist. If the request is successful request\'s result will be the connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/open)\n */\n open(name: string, version?: number): IDBOpenDBRequest;\n}\n\ndeclare var IDBFactory: {\n prototype: IDBFactory;\n new(): IDBFactory;\n};\n\n/**\n * IDBIndex interface of the IndexedDB API provides asynchronous access to an index in a database. An index is a kind of object store for looking up records in another object store, called the referenced object store. You use this interface to retrieve data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex)\n */\ninterface IDBIndex {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/keyPath) */\n readonly keyPath: string | string[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/multiEntry) */\n readonly multiEntry: boolean;\n /**\n * Returns the name of the index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/name)\n */\n name: string;\n /**\n * Returns the IDBObjectStore the index belongs to.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/objectStore)\n */\n readonly objectStore: IDBObjectStore;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/unique) */\n readonly unique: boolean;\n /**\n * Retrieves the number of records matching the given key or key range in query.\n *\n * If successful, request\'s result will be the count.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/count)\n */\n count(query?: IDBValidKey | IDBKeyRange): IDBRequest<number>;\n /**\n * Retrieves the value of the first record matching the given key or key range in query.\n *\n * If successful, request\'s result will be the value, or undefined if there was no matching record.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/get)\n */\n get(query: IDBValidKey | IDBKeyRange): IDBRequest<any>;\n /**\n * Retrieves the values of the records matching the given key or key range in query (up to count if given).\n *\n * If successful, request\'s result will be an Array of the values.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getAll)\n */\n getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;\n /**\n * Retrieves the keys of records matching the given key or key range in query (up to count if given).\n *\n * If successful, request\'s result will be an Array of the keys.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getAllKeys)\n */\n getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;\n /**\n * Retrieves the key of the first record matching the given key or key range in query.\n *\n * If successful, request\'s result will be the key, or undefined if there was no matching record.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getKey)\n */\n getKey(query: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;\n /**\n * Opens a cursor over the records matching query, ordered by direction. If query is null, all records in index are matched.\n *\n * If successful, request\'s result will be an IDBCursorWithValue, or null if there were no matching records.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/openCursor)\n */\n openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;\n /**\n * Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in index are matched.\n *\n * If successful, request\'s result will be an IDBCursor, or null if there were no matching records.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/openKeyCursor)\n */\n openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;\n}\n\ndeclare var IDBIndex: {\n prototype: IDBIndex;\n new(): IDBIndex;\n};\n\n/**\n * A key range can be a single value or a range with upper and lower bounds or endpoints. If the key range has both upper and lower bounds, then it is bounded; if it has no bounds, it is unbounded. A bounded key range can either be open (the endpoints are excluded) or closed (the endpoints are included). To retrieve all keys within a certain range, you can use the following code constructs:\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange)\n */\ninterface IDBKeyRange {\n /**\n * Returns lower bound, or undefined if none.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lower)\n */\n readonly lower: any;\n /**\n * Returns true if the lower open flag is set, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lowerOpen)\n */\n readonly lowerOpen: boolean;\n /**\n * Returns upper bound, or undefined if none.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upper)\n */\n readonly upper: any;\n /**\n * Returns true if the upper open flag is set, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upperOpen)\n */\n readonly upperOpen: boolean;\n /**\n * Returns true if key is included in the range, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/includes)\n */\n includes(key: any): boolean;\n}\n\ndeclare var IDBKeyRange: {\n prototype: IDBKeyRange;\n new(): IDBKeyRange;\n /**\n * Returns a new IDBKeyRange spanning from lower to upper. If lowerOpen is true, lower is not included in the range. If upperOpen is true, upper is not included in the range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/bound_static)\n */\n bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;\n /**\n * Returns a new IDBKeyRange starting at key with no upper bound. If open is true, key is not included in the range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lowerBound_static)\n */\n lowerBound(lower: any, open?: boolean): IDBKeyRange;\n /**\n * Returns a new IDBKeyRange spanning only key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/only_static)\n */\n only(value: any): IDBKeyRange;\n /**\n * Returns a new IDBKeyRange with no lower bound and ending at key. If open is true, key is not included in the range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upperBound_static)\n */\n upperBound(upper: any, open?: boolean): IDBKeyRange;\n};\n\n/**\n * This example shows a variety of different uses of object stores, from updating the data structure with IDBObjectStore.createIndex inside an onupgradeneeded function, to adding a new item to our object store with IDBObjectStore.add. For a full working example, see our To-do Notifications app (view example live.)\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore)\n */\ninterface IDBObjectStore {\n /**\n * Returns true if the store has a key generator, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/autoIncrement)\n */\n readonly autoIncrement: boolean;\n /**\n * Returns a list of the names of indexes in the store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/indexNames)\n */\n readonly indexNames: DOMStringList;\n /**\n * Returns the key path of the store, or null if none.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/keyPath)\n */\n readonly keyPath: string | string[];\n /**\n * Returns the name of the store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/name)\n */\n name: string;\n /**\n * Returns the associated transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/transaction)\n */\n readonly transaction: IDBTransaction;\n /**\n * Adds or updates a record in store with the given value and key.\n *\n * If the store uses in-line keys and key is specified a "DataError" DOMException will be thrown.\n *\n * If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request\'s error set to a "ConstraintError" DOMException.\n *\n * If successful, request\'s result will be the record\'s key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/add)\n */\n add(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;\n /**\n * Deletes all records in store.\n *\n * If successful, request\'s result will be undefined.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/clear)\n */\n clear(): IDBRequest<undefined>;\n /**\n * Retrieves the number of records matching the given key or key range in query.\n *\n * If successful, request\'s result will be the count.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/count)\n */\n count(query?: IDBValidKey | IDBKeyRange): IDBRequest<number>;\n /**\n * 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.\n *\n * Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/createIndex)\n */\n createIndex(name: string, keyPath: string | string[], options?: IDBIndexParameters): IDBIndex;\n /**\n * Deletes records in store with the given key or in the given key range in query.\n *\n * If successful, request\'s result will be undefined.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/delete)\n */\n delete(query: IDBValidKey | IDBKeyRange): IDBRequest<undefined>;\n /**\n * Deletes the index in store with the given name.\n *\n * Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/deleteIndex)\n */\n deleteIndex(name: string): void;\n /**\n * Retrieves the value of the first record matching the given key or key range in query.\n *\n * If successful, request\'s result will be the value, or undefined if there was no matching record.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/get)\n */\n get(query: IDBValidKey | IDBKeyRange): IDBRequest<any>;\n /**\n * Retrieves the values of the records matching the given key or key range in query (up to count if given).\n *\n * If successful, request\'s result will be an Array of the values.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getAll)\n */\n getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;\n /**\n * Retrieves the keys of records matching the given key or key range in query (up to count if given).\n *\n * If successful, request\'s result will be an Array of the keys.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getAllKeys)\n */\n getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;\n /**\n * Retrieves the key of the first record matching the given key or key range in query.\n *\n * If successful, request\'s result will be the key, or undefined if there was no matching record.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getKey)\n */\n getKey(query: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/index) */\n index(name: string): IDBIndex;\n /**\n * Opens a cursor over the records matching query, ordered by direction. If query is null, all records in store are matched.\n *\n * If successful, request\'s result will be an IDBCursorWithValue pointing at the first matching record, or null if there were no matching records.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/openCursor)\n */\n openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;\n /**\n * Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in store are matched.\n *\n * If successful, request\'s result will be an IDBCursor pointing at the first matching record, or null if there were no matching records.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/openKeyCursor)\n */\n openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;\n /**\n * Adds or updates a record in store with the given value and key.\n *\n * If the store uses in-line keys and key is specified a "DataError" DOMException will be thrown.\n *\n * If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request\'s error set to a "ConstraintError" DOMException.\n *\n * If successful, request\'s result will be the record\'s key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/put)\n */\n put(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;\n}\n\ndeclare var IDBObjectStore: {\n prototype: IDBObjectStore;\n new(): IDBObjectStore;\n};\n\ninterface IDBOpenDBRequestEventMap extends IDBRequestEventMap {\n "blocked": IDBVersionChangeEvent;\n "upgradeneeded": IDBVersionChangeEvent;\n}\n\n/**\n * Also inherits methods from its parents IDBRequest and EventTarget.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest)\n */\ninterface IDBOpenDBRequest extends IDBRequest<IDBDatabase> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest/blocked_event) */\n onblocked: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest/upgradeneeded_event) */\n onupgradeneeded: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;\n addEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBOpenDBRequest: {\n prototype: IDBOpenDBRequest;\n new(): IDBOpenDBRequest;\n};\n\ninterface IDBRequestEventMap {\n "error": Event;\n "success": Event;\n}\n\n/**\n * The request object does not initially contain any information about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the IDBRequest instance.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest)\n */\ninterface IDBRequest<T = any> extends EventTarget {\n /**\n * When a request is completed, returns the error (a DOMException), or null if the request succeeded. Throws a "InvalidStateError" DOMException if the request is still pending.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/error)\n */\n readonly error: DOMException | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/error_event) */\n onerror: ((this: IDBRequest<T>, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/success_event) */\n onsuccess: ((this: IDBRequest<T>, ev: Event) => any) | null;\n /**\n * Returns "pending" until a request is complete, then returns "done".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/readyState)\n */\n readonly readyState: IDBRequestReadyState;\n /**\n * When a request is completed, returns the result, or undefined if the request failed. Throws a "InvalidStateError" DOMException if the request is still pending.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/result)\n */\n readonly result: T;\n /**\n * Returns the IDBObjectStore, IDBIndex, or IDBCursor the request was made against, or null if is was an open request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/source)\n */\n readonly source: IDBObjectStore | IDBIndex | IDBCursor;\n /**\n * Returns the IDBTransaction the request was made within. If this as an open request, then it returns an upgrade transaction while it is running, or null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/transaction)\n */\n readonly transaction: IDBTransaction | null;\n addEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBRequest: {\n prototype: IDBRequest;\n new(): IDBRequest;\n};\n\ninterface IDBTransactionEventMap {\n "abort": Event;\n "complete": Event;\n "error": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction) */\ninterface IDBTransaction extends EventTarget {\n /**\n * Returns the transaction\'s connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/db)\n */\n readonly db: IDBDatabase;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/durability) */\n readonly durability: IDBTransactionDurability;\n /**\n * If the transaction was aborted, returns the error (a DOMException) providing the reason.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/error)\n */\n readonly error: DOMException | null;\n /**\n * Returns the mode the transaction was created with ("readonly" or "readwrite"), or "versionchange" for an upgrade transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/mode)\n */\n readonly mode: IDBTransactionMode;\n /**\n * Returns a list of the names of object stores in the transaction\'s scope. For an upgrade transaction this is all object stores in the database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/objectStoreNames)\n */\n readonly objectStoreNames: DOMStringList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/abort_event) */\n onabort: ((this: IDBTransaction, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/complete_event) */\n oncomplete: ((this: IDBTransaction, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/error_event) */\n onerror: ((this: IDBTransaction, ev: Event) => any) | null;\n /**\n * Aborts the transaction. All pending requests will fail with a "AbortError" DOMException and all changes made to the database will be reverted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/abort)\n */\n abort(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/commit) */\n commit(): void;\n /**\n * Returns an IDBObjectStore in the transaction\'s scope.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/objectStore)\n */\n objectStore(name: string): IDBObjectStore;\n addEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBTransaction: {\n prototype: IDBTransaction;\n new(): IDBTransaction;\n};\n\n/**\n * This IndexedDB API interface indicates that the version of the database has changed, as the result of an IDBOpenDBRequest.onupgradeneeded event handler function.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent)\n */\ninterface IDBVersionChangeEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent/newVersion) */\n readonly newVersion: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent/oldVersion) */\n readonly oldVersion: number;\n}\n\ndeclare var IDBVersionChangeEvent: {\n prototype: IDBVersionChangeEvent;\n new(type: string, eventInitDict?: IDBVersionChangeEventInit): IDBVersionChangeEvent;\n};\n\n/**\n * The IIRFilterNode interface of the Web Audio API is a AudioNode processor which implements a general infinite impulse response (IIR) filter; this type of filter can be used to implement tone control devices and graphic equalizers as well. It lets the parameters of the filter response be specified, so that it can be tuned as needed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IIRFilterNode)\n */\ninterface IIRFilterNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IIRFilterNode/getFrequencyResponse) */\n getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void;\n}\n\ndeclare var IIRFilterNode: {\n prototype: IIRFilterNode;\n new(context: BaseAudioContext, options: IIRFilterOptions): IIRFilterNode;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IdleDeadline) */\ninterface IdleDeadline {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IdleDeadline/didTimeout) */\n readonly didTimeout: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IdleDeadline/timeRemaining) */\n timeRemaining(): DOMHighResTimeStamp;\n}\n\ndeclare var IdleDeadline: {\n prototype: IdleDeadline;\n new(): IdleDeadline;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap) */\ninterface ImageBitmap {\n /**\n * Returns the intrinsic height of the image, in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/height)\n */\n readonly height: number;\n /**\n * Returns the intrinsic width of the image, in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/width)\n */\n readonly width: number;\n /**\n * Releases imageBitmap\'s underlying bitmap data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/close)\n */\n close(): void;\n}\n\ndeclare var ImageBitmap: {\n prototype: ImageBitmap;\n new(): ImageBitmap;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmapRenderingContext) */\ninterface ImageBitmapRenderingContext {\n /** Returns the canvas element that the context is bound to. */\n readonly canvas: HTMLCanvasElement | OffscreenCanvas;\n /**\n * Transfers the underlying bitmap data from imageBitmap to context, and the bitmap becomes the contents of the canvas element to which context is bound.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmapRenderingContext/transferFromImageBitmap)\n */\n transferFromImageBitmap(bitmap: ImageBitmap | null): void;\n}\n\ndeclare var ImageBitmapRenderingContext: {\n prototype: ImageBitmapRenderingContext;\n new(): ImageBitmapRenderingContext;\n};\n\n/**\n * The underlying pixel data of an area of a <canvas> element. It is created using the ImageData() constructor or creator methods on the CanvasRenderingContext2D object associated with a canvas: createImageData() and getImageData(). It can also be used to set a part of the canvas by using putImageData().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData)\n */\ninterface ImageData {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/colorSpace) */\n readonly colorSpace: PredefinedColorSpace;\n /**\n * Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/data)\n */\n readonly data: Uint8ClampedArray;\n /**\n * Returns the actual dimensions of the data in the ImageData object, in pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/height)\n */\n readonly height: number;\n /**\n * Returns the actual dimensions of the data in the ImageData object, in pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/width)\n */\n readonly width: number;\n}\n\ndeclare var ImageData: {\n prototype: ImageData;\n new(sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n new(data: Uint8ClampedArray, sw: number, sh?: number, settings?: ImageDataSettings): ImageData;\n};\n\ninterface InnerHTML {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/innerHTML) */\n innerHTML: string;\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputDeviceInfo)\n */\ninterface InputDeviceInfo extends MediaDeviceInfo {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputDeviceInfo/getCapabilities) */\n getCapabilities(): MediaTrackCapabilities;\n}\n\ndeclare var InputDeviceInfo: {\n prototype: InputDeviceInfo;\n new(): InputDeviceInfo;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent) */\ninterface InputEvent extends UIEvent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/data) */\n readonly data: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/dataTransfer) */\n readonly dataTransfer: DataTransfer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/inputType) */\n readonly inputType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/isComposing) */\n readonly isComposing: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/getTargetRanges) */\n getTargetRanges(): StaticRange[];\n}\n\ndeclare var InputEvent: {\n prototype: InputEvent;\n new(type: string, eventInitDict?: InputEventInit): InputEvent;\n};\n\n/**\n * provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document\'s viewport.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver)\n */\ninterface IntersectionObserver {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/root) */\n readonly root: Element | Document | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/rootMargin) */\n readonly rootMargin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/thresholds) */\n readonly thresholds: ReadonlyArray<number>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/disconnect) */\n disconnect(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/observe) */\n observe(target: Element): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/takeRecords) */\n takeRecords(): IntersectionObserverEntry[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/unobserve) */\n unobserve(target: Element): void;\n}\n\ndeclare var IntersectionObserver: {\n prototype: IntersectionObserver;\n new(callback: IntersectionObserverCallback, options?: IntersectionObserverInit): IntersectionObserver;\n};\n\n/**\n * This Intersection Observer API interface describes the intersection between the target element and its root container at a specific moment of transition.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry)\n */\ninterface IntersectionObserverEntry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/boundingClientRect) */\n readonly boundingClientRect: DOMRectReadOnly;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/intersectionRatio) */\n readonly intersectionRatio: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/intersectionRect) */\n readonly intersectionRect: DOMRectReadOnly;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/isIntersecting) */\n readonly isIntersecting: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/rootBounds) */\n readonly rootBounds: DOMRectReadOnly | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/target) */\n readonly target: Element;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/time) */\n readonly time: DOMHighResTimeStamp;\n}\n\ndeclare var IntersectionObserverEntry: {\n prototype: IntersectionObserverEntry;\n new(intersectionObserverEntryInit: IntersectionObserverEntryInit): IntersectionObserverEntry;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KHR_parallel_shader_compile) */\ninterface KHR_parallel_shader_compile {\n readonly COMPLETION_STATUS_KHR: 0x91B1;\n}\n\n/**\n * KeyboardEvent objects describe a user interaction with the keyboard; each event describes a single interaction between the user and a key (or combination of a key with modifier keys) on the keyboard.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent)\n */\ninterface KeyboardEvent extends UIEvent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/altKey) */\n readonly altKey: boolean;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/charCode)\n */\n readonly charCode: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/code) */\n readonly code: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/ctrlKey) */\n readonly ctrlKey: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/isComposing) */\n readonly isComposing: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/key) */\n readonly key: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/keyCode)\n */\n readonly keyCode: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/location) */\n readonly location: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/metaKey) */\n readonly metaKey: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/repeat) */\n readonly repeat: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/shiftKey) */\n readonly shiftKey: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/getModifierState) */\n getModifierState(keyArg: string): boolean;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/initKeyboardEvent)\n */\n initKeyboardEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, viewArg?: Window | null, keyArg?: string, locationArg?: number, ctrlKey?: boolean, altKey?: boolean, shiftKey?: boolean, metaKey?: boolean): void;\n readonly DOM_KEY_LOCATION_STANDARD: 0x00;\n readonly DOM_KEY_LOCATION_LEFT: 0x01;\n readonly DOM_KEY_LOCATION_RIGHT: 0x02;\n readonly DOM_KEY_LOCATION_NUMPAD: 0x03;\n}\n\ndeclare var KeyboardEvent: {\n prototype: KeyboardEvent;\n new(type: string, eventInitDict?: KeyboardEventInit): KeyboardEvent;\n readonly DOM_KEY_LOCATION_STANDARD: 0x00;\n readonly DOM_KEY_LOCATION_LEFT: 0x01;\n readonly DOM_KEY_LOCATION_RIGHT: 0x02;\n readonly DOM_KEY_LOCATION_NUMPAD: 0x03;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect) */\ninterface KeyframeEffect extends AnimationEffect {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/composite) */\n composite: CompositeOperation;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/iterationComposite) */\n iterationComposite: IterationCompositeOperation;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/pseudoElement) */\n pseudoElement: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/target) */\n target: Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/getKeyframes) */\n getKeyframes(): ComputedKeyframe[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/setKeyframes) */\n setKeyframes(keyframes: Keyframe[] | PropertyIndexedKeyframes | null): void;\n}\n\ndeclare var KeyframeEffect: {\n prototype: KeyframeEffect;\n new(target: Element | null, keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeEffectOptions): KeyframeEffect;\n new(source: KeyframeEffect): KeyframeEffect;\n};\n\ninterface LinkStyle {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/sheet) */\n readonly sheet: CSSStyleSheet | null;\n}\n\n/**\n * The location (URL) of the object it is linked to. Changes done on it are reflected on the object it relates to. Both the Document and Window interface have such a linked Location, accessible via Document.location and Window.location respectively.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location)\n */\ninterface Location {\n /**\n * Returns a DOMStringList object listing the origins of the ancestor browsing contexts, from the parent browsing context to the top-level browsing context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/ancestorOrigins)\n */\n readonly ancestorOrigins: DOMStringList;\n /**\n * Returns the Location object\'s URL\'s fragment (includes leading "#" if non-empty).\n *\n * Can be set, to navigate to the same URL with a changed fragment (ignores leading "#").\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/hash)\n */\n hash: string;\n /**\n * Returns the Location object\'s URL\'s host and port (if different from the default port for the scheme).\n *\n * Can be set, to navigate to the same URL with a changed host and port.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/host)\n */\n host: string;\n /**\n * Returns the Location object\'s URL\'s host.\n *\n * Can be set, to navigate to the same URL with a changed host.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/hostname)\n */\n hostname: string;\n /**\n * Returns the Location object\'s URL.\n *\n * Can be set, to navigate to the given URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/href)\n */\n href: string;\n toString(): string;\n /**\n * Returns the Location object\'s URL\'s origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/origin)\n */\n readonly origin: string;\n /**\n * Returns the Location object\'s URL\'s path.\n *\n * Can be set, to navigate to the same URL with a changed path.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/pathname)\n */\n pathname: string;\n /**\n * Returns the Location object\'s URL\'s port.\n *\n * Can be set, to navigate to the same URL with a changed port.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/port)\n */\n port: string;\n /**\n * Returns the Location object\'s URL\'s scheme.\n *\n * Can be set, to navigate to the same URL with a changed scheme.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/protocol)\n */\n protocol: string;\n /**\n * Returns the Location object\'s URL\'s query (includes leading "?" if non-empty).\n *\n * Can be set, to navigate to the same URL with a changed query (ignores leading "?").\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/search)\n */\n search: string;\n /**\n * Navigates to the given URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/assign)\n */\n assign(url: string | URL): void;\n /**\n * Reloads the current page.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/reload)\n */\n reload(): void;\n /**\n * Removes the current page from the session history and navigates to the given URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/replace)\n */\n replace(url: string | URL): void;\n}\n\ndeclare var Location: {\n prototype: Location;\n new(): Location;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock)\n */\ninterface Lock {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock/mode) */\n readonly mode: LockMode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock/name) */\n readonly name: string;\n}\n\ndeclare var Lock: {\n prototype: Lock;\n new(): Lock;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager)\n */\ninterface LockManager {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/query) */\n query(): Promise<LockManagerSnapshot>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/request) */\n request(name: string, callback: LockGrantedCallback): Promise<any>;\n request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;\n}\n\ndeclare var LockManager: {\n prototype: LockManager;\n new(): LockManager;\n};\n\ninterface MIDIAccessEventMap {\n "statechange": Event;\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess)\n */\ninterface MIDIAccess extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess/inputs) */\n readonly inputs: MIDIInputMap;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess/statechange_event) */\n onstatechange: ((this: MIDIAccess, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess/outputs) */\n readonly outputs: MIDIOutputMap;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess/sysexEnabled) */\n readonly sysexEnabled: boolean;\n addEventListener<K extends keyof MIDIAccessEventMap>(type: K, listener: (this: MIDIAccess, ev: MIDIAccessEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MIDIAccessEventMap>(type: K, listener: (this: MIDIAccess, ev: MIDIAccessEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MIDIAccess: {\n prototype: MIDIAccess;\n new(): MIDIAccess;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIConnectionEvent)\n */\ninterface MIDIConnectionEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIConnectionEvent/port) */\n readonly port: MIDIPort | null;\n}\n\ndeclare var MIDIConnectionEvent: {\n prototype: MIDIConnectionEvent;\n new(type: string, eventInitDict?: MIDIConnectionEventInit): MIDIConnectionEvent;\n};\n\ninterface MIDIInputEventMap extends MIDIPortEventMap {\n "midimessage": MIDIMessageEvent;\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIInput)\n */\ninterface MIDIInput extends MIDIPort {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIInput/midimessage_event) */\n onmidimessage: ((this: MIDIInput, ev: MIDIMessageEvent) => any) | null;\n addEventListener<K extends keyof MIDIInputEventMap>(type: K, listener: (this: MIDIInput, ev: MIDIInputEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MIDIInputEventMap>(type: K, listener: (this: MIDIInput, ev: MIDIInputEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MIDIInput: {\n prototype: MIDIInput;\n new(): MIDIInput;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIInputMap)\n */\ninterface MIDIInputMap {\n forEach(callbackfn: (value: MIDIInput, key: string, parent: MIDIInputMap) => void, thisArg?: any): void;\n}\n\ndeclare var MIDIInputMap: {\n prototype: MIDIInputMap;\n new(): MIDIInputMap;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIMessageEvent)\n */\ninterface MIDIMessageEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIMessageEvent/data) */\n readonly data: Uint8Array | null;\n}\n\ndeclare var MIDIMessageEvent: {\n prototype: MIDIMessageEvent;\n new(type: string, eventInitDict?: MIDIMessageEventInit): MIDIMessageEvent;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIOutput)\n */\ninterface MIDIOutput extends MIDIPort {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIOutput/send) */\n send(data: number[], timestamp?: DOMHighResTimeStamp): void;\n addEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIOutput, ev: MIDIPortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIOutput, ev: MIDIPortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MIDIOutput: {\n prototype: MIDIOutput;\n new(): MIDIOutput;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIOutputMap)\n */\ninterface MIDIOutputMap {\n forEach(callbackfn: (value: MIDIOutput, key: string, parent: MIDIOutputMap) => void, thisArg?: any): void;\n}\n\ndeclare var MIDIOutputMap: {\n prototype: MIDIOutputMap;\n new(): MIDIOutputMap;\n};\n\ninterface MIDIPortEventMap {\n "statechange": MIDIConnectionEvent;\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort)\n */\ninterface MIDIPort extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/connection) */\n readonly connection: MIDIPortConnectionState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/id) */\n readonly id: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/manufacturer) */\n readonly manufacturer: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/name) */\n readonly name: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/statechange_event) */\n onstatechange: ((this: MIDIPort, ev: MIDIConnectionEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/state) */\n readonly state: MIDIPortDeviceState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/type) */\n readonly type: MIDIPortType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/version) */\n readonly version: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/close) */\n close(): Promise<MIDIPort>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/open) */\n open(): Promise<MIDIPort>;\n addEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIPort, ev: MIDIPortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIPort, ev: MIDIPortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MIDIPort: {\n prototype: MIDIPort;\n new(): MIDIPort;\n};\n\ninterface MathMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MathMLElement) */\ninterface MathMLElement extends Element, ElementCSSInlineStyle, GlobalEventHandlers, HTMLOrSVGElement {\n addEventListener<K extends keyof MathMLElementEventMap>(type: K, listener: (this: MathMLElement, ev: MathMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MathMLElementEventMap>(type: K, listener: (this: MathMLElement, ev: MathMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MathMLElement: {\n prototype: MathMLElement;\n new(): MathMLElement;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities) */\ninterface MediaCapabilities {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities/decodingInfo) */\n decodingInfo(configuration: MediaDecodingConfiguration): Promise<MediaCapabilitiesDecodingInfo>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities/encodingInfo) */\n encodingInfo(configuration: MediaEncodingConfiguration): Promise<MediaCapabilitiesEncodingInfo>;\n}\n\ndeclare var MediaCapabilities: {\n prototype: MediaCapabilities;\n new(): MediaCapabilities;\n};\n\n/**\n * The MediaDevicesInfo interface contains information that describes a single media input or output device.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo)\n */\ninterface MediaDeviceInfo {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/deviceId) */\n readonly deviceId: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/groupId) */\n readonly groupId: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/kind) */\n readonly kind: MediaDeviceKind;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/label) */\n readonly label: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/toJSON) */\n toJSON(): any;\n}\n\ndeclare var MediaDeviceInfo: {\n prototype: MediaDeviceInfo;\n new(): MediaDeviceInfo;\n};\n\ninterface MediaDevicesEventMap {\n "devicechange": Event;\n}\n\n/**\n * Provides access to connected media input devices like cameras and microphones, as well as screen sharing. In essence, it lets you obtain access to any hardware source of media data.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices)\n */\ninterface MediaDevices extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/devicechange_event) */\n ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/enumerateDevices) */\n enumerateDevices(): Promise<MediaDeviceInfo[]>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/getDisplayMedia) */\n getDisplayMedia(options?: DisplayMediaStreamOptions): Promise<MediaStream>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/getSupportedConstraints) */\n getSupportedConstraints(): MediaTrackSupportedConstraints;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/getUserMedia) */\n getUserMedia(constraints?: MediaStreamConstraints): Promise<MediaStream>;\n addEventListener<K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MediaDevices: {\n prototype: MediaDevices;\n new(): MediaDevices;\n};\n\n/**\n * A MediaElementSourceNode has no inputs and exactly one output, and is created using the AudioContext.createMediaElementSource method. The amount of channels in the output equals the number of channels of the audio referenced by the HTMLMediaElement used in the creation of the node, or is 1 if the HTMLMediaElement has no audio.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaElementAudioSourceNode)\n */\ninterface MediaElementAudioSourceNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaElementAudioSourceNode/mediaElement) */\n readonly mediaElement: HTMLMediaElement;\n}\n\ndeclare var MediaElementAudioSourceNode: {\n prototype: MediaElementAudioSourceNode;\n new(context: AudioContext, options: MediaElementAudioSourceOptions): MediaElementAudioSourceNode;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaEncryptedEvent) */\ninterface MediaEncryptedEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaEncryptedEvent/initData) */\n readonly initData: ArrayBuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaEncryptedEvent/initDataType) */\n readonly initDataType: string;\n}\n\ndeclare var MediaEncryptedEvent: {\n prototype: MediaEncryptedEvent;\n new(type: string, eventInitDict?: MediaEncryptedEventInit): MediaEncryptedEvent;\n};\n\n/**\n * An error which occurred while handling media in an HTML media element based on HTMLMediaElement, such as <audio> or <video>.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaError)\n */\ninterface MediaError {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaError/code) */\n readonly code: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaError/message) */\n readonly message: string;\n readonly MEDIA_ERR_ABORTED: 1;\n readonly MEDIA_ERR_NETWORK: 2;\n readonly MEDIA_ERR_DECODE: 3;\n readonly MEDIA_ERR_SRC_NOT_SUPPORTED: 4;\n}\n\ndeclare var MediaError: {\n prototype: MediaError;\n new(): MediaError;\n readonly MEDIA_ERR_ABORTED: 1;\n readonly MEDIA_ERR_NETWORK: 2;\n readonly MEDIA_ERR_DECODE: 3;\n readonly MEDIA_ERR_SRC_NOT_SUPPORTED: 4;\n};\n\n/**\n * This EncryptedMediaExtensions API interface contains the content and related data when the content decryption module generates a message for the session.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyMessageEvent)\n */\ninterface MediaKeyMessageEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyMessageEvent/message) */\n readonly message: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyMessageEvent/messageType) */\n readonly messageType: MediaKeyMessageType;\n}\n\ndeclare var MediaKeyMessageEvent: {\n prototype: MediaKeyMessageEvent;\n new(type: string, eventInitDict: MediaKeyMessageEventInit): MediaKeyMessageEvent;\n};\n\ninterface MediaKeySessionEventMap {\n "keystatuseschange": Event;\n "message": MediaKeyMessageEvent;\n}\n\n/**\n * This EncryptedMediaExtensions API interface represents a context for message exchange with a content decryption module (CDM).\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession)\n */\ninterface MediaKeySession extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/closed) */\n readonly closed: Promise<MediaKeySessionClosedReason>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/expiration) */\n readonly expiration: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/keyStatuses) */\n readonly keyStatuses: MediaKeyStatusMap;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/keystatuseschange_event) */\n onkeystatuseschange: ((this: MediaKeySession, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/message_event) */\n onmessage: ((this: MediaKeySession, ev: MediaKeyMessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/sessionId) */\n readonly sessionId: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/close) */\n close(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/generateRequest) */\n generateRequest(initDataType: string, initData: BufferSource): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/load) */\n load(sessionId: string): Promise<boolean>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/remove) */\n remove(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/update) */\n update(response: BufferSource): Promise<void>;\n addEventListener<K extends keyof MediaKeySessionEventMap>(type: K, listener: (this: MediaKeySession, ev: MediaKeySessionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MediaKeySessionEventMap>(type: K, listener: (this: MediaKeySession, ev: MediaKeySessionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MediaKeySession: {\n prototype: MediaKeySession;\n new(): MediaKeySession;\n};\n\n/**\n * This EncryptedMediaExtensions API interface is a read-only map of media key statuses by key IDs.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap)\n */\ninterface MediaKeyStatusMap {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/size) */\n readonly size: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/get) */\n get(keyId: BufferSource): MediaKeyStatus | undefined;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/has) */\n has(keyId: BufferSource): boolean;\n forEach(callbackfn: (value: MediaKeyStatus, key: BufferSource, parent: MediaKeyStatusMap) => void, thisArg?: any): void;\n}\n\ndeclare var MediaKeyStatusMap: {\n prototype: MediaKeyStatusMap;\n new(): MediaKeyStatusMap;\n};\n\n/**\n * This EncryptedMediaExtensions API interface provides access to a Key System for decryption and/or a content protection provider. You can request an instance of this object using the Navigator.requestMediaKeySystemAccess method.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySystemAccess)\n */\ninterface MediaKeySystemAccess {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySystemAccess/keySystem) */\n readonly keySystem: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySystemAccess/createMediaKeys) */\n createMediaKeys(): Promise<MediaKeys>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySystemAccess/getConfiguration) */\n getConfiguration(): MediaKeySystemConfiguration;\n}\n\ndeclare var MediaKeySystemAccess: {\n prototype: MediaKeySystemAccess;\n new(): MediaKeySystemAccess;\n};\n\n/**\n * This EncryptedMediaExtensions API interface the represents a set of keys that an associated HTMLMediaElement can use for decryption of media data during playback.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeys)\n */\ninterface MediaKeys {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeys/createSession) */\n createSession(sessionType?: MediaKeySessionType): MediaKeySession;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeys/setServerCertificate) */\n setServerCertificate(serverCertificate: BufferSource): Promise<boolean>;\n}\n\ndeclare var MediaKeys: {\n prototype: MediaKeys;\n new(): MediaKeys;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList) */\ninterface MediaList {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/mediaText) */\n mediaText: string;\n toString(): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/appendMedium) */\n appendMedium(medium: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/deleteMedium) */\n deleteMedium(medium: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/item) */\n item(index: number): string | null;\n [index: number]: string;\n}\n\ndeclare var MediaList: {\n prototype: MediaList;\n new(): MediaList;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata) */\ninterface MediaMetadata {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata/album) */\n album: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata/artist) */\n artist: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata/artwork) */\n artwork: ReadonlyArray<MediaImage>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata/title) */\n title: string;\n}\n\ndeclare var MediaMetadata: {\n prototype: MediaMetadata;\n new(init?: MediaMetadataInit): MediaMetadata;\n};\n\ninterface MediaQueryListEventMap {\n "change": MediaQueryListEvent;\n}\n\n/**\n * Stores information on a media query applied to a document, and handles sending notifications to listeners when the media query state change (i.e. when the media query test starts or stops evaluating to true).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList)\n */\ninterface MediaQueryList extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/matches) */\n readonly matches: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/media) */\n readonly media: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/change_event) */\n onchange: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/addListener)\n */\n addListener(callback: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null): void;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/removeListener)\n */\n removeListener(callback: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null): void;\n addEventListener<K extends keyof MediaQueryListEventMap>(type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MediaQueryListEventMap>(type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MediaQueryList: {\n prototype: MediaQueryList;\n new(): MediaQueryList;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryListEvent) */\ninterface MediaQueryListEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryListEvent/matches) */\n readonly matches: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryListEvent/media) */\n readonly media: string;\n}\n\ndeclare var MediaQueryListEvent: {\n prototype: MediaQueryListEvent;\n new(type: string, eventInitDict?: MediaQueryListEventInit): MediaQueryListEvent;\n};\n\ninterface MediaRecorderEventMap {\n "dataavailable": BlobEvent;\n "error": Event;\n "pause": Event;\n "resume": Event;\n "start": Event;\n "stop": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder) */\ninterface MediaRecorder extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/audioBitsPerSecond) */\n readonly audioBitsPerSecond: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/mimeType) */\n readonly mimeType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/dataavailable_event) */\n ondataavailable: ((this: MediaRecorder, ev: BlobEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/error_event) */\n onerror: ((this: MediaRecorder, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/pause_event) */\n onpause: ((this: MediaRecorder, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/resume_event) */\n onresume: ((this: MediaRecorder, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/start_event) */\n onstart: ((this: MediaRecorder, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/stop_event) */\n onstop: ((this: MediaRecorder, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/state) */\n readonly state: RecordingState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/stream) */\n readonly stream: MediaStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/videoBitsPerSecond) */\n readonly videoBitsPerSecond: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/pause) */\n pause(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/requestData) */\n requestData(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/resume) */\n resume(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/start) */\n start(timeslice?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/stop) */\n stop(): void;\n addEventListener<K extends keyof MediaRecorderEventMap>(type: K, listener: (this: MediaRecorder, ev: MediaRecorderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MediaRecorderEventMap>(type: K, listener: (this: MediaRecorder, ev: MediaRecorderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MediaRecorder: {\n prototype: MediaRecorder;\n new(stream: MediaStream, options?: MediaRecorderOptions): MediaRecorder;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/isTypeSupported_static) */\n isTypeSupported(type: string): boolean;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession) */\ninterface MediaSession {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession/metadata) */\n metadata: MediaMetadata | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession/playbackState) */\n playbackState: MediaSessionPlaybackState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession/setActionHandler) */\n setActionHandler(action: MediaSessionAction, handler: MediaSessionActionHandler | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession/setPositionState) */\n setPositionState(state?: MediaPositionState): void;\n}\n\ndeclare var MediaSession: {\n prototype: MediaSession;\n new(): MediaSession;\n};\n\ninterface MediaSourceEventMap {\n "sourceclose": Event;\n "sourceended": Event;\n "sourceopen": Event;\n}\n\n/**\n * This Media Source Extensions API interface represents a source of media data for an HTMLMediaElement object. A MediaSource object can be attached to a HTMLMediaElement to be played in the user agent.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource)\n */\ninterface MediaSource extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/activeSourceBuffers) */\n readonly activeSourceBuffers: SourceBufferList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/duration) */\n duration: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/sourceclose_event) */\n onsourceclose: ((this: MediaSource, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/sourceended_event) */\n onsourceended: ((this: MediaSource, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/sourceopen_event) */\n onsourceopen: ((this: MediaSource, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/readyState) */\n readonly readyState: ReadyState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/sourceBuffers) */\n readonly sourceBuffers: SourceBufferList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/addSourceBuffer) */\n addSourceBuffer(type: string): SourceBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/clearLiveSeekableRange) */\n clearLiveSeekableRange(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/endOfStream) */\n endOfStream(error?: EndOfStreamError): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/removeSourceBuffer) */\n removeSourceBuffer(sourceBuffer: SourceBuffer): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/setLiveSeekableRange) */\n setLiveSeekableRange(start: number, end: number): void;\n addEventListener<K extends keyof MediaSourceEventMap>(type: K, listener: (this: MediaSource, ev: MediaSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MediaSourceEventMap>(type: K, listener: (this: MediaSource, ev: MediaSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MediaSource: {\n prototype: MediaSource;\n new(): MediaSource;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/isTypeSupported_static) */\n isTypeSupported(type: string): boolean;\n};\n\ninterface MediaStreamEventMap {\n "addtrack": MediaStreamTrackEvent;\n "removetrack": MediaStreamTrackEvent;\n}\n\n/**\n * A stream of media content. A stream consists of several tracks such as video or audio tracks. Each track is specified as an instance of MediaStreamTrack.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream)\n */\ninterface MediaStream extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/active) */\n readonly active: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/id) */\n readonly id: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/addtrack_event) */\n onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/removetrack_event) */\n onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/addTrack) */\n addTrack(track: MediaStreamTrack): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/clone) */\n clone(): MediaStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/getAudioTracks) */\n getAudioTracks(): MediaStreamTrack[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/getTrackById) */\n getTrackById(trackId: string): MediaStreamTrack | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/getTracks) */\n getTracks(): MediaStreamTrack[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/getVideoTracks) */\n getVideoTracks(): MediaStreamTrack[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/removeTrack) */\n removeTrack(track: MediaStreamTrack): void;\n addEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MediaStream: {\n prototype: MediaStream;\n new(): MediaStream;\n new(stream: MediaStream): MediaStream;\n new(tracks: MediaStreamTrack[]): MediaStream;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamAudioDestinationNode) */\ninterface MediaStreamAudioDestinationNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamAudioDestinationNode/stream) */\n readonly stream: MediaStream;\n}\n\ndeclare var MediaStreamAudioDestinationNode: {\n prototype: MediaStreamAudioDestinationNode;\n new(context: AudioContext, options?: AudioNodeOptions): MediaStreamAudioDestinationNode;\n};\n\n/**\n * A type of AudioNode which operates as an audio source whose media is received from a MediaStream obtained using the WebRTC or Media Capture and Streams APIs.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamAudioSourceNode)\n */\ninterface MediaStreamAudioSourceNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamAudioSourceNode/mediaStream) */\n readonly mediaStream: MediaStream;\n}\n\ndeclare var MediaStreamAudioSourceNode: {\n prototype: MediaStreamAudioSourceNode;\n new(context: AudioContext, options: MediaStreamAudioSourceOptions): MediaStreamAudioSourceNode;\n};\n\ninterface MediaStreamTrackEventMap {\n "ended": Event;\n "mute": Event;\n "unmute": Event;\n}\n\n/**\n * A single media track within a stream; typically, these are audio or video tracks, but other track types may exist as well.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack)\n */\ninterface MediaStreamTrack extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/contentHint) */\n contentHint: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/enabled) */\n enabled: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/id) */\n readonly id: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/kind) */\n readonly kind: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/label) */\n readonly label: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/muted) */\n readonly muted: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/ended_event) */\n onended: ((this: MediaStreamTrack, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/mute_event) */\n onmute: ((this: MediaStreamTrack, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/unmute_event) */\n onunmute: ((this: MediaStreamTrack, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/readyState) */\n readonly readyState: MediaStreamTrackState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/applyConstraints) */\n applyConstraints(constraints?: MediaTrackConstraints): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/clone) */\n clone(): MediaStreamTrack;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/getCapabilities) */\n getCapabilities(): MediaTrackCapabilities;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/getConstraints) */\n getConstraints(): MediaTrackConstraints;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/getSettings) */\n getSettings(): MediaTrackSettings;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/stop) */\n stop(): void;\n addEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MediaStreamTrack: {\n prototype: MediaStreamTrack;\n new(): MediaStreamTrack;\n};\n\n/**\n * Events which indicate that a MediaStream has had tracks added to or removed from the stream through calls to Media Stream API methods. These events are sent to the stream when these changes occur.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrackEvent)\n */\ninterface MediaStreamTrackEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrackEvent/track) */\n readonly track: MediaStreamTrack;\n}\n\ndeclare var MediaStreamTrackEvent: {\n prototype: MediaStreamTrackEvent;\n new(type: string, eventInitDict: MediaStreamTrackEventInit): MediaStreamTrackEvent;\n};\n\n/**\n * This Channel Messaging API interface allows us to create a new message channel and send data through it via its two MessagePort properties.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel)\n */\ninterface MessageChannel {\n /**\n * Returns the first MessagePort object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel/port1)\n */\n readonly port1: MessagePort;\n /**\n * Returns the second MessagePort object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel/port2)\n */\n readonly port2: MessagePort;\n}\n\ndeclare var MessageChannel: {\n prototype: MessageChannel;\n new(): MessageChannel;\n};\n\n/**\n * A message received by a target object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent)\n */\ninterface MessageEvent<T = any> extends Event {\n /**\n * Returns the data of the message.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/data)\n */\n readonly data: T;\n /**\n * Returns the last event ID string, for server-sent events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/lastEventId)\n */\n readonly lastEventId: string;\n /**\n * Returns the origin of the message, for server-sent events and cross-document messaging.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/origin)\n */\n readonly origin: string;\n /**\n * Returns the MessagePort array sent with the message, for cross-document messaging and channel messaging.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/ports)\n */\n readonly ports: ReadonlyArray<MessagePort>;\n /**\n * Returns the WindowProxy of the source window, for cross-document messaging, and the MessagePort being attached, in the connect event fired at SharedWorkerGlobalScope objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/source)\n */\n readonly source: MessageEventSource | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/initMessageEvent)\n */\n initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: MessagePort[]): void;\n}\n\ndeclare var MessageEvent: {\n prototype: MessageEvent;\n new<T>(type: string, eventInitDict?: MessageEventInit<T>): MessageEvent<T>;\n};\n\ninterface MessagePortEventMap {\n "message": MessageEvent;\n "messageerror": MessageEvent;\n}\n\n/**\n * This Channel Messaging API interface represents one of the two ports of a MessageChannel, allowing messages to be sent from one port and listening out for them arriving at the other.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort)\n */\ninterface MessagePort extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/message_event) */\n onmessage: ((this: MessagePort, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/messageerror_event) */\n onmessageerror: ((this: MessagePort, ev: MessageEvent) => any) | null;\n /**\n * Disconnects the port, so that it is no longer active.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/close)\n */\n close(): void;\n /**\n * Posts a message through the channel. Objects listed in transfer are transferred, not just cloned, meaning that they are no longer usable on the sending side.\n *\n * Throws a "DataCloneError" DOMException if transfer contains duplicate objects or port, or if message could not be cloned.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/postMessage)\n */\n postMessage(message: any, transfer: Transferable[]): void;\n postMessage(message: any, options?: StructuredSerializeOptions): void;\n /**\n * Begins dispatching messages received on the port.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/start)\n */\n start(): void;\n addEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MessagePort: {\n prototype: MessagePort;\n new(): MessagePort;\n};\n\n/**\n * Provides contains information about a MIME type associated with a particular plugin. NavigatorPlugins.mimeTypes returns an array of this object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeType)\n */\ninterface MimeType {\n /**\n * Returns the MIME type\'s description.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeType/description)\n */\n readonly description: string;\n /**\n * Returns the Plugin object that implements this MIME type.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeType/enabledPlugin)\n */\n readonly enabledPlugin: Plugin;\n /**\n * Returns the MIME type\'s typical file extensions, in a comma-separated list.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeType/suffixes)\n */\n readonly suffixes: string;\n /**\n * Returns the MIME type.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeType/type)\n */\n readonly type: string;\n}\n\n/** @deprecated */\ndeclare var MimeType: {\n prototype: MimeType;\n new(): MimeType;\n};\n\n/**\n * Returns an array of MimeType instances, each of which contains information about a supported browser plugins. This object is returned by NavigatorPlugins.mimeTypes.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeTypeArray)\n */\ninterface MimeTypeArray {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeTypeArray/length)\n */\n readonly length: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeTypeArray/item)\n */\n item(index: number): MimeType | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeTypeArray/namedItem)\n */\n namedItem(name: string): MimeType | null;\n [index: number]: MimeType;\n}\n\n/** @deprecated */\ndeclare var MimeTypeArray: {\n prototype: MimeTypeArray;\n new(): MimeTypeArray;\n};\n\n/**\n * Events that occur due to the user interacting with a pointing device (such as a mouse). Common events using this interface include click, dblclick, mouseup, mousedown.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent)\n */\ninterface MouseEvent extends UIEvent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/altKey) */\n readonly altKey: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/button) */\n readonly button: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/buttons) */\n readonly buttons: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/clientX) */\n readonly clientX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/clientY) */\n readonly clientY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/ctrlKey) */\n readonly ctrlKey: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/layerX) */\n readonly layerX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/layerY) */\n readonly layerY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/metaKey) */\n readonly metaKey: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/movementX) */\n readonly movementX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/movementY) */\n readonly movementY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/offsetX) */\n readonly offsetX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/offsetY) */\n readonly offsetY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/pageX) */\n readonly pageX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/pageY) */\n readonly pageY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/relatedTarget) */\n readonly relatedTarget: EventTarget | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/screenX) */\n readonly screenX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/screenY) */\n readonly screenY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/shiftKey) */\n readonly shiftKey: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/x) */\n readonly x: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/y) */\n readonly y: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/getModifierState) */\n getModifierState(keyArg: string): boolean;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/initMouseEvent)\n */\n initMouseEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget | null): void;\n}\n\ndeclare var MouseEvent: {\n prototype: MouseEvent;\n new(type: string, eventInitDict?: MouseEventInit): MouseEvent;\n};\n\n/**\n * Provides event properties that are specific to modifications to the Document Object Model (DOM) hierarchy and nodes.\n * @deprecated DOM4 [DOM] provides a new mechanism using a MutationObserver interface which addresses the use cases that mutation events solve, but in a more performant manner. Thus, this specification describes mutation events for reference and completeness of legacy behavior, but deprecates the use of the MutationEvent interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationEvent)\n */\ninterface MutationEvent extends Event {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationEvent/attrChange)\n */\n readonly attrChange: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationEvent/attrName)\n */\n readonly attrName: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationEvent/newValue)\n */\n readonly newValue: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationEvent/prevValue)\n */\n readonly prevValue: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationEvent/relatedNode)\n */\n readonly relatedNode: Node | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationEvent/initMutationEvent)\n */\n initMutationEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, relatedNodeArg?: Node | null, prevValueArg?: string, newValueArg?: string, attrNameArg?: string, attrChangeArg?: number): void;\n readonly MODIFICATION: 1;\n readonly ADDITION: 2;\n readonly REMOVAL: 3;\n}\n\n/** @deprecated */\ndeclare var MutationEvent: {\n prototype: MutationEvent;\n new(): MutationEvent;\n readonly MODIFICATION: 1;\n readonly ADDITION: 2;\n readonly REMOVAL: 3;\n};\n\n/**\n * Provides the ability to watch for changes being made to the DOM tree. It is designed as a replacement for the older Mutation Events feature which was part of the DOM3 Events specification.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationObserver)\n */\ninterface MutationObserver {\n /**\n * Stops observer from observing any mutations. Until the observe() method is used again, observer\'s callback will not be invoked.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationObserver/disconnect)\n */\n disconnect(): void;\n /**\n * Instructs the user agent to observe a given target (a node) and report any mutations based on the criteria given by options (an object).\n *\n * The options argument allows for setting mutation observation options via object members.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationObserver/observe)\n */\n observe(target: Node, options?: MutationObserverInit): void;\n /**\n * Empties the record queue and returns what was in there.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationObserver/takeRecords)\n */\n takeRecords(): MutationRecord[];\n}\n\ndeclare var MutationObserver: {\n prototype: MutationObserver;\n new(callback: MutationCallback): MutationObserver;\n};\n\n/**\n * A MutationRecord represents an individual DOM mutation. It is the object that is passed to MutationObserver\'s callback.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord)\n */\ninterface MutationRecord {\n /**\n * Return the nodes added and removed respectively.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/addedNodes)\n */\n readonly addedNodes: NodeList;\n /**\n * Returns the local name of the changed attribute, and null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/attributeName)\n */\n readonly attributeName: string | null;\n /**\n * Returns the namespace of the changed attribute, and null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/attributeNamespace)\n */\n readonly attributeNamespace: string | null;\n /**\n * Return the previous and next sibling respectively of the added or removed nodes, and null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/nextSibling)\n */\n readonly nextSibling: Node | null;\n /**\n * The return value depends on type. For "attributes", it is the value of the changed attribute before the change. For "characterData", it is the data of the changed node before the change. For "childList", it is null.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/oldValue)\n */\n readonly oldValue: string | null;\n /**\n * Return the previous and next sibling respectively of the added or removed nodes, and null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/previousSibling)\n */\n readonly previousSibling: Node | null;\n /**\n * Return the nodes added and removed respectively.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/removedNodes)\n */\n readonly removedNodes: NodeList;\n /**\n * Returns the node the mutation affected, depending on the type. For "attributes", it is the element whose attribute changed. For "characterData", it is the CharacterData node. For "childList", it is the node whose children changed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/target)\n */\n readonly target: Node;\n /**\n * Returns "attributes" if it was an attribute mutation. "characterData" if it was a mutation to a CharacterData node. And "childList" if it was a mutation to the tree of nodes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/type)\n */\n readonly type: MutationRecordType;\n}\n\ndeclare var MutationRecord: {\n prototype: MutationRecord;\n new(): MutationRecord;\n};\n\n/**\n * A collection of Attr objects. Objects inside a NamedNodeMap are not in any particular order, unlike NodeList, although they may be accessed by an index as in an array.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap)\n */\ninterface NamedNodeMap {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/getNamedItem) */\n getNamedItem(qualifiedName: string): Attr | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/getNamedItemNS) */\n getNamedItemNS(namespace: string | null, localName: string): Attr | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/item) */\n item(index: number): Attr | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/removeNamedItem) */\n removeNamedItem(qualifiedName: string): Attr;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/removeNamedItemNS) */\n removeNamedItemNS(namespace: string | null, localName: string): Attr;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/setNamedItem) */\n setNamedItem(attr: Attr): Attr | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/setNamedItemNS) */\n setNamedItemNS(attr: Attr): Attr | null;\n [index: number]: Attr;\n}\n\ndeclare var NamedNodeMap: {\n prototype: NamedNodeMap;\n new(): NamedNodeMap;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager)\n */\ninterface NavigationPreloadManager {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/disable) */\n disable(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/enable) */\n enable(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/getState) */\n getState(): Promise<NavigationPreloadState>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/setHeaderValue) */\n setHeaderValue(value: string): Promise<void>;\n}\n\ndeclare var NavigationPreloadManager: {\n prototype: NavigationPreloadManager;\n new(): NavigationPreloadManager;\n};\n\n/**\n * The state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator)\n */\ninterface Navigator extends NavigatorAutomationInformation, NavigatorBadge, NavigatorConcurrentHardware, NavigatorContentUtils, NavigatorCookies, NavigatorID, NavigatorLanguage, NavigatorLocks, NavigatorOnLine, NavigatorPlugins, NavigatorStorage {\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/clipboard)\n */\n readonly clipboard: Clipboard;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/credentials)\n */\n readonly credentials: CredentialsContainer;\n readonly doNotTrack: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/geolocation) */\n readonly geolocation: Geolocation;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/maxTouchPoints) */\n readonly maxTouchPoints: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/mediaCapabilities) */\n readonly mediaCapabilities: MediaCapabilities;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/mediaDevices)\n */\n readonly mediaDevices: MediaDevices;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/mediaSession) */\n readonly mediaSession: MediaSession;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/permissions) */\n readonly permissions: Permissions;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/serviceWorker)\n */\n readonly serviceWorker: ServiceWorkerContainer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/userActivation) */\n readonly userActivation: UserActivation;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/wakeLock) */\n readonly wakeLock: WakeLock;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/canShare)\n */\n canShare(data?: ShareData): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/getGamepads) */\n getGamepads(): (Gamepad | null)[];\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/requestMIDIAccess)\n */\n requestMIDIAccess(options?: MIDIOptions): Promise<MIDIAccess>;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/requestMediaKeySystemAccess)\n */\n requestMediaKeySystemAccess(keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]): Promise<MediaKeySystemAccess>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/sendBeacon) */\n sendBeacon(url: string | URL, data?: BodyInit | null): boolean;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/share)\n */\n share(data?: ShareData): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/vibrate) */\n vibrate(pattern: VibratePattern): boolean;\n}\n\ndeclare var Navigator: {\n prototype: Navigator;\n new(): Navigator;\n};\n\ninterface NavigatorAutomationInformation {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/webdriver) */\n readonly webdriver: boolean;\n}\n\n/** Available only in secure contexts. */\ninterface NavigatorBadge {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/clearAppBadge) */\n clearAppBadge(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/setAppBadge) */\n setAppBadge(contents?: number): Promise<void>;\n}\n\ninterface NavigatorConcurrentHardware {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/hardwareConcurrency) */\n readonly hardwareConcurrency: number;\n}\n\ninterface NavigatorContentUtils {\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/registerProtocolHandler)\n */\n registerProtocolHandler(scheme: string, url: string | URL): void;\n}\n\ninterface NavigatorCookies {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/cookieEnabled) */\n readonly cookieEnabled: boolean;\n}\n\ninterface NavigatorID {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appCodeName)\n */\n readonly appCodeName: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appName)\n */\n readonly appName: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appVersion)\n */\n readonly appVersion: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/platform)\n */\n readonly platform: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/product)\n */\n readonly product: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/productSub)\n */\n readonly productSub: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/userAgent) */\n readonly userAgent: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/vendor)\n */\n readonly vendor: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/vendorSub)\n */\n readonly vendorSub: string;\n}\n\ninterface NavigatorLanguage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/language) */\n readonly language: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/languages) */\n readonly languages: ReadonlyArray<string>;\n}\n\n/** Available only in secure contexts. */\ninterface NavigatorLocks {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/locks) */\n readonly locks: LockManager;\n}\n\ninterface NavigatorOnLine {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/onLine) */\n readonly onLine: boolean;\n}\n\ninterface NavigatorPlugins {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigatorPlugins/mimeTypes)\n */\n readonly mimeTypes: MimeTypeArray;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/pdfViewerEnabled) */\n readonly pdfViewerEnabled: boolean;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/plugins)\n */\n readonly plugins: PluginArray;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/javaEnabled)\n */\n javaEnabled(): boolean;\n}\n\n/** Available only in secure contexts. */\ninterface NavigatorStorage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/storage) */\n readonly storage: StorageManager;\n}\n\n/**\n * Node is an interface from which a number of DOM API object types inherit. It allows those types to be treated similarly; for example, inheriting the same set of methods, or being tested in the same way.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node)\n */\ninterface Node extends EventTarget {\n /**\n * Returns node\'s node document\'s document base URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/baseURI)\n */\n readonly baseURI: string;\n /**\n * Returns the children.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/childNodes)\n */\n readonly childNodes: NodeListOf<ChildNode>;\n /**\n * Returns the first child.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/firstChild)\n */\n readonly firstChild: ChildNode | null;\n /**\n * Returns true if node is connected and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/isConnected)\n */\n readonly isConnected: boolean;\n /**\n * Returns the last child.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/lastChild)\n */\n readonly lastChild: ChildNode | null;\n /**\n * Returns the next sibling.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/nextSibling)\n */\n readonly nextSibling: ChildNode | null;\n /**\n * Returns a string appropriate for the type of node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/nodeName)\n */\n readonly nodeName: string;\n /**\n * Returns the type of node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/nodeType)\n */\n readonly nodeType: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/nodeValue) */\n nodeValue: string | null;\n /**\n * Returns the node document. Returns null for documents.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/ownerDocument)\n */\n readonly ownerDocument: Document | null;\n /**\n * Returns the parent element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/parentElement)\n */\n readonly parentElement: HTMLElement | null;\n /**\n * Returns the parent.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/parentNode)\n */\n readonly parentNode: ParentNode | null;\n /**\n * Returns the previous sibling.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/previousSibling)\n */\n readonly previousSibling: ChildNode | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/textContent) */\n textContent: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/appendChild) */\n appendChild<T extends Node>(node: T): T;\n /**\n * Returns a copy of node. If deep is true, the copy also includes the node\'s descendants.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)\n */\n cloneNode(deep?: boolean): Node;\n /**\n * Returns a bitmask indicating the position of other relative to node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)\n */\n compareDocumentPosition(other: Node): number;\n /**\n * Returns true if other is an inclusive descendant of node, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/contains)\n */\n contains(other: Node | null): boolean;\n /**\n * Returns node\'s root.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)\n */\n getRootNode(options?: GetRootNodeOptions): Node;\n /**\n * Returns whether node has children.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)\n */\n hasChildNodes(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/insertBefore) */\n insertBefore<T extends Node>(node: T, child: Node | null): T;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace) */\n isDefaultNamespace(namespace: string | null): boolean;\n /**\n * Returns whether node and otherNode have the same properties.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)\n */\n isEqualNode(otherNode: Node | null): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/isSameNode) */\n isSameNode(otherNode: Node | null): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI) */\n lookupNamespaceURI(prefix: string | null): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix) */\n lookupPrefix(namespace: string | null): string | null;\n /**\n * Removes empty exclusive Text nodes and concatenates the data of remaining contiguous exclusive Text nodes into the first of their nodes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/normalize)\n */\n normalize(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/removeChild) */\n removeChild<T extends Node>(child: T): T;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/replaceChild) */\n replaceChild<T extends Node>(node: Node, child: T): T;\n /** node is an element. */\n readonly ELEMENT_NODE: 1;\n readonly ATTRIBUTE_NODE: 2;\n /** node is a Text node. */\n readonly TEXT_NODE: 3;\n /** node is a CDATASection node. */\n readonly CDATA_SECTION_NODE: 4;\n readonly ENTITY_REFERENCE_NODE: 5;\n readonly ENTITY_NODE: 6;\n /** node is a ProcessingInstruction node. */\n readonly PROCESSING_INSTRUCTION_NODE: 7;\n /** node is a Comment node. */\n readonly COMMENT_NODE: 8;\n /** node is a document. */\n readonly DOCUMENT_NODE: 9;\n /** node is a doctype. */\n readonly DOCUMENT_TYPE_NODE: 10;\n /** node is a DocumentFragment node. */\n readonly DOCUMENT_FRAGMENT_NODE: 11;\n readonly NOTATION_NODE: 12;\n /** Set when node and other are not in the same tree. */\n readonly DOCUMENT_POSITION_DISCONNECTED: 0x01;\n /** Set when other is preceding node. */\n readonly DOCUMENT_POSITION_PRECEDING: 0x02;\n /** Set when other is following node. */\n readonly DOCUMENT_POSITION_FOLLOWING: 0x04;\n /** Set when other is an ancestor of node. */\n readonly DOCUMENT_POSITION_CONTAINS: 0x08;\n /** Set when other is a descendant of node. */\n readonly DOCUMENT_POSITION_CONTAINED_BY: 0x10;\n readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20;\n}\n\ndeclare var Node: {\n prototype: Node;\n new(): Node;\n /** node is an element. */\n readonly ELEMENT_NODE: 1;\n readonly ATTRIBUTE_NODE: 2;\n /** node is a Text node. */\n readonly TEXT_NODE: 3;\n /** node is a CDATASection node. */\n readonly CDATA_SECTION_NODE: 4;\n readonly ENTITY_REFERENCE_NODE: 5;\n readonly ENTITY_NODE: 6;\n /** node is a ProcessingInstruction node. */\n readonly PROCESSING_INSTRUCTION_NODE: 7;\n /** node is a Comment node. */\n readonly COMMENT_NODE: 8;\n /** node is a document. */\n readonly DOCUMENT_NODE: 9;\n /** node is a doctype. */\n readonly DOCUMENT_TYPE_NODE: 10;\n /** node is a DocumentFragment node. */\n readonly DOCUMENT_FRAGMENT_NODE: 11;\n readonly NOTATION_NODE: 12;\n /** Set when node and other are not in the same tree. */\n readonly DOCUMENT_POSITION_DISCONNECTED: 0x01;\n /** Set when other is preceding node. */\n readonly DOCUMENT_POSITION_PRECEDING: 0x02;\n /** Set when other is following node. */\n readonly DOCUMENT_POSITION_FOLLOWING: 0x04;\n /** Set when other is an ancestor of node. */\n readonly DOCUMENT_POSITION_CONTAINS: 0x08;\n /** Set when other is a descendant of node. */\n readonly DOCUMENT_POSITION_CONTAINED_BY: 0x10;\n readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20;\n};\n\n/**\n * An iterator over the members of a list of the nodes in a subtree of the DOM. The nodes will be returned in document order.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator)\n */\ninterface NodeIterator {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/filter) */\n readonly filter: NodeFilter | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/pointerBeforeReferenceNode) */\n readonly pointerBeforeReferenceNode: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/referenceNode) */\n readonly referenceNode: Node;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/root) */\n readonly root: Node;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/whatToShow) */\n readonly whatToShow: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/detach)\n */\n detach(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/nextNode) */\n nextNode(): Node | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/previousNode) */\n previousNode(): Node | null;\n}\n\ndeclare var NodeIterator: {\n prototype: NodeIterator;\n new(): NodeIterator;\n};\n\n/**\n * NodeList objects are collections of nodes, usually returned by properties such as Node.childNodes and methods such as document.querySelectorAll().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList)\n */\ninterface NodeList {\n /**\n * Returns the number of nodes in the collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/length)\n */\n readonly length: number;\n /**\n * Returns the node with index index from the collection. The nodes are sorted in tree order.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/item)\n */\n item(index: number): Node | null;\n /**\n * Performs the specified action for each node in an list.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the list.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: Node, key: number, parent: NodeList) => void, thisArg?: any): void;\n [index: number]: Node;\n}\n\ndeclare var NodeList: {\n prototype: NodeList;\n new(): NodeList;\n};\n\ninterface NodeListOf<TNode extends Node> extends NodeList {\n item(index: number): TNode;\n /**\n * Performs the specified action for each node in an list.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the list.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: TNode, key: number, parent: NodeListOf<TNode>) => void, thisArg?: any): void;\n [index: number]: TNode;\n}\n\ninterface NonDocumentTypeChildNode {\n /**\n * Returns the first following sibling that is an element, and null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/nextElementSibling)\n */\n readonly nextElementSibling: Element | null;\n /**\n * Returns the first preceding sibling that is an element, and null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/previousElementSibling)\n */\n readonly previousElementSibling: Element | null;\n}\n\ninterface NonElementParentNode {\n /**\n * Returns the first element within node\'s descendants whose ID is elementId.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementById)\n */\n getElementById(elementId: string): Element | null;\n}\n\ninterface NotificationEventMap {\n "click": Event;\n "close": Event;\n "error": Event;\n "show": Event;\n}\n\n/**\n * This Notifications API interface is used to configure and display desktop notifications to the user.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification)\n */\ninterface Notification extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/badge) */\n readonly badge: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/body) */\n readonly body: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/data) */\n readonly data: any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/dir) */\n readonly dir: NotificationDirection;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/icon) */\n readonly icon: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/lang) */\n readonly lang: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/click_event) */\n onclick: ((this: Notification, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/close_event) */\n onclose: ((this: Notification, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/error_event) */\n onerror: ((this: Notification, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/show_event) */\n onshow: ((this: Notification, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/requireInteraction) */\n readonly requireInteraction: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/silent) */\n readonly silent: boolean | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/tag) */\n readonly tag: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/title) */\n readonly title: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/close) */\n close(): void;\n addEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Notification: {\n prototype: Notification;\n new(title: string, options?: NotificationOptions): Notification;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/permission_static) */\n readonly permission: NotificationPermission;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/requestPermission_static) */\n requestPermission(deprecatedCallback?: NotificationPermissionCallback): Promise<NotificationPermission>;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed) */\ninterface OES_draw_buffers_indexed {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendEquationSeparateiOES) */\n blendEquationSeparateiOES(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendEquationiOES) */\n blendEquationiOES(buf: GLuint, mode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendFuncSeparateiOES) */\n blendFuncSeparateiOES(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendFunciOES) */\n blendFunciOES(buf: GLuint, src: GLenum, dst: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/colorMaskiOES) */\n colorMaskiOES(buf: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/disableiOES) */\n disableiOES(target: GLenum, index: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/enableiOES) */\n enableiOES(target: GLenum, index: GLuint): void;\n}\n\n/**\n * The OES_element_index_uint extension is part of the WebGL API and adds support for gl.UNSIGNED_INT types to WebGLRenderingContext.drawElements().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_element_index_uint)\n */\ninterface OES_element_index_uint {\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_fbo_render_mipmap) */\ninterface OES_fbo_render_mipmap {\n}\n\n/**\n * The OES_standard_derivatives extension is part of the WebGL API and adds the GLSL derivative functions dFdx, dFdy, and fwidth.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_standard_derivatives)\n */\ninterface OES_standard_derivatives {\n readonly FRAGMENT_SHADER_DERIVATIVE_HINT_OES: 0x8B8B;\n}\n\n/**\n * The OES_texture_float extension is part of the WebGL API and exposes floating-point pixel types for textures.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_float)\n */\ninterface OES_texture_float {\n}\n\n/**\n * The OES_texture_float_linear extension is part of the WebGL API and allows linear filtering with floating-point pixel types for textures.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_float_linear)\n */\ninterface OES_texture_float_linear {\n}\n\n/**\n * The OES_texture_half_float extension is part of the WebGL API and adds texture formats with 16- (aka half float) and 32-bit floating-point components.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_half_float)\n */\ninterface OES_texture_half_float {\n readonly HALF_FLOAT_OES: 0x8D61;\n}\n\n/**\n * The OES_texture_half_float_linear extension is part of the WebGL API and allows linear filtering with half floating-point pixel types for textures.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_half_float_linear)\n */\ninterface OES_texture_half_float_linear {\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object) */\ninterface OES_vertex_array_object {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/bindVertexArrayOES) */\n bindVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/createVertexArrayOES) */\n createVertexArrayOES(): WebGLVertexArrayObjectOES | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/deleteVertexArrayOES) */\n deleteVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/isVertexArrayOES) */\n isVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): GLboolean;\n readonly VERTEX_ARRAY_BINDING_OES: 0x85B5;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OVR_multiview2) */\ninterface OVR_multiview2 {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OVR_multiview2/framebufferTextureMultiviewOVR) */\n framebufferTextureMultiviewOVR(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, baseViewIndex: GLint, numViews: GLsizei): void;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR: 0x9630;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR: 0x9632;\n readonly MAX_VIEWS_OVR: 0x9631;\n readonly FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: 0x9633;\n}\n\n/**\n * The Web Audio API OfflineAudioCompletionEvent interface represents events that occur when the processing of an OfflineAudioContext is terminated. The complete event implements this interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioCompletionEvent)\n */\ninterface OfflineAudioCompletionEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioCompletionEvent/renderedBuffer) */\n readonly renderedBuffer: AudioBuffer;\n}\n\ndeclare var OfflineAudioCompletionEvent: {\n prototype: OfflineAudioCompletionEvent;\n new(type: string, eventInitDict: OfflineAudioCompletionEventInit): OfflineAudioCompletionEvent;\n};\n\ninterface OfflineAudioContextEventMap extends BaseAudioContextEventMap {\n "complete": OfflineAudioCompletionEvent;\n}\n\n/**\n * An AudioContext interface representing an audio-processing graph built from linked together AudioNodes. In contrast with a standard AudioContext, an OfflineAudioContext doesn\'t render the audio to the device hardware; instead, it generates it, as fast as it can, and outputs the result to an AudioBuffer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext)\n */\ninterface OfflineAudioContext extends BaseAudioContext {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/complete_event) */\n oncomplete: ((this: OfflineAudioContext, ev: OfflineAudioCompletionEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/resume) */\n resume(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/startRendering) */\n startRendering(): Promise<AudioBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/suspend) */\n suspend(suspendTime: number): Promise<void>;\n addEventListener<K extends keyof OfflineAudioContextEventMap>(type: K, listener: (this: OfflineAudioContext, ev: OfflineAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof OfflineAudioContextEventMap>(type: K, listener: (this: OfflineAudioContext, ev: OfflineAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var OfflineAudioContext: {\n prototype: OfflineAudioContext;\n new(contextOptions: OfflineAudioContextOptions): OfflineAudioContext;\n new(numberOfChannels: number, length: number, sampleRate: number): OfflineAudioContext;\n};\n\ninterface OffscreenCanvasEventMap {\n "contextlost": Event;\n "contextrestored": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas) */\ninterface OffscreenCanvas extends EventTarget {\n /**\n * These attributes return the dimensions of the OffscreenCanvas object\'s bitmap.\n *\n * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/height)\n */\n height: number;\n oncontextlost: ((this: OffscreenCanvas, ev: Event) => any) | null;\n oncontextrestored: ((this: OffscreenCanvas, ev: Event) => any) | null;\n /**\n * These attributes return the dimensions of the OffscreenCanvas object\'s bitmap.\n *\n * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/width)\n */\n width: number;\n /**\n * Returns a promise that will fulfill with a new Blob object representing a file containing the image in the OffscreenCanvas object.\n *\n * The argument, if provided, is a dictionary that controls the encoding options of the image file to be created. The type field specifies the file format and has a default value of "image/png"; that type is also used if the requested type isn\'t supported. If the image format supports variable quality (such as "image/jpeg"), then the quality field is a number in the range 0.0 to 1.0 inclusive indicating the desired quality level for the resulting image.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/convertToBlob)\n */\n convertToBlob(options?: ImageEncodeOptions): Promise<Blob>;\n /**\n * Returns an object that exposes an API for drawing on the OffscreenCanvas object. contextId specifies the desired API: "2d", "bitmaprenderer", "webgl", or "webgl2". options is handled by that API.\n *\n * This specification defines the "2d" context below, which is similar but distinct from the "2d" context that is created from a canvas element. The WebGL specifications define the "webgl" and "webgl2" contexts. [WEBGL]\n *\n * Returns null if the canvas has already been initialized with another context type (e.g., trying to get a "2d" context after getting a "webgl" context).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/getContext)\n */\n getContext(contextId: "2d", options?: any): OffscreenCanvasRenderingContext2D | null;\n getContext(contextId: "bitmaprenderer", options?: any): ImageBitmapRenderingContext | null;\n getContext(contextId: "webgl", options?: any): WebGLRenderingContext | null;\n getContext(contextId: "webgl2", options?: any): WebGL2RenderingContext | null;\n getContext(contextId: OffscreenRenderingContextId, options?: any): OffscreenRenderingContext | null;\n /**\n * Returns a newly created ImageBitmap object with the image in the OffscreenCanvas object. The image in the OffscreenCanvas object is replaced with a new blank image.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/transferToImageBitmap)\n */\n transferToImageBitmap(): ImageBitmap;\n addEventListener<K extends keyof OffscreenCanvasEventMap>(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof OffscreenCanvasEventMap>(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var OffscreenCanvas: {\n prototype: OffscreenCanvas;\n new(width: number, height: number): OffscreenCanvas;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvasRenderingContext2D) */\ninterface OffscreenCanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform {\n readonly canvas: OffscreenCanvas;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvasRenderingContext2D/commit) */\n commit(): void;\n}\n\ndeclare var OffscreenCanvasRenderingContext2D: {\n prototype: OffscreenCanvasRenderingContext2D;\n new(): OffscreenCanvasRenderingContext2D;\n};\n\n/**\n * The OscillatorNode interface represents a periodic waveform, such as a sine wave. It is an AudioScheduledSourceNode audio-processing module that causes a specified frequency of a given wave to be created—in effect, a constant tone.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode)\n */\ninterface OscillatorNode extends AudioScheduledSourceNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode/detune) */\n readonly detune: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode/frequency) */\n readonly frequency: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode/type) */\n type: OscillatorType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode/setPeriodicWave) */\n setPeriodicWave(periodicWave: PeriodicWave): void;\n addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: OscillatorNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: OscillatorNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var OscillatorNode: {\n prototype: OscillatorNode;\n new(context: BaseAudioContext, options?: OscillatorOptions): OscillatorNode;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OverconstrainedError) */\ninterface OverconstrainedError extends DOMException {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OverconstrainedError/constraint) */\n readonly constraint: string;\n}\n\ndeclare var OverconstrainedError: {\n prototype: OverconstrainedError;\n new(constraint: string, message?: string): OverconstrainedError;\n};\n\n/**\n * The PageTransitionEvent is fired when a document is being loaded or unloaded.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PageTransitionEvent)\n */\ninterface PageTransitionEvent extends Event {\n /**\n * For the pageshow event, returns false if the page is newly being loaded (and the load event will fire). Otherwise, returns true.\n *\n * For the pagehide event, returns false if the page is going away for the last time. Otherwise, returns true, meaning that (if nothing conspires to make the page unsalvageable) the page might be reused if the user navigates back to this page.\n *\n * Things that can cause the page to be unsalvageable include:\n *\n * The user agent decided to not keep the Document alive in a session history entry after unload\n * Having iframes that are not salvageable\n * Active WebSocket objects\n * Aborting a Document\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PageTransitionEvent/persisted)\n */\n readonly persisted: boolean;\n}\n\ndeclare var PageTransitionEvent: {\n prototype: PageTransitionEvent;\n new(type: string, eventInitDict?: PageTransitionEventInit): PageTransitionEvent;\n};\n\n/**\n * A PannerNode always has exactly one input and one output: the input can be mono or stereo but the output is always stereo (2 channels); you can\'t have panning effects without at least two audio channels!\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode)\n */\ninterface PannerNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/coneInnerAngle) */\n coneInnerAngle: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/coneOuterAngle) */\n coneOuterAngle: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/coneOuterGain) */\n coneOuterGain: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/distanceModel) */\n distanceModel: DistanceModelType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/maxDistance) */\n maxDistance: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/orientationX) */\n readonly orientationX: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/orientationY) */\n readonly orientationY: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/orientationZ) */\n readonly orientationZ: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/panningModel) */\n panningModel: PanningModelType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/positionX) */\n readonly positionX: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/positionY) */\n readonly positionY: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/positionZ) */\n readonly positionZ: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/refDistance) */\n refDistance: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/rolloffFactor) */\n rolloffFactor: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/setOrientation)\n */\n setOrientation(x: number, y: number, z: number): void;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/setPosition)\n */\n setPosition(x: number, y: number, z: number): void;\n}\n\ndeclare var PannerNode: {\n prototype: PannerNode;\n new(context: BaseAudioContext, options?: PannerOptions): PannerNode;\n};\n\ninterface ParentNode extends Node {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/childElementCount) */\n readonly childElementCount: number;\n /**\n * Returns the child elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/children)\n */\n readonly children: HTMLCollection;\n /**\n * Returns the first child that is an element, and null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/firstElementChild)\n */\n readonly firstElementChild: Element | null;\n /**\n * Returns the last child that is an element, and null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/lastElementChild)\n */\n readonly lastElementChild: Element | null;\n /**\n * Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.\n *\n * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/append)\n */\n append(...nodes: (Node | string)[]): void;\n /**\n * Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.\n *\n * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/prepend)\n */\n prepend(...nodes: (Node | string)[]): void;\n /**\n * Returns the first element that is a descendant of node that matches selectors.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/querySelector)\n */\n querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;\n querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;\n querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;\n /** @deprecated */\n querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): HTMLElementDeprecatedTagNameMap[K] | null;\n querySelector<E extends Element = Element>(selectors: string): E | null;\n /**\n * Returns all element descendants of node that match selectors.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)\n */\n querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;\n querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;\n querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;\n /** @deprecated */\n querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;\n querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;\n /**\n * Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.\n *\n * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)\n */\n replaceChildren(...nodes: (Node | string)[]): void;\n}\n\n/**\n * This Canvas 2D API interface is used to declare a path that can then be used on a CanvasRenderingContext2D object. The path methods of the CanvasRenderingContext2D interface are also present on this interface, which gives you the convenience of being able to retain and replay your path whenever desired.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Path2D)\n */\ninterface Path2D extends CanvasPath {\n /**\n * Adds to the path the path given by the argument.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Path2D/addPath)\n */\n addPath(path: Path2D, transform?: DOMMatrix2DInit): void;\n}\n\ndeclare var Path2D: {\n prototype: Path2D;\n new(path?: Path2D | string): Path2D;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentMethodChangeEvent)\n */\ninterface PaymentMethodChangeEvent extends PaymentRequestUpdateEvent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentMethodChangeEvent/methodDetails) */\n readonly methodDetails: any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentMethodChangeEvent/methodName) */\n readonly methodName: string;\n}\n\ndeclare var PaymentMethodChangeEvent: {\n prototype: PaymentMethodChangeEvent;\n new(type: string, eventInitDict?: PaymentMethodChangeEventInit): PaymentMethodChangeEvent;\n};\n\ninterface PaymentRequestEventMap {\n "paymentmethodchange": Event;\n}\n\n/**\n * This Payment Request API interface is the primary access point into the API, and lets web content and apps accept payments from the end user.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest)\n */\ninterface PaymentRequest extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/id) */\n readonly id: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/paymentmethodchange_event) */\n onpaymentmethodchange: ((this: PaymentRequest, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/abort) */\n abort(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/canMakePayment) */\n canMakePayment(): Promise<boolean>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/show) */\n show(detailsPromise?: PaymentDetailsUpdate | PromiseLike<PaymentDetailsUpdate>): Promise<PaymentResponse>;\n addEventListener<K extends keyof PaymentRequestEventMap>(type: K, listener: (this: PaymentRequest, ev: PaymentRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof PaymentRequestEventMap>(type: K, listener: (this: PaymentRequest, ev: PaymentRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var PaymentRequest: {\n prototype: PaymentRequest;\n new(methodData: PaymentMethodData[], details: PaymentDetailsInit): PaymentRequest;\n};\n\n/**\n * This Payment Request API interface enables a web page to update the details of a PaymentRequest in response to a user action.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequestUpdateEvent)\n */\ninterface PaymentRequestUpdateEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequestUpdateEvent/updateWith) */\n updateWith(detailsPromise: PaymentDetailsUpdate | PromiseLike<PaymentDetailsUpdate>): void;\n}\n\ndeclare var PaymentRequestUpdateEvent: {\n prototype: PaymentRequestUpdateEvent;\n new(type: string, eventInitDict?: PaymentRequestUpdateEventInit): PaymentRequestUpdateEvent;\n};\n\n/**\n * This Payment Request API interface is returned after a user selects a payment method and approves a payment request.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse)\n */\ninterface PaymentResponse extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/details) */\n readonly details: any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/methodName) */\n readonly methodName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/requestId) */\n readonly requestId: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/complete) */\n complete(result?: PaymentComplete): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/retry) */\n retry(errorFields?: PaymentValidationErrors): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/toJSON) */\n toJSON(): any;\n}\n\ndeclare var PaymentResponse: {\n prototype: PaymentResponse;\n new(): PaymentResponse;\n};\n\ninterface PerformanceEventMap {\n "resourcetimingbufferfull": Event;\n}\n\n/**\n * Provides access to performance-related information for the current page. It\'s part of the High Resolution Time API, but is enhanced by the Performance Timeline API, the Navigation Timing API, the User Timing API, and the Resource Timing API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance)\n */\ninterface Performance extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/eventCounts) */\n readonly eventCounts: EventCounts;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/navigation)\n */\n readonly navigation: PerformanceNavigation;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/resourcetimingbufferfull_event) */\n onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/timeOrigin) */\n readonly timeOrigin: DOMHighResTimeStamp;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/timing)\n */\n readonly timing: PerformanceTiming;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearMarks) */\n clearMarks(markName?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearMeasures) */\n clearMeasures(measureName?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearResourceTimings) */\n clearResourceTimings(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntries) */\n getEntries(): PerformanceEntryList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntriesByName) */\n getEntriesByName(name: string, type?: string): PerformanceEntryList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntriesByType) */\n getEntriesByType(type: string): PerformanceEntryList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/mark) */\n mark(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/measure) */\n measure(measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string): PerformanceMeasure;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/now) */\n now(): DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/setResourceTimingBufferSize) */\n setResourceTimingBufferSize(maxSize: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/toJSON) */\n toJSON(): any;\n addEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Performance: {\n prototype: Performance;\n new(): Performance;\n};\n\n/**\n * Encapsulates a single performance metric that is part of the performance timeline. A performance entry can be directly created by making a performance mark or measure (for example by calling the mark() method) at an explicit point in an application. Performance entries are also created in indirect ways such as loading a resource (such as an image).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry)\n */\ninterface PerformanceEntry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/duration) */\n readonly duration: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/entryType) */\n readonly entryType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/startTime) */\n readonly startTime: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/toJSON) */\n toJSON(): any;\n}\n\ndeclare var PerformanceEntry: {\n prototype: PerformanceEntry;\n new(): PerformanceEntry;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming) */\ninterface PerformanceEventTiming extends PerformanceEntry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/cancelable) */\n readonly cancelable: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/processingEnd) */\n readonly processingEnd: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/processingStart) */\n readonly processingStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/target) */\n readonly target: Node | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/toJSON) */\n toJSON(): any;\n}\n\ndeclare var PerformanceEventTiming: {\n prototype: PerformanceEventTiming;\n new(): PerformanceEventTiming;\n};\n\n/**\n * PerformanceMark is an abstract interface for PerformanceEntry objects with an entryType of "mark". Entries of this type are created by calling performance.mark() to add a named DOMHighResTimeStamp (the mark) to the browser\'s performance timeline.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMark)\n */\ninterface PerformanceMark extends PerformanceEntry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMark/detail) */\n readonly detail: any;\n}\n\ndeclare var PerformanceMark: {\n prototype: PerformanceMark;\n new(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;\n};\n\n/**\n * PerformanceMeasure is an abstract interface for PerformanceEntry objects with an entryType of "measure". Entries of this type are created by calling performance.measure() to add a named DOMHighResTimeStamp (the measure) between two marks to the browser\'s performance timeline.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMeasure)\n */\ninterface PerformanceMeasure extends PerformanceEntry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMeasure/detail) */\n readonly detail: any;\n}\n\ndeclare var PerformanceMeasure: {\n prototype: PerformanceMeasure;\n new(): PerformanceMeasure;\n};\n\n/**\n * The legacy PerformanceNavigation interface represents information about how the navigation to the current document was done.\n * @deprecated This interface is deprecated in the Navigation Timing Level 2 specification. Please use the PerformanceNavigationTiming interface instead.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigation)\n */\ninterface PerformanceNavigation {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigation/redirectCount)\n */\n readonly redirectCount: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigation/type)\n */\n readonly type: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigation/toJSON)\n */\n toJSON(): any;\n readonly TYPE_NAVIGATE: 0;\n readonly TYPE_RELOAD: 1;\n readonly TYPE_BACK_FORWARD: 2;\n readonly TYPE_RESERVED: 255;\n}\n\n/** @deprecated */\ndeclare var PerformanceNavigation: {\n prototype: PerformanceNavigation;\n new(): PerformanceNavigation;\n readonly TYPE_NAVIGATE: 0;\n readonly TYPE_RELOAD: 1;\n readonly TYPE_BACK_FORWARD: 2;\n readonly TYPE_RESERVED: 255;\n};\n\n/**\n * Provides methods and properties to store and retrieve metrics regarding the browser\'s document navigation events. For example, this interface can be used to determine how much time it takes to load or unload a document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming)\n */\ninterface PerformanceNavigationTiming extends PerformanceResourceTiming {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/domComplete) */\n readonly domComplete: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/domContentLoadedEventEnd) */\n readonly domContentLoadedEventEnd: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/domContentLoadedEventStart) */\n readonly domContentLoadedEventStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/domInteractive) */\n readonly domInteractive: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/loadEventEnd) */\n readonly loadEventEnd: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/loadEventStart) */\n readonly loadEventStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/redirectCount) */\n readonly redirectCount: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/type) */\n readonly type: NavigationTimingType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/unloadEventEnd) */\n readonly unloadEventEnd: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/unloadEventStart) */\n readonly unloadEventStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/toJSON) */\n toJSON(): any;\n}\n\ndeclare var PerformanceNavigationTiming: {\n prototype: PerformanceNavigationTiming;\n new(): PerformanceNavigationTiming;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver) */\ninterface PerformanceObserver {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/disconnect) */\n disconnect(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/observe) */\n observe(options?: PerformanceObserverInit): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/takeRecords) */\n takeRecords(): PerformanceEntryList;\n}\n\ndeclare var PerformanceObserver: {\n prototype: PerformanceObserver;\n new(callback: PerformanceObserverCallback): PerformanceObserver;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/supportedEntryTypes_static) */\n readonly supportedEntryTypes: ReadonlyArray<string>;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList) */\ninterface PerformanceObserverEntryList {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntries) */\n getEntries(): PerformanceEntryList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntriesByName) */\n getEntriesByName(name: string, type?: string): PerformanceEntryList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntriesByType) */\n getEntriesByType(type: string): PerformanceEntryList;\n}\n\ndeclare var PerformanceObserverEntryList: {\n prototype: PerformanceObserverEntryList;\n new(): PerformanceObserverEntryList;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformancePaintTiming) */\ninterface PerformancePaintTiming extends PerformanceEntry {\n}\n\ndeclare var PerformancePaintTiming: {\n prototype: PerformancePaintTiming;\n new(): PerformancePaintTiming;\n};\n\n/**\n * Enables retrieval and analysis of detailed network timing data regarding the loading of an application\'s resources. An application can use the timing metrics to determine, for example, the length of time it takes to fetch a specific resource, such as an XMLHttpRequest, <SVG>, image, or script.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming)\n */\ninterface PerformanceResourceTiming extends PerformanceEntry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/connectEnd) */\n readonly connectEnd: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/connectStart) */\n readonly connectStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/decodedBodySize) */\n readonly decodedBodySize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/domainLookupEnd) */\n readonly domainLookupEnd: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/domainLookupStart) */\n readonly domainLookupStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/encodedBodySize) */\n readonly encodedBodySize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/fetchStart) */\n readonly fetchStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/initiatorType) */\n readonly initiatorType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/nextHopProtocol) */\n readonly nextHopProtocol: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/redirectEnd) */\n readonly redirectEnd: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/redirectStart) */\n readonly redirectStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/requestStart) */\n readonly requestStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/responseEnd) */\n readonly responseEnd: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/responseStart) */\n readonly responseStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/secureConnectionStart) */\n readonly secureConnectionStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/serverTiming) */\n readonly serverTiming: ReadonlyArray<PerformanceServerTiming>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/transferSize) */\n readonly transferSize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/workerStart) */\n readonly workerStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/toJSON) */\n toJSON(): any;\n}\n\ndeclare var PerformanceResourceTiming: {\n prototype: PerformanceResourceTiming;\n new(): PerformanceResourceTiming;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming) */\ninterface PerformanceServerTiming {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/description) */\n readonly description: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/duration) */\n readonly duration: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/toJSON) */\n toJSON(): any;\n}\n\ndeclare var PerformanceServerTiming: {\n prototype: PerformanceServerTiming;\n new(): PerformanceServerTiming;\n};\n\n/**\n * A legacy interface kept for backwards compatibility and contains properties that offer performance timing information for various events which occur during the loading and use of the current page. You get a PerformanceTiming object describing your page using the window.performance.timing property.\n * @deprecated This interface is deprecated in the Navigation Timing Level 2 specification. Please use the PerformanceNavigationTiming interface instead.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming)\n */\ninterface PerformanceTiming {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/connectEnd)\n */\n readonly connectEnd: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/connectStart)\n */\n readonly connectStart: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domComplete)\n */\n readonly domComplete: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domContentLoadedEventEnd)\n */\n readonly domContentLoadedEventEnd: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domContentLoadedEventStart)\n */\n readonly domContentLoadedEventStart: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domInteractive)\n */\n readonly domInteractive: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domLoading)\n */\n readonly domLoading: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domainLookupEnd)\n */\n readonly domainLookupEnd: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domainLookupStart)\n */\n readonly domainLookupStart: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/fetchStart)\n */\n readonly fetchStart: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/loadEventEnd)\n */\n readonly loadEventEnd: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/loadEventStart)\n */\n readonly loadEventStart: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/navigationStart)\n */\n readonly navigationStart: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/redirectEnd)\n */\n readonly redirectEnd: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/redirectStart)\n */\n readonly redirectStart: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/requestStart)\n */\n readonly requestStart: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/responseEnd)\n */\n readonly responseEnd: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/responseStart)\n */\n readonly responseStart: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/secureConnectionStart)\n */\n readonly secureConnectionStart: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/unloadEventEnd)\n */\n readonly unloadEventEnd: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/unloadEventStart)\n */\n readonly unloadEventStart: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/toJSON)\n */\n toJSON(): any;\n}\n\n/** @deprecated */\ndeclare var PerformanceTiming: {\n prototype: PerformanceTiming;\n new(): PerformanceTiming;\n};\n\n/**\n * PeriodicWave has no inputs or outputs; it is used to define custom oscillators when calling OscillatorNode.setPeriodicWave(). The PeriodicWave itself is created/returned by AudioContext.createPeriodicWave().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PeriodicWave)\n */\ninterface PeriodicWave {\n}\n\ndeclare var PeriodicWave: {\n prototype: PeriodicWave;\n new(context: BaseAudioContext, options?: PeriodicWaveOptions): PeriodicWave;\n};\n\ninterface PermissionStatusEventMap {\n "change": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus) */\ninterface PermissionStatus extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/change_event) */\n onchange: ((this: PermissionStatus, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/state) */\n readonly state: PermissionState;\n addEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var PermissionStatus: {\n prototype: PermissionStatus;\n new(): PermissionStatus;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Permissions) */\ninterface Permissions {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Permissions/query) */\n query(permissionDesc: PermissionDescriptor): Promise<PermissionStatus>;\n}\n\ndeclare var Permissions: {\n prototype: Permissions;\n new(): Permissions;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PictureInPictureEvent) */\ninterface PictureInPictureEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PictureInPictureEvent/pictureInPictureWindow) */\n readonly pictureInPictureWindow: PictureInPictureWindow;\n}\n\ndeclare var PictureInPictureEvent: {\n prototype: PictureInPictureEvent;\n new(type: string, eventInitDict: PictureInPictureEventInit): PictureInPictureEvent;\n};\n\ninterface PictureInPictureWindowEventMap {\n "resize": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PictureInPictureWindow) */\ninterface PictureInPictureWindow extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PictureInPictureWindow/height) */\n readonly height: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PictureInPictureWindow/resize_event) */\n onresize: ((this: PictureInPictureWindow, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PictureInPictureWindow/width) */\n readonly width: number;\n addEventListener<K extends keyof PictureInPictureWindowEventMap>(type: K, listener: (this: PictureInPictureWindow, ev: PictureInPictureWindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof PictureInPictureWindowEventMap>(type: K, listener: (this: PictureInPictureWindow, ev: PictureInPictureWindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var PictureInPictureWindow: {\n prototype: PictureInPictureWindow;\n new(): PictureInPictureWindow;\n};\n\n/**\n * Provides information about a browser plugin.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Plugin)\n */\ninterface Plugin {\n /**\n * Returns the plugin\'s description.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Plugin/description)\n */\n readonly description: string;\n /**\n * Returns the plugin library\'s filename, if applicable on the current platform.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Plugin/filename)\n */\n readonly filename: string;\n /**\n * Returns the number of MIME types, represented by MimeType objects, supported by the plugin.\n * @deprecated\n */\n readonly length: number;\n /**\n * Returns the plugin\'s name.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Plugin/name)\n */\n readonly name: string;\n /**\n * Returns the specified MimeType object.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Plugin/item)\n */\n item(index: number): MimeType | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Plugin/namedItem)\n */\n namedItem(name: string): MimeType | null;\n [index: number]: MimeType;\n}\n\n/** @deprecated */\ndeclare var Plugin: {\n prototype: Plugin;\n new(): Plugin;\n};\n\n/**\n * Used to store a list of Plugin objects describing the available plugins; it\'s returned by the window.navigator.plugins property. The PluginArray is not a JavaScript array, but has the length property and supports accessing individual items using bracket notation (plugins[2]), as well as via item(index) and namedItem("name") methods.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PluginArray)\n */\ninterface PluginArray {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PluginArray/length)\n */\n readonly length: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PluginArray/item)\n */\n item(index: number): Plugin | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PluginArray/namedItem)\n */\n namedItem(name: string): Plugin | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PluginArray/refresh)\n */\n refresh(): void;\n [index: number]: Plugin;\n}\n\n/** @deprecated */\ndeclare var PluginArray: {\n prototype: PluginArray;\n new(): PluginArray;\n};\n\n/**\n * The state of a DOM event produced by a pointer such as the geometry of the contact point, the device type that generated the event, the amount of pressure that was applied on the contact surface, etc.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent)\n */\ninterface PointerEvent extends MouseEvent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/height) */\n readonly height: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/isPrimary) */\n readonly isPrimary: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/pointerId) */\n readonly pointerId: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/pointerType) */\n readonly pointerType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/pressure) */\n readonly pressure: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/tangentialPressure) */\n readonly tangentialPressure: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/tiltX) */\n readonly tiltX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/tiltY) */\n readonly tiltY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/twist) */\n readonly twist: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/width) */\n readonly width: number;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/getCoalescedEvents)\n */\n getCoalescedEvents(): PointerEvent[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/getPredictedEvents) */\n getPredictedEvents(): PointerEvent[];\n}\n\ndeclare var PointerEvent: {\n prototype: PointerEvent;\n new(type: string, eventInitDict?: PointerEventInit): PointerEvent;\n};\n\n/**\n * PopStateEvent is an event handler for the popstate event on the window.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PopStateEvent)\n */\ninterface PopStateEvent extends Event {\n /**\n * Returns a copy of the information that was provided to pushState() or replaceState().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PopStateEvent/state)\n */\n readonly state: any;\n}\n\ndeclare var PopStateEvent: {\n prototype: PopStateEvent;\n new(type: string, eventInitDict?: PopStateEventInit): PopStateEvent;\n};\n\ninterface PopoverInvokerElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/popoverTargetAction) */\n popoverTargetAction: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/popoverTargetElement) */\n popoverTargetElement: Element | null;\n}\n\n/**\n * A processing instruction embeds application-specific instructions in XML which can be ignored by other applications that don\'t recognize them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProcessingInstruction)\n */\ninterface ProcessingInstruction extends CharacterData, LinkStyle {\n readonly ownerDocument: Document;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProcessingInstruction/target) */\n readonly target: string;\n}\n\ndeclare var ProcessingInstruction: {\n prototype: ProcessingInstruction;\n new(): ProcessingInstruction;\n};\n\n/**\n * Events measuring progress of an underlying process, like an HTTP request (for an XMLHttpRequest, or the loading of the underlying resource of an <img>, <audio>, <video>, <style> or <link>).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent)\n */\ninterface ProgressEvent<T extends EventTarget = EventTarget> extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/lengthComputable) */\n readonly lengthComputable: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/loaded) */\n readonly loaded: number;\n readonly target: T | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/total) */\n readonly total: number;\n}\n\ndeclare var ProgressEvent: {\n prototype: ProgressEvent;\n new(type: string, eventInitDict?: ProgressEventInit): ProgressEvent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent) */\ninterface PromiseRejectionEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent/promise) */\n readonly promise: Promise<any>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent/reason) */\n readonly reason: any;\n}\n\ndeclare var PromiseRejectionEvent: {\n prototype: PromiseRejectionEvent;\n new(type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential)\n */\ninterface PublicKeyCredential extends Credential {\n readonly authenticatorAttachment: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/rawId) */\n readonly rawId: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/response) */\n readonly response: AuthenticatorResponse;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/getClientExtensionResults) */\n getClientExtensionResults(): AuthenticationExtensionsClientOutputs;\n}\n\ndeclare var PublicKeyCredential: {\n prototype: PublicKeyCredential;\n new(): PublicKeyCredential;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/isConditionalMediationAvailable) */\n isConditionalMediationAvailable(): Promise<boolean>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/isUserVerifyingPlatformAuthenticatorAvailable_static) */\n isUserVerifyingPlatformAuthenticatorAvailable(): Promise<boolean>;\n};\n\n/**\n * This Push API interface provides a way to receive notifications from third-party servers as well as request URLs for push notifications.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager)\n */\ninterface PushManager {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/getSubscription) */\n getSubscription(): Promise<PushSubscription | null>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/permissionState) */\n permissionState(options?: PushSubscriptionOptionsInit): Promise<PermissionState>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/subscribe) */\n subscribe(options?: PushSubscriptionOptionsInit): Promise<PushSubscription>;\n}\n\ndeclare var PushManager: {\n prototype: PushManager;\n new(): PushManager;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/supportedContentEncodings_static) */\n readonly supportedContentEncodings: ReadonlyArray<string>;\n};\n\n/**\n * This Push API interface provides a subcription\'s URL endpoint and allows unsubscription from a push service.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription)\n */\ninterface PushSubscription {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/endpoint) */\n readonly endpoint: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/expirationTime) */\n readonly expirationTime: EpochTimeStamp | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/options) */\n readonly options: PushSubscriptionOptions;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/getKey) */\n getKey(name: PushEncryptionKeyName): ArrayBuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/toJSON) */\n toJSON(): PushSubscriptionJSON;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/unsubscribe) */\n unsubscribe(): Promise<boolean>;\n}\n\ndeclare var PushSubscription: {\n prototype: PushSubscription;\n new(): PushSubscription;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscriptionOptions)\n */\ninterface PushSubscriptionOptions {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscriptionOptions/applicationServerKey) */\n readonly applicationServerKey: ArrayBuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscriptionOptions/userVisibleOnly) */\n readonly userVisibleOnly: boolean;\n}\n\ndeclare var PushSubscriptionOptions: {\n prototype: PushSubscriptionOptions;\n new(): PushSubscriptionOptions;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCCertificate) */\ninterface RTCCertificate {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCCertificate/expires) */\n readonly expires: EpochTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCCertificate/getFingerprints) */\n getFingerprints(): RTCDtlsFingerprint[];\n}\n\ndeclare var RTCCertificate: {\n prototype: RTCCertificate;\n new(): RTCCertificate;\n};\n\ninterface RTCDTMFSenderEventMap {\n "tonechange": RTCDTMFToneChangeEvent;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender) */\ninterface RTCDTMFSender extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/canInsertDTMF) */\n readonly canInsertDTMF: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/tonechange_event) */\n ontonechange: ((this: RTCDTMFSender, ev: RTCDTMFToneChangeEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/toneBuffer) */\n readonly toneBuffer: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/insertDTMF) */\n insertDTMF(tones: string, duration?: number, interToneGap?: number): void;\n addEventListener<K extends keyof RTCDTMFSenderEventMap>(type: K, listener: (this: RTCDTMFSender, ev: RTCDTMFSenderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof RTCDTMFSenderEventMap>(type: K, listener: (this: RTCDTMFSender, ev: RTCDTMFSenderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var RTCDTMFSender: {\n prototype: RTCDTMFSender;\n new(): RTCDTMFSender;\n};\n\n/**\n * Events sent to indicate that DTMF tones have started or finished playing. This interface is used by the tonechange event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFToneChangeEvent)\n */\ninterface RTCDTMFToneChangeEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFToneChangeEvent/tone) */\n readonly tone: string;\n}\n\ndeclare var RTCDTMFToneChangeEvent: {\n prototype: RTCDTMFToneChangeEvent;\n new(type: string, eventInitDict?: RTCDTMFToneChangeEventInit): RTCDTMFToneChangeEvent;\n};\n\ninterface RTCDataChannelEventMap {\n "bufferedamountlow": Event;\n "close": Event;\n "closing": Event;\n "error": Event;\n "message": MessageEvent;\n "open": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel) */\ninterface RTCDataChannel extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/binaryType) */\n binaryType: BinaryType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/bufferedAmount) */\n readonly bufferedAmount: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/bufferedAmountLowThreshold) */\n bufferedAmountLowThreshold: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/id) */\n readonly id: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/label) */\n readonly label: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/maxPacketLifeTime) */\n readonly maxPacketLifeTime: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/maxRetransmits) */\n readonly maxRetransmits: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/negotiated) */\n readonly negotiated: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/bufferedamountlow_event) */\n onbufferedamountlow: ((this: RTCDataChannel, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/close_event) */\n onclose: ((this: RTCDataChannel, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/closing_event) */\n onclosing: ((this: RTCDataChannel, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/error_event) */\n onerror: ((this: RTCDataChannel, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/message_event) */\n onmessage: ((this: RTCDataChannel, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/open_event) */\n onopen: ((this: RTCDataChannel, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/ordered) */\n readonly ordered: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/protocol) */\n readonly protocol: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/readyState) */\n readonly readyState: RTCDataChannelState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/close) */\n close(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/send) */\n send(data: string): void;\n send(data: Blob): void;\n send(data: ArrayBuffer): void;\n send(data: ArrayBufferView): void;\n addEventListener<K extends keyof RTCDataChannelEventMap>(type: K, listener: (this: RTCDataChannel, ev: RTCDataChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof RTCDataChannelEventMap>(type: K, listener: (this: RTCDataChannel, ev: RTCDataChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var RTCDataChannel: {\n prototype: RTCDataChannel;\n new(): RTCDataChannel;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannelEvent) */\ninterface RTCDataChannelEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannelEvent/channel) */\n readonly channel: RTCDataChannel;\n}\n\ndeclare var RTCDataChannelEvent: {\n prototype: RTCDataChannelEvent;\n new(type: string, eventInitDict: RTCDataChannelEventInit): RTCDataChannelEvent;\n};\n\ninterface RTCDtlsTransportEventMap {\n "error": Event;\n "statechange": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDtlsTransport) */\ninterface RTCDtlsTransport extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDtlsTransport/iceTransport) */\n readonly iceTransport: RTCIceTransport;\n onerror: ((this: RTCDtlsTransport, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDtlsTransport/statechange_event) */\n onstatechange: ((this: RTCDtlsTransport, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDtlsTransport/state) */\n readonly state: RTCDtlsTransportState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDtlsTransport/getRemoteCertificates) */\n getRemoteCertificates(): ArrayBuffer[];\n addEventListener<K extends keyof RTCDtlsTransportEventMap>(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof RTCDtlsTransportEventMap>(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var RTCDtlsTransport: {\n prototype: RTCDtlsTransport;\n new(): RTCDtlsTransport;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame) */\ninterface RTCEncodedAudioFrame {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/data) */\n data: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/timestamp) */\n readonly timestamp: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/getMetadata) */\n getMetadata(): RTCEncodedAudioFrameMetadata;\n}\n\ndeclare var RTCEncodedAudioFrame: {\n prototype: RTCEncodedAudioFrame;\n new(): RTCEncodedAudioFrame;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame) */\ninterface RTCEncodedVideoFrame {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/data) */\n data: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/timestamp) */\n readonly timestamp: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/type) */\n readonly type: RTCEncodedVideoFrameType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/getMetadata) */\n getMetadata(): RTCEncodedVideoFrameMetadata;\n}\n\ndeclare var RTCEncodedVideoFrame: {\n prototype: RTCEncodedVideoFrame;\n new(): RTCEncodedVideoFrame;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCError) */\ninterface RTCError extends DOMException {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCError/errorDetail) */\n readonly errorDetail: RTCErrorDetailType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCError/receivedAlert) */\n readonly receivedAlert: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCError/sctpCauseCode) */\n readonly sctpCauseCode: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCError/sdpLineNumber) */\n readonly sdpLineNumber: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCError/sentAlert) */\n readonly sentAlert: number | null;\n}\n\ndeclare var RTCError: {\n prototype: RTCError;\n new(init: RTCErrorInit, message?: string): RTCError;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCErrorEvent) */\ninterface RTCErrorEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCErrorEvent/error) */\n readonly error: RTCError;\n}\n\ndeclare var RTCErrorEvent: {\n prototype: RTCErrorEvent;\n new(type: string, eventInitDict: RTCErrorEventInit): RTCErrorEvent;\n};\n\n/**\n * The RTCIceCandidate interface—part of the WebRTC API—represents a candidate Internet Connectivity Establishment (ICE) configuration which may be used to establish an RTCPeerConnection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate)\n */\ninterface RTCIceCandidate {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/address) */\n readonly address: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/candidate) */\n readonly candidate: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/component) */\n readonly component: RTCIceComponent | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/foundation) */\n readonly foundation: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/port) */\n readonly port: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/priority) */\n readonly priority: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/protocol) */\n readonly protocol: RTCIceProtocol | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/relatedAddress) */\n readonly relatedAddress: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/relatedPort) */\n readonly relatedPort: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/sdpMLineIndex) */\n readonly sdpMLineIndex: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/sdpMid) */\n readonly sdpMid: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/tcpType) */\n readonly tcpType: RTCIceTcpCandidateType | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/type) */\n readonly type: RTCIceCandidateType | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/usernameFragment) */\n readonly usernameFragment: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/toJSON) */\n toJSON(): RTCIceCandidateInit;\n}\n\ndeclare var RTCIceCandidate: {\n prototype: RTCIceCandidate;\n new(candidateInitDict?: RTCIceCandidateInit): RTCIceCandidate;\n};\n\ninterface RTCIceTransportEventMap {\n "gatheringstatechange": Event;\n "selectedcandidatepairchange": Event;\n "statechange": Event;\n}\n\n/**\n * Provides access to information about the ICE transport layer over which the data is being sent and received.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceTransport)\n */\ninterface RTCIceTransport extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceTransport/gatheringState) */\n readonly gatheringState: RTCIceGathererState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceTransport/gatheringstatechange_event) */\n ongatheringstatechange: ((this: RTCIceTransport, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceTransport/selectedcandidatepairchange_event) */\n onselectedcandidatepairchange: ((this: RTCIceTransport, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceTransport/statechange_event) */\n onstatechange: ((this: RTCIceTransport, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceTransport/state) */\n readonly state: RTCIceTransportState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceTransport/getSelectedCandidatePair) */\n getSelectedCandidatePair(): RTCIceCandidatePair | null;\n addEventListener<K extends keyof RTCIceTransportEventMap>(type: K, listener: (this: RTCIceTransport, ev: RTCIceTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof RTCIceTransportEventMap>(type: K, listener: (this: RTCIceTransport, ev: RTCIceTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var RTCIceTransport: {\n prototype: RTCIceTransport;\n new(): RTCIceTransport;\n};\n\ninterface RTCPeerConnectionEventMap {\n "connectionstatechange": Event;\n "datachannel": RTCDataChannelEvent;\n "icecandidate": RTCPeerConnectionIceEvent;\n "icecandidateerror": RTCPeerConnectionIceErrorEvent;\n "iceconnectionstatechange": Event;\n "icegatheringstatechange": Event;\n "negotiationneeded": Event;\n "signalingstatechange": Event;\n "track": RTCTrackEvent;\n}\n\n/**\n * A WebRTC connection between the local computer and a remote peer. It provides methods to connect to a remote peer, maintain and monitor the connection, and close the connection once it\'s no longer needed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection)\n */\ninterface RTCPeerConnection extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/canTrickleIceCandidates) */\n readonly canTrickleIceCandidates: boolean | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/connectionState) */\n readonly connectionState: RTCPeerConnectionState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/currentLocalDescription) */\n readonly currentLocalDescription: RTCSessionDescription | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/currentRemoteDescription) */\n readonly currentRemoteDescription: RTCSessionDescription | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/iceConnectionState) */\n readonly iceConnectionState: RTCIceConnectionState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/iceGatheringState) */\n readonly iceGatheringState: RTCIceGatheringState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/localDescription) */\n readonly localDescription: RTCSessionDescription | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/connectionstatechange_event) */\n onconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/datachannel_event) */\n ondatachannel: ((this: RTCPeerConnection, ev: RTCDataChannelEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/icecandidate_event) */\n onicecandidate: ((this: RTCPeerConnection, ev: RTCPeerConnectionIceEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/icecandidateerror_event) */\n onicecandidateerror: ((this: RTCPeerConnection, ev: RTCPeerConnectionIceErrorEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/iceconnectionstatechange_event) */\n oniceconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/icegatheringstatechange_event) */\n onicegatheringstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/negotiationneeded_event) */\n onnegotiationneeded: ((this: RTCPeerConnection, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/signalingstatechange_event) */\n onsignalingstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/track_event) */\n ontrack: ((this: RTCPeerConnection, ev: RTCTrackEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/pendingLocalDescription) */\n readonly pendingLocalDescription: RTCSessionDescription | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/pendingRemoteDescription) */\n readonly pendingRemoteDescription: RTCSessionDescription | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/remoteDescription) */\n readonly remoteDescription: RTCSessionDescription | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/sctp) */\n readonly sctp: RTCSctpTransport | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/signalingState) */\n readonly signalingState: RTCSignalingState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addIceCandidate) */\n addIceCandidate(candidate?: RTCIceCandidateInit): Promise<void>;\n /** @deprecated */\n addIceCandidate(candidate: RTCIceCandidateInit, successCallback: VoidFunction, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addTrack) */\n addTrack(track: MediaStreamTrack, ...streams: MediaStream[]): RTCRtpSender;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addTransceiver) */\n addTransceiver(trackOrKind: MediaStreamTrack | string, init?: RTCRtpTransceiverInit): RTCRtpTransceiver;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/close) */\n close(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createAnswer) */\n createAnswer(options?: RTCAnswerOptions): Promise<RTCSessionDescriptionInit>;\n /** @deprecated */\n createAnswer(successCallback: RTCSessionDescriptionCallback, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createDataChannel) */\n createDataChannel(label: string, dataChannelDict?: RTCDataChannelInit): RTCDataChannel;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createOffer) */\n createOffer(options?: RTCOfferOptions): Promise<RTCSessionDescriptionInit>;\n /** @deprecated */\n createOffer(successCallback: RTCSessionDescriptionCallback, failureCallback: RTCPeerConnectionErrorCallback, options?: RTCOfferOptions): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getConfiguration) */\n getConfiguration(): RTCConfiguration;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getReceivers) */\n getReceivers(): RTCRtpReceiver[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getSenders) */\n getSenders(): RTCRtpSender[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getStats) */\n getStats(selector?: MediaStreamTrack | null): Promise<RTCStatsReport>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getTransceivers) */\n getTransceivers(): RTCRtpTransceiver[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/removeTrack) */\n removeTrack(sender: RTCRtpSender): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/restartIce) */\n restartIce(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setConfiguration) */\n setConfiguration(configuration?: RTCConfiguration): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setLocalDescription) */\n setLocalDescription(description?: RTCLocalSessionDescriptionInit): Promise<void>;\n /** @deprecated */\n setLocalDescription(description: RTCLocalSessionDescriptionInit, successCallback: VoidFunction, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setRemoteDescription) */\n setRemoteDescription(description: RTCSessionDescriptionInit): Promise<void>;\n /** @deprecated */\n setRemoteDescription(description: RTCSessionDescriptionInit, successCallback: VoidFunction, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;\n addEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: RTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: RTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var RTCPeerConnection: {\n prototype: RTCPeerConnection;\n new(configuration?: RTCConfiguration): RTCPeerConnection;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/generateCertificate_static) */\n generateCertificate(keygenAlgorithm: AlgorithmIdentifier): Promise<RTCCertificate>;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnectionIceErrorEvent) */\ninterface RTCPeerConnectionIceErrorEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnectionIceErrorEvent/address) */\n readonly address: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnectionIceErrorEvent/errorCode) */\n readonly errorCode: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnectionIceErrorEvent/errorText) */\n readonly errorText: string;\n readonly port: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnectionIceErrorEvent/url) */\n readonly url: string;\n}\n\ndeclare var RTCPeerConnectionIceErrorEvent: {\n prototype: RTCPeerConnectionIceErrorEvent;\n new(type: string, eventInitDict: RTCPeerConnectionIceErrorEventInit): RTCPeerConnectionIceErrorEvent;\n};\n\n/**\n * Events that occurs in relation to ICE candidates with the target, usually an RTCPeerConnection. Only one event is of this type: icecandidate.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnectionIceEvent)\n */\ninterface RTCPeerConnectionIceEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnectionIceEvent/candidate) */\n readonly candidate: RTCIceCandidate | null;\n}\n\ndeclare var RTCPeerConnectionIceEvent: {\n prototype: RTCPeerConnectionIceEvent;\n new(type: string, eventInitDict?: RTCPeerConnectionIceEventInit): RTCPeerConnectionIceEvent;\n};\n\n/**\n * This WebRTC API interface manages the reception and decoding of data for a MediaStreamTrack on an RTCPeerConnection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver)\n */\ninterface RTCRtpReceiver {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/track) */\n readonly track: MediaStreamTrack;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/transform) */\n transform: RTCRtpTransform | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/transport) */\n readonly transport: RTCDtlsTransport | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/getContributingSources) */\n getContributingSources(): RTCRtpContributingSource[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/getParameters) */\n getParameters(): RTCRtpReceiveParameters;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/getStats) */\n getStats(): Promise<RTCStatsReport>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/getSynchronizationSources) */\n getSynchronizationSources(): RTCRtpSynchronizationSource[];\n}\n\ndeclare var RTCRtpReceiver: {\n prototype: RTCRtpReceiver;\n new(): RTCRtpReceiver;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/getCapabilities_static) */\n getCapabilities(kind: string): RTCRtpCapabilities | null;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransform) */\ninterface RTCRtpScriptTransform {\n}\n\ndeclare var RTCRtpScriptTransform: {\n prototype: RTCRtpScriptTransform;\n new(worker: Worker, options?: any, transfer?: any[]): RTCRtpScriptTransform;\n};\n\n/**\n * Provides the ability to control and obtain details about how a particular MediaStreamTrack is encoded and sent to a remote peer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender)\n */\ninterface RTCRtpSender {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/dtmf) */\n readonly dtmf: RTCDTMFSender | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/track) */\n readonly track: MediaStreamTrack | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/transform) */\n transform: RTCRtpTransform | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/transport) */\n readonly transport: RTCDtlsTransport | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/getParameters) */\n getParameters(): RTCRtpSendParameters;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/getStats) */\n getStats(): Promise<RTCStatsReport>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/replaceTrack) */\n replaceTrack(withTrack: MediaStreamTrack | null): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/setParameters) */\n setParameters(parameters: RTCRtpSendParameters, setParameterOptions?: RTCSetParameterOptions): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/setStreams) */\n setStreams(...streams: MediaStream[]): void;\n}\n\ndeclare var RTCRtpSender: {\n prototype: RTCRtpSender;\n new(): RTCRtpSender;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/getCapabilities_static) */\n getCapabilities(kind: string): RTCRtpCapabilities | null;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver) */\ninterface RTCRtpTransceiver {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/currentDirection) */\n readonly currentDirection: RTCRtpTransceiverDirection | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/direction) */\n direction: RTCRtpTransceiverDirection;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/mid) */\n readonly mid: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/receiver) */\n readonly receiver: RTCRtpReceiver;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/sender) */\n readonly sender: RTCRtpSender;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/setCodecPreferences) */\n setCodecPreferences(codecs: RTCRtpCodecCapability[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/stop) */\n stop(): void;\n}\n\ndeclare var RTCRtpTransceiver: {\n prototype: RTCRtpTransceiver;\n new(): RTCRtpTransceiver;\n};\n\ninterface RTCSctpTransportEventMap {\n "statechange": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport) */\ninterface RTCSctpTransport extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport/maxChannels) */\n readonly maxChannels: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport/maxMessageSize) */\n readonly maxMessageSize: number;\n onstatechange: ((this: RTCSctpTransport, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport/state) */\n readonly state: RTCSctpTransportState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport/transport) */\n readonly transport: RTCDtlsTransport;\n addEventListener<K extends keyof RTCSctpTransportEventMap>(type: K, listener: (this: RTCSctpTransport, ev: RTCSctpTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof RTCSctpTransportEventMap>(type: K, listener: (this: RTCSctpTransport, ev: RTCSctpTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var RTCSctpTransport: {\n prototype: RTCSctpTransport;\n new(): RTCSctpTransport;\n};\n\n/**\n * One end of a connection—or potential connection—and how it\'s configured. Each RTCSessionDescription consists of a description type indicating which part of the offer/answer negotiation process it describes and of the SDP descriptor of the session.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSessionDescription)\n */\ninterface RTCSessionDescription {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSessionDescription/sdp) */\n readonly sdp: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSessionDescription/type) */\n readonly type: RTCSdpType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSessionDescription/toJSON) */\n toJSON(): any;\n}\n\ndeclare var RTCSessionDescription: {\n prototype: RTCSessionDescription;\n new(descriptionInitDict: RTCSessionDescriptionInit): RTCSessionDescription;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCStatsReport) */\ninterface RTCStatsReport {\n forEach(callbackfn: (value: any, key: string, parent: RTCStatsReport) => void, thisArg?: any): void;\n}\n\ndeclare var RTCStatsReport: {\n prototype: RTCStatsReport;\n new(): RTCStatsReport;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent) */\ninterface RTCTrackEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent/receiver) */\n readonly receiver: RTCRtpReceiver;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent/streams) */\n readonly streams: ReadonlyArray<MediaStream>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent/track) */\n readonly track: MediaStreamTrack;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent/transceiver) */\n readonly transceiver: RTCRtpTransceiver;\n}\n\ndeclare var RTCTrackEvent: {\n prototype: RTCTrackEvent;\n new(type: string, eventInitDict: RTCTrackEventInit): RTCTrackEvent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RadioNodeList) */\ninterface RadioNodeList extends NodeList {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RadioNodeList/value) */\n value: string;\n}\n\ndeclare var RadioNodeList: {\n prototype: RadioNodeList;\n new(): RadioNodeList;\n};\n\n/**\n * A fragment of a document that can contain nodes and parts of text nodes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range)\n */\ninterface Range extends AbstractRange {\n /**\n * Returns the node, furthest away from the document, that is an ancestor of both range\'s start node and end node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/commonAncestorContainer)\n */\n readonly commonAncestorContainer: Node;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/cloneContents) */\n cloneContents(): DocumentFragment;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/cloneRange) */\n cloneRange(): Range;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/collapse) */\n collapse(toStart?: boolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/compareBoundaryPoints) */\n compareBoundaryPoints(how: number, sourceRange: Range): number;\n /**\n * Returns −1 if the point is before the range, 0 if the point is in the range, and 1 if the point is after the range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/comparePoint)\n */\n comparePoint(node: Node, offset: number): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/createContextualFragment) */\n createContextualFragment(fragment: string): DocumentFragment;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/deleteContents) */\n deleteContents(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/detach) */\n detach(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/extractContents) */\n extractContents(): DocumentFragment;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/getBoundingClientRect) */\n getBoundingClientRect(): DOMRect;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/getClientRects) */\n getClientRects(): DOMRectList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/insertNode) */\n insertNode(node: Node): void;\n /**\n * Returns whether range intersects node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/intersectsNode)\n */\n intersectsNode(node: Node): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/isPointInRange) */\n isPointInRange(node: Node, offset: number): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/selectNode) */\n selectNode(node: Node): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/selectNodeContents) */\n selectNodeContents(node: Node): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setEnd) */\n setEnd(node: Node, offset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setEndAfter) */\n setEndAfter(node: Node): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setEndBefore) */\n setEndBefore(node: Node): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setStart) */\n setStart(node: Node, offset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setStartAfter) */\n setStartAfter(node: Node): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setStartBefore) */\n setStartBefore(node: Node): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/surroundContents) */\n surroundContents(newParent: Node): void;\n toString(): string;\n readonly START_TO_START: 0;\n readonly START_TO_END: 1;\n readonly END_TO_END: 2;\n readonly END_TO_START: 3;\n}\n\ndeclare var Range: {\n prototype: Range;\n new(): Range;\n readonly START_TO_START: 0;\n readonly START_TO_END: 1;\n readonly END_TO_END: 2;\n readonly END_TO_START: 3;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController) */\ninterface ReadableByteStreamController {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/byobRequest) */\n readonly byobRequest: ReadableStreamBYOBRequest | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/desiredSize) */\n readonly desiredSize: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/close) */\n close(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/enqueue) */\n enqueue(chunk: ArrayBufferView): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/error) */\n error(e?: any): void;\n}\n\ndeclare var ReadableByteStreamController: {\n prototype: ReadableByteStreamController;\n new(): ReadableByteStreamController;\n};\n\n/**\n * This Streams API interface represents a readable stream of byte data. The Fetch API offers a concrete instance of a ReadableStream through the body property of a Response object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream)\n */\ninterface ReadableStream<R = any> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/locked) */\n readonly locked: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/cancel) */\n cancel(reason?: any): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/getReader) */\n getReader(options: { mode: "byob" }): ReadableStreamBYOBReader;\n getReader(): ReadableStreamDefaultReader<R>;\n getReader(options?: ReadableStreamGetReaderOptions): ReadableStreamReader<R>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/pipeThrough) */\n pipeThrough<T>(transform: ReadableWritablePair<T, R>, options?: StreamPipeOptions): ReadableStream<T>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/pipeTo) */\n pipeTo(destination: WritableStream<R>, options?: StreamPipeOptions): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/tee) */\n tee(): [ReadableStream<R>, ReadableStream<R>];\n}\n\ndeclare var ReadableStream: {\n prototype: ReadableStream;\n new(underlyingSource: UnderlyingByteSource, strategy?: { highWaterMark?: number }): ReadableStream<Uint8Array>;\n new<R = any>(underlyingSource: UnderlyingDefaultSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;\n new<R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader) */\ninterface ReadableStreamBYOBReader extends ReadableStreamGenericReader {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/read) */\n read<T extends ArrayBufferView>(view: T): Promise<ReadableStreamReadResult<T>>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/releaseLock) */\n releaseLock(): void;\n}\n\ndeclare var ReadableStreamBYOBReader: {\n prototype: ReadableStreamBYOBReader;\n new(stream: ReadableStream): ReadableStreamBYOBReader;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest) */\ninterface ReadableStreamBYOBRequest {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/view) */\n readonly view: ArrayBufferView | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/respond) */\n respond(bytesWritten: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/respondWithNewView) */\n respondWithNewView(view: ArrayBufferView): void;\n}\n\ndeclare var ReadableStreamBYOBRequest: {\n prototype: ReadableStreamBYOBRequest;\n new(): ReadableStreamBYOBRequest;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController) */\ninterface ReadableStreamDefaultController<R = any> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/desiredSize) */\n readonly desiredSize: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/close) */\n close(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/enqueue) */\n enqueue(chunk?: R): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/error) */\n error(e?: any): void;\n}\n\ndeclare var ReadableStreamDefaultController: {\n prototype: ReadableStreamDefaultController;\n new(): ReadableStreamDefaultController;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader) */\ninterface ReadableStreamDefaultReader<R = any> extends ReadableStreamGenericReader {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader/read) */\n read(): Promise<ReadableStreamReadResult<R>>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader/releaseLock) */\n releaseLock(): void;\n}\n\ndeclare var ReadableStreamDefaultReader: {\n prototype: ReadableStreamDefaultReader;\n new<R = any>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>;\n};\n\ninterface ReadableStreamGenericReader {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/closed) */\n readonly closed: Promise<undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/cancel) */\n cancel(reason?: any): Promise<void>;\n}\n\ninterface RemotePlaybackEventMap {\n "connect": Event;\n "connecting": Event;\n "disconnect": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback) */\ninterface RemotePlayback extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback/connect_event) */\n onconnect: ((this: RemotePlayback, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback/connecting_event) */\n onconnecting: ((this: RemotePlayback, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback/disconnect_event) */\n ondisconnect: ((this: RemotePlayback, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback/state) */\n readonly state: RemotePlaybackState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback/cancelWatchAvailability) */\n cancelWatchAvailability(id?: number): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback/prompt) */\n prompt(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback/watchAvailability) */\n watchAvailability(callback: RemotePlaybackAvailabilityCallback): Promise<number>;\n addEventListener<K extends keyof RemotePlaybackEventMap>(type: K, listener: (this: RemotePlayback, ev: RemotePlaybackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof RemotePlaybackEventMap>(type: K, listener: (this: RemotePlayback, ev: RemotePlaybackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var RemotePlayback: {\n prototype: RemotePlayback;\n new(): RemotePlayback;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report) */\ninterface Report {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/body) */\n readonly body: ReportBody | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/type) */\n readonly type: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/url) */\n readonly url: string;\n toJSON(): any;\n}\n\ndeclare var Report: {\n prototype: Report;\n new(): Report;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportBody) */\ninterface ReportBody {\n toJSON(): any;\n}\n\ndeclare var ReportBody: {\n prototype: ReportBody;\n new(): ReportBody;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver) */\ninterface ReportingObserver {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/disconnect) */\n disconnect(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/observe) */\n observe(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/takeRecords) */\n takeRecords(): ReportList;\n}\n\ndeclare var ReportingObserver: {\n prototype: ReportingObserver;\n new(callback: ReportingObserverCallback, options?: ReportingObserverOptions): ReportingObserver;\n};\n\n/**\n * This Fetch API interface represents a resource request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request)\n */\ninterface Request extends Body {\n /**\n * Returns the cache mode associated with request, which is a string indicating how the request will interact with the browser\'s cache when fetching.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/cache)\n */\n readonly cache: RequestCache;\n /**\n * Returns the credentials mode associated with request, which is a string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/credentials)\n */\n readonly credentials: RequestCredentials;\n /**\n * Returns the kind of resource requested by request, e.g., "document" or "script".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/destination)\n */\n readonly destination: RequestDestination;\n /**\n * Returns a Headers object consisting of the headers associated with request. Note that headers added in the network layer by the user agent will not be accounted for in this object, e.g., the "Host" header.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/headers)\n */\n readonly headers: Headers;\n /**\n * Returns request\'s subresource integrity metadata, which is a cryptographic hash of the resource being fetched. Its value consists of multiple hashes separated by whitespace. [SRI]\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/integrity)\n */\n readonly integrity: string;\n /**\n * Returns a boolean indicating whether or not request can outlive the global in which it was created.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/keepalive)\n */\n readonly keepalive: boolean;\n /**\n * Returns request\'s HTTP method, which is "GET" by default.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/method)\n */\n readonly method: string;\n /**\n * Returns the mode associated with request, which is a string indicating whether the request will use CORS, or will be restricted to same-origin URLs.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/mode)\n */\n readonly mode: RequestMode;\n /**\n * Returns the redirect mode associated with request, which is a string indicating how redirects for the request will be handled during fetching. A request will follow redirects by default.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/redirect)\n */\n readonly redirect: RequestRedirect;\n /**\n * Returns the referrer of request. Its value can be a same-origin URL if explicitly set in init, the empty string to indicate no referrer, and "about:client" when defaulting to the global\'s default. This is used during fetching to determine the value of the `Referer` header of the request being made.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/referrer)\n */\n readonly referrer: string;\n /**\n * Returns the referrer policy associated with request. This is used during fetching to compute the value of the request\'s referrer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/referrerPolicy)\n */\n readonly referrerPolicy: ReferrerPolicy;\n /**\n * Returns the signal associated with request, which is an AbortSignal object indicating whether or not request has been aborted, and its abort event handler.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/signal)\n */\n readonly signal: AbortSignal;\n /**\n * Returns the URL of request as a string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/url)\n */\n readonly url: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/clone) */\n clone(): Request;\n}\n\ndeclare var Request: {\n prototype: Request;\n new(input: RequestInfo | URL, init?: RequestInit): Request;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserver) */\ninterface ResizeObserver {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserver/disconnect) */\n disconnect(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserver/observe) */\n observe(target: Element, options?: ResizeObserverOptions): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserver/unobserve) */\n unobserve(target: Element): void;\n}\n\ndeclare var ResizeObserver: {\n prototype: ResizeObserver;\n new(callback: ResizeObserverCallback): ResizeObserver;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry) */\ninterface ResizeObserverEntry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry/borderBoxSize) */\n readonly borderBoxSize: ReadonlyArray<ResizeObserverSize>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry/contentBoxSize) */\n readonly contentBoxSize: ReadonlyArray<ResizeObserverSize>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry/contentRect) */\n readonly contentRect: DOMRectReadOnly;\n readonly devicePixelContentBoxSize: ReadonlyArray<ResizeObserverSize>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry/target) */\n readonly target: Element;\n}\n\ndeclare var ResizeObserverEntry: {\n prototype: ResizeObserverEntry;\n new(): ResizeObserverEntry;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverSize) */\ninterface ResizeObserverSize {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverSize/blockSize) */\n readonly blockSize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverSize/inlineSize) */\n readonly inlineSize: number;\n}\n\ndeclare var ResizeObserverSize: {\n prototype: ResizeObserverSize;\n new(): ResizeObserverSize;\n};\n\n/**\n * This Fetch API interface represents the response to a request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response)\n */\ninterface Response extends Body {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/headers) */\n readonly headers: Headers;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/ok) */\n readonly ok: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/redirected) */\n readonly redirected: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/status) */\n readonly status: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/statusText) */\n readonly statusText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/type) */\n readonly type: ResponseType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/url) */\n readonly url: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/clone) */\n clone(): Response;\n}\n\ndeclare var Response: {\n prototype: Response;\n new(body?: BodyInit | null, init?: ResponseInit): Response;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/error_static) */\n error(): Response;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/json_static) */\n json(data: any, init?: ResponseInit): Response;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/redirect_static) */\n redirect(url: string | URL, status?: number): Response;\n};\n\n/**\n * Provides access to the properties of <a> element, as well as methods to manipulate them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAElement)\n */\ninterface SVGAElement extends SVGGraphicsElement, SVGURIReference {\n rel: string;\n readonly relList: DOMTokenList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAElement/target) */\n readonly target: SVGAnimatedString;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGAElement: {\n prototype: SVGAElement;\n new(): SVGAElement;\n};\n\n/**\n * Used to represent a value that can be an <angle> or <number> value. An SVGAngle reflected through the animVal attribute is always read only.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAngle)\n */\ninterface SVGAngle {\n readonly unitType: number;\n value: number;\n valueAsString: string;\n valueInSpecifiedUnits: number;\n convertToSpecifiedUnits(unitType: number): void;\n newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;\n readonly SVG_ANGLETYPE_UNKNOWN: 0;\n readonly SVG_ANGLETYPE_UNSPECIFIED: 1;\n readonly SVG_ANGLETYPE_DEG: 2;\n readonly SVG_ANGLETYPE_RAD: 3;\n readonly SVG_ANGLETYPE_GRAD: 4;\n}\n\ndeclare var SVGAngle: {\n prototype: SVGAngle;\n new(): SVGAngle;\n readonly SVG_ANGLETYPE_UNKNOWN: 0;\n readonly SVG_ANGLETYPE_UNSPECIFIED: 1;\n readonly SVG_ANGLETYPE_DEG: 2;\n readonly SVG_ANGLETYPE_RAD: 3;\n readonly SVG_ANGLETYPE_GRAD: 4;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimateElement) */\ninterface SVGAnimateElement extends SVGAnimationElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGAnimateElement: {\n prototype: SVGAnimateElement;\n new(): SVGAnimateElement;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimateMotionElement) */\ninterface SVGAnimateMotionElement extends SVGAnimationElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateMotionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateMotionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGAnimateMotionElement: {\n prototype: SVGAnimateMotionElement;\n new(): SVGAnimateMotionElement;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimateTransformElement) */\ninterface SVGAnimateTransformElement extends SVGAnimationElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateTransformElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateTransformElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGAnimateTransformElement: {\n prototype: SVGAnimateTransformElement;\n new(): SVGAnimateTransformElement;\n};\n\n/**\n * Used for attributes of basic type <angle> which can be animated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedAngle)\n */\ninterface SVGAnimatedAngle {\n readonly animVal: SVGAngle;\n readonly baseVal: SVGAngle;\n}\n\ndeclare var SVGAnimatedAngle: {\n prototype: SVGAnimatedAngle;\n new(): SVGAnimatedAngle;\n};\n\n/**\n * Used for attributes of type boolean which can be animated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedBoolean)\n */\ninterface SVGAnimatedBoolean {\n readonly animVal: boolean;\n baseVal: boolean;\n}\n\ndeclare var SVGAnimatedBoolean: {\n prototype: SVGAnimatedBoolean;\n new(): SVGAnimatedBoolean;\n};\n\n/**\n * Used for attributes whose value must be a constant from a particular enumeration and which can be animated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedEnumeration)\n */\ninterface SVGAnimatedEnumeration {\n readonly animVal: number;\n baseVal: number;\n}\n\ndeclare var SVGAnimatedEnumeration: {\n prototype: SVGAnimatedEnumeration;\n new(): SVGAnimatedEnumeration;\n};\n\n/**\n * Used for attributes of basic type <integer> which can be animated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedInteger)\n */\ninterface SVGAnimatedInteger {\n readonly animVal: number;\n baseVal: number;\n}\n\ndeclare var SVGAnimatedInteger: {\n prototype: SVGAnimatedInteger;\n new(): SVGAnimatedInteger;\n};\n\n/**\n * Used for attributes of basic type <length> which can be animated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedLength)\n */\ninterface SVGAnimatedLength {\n readonly animVal: SVGLength;\n readonly baseVal: SVGLength;\n}\n\ndeclare var SVGAnimatedLength: {\n prototype: SVGAnimatedLength;\n new(): SVGAnimatedLength;\n};\n\n/**\n * Used for attributes of type SVGLengthList which can be animated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedLengthList)\n */\ninterface SVGAnimatedLengthList {\n readonly animVal: SVGLengthList;\n readonly baseVal: SVGLengthList;\n}\n\ndeclare var SVGAnimatedLengthList: {\n prototype: SVGAnimatedLengthList;\n new(): SVGAnimatedLengthList;\n};\n\n/**\n * Used for attributes of basic type <Number> which can be animated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedNumber)\n */\ninterface SVGAnimatedNumber {\n readonly animVal: number;\n baseVal: number;\n}\n\ndeclare var SVGAnimatedNumber: {\n prototype: SVGAnimatedNumber;\n new(): SVGAnimatedNumber;\n};\n\n/**\n * The SVGAnimatedNumber interface is used for attributes which take a list of numbers and which can be animated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedNumberList)\n */\ninterface SVGAnimatedNumberList {\n readonly animVal: SVGNumberList;\n readonly baseVal: SVGNumberList;\n}\n\ndeclare var SVGAnimatedNumberList: {\n prototype: SVGAnimatedNumberList;\n new(): SVGAnimatedNumberList;\n};\n\ninterface SVGAnimatedPoints {\n readonly animatedPoints: SVGPointList;\n readonly points: SVGPointList;\n}\n\n/**\n * Used for attributes of type SVGPreserveAspectRatio which can be animated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedPreserveAspectRatio)\n */\ninterface SVGAnimatedPreserveAspectRatio {\n readonly animVal: SVGPreserveAspectRatio;\n readonly baseVal: SVGPreserveAspectRatio;\n}\n\ndeclare var SVGAnimatedPreserveAspectRatio: {\n prototype: SVGAnimatedPreserveAspectRatio;\n new(): SVGAnimatedPreserveAspectRatio;\n};\n\n/**\n * Used for attributes of basic SVGRect which can be animated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedRect)\n */\ninterface SVGAnimatedRect {\n readonly animVal: DOMRectReadOnly;\n readonly baseVal: DOMRect;\n}\n\ndeclare var SVGAnimatedRect: {\n prototype: SVGAnimatedRect;\n new(): SVGAnimatedRect;\n};\n\n/**\n * The SVGAnimatedString interface represents string attributes which can be animated from each SVG declaration. You need to create SVG attribute before doing anything else, everything should be declared inside this.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedString)\n */\ninterface SVGAnimatedString {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedString/animVal) */\n readonly animVal: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedString/baseVal) */\n baseVal: string;\n}\n\ndeclare var SVGAnimatedString: {\n prototype: SVGAnimatedString;\n new(): SVGAnimatedString;\n};\n\n/**\n * Used for attributes which take a list of numbers and which can be animated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedTransformList)\n */\ninterface SVGAnimatedTransformList {\n readonly animVal: SVGTransformList;\n readonly baseVal: SVGTransformList;\n}\n\ndeclare var SVGAnimatedTransformList: {\n prototype: SVGAnimatedTransformList;\n new(): SVGAnimatedTransformList;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement) */\ninterface SVGAnimationElement extends SVGElement, SVGTests {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement/targetElement) */\n readonly targetElement: SVGElement | null;\n beginElement(): void;\n beginElementAt(offset: number): void;\n endElement(): void;\n endElementAt(offset: number): void;\n getCurrentTime(): number;\n getSimpleDuration(): number;\n getStartTime(): number;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimationElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimationElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGAnimationElement: {\n prototype: SVGAnimationElement;\n new(): SVGAnimationElement;\n};\n\n/**\n * An interface for the <circle> element. The circle element is defined by the cx and cy attributes that denote the coordinates of the centre of the circle.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGCircleElement)\n */\ninterface SVGCircleElement extends SVGGeometryElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGCircleElement/cx) */\n readonly cx: SVGAnimatedLength;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGCircleElement/cy) */\n readonly cy: SVGAnimatedLength;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGCircleElement/r) */\n readonly r: SVGAnimatedLength;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCircleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCircleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGCircleElement: {\n prototype: SVGCircleElement;\n new(): SVGCircleElement;\n};\n\n/**\n * Provides access to the properties of <clipPath> elements, as well as methods to manipulate them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGClipPathElement)\n */\ninterface SVGClipPathElement extends SVGElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGClipPathElement/clipPathUnits) */\n readonly clipPathUnits: SVGAnimatedEnumeration;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGClipPathElement/transform) */\n readonly transform: SVGAnimatedTransformList;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGClipPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGClipPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGClipPathElement: {\n prototype: SVGClipPathElement;\n new(): SVGClipPathElement;\n};\n\n/**\n * A base interface used by the component transfer function interfaces.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGComponentTransferFunctionElement)\n */\ninterface SVGComponentTransferFunctionElement extends SVGElement {\n readonly amplitude: SVGAnimatedNumber;\n readonly exponent: SVGAnimatedNumber;\n readonly intercept: SVGAnimatedNumber;\n readonly offset: SVGAnimatedNumber;\n readonly slope: SVGAnimatedNumber;\n readonly tableValues: SVGAnimatedNumberList;\n readonly type: SVGAnimatedEnumeration;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: 0;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: 1;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_TABLE: 2;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: 3;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: 4;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: 5;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGComponentTransferFunctionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGComponentTransferFunctionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGComponentTransferFunctionElement: {\n prototype: SVGComponentTransferFunctionElement;\n new(): SVGComponentTransferFunctionElement;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: 0;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: 1;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_TABLE: 2;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: 3;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: 4;\n readonly SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: 5;\n};\n\n/**\n * Corresponds to the <defs> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGDefsElement)\n */\ninterface SVGDefsElement extends SVGGraphicsElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDefsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDefsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGDefsElement: {\n prototype: SVGDefsElement;\n new(): SVGDefsElement;\n};\n\n/**\n * Corresponds to the <desc> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGDescElement)\n */\ninterface SVGDescElement extends SVGElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDescElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDescElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGDescElement: {\n prototype: SVGDescElement;\n new(): SVGDescElement;\n};\n\ninterface SVGElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {\n}\n\n/**\n * All of the SVG DOM interfaces that correspond directly to elements in the SVG language derive from the SVGElement interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGElement)\n */\ninterface SVGElement extends Element, ElementCSSInlineStyle, GlobalEventHandlers, HTMLOrSVGElement {\n /** @deprecated */\n readonly className: any;\n readonly ownerSVGElement: SVGSVGElement | null;\n readonly viewportElement: SVGElement | null;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGElement: {\n prototype: SVGElement;\n new(): SVGElement;\n};\n\n/**\n * Provides access to the properties of <ellipse> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGEllipseElement)\n */\ninterface SVGEllipseElement extends SVGGeometryElement {\n readonly cx: SVGAnimatedLength;\n readonly cy: SVGAnimatedLength;\n readonly rx: SVGAnimatedLength;\n readonly ry: SVGAnimatedLength;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGEllipseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGEllipseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGEllipseElement: {\n prototype: SVGEllipseElement;\n new(): SVGEllipseElement;\n};\n\n/**\n * Corresponds to the <feBlend> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEBlendElement)\n */\ninterface SVGFEBlendElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n readonly in2: SVGAnimatedString;\n readonly mode: SVGAnimatedEnumeration;\n readonly SVG_FEBLEND_MODE_UNKNOWN: 0;\n readonly SVG_FEBLEND_MODE_NORMAL: 1;\n readonly SVG_FEBLEND_MODE_MULTIPLY: 2;\n readonly SVG_FEBLEND_MODE_SCREEN: 3;\n readonly SVG_FEBLEND_MODE_DARKEN: 4;\n readonly SVG_FEBLEND_MODE_LIGHTEN: 5;\n readonly SVG_FEBLEND_MODE_OVERLAY: 6;\n readonly SVG_FEBLEND_MODE_COLOR_DODGE: 7;\n readonly SVG_FEBLEND_MODE_COLOR_BURN: 8;\n readonly SVG_FEBLEND_MODE_HARD_LIGHT: 9;\n readonly SVG_FEBLEND_MODE_SOFT_LIGHT: 10;\n readonly SVG_FEBLEND_MODE_DIFFERENCE: 11;\n readonly SVG_FEBLEND_MODE_EXCLUSION: 12;\n readonly SVG_FEBLEND_MODE_HUE: 13;\n readonly SVG_FEBLEND_MODE_SATURATION: 14;\n readonly SVG_FEBLEND_MODE_COLOR: 15;\n readonly SVG_FEBLEND_MODE_LUMINOSITY: 16;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEBlendElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEBlendElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEBlendElement: {\n prototype: SVGFEBlendElement;\n new(): SVGFEBlendElement;\n readonly SVG_FEBLEND_MODE_UNKNOWN: 0;\n readonly SVG_FEBLEND_MODE_NORMAL: 1;\n readonly SVG_FEBLEND_MODE_MULTIPLY: 2;\n readonly SVG_FEBLEND_MODE_SCREEN: 3;\n readonly SVG_FEBLEND_MODE_DARKEN: 4;\n readonly SVG_FEBLEND_MODE_LIGHTEN: 5;\n readonly SVG_FEBLEND_MODE_OVERLAY: 6;\n readonly SVG_FEBLEND_MODE_COLOR_DODGE: 7;\n readonly SVG_FEBLEND_MODE_COLOR_BURN: 8;\n readonly SVG_FEBLEND_MODE_HARD_LIGHT: 9;\n readonly SVG_FEBLEND_MODE_SOFT_LIGHT: 10;\n readonly SVG_FEBLEND_MODE_DIFFERENCE: 11;\n readonly SVG_FEBLEND_MODE_EXCLUSION: 12;\n readonly SVG_FEBLEND_MODE_HUE: 13;\n readonly SVG_FEBLEND_MODE_SATURATION: 14;\n readonly SVG_FEBLEND_MODE_COLOR: 15;\n readonly SVG_FEBLEND_MODE_LUMINOSITY: 16;\n};\n\n/**\n * Corresponds to the <feColorMatrix> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEColorMatrixElement)\n */\ninterface SVGFEColorMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEColorMatrixElement/in1) */\n readonly in1: SVGAnimatedString;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEColorMatrixElement/type) */\n readonly type: SVGAnimatedEnumeration;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEColorMatrixElement/values) */\n readonly values: SVGAnimatedNumberList;\n readonly SVG_FECOLORMATRIX_TYPE_UNKNOWN: 0;\n readonly SVG_FECOLORMATRIX_TYPE_MATRIX: 1;\n readonly SVG_FECOLORMATRIX_TYPE_SATURATE: 2;\n readonly SVG_FECOLORMATRIX_TYPE_HUEROTATE: 3;\n readonly SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: 4;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEColorMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEColorMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEColorMatrixElement: {\n prototype: SVGFEColorMatrixElement;\n new(): SVGFEColorMatrixElement;\n readonly SVG_FECOLORMATRIX_TYPE_UNKNOWN: 0;\n readonly SVG_FECOLORMATRIX_TYPE_MATRIX: 1;\n readonly SVG_FECOLORMATRIX_TYPE_SATURATE: 2;\n readonly SVG_FECOLORMATRIX_TYPE_HUEROTATE: 3;\n readonly SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: 4;\n};\n\n/**\n * Corresponds to the <feComponentTransfer> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEComponentTransferElement)\n */\ninterface SVGFEComponentTransferElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEComponentTransferElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEComponentTransferElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEComponentTransferElement: {\n prototype: SVGFEComponentTransferElement;\n new(): SVGFEComponentTransferElement;\n};\n\n/**\n * Corresponds to the <feComposite> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFECompositeElement)\n */\ninterface SVGFECompositeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n readonly in2: SVGAnimatedString;\n readonly k1: SVGAnimatedNumber;\n readonly k2: SVGAnimatedNumber;\n readonly k3: SVGAnimatedNumber;\n readonly k4: SVGAnimatedNumber;\n readonly operator: SVGAnimatedEnumeration;\n readonly SVG_FECOMPOSITE_OPERATOR_UNKNOWN: 0;\n readonly SVG_FECOMPOSITE_OPERATOR_OVER: 1;\n readonly SVG_FECOMPOSITE_OPERATOR_IN: 2;\n readonly SVG_FECOMPOSITE_OPERATOR_OUT: 3;\n readonly SVG_FECOMPOSITE_OPERATOR_ATOP: 4;\n readonly SVG_FECOMPOSITE_OPERATOR_XOR: 5;\n readonly SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: 6;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFECompositeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFECompositeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFECompositeElement: {\n prototype: SVGFECompositeElement;\n new(): SVGFECompositeElement;\n readonly SVG_FECOMPOSITE_OPERATOR_UNKNOWN: 0;\n readonly SVG_FECOMPOSITE_OPERATOR_OVER: 1;\n readonly SVG_FECOMPOSITE_OPERATOR_IN: 2;\n readonly SVG_FECOMPOSITE_OPERATOR_OUT: 3;\n readonly SVG_FECOMPOSITE_OPERATOR_ATOP: 4;\n readonly SVG_FECOMPOSITE_OPERATOR_XOR: 5;\n readonly SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: 6;\n};\n\n/**\n * Corresponds to the <feConvolveMatrix> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement)\n */\ninterface SVGFEConvolveMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly bias: SVGAnimatedNumber;\n readonly divisor: SVGAnimatedNumber;\n readonly edgeMode: SVGAnimatedEnumeration;\n readonly in1: SVGAnimatedString;\n readonly kernelMatrix: SVGAnimatedNumberList;\n readonly kernelUnitLengthX: SVGAnimatedNumber;\n readonly kernelUnitLengthY: SVGAnimatedNumber;\n readonly orderX: SVGAnimatedInteger;\n readonly orderY: SVGAnimatedInteger;\n readonly preserveAlpha: SVGAnimatedBoolean;\n readonly targetX: SVGAnimatedInteger;\n readonly targetY: SVGAnimatedInteger;\n readonly SVG_EDGEMODE_UNKNOWN: 0;\n readonly SVG_EDGEMODE_DUPLICATE: 1;\n readonly SVG_EDGEMODE_WRAP: 2;\n readonly SVG_EDGEMODE_NONE: 3;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEConvolveMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEConvolveMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEConvolveMatrixElement: {\n prototype: SVGFEConvolveMatrixElement;\n new(): SVGFEConvolveMatrixElement;\n readonly SVG_EDGEMODE_UNKNOWN: 0;\n readonly SVG_EDGEMODE_DUPLICATE: 1;\n readonly SVG_EDGEMODE_WRAP: 2;\n readonly SVG_EDGEMODE_NONE: 3;\n};\n\n/**\n * Corresponds to the <feDiffuseLighting> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDiffuseLightingElement)\n */\ninterface SVGFEDiffuseLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly diffuseConstant: SVGAnimatedNumber;\n readonly in1: SVGAnimatedString;\n readonly kernelUnitLengthX: SVGAnimatedNumber;\n readonly kernelUnitLengthY: SVGAnimatedNumber;\n readonly surfaceScale: SVGAnimatedNumber;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDiffuseLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDiffuseLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEDiffuseLightingElement: {\n prototype: SVGFEDiffuseLightingElement;\n new(): SVGFEDiffuseLightingElement;\n};\n\n/**\n * Corresponds to the <feDisplacementMap> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDisplacementMapElement)\n */\ninterface SVGFEDisplacementMapElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n readonly in2: SVGAnimatedString;\n readonly scale: SVGAnimatedNumber;\n readonly xChannelSelector: SVGAnimatedEnumeration;\n readonly yChannelSelector: SVGAnimatedEnumeration;\n readonly SVG_CHANNEL_UNKNOWN: 0;\n readonly SVG_CHANNEL_R: 1;\n readonly SVG_CHANNEL_G: 2;\n readonly SVG_CHANNEL_B: 3;\n readonly SVG_CHANNEL_A: 4;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDisplacementMapElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDisplacementMapElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEDisplacementMapElement: {\n prototype: SVGFEDisplacementMapElement;\n new(): SVGFEDisplacementMapElement;\n readonly SVG_CHANNEL_UNKNOWN: 0;\n readonly SVG_CHANNEL_R: 1;\n readonly SVG_CHANNEL_G: 2;\n readonly SVG_CHANNEL_B: 3;\n readonly SVG_CHANNEL_A: 4;\n};\n\n/**\n * Corresponds to the <feDistantLight> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDistantLightElement)\n */\ninterface SVGFEDistantLightElement extends SVGElement {\n readonly azimuth: SVGAnimatedNumber;\n readonly elevation: SVGAnimatedNumber;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDistantLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDistantLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEDistantLightElement: {\n prototype: SVGFEDistantLightElement;\n new(): SVGFEDistantLightElement;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDropShadowElement) */\ninterface SVGFEDropShadowElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly dx: SVGAnimatedNumber;\n readonly dy: SVGAnimatedNumber;\n readonly in1: SVGAnimatedString;\n readonly stdDeviationX: SVGAnimatedNumber;\n readonly stdDeviationY: SVGAnimatedNumber;\n setStdDeviation(stdDeviationX: number, stdDeviationY: number): void;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDropShadowElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDropShadowElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEDropShadowElement: {\n prototype: SVGFEDropShadowElement;\n new(): SVGFEDropShadowElement;\n};\n\n/**\n * Corresponds to the <feFlood> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFloodElement)\n */\ninterface SVGFEFloodElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFloodElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFloodElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEFloodElement: {\n prototype: SVGFEFloodElement;\n new(): SVGFEFloodElement;\n};\n\n/**\n * Corresponds to the <feFuncA> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFuncAElement)\n */\ninterface SVGFEFuncAElement extends SVGComponentTransferFunctionElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEFuncAElement: {\n prototype: SVGFEFuncAElement;\n new(): SVGFEFuncAElement;\n};\n\n/**\n * Corresponds to the <feFuncB> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFuncBElement)\n */\ninterface SVGFEFuncBElement extends SVGComponentTransferFunctionElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncBElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncBElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEFuncBElement: {\n prototype: SVGFEFuncBElement;\n new(): SVGFEFuncBElement;\n};\n\n/**\n * Corresponds to the <feFuncG> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFuncGElement)\n */\ninterface SVGFEFuncGElement extends SVGComponentTransferFunctionElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEFuncGElement: {\n prototype: SVGFEFuncGElement;\n new(): SVGFEFuncGElement;\n};\n\n/**\n * Corresponds to the <feFuncR> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFuncRElement)\n */\ninterface SVGFEFuncRElement extends SVGComponentTransferFunctionElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncRElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncRElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEFuncRElement: {\n prototype: SVGFEFuncRElement;\n new(): SVGFEFuncRElement;\n};\n\n/**\n * Corresponds to the <feGaussianBlur> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEGaussianBlurElement)\n */\ninterface SVGFEGaussianBlurElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n readonly stdDeviationX: SVGAnimatedNumber;\n readonly stdDeviationY: SVGAnimatedNumber;\n setStdDeviation(stdDeviationX: number, stdDeviationY: number): void;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEGaussianBlurElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEGaussianBlurElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEGaussianBlurElement: {\n prototype: SVGFEGaussianBlurElement;\n new(): SVGFEGaussianBlurElement;\n};\n\n/**\n * Corresponds to the <feImage> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEImageElement)\n */\ninterface SVGFEImageElement extends SVGElement, SVGFilterPrimitiveStandardAttributes, SVGURIReference {\n readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEImageElement: {\n prototype: SVGFEImageElement;\n new(): SVGFEImageElement;\n};\n\n/**\n * Corresponds to the <feMerge> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEMergeElement)\n */\ninterface SVGFEMergeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEMergeElement: {\n prototype: SVGFEMergeElement;\n new(): SVGFEMergeElement;\n};\n\n/**\n * Corresponds to the <feMergeNode> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEMergeNodeElement)\n */\ninterface SVGFEMergeNodeElement extends SVGElement {\n readonly in1: SVGAnimatedString;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeNodeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeNodeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEMergeNodeElement: {\n prototype: SVGFEMergeNodeElement;\n new(): SVGFEMergeNodeElement;\n};\n\n/**\n * Corresponds to the <feMorphology> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEMorphologyElement)\n */\ninterface SVGFEMorphologyElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n readonly operator: SVGAnimatedEnumeration;\n readonly radiusX: SVGAnimatedNumber;\n readonly radiusY: SVGAnimatedNumber;\n readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: 0;\n readonly SVG_MORPHOLOGY_OPERATOR_ERODE: 1;\n readonly SVG_MORPHOLOGY_OPERATOR_DILATE: 2;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMorphologyElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMorphologyElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEMorphologyElement: {\n prototype: SVGFEMorphologyElement;\n new(): SVGFEMorphologyElement;\n readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: 0;\n readonly SVG_MORPHOLOGY_OPERATOR_ERODE: 1;\n readonly SVG_MORPHOLOGY_OPERATOR_DILATE: 2;\n};\n\n/**\n * Corresponds to the <feOffset> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEOffsetElement)\n */\ninterface SVGFEOffsetElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly dx: SVGAnimatedNumber;\n readonly dy: SVGAnimatedNumber;\n readonly in1: SVGAnimatedString;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEOffsetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEOffsetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEOffsetElement: {\n prototype: SVGFEOffsetElement;\n new(): SVGFEOffsetElement;\n};\n\n/**\n * Corresponds to the <fePointLight> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEPointLightElement)\n */\ninterface SVGFEPointLightElement extends SVGElement {\n readonly x: SVGAnimatedNumber;\n readonly y: SVGAnimatedNumber;\n readonly z: SVGAnimatedNumber;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEPointLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEPointLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFEPointLightElement: {\n prototype: SVGFEPointLightElement;\n new(): SVGFEPointLightElement;\n};\n\n/**\n * Corresponds to the <feSpecularLighting> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpecularLightingElement)\n */\ninterface SVGFESpecularLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n readonly kernelUnitLengthX: SVGAnimatedNumber;\n readonly kernelUnitLengthY: SVGAnimatedNumber;\n readonly specularConstant: SVGAnimatedNumber;\n readonly specularExponent: SVGAnimatedNumber;\n readonly surfaceScale: SVGAnimatedNumber;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpecularLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpecularLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFESpecularLightingElement: {\n prototype: SVGFESpecularLightingElement;\n new(): SVGFESpecularLightingElement;\n};\n\n/**\n * Corresponds to the <feSpotLight> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpotLightElement)\n */\ninterface SVGFESpotLightElement extends SVGElement {\n readonly limitingConeAngle: SVGAnimatedNumber;\n readonly pointsAtX: SVGAnimatedNumber;\n readonly pointsAtY: SVGAnimatedNumber;\n readonly pointsAtZ: SVGAnimatedNumber;\n readonly specularExponent: SVGAnimatedNumber;\n readonly x: SVGAnimatedNumber;\n readonly y: SVGAnimatedNumber;\n readonly z: SVGAnimatedNumber;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpotLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpotLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFESpotLightElement: {\n prototype: SVGFESpotLightElement;\n new(): SVGFESpotLightElement;\n};\n\n/**\n * Corresponds to the <feTile> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFETileElement)\n */\ninterface SVGFETileElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly in1: SVGAnimatedString;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETileElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETileElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFETileElement: {\n prototype: SVGFETileElement;\n new(): SVGFETileElement;\n};\n\n/**\n * Corresponds to the <feTurbulence> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFETurbulenceElement)\n */\ninterface SVGFETurbulenceElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {\n readonly baseFrequencyX: SVGAnimatedNumber;\n readonly baseFrequencyY: SVGAnimatedNumber;\n readonly numOctaves: SVGAnimatedInteger;\n readonly seed: SVGAnimatedNumber;\n readonly stitchTiles: SVGAnimatedEnumeration;\n readonly type: SVGAnimatedEnumeration;\n readonly SVG_TURBULENCE_TYPE_UNKNOWN: 0;\n readonly SVG_TURBULENCE_TYPE_FRACTALNOISE: 1;\n readonly SVG_TURBULENCE_TYPE_TURBULENCE: 2;\n readonly SVG_STITCHTYPE_UNKNOWN: 0;\n readonly SVG_STITCHTYPE_STITCH: 1;\n readonly SVG_STITCHTYPE_NOSTITCH: 2;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETurbulenceElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETurbulenceElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFETurbulenceElement: {\n prototype: SVGFETurbulenceElement;\n new(): SVGFETurbulenceElement;\n readonly SVG_TURBULENCE_TYPE_UNKNOWN: 0;\n readonly SVG_TURBULENCE_TYPE_FRACTALNOISE: 1;\n readonly SVG_TURBULENCE_TYPE_TURBULENCE: 2;\n readonly SVG_STITCHTYPE_UNKNOWN: 0;\n readonly SVG_STITCHTYPE_STITCH: 1;\n readonly SVG_STITCHTYPE_NOSTITCH: 2;\n};\n\n/**\n * Provides access to the properties of <filter> elements, as well as methods to manipulate them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFilterElement)\n */\ninterface SVGFilterElement extends SVGElement, SVGURIReference {\n readonly filterUnits: SVGAnimatedEnumeration;\n readonly height: SVGAnimatedLength;\n readonly primitiveUnits: SVGAnimatedEnumeration;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFilterElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFilterElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGFilterElement: {\n prototype: SVGFilterElement;\n new(): SVGFilterElement;\n};\n\ninterface SVGFilterPrimitiveStandardAttributes {\n readonly height: SVGAnimatedLength;\n readonly result: SVGAnimatedString;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n}\n\ninterface SVGFitToViewBox {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/preserveAspectRatio) */\n readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/viewBox) */\n readonly viewBox: SVGAnimatedRect;\n}\n\n/**\n * Provides access to the properties of <foreignObject> elements, as well as methods to manipulate them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGForeignObjectElement)\n */\ninterface SVGForeignObjectElement extends SVGGraphicsElement {\n readonly height: SVGAnimatedLength;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGForeignObjectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGForeignObjectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGForeignObjectElement: {\n prototype: SVGForeignObjectElement;\n new(): SVGForeignObjectElement;\n};\n\n/**\n * Corresponds to the <g> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGElement)\n */\ninterface SVGGElement extends SVGGraphicsElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGGElement: {\n prototype: SVGGElement;\n new(): SVGGElement;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement) */\ninterface SVGGeometryElement extends SVGGraphicsElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/pathLength) */\n readonly pathLength: SVGAnimatedNumber;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/getPointAtLength) */\n getPointAtLength(distance: number): DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/getTotalLength) */\n getTotalLength(): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/isPointInFill) */\n isPointInFill(point?: DOMPointInit): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/isPointInStroke) */\n isPointInStroke(point?: DOMPointInit): boolean;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGeometryElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGeometryElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGGeometryElement: {\n prototype: SVGGeometryElement;\n new(): SVGGeometryElement;\n};\n\n/**\n * The SVGGradient interface is a base interface used by SVGLinearGradientElement and SVGRadialGradientElement.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGradientElement)\n */\ninterface SVGGradientElement extends SVGElement, SVGURIReference {\n readonly gradientTransform: SVGAnimatedTransformList;\n readonly gradientUnits: SVGAnimatedEnumeration;\n readonly spreadMethod: SVGAnimatedEnumeration;\n readonly SVG_SPREADMETHOD_UNKNOWN: 0;\n readonly SVG_SPREADMETHOD_PAD: 1;\n readonly SVG_SPREADMETHOD_REFLECT: 2;\n readonly SVG_SPREADMETHOD_REPEAT: 3;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGGradientElement: {\n prototype: SVGGradientElement;\n new(): SVGGradientElement;\n readonly SVG_SPREADMETHOD_UNKNOWN: 0;\n readonly SVG_SPREADMETHOD_PAD: 1;\n readonly SVG_SPREADMETHOD_REFLECT: 2;\n readonly SVG_SPREADMETHOD_REPEAT: 3;\n};\n\n/**\n * SVG elements whose primary purpose is to directly render graphics into a group.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGraphicsElement)\n */\ninterface SVGGraphicsElement extends SVGElement, SVGTests {\n readonly transform: SVGAnimatedTransformList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGraphicsElement/getBBox) */\n getBBox(options?: SVGBoundingBoxOptions): DOMRect;\n getCTM(): DOMMatrix | null;\n getScreenCTM(): DOMMatrix | null;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGraphicsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGraphicsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGGraphicsElement: {\n prototype: SVGGraphicsElement;\n new(): SVGGraphicsElement;\n};\n\n/**\n * Corresponds to the <image> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement)\n */\ninterface SVGImageElement extends SVGGraphicsElement, SVGURIReference {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/crossorigin) */\n crossOrigin: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/height) */\n readonly height: SVGAnimatedLength;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/preserveAspectRatio) */\n readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/width) */\n readonly width: SVGAnimatedLength;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/x) */\n readonly x: SVGAnimatedLength;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/y) */\n readonly y: SVGAnimatedLength;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGImageElement: {\n prototype: SVGImageElement;\n new(): SVGImageElement;\n};\n\n/**\n * Correspond to the <length> basic data type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLength)\n */\ninterface SVGLength {\n readonly unitType: number;\n value: number;\n valueAsString: string;\n valueInSpecifiedUnits: number;\n convertToSpecifiedUnits(unitType: number): void;\n newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;\n readonly SVG_LENGTHTYPE_UNKNOWN: 0;\n readonly SVG_LENGTHTYPE_NUMBER: 1;\n readonly SVG_LENGTHTYPE_PERCENTAGE: 2;\n readonly SVG_LENGTHTYPE_EMS: 3;\n readonly SVG_LENGTHTYPE_EXS: 4;\n readonly SVG_LENGTHTYPE_PX: 5;\n readonly SVG_LENGTHTYPE_CM: 6;\n readonly SVG_LENGTHTYPE_MM: 7;\n readonly SVG_LENGTHTYPE_IN: 8;\n readonly SVG_LENGTHTYPE_PT: 9;\n readonly SVG_LENGTHTYPE_PC: 10;\n}\n\ndeclare var SVGLength: {\n prototype: SVGLength;\n new(): SVGLength;\n readonly SVG_LENGTHTYPE_UNKNOWN: 0;\n readonly SVG_LENGTHTYPE_NUMBER: 1;\n readonly SVG_LENGTHTYPE_PERCENTAGE: 2;\n readonly SVG_LENGTHTYPE_EMS: 3;\n readonly SVG_LENGTHTYPE_EXS: 4;\n readonly SVG_LENGTHTYPE_PX: 5;\n readonly SVG_LENGTHTYPE_CM: 6;\n readonly SVG_LENGTHTYPE_MM: 7;\n readonly SVG_LENGTHTYPE_IN: 8;\n readonly SVG_LENGTHTYPE_PT: 9;\n readonly SVG_LENGTHTYPE_PC: 10;\n};\n\n/**\n * The SVGLengthList defines a list of SVGLength objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLengthList)\n */\ninterface SVGLengthList {\n readonly length: number;\n readonly numberOfItems: number;\n appendItem(newItem: SVGLength): SVGLength;\n clear(): void;\n getItem(index: number): SVGLength;\n initialize(newItem: SVGLength): SVGLength;\n insertItemBefore(newItem: SVGLength, index: number): SVGLength;\n removeItem(index: number): SVGLength;\n replaceItem(newItem: SVGLength, index: number): SVGLength;\n [index: number]: SVGLength;\n}\n\ndeclare var SVGLengthList: {\n prototype: SVGLengthList;\n new(): SVGLengthList;\n};\n\n/**\n * Provides access to the properties of <line> elements, as well as methods to manipulate them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLineElement)\n */\ninterface SVGLineElement extends SVGGeometryElement {\n readonly x1: SVGAnimatedLength;\n readonly x2: SVGAnimatedLength;\n readonly y1: SVGAnimatedLength;\n readonly y2: SVGAnimatedLength;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGLineElement: {\n prototype: SVGLineElement;\n new(): SVGLineElement;\n};\n\n/**\n * Corresponds to the <linearGradient> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLinearGradientElement)\n */\ninterface SVGLinearGradientElement extends SVGGradientElement {\n readonly x1: SVGAnimatedLength;\n readonly x2: SVGAnimatedLength;\n readonly y1: SVGAnimatedLength;\n readonly y2: SVGAnimatedLength;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLinearGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLinearGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGLinearGradientElement: {\n prototype: SVGLinearGradientElement;\n new(): SVGLinearGradientElement;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMPathElement) */\ninterface SVGMPathElement extends SVGElement, SVGURIReference {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGMPathElement: {\n prototype: SVGMPathElement;\n new(): SVGMPathElement;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement) */\ninterface SVGMarkerElement extends SVGElement, SVGFitToViewBox {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/markerHeight) */\n readonly markerHeight: SVGAnimatedLength;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/markerUnits) */\n readonly markerUnits: SVGAnimatedEnumeration;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/markerWidth) */\n readonly markerWidth: SVGAnimatedLength;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/orientAngle) */\n readonly orientAngle: SVGAnimatedAngle;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/orientType) */\n readonly orientType: SVGAnimatedEnumeration;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/refX) */\n readonly refX: SVGAnimatedLength;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/refY) */\n readonly refY: SVGAnimatedLength;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/setOrientToAngle) */\n setOrientToAngle(angle: SVGAngle): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/setOrientToAuto) */\n setOrientToAuto(): void;\n readonly SVG_MARKERUNITS_UNKNOWN: 0;\n readonly SVG_MARKERUNITS_USERSPACEONUSE: 1;\n readonly SVG_MARKERUNITS_STROKEWIDTH: 2;\n readonly SVG_MARKER_ORIENT_UNKNOWN: 0;\n readonly SVG_MARKER_ORIENT_AUTO: 1;\n readonly SVG_MARKER_ORIENT_ANGLE: 2;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMarkerElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMarkerElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGMarkerElement: {\n prototype: SVGMarkerElement;\n new(): SVGMarkerElement;\n readonly SVG_MARKERUNITS_UNKNOWN: 0;\n readonly SVG_MARKERUNITS_USERSPACEONUSE: 1;\n readonly SVG_MARKERUNITS_STROKEWIDTH: 2;\n readonly SVG_MARKER_ORIENT_UNKNOWN: 0;\n readonly SVG_MARKER_ORIENT_AUTO: 1;\n readonly SVG_MARKER_ORIENT_ANGLE: 2;\n};\n\n/**\n * Provides access to the properties of <mask> elements, as well as methods to manipulate them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement)\n */\ninterface SVGMaskElement extends SVGElement {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/height) */\n readonly height: SVGAnimatedLength;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/maskContentUnits) */\n readonly maskContentUnits: SVGAnimatedEnumeration;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/maskUnits) */\n readonly maskUnits: SVGAnimatedEnumeration;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/width) */\n readonly width: SVGAnimatedLength;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/x) */\n readonly x: SVGAnimatedLength;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/y) */\n readonly y: SVGAnimatedLength;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMaskElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMaskElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGMaskElement: {\n prototype: SVGMaskElement;\n new(): SVGMaskElement;\n};\n\n/**\n * Corresponds to the <metadata> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMetadataElement)\n */\ninterface SVGMetadataElement extends SVGElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMetadataElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMetadataElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGMetadataElement: {\n prototype: SVGMetadataElement;\n new(): SVGMetadataElement;\n};\n\n/**\n * Corresponds to the <number> basic data type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumber)\n */\ninterface SVGNumber {\n value: number;\n}\n\ndeclare var SVGNumber: {\n prototype: SVGNumber;\n new(): SVGNumber;\n};\n\n/**\n * The SVGNumberList defines a list of SVGNumber objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumberList)\n */\ninterface SVGNumberList {\n readonly length: number;\n readonly numberOfItems: number;\n appendItem(newItem: SVGNumber): SVGNumber;\n clear(): void;\n getItem(index: number): SVGNumber;\n initialize(newItem: SVGNumber): SVGNumber;\n insertItemBefore(newItem: SVGNumber, index: number): SVGNumber;\n removeItem(index: number): SVGNumber;\n replaceItem(newItem: SVGNumber, index: number): SVGNumber;\n [index: number]: SVGNumber;\n}\n\ndeclare var SVGNumberList: {\n prototype: SVGNumberList;\n new(): SVGNumberList;\n};\n\n/**\n * Corresponds to the <path> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPathElement)\n */\ninterface SVGPathElement extends SVGGeometryElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGPathElement: {\n prototype: SVGPathElement;\n new(): SVGPathElement;\n};\n\n/**\n * Corresponds to the <pattern> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPatternElement)\n */\ninterface SVGPatternElement extends SVGElement, SVGFitToViewBox, SVGURIReference {\n readonly height: SVGAnimatedLength;\n readonly patternContentUnits: SVGAnimatedEnumeration;\n readonly patternTransform: SVGAnimatedTransformList;\n readonly patternUnits: SVGAnimatedEnumeration;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPatternElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPatternElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGPatternElement: {\n prototype: SVGPatternElement;\n new(): SVGPatternElement;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList) */\ninterface SVGPointList {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/numberOfItems) */\n readonly numberOfItems: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/appendItem) */\n appendItem(newItem: DOMPoint): DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/clear) */\n clear(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/getItem) */\n getItem(index: number): DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/initialize) */\n initialize(newItem: DOMPoint): DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/insertItemBefore) */\n insertItemBefore(newItem: DOMPoint, index: number): DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/removeItem) */\n removeItem(index: number): DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/replaceItem) */\n replaceItem(newItem: DOMPoint, index: number): DOMPoint;\n [index: number]: DOMPoint;\n}\n\ndeclare var SVGPointList: {\n prototype: SVGPointList;\n new(): SVGPointList;\n};\n\n/**\n * Provides access to the properties of <polygon> elements, as well as methods to manipulate them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPolygonElement)\n */\ninterface SVGPolygonElement extends SVGGeometryElement, SVGAnimatedPoints {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolygonElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolygonElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGPolygonElement: {\n prototype: SVGPolygonElement;\n new(): SVGPolygonElement;\n};\n\n/**\n * Provides access to the properties of <polyline> elements, as well as methods to manipulate them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPolylineElement)\n */\ninterface SVGPolylineElement extends SVGGeometryElement, SVGAnimatedPoints {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolylineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolylineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGPolylineElement: {\n prototype: SVGPolylineElement;\n new(): SVGPolylineElement;\n};\n\n/**\n * Corresponds to the preserveAspectRatio attribute, which is available for some of SVG\'s elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPreserveAspectRatio)\n */\ninterface SVGPreserveAspectRatio {\n align: number;\n meetOrSlice: number;\n readonly SVG_PRESERVEASPECTRATIO_UNKNOWN: 0;\n readonly SVG_PRESERVEASPECTRATIO_NONE: 1;\n readonly SVG_PRESERVEASPECTRATIO_XMINYMIN: 2;\n readonly SVG_PRESERVEASPECTRATIO_XMIDYMIN: 3;\n readonly SVG_PRESERVEASPECTRATIO_XMAXYMIN: 4;\n readonly SVG_PRESERVEASPECTRATIO_XMINYMID: 5;\n readonly SVG_PRESERVEASPECTRATIO_XMIDYMID: 6;\n readonly SVG_PRESERVEASPECTRATIO_XMAXYMID: 7;\n readonly SVG_PRESERVEASPECTRATIO_XMINYMAX: 8;\n readonly SVG_PRESERVEASPECTRATIO_XMIDYMAX: 9;\n readonly SVG_PRESERVEASPECTRATIO_XMAXYMAX: 10;\n readonly SVG_MEETORSLICE_UNKNOWN: 0;\n readonly SVG_MEETORSLICE_MEET: 1;\n readonly SVG_MEETORSLICE_SLICE: 2;\n}\n\ndeclare var SVGPreserveAspectRatio: {\n prototype: SVGPreserveAspectRatio;\n new(): SVGPreserveAspectRatio;\n readonly SVG_PRESERVEASPECTRATIO_UNKNOWN: 0;\n readonly SVG_PRESERVEASPECTRATIO_NONE: 1;\n readonly SVG_PRESERVEASPECTRATIO_XMINYMIN: 2;\n readonly SVG_PRESERVEASPECTRATIO_XMIDYMIN: 3;\n readonly SVG_PRESERVEASPECTRATIO_XMAXYMIN: 4;\n readonly SVG_PRESERVEASPECTRATIO_XMINYMID: 5;\n readonly SVG_PRESERVEASPECTRATIO_XMIDYMID: 6;\n readonly SVG_PRESERVEASPECTRATIO_XMAXYMID: 7;\n readonly SVG_PRESERVEASPECTRATIO_XMINYMAX: 8;\n readonly SVG_PRESERVEASPECTRATIO_XMIDYMAX: 9;\n readonly SVG_PRESERVEASPECTRATIO_XMAXYMAX: 10;\n readonly SVG_MEETORSLICE_UNKNOWN: 0;\n readonly SVG_MEETORSLICE_MEET: 1;\n readonly SVG_MEETORSLICE_SLICE: 2;\n};\n\n/**\n * Corresponds to the <RadialGradient> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRadialGradientElement)\n */\ninterface SVGRadialGradientElement extends SVGGradientElement {\n readonly cx: SVGAnimatedLength;\n readonly cy: SVGAnimatedLength;\n readonly fr: SVGAnimatedLength;\n readonly fx: SVGAnimatedLength;\n readonly fy: SVGAnimatedLength;\n readonly r: SVGAnimatedLength;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRadialGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRadialGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGRadialGradientElement: {\n prototype: SVGRadialGradientElement;\n new(): SVGRadialGradientElement;\n};\n\n/**\n * Provides access to the properties of <rect> elements, as well as methods to manipulate them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRectElement)\n */\ninterface SVGRectElement extends SVGGeometryElement {\n readonly height: SVGAnimatedLength;\n readonly rx: SVGAnimatedLength;\n readonly ry: SVGAnimatedLength;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGRectElement: {\n prototype: SVGRectElement;\n new(): SVGRectElement;\n};\n\ninterface SVGSVGElementEventMap extends SVGElementEventMap, WindowEventHandlersEventMap {\n}\n\n/**\n * Provides access to the properties of <svg> elements, as well as methods to manipulate them. This interface contains also various miscellaneous commonly-used utility methods, such as matrix operations and the ability to control the time of redraw on visual rendering devices.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement)\n */\ninterface SVGSVGElement extends SVGGraphicsElement, SVGFitToViewBox, WindowEventHandlers {\n currentScale: number;\n readonly currentTranslate: DOMPointReadOnly;\n readonly height: SVGAnimatedLength;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n animationsPaused(): boolean;\n checkEnclosure(element: SVGElement, rect: DOMRectReadOnly): boolean;\n checkIntersection(element: SVGElement, rect: DOMRectReadOnly): boolean;\n createSVGAngle(): SVGAngle;\n createSVGLength(): SVGLength;\n createSVGMatrix(): DOMMatrix;\n createSVGNumber(): SVGNumber;\n createSVGPoint(): DOMPoint;\n createSVGRect(): DOMRect;\n createSVGTransform(): SVGTransform;\n createSVGTransformFromMatrix(matrix?: DOMMatrix2DInit): SVGTransform;\n deselectAll(): void;\n /** @deprecated */\n forceRedraw(): void;\n getCurrentTime(): number;\n getElementById(elementId: string): Element;\n getEnclosureList(rect: DOMRectReadOnly, referenceElement: SVGElement | null): NodeListOf<SVGCircleElement | SVGEllipseElement | SVGImageElement | SVGLineElement | SVGPathElement | SVGPolygonElement | SVGPolylineElement | SVGRectElement | SVGTextElement | SVGUseElement>;\n getIntersectionList(rect: DOMRectReadOnly, referenceElement: SVGElement | null): NodeListOf<SVGCircleElement | SVGEllipseElement | SVGImageElement | SVGLineElement | SVGPathElement | SVGPolygonElement | SVGPolylineElement | SVGRectElement | SVGTextElement | SVGUseElement>;\n pauseAnimations(): void;\n setCurrentTime(seconds: number): void;\n /** @deprecated */\n suspendRedraw(maxWaitMilliseconds: number): number;\n unpauseAnimations(): void;\n /** @deprecated */\n unsuspendRedraw(suspendHandleID: number): void;\n /** @deprecated */\n unsuspendRedrawAll(): void;\n addEventListener<K extends keyof SVGSVGElementEventMap>(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGSVGElementEventMap>(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGSVGElement: {\n prototype: SVGSVGElement;\n new(): SVGSVGElement;\n};\n\n/**\n * Corresponds to the SVG <script> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGScriptElement)\n */\ninterface SVGScriptElement extends SVGElement, SVGURIReference {\n type: string;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGScriptElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGScriptElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGScriptElement: {\n prototype: SVGScriptElement;\n new(): SVGScriptElement;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSetElement) */\ninterface SVGSetElement extends SVGAnimationElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGSetElement: {\n prototype: SVGSetElement;\n new(): SVGSetElement;\n};\n\n/**\n * Corresponds to the <stop> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStopElement)\n */\ninterface SVGStopElement extends SVGElement {\n readonly offset: SVGAnimatedNumber;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStopElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStopElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGStopElement: {\n prototype: SVGStopElement;\n new(): SVGStopElement;\n};\n\n/**\n * The SVGStringList defines a list of DOMString objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStringList)\n */\ninterface SVGStringList {\n readonly length: number;\n readonly numberOfItems: number;\n appendItem(newItem: string): string;\n clear(): void;\n getItem(index: number): string;\n initialize(newItem: string): string;\n insertItemBefore(newItem: string, index: number): string;\n removeItem(index: number): string;\n replaceItem(newItem: string, index: number): string;\n [index: number]: string;\n}\n\ndeclare var SVGStringList: {\n prototype: SVGStringList;\n new(): SVGStringList;\n};\n\n/**\n * Corresponds to the SVG <style> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStyleElement)\n */\ninterface SVGStyleElement extends SVGElement, LinkStyle {\n disabled: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStyleElement/media) */\n media: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStyleElement/title) */\n title: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStyleElement/type)\n */\n type: string;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStyleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStyleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGStyleElement: {\n prototype: SVGStyleElement;\n new(): SVGStyleElement;\n};\n\n/**\n * Corresponds to the <switch> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSwitchElement)\n */\ninterface SVGSwitchElement extends SVGGraphicsElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSwitchElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSwitchElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGSwitchElement: {\n prototype: SVGSwitchElement;\n new(): SVGSwitchElement;\n};\n\n/**\n * Corresponds to the <symbol> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSymbolElement)\n */\ninterface SVGSymbolElement extends SVGElement, SVGFitToViewBox {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSymbolElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSymbolElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGSymbolElement: {\n prototype: SVGSymbolElement;\n new(): SVGSymbolElement;\n};\n\n/**\n * A <tspan> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTSpanElement)\n */\ninterface SVGTSpanElement extends SVGTextPositioningElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTSpanElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTSpanElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGTSpanElement: {\n prototype: SVGTSpanElement;\n new(): SVGTSpanElement;\n};\n\ninterface SVGTests {\n readonly requiredExtensions: SVGStringList;\n readonly systemLanguage: SVGStringList;\n}\n\n/**\n * Implemented by elements that support rendering child text content. It is inherited by various text-related interfaces, such as SVGTextElement, SVGTSpanElement, SVGTRefElement, SVGAltGlyphElement and SVGTextPathElement.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextContentElement)\n */\ninterface SVGTextContentElement extends SVGGraphicsElement {\n readonly lengthAdjust: SVGAnimatedEnumeration;\n readonly textLength: SVGAnimatedLength;\n getCharNumAtPosition(point?: DOMPointInit): number;\n getComputedTextLength(): number;\n getEndPositionOfChar(charnum: number): DOMPoint;\n getExtentOfChar(charnum: number): DOMRect;\n getNumberOfChars(): number;\n getRotationOfChar(charnum: number): number;\n getStartPositionOfChar(charnum: number): DOMPoint;\n getSubStringLength(charnum: number, nchars: number): number;\n /** @deprecated */\n selectSubString(charnum: number, nchars: number): void;\n readonly LENGTHADJUST_UNKNOWN: 0;\n readonly LENGTHADJUST_SPACING: 1;\n readonly LENGTHADJUST_SPACINGANDGLYPHS: 2;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextContentElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextContentElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGTextContentElement: {\n prototype: SVGTextContentElement;\n new(): SVGTextContentElement;\n readonly LENGTHADJUST_UNKNOWN: 0;\n readonly LENGTHADJUST_SPACING: 1;\n readonly LENGTHADJUST_SPACINGANDGLYPHS: 2;\n};\n\n/**\n * Corresponds to the <text> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextElement)\n */\ninterface SVGTextElement extends SVGTextPositioningElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGTextElement: {\n prototype: SVGTextElement;\n new(): SVGTextElement;\n};\n\n/**\n * Corresponds to the <textPath> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextPathElement)\n */\ninterface SVGTextPathElement extends SVGTextContentElement, SVGURIReference {\n readonly method: SVGAnimatedEnumeration;\n readonly spacing: SVGAnimatedEnumeration;\n readonly startOffset: SVGAnimatedLength;\n readonly TEXTPATH_METHODTYPE_UNKNOWN: 0;\n readonly TEXTPATH_METHODTYPE_ALIGN: 1;\n readonly TEXTPATH_METHODTYPE_STRETCH: 2;\n readonly TEXTPATH_SPACINGTYPE_UNKNOWN: 0;\n readonly TEXTPATH_SPACINGTYPE_AUTO: 1;\n readonly TEXTPATH_SPACINGTYPE_EXACT: 2;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGTextPathElement: {\n prototype: SVGTextPathElement;\n new(): SVGTextPathElement;\n readonly TEXTPATH_METHODTYPE_UNKNOWN: 0;\n readonly TEXTPATH_METHODTYPE_ALIGN: 1;\n readonly TEXTPATH_METHODTYPE_STRETCH: 2;\n readonly TEXTPATH_SPACINGTYPE_UNKNOWN: 0;\n readonly TEXTPATH_SPACINGTYPE_AUTO: 1;\n readonly TEXTPATH_SPACINGTYPE_EXACT: 2;\n};\n\n/**\n * Implemented by elements that support attributes that position individual text glyphs. It is inherited by SVGTextElement, SVGTSpanElement, SVGTRefElement and SVGAltGlyphElement.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextPositioningElement)\n */\ninterface SVGTextPositioningElement extends SVGTextContentElement {\n readonly dx: SVGAnimatedLengthList;\n readonly dy: SVGAnimatedLengthList;\n readonly rotate: SVGAnimatedNumberList;\n readonly x: SVGAnimatedLengthList;\n readonly y: SVGAnimatedLengthList;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPositioningElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPositioningElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGTextPositioningElement: {\n prototype: SVGTextPositioningElement;\n new(): SVGTextPositioningElement;\n};\n\n/**\n * Corresponds to the <title> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTitleElement)\n */\ninterface SVGTitleElement extends SVGElement {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTitleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTitleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGTitleElement: {\n prototype: SVGTitleElement;\n new(): SVGTitleElement;\n};\n\n/**\n * SVGTransform is the interface for one of the component transformations within an SVGTransformList; thus, an SVGTransform object corresponds to a single component (e.g., scale(…) or matrix(…)) within a transform attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransform)\n */\ninterface SVGTransform {\n readonly angle: number;\n readonly matrix: DOMMatrix;\n readonly type: number;\n setMatrix(matrix?: DOMMatrix2DInit): void;\n setRotate(angle: number, cx: number, cy: number): void;\n setScale(sx: number, sy: number): void;\n setSkewX(angle: number): void;\n setSkewY(angle: number): void;\n setTranslate(tx: number, ty: number): void;\n readonly SVG_TRANSFORM_UNKNOWN: 0;\n readonly SVG_TRANSFORM_MATRIX: 1;\n readonly SVG_TRANSFORM_TRANSLATE: 2;\n readonly SVG_TRANSFORM_SCALE: 3;\n readonly SVG_TRANSFORM_ROTATE: 4;\n readonly SVG_TRANSFORM_SKEWX: 5;\n readonly SVG_TRANSFORM_SKEWY: 6;\n}\n\ndeclare var SVGTransform: {\n prototype: SVGTransform;\n new(): SVGTransform;\n readonly SVG_TRANSFORM_UNKNOWN: 0;\n readonly SVG_TRANSFORM_MATRIX: 1;\n readonly SVG_TRANSFORM_TRANSLATE: 2;\n readonly SVG_TRANSFORM_SCALE: 3;\n readonly SVG_TRANSFORM_ROTATE: 4;\n readonly SVG_TRANSFORM_SKEWX: 5;\n readonly SVG_TRANSFORM_SKEWY: 6;\n};\n\n/**\n * The SVGTransformList defines a list of SVGTransform objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransformList)\n */\ninterface SVGTransformList {\n readonly length: number;\n readonly numberOfItems: number;\n appendItem(newItem: SVGTransform): SVGTransform;\n clear(): void;\n consolidate(): SVGTransform | null;\n createSVGTransformFromMatrix(matrix?: DOMMatrix2DInit): SVGTransform;\n getItem(index: number): SVGTransform;\n initialize(newItem: SVGTransform): SVGTransform;\n insertItemBefore(newItem: SVGTransform, index: number): SVGTransform;\n removeItem(index: number): SVGTransform;\n replaceItem(newItem: SVGTransform, index: number): SVGTransform;\n [index: number]: SVGTransform;\n}\n\ndeclare var SVGTransformList: {\n prototype: SVGTransformList;\n new(): SVGTransformList;\n};\n\ninterface SVGURIReference {\n readonly href: SVGAnimatedString;\n}\n\n/**\n * A commonly used set of constants used for reflecting gradientUnits, patternContentUnits and other similar attributes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGUnitTypes)\n */\ninterface SVGUnitTypes {\n readonly SVG_UNIT_TYPE_UNKNOWN: 0;\n readonly SVG_UNIT_TYPE_USERSPACEONUSE: 1;\n readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: 2;\n}\n\ndeclare var SVGUnitTypes: {\n prototype: SVGUnitTypes;\n new(): SVGUnitTypes;\n readonly SVG_UNIT_TYPE_UNKNOWN: 0;\n readonly SVG_UNIT_TYPE_USERSPACEONUSE: 1;\n readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: 2;\n};\n\n/**\n * Corresponds to the <use> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGUseElement)\n */\ninterface SVGUseElement extends SVGGraphicsElement, SVGURIReference {\n readonly height: SVGAnimatedLength;\n readonly width: SVGAnimatedLength;\n readonly x: SVGAnimatedLength;\n readonly y: SVGAnimatedLength;\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGUseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGUseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGUseElement: {\n prototype: SVGUseElement;\n new(): SVGUseElement;\n};\n\n/**\n * Provides access to the properties of <view> elements, as well as methods to manipulate them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGViewElement)\n */\ninterface SVGViewElement extends SVGElement, SVGFitToViewBox {\n addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGViewElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGViewElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SVGViewElement: {\n prototype: SVGViewElement;\n new(): SVGViewElement;\n};\n\n/**\n * A screen, usually the one on which the current window is being rendered, and is obtained using window.screen.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen)\n */\ninterface Screen {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/availHeight) */\n readonly availHeight: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/availWidth) */\n readonly availWidth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/colorDepth) */\n readonly colorDepth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/height) */\n readonly height: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/orientation) */\n readonly orientation: ScreenOrientation;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/pixelDepth) */\n readonly pixelDepth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/width) */\n readonly width: number;\n}\n\ndeclare var Screen: {\n prototype: Screen;\n new(): Screen;\n};\n\ninterface ScreenOrientationEventMap {\n "change": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScreenOrientation) */\ninterface ScreenOrientation extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScreenOrientation/angle) */\n readonly angle: number;\n onchange: ((this: ScreenOrientation, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScreenOrientation/type) */\n readonly type: OrientationType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScreenOrientation/unlock) */\n unlock(): void;\n addEventListener<K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ScreenOrientation: {\n prototype: ScreenOrientation;\n new(): ScreenOrientation;\n};\n\ninterface ScriptProcessorNodeEventMap {\n "audioprocess": AudioProcessingEvent;\n}\n\n/**\n * Allows the generation, processing, or analyzing of audio using JavaScript.\n * @deprecated As of the August 29 2014 Web Audio API spec publication, this feature has been marked as deprecated, and was replaced by AudioWorklet (see AudioWorkletNode).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScriptProcessorNode)\n */\ninterface ScriptProcessorNode extends AudioNode {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScriptProcessorNode/bufferSize)\n */\n readonly bufferSize: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScriptProcessorNode/audioprocess_event)\n */\n onaudioprocess: ((this: ScriptProcessorNode, ev: AudioProcessingEvent) => any) | null;\n addEventListener<K extends keyof ScriptProcessorNodeEventMap>(type: K, listener: (this: ScriptProcessorNode, ev: ScriptProcessorNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof ScriptProcessorNodeEventMap>(type: K, listener: (this: ScriptProcessorNode, ev: ScriptProcessorNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/** @deprecated */\ndeclare var ScriptProcessorNode: {\n prototype: ScriptProcessorNode;\n new(): ScriptProcessorNode;\n};\n\n/**\n * Inherits from Event, and represents the event object of an event sent on a document or worker when its content security policy is violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent)\n */\ninterface SecurityPolicyViolationEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/blockedURI) */\n readonly blockedURI: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/columnNumber) */\n readonly columnNumber: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/disposition) */\n readonly disposition: SecurityPolicyViolationEventDisposition;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/documentURI) */\n readonly documentURI: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/effectiveDirective) */\n readonly effectiveDirective: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/lineNumber) */\n readonly lineNumber: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/originalPolicy) */\n readonly originalPolicy: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/referrer) */\n readonly referrer: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/sample) */\n readonly sample: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/sourceFile) */\n readonly sourceFile: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/statusCode) */\n readonly statusCode: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/violatedDirective) */\n readonly violatedDirective: string;\n}\n\ndeclare var SecurityPolicyViolationEvent: {\n prototype: SecurityPolicyViolationEvent;\n new(type: string, eventInitDict?: SecurityPolicyViolationEventInit): SecurityPolicyViolationEvent;\n};\n\n/**\n * A Selection object represents the range of text selected by the user or the current position of the caret. To obtain a Selection object for examination or modification, call Window.getSelection().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection)\n */\ninterface Selection {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/anchorNode) */\n readonly anchorNode: Node | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/anchorOffset) */\n readonly anchorOffset: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/focusNode) */\n readonly focusNode: Node | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/focusOffset) */\n readonly focusOffset: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/isCollapsed) */\n readonly isCollapsed: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/rangeCount) */\n readonly rangeCount: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/type) */\n readonly type: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/addRange) */\n addRange(range: Range): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/collapse) */\n collapse(node: Node | null, offset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/collapseToEnd) */\n collapseToEnd(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/collapseToStart) */\n collapseToStart(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/containsNode) */\n containsNode(node: Node, allowPartialContainment?: boolean): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/deleteFromDocument) */\n deleteFromDocument(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/removeAllRanges) */\n empty(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/extend) */\n extend(node: Node, offset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/getRangeAt) */\n getRangeAt(index: number): Range;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/modify) */\n modify(alter?: string, direction?: string, granularity?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/removeAllRanges) */\n removeAllRanges(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/removeRange) */\n removeRange(range: Range): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/selectAllChildren) */\n selectAllChildren(node: Node): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/setBaseAndExtent) */\n setBaseAndExtent(anchorNode: Node, anchorOffset: number, focusNode: Node, focusOffset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/collapse) */\n setPosition(node: Node | null, offset?: number): void;\n toString(): string;\n}\n\ndeclare var Selection: {\n prototype: Selection;\n new(): Selection;\n};\n\ninterface ServiceWorkerEventMap extends AbstractWorkerEventMap {\n "statechange": Event;\n}\n\n/**\n * This ServiceWorker API interface provides a reference to a service worker. Multiple browsing contexts (e.g. pages, workers, etc.) can be associated with the same service worker, each through a unique ServiceWorker object.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker)\n */\ninterface ServiceWorker extends EventTarget, AbstractWorker {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/statechange_event) */\n onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/scriptURL) */\n readonly scriptURL: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/state) */\n readonly state: ServiceWorkerState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/postMessage) */\n postMessage(message: any, transfer: Transferable[]): void;\n postMessage(message: any, options?: StructuredSerializeOptions): void;\n addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorker: {\n prototype: ServiceWorker;\n new(): ServiceWorker;\n};\n\ninterface ServiceWorkerContainerEventMap {\n "controllerchange": Event;\n "message": MessageEvent;\n "messageerror": MessageEvent;\n}\n\n/**\n * The ServiceWorkerContainer interface of the ServiceWorker API provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer)\n */\ninterface ServiceWorkerContainer extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/controller) */\n readonly controller: ServiceWorker | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/controllerchange_event) */\n oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/message_event) */\n onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/messageerror_event) */\n onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/ready) */\n readonly ready: Promise<ServiceWorkerRegistration>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/getRegistration) */\n getRegistration(clientURL?: string | URL): Promise<ServiceWorkerRegistration | undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/getRegistrations) */\n getRegistrations(): Promise<ReadonlyArray<ServiceWorkerRegistration>>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/register) */\n register(scriptURL: string | URL, options?: RegistrationOptions): Promise<ServiceWorkerRegistration>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/startMessages) */\n startMessages(): void;\n addEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorkerContainer: {\n prototype: ServiceWorkerContainer;\n new(): ServiceWorkerContainer;\n};\n\ninterface ServiceWorkerRegistrationEventMap {\n "updatefound": Event;\n}\n\n/**\n * This ServiceWorker API interface represents the service worker registration. You register a service worker to control one or more pages that share the same origin.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration)\n */\ninterface ServiceWorkerRegistration extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/active) */\n readonly active: ServiceWorker | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/installing) */\n readonly installing: ServiceWorker | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/navigationPreload) */\n readonly navigationPreload: NavigationPreloadManager;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/updatefound_event) */\n onupdatefound: ((this: ServiceWorkerRegistration, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/pushManager) */\n readonly pushManager: PushManager;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/scope) */\n readonly scope: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/updateViaCache) */\n readonly updateViaCache: ServiceWorkerUpdateViaCache;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/waiting) */\n readonly waiting: ServiceWorker | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/getNotifications) */\n getNotifications(filter?: GetNotificationOptions): Promise<Notification[]>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/showNotification) */\n showNotification(title: string, options?: NotificationOptions): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/unregister) */\n unregister(): Promise<boolean>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/update) */\n update(): Promise<void>;\n addEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorkerRegistration: {\n prototype: ServiceWorkerRegistration;\n new(): ServiceWorkerRegistration;\n};\n\ninterface ShadowRootEventMap {\n "slotchange": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot) */\ninterface ShadowRoot extends DocumentFragment, DocumentOrShadowRoot, InnerHTML {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/delegatesFocus) */\n readonly delegatesFocus: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/host) */\n readonly host: Element;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/mode) */\n readonly mode: ShadowRootMode;\n onslotchange: ((this: ShadowRoot, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/slotAssignment) */\n readonly slotAssignment: SlotAssignmentMode;\n /** Throws a "NotSupportedError" DOMException if context object is a shadow root. */\n addEventListener<K extends keyof ShadowRootEventMap>(type: K, listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof ShadowRootEventMap>(type: K, listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ShadowRoot: {\n prototype: ShadowRoot;\n new(): ShadowRoot;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorker) */\ninterface SharedWorker extends EventTarget, AbstractWorker {\n /**\n * Returns sharedWorker\'s MessagePort object which can be used to communicate with the global environment.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorker/port)\n */\n readonly port: MessagePort;\n addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: SharedWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: SharedWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SharedWorker: {\n prototype: SharedWorker;\n new(scriptURL: string | URL, options?: string | WorkerOptions): SharedWorker;\n};\n\ninterface Slottable {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/assignedSlot) */\n readonly assignedSlot: HTMLSlotElement | null;\n}\n\ninterface SourceBufferEventMap {\n "abort": Event;\n "error": Event;\n "update": Event;\n "updateend": Event;\n "updatestart": Event;\n}\n\n/**\n * A chunk of media to be passed into an HTMLMediaElement and played, via a MediaSource object. This can be made up of one or several media segments.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer)\n */\ninterface SourceBuffer extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/appendWindowEnd) */\n appendWindowEnd: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/appendWindowStart) */\n appendWindowStart: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/buffered) */\n readonly buffered: TimeRanges;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/mode) */\n mode: AppendMode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/abort_event) */\n onabort: ((this: SourceBuffer, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/error_event) */\n onerror: ((this: SourceBuffer, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/update_event) */\n onupdate: ((this: SourceBuffer, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/updateend_event) */\n onupdateend: ((this: SourceBuffer, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/updatestart_event) */\n onupdatestart: ((this: SourceBuffer, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/timestampOffset) */\n timestampOffset: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/updating) */\n readonly updating: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/abort) */\n abort(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/appendBuffer) */\n appendBuffer(data: BufferSource): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/changeType) */\n changeType(type: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/remove) */\n remove(start: number, end: number): void;\n addEventListener<K extends keyof SourceBufferEventMap>(type: K, listener: (this: SourceBuffer, ev: SourceBufferEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SourceBufferEventMap>(type: K, listener: (this: SourceBuffer, ev: SourceBufferEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SourceBuffer: {\n prototype: SourceBuffer;\n new(): SourceBuffer;\n};\n\ninterface SourceBufferListEventMap {\n "addsourcebuffer": Event;\n "removesourcebuffer": Event;\n}\n\n/**\n * A simple container list for multiple SourceBuffer objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBufferList)\n */\ninterface SourceBufferList extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBufferList/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBufferList/addsourcebuffer_event) */\n onaddsourcebuffer: ((this: SourceBufferList, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBufferList/removesourcebuffer_event) */\n onremovesourcebuffer: ((this: SourceBufferList, ev: Event) => any) | null;\n addEventListener<K extends keyof SourceBufferListEventMap>(type: K, listener: (this: SourceBufferList, ev: SourceBufferListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SourceBufferListEventMap>(type: K, listener: (this: SourceBufferList, ev: SourceBufferListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n [index: number]: SourceBuffer;\n}\n\ndeclare var SourceBufferList: {\n prototype: SourceBufferList;\n new(): SourceBufferList;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionAlternative) */\ninterface SpeechRecognitionAlternative {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionAlternative/confidence) */\n readonly confidence: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionAlternative/transcript) */\n readonly transcript: string;\n}\n\ndeclare var SpeechRecognitionAlternative: {\n prototype: SpeechRecognitionAlternative;\n new(): SpeechRecognitionAlternative;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResult) */\ninterface SpeechRecognitionResult {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResult/isFinal) */\n readonly isFinal: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResult/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResult/item) */\n item(index: number): SpeechRecognitionAlternative;\n [index: number]: SpeechRecognitionAlternative;\n}\n\ndeclare var SpeechRecognitionResult: {\n prototype: SpeechRecognitionResult;\n new(): SpeechRecognitionResult;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResultList) */\ninterface SpeechRecognitionResultList {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResultList/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResultList/item) */\n item(index: number): SpeechRecognitionResult;\n [index: number]: SpeechRecognitionResult;\n}\n\ndeclare var SpeechRecognitionResultList: {\n prototype: SpeechRecognitionResultList;\n new(): SpeechRecognitionResultList;\n};\n\ninterface SpeechSynthesisEventMap {\n "voiceschanged": Event;\n}\n\n/**\n * This Web Speech API interface is the controller interface for the speech service; this can be used to retrieve information about the synthesis voices available on the device, start and pause speech, and other commands besides.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis)\n */\ninterface SpeechSynthesis extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/voiceschanged_event) */\n onvoiceschanged: ((this: SpeechSynthesis, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/paused) */\n readonly paused: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/pending) */\n readonly pending: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/speaking) */\n readonly speaking: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/cancel) */\n cancel(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/getVoices) */\n getVoices(): SpeechSynthesisVoice[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/pause) */\n pause(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/resume) */\n resume(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/speak) */\n speak(utterance: SpeechSynthesisUtterance): void;\n addEventListener<K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SpeechSynthesis: {\n prototype: SpeechSynthesis;\n new(): SpeechSynthesis;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisErrorEvent) */\ninterface SpeechSynthesisErrorEvent extends SpeechSynthesisEvent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisErrorEvent/error) */\n readonly error: SpeechSynthesisErrorCode;\n}\n\ndeclare var SpeechSynthesisErrorEvent: {\n prototype: SpeechSynthesisErrorEvent;\n new(type: string, eventInitDict: SpeechSynthesisErrorEventInit): SpeechSynthesisErrorEvent;\n};\n\n/**\n * This Web Speech API interface contains information about the current state of SpeechSynthesisUtterance objects that have been processed in the speech service.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent)\n */\ninterface SpeechSynthesisEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/charIndex) */\n readonly charIndex: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/charLength) */\n readonly charLength: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/elapsedTime) */\n readonly elapsedTime: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/utterance) */\n readonly utterance: SpeechSynthesisUtterance;\n}\n\ndeclare var SpeechSynthesisEvent: {\n prototype: SpeechSynthesisEvent;\n new(type: string, eventInitDict: SpeechSynthesisEventInit): SpeechSynthesisEvent;\n};\n\ninterface SpeechSynthesisUtteranceEventMap {\n "boundary": SpeechSynthesisEvent;\n "end": SpeechSynthesisEvent;\n "error": SpeechSynthesisErrorEvent;\n "mark": SpeechSynthesisEvent;\n "pause": SpeechSynthesisEvent;\n "resume": SpeechSynthesisEvent;\n "start": SpeechSynthesisEvent;\n}\n\n/**\n * This Web Speech API interface represents a speech request. It contains the content the speech service should read and information about how to read it (e.g. language, pitch and volume.)\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance)\n */\ninterface SpeechSynthesisUtterance extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/lang) */\n lang: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/boundary_event) */\n onboundary: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/end_event) */\n onend: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/error_event) */\n onerror: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisErrorEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/mark_event) */\n onmark: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/pause_event) */\n onpause: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/resume_event) */\n onresume: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/start_event) */\n onstart: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/pitch) */\n pitch: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/rate) */\n rate: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/text) */\n text: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/voice) */\n voice: SpeechSynthesisVoice | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/volume) */\n volume: number;\n addEventListener<K extends keyof SpeechSynthesisUtteranceEventMap>(type: K, listener: (this: SpeechSynthesisUtterance, ev: SpeechSynthesisUtteranceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SpeechSynthesisUtteranceEventMap>(type: K, listener: (this: SpeechSynthesisUtterance, ev: SpeechSynthesisUtteranceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SpeechSynthesisUtterance: {\n prototype: SpeechSynthesisUtterance;\n new(text?: string): SpeechSynthesisUtterance;\n};\n\n/**\n * This Web Speech API interface represents a voice that the system supports. Every SpeechSynthesisVoice has its own relative speech service including information about language, name and URI.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice)\n */\ninterface SpeechSynthesisVoice {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/default) */\n readonly default: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/lang) */\n readonly lang: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/localService) */\n readonly localService: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/voiceURI) */\n readonly voiceURI: string;\n}\n\ndeclare var SpeechSynthesisVoice: {\n prototype: SpeechSynthesisVoice;\n new(): SpeechSynthesisVoice;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StaticRange) */\ninterface StaticRange extends AbstractRange {\n}\n\ndeclare var StaticRange: {\n prototype: StaticRange;\n new(init: StaticRangeInit): StaticRange;\n};\n\n/**\n * The pan property takes a unitless value between -1 (full left pan) and 1 (full right pan). This interface was introduced as a much simpler way to apply a simple panning effect than having to use a full PannerNode.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StereoPannerNode)\n */\ninterface StereoPannerNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StereoPannerNode/pan) */\n readonly pan: AudioParam;\n}\n\ndeclare var StereoPannerNode: {\n prototype: StereoPannerNode;\n new(context: BaseAudioContext, options?: StereoPannerOptions): StereoPannerNode;\n};\n\n/**\n * This Web Storage API interface provides access to a particular domain\'s session or local storage. It allows, for example, the addition, modification, or deletion of stored data items.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage)\n */\ninterface Storage {\n /**\n * Returns the number of key/value pairs.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/length)\n */\n readonly length: number;\n /**\n * Removes all key/value pairs, if there are any.\n *\n * Dispatches a storage event on Window objects holding an equivalent Storage object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/clear)\n */\n clear(): void;\n /**\n * Returns the current value associated with the given key, or null if the given key does not exist.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/getItem)\n */\n getItem(key: string): string | null;\n /**\n * Returns the name of the nth key, or null if n is greater than or equal to the number of key/value pairs.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/key)\n */\n key(index: number): string | null;\n /**\n * Removes the key/value pair with the given key, if a key/value pair with the given key exists.\n *\n * Dispatches a storage event on Window objects holding an equivalent Storage object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/removeItem)\n */\n removeItem(key: string): void;\n /**\n * Sets the value of the pair identified by key to value, creating a new key/value pair if none existed for key previously.\n *\n * Throws a "QuotaExceededError" DOMException exception if the new value couldn\'t be set. (Setting could fail if, e.g., the user has disabled storage for the site, or if the quota has been exceeded.)\n *\n * Dispatches a storage event on Window objects holding an equivalent Storage object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/setItem)\n */\n setItem(key: string, value: string): void;\n [name: string]: any;\n}\n\ndeclare var Storage: {\n prototype: Storage;\n new(): Storage;\n};\n\n/**\n * A StorageEvent is sent to a window when a storage area it has access to is changed within the context of another document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent)\n */\ninterface StorageEvent extends Event {\n /**\n * Returns the key of the storage item being changed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/key)\n */\n readonly key: string | null;\n /**\n * Returns the new value of the key of the storage item whose value is being changed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/newValue)\n */\n readonly newValue: string | null;\n /**\n * Returns the old value of the key of the storage item whose value is being changed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/oldValue)\n */\n readonly oldValue: string | null;\n /**\n * Returns the Storage object that was affected.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/storageArea)\n */\n readonly storageArea: Storage | null;\n /**\n * Returns the URL of the document whose storage item changed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/url)\n */\n readonly url: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/initStorageEvent)\n */\n initStorageEvent(type: string, bubbles?: boolean, cancelable?: boolean, key?: string | null, oldValue?: string | null, newValue?: string | null, url?: string | URL, storageArea?: Storage | null): void;\n}\n\ndeclare var StorageEvent: {\n prototype: StorageEvent;\n new(type: string, eventInitDict?: StorageEventInit): StorageEvent;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager)\n */\ninterface StorageManager {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/estimate) */\n estimate(): Promise<StorageEstimate>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/getDirectory) */\n getDirectory(): Promise<FileSystemDirectoryHandle>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/persist) */\n persist(): Promise<boolean>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/persisted) */\n persisted(): Promise<boolean>;\n}\n\ndeclare var StorageManager: {\n prototype: StorageManager;\n new(): StorageManager;\n};\n\n/** @deprecated */\ninterface StyleMedia {\n type: string;\n matchMedium(mediaquery: string): boolean;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMap) */\ninterface StylePropertyMap extends StylePropertyMapReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMap/append) */\n append(property: string, ...values: (CSSStyleValue | string)[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMap/clear) */\n clear(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMap/delete) */\n delete(property: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMap/set) */\n set(property: string, ...values: (CSSStyleValue | string)[]): void;\n}\n\ndeclare var StylePropertyMap: {\n prototype: StylePropertyMap;\n new(): StylePropertyMap;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly) */\ninterface StylePropertyMapReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/size) */\n readonly size: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/get) */\n get(property: string): undefined | CSSStyleValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/getAll) */\n getAll(property: string): CSSStyleValue[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/has) */\n has(property: string): boolean;\n forEach(callbackfn: (value: CSSStyleValue[], key: string, parent: StylePropertyMapReadOnly) => void, thisArg?: any): void;\n}\n\ndeclare var StylePropertyMapReadOnly: {\n prototype: StylePropertyMapReadOnly;\n new(): StylePropertyMapReadOnly;\n};\n\n/**\n * A single style sheet. CSS style sheets will further implement the more specialized CSSStyleSheet interface.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet)\n */\ninterface StyleSheet {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/disabled) */\n disabled: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/href) */\n readonly href: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/media) */\n readonly media: MediaList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/ownerNode) */\n readonly ownerNode: Element | ProcessingInstruction | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/parentStyleSheet) */\n readonly parentStyleSheet: CSSStyleSheet | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/title) */\n readonly title: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/type) */\n readonly type: string;\n}\n\ndeclare var StyleSheet: {\n prototype: StyleSheet;\n new(): StyleSheet;\n};\n\n/**\n * A list of StyleSheet.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheetList)\n */\ninterface StyleSheetList {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheetList/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheetList/item) */\n item(index: number): CSSStyleSheet | null;\n [index: number]: CSSStyleSheet;\n}\n\ndeclare var StyleSheetList: {\n prototype: StyleSheetList;\n new(): StyleSheetList;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubmitEvent) */\ninterface SubmitEvent extends Event {\n /**\n * Returns the element representing the submit button that triggered the form submission, or null if the submission was not triggered by a button.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubmitEvent/submitter)\n */\n readonly submitter: HTMLElement | null;\n}\n\ndeclare var SubmitEvent: {\n prototype: SubmitEvent;\n new(type: string, eventInitDict?: SubmitEventInit): SubmitEvent;\n};\n\n/**\n * This Web Crypto API interface provides a number of low-level cryptographic functions. It is accessed via the Crypto.subtle properties available in a window context (via Window.crypto).\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto)\n */\ninterface SubtleCrypto {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/decrypt) */\n decrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveBits) */\n deriveBits(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length: number): Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveKey) */\n deriveKey(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/digest) */\n digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/encrypt) */\n encrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/exportKey) */\n exportKey(format: "jwk", key: CryptoKey): Promise<JsonWebKey>;\n exportKey(format: Exclude<KeyFormat, "jwk">, key: CryptoKey): Promise<ArrayBuffer>;\n exportKey(format: KeyFormat, key: CryptoKey): Promise<ArrayBuffer | JsonWebKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/generateKey) */\n generateKey(algorithm: "Ed25519", extractable: boolean, keyUsages: ReadonlyArray<"sign" | "verify">): Promise<CryptoKeyPair>;\n generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;\n generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;\n generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair | CryptoKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/importKey) */\n importKey(format: "jwk", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;\n importKey(format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/sign) */\n sign(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/unwrapKey) */\n unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/verify) */\n verify(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: BufferSource, data: BufferSource): Promise<boolean>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/wrapKey) */\n wrapKey(format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams): Promise<ArrayBuffer>;\n}\n\ndeclare var SubtleCrypto: {\n prototype: SubtleCrypto;\n new(): SubtleCrypto;\n};\n\n/**\n * The textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element\'s text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Text)\n */\ninterface Text extends CharacterData, Slottable {\n /**\n * Returns the combined data of all direct Text node siblings.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Text/wholeText)\n */\n readonly wholeText: string;\n /**\n * Splits data at the given offset and returns the remainder as Text node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Text/splitText)\n */\n splitText(offset: number): Text;\n}\n\ndeclare var Text: {\n prototype: Text;\n new(data?: string): Text;\n};\n\n/**\n * A decoder for a specific method, that is a specific character encoding, like utf-8, iso-8859-2, koi8, cp1261, gbk, etc. A decoder takes a stream of bytes as input and emits a stream of code points. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder)\n */\ninterface TextDecoder extends TextDecoderCommon {\n /**\n * Returns the result of running encoding\'s decoder. The method can be invoked zero or more times with options\'s stream set to true, and then once without options\'s stream (or set to false), to process a fragmented input. If the invocation without options\'s stream (or set to false) has no input, it\'s clearest to omit both arguments.\n *\n * ```\n * var string = "", decoder = new TextDecoder(encoding), buffer;\n * while(buffer = next_chunk()) {\n * string += decoder.decode(buffer, {stream:true});\n * }\n * string += decoder.decode(); // end-of-queue\n * ```\n *\n * If the error mode is "fatal" and encoding\'s decoder returns error, throws a TypeError.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/decode)\n */\n decode(input?: AllowSharedBufferSource, options?: TextDecodeOptions): string;\n}\n\ndeclare var TextDecoder: {\n prototype: TextDecoder;\n new(label?: string, options?: TextDecoderOptions): TextDecoder;\n};\n\ninterface TextDecoderCommon {\n /**\n * Returns encoding\'s name, lowercased.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/encoding)\n */\n readonly encoding: string;\n /**\n * Returns true if error mode is "fatal", otherwise false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/fatal)\n */\n readonly fatal: boolean;\n /**\n * Returns the value of ignore BOM.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/ignoreBOM)\n */\n readonly ignoreBOM: boolean;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoderStream) */\ninterface TextDecoderStream extends GenericTransformStream, TextDecoderCommon {\n readonly readable: ReadableStream<string>;\n readonly writable: WritableStream<BufferSource>;\n}\n\ndeclare var TextDecoderStream: {\n prototype: TextDecoderStream;\n new(label?: string, options?: TextDecoderOptions): TextDecoderStream;\n};\n\n/**\n * TextEncoder takes a stream of code points as input and emits a stream of bytes. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder)\n */\ninterface TextEncoder extends TextEncoderCommon {\n /**\n * Returns the result of running UTF-8\'s encoder.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encode)\n */\n encode(input?: string): Uint8Array;\n /**\n * Runs the UTF-8 encoder on source, stores the result of that operation into destination, and returns the progress made as an object wherein read is the number of converted code units of source and written is the number of bytes modified in destination.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encodeInto)\n */\n encodeInto(source: string, destination: Uint8Array): TextEncoderEncodeIntoResult;\n}\n\ndeclare var TextEncoder: {\n prototype: TextEncoder;\n new(): TextEncoder;\n};\n\ninterface TextEncoderCommon {\n /**\n * Returns "utf-8".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encoding)\n */\n readonly encoding: string;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoderStream) */\ninterface TextEncoderStream extends GenericTransformStream, TextEncoderCommon {\n readonly readable: ReadableStream<Uint8Array>;\n readonly writable: WritableStream<string>;\n}\n\ndeclare var TextEncoderStream: {\n prototype: TextEncoderStream;\n new(): TextEncoderStream;\n};\n\n/**\n * The dimensions of a piece of text in the canvas, as created by the CanvasRenderingContext2D.measureText() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics)\n */\ninterface TextMetrics {\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxAscent)\n */\n readonly actualBoundingBoxAscent: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxDescent)\n */\n readonly actualBoundingBoxDescent: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxLeft)\n */\n readonly actualBoundingBoxLeft: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxRight)\n */\n readonly actualBoundingBoxRight: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/alphabeticBaseline)\n */\n readonly alphabeticBaseline: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/emHeightAscent)\n */\n readonly emHeightAscent: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/emHeightDescent)\n */\n readonly emHeightDescent: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/fontBoundingBoxAscent)\n */\n readonly fontBoundingBoxAscent: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/fontBoundingBoxDescent)\n */\n readonly fontBoundingBoxDescent: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/hangingBaseline)\n */\n readonly hangingBaseline: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/ideographicBaseline)\n */\n readonly ideographicBaseline: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/width)\n */\n readonly width: number;\n}\n\ndeclare var TextMetrics: {\n prototype: TextMetrics;\n new(): TextMetrics;\n};\n\ninterface TextTrackEventMap {\n "cuechange": Event;\n}\n\n/**\n * This interface also inherits properties from EventTarget.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack)\n */\ninterface TextTrack extends EventTarget {\n /**\n * Returns the text track cues from the text track list of cues that are currently active (i.e. that start before the current playback position and end after it), as a TextTrackCueList object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/activeCues)\n */\n readonly activeCues: TextTrackCueList | null;\n /**\n * Returns the text track list of cues, as a TextTrackCueList object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/cues)\n */\n readonly cues: TextTrackCueList | null;\n /**\n * Returns the ID of the given track.\n *\n * For in-band tracks, this is the ID that can be used with a fragment if the format supports media fragment syntax, and that can be used with the getTrackById() method.\n *\n * For TextTrack objects corresponding to track elements, this is the ID of the track element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/id)\n */\n readonly id: string;\n /**\n * Returns the text track in-band metadata track dispatch type string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/inBandMetadataTrackDispatchType)\n */\n readonly inBandMetadataTrackDispatchType: string;\n /**\n * Returns the text track kind string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/kind)\n */\n readonly kind: TextTrackKind;\n /**\n * Returns the text track label, if there is one, or the empty string otherwise (indicating that a custom label probably needs to be generated from the other attributes of the object if the object is exposed to the user).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/label)\n */\n readonly label: string;\n /**\n * Returns the text track language string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/language)\n */\n readonly language: string;\n /**\n * Returns the text track mode, represented by a string from the following list:\n *\n * Can be set, to change the mode.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/mode)\n */\n mode: TextTrackMode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/cuechange_event) */\n oncuechange: ((this: TextTrack, ev: Event) => any) | null;\n /**\n * Adds the given cue to textTrack\'s text track list of cues.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/addCue)\n */\n addCue(cue: TextTrackCue): void;\n /**\n * Removes the given cue from textTrack\'s text track list of cues.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/removeCue)\n */\n removeCue(cue: TextTrackCue): void;\n addEventListener<K extends keyof TextTrackEventMap>(type: K, listener: (this: TextTrack, ev: TextTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof TextTrackEventMap>(type: K, listener: (this: TextTrack, ev: TextTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var TextTrack: {\n prototype: TextTrack;\n new(): TextTrack;\n};\n\ninterface TextTrackCueEventMap {\n "enter": Event;\n "exit": Event;\n}\n\n/**\n * TextTrackCues represent a string of text that will be displayed for some duration of time on a TextTrack. This includes the start and end times that the cue will be displayed. A TextTrackCue cannot be used directly, instead one of the derived types (e.g. VTTCue) must be used.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue)\n */\ninterface TextTrackCue extends EventTarget {\n /**\n * Returns the text track cue end time, in seconds.\n *\n * Can be set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/endTime)\n */\n endTime: number;\n /**\n * Returns the text track cue identifier.\n *\n * Can be set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/id)\n */\n id: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/enter_event) */\n onenter: ((this: TextTrackCue, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/exit_event) */\n onexit: ((this: TextTrackCue, ev: Event) => any) | null;\n /**\n * Returns true if the text track cue pause-on-exit flag is set, false otherwise.\n *\n * Can be set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/pauseOnExit)\n */\n pauseOnExit: boolean;\n /**\n * Returns the text track cue start time, in seconds.\n *\n * Can be set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/startTime)\n */\n startTime: number;\n /**\n * Returns the TextTrack object to which this text track cue belongs, if any, or null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/track)\n */\n readonly track: TextTrack | null;\n addEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: TextTrackCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: TextTrackCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var TextTrackCue: {\n prototype: TextTrackCue;\n new(): TextTrackCue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCueList) */\ninterface TextTrackCueList {\n /**\n * Returns the number of cues in the list.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCueList/length)\n */\n readonly length: number;\n /**\n * Returns the first text track cue (in text track cue order) with text track cue identifier id.\n *\n * Returns null if none of the cues have the given identifier or if the argument is the empty string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCueList/getCueById)\n */\n getCueById(id: string): TextTrackCue | null;\n [index: number]: TextTrackCue;\n}\n\ndeclare var TextTrackCueList: {\n prototype: TextTrackCueList;\n new(): TextTrackCueList;\n};\n\ninterface TextTrackListEventMap {\n "addtrack": TrackEvent;\n "change": Event;\n "removetrack": TrackEvent;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList) */\ninterface TextTrackList extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/addtrack_event) */\n onaddtrack: ((this: TextTrackList, ev: TrackEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/change_event) */\n onchange: ((this: TextTrackList, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/removetrack_event) */\n onremovetrack: ((this: TextTrackList, ev: TrackEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/getTrackById) */\n getTrackById(id: string): TextTrack | null;\n addEventListener<K extends keyof TextTrackListEventMap>(type: K, listener: (this: TextTrackList, ev: TextTrackListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof TextTrackListEventMap>(type: K, listener: (this: TextTrackList, ev: TextTrackListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n [index: number]: TextTrack;\n}\n\ndeclare var TextTrackList: {\n prototype: TextTrackList;\n new(): TextTrackList;\n};\n\n/**\n * Used to represent a set of time ranges, primarily for the purpose of tracking which portions of media have been buffered when loading it for use by the <audio> and <video> elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TimeRanges)\n */\ninterface TimeRanges {\n /**\n * Returns the number of ranges in the object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TimeRanges/length)\n */\n readonly length: number;\n /**\n * Returns the time for the end of the range with the given index.\n *\n * Throws an "IndexSizeError" DOMException if the index is out of range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TimeRanges/end)\n */\n end(index: number): number;\n /**\n * Returns the time for the start of the range with the given index.\n *\n * Throws an "IndexSizeError" DOMException if the index is out of range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TimeRanges/start)\n */\n start(index: number): number;\n}\n\ndeclare var TimeRanges: {\n prototype: TimeRanges;\n new(): TimeRanges;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent) */\ninterface ToggleEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent/newState) */\n readonly newState: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent/oldState) */\n readonly oldState: string;\n}\n\ndeclare var ToggleEvent: {\n prototype: ToggleEvent;\n new(type: string, eventInitDict?: ToggleEventInit): ToggleEvent;\n};\n\n/**\n * A single contact point on a touch-sensitive device. The contact point is commonly a finger or stylus and the device may be a touchscreen or trackpad.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch)\n */\ninterface Touch {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/clientX) */\n readonly clientX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/clientY) */\n readonly clientY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/force) */\n readonly force: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/identifier) */\n readonly identifier: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/pageX) */\n readonly pageX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/pageY) */\n readonly pageY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/radiusX) */\n readonly radiusX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/radiusY) */\n readonly radiusY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/rotationAngle) */\n readonly rotationAngle: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/screenX) */\n readonly screenX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/screenY) */\n readonly screenY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/target) */\n readonly target: EventTarget;\n}\n\ndeclare var Touch: {\n prototype: Touch;\n new(touchInitDict: TouchInit): Touch;\n};\n\n/**\n * An event sent when the state of contacts with a touch-sensitive surface changes. This surface can be a touch screen or trackpad, for example. The event can describe one or more points of contact with the screen and includes support for detecting movement, addition and removal of contact points, and so forth.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent)\n */\ninterface TouchEvent extends UIEvent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/altKey) */\n readonly altKey: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/changedTouches) */\n readonly changedTouches: TouchList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/ctrlKey) */\n readonly ctrlKey: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/metaKey) */\n readonly metaKey: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/shiftKey) */\n readonly shiftKey: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/targetTouches) */\n readonly targetTouches: TouchList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/touches) */\n readonly touches: TouchList;\n}\n\ndeclare var TouchEvent: {\n prototype: TouchEvent;\n new(type: string, eventInitDict?: TouchEventInit): TouchEvent;\n};\n\n/**\n * A list of contact points on a touch surface. For example, if the user has three fingers on the touch surface (such as a screen or trackpad), the corresponding TouchList object would have one Touch object for each finger, for a total of three entries.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchList)\n */\ninterface TouchList {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchList/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchList/item) */\n item(index: number): Touch | null;\n [index: number]: Touch;\n}\n\ndeclare var TouchList: {\n prototype: TouchList;\n new(): TouchList;\n};\n\n/**\n * The TrackEvent interface, part of the HTML DOM specification, is used for events which represent changes to the set of available tracks on an HTML media element; these events are addtrack and removetrack.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TrackEvent)\n */\ninterface TrackEvent extends Event {\n /**\n * Returns the track object (TextTrack, AudioTrack, or VideoTrack) to which the event relates.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TrackEvent/track)\n */\n readonly track: TextTrack | null;\n}\n\ndeclare var TrackEvent: {\n prototype: TrackEvent;\n new(type: string, eventInitDict?: TrackEventInit): TrackEvent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream) */\ninterface TransformStream<I = any, O = any> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream/readable) */\n readonly readable: ReadableStream<O>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream/writable) */\n readonly writable: WritableStream<I>;\n}\n\ndeclare var TransformStream: {\n prototype: TransformStream;\n new<I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController) */\ninterface TransformStreamDefaultController<O = any> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/desiredSize) */\n readonly desiredSize: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/enqueue) */\n enqueue(chunk?: O): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/error) */\n error(reason?: any): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/terminate) */\n terminate(): void;\n}\n\ndeclare var TransformStreamDefaultController: {\n prototype: TransformStreamDefaultController;\n new(): TransformStreamDefaultController;\n};\n\n/**\n * Events providing information related to transitions.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransitionEvent)\n */\ninterface TransitionEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransitionEvent/elapsedTime) */\n readonly elapsedTime: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransitionEvent/propertyName) */\n readonly propertyName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransitionEvent/pseudoElement) */\n readonly pseudoElement: string;\n}\n\ndeclare var TransitionEvent: {\n prototype: TransitionEvent;\n new(type: string, transitionEventInitDict?: TransitionEventInit): TransitionEvent;\n};\n\n/**\n * The nodes of a document subtree and a position within them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker)\n */\ninterface TreeWalker {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/currentNode) */\n currentNode: Node;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/filter) */\n readonly filter: NodeFilter | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/root) */\n readonly root: Node;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/whatToShow) */\n readonly whatToShow: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/firstChild) */\n firstChild(): Node | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/lastChild) */\n lastChild(): Node | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/nextNode) */\n nextNode(): Node | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/nextSibling) */\n nextSibling(): Node | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/parentNode) */\n parentNode(): Node | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/previousNode) */\n previousNode(): Node | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/previousSibling) */\n previousSibling(): Node | null;\n}\n\ndeclare var TreeWalker: {\n prototype: TreeWalker;\n new(): TreeWalker;\n};\n\n/**\n * Simple user interface events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent)\n */\ninterface UIEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent/detail) */\n readonly detail: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent/view) */\n readonly view: Window | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent/which)\n */\n readonly which: number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent/initUIEvent)\n */\n initUIEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, viewArg?: Window | null, detailArg?: number): void;\n}\n\ndeclare var UIEvent: {\n prototype: UIEvent;\n new(type: string, eventInitDict?: UIEventInit): UIEvent;\n};\n\n/**\n * The URL interface represents an object providing static methods used for creating object URLs.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL)\n */\ninterface URL {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/hash) */\n hash: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/host) */\n host: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/hostname) */\n hostname: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/href) */\n href: string;\n toString(): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/origin) */\n readonly origin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/password) */\n password: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/pathname) */\n pathname: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/port) */\n port: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/protocol) */\n protocol: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/search) */\n search: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/searchParams) */\n readonly searchParams: URLSearchParams;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/username) */\n username: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/toJSON) */\n toJSON(): string;\n}\n\ndeclare var URL: {\n prototype: URL;\n new(url: string | URL, base?: string | URL): URL;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/canParse_static) */\n canParse(url: string | URL, base?: string): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/createObjectURL_static) */\n createObjectURL(obj: Blob | MediaSource): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/revokeObjectURL_static) */\n revokeObjectURL(url: string): void;\n};\n\ntype webkitURL = URL;\ndeclare var webkitURL: typeof URL;\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams) */\ninterface URLSearchParams {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/size) */\n readonly size: number;\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/append)\n */\n append(name: string, value: string): void;\n /**\n * Deletes the given search parameter, and its associated value, from the list of all search parameters.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/delete)\n */\n delete(name: string, value?: string): void;\n /**\n * Returns the first value associated to the given search parameter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/get)\n */\n get(name: string): string | null;\n /**\n * Returns all the values association with a given search parameter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/getAll)\n */\n getAll(name: string): string[];\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/has)\n */\n has(name: string, value?: string): boolean;\n /**\n * Sets the value associated to a given search parameter to the given value. If there were several values, delete the others.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/set)\n */\n set(name: string, value: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/sort) */\n sort(): void;\n /** Returns a string containing a query string suitable for use in a URL. Does not include the question mark. */\n toString(): string;\n forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void;\n}\n\ndeclare var URLSearchParams: {\n prototype: URLSearchParams;\n new(init?: string[][] | Record<string, string> | string | URLSearchParams): URLSearchParams;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/UserActivation) */\ninterface UserActivation {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/UserActivation/hasBeenActive) */\n readonly hasBeenActive: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/UserActivation/hasBeenActive) */\n readonly isActive: boolean;\n}\n\ndeclare var UserActivation: {\n prototype: UserActivation;\n new(): UserActivation;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue) */\ninterface VTTCue extends TextTrackCue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/align) */\n align: AlignSetting;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/line) */\n line: LineAndPositionSetting;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/lineAlign) */\n lineAlign: LineAlignSetting;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/position) */\n position: LineAndPositionSetting;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/positionAlign) */\n positionAlign: PositionAlignSetting;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/region) */\n region: VTTRegion | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/size) */\n size: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/snapToLines) */\n snapToLines: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/text) */\n text: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/vertical) */\n vertical: DirectionSetting;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/getCueAsHTML) */\n getCueAsHTML(): DocumentFragment;\n addEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: VTTCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: VTTCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var VTTCue: {\n prototype: VTTCue;\n new(startTime: number, endTime: number, text: string): VTTCue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion) */\ninterface VTTRegion {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/id) */\n id: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/lines) */\n lines: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/regionAnchorX) */\n regionAnchorX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/regionAnchorY) */\n regionAnchorY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/scroll) */\n scroll: ScrollSetting;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/viewportAnchorX) */\n viewportAnchorX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/viewportAnchorY) */\n viewportAnchorY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/width) */\n width: number;\n}\n\ndeclare var VTTRegion: {\n prototype: VTTRegion;\n new(): VTTRegion;\n};\n\n/**\n * The validity states that an element can be in, with respect to constraint validation. Together, they help explain why an element\'s value fails to validate, if it\'s not valid.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState)\n */\ninterface ValidityState {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/badInput) */\n readonly badInput: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/customError) */\n readonly customError: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/patternMismatch) */\n readonly patternMismatch: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/rangeOverflow) */\n readonly rangeOverflow: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/rangeUnderflow) */\n readonly rangeUnderflow: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/stepMismatch) */\n readonly stepMismatch: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/tooLong) */\n readonly tooLong: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/tooShort) */\n readonly tooShort: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/typeMismatch) */\n readonly typeMismatch: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/valid) */\n readonly valid: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/valueMissing) */\n readonly valueMissing: boolean;\n}\n\ndeclare var ValidityState: {\n prototype: ValidityState;\n new(): ValidityState;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace) */\ninterface VideoColorSpace {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/fullRange) */\n readonly fullRange: boolean | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/matrix) */\n readonly matrix: VideoMatrixCoefficients | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/primaries) */\n readonly primaries: VideoColorPrimaries | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/transfer) */\n readonly transfer: VideoTransferCharacteristics | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/toJSON) */\n toJSON(): VideoColorSpaceInit;\n}\n\ndeclare var VideoColorSpace: {\n prototype: VideoColorSpace;\n new(init?: VideoColorSpaceInit): VideoColorSpace;\n};\n\ninterface VideoDecoderEventMap {\n "dequeue": Event;\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder)\n */\ninterface VideoDecoder extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/decodeQueueSize) */\n readonly decodeQueueSize: number;\n ondequeue: ((this: VideoDecoder, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/state) */\n readonly state: CodecState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/close) */\n close(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/configure) */\n configure(config: VideoDecoderConfig): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/decode) */\n decode(chunk: EncodedVideoChunk): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/flush) */\n flush(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/reset) */\n reset(): void;\n addEventListener<K extends keyof VideoDecoderEventMap>(type: K, listener: (this: VideoDecoder, ev: VideoDecoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof VideoDecoderEventMap>(type: K, listener: (this: VideoDecoder, ev: VideoDecoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var VideoDecoder: {\n prototype: VideoDecoder;\n new(init: VideoDecoderInit): VideoDecoder;\n isConfigSupported(config: VideoDecoderConfig): Promise<VideoDecoderSupport>;\n};\n\ninterface VideoEncoderEventMap {\n "dequeue": Event;\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder)\n */\ninterface VideoEncoder extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/encodeQueueSize) */\n readonly encodeQueueSize: number;\n ondequeue: ((this: VideoEncoder, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/state) */\n readonly state: CodecState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/close) */\n close(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/configure) */\n configure(config: VideoEncoderConfig): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/encode) */\n encode(frame: VideoFrame, options?: VideoEncoderEncodeOptions): void;\n flush(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/reset) */\n reset(): void;\n addEventListener<K extends keyof VideoEncoderEventMap>(type: K, listener: (this: VideoEncoder, ev: VideoEncoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof VideoEncoderEventMap>(type: K, listener: (this: VideoEncoder, ev: VideoEncoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var VideoEncoder: {\n prototype: VideoEncoder;\n new(init: VideoEncoderInit): VideoEncoder;\n isConfigSupported(config: VideoEncoderConfig): Promise<VideoEncoderSupport>;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame) */\ninterface VideoFrame {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedHeight) */\n readonly codedHeight: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedRect) */\n readonly codedRect: DOMRectReadOnly | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedWidth) */\n readonly codedWidth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/colorSpace) */\n readonly colorSpace: VideoColorSpace;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/displayHeight) */\n readonly displayHeight: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/displayWidth) */\n readonly displayWidth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/duration) */\n readonly duration: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/format) */\n readonly format: VideoPixelFormat | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/timestamp) */\n readonly timestamp: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/visibleRect) */\n readonly visibleRect: DOMRectReadOnly | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/allocationSize) */\n allocationSize(options?: VideoFrameCopyToOptions): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/clone) */\n clone(): VideoFrame;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/close) */\n close(): void;\n copyTo(destination: AllowSharedBufferSource, options?: VideoFrameCopyToOptions): Promise<PlaneLayout[]>;\n}\n\ndeclare var VideoFrame: {\n prototype: VideoFrame;\n new(image: CanvasImageSource, init?: VideoFrameInit): VideoFrame;\n new(data: AllowSharedBufferSource, init: VideoFrameBufferInit): VideoFrame;\n};\n\n/**\n * Returned by the HTMLVideoElement.getVideoPlaybackQuality() method and contains metrics that can be used to determine the playback quality of a video.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality)\n */\ninterface VideoPlaybackQuality {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality/corruptedVideoFrames)\n */\n readonly corruptedVideoFrames: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality/creationTime) */\n readonly creationTime: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality/droppedVideoFrames) */\n readonly droppedVideoFrames: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality/totalVideoFrames) */\n readonly totalVideoFrames: number;\n}\n\ndeclare var VideoPlaybackQuality: {\n prototype: VideoPlaybackQuality;\n new(): VideoPlaybackQuality;\n};\n\ninterface VisualViewportEventMap {\n "resize": Event;\n "scroll": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport) */\ninterface VisualViewport extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/height) */\n readonly height: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/offsetLeft) */\n readonly offsetLeft: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/offsetTop) */\n readonly offsetTop: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/resize_event) */\n onresize: ((this: VisualViewport, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/scroll_event) */\n onscroll: ((this: VisualViewport, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/pageLeft) */\n readonly pageLeft: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/pageTop) */\n readonly pageTop: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/scale) */\n readonly scale: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/width) */\n readonly width: number;\n addEventListener<K extends keyof VisualViewportEventMap>(type: K, listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof VisualViewportEventMap>(type: K, listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var VisualViewport: {\n prototype: VisualViewport;\n new(): VisualViewport;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_color_buffer_float) */\ninterface WEBGL_color_buffer_float {\n readonly RGBA32F_EXT: 0x8814;\n readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;\n readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_astc) */\ninterface WEBGL_compressed_texture_astc {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_astc/getSupportedProfiles) */\n getSupportedProfiles(): string[];\n readonly COMPRESSED_RGBA_ASTC_4x4_KHR: 0x93B0;\n readonly COMPRESSED_RGBA_ASTC_5x4_KHR: 0x93B1;\n readonly COMPRESSED_RGBA_ASTC_5x5_KHR: 0x93B2;\n readonly COMPRESSED_RGBA_ASTC_6x5_KHR: 0x93B3;\n readonly COMPRESSED_RGBA_ASTC_6x6_KHR: 0x93B4;\n readonly COMPRESSED_RGBA_ASTC_8x5_KHR: 0x93B5;\n readonly COMPRESSED_RGBA_ASTC_8x6_KHR: 0x93B6;\n readonly COMPRESSED_RGBA_ASTC_8x8_KHR: 0x93B7;\n readonly COMPRESSED_RGBA_ASTC_10x5_KHR: 0x93B8;\n readonly COMPRESSED_RGBA_ASTC_10x6_KHR: 0x93B9;\n readonly COMPRESSED_RGBA_ASTC_10x8_KHR: 0x93BA;\n readonly COMPRESSED_RGBA_ASTC_10x10_KHR: 0x93BB;\n readonly COMPRESSED_RGBA_ASTC_12x10_KHR: 0x93BC;\n readonly COMPRESSED_RGBA_ASTC_12x12_KHR: 0x93BD;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: 0x93D0;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: 0x93D1;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: 0x93D2;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: 0x93D3;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: 0x93D4;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: 0x93D5;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: 0x93D6;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: 0x93D7;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: 0x93D8;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: 0x93D9;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: 0x93DA;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: 0x93DB;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: 0x93DC;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: 0x93DD;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_etc) */\ninterface WEBGL_compressed_texture_etc {\n readonly COMPRESSED_R11_EAC: 0x9270;\n readonly COMPRESSED_SIGNED_R11_EAC: 0x9271;\n readonly COMPRESSED_RG11_EAC: 0x9272;\n readonly COMPRESSED_SIGNED_RG11_EAC: 0x9273;\n readonly COMPRESSED_RGB8_ETC2: 0x9274;\n readonly COMPRESSED_SRGB8_ETC2: 0x9275;\n readonly COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9276;\n readonly COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9277;\n readonly COMPRESSED_RGBA8_ETC2_EAC: 0x9278;\n readonly COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 0x9279;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_etc1) */\ninterface WEBGL_compressed_texture_etc1 {\n readonly COMPRESSED_RGB_ETC1_WEBGL: 0x8D64;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_pvrtc) */\ninterface WEBGL_compressed_texture_pvrtc {\n readonly COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 0x8C00;\n readonly COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 0x8C01;\n readonly COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 0x8C02;\n readonly COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 0x8C03;\n}\n\n/**\n * The WEBGL_compressed_texture_s3tc extension is part of the WebGL API and exposes four S3TC compressed texture formats.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_s3tc)\n */\ninterface WEBGL_compressed_texture_s3tc {\n readonly COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83F0;\n readonly COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83F1;\n readonly COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83F2;\n readonly COMPRESSED_RGBA_S3TC_DXT5_EXT: 0x83F3;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_s3tc_srgb) */\ninterface WEBGL_compressed_texture_s3tc_srgb {\n readonly COMPRESSED_SRGB_S3TC_DXT1_EXT: 0x8C4C;\n readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 0x8C4D;\n readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 0x8C4E;\n readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 0x8C4F;\n}\n\n/**\n * The WEBGL_debug_renderer_info extension is part of the WebGL API and exposes two constants with information about the graphics driver for debugging purposes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_renderer_info)\n */\ninterface WEBGL_debug_renderer_info {\n readonly UNMASKED_VENDOR_WEBGL: 0x9245;\n readonly UNMASKED_RENDERER_WEBGL: 0x9246;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_shaders) */\ninterface WEBGL_debug_shaders {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_shaders/getTranslatedShaderSource) */\n getTranslatedShaderSource(shader: WebGLShader): string;\n}\n\n/**\n * The WEBGL_depth_texture extension is part of the WebGL API and defines 2D depth and depth-stencil textures.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_depth_texture)\n */\ninterface WEBGL_depth_texture {\n readonly UNSIGNED_INT_24_8_WEBGL: 0x84FA;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_draw_buffers) */\ninterface WEBGL_draw_buffers {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_draw_buffers/drawBuffersWEBGL) */\n drawBuffersWEBGL(buffers: GLenum[]): void;\n readonly COLOR_ATTACHMENT0_WEBGL: 0x8CE0;\n readonly COLOR_ATTACHMENT1_WEBGL: 0x8CE1;\n readonly COLOR_ATTACHMENT2_WEBGL: 0x8CE2;\n readonly COLOR_ATTACHMENT3_WEBGL: 0x8CE3;\n readonly COLOR_ATTACHMENT4_WEBGL: 0x8CE4;\n readonly COLOR_ATTACHMENT5_WEBGL: 0x8CE5;\n readonly COLOR_ATTACHMENT6_WEBGL: 0x8CE6;\n readonly COLOR_ATTACHMENT7_WEBGL: 0x8CE7;\n readonly COLOR_ATTACHMENT8_WEBGL: 0x8CE8;\n readonly COLOR_ATTACHMENT9_WEBGL: 0x8CE9;\n readonly COLOR_ATTACHMENT10_WEBGL: 0x8CEA;\n readonly COLOR_ATTACHMENT11_WEBGL: 0x8CEB;\n readonly COLOR_ATTACHMENT12_WEBGL: 0x8CEC;\n readonly COLOR_ATTACHMENT13_WEBGL: 0x8CED;\n readonly COLOR_ATTACHMENT14_WEBGL: 0x8CEE;\n readonly COLOR_ATTACHMENT15_WEBGL: 0x8CEF;\n readonly DRAW_BUFFER0_WEBGL: 0x8825;\n readonly DRAW_BUFFER1_WEBGL: 0x8826;\n readonly DRAW_BUFFER2_WEBGL: 0x8827;\n readonly DRAW_BUFFER3_WEBGL: 0x8828;\n readonly DRAW_BUFFER4_WEBGL: 0x8829;\n readonly DRAW_BUFFER5_WEBGL: 0x882A;\n readonly DRAW_BUFFER6_WEBGL: 0x882B;\n readonly DRAW_BUFFER7_WEBGL: 0x882C;\n readonly DRAW_BUFFER8_WEBGL: 0x882D;\n readonly DRAW_BUFFER9_WEBGL: 0x882E;\n readonly DRAW_BUFFER10_WEBGL: 0x882F;\n readonly DRAW_BUFFER11_WEBGL: 0x8830;\n readonly DRAW_BUFFER12_WEBGL: 0x8831;\n readonly DRAW_BUFFER13_WEBGL: 0x8832;\n readonly DRAW_BUFFER14_WEBGL: 0x8833;\n readonly DRAW_BUFFER15_WEBGL: 0x8834;\n readonly MAX_COLOR_ATTACHMENTS_WEBGL: 0x8CDF;\n readonly MAX_DRAW_BUFFERS_WEBGL: 0x8824;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context) */\ninterface WEBGL_lose_context {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context/loseContext) */\n loseContext(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context/restoreContext) */\n restoreContext(): void;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw) */\ninterface WEBGL_multi_draw {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysInstancedWEBGL) */\n multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: number, countsList: Int32Array | GLsizei[], countsOffset: number, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: number, drawcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysWEBGL) */\n multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: number, countsList: Int32Array | GLsizei[], countsOffset: number, drawcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsInstancedWEBGL) */\n multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | GLsizei[], countsOffset: number, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: number, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: number, drawcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsWEBGL) */\n multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | GLsizei[], countsOffset: number, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: number, drawcount: GLsizei): void;\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLock)\n */\ninterface WakeLock {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLock/request) */\n request(type?: WakeLockType): Promise<WakeLockSentinel>;\n}\n\ndeclare var WakeLock: {\n prototype: WakeLock;\n new(): WakeLock;\n};\n\ninterface WakeLockSentinelEventMap {\n "release": Event;\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel)\n */\ninterface WakeLockSentinel extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel/release_event) */\n onrelease: ((this: WakeLockSentinel, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel/released) */\n readonly released: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel/type) */\n readonly type: WakeLockType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel/release) */\n release(): Promise<void>;\n addEventListener<K extends keyof WakeLockSentinelEventMap>(type: K, listener: (this: WakeLockSentinel, ev: WakeLockSentinelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof WakeLockSentinelEventMap>(type: K, listener: (this: WakeLockSentinel, ev: WakeLockSentinelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var WakeLockSentinel: {\n prototype: WakeLockSentinel;\n new(): WakeLockSentinel;\n};\n\n/**\n * A WaveShaperNode always has exactly one input and one output.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WaveShaperNode)\n */\ninterface WaveShaperNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WaveShaperNode/curve) */\n curve: Float32Array | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WaveShaperNode/oversample) */\n oversample: OverSampleType;\n}\n\ndeclare var WaveShaperNode: {\n prototype: WaveShaperNode;\n new(context: BaseAudioContext, options?: WaveShaperOptions): WaveShaperNode;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext) */\ninterface WebGL2RenderingContext extends WebGL2RenderingContextBase, WebGL2RenderingContextOverloads, WebGLRenderingContextBase {\n}\n\ndeclare var WebGL2RenderingContext: {\n prototype: WebGL2RenderingContext;\n new(): WebGL2RenderingContext;\n readonly READ_BUFFER: 0x0C02;\n readonly UNPACK_ROW_LENGTH: 0x0CF2;\n readonly UNPACK_SKIP_ROWS: 0x0CF3;\n readonly UNPACK_SKIP_PIXELS: 0x0CF4;\n readonly PACK_ROW_LENGTH: 0x0D02;\n readonly PACK_SKIP_ROWS: 0x0D03;\n readonly PACK_SKIP_PIXELS: 0x0D04;\n readonly COLOR: 0x1800;\n readonly DEPTH: 0x1801;\n readonly STENCIL: 0x1802;\n readonly RED: 0x1903;\n readonly RGB8: 0x8051;\n readonly RGB10_A2: 0x8059;\n readonly TEXTURE_BINDING_3D: 0x806A;\n readonly UNPACK_SKIP_IMAGES: 0x806D;\n readonly UNPACK_IMAGE_HEIGHT: 0x806E;\n readonly TEXTURE_3D: 0x806F;\n readonly TEXTURE_WRAP_R: 0x8072;\n readonly MAX_3D_TEXTURE_SIZE: 0x8073;\n readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;\n readonly MAX_ELEMENTS_VERTICES: 0x80E8;\n readonly MAX_ELEMENTS_INDICES: 0x80E9;\n readonly TEXTURE_MIN_LOD: 0x813A;\n readonly TEXTURE_MAX_LOD: 0x813B;\n readonly TEXTURE_BASE_LEVEL: 0x813C;\n readonly TEXTURE_MAX_LEVEL: 0x813D;\n readonly MIN: 0x8007;\n readonly MAX: 0x8008;\n readonly DEPTH_COMPONENT24: 0x81A6;\n readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;\n readonly TEXTURE_COMPARE_MODE: 0x884C;\n readonly TEXTURE_COMPARE_FUNC: 0x884D;\n readonly CURRENT_QUERY: 0x8865;\n readonly QUERY_RESULT: 0x8866;\n readonly QUERY_RESULT_AVAILABLE: 0x8867;\n readonly STREAM_READ: 0x88E1;\n readonly STREAM_COPY: 0x88E2;\n readonly STATIC_READ: 0x88E5;\n readonly STATIC_COPY: 0x88E6;\n readonly DYNAMIC_READ: 0x88E9;\n readonly DYNAMIC_COPY: 0x88EA;\n readonly MAX_DRAW_BUFFERS: 0x8824;\n readonly DRAW_BUFFER0: 0x8825;\n readonly DRAW_BUFFER1: 0x8826;\n readonly DRAW_BUFFER2: 0x8827;\n readonly DRAW_BUFFER3: 0x8828;\n readonly DRAW_BUFFER4: 0x8829;\n readonly DRAW_BUFFER5: 0x882A;\n readonly DRAW_BUFFER6: 0x882B;\n readonly DRAW_BUFFER7: 0x882C;\n readonly DRAW_BUFFER8: 0x882D;\n readonly DRAW_BUFFER9: 0x882E;\n readonly DRAW_BUFFER10: 0x882F;\n readonly DRAW_BUFFER11: 0x8830;\n readonly DRAW_BUFFER12: 0x8831;\n readonly DRAW_BUFFER13: 0x8832;\n readonly DRAW_BUFFER14: 0x8833;\n readonly DRAW_BUFFER15: 0x8834;\n readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;\n readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;\n readonly SAMPLER_3D: 0x8B5F;\n readonly SAMPLER_2D_SHADOW: 0x8B62;\n readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;\n readonly PIXEL_PACK_BUFFER: 0x88EB;\n readonly PIXEL_UNPACK_BUFFER: 0x88EC;\n readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;\n readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;\n readonly FLOAT_MAT2x3: 0x8B65;\n readonly FLOAT_MAT2x4: 0x8B66;\n readonly FLOAT_MAT3x2: 0x8B67;\n readonly FLOAT_MAT3x4: 0x8B68;\n readonly FLOAT_MAT4x2: 0x8B69;\n readonly FLOAT_MAT4x3: 0x8B6A;\n readonly SRGB: 0x8C40;\n readonly SRGB8: 0x8C41;\n readonly SRGB8_ALPHA8: 0x8C43;\n readonly COMPARE_REF_TO_TEXTURE: 0x884E;\n readonly RGBA32F: 0x8814;\n readonly RGB32F: 0x8815;\n readonly RGBA16F: 0x881A;\n readonly RGB16F: 0x881B;\n readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;\n readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;\n readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;\n readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;\n readonly MAX_VARYING_COMPONENTS: 0x8B4B;\n readonly TEXTURE_2D_ARRAY: 0x8C1A;\n readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;\n readonly R11F_G11F_B10F: 0x8C3A;\n readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;\n readonly RGB9_E5: 0x8C3D;\n readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;\n readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;\n readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;\n readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;\n readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;\n readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;\n readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;\n readonly RASTERIZER_DISCARD: 0x8C89;\n readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;\n readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;\n readonly INTERLEAVED_ATTRIBS: 0x8C8C;\n readonly SEPARATE_ATTRIBS: 0x8C8D;\n readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;\n readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;\n readonly RGBA32UI: 0x8D70;\n readonly RGB32UI: 0x8D71;\n readonly RGBA16UI: 0x8D76;\n readonly RGB16UI: 0x8D77;\n readonly RGBA8UI: 0x8D7C;\n readonly RGB8UI: 0x8D7D;\n readonly RGBA32I: 0x8D82;\n readonly RGB32I: 0x8D83;\n readonly RGBA16I: 0x8D88;\n readonly RGB16I: 0x8D89;\n readonly RGBA8I: 0x8D8E;\n readonly RGB8I: 0x8D8F;\n readonly RED_INTEGER: 0x8D94;\n readonly RGB_INTEGER: 0x8D98;\n readonly RGBA_INTEGER: 0x8D99;\n readonly SAMPLER_2D_ARRAY: 0x8DC1;\n readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;\n readonly SAMPLER_CUBE_SHADOW: 0x8DC5;\n readonly UNSIGNED_INT_VEC2: 0x8DC6;\n readonly UNSIGNED_INT_VEC3: 0x8DC7;\n readonly UNSIGNED_INT_VEC4: 0x8DC8;\n readonly INT_SAMPLER_2D: 0x8DCA;\n readonly INT_SAMPLER_3D: 0x8DCB;\n readonly INT_SAMPLER_CUBE: 0x8DCC;\n readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;\n readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;\n readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;\n readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;\n readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;\n readonly DEPTH_COMPONENT32F: 0x8CAC;\n readonly DEPTH32F_STENCIL8: 0x8CAD;\n readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;\n readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;\n readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;\n readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;\n readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;\n readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;\n readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;\n readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;\n readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;\n readonly FRAMEBUFFER_DEFAULT: 0x8218;\n readonly UNSIGNED_INT_24_8: 0x84FA;\n readonly DEPTH24_STENCIL8: 0x88F0;\n readonly UNSIGNED_NORMALIZED: 0x8C17;\n readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6;\n readonly READ_FRAMEBUFFER: 0x8CA8;\n readonly DRAW_FRAMEBUFFER: 0x8CA9;\n readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;\n readonly RENDERBUFFER_SAMPLES: 0x8CAB;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;\n readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;\n readonly COLOR_ATTACHMENT1: 0x8CE1;\n readonly COLOR_ATTACHMENT2: 0x8CE2;\n readonly COLOR_ATTACHMENT3: 0x8CE3;\n readonly COLOR_ATTACHMENT4: 0x8CE4;\n readonly COLOR_ATTACHMENT5: 0x8CE5;\n readonly COLOR_ATTACHMENT6: 0x8CE6;\n readonly COLOR_ATTACHMENT7: 0x8CE7;\n readonly COLOR_ATTACHMENT8: 0x8CE8;\n readonly COLOR_ATTACHMENT9: 0x8CE9;\n readonly COLOR_ATTACHMENT10: 0x8CEA;\n readonly COLOR_ATTACHMENT11: 0x8CEB;\n readonly COLOR_ATTACHMENT12: 0x8CEC;\n readonly COLOR_ATTACHMENT13: 0x8CED;\n readonly COLOR_ATTACHMENT14: 0x8CEE;\n readonly COLOR_ATTACHMENT15: 0x8CEF;\n readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;\n readonly MAX_SAMPLES: 0x8D57;\n readonly HALF_FLOAT: 0x140B;\n readonly RG: 0x8227;\n readonly RG_INTEGER: 0x8228;\n readonly R8: 0x8229;\n readonly RG8: 0x822B;\n readonly R16F: 0x822D;\n readonly R32F: 0x822E;\n readonly RG16F: 0x822F;\n readonly RG32F: 0x8230;\n readonly R8I: 0x8231;\n readonly R8UI: 0x8232;\n readonly R16I: 0x8233;\n readonly R16UI: 0x8234;\n readonly R32I: 0x8235;\n readonly R32UI: 0x8236;\n readonly RG8I: 0x8237;\n readonly RG8UI: 0x8238;\n readonly RG16I: 0x8239;\n readonly RG16UI: 0x823A;\n readonly RG32I: 0x823B;\n readonly RG32UI: 0x823C;\n readonly VERTEX_ARRAY_BINDING: 0x85B5;\n readonly R8_SNORM: 0x8F94;\n readonly RG8_SNORM: 0x8F95;\n readonly RGB8_SNORM: 0x8F96;\n readonly RGBA8_SNORM: 0x8F97;\n readonly SIGNED_NORMALIZED: 0x8F9C;\n readonly COPY_READ_BUFFER: 0x8F36;\n readonly COPY_WRITE_BUFFER: 0x8F37;\n readonly COPY_READ_BUFFER_BINDING: 0x8F36;\n readonly COPY_WRITE_BUFFER_BINDING: 0x8F37;\n readonly UNIFORM_BUFFER: 0x8A11;\n readonly UNIFORM_BUFFER_BINDING: 0x8A28;\n readonly UNIFORM_BUFFER_START: 0x8A29;\n readonly UNIFORM_BUFFER_SIZE: 0x8A2A;\n readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;\n readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;\n readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;\n readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;\n readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;\n readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;\n readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;\n readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;\n readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;\n readonly UNIFORM_TYPE: 0x8A37;\n readonly UNIFORM_SIZE: 0x8A38;\n readonly UNIFORM_BLOCK_INDEX: 0x8A3A;\n readonly UNIFORM_OFFSET: 0x8A3B;\n readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;\n readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;\n readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;\n readonly UNIFORM_BLOCK_BINDING: 0x8A3F;\n readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;\n readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;\n readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;\n readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;\n readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;\n readonly INVALID_INDEX: 0xFFFFFFFF;\n readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;\n readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;\n readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;\n readonly OBJECT_TYPE: 0x9112;\n readonly SYNC_CONDITION: 0x9113;\n readonly SYNC_STATUS: 0x9114;\n readonly SYNC_FLAGS: 0x9115;\n readonly SYNC_FENCE: 0x9116;\n readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;\n readonly UNSIGNALED: 0x9118;\n readonly SIGNALED: 0x9119;\n readonly ALREADY_SIGNALED: 0x911A;\n readonly TIMEOUT_EXPIRED: 0x911B;\n readonly CONDITION_SATISFIED: 0x911C;\n readonly WAIT_FAILED: 0x911D;\n readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;\n readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;\n readonly ANY_SAMPLES_PASSED: 0x8C2F;\n readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;\n readonly SAMPLER_BINDING: 0x8919;\n readonly RGB10_A2UI: 0x906F;\n readonly INT_2_10_10_10_REV: 0x8D9F;\n readonly TRANSFORM_FEEDBACK: 0x8E22;\n readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;\n readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;\n readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;\n readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;\n readonly MAX_ELEMENT_INDEX: 0x8D6B;\n readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;\n readonly TIMEOUT_IGNORED: -1;\n readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;\n readonly DEPTH_BUFFER_BIT: 0x00000100;\n readonly STENCIL_BUFFER_BIT: 0x00000400;\n readonly COLOR_BUFFER_BIT: 0x00004000;\n readonly POINTS: 0x0000;\n readonly LINES: 0x0001;\n readonly LINE_LOOP: 0x0002;\n readonly LINE_STRIP: 0x0003;\n readonly TRIANGLES: 0x0004;\n readonly TRIANGLE_STRIP: 0x0005;\n readonly TRIANGLE_FAN: 0x0006;\n readonly ZERO: 0;\n readonly ONE: 1;\n readonly SRC_COLOR: 0x0300;\n readonly ONE_MINUS_SRC_COLOR: 0x0301;\n readonly SRC_ALPHA: 0x0302;\n readonly ONE_MINUS_SRC_ALPHA: 0x0303;\n readonly DST_ALPHA: 0x0304;\n readonly ONE_MINUS_DST_ALPHA: 0x0305;\n readonly DST_COLOR: 0x0306;\n readonly ONE_MINUS_DST_COLOR: 0x0307;\n readonly SRC_ALPHA_SATURATE: 0x0308;\n readonly FUNC_ADD: 0x8006;\n readonly BLEND_EQUATION: 0x8009;\n readonly BLEND_EQUATION_RGB: 0x8009;\n readonly BLEND_EQUATION_ALPHA: 0x883D;\n readonly FUNC_SUBTRACT: 0x800A;\n readonly FUNC_REVERSE_SUBTRACT: 0x800B;\n readonly BLEND_DST_RGB: 0x80C8;\n readonly BLEND_SRC_RGB: 0x80C9;\n readonly BLEND_DST_ALPHA: 0x80CA;\n readonly BLEND_SRC_ALPHA: 0x80CB;\n readonly CONSTANT_COLOR: 0x8001;\n readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;\n readonly CONSTANT_ALPHA: 0x8003;\n readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;\n readonly BLEND_COLOR: 0x8005;\n readonly ARRAY_BUFFER: 0x8892;\n readonly ELEMENT_ARRAY_BUFFER: 0x8893;\n readonly ARRAY_BUFFER_BINDING: 0x8894;\n readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;\n readonly STREAM_DRAW: 0x88E0;\n readonly STATIC_DRAW: 0x88E4;\n readonly DYNAMIC_DRAW: 0x88E8;\n readonly BUFFER_SIZE: 0x8764;\n readonly BUFFER_USAGE: 0x8765;\n readonly CURRENT_VERTEX_ATTRIB: 0x8626;\n readonly FRONT: 0x0404;\n readonly BACK: 0x0405;\n readonly FRONT_AND_BACK: 0x0408;\n readonly CULL_FACE: 0x0B44;\n readonly BLEND: 0x0BE2;\n readonly DITHER: 0x0BD0;\n readonly STENCIL_TEST: 0x0B90;\n readonly DEPTH_TEST: 0x0B71;\n readonly SCISSOR_TEST: 0x0C11;\n readonly POLYGON_OFFSET_FILL: 0x8037;\n readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;\n readonly SAMPLE_COVERAGE: 0x80A0;\n readonly NO_ERROR: 0;\n readonly INVALID_ENUM: 0x0500;\n readonly INVALID_VALUE: 0x0501;\n readonly INVALID_OPERATION: 0x0502;\n readonly OUT_OF_MEMORY: 0x0505;\n readonly CW: 0x0900;\n readonly CCW: 0x0901;\n readonly LINE_WIDTH: 0x0B21;\n readonly ALIASED_POINT_SIZE_RANGE: 0x846D;\n readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;\n readonly CULL_FACE_MODE: 0x0B45;\n readonly FRONT_FACE: 0x0B46;\n readonly DEPTH_RANGE: 0x0B70;\n readonly DEPTH_WRITEMASK: 0x0B72;\n readonly DEPTH_CLEAR_VALUE: 0x0B73;\n readonly DEPTH_FUNC: 0x0B74;\n readonly STENCIL_CLEAR_VALUE: 0x0B91;\n readonly STENCIL_FUNC: 0x0B92;\n readonly STENCIL_FAIL: 0x0B94;\n readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;\n readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;\n readonly STENCIL_REF: 0x0B97;\n readonly STENCIL_VALUE_MASK: 0x0B93;\n readonly STENCIL_WRITEMASK: 0x0B98;\n readonly STENCIL_BACK_FUNC: 0x8800;\n readonly STENCIL_BACK_FAIL: 0x8801;\n readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;\n readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;\n readonly STENCIL_BACK_REF: 0x8CA3;\n readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;\n readonly STENCIL_BACK_WRITEMASK: 0x8CA5;\n readonly VIEWPORT: 0x0BA2;\n readonly SCISSOR_BOX: 0x0C10;\n readonly COLOR_CLEAR_VALUE: 0x0C22;\n readonly COLOR_WRITEMASK: 0x0C23;\n readonly UNPACK_ALIGNMENT: 0x0CF5;\n readonly PACK_ALIGNMENT: 0x0D05;\n readonly MAX_TEXTURE_SIZE: 0x0D33;\n readonly MAX_VIEWPORT_DIMS: 0x0D3A;\n readonly SUBPIXEL_BITS: 0x0D50;\n readonly RED_BITS: 0x0D52;\n readonly GREEN_BITS: 0x0D53;\n readonly BLUE_BITS: 0x0D54;\n readonly ALPHA_BITS: 0x0D55;\n readonly DEPTH_BITS: 0x0D56;\n readonly STENCIL_BITS: 0x0D57;\n readonly POLYGON_OFFSET_UNITS: 0x2A00;\n readonly POLYGON_OFFSET_FACTOR: 0x8038;\n readonly TEXTURE_BINDING_2D: 0x8069;\n readonly SAMPLE_BUFFERS: 0x80A8;\n readonly SAMPLES: 0x80A9;\n readonly SAMPLE_COVERAGE_VALUE: 0x80AA;\n readonly SAMPLE_COVERAGE_INVERT: 0x80AB;\n readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;\n readonly DONT_CARE: 0x1100;\n readonly FASTEST: 0x1101;\n readonly NICEST: 0x1102;\n readonly GENERATE_MIPMAP_HINT: 0x8192;\n readonly BYTE: 0x1400;\n readonly UNSIGNED_BYTE: 0x1401;\n readonly SHORT: 0x1402;\n readonly UNSIGNED_SHORT: 0x1403;\n readonly INT: 0x1404;\n readonly UNSIGNED_INT: 0x1405;\n readonly FLOAT: 0x1406;\n readonly DEPTH_COMPONENT: 0x1902;\n readonly ALPHA: 0x1906;\n readonly RGB: 0x1907;\n readonly RGBA: 0x1908;\n readonly LUMINANCE: 0x1909;\n readonly LUMINANCE_ALPHA: 0x190A;\n readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;\n readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;\n readonly UNSIGNED_SHORT_5_6_5: 0x8363;\n readonly FRAGMENT_SHADER: 0x8B30;\n readonly VERTEX_SHADER: 0x8B31;\n readonly MAX_VERTEX_ATTRIBS: 0x8869;\n readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;\n readonly MAX_VARYING_VECTORS: 0x8DFC;\n readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;\n readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;\n readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;\n readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;\n readonly SHADER_TYPE: 0x8B4F;\n readonly DELETE_STATUS: 0x8B80;\n readonly LINK_STATUS: 0x8B82;\n readonly VALIDATE_STATUS: 0x8B83;\n readonly ATTACHED_SHADERS: 0x8B85;\n readonly ACTIVE_UNIFORMS: 0x8B86;\n readonly ACTIVE_ATTRIBUTES: 0x8B89;\n readonly SHADING_LANGUAGE_VERSION: 0x8B8C;\n readonly CURRENT_PROGRAM: 0x8B8D;\n readonly NEVER: 0x0200;\n readonly LESS: 0x0201;\n readonly EQUAL: 0x0202;\n readonly LEQUAL: 0x0203;\n readonly GREATER: 0x0204;\n readonly NOTEQUAL: 0x0205;\n readonly GEQUAL: 0x0206;\n readonly ALWAYS: 0x0207;\n readonly KEEP: 0x1E00;\n readonly REPLACE: 0x1E01;\n readonly INCR: 0x1E02;\n readonly DECR: 0x1E03;\n readonly INVERT: 0x150A;\n readonly INCR_WRAP: 0x8507;\n readonly DECR_WRAP: 0x8508;\n readonly VENDOR: 0x1F00;\n readonly RENDERER: 0x1F01;\n readonly VERSION: 0x1F02;\n readonly NEAREST: 0x2600;\n readonly LINEAR: 0x2601;\n readonly NEAREST_MIPMAP_NEAREST: 0x2700;\n readonly LINEAR_MIPMAP_NEAREST: 0x2701;\n readonly NEAREST_MIPMAP_LINEAR: 0x2702;\n readonly LINEAR_MIPMAP_LINEAR: 0x2703;\n readonly TEXTURE_MAG_FILTER: 0x2800;\n readonly TEXTURE_MIN_FILTER: 0x2801;\n readonly TEXTURE_WRAP_S: 0x2802;\n readonly TEXTURE_WRAP_T: 0x2803;\n readonly TEXTURE_2D: 0x0DE1;\n readonly TEXTURE: 0x1702;\n readonly TEXTURE_CUBE_MAP: 0x8513;\n readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;\n readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;\n readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;\n readonly TEXTURE0: 0x84C0;\n readonly TEXTURE1: 0x84C1;\n readonly TEXTURE2: 0x84C2;\n readonly TEXTURE3: 0x84C3;\n readonly TEXTURE4: 0x84C4;\n readonly TEXTURE5: 0x84C5;\n readonly TEXTURE6: 0x84C6;\n readonly TEXTURE7: 0x84C7;\n readonly TEXTURE8: 0x84C8;\n readonly TEXTURE9: 0x84C9;\n readonly TEXTURE10: 0x84CA;\n readonly TEXTURE11: 0x84CB;\n readonly TEXTURE12: 0x84CC;\n readonly TEXTURE13: 0x84CD;\n readonly TEXTURE14: 0x84CE;\n readonly TEXTURE15: 0x84CF;\n readonly TEXTURE16: 0x84D0;\n readonly TEXTURE17: 0x84D1;\n readonly TEXTURE18: 0x84D2;\n readonly TEXTURE19: 0x84D3;\n readonly TEXTURE20: 0x84D4;\n readonly TEXTURE21: 0x84D5;\n readonly TEXTURE22: 0x84D6;\n readonly TEXTURE23: 0x84D7;\n readonly TEXTURE24: 0x84D8;\n readonly TEXTURE25: 0x84D9;\n readonly TEXTURE26: 0x84DA;\n readonly TEXTURE27: 0x84DB;\n readonly TEXTURE28: 0x84DC;\n readonly TEXTURE29: 0x84DD;\n readonly TEXTURE30: 0x84DE;\n readonly TEXTURE31: 0x84DF;\n readonly ACTIVE_TEXTURE: 0x84E0;\n readonly REPEAT: 0x2901;\n readonly CLAMP_TO_EDGE: 0x812F;\n readonly MIRRORED_REPEAT: 0x8370;\n readonly FLOAT_VEC2: 0x8B50;\n readonly FLOAT_VEC3: 0x8B51;\n readonly FLOAT_VEC4: 0x8B52;\n readonly INT_VEC2: 0x8B53;\n readonly INT_VEC3: 0x8B54;\n readonly INT_VEC4: 0x8B55;\n readonly BOOL: 0x8B56;\n readonly BOOL_VEC2: 0x8B57;\n readonly BOOL_VEC3: 0x8B58;\n readonly BOOL_VEC4: 0x8B59;\n readonly FLOAT_MAT2: 0x8B5A;\n readonly FLOAT_MAT3: 0x8B5B;\n readonly FLOAT_MAT4: 0x8B5C;\n readonly SAMPLER_2D: 0x8B5E;\n readonly SAMPLER_CUBE: 0x8B60;\n readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;\n readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;\n readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;\n readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;\n readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;\n readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;\n readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;\n readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;\n readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;\n readonly COMPILE_STATUS: 0x8B81;\n readonly LOW_FLOAT: 0x8DF0;\n readonly MEDIUM_FLOAT: 0x8DF1;\n readonly HIGH_FLOAT: 0x8DF2;\n readonly LOW_INT: 0x8DF3;\n readonly MEDIUM_INT: 0x8DF4;\n readonly HIGH_INT: 0x8DF5;\n readonly FRAMEBUFFER: 0x8D40;\n readonly RENDERBUFFER: 0x8D41;\n readonly RGBA4: 0x8056;\n readonly RGB5_A1: 0x8057;\n readonly RGBA8: 0x8058;\n readonly RGB565: 0x8D62;\n readonly DEPTH_COMPONENT16: 0x81A5;\n readonly STENCIL_INDEX8: 0x8D48;\n readonly DEPTH_STENCIL: 0x84F9;\n readonly RENDERBUFFER_WIDTH: 0x8D42;\n readonly RENDERBUFFER_HEIGHT: 0x8D43;\n readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;\n readonly RENDERBUFFER_RED_SIZE: 0x8D50;\n readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;\n readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;\n readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;\n readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;\n readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;\n readonly COLOR_ATTACHMENT0: 0x8CE0;\n readonly DEPTH_ATTACHMENT: 0x8D00;\n readonly STENCIL_ATTACHMENT: 0x8D20;\n readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;\n readonly NONE: 0;\n readonly FRAMEBUFFER_COMPLETE: 0x8CD5;\n readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;\n readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;\n readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;\n readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;\n readonly FRAMEBUFFER_BINDING: 0x8CA6;\n readonly RENDERBUFFER_BINDING: 0x8CA7;\n readonly MAX_RENDERBUFFER_SIZE: 0x84E8;\n readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;\n readonly UNPACK_FLIP_Y_WEBGL: 0x9240;\n readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;\n readonly CONTEXT_LOST_WEBGL: 0x9242;\n readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;\n readonly BROWSER_DEFAULT_WEBGL: 0x9244;\n};\n\ninterface WebGL2RenderingContextBase {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/beginQuery) */\n beginQuery(target: GLenum, query: WebGLQuery): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/beginTransformFeedback) */\n beginTransformFeedback(primitiveMode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindBufferBase) */\n bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindBufferRange) */\n bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer | null, offset: GLintptr, size: GLsizeiptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindSampler) */\n bindSampler(unit: GLuint, sampler: WebGLSampler | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindTransformFeedback) */\n bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindVertexArray) */\n bindVertexArray(array: WebGLVertexArrayObject | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/blitFramebuffer) */\n blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clientWaitSync) */\n clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64): GLenum;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/compressedTexImage3D) */\n compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;\n compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: number, srcLengthOverride?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/compressedTexSubImage3D) */\n compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;\n compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: number, srcLengthOverride?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/copyBufferSubData) */\n copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/copyTexSubImage3D) */\n copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createQuery) */\n createQuery(): WebGLQuery | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createSampler) */\n createSampler(): WebGLSampler | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createTransformFeedback) */\n createTransformFeedback(): WebGLTransformFeedback | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createVertexArray) */\n createVertexArray(): WebGLVertexArrayObject | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteQuery) */\n deleteQuery(query: WebGLQuery | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteSampler) */\n deleteSampler(sampler: WebGLSampler | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteSync) */\n deleteSync(sync: WebGLSync | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteTransformFeedback) */\n deleteTransformFeedback(tf: WebGLTransformFeedback | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteVertexArray) */\n deleteVertexArray(vertexArray: WebGLVertexArrayObject | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawArraysInstanced) */\n drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawBuffers) */\n drawBuffers(buffers: GLenum[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawElementsInstanced) */\n drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawRangeElements) */\n drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/endQuery) */\n endQuery(target: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/endTransformFeedback) */\n endTransformFeedback(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/fenceSync) */\n fenceSync(condition: GLenum, flags: GLbitfield): WebGLSync | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/framebufferTextureLayer) */\n framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, layer: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniformBlockName) */\n getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniformBlockParameter) */\n getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniforms) */\n getActiveUniforms(program: WebGLProgram, uniformIndices: GLuint[], pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getBufferSubData) */\n getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView, dstOffset?: number, length?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getFragDataLocation) */\n getFragDataLocation(program: WebGLProgram, name: string): GLint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getIndexedParameter) */\n getIndexedParameter(target: GLenum, index: GLuint): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getInternalformatParameter) */\n getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getQuery) */\n getQuery(target: GLenum, pname: GLenum): WebGLQuery | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getQueryParameter) */\n getQueryParameter(query: WebGLQuery, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getSamplerParameter) */\n getSamplerParameter(sampler: WebGLSampler, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getSyncParameter) */\n getSyncParameter(sync: WebGLSync, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getTransformFeedbackVarying) */\n getTransformFeedbackVarying(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getUniformBlockIndex) */\n getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): GLuint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getUniformIndices) */\n getUniformIndices(program: WebGLProgram, uniformNames: string[]): GLuint[] | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateFramebuffer) */\n invalidateFramebuffer(target: GLenum, attachments: GLenum[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateSubFramebuffer) */\n invalidateSubFramebuffer(target: GLenum, attachments: GLenum[], x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isQuery) */\n isQuery(query: WebGLQuery | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isSampler) */\n isSampler(sampler: WebGLSampler | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isSync) */\n isSync(sync: WebGLSync | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isTransformFeedback) */\n isTransformFeedback(tf: WebGLTransformFeedback | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isVertexArray) */\n isVertexArray(vertexArray: WebGLVertexArrayObject | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/pauseTransformFeedback) */\n pauseTransformFeedback(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/readBuffer) */\n readBuffer(src: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/renderbufferStorageMultisample) */\n renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/resumeTransformFeedback) */\n resumeTransformFeedback(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/samplerParameter) */\n samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/samplerParameter) */\n samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texImage3D) */\n texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView | null): void;\n texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texStorage2D) */\n texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texStorage3D) */\n texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texSubImage3D) */\n texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;\n texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView | null, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/transformFeedbackVaryings) */\n transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform1ui(location: WebGLUniformLocation | null, v0: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform1uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform2ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform2uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform3ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform3uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform4ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform4uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformBlockBinding) */\n uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribDivisor) */\n vertexAttribDivisor(index: GLuint, divisor: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4iv(index: GLuint, values: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4uiv(index: GLuint, values: Uint32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribIPointer) */\n vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/waitSync) */\n waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64): void;\n readonly READ_BUFFER: 0x0C02;\n readonly UNPACK_ROW_LENGTH: 0x0CF2;\n readonly UNPACK_SKIP_ROWS: 0x0CF3;\n readonly UNPACK_SKIP_PIXELS: 0x0CF4;\n readonly PACK_ROW_LENGTH: 0x0D02;\n readonly PACK_SKIP_ROWS: 0x0D03;\n readonly PACK_SKIP_PIXELS: 0x0D04;\n readonly COLOR: 0x1800;\n readonly DEPTH: 0x1801;\n readonly STENCIL: 0x1802;\n readonly RED: 0x1903;\n readonly RGB8: 0x8051;\n readonly RGB10_A2: 0x8059;\n readonly TEXTURE_BINDING_3D: 0x806A;\n readonly UNPACK_SKIP_IMAGES: 0x806D;\n readonly UNPACK_IMAGE_HEIGHT: 0x806E;\n readonly TEXTURE_3D: 0x806F;\n readonly TEXTURE_WRAP_R: 0x8072;\n readonly MAX_3D_TEXTURE_SIZE: 0x8073;\n readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;\n readonly MAX_ELEMENTS_VERTICES: 0x80E8;\n readonly MAX_ELEMENTS_INDICES: 0x80E9;\n readonly TEXTURE_MIN_LOD: 0x813A;\n readonly TEXTURE_MAX_LOD: 0x813B;\n readonly TEXTURE_BASE_LEVEL: 0x813C;\n readonly TEXTURE_MAX_LEVEL: 0x813D;\n readonly MIN: 0x8007;\n readonly MAX: 0x8008;\n readonly DEPTH_COMPONENT24: 0x81A6;\n readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;\n readonly TEXTURE_COMPARE_MODE: 0x884C;\n readonly TEXTURE_COMPARE_FUNC: 0x884D;\n readonly CURRENT_QUERY: 0x8865;\n readonly QUERY_RESULT: 0x8866;\n readonly QUERY_RESULT_AVAILABLE: 0x8867;\n readonly STREAM_READ: 0x88E1;\n readonly STREAM_COPY: 0x88E2;\n readonly STATIC_READ: 0x88E5;\n readonly STATIC_COPY: 0x88E6;\n readonly DYNAMIC_READ: 0x88E9;\n readonly DYNAMIC_COPY: 0x88EA;\n readonly MAX_DRAW_BUFFERS: 0x8824;\n readonly DRAW_BUFFER0: 0x8825;\n readonly DRAW_BUFFER1: 0x8826;\n readonly DRAW_BUFFER2: 0x8827;\n readonly DRAW_BUFFER3: 0x8828;\n readonly DRAW_BUFFER4: 0x8829;\n readonly DRAW_BUFFER5: 0x882A;\n readonly DRAW_BUFFER6: 0x882B;\n readonly DRAW_BUFFER7: 0x882C;\n readonly DRAW_BUFFER8: 0x882D;\n readonly DRAW_BUFFER9: 0x882E;\n readonly DRAW_BUFFER10: 0x882F;\n readonly DRAW_BUFFER11: 0x8830;\n readonly DRAW_BUFFER12: 0x8831;\n readonly DRAW_BUFFER13: 0x8832;\n readonly DRAW_BUFFER14: 0x8833;\n readonly DRAW_BUFFER15: 0x8834;\n readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;\n readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;\n readonly SAMPLER_3D: 0x8B5F;\n readonly SAMPLER_2D_SHADOW: 0x8B62;\n readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;\n readonly PIXEL_PACK_BUFFER: 0x88EB;\n readonly PIXEL_UNPACK_BUFFER: 0x88EC;\n readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;\n readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;\n readonly FLOAT_MAT2x3: 0x8B65;\n readonly FLOAT_MAT2x4: 0x8B66;\n readonly FLOAT_MAT3x2: 0x8B67;\n readonly FLOAT_MAT3x4: 0x8B68;\n readonly FLOAT_MAT4x2: 0x8B69;\n readonly FLOAT_MAT4x3: 0x8B6A;\n readonly SRGB: 0x8C40;\n readonly SRGB8: 0x8C41;\n readonly SRGB8_ALPHA8: 0x8C43;\n readonly COMPARE_REF_TO_TEXTURE: 0x884E;\n readonly RGBA32F: 0x8814;\n readonly RGB32F: 0x8815;\n readonly RGBA16F: 0x881A;\n readonly RGB16F: 0x881B;\n readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;\n readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;\n readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;\n readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;\n readonly MAX_VARYING_COMPONENTS: 0x8B4B;\n readonly TEXTURE_2D_ARRAY: 0x8C1A;\n readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;\n readonly R11F_G11F_B10F: 0x8C3A;\n readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;\n readonly RGB9_E5: 0x8C3D;\n readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;\n readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;\n readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;\n readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;\n readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;\n readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;\n readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;\n readonly RASTERIZER_DISCARD: 0x8C89;\n readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;\n readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;\n readonly INTERLEAVED_ATTRIBS: 0x8C8C;\n readonly SEPARATE_ATTRIBS: 0x8C8D;\n readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;\n readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;\n readonly RGBA32UI: 0x8D70;\n readonly RGB32UI: 0x8D71;\n readonly RGBA16UI: 0x8D76;\n readonly RGB16UI: 0x8D77;\n readonly RGBA8UI: 0x8D7C;\n readonly RGB8UI: 0x8D7D;\n readonly RGBA32I: 0x8D82;\n readonly RGB32I: 0x8D83;\n readonly RGBA16I: 0x8D88;\n readonly RGB16I: 0x8D89;\n readonly RGBA8I: 0x8D8E;\n readonly RGB8I: 0x8D8F;\n readonly RED_INTEGER: 0x8D94;\n readonly RGB_INTEGER: 0x8D98;\n readonly RGBA_INTEGER: 0x8D99;\n readonly SAMPLER_2D_ARRAY: 0x8DC1;\n readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;\n readonly SAMPLER_CUBE_SHADOW: 0x8DC5;\n readonly UNSIGNED_INT_VEC2: 0x8DC6;\n readonly UNSIGNED_INT_VEC3: 0x8DC7;\n readonly UNSIGNED_INT_VEC4: 0x8DC8;\n readonly INT_SAMPLER_2D: 0x8DCA;\n readonly INT_SAMPLER_3D: 0x8DCB;\n readonly INT_SAMPLER_CUBE: 0x8DCC;\n readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;\n readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;\n readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;\n readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;\n readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;\n readonly DEPTH_COMPONENT32F: 0x8CAC;\n readonly DEPTH32F_STENCIL8: 0x8CAD;\n readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;\n readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;\n readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;\n readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;\n readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;\n readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;\n readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;\n readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;\n readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;\n readonly FRAMEBUFFER_DEFAULT: 0x8218;\n readonly UNSIGNED_INT_24_8: 0x84FA;\n readonly DEPTH24_STENCIL8: 0x88F0;\n readonly UNSIGNED_NORMALIZED: 0x8C17;\n readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6;\n readonly READ_FRAMEBUFFER: 0x8CA8;\n readonly DRAW_FRAMEBUFFER: 0x8CA9;\n readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;\n readonly RENDERBUFFER_SAMPLES: 0x8CAB;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;\n readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;\n readonly COLOR_ATTACHMENT1: 0x8CE1;\n readonly COLOR_ATTACHMENT2: 0x8CE2;\n readonly COLOR_ATTACHMENT3: 0x8CE3;\n readonly COLOR_ATTACHMENT4: 0x8CE4;\n readonly COLOR_ATTACHMENT5: 0x8CE5;\n readonly COLOR_ATTACHMENT6: 0x8CE6;\n readonly COLOR_ATTACHMENT7: 0x8CE7;\n readonly COLOR_ATTACHMENT8: 0x8CE8;\n readonly COLOR_ATTACHMENT9: 0x8CE9;\n readonly COLOR_ATTACHMENT10: 0x8CEA;\n readonly COLOR_ATTACHMENT11: 0x8CEB;\n readonly COLOR_ATTACHMENT12: 0x8CEC;\n readonly COLOR_ATTACHMENT13: 0x8CED;\n readonly COLOR_ATTACHMENT14: 0x8CEE;\n readonly COLOR_ATTACHMENT15: 0x8CEF;\n readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;\n readonly MAX_SAMPLES: 0x8D57;\n readonly HALF_FLOAT: 0x140B;\n readonly RG: 0x8227;\n readonly RG_INTEGER: 0x8228;\n readonly R8: 0x8229;\n readonly RG8: 0x822B;\n readonly R16F: 0x822D;\n readonly R32F: 0x822E;\n readonly RG16F: 0x822F;\n readonly RG32F: 0x8230;\n readonly R8I: 0x8231;\n readonly R8UI: 0x8232;\n readonly R16I: 0x8233;\n readonly R16UI: 0x8234;\n readonly R32I: 0x8235;\n readonly R32UI: 0x8236;\n readonly RG8I: 0x8237;\n readonly RG8UI: 0x8238;\n readonly RG16I: 0x8239;\n readonly RG16UI: 0x823A;\n readonly RG32I: 0x823B;\n readonly RG32UI: 0x823C;\n readonly VERTEX_ARRAY_BINDING: 0x85B5;\n readonly R8_SNORM: 0x8F94;\n readonly RG8_SNORM: 0x8F95;\n readonly RGB8_SNORM: 0x8F96;\n readonly RGBA8_SNORM: 0x8F97;\n readonly SIGNED_NORMALIZED: 0x8F9C;\n readonly COPY_READ_BUFFER: 0x8F36;\n readonly COPY_WRITE_BUFFER: 0x8F37;\n readonly COPY_READ_BUFFER_BINDING: 0x8F36;\n readonly COPY_WRITE_BUFFER_BINDING: 0x8F37;\n readonly UNIFORM_BUFFER: 0x8A11;\n readonly UNIFORM_BUFFER_BINDING: 0x8A28;\n readonly UNIFORM_BUFFER_START: 0x8A29;\n readonly UNIFORM_BUFFER_SIZE: 0x8A2A;\n readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;\n readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;\n readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;\n readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;\n readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;\n readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;\n readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;\n readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;\n readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;\n readonly UNIFORM_TYPE: 0x8A37;\n readonly UNIFORM_SIZE: 0x8A38;\n readonly UNIFORM_BLOCK_INDEX: 0x8A3A;\n readonly UNIFORM_OFFSET: 0x8A3B;\n readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;\n readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;\n readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;\n readonly UNIFORM_BLOCK_BINDING: 0x8A3F;\n readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;\n readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;\n readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;\n readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;\n readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;\n readonly INVALID_INDEX: 0xFFFFFFFF;\n readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;\n readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;\n readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;\n readonly OBJECT_TYPE: 0x9112;\n readonly SYNC_CONDITION: 0x9113;\n readonly SYNC_STATUS: 0x9114;\n readonly SYNC_FLAGS: 0x9115;\n readonly SYNC_FENCE: 0x9116;\n readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;\n readonly UNSIGNALED: 0x9118;\n readonly SIGNALED: 0x9119;\n readonly ALREADY_SIGNALED: 0x911A;\n readonly TIMEOUT_EXPIRED: 0x911B;\n readonly CONDITION_SATISFIED: 0x911C;\n readonly WAIT_FAILED: 0x911D;\n readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;\n readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;\n readonly ANY_SAMPLES_PASSED: 0x8C2F;\n readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;\n readonly SAMPLER_BINDING: 0x8919;\n readonly RGB10_A2UI: 0x906F;\n readonly INT_2_10_10_10_REV: 0x8D9F;\n readonly TRANSFORM_FEEDBACK: 0x8E22;\n readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;\n readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;\n readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;\n readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;\n readonly MAX_ELEMENT_INDEX: 0x8D6B;\n readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;\n readonly TIMEOUT_IGNORED: -1;\n readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;\n}\n\ninterface WebGL2RenderingContextOverloads {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bufferData) */\n bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;\n bufferData(target: GLenum, srcData: AllowSharedBufferSource | null, usage: GLenum): void;\n bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: number, length?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bufferSubData) */\n bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: AllowSharedBufferSource): void;\n bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: number, length?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexImage2D) */\n compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;\n compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: number, srcLengthOverride?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexSubImage2D) */\n compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;\n compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: number, srcLengthOverride?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/readPixels) */\n readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView | null): void;\n readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr): void;\n readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texImage2D) */\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texSubImage2D) */\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n}\n\n/**\n * Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getActiveAttrib() and WebGLRenderingContext.getActiveUniform() methods.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo)\n */\ninterface WebGLActiveInfo {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/size) */\n readonly size: GLint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/type) */\n readonly type: GLenum;\n}\n\ndeclare var WebGLActiveInfo: {\n prototype: WebGLActiveInfo;\n new(): WebGLActiveInfo;\n};\n\n/**\n * Part of the WebGL API and represents an opaque buffer object storing data such as vertices or colors.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLBuffer)\n */\ninterface WebGLBuffer {\n}\n\ndeclare var WebGLBuffer: {\n prototype: WebGLBuffer;\n new(): WebGLBuffer;\n};\n\n/**\n * The WebContextEvent interface is part of the WebGL API and is an interface for an event that is generated in response to a status change to the WebGL rendering context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLContextEvent)\n */\ninterface WebGLContextEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLContextEvent/statusMessage) */\n readonly statusMessage: string;\n}\n\ndeclare var WebGLContextEvent: {\n prototype: WebGLContextEvent;\n new(type: string, eventInit?: WebGLContextEventInit): WebGLContextEvent;\n};\n\n/**\n * Part of the WebGL API and represents a collection of buffers that serve as a rendering destination.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLFramebuffer)\n */\ninterface WebGLFramebuffer {\n}\n\ndeclare var WebGLFramebuffer: {\n prototype: WebGLFramebuffer;\n new(): WebGLFramebuffer;\n};\n\n/**\n * The WebGLProgram is part of the WebGL API and is a combination of two compiled WebGLShaders consisting of a vertex shader and a fragment shader (both written in GLSL).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLProgram)\n */\ninterface WebGLProgram {\n}\n\ndeclare var WebGLProgram: {\n prototype: WebGLProgram;\n new(): WebGLProgram;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLQuery) */\ninterface WebGLQuery {\n}\n\ndeclare var WebGLQuery: {\n prototype: WebGLQuery;\n new(): WebGLQuery;\n};\n\n/**\n * Part of the WebGL API and represents a buffer that can contain an image, or can be source or target of an rendering operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderbuffer)\n */\ninterface WebGLRenderbuffer {\n}\n\ndeclare var WebGLRenderbuffer: {\n prototype: WebGLRenderbuffer;\n new(): WebGLRenderbuffer;\n};\n\n/**\n * Provides an interface to the OpenGL ES 2.0 graphics rendering context for the drawing surface of an HTML <canvas> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext)\n */\ninterface WebGLRenderingContext extends WebGLRenderingContextBase, WebGLRenderingContextOverloads {\n}\n\ndeclare var WebGLRenderingContext: {\n prototype: WebGLRenderingContext;\n new(): WebGLRenderingContext;\n readonly DEPTH_BUFFER_BIT: 0x00000100;\n readonly STENCIL_BUFFER_BIT: 0x00000400;\n readonly COLOR_BUFFER_BIT: 0x00004000;\n readonly POINTS: 0x0000;\n readonly LINES: 0x0001;\n readonly LINE_LOOP: 0x0002;\n readonly LINE_STRIP: 0x0003;\n readonly TRIANGLES: 0x0004;\n readonly TRIANGLE_STRIP: 0x0005;\n readonly TRIANGLE_FAN: 0x0006;\n readonly ZERO: 0;\n readonly ONE: 1;\n readonly SRC_COLOR: 0x0300;\n readonly ONE_MINUS_SRC_COLOR: 0x0301;\n readonly SRC_ALPHA: 0x0302;\n readonly ONE_MINUS_SRC_ALPHA: 0x0303;\n readonly DST_ALPHA: 0x0304;\n readonly ONE_MINUS_DST_ALPHA: 0x0305;\n readonly DST_COLOR: 0x0306;\n readonly ONE_MINUS_DST_COLOR: 0x0307;\n readonly SRC_ALPHA_SATURATE: 0x0308;\n readonly FUNC_ADD: 0x8006;\n readonly BLEND_EQUATION: 0x8009;\n readonly BLEND_EQUATION_RGB: 0x8009;\n readonly BLEND_EQUATION_ALPHA: 0x883D;\n readonly FUNC_SUBTRACT: 0x800A;\n readonly FUNC_REVERSE_SUBTRACT: 0x800B;\n readonly BLEND_DST_RGB: 0x80C8;\n readonly BLEND_SRC_RGB: 0x80C9;\n readonly BLEND_DST_ALPHA: 0x80CA;\n readonly BLEND_SRC_ALPHA: 0x80CB;\n readonly CONSTANT_COLOR: 0x8001;\n readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;\n readonly CONSTANT_ALPHA: 0x8003;\n readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;\n readonly BLEND_COLOR: 0x8005;\n readonly ARRAY_BUFFER: 0x8892;\n readonly ELEMENT_ARRAY_BUFFER: 0x8893;\n readonly ARRAY_BUFFER_BINDING: 0x8894;\n readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;\n readonly STREAM_DRAW: 0x88E0;\n readonly STATIC_DRAW: 0x88E4;\n readonly DYNAMIC_DRAW: 0x88E8;\n readonly BUFFER_SIZE: 0x8764;\n readonly BUFFER_USAGE: 0x8765;\n readonly CURRENT_VERTEX_ATTRIB: 0x8626;\n readonly FRONT: 0x0404;\n readonly BACK: 0x0405;\n readonly FRONT_AND_BACK: 0x0408;\n readonly CULL_FACE: 0x0B44;\n readonly BLEND: 0x0BE2;\n readonly DITHER: 0x0BD0;\n readonly STENCIL_TEST: 0x0B90;\n readonly DEPTH_TEST: 0x0B71;\n readonly SCISSOR_TEST: 0x0C11;\n readonly POLYGON_OFFSET_FILL: 0x8037;\n readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;\n readonly SAMPLE_COVERAGE: 0x80A0;\n readonly NO_ERROR: 0;\n readonly INVALID_ENUM: 0x0500;\n readonly INVALID_VALUE: 0x0501;\n readonly INVALID_OPERATION: 0x0502;\n readonly OUT_OF_MEMORY: 0x0505;\n readonly CW: 0x0900;\n readonly CCW: 0x0901;\n readonly LINE_WIDTH: 0x0B21;\n readonly ALIASED_POINT_SIZE_RANGE: 0x846D;\n readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;\n readonly CULL_FACE_MODE: 0x0B45;\n readonly FRONT_FACE: 0x0B46;\n readonly DEPTH_RANGE: 0x0B70;\n readonly DEPTH_WRITEMASK: 0x0B72;\n readonly DEPTH_CLEAR_VALUE: 0x0B73;\n readonly DEPTH_FUNC: 0x0B74;\n readonly STENCIL_CLEAR_VALUE: 0x0B91;\n readonly STENCIL_FUNC: 0x0B92;\n readonly STENCIL_FAIL: 0x0B94;\n readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;\n readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;\n readonly STENCIL_REF: 0x0B97;\n readonly STENCIL_VALUE_MASK: 0x0B93;\n readonly STENCIL_WRITEMASK: 0x0B98;\n readonly STENCIL_BACK_FUNC: 0x8800;\n readonly STENCIL_BACK_FAIL: 0x8801;\n readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;\n readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;\n readonly STENCIL_BACK_REF: 0x8CA3;\n readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;\n readonly STENCIL_BACK_WRITEMASK: 0x8CA5;\n readonly VIEWPORT: 0x0BA2;\n readonly SCISSOR_BOX: 0x0C10;\n readonly COLOR_CLEAR_VALUE: 0x0C22;\n readonly COLOR_WRITEMASK: 0x0C23;\n readonly UNPACK_ALIGNMENT: 0x0CF5;\n readonly PACK_ALIGNMENT: 0x0D05;\n readonly MAX_TEXTURE_SIZE: 0x0D33;\n readonly MAX_VIEWPORT_DIMS: 0x0D3A;\n readonly SUBPIXEL_BITS: 0x0D50;\n readonly RED_BITS: 0x0D52;\n readonly GREEN_BITS: 0x0D53;\n readonly BLUE_BITS: 0x0D54;\n readonly ALPHA_BITS: 0x0D55;\n readonly DEPTH_BITS: 0x0D56;\n readonly STENCIL_BITS: 0x0D57;\n readonly POLYGON_OFFSET_UNITS: 0x2A00;\n readonly POLYGON_OFFSET_FACTOR: 0x8038;\n readonly TEXTURE_BINDING_2D: 0x8069;\n readonly SAMPLE_BUFFERS: 0x80A8;\n readonly SAMPLES: 0x80A9;\n readonly SAMPLE_COVERAGE_VALUE: 0x80AA;\n readonly SAMPLE_COVERAGE_INVERT: 0x80AB;\n readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;\n readonly DONT_CARE: 0x1100;\n readonly FASTEST: 0x1101;\n readonly NICEST: 0x1102;\n readonly GENERATE_MIPMAP_HINT: 0x8192;\n readonly BYTE: 0x1400;\n readonly UNSIGNED_BYTE: 0x1401;\n readonly SHORT: 0x1402;\n readonly UNSIGNED_SHORT: 0x1403;\n readonly INT: 0x1404;\n readonly UNSIGNED_INT: 0x1405;\n readonly FLOAT: 0x1406;\n readonly DEPTH_COMPONENT: 0x1902;\n readonly ALPHA: 0x1906;\n readonly RGB: 0x1907;\n readonly RGBA: 0x1908;\n readonly LUMINANCE: 0x1909;\n readonly LUMINANCE_ALPHA: 0x190A;\n readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;\n readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;\n readonly UNSIGNED_SHORT_5_6_5: 0x8363;\n readonly FRAGMENT_SHADER: 0x8B30;\n readonly VERTEX_SHADER: 0x8B31;\n readonly MAX_VERTEX_ATTRIBS: 0x8869;\n readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;\n readonly MAX_VARYING_VECTORS: 0x8DFC;\n readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;\n readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;\n readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;\n readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;\n readonly SHADER_TYPE: 0x8B4F;\n readonly DELETE_STATUS: 0x8B80;\n readonly LINK_STATUS: 0x8B82;\n readonly VALIDATE_STATUS: 0x8B83;\n readonly ATTACHED_SHADERS: 0x8B85;\n readonly ACTIVE_UNIFORMS: 0x8B86;\n readonly ACTIVE_ATTRIBUTES: 0x8B89;\n readonly SHADING_LANGUAGE_VERSION: 0x8B8C;\n readonly CURRENT_PROGRAM: 0x8B8D;\n readonly NEVER: 0x0200;\n readonly LESS: 0x0201;\n readonly EQUAL: 0x0202;\n readonly LEQUAL: 0x0203;\n readonly GREATER: 0x0204;\n readonly NOTEQUAL: 0x0205;\n readonly GEQUAL: 0x0206;\n readonly ALWAYS: 0x0207;\n readonly KEEP: 0x1E00;\n readonly REPLACE: 0x1E01;\n readonly INCR: 0x1E02;\n readonly DECR: 0x1E03;\n readonly INVERT: 0x150A;\n readonly INCR_WRAP: 0x8507;\n readonly DECR_WRAP: 0x8508;\n readonly VENDOR: 0x1F00;\n readonly RENDERER: 0x1F01;\n readonly VERSION: 0x1F02;\n readonly NEAREST: 0x2600;\n readonly LINEAR: 0x2601;\n readonly NEAREST_MIPMAP_NEAREST: 0x2700;\n readonly LINEAR_MIPMAP_NEAREST: 0x2701;\n readonly NEAREST_MIPMAP_LINEAR: 0x2702;\n readonly LINEAR_MIPMAP_LINEAR: 0x2703;\n readonly TEXTURE_MAG_FILTER: 0x2800;\n readonly TEXTURE_MIN_FILTER: 0x2801;\n readonly TEXTURE_WRAP_S: 0x2802;\n readonly TEXTURE_WRAP_T: 0x2803;\n readonly TEXTURE_2D: 0x0DE1;\n readonly TEXTURE: 0x1702;\n readonly TEXTURE_CUBE_MAP: 0x8513;\n readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;\n readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;\n readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;\n readonly TEXTURE0: 0x84C0;\n readonly TEXTURE1: 0x84C1;\n readonly TEXTURE2: 0x84C2;\n readonly TEXTURE3: 0x84C3;\n readonly TEXTURE4: 0x84C4;\n readonly TEXTURE5: 0x84C5;\n readonly TEXTURE6: 0x84C6;\n readonly TEXTURE7: 0x84C7;\n readonly TEXTURE8: 0x84C8;\n readonly TEXTURE9: 0x84C9;\n readonly TEXTURE10: 0x84CA;\n readonly TEXTURE11: 0x84CB;\n readonly TEXTURE12: 0x84CC;\n readonly TEXTURE13: 0x84CD;\n readonly TEXTURE14: 0x84CE;\n readonly TEXTURE15: 0x84CF;\n readonly TEXTURE16: 0x84D0;\n readonly TEXTURE17: 0x84D1;\n readonly TEXTURE18: 0x84D2;\n readonly TEXTURE19: 0x84D3;\n readonly TEXTURE20: 0x84D4;\n readonly TEXTURE21: 0x84D5;\n readonly TEXTURE22: 0x84D6;\n readonly TEXTURE23: 0x84D7;\n readonly TEXTURE24: 0x84D8;\n readonly TEXTURE25: 0x84D9;\n readonly TEXTURE26: 0x84DA;\n readonly TEXTURE27: 0x84DB;\n readonly TEXTURE28: 0x84DC;\n readonly TEXTURE29: 0x84DD;\n readonly TEXTURE30: 0x84DE;\n readonly TEXTURE31: 0x84DF;\n readonly ACTIVE_TEXTURE: 0x84E0;\n readonly REPEAT: 0x2901;\n readonly CLAMP_TO_EDGE: 0x812F;\n readonly MIRRORED_REPEAT: 0x8370;\n readonly FLOAT_VEC2: 0x8B50;\n readonly FLOAT_VEC3: 0x8B51;\n readonly FLOAT_VEC4: 0x8B52;\n readonly INT_VEC2: 0x8B53;\n readonly INT_VEC3: 0x8B54;\n readonly INT_VEC4: 0x8B55;\n readonly BOOL: 0x8B56;\n readonly BOOL_VEC2: 0x8B57;\n readonly BOOL_VEC3: 0x8B58;\n readonly BOOL_VEC4: 0x8B59;\n readonly FLOAT_MAT2: 0x8B5A;\n readonly FLOAT_MAT3: 0x8B5B;\n readonly FLOAT_MAT4: 0x8B5C;\n readonly SAMPLER_2D: 0x8B5E;\n readonly SAMPLER_CUBE: 0x8B60;\n readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;\n readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;\n readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;\n readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;\n readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;\n readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;\n readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;\n readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;\n readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;\n readonly COMPILE_STATUS: 0x8B81;\n readonly LOW_FLOAT: 0x8DF0;\n readonly MEDIUM_FLOAT: 0x8DF1;\n readonly HIGH_FLOAT: 0x8DF2;\n readonly LOW_INT: 0x8DF3;\n readonly MEDIUM_INT: 0x8DF4;\n readonly HIGH_INT: 0x8DF5;\n readonly FRAMEBUFFER: 0x8D40;\n readonly RENDERBUFFER: 0x8D41;\n readonly RGBA4: 0x8056;\n readonly RGB5_A1: 0x8057;\n readonly RGBA8: 0x8058;\n readonly RGB565: 0x8D62;\n readonly DEPTH_COMPONENT16: 0x81A5;\n readonly STENCIL_INDEX8: 0x8D48;\n readonly DEPTH_STENCIL: 0x84F9;\n readonly RENDERBUFFER_WIDTH: 0x8D42;\n readonly RENDERBUFFER_HEIGHT: 0x8D43;\n readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;\n readonly RENDERBUFFER_RED_SIZE: 0x8D50;\n readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;\n readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;\n readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;\n readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;\n readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;\n readonly COLOR_ATTACHMENT0: 0x8CE0;\n readonly DEPTH_ATTACHMENT: 0x8D00;\n readonly STENCIL_ATTACHMENT: 0x8D20;\n readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;\n readonly NONE: 0;\n readonly FRAMEBUFFER_COMPLETE: 0x8CD5;\n readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;\n readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;\n readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;\n readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;\n readonly FRAMEBUFFER_BINDING: 0x8CA6;\n readonly RENDERBUFFER_BINDING: 0x8CA7;\n readonly MAX_RENDERBUFFER_SIZE: 0x84E8;\n readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;\n readonly UNPACK_FLIP_Y_WEBGL: 0x9240;\n readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;\n readonly CONTEXT_LOST_WEBGL: 0x9242;\n readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;\n readonly BROWSER_DEFAULT_WEBGL: 0x9244;\n};\n\ninterface WebGLRenderingContextBase {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/canvas) */\n readonly canvas: HTMLCanvasElement | OffscreenCanvas;\n drawingBufferColorSpace: PredefinedColorSpace;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawingBufferHeight) */\n readonly drawingBufferHeight: GLsizei;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawingBufferWidth) */\n readonly drawingBufferWidth: GLsizei;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/activeTexture) */\n activeTexture(texture: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/attachShader) */\n attachShader(program: WebGLProgram, shader: WebGLShader): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindAttribLocation) */\n bindAttribLocation(program: WebGLProgram, index: GLuint, name: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindBuffer) */\n bindBuffer(target: GLenum, buffer: WebGLBuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindFramebuffer) */\n bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindRenderbuffer) */\n bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindTexture) */\n bindTexture(target: GLenum, texture: WebGLTexture | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendColor) */\n blendColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendEquation) */\n blendEquation(mode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendEquationSeparate) */\n blendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendFunc) */\n blendFunc(sfactor: GLenum, dfactor: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendFuncSeparate) */\n blendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/checkFramebufferStatus) */\n checkFramebufferStatus(target: GLenum): GLenum;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clear) */\n clear(mask: GLbitfield): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearColor) */\n clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearDepth) */\n clearDepth(depth: GLclampf): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearStencil) */\n clearStencil(s: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/colorMask) */\n colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compileShader) */\n compileShader(shader: WebGLShader): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/copyTexImage2D) */\n copyTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/copyTexSubImage2D) */\n copyTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createBuffer) */\n createBuffer(): WebGLBuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createFramebuffer) */\n createFramebuffer(): WebGLFramebuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createProgram) */\n createProgram(): WebGLProgram | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createRenderbuffer) */\n createRenderbuffer(): WebGLRenderbuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createShader) */\n createShader(type: GLenum): WebGLShader | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createTexture) */\n createTexture(): WebGLTexture | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/cullFace) */\n cullFace(mode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteBuffer) */\n deleteBuffer(buffer: WebGLBuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteFramebuffer) */\n deleteFramebuffer(framebuffer: WebGLFramebuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteProgram) */\n deleteProgram(program: WebGLProgram | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteRenderbuffer) */\n deleteRenderbuffer(renderbuffer: WebGLRenderbuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteShader) */\n deleteShader(shader: WebGLShader | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteTexture) */\n deleteTexture(texture: WebGLTexture | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthFunc) */\n depthFunc(func: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthMask) */\n depthMask(flag: GLboolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthRange) */\n depthRange(zNear: GLclampf, zFar: GLclampf): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/detachShader) */\n detachShader(program: WebGLProgram, shader: WebGLShader): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/disable) */\n disable(cap: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/disableVertexAttribArray) */\n disableVertexAttribArray(index: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawArrays) */\n drawArrays(mode: GLenum, first: GLint, count: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawElements) */\n drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/enable) */\n enable(cap: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/enableVertexAttribArray) */\n enableVertexAttribArray(index: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/finish) */\n finish(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/flush) */\n flush(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/framebufferRenderbuffer) */\n framebufferRenderbuffer(target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: WebGLRenderbuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/framebufferTexture2D) */\n framebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLenum, texture: WebGLTexture | null, level: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/frontFace) */\n frontFace(mode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/generateMipmap) */\n generateMipmap(target: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getActiveAttrib) */\n getActiveAttrib(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getActiveUniform) */\n getActiveUniform(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getAttachedShaders) */\n getAttachedShaders(program: WebGLProgram): WebGLShader[] | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getAttribLocation) */\n getAttribLocation(program: WebGLProgram, name: string): GLint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getBufferParameter) */\n getBufferParameter(target: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getContextAttributes) */\n getContextAttributes(): WebGLContextAttributes | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getError) */\n getError(): GLenum;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getExtension) */\n getExtension(extensionName: "ANGLE_instanced_arrays"): ANGLE_instanced_arrays | null;\n getExtension(extensionName: "EXT_blend_minmax"): EXT_blend_minmax | null;\n getExtension(extensionName: "EXT_color_buffer_float"): EXT_color_buffer_float | null;\n getExtension(extensionName: "EXT_color_buffer_half_float"): EXT_color_buffer_half_float | null;\n getExtension(extensionName: "EXT_float_blend"): EXT_float_blend | null;\n getExtension(extensionName: "EXT_frag_depth"): EXT_frag_depth | null;\n getExtension(extensionName: "EXT_sRGB"): EXT_sRGB | null;\n getExtension(extensionName: "EXT_shader_texture_lod"): EXT_shader_texture_lod | null;\n getExtension(extensionName: "EXT_texture_compression_bptc"): EXT_texture_compression_bptc | null;\n getExtension(extensionName: "EXT_texture_compression_rgtc"): EXT_texture_compression_rgtc | null;\n getExtension(extensionName: "EXT_texture_filter_anisotropic"): EXT_texture_filter_anisotropic | null;\n getExtension(extensionName: "KHR_parallel_shader_compile"): KHR_parallel_shader_compile | null;\n getExtension(extensionName: "OES_element_index_uint"): OES_element_index_uint | null;\n getExtension(extensionName: "OES_fbo_render_mipmap"): OES_fbo_render_mipmap | null;\n getExtension(extensionName: "OES_standard_derivatives"): OES_standard_derivatives | null;\n getExtension(extensionName: "OES_texture_float"): OES_texture_float | null;\n getExtension(extensionName: "OES_texture_float_linear"): OES_texture_float_linear | null;\n getExtension(extensionName: "OES_texture_half_float"): OES_texture_half_float | null;\n getExtension(extensionName: "OES_texture_half_float_linear"): OES_texture_half_float_linear | null;\n getExtension(extensionName: "OES_vertex_array_object"): OES_vertex_array_object | null;\n getExtension(extensionName: "OVR_multiview2"): OVR_multiview2 | null;\n getExtension(extensionName: "WEBGL_color_buffer_float"): WEBGL_color_buffer_float | null;\n getExtension(extensionName: "WEBGL_compressed_texture_astc"): WEBGL_compressed_texture_astc | null;\n getExtension(extensionName: "WEBGL_compressed_texture_etc"): WEBGL_compressed_texture_etc | null;\n getExtension(extensionName: "WEBGL_compressed_texture_etc1"): WEBGL_compressed_texture_etc1 | null;\n getExtension(extensionName: "WEBGL_compressed_texture_pvrtc"): WEBGL_compressed_texture_pvrtc | null;\n getExtension(extensionName: "WEBGL_compressed_texture_s3tc"): WEBGL_compressed_texture_s3tc | null;\n getExtension(extensionName: "WEBGL_compressed_texture_s3tc_srgb"): WEBGL_compressed_texture_s3tc_srgb | null;\n getExtension(extensionName: "WEBGL_debug_renderer_info"): WEBGL_debug_renderer_info | null;\n getExtension(extensionName: "WEBGL_debug_shaders"): WEBGL_debug_shaders | null;\n getExtension(extensionName: "WEBGL_depth_texture"): WEBGL_depth_texture | null;\n getExtension(extensionName: "WEBGL_draw_buffers"): WEBGL_draw_buffers | null;\n getExtension(extensionName: "WEBGL_lose_context"): WEBGL_lose_context | null;\n getExtension(extensionName: "WEBGL_multi_draw"): WEBGL_multi_draw | null;\n getExtension(name: string): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getFramebufferAttachmentParameter) */\n getFramebufferAttachmentParameter(target: GLenum, attachment: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getParameter) */\n getParameter(pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getProgramInfoLog) */\n getProgramInfoLog(program: WebGLProgram): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getProgramParameter) */\n getProgramParameter(program: WebGLProgram, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getRenderbufferParameter) */\n getRenderbufferParameter(target: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderInfoLog) */\n getShaderInfoLog(shader: WebGLShader): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderParameter) */\n getShaderParameter(shader: WebGLShader, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderPrecisionFormat) */\n getShaderPrecisionFormat(shadertype: GLenum, precisiontype: GLenum): WebGLShaderPrecisionFormat | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderSource) */\n getShaderSource(shader: WebGLShader): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getSupportedExtensions) */\n getSupportedExtensions(): string[] | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getTexParameter) */\n getTexParameter(target: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getUniform) */\n getUniform(program: WebGLProgram, location: WebGLUniformLocation): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getUniformLocation) */\n getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getVertexAttrib) */\n getVertexAttrib(index: GLuint, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getVertexAttribOffset) */\n getVertexAttribOffset(index: GLuint, pname: GLenum): GLintptr;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/hint) */\n hint(target: GLenum, mode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isBuffer) */\n isBuffer(buffer: WebGLBuffer | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isContextLost) */\n isContextLost(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isEnabled) */\n isEnabled(cap: GLenum): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isFramebuffer) */\n isFramebuffer(framebuffer: WebGLFramebuffer | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isProgram) */\n isProgram(program: WebGLProgram | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isRenderbuffer) */\n isRenderbuffer(renderbuffer: WebGLRenderbuffer | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isShader) */\n isShader(shader: WebGLShader | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isTexture) */\n isTexture(texture: WebGLTexture | null): GLboolean;\n lineWidth(width: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/linkProgram) */\n linkProgram(program: WebGLProgram): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/pixelStorei) */\n pixelStorei(pname: GLenum, param: GLint | GLboolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/polygonOffset) */\n polygonOffset(factor: GLfloat, units: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/renderbufferStorage) */\n renderbufferStorage(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/sampleCoverage) */\n sampleCoverage(value: GLclampf, invert: GLboolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/scissor) */\n scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/shaderSource) */\n shaderSource(shader: WebGLShader, source: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilFunc) */\n stencilFunc(func: GLenum, ref: GLint, mask: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilFuncSeparate) */\n stencilFuncSeparate(face: GLenum, func: GLenum, ref: GLint, mask: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilMask) */\n stencilMask(mask: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilMaskSeparate) */\n stencilMaskSeparate(face: GLenum, mask: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilOp) */\n stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilOpSeparate) */\n stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texParameter) */\n texParameterf(target: GLenum, pname: GLenum, param: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texParameter) */\n texParameteri(target: GLenum, pname: GLenum, param: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1f(location: WebGLUniformLocation | null, x: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1i(location: WebGLUniformLocation | null, x: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2i(location: WebGLUniformLocation | null, x: GLint, y: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint, w: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/useProgram) */\n useProgram(program: WebGLProgram | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/validateProgram) */\n validateProgram(program: WebGLProgram): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib1f(index: GLuint, x: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib1fv(index: GLuint, values: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib2fv(index: GLuint, values: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib3fv(index: GLuint, values: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib4fv(index: GLuint, values: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttribPointer) */\n vertexAttribPointer(index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/viewport) */\n viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n readonly DEPTH_BUFFER_BIT: 0x00000100;\n readonly STENCIL_BUFFER_BIT: 0x00000400;\n readonly COLOR_BUFFER_BIT: 0x00004000;\n readonly POINTS: 0x0000;\n readonly LINES: 0x0001;\n readonly LINE_LOOP: 0x0002;\n readonly LINE_STRIP: 0x0003;\n readonly TRIANGLES: 0x0004;\n readonly TRIANGLE_STRIP: 0x0005;\n readonly TRIANGLE_FAN: 0x0006;\n readonly ZERO: 0;\n readonly ONE: 1;\n readonly SRC_COLOR: 0x0300;\n readonly ONE_MINUS_SRC_COLOR: 0x0301;\n readonly SRC_ALPHA: 0x0302;\n readonly ONE_MINUS_SRC_ALPHA: 0x0303;\n readonly DST_ALPHA: 0x0304;\n readonly ONE_MINUS_DST_ALPHA: 0x0305;\n readonly DST_COLOR: 0x0306;\n readonly ONE_MINUS_DST_COLOR: 0x0307;\n readonly SRC_ALPHA_SATURATE: 0x0308;\n readonly FUNC_ADD: 0x8006;\n readonly BLEND_EQUATION: 0x8009;\n readonly BLEND_EQUATION_RGB: 0x8009;\n readonly BLEND_EQUATION_ALPHA: 0x883D;\n readonly FUNC_SUBTRACT: 0x800A;\n readonly FUNC_REVERSE_SUBTRACT: 0x800B;\n readonly BLEND_DST_RGB: 0x80C8;\n readonly BLEND_SRC_RGB: 0x80C9;\n readonly BLEND_DST_ALPHA: 0x80CA;\n readonly BLEND_SRC_ALPHA: 0x80CB;\n readonly CONSTANT_COLOR: 0x8001;\n readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;\n readonly CONSTANT_ALPHA: 0x8003;\n readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;\n readonly BLEND_COLOR: 0x8005;\n readonly ARRAY_BUFFER: 0x8892;\n readonly ELEMENT_ARRAY_BUFFER: 0x8893;\n readonly ARRAY_BUFFER_BINDING: 0x8894;\n readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;\n readonly STREAM_DRAW: 0x88E0;\n readonly STATIC_DRAW: 0x88E4;\n readonly DYNAMIC_DRAW: 0x88E8;\n readonly BUFFER_SIZE: 0x8764;\n readonly BUFFER_USAGE: 0x8765;\n readonly CURRENT_VERTEX_ATTRIB: 0x8626;\n readonly FRONT: 0x0404;\n readonly BACK: 0x0405;\n readonly FRONT_AND_BACK: 0x0408;\n readonly CULL_FACE: 0x0B44;\n readonly BLEND: 0x0BE2;\n readonly DITHER: 0x0BD0;\n readonly STENCIL_TEST: 0x0B90;\n readonly DEPTH_TEST: 0x0B71;\n readonly SCISSOR_TEST: 0x0C11;\n readonly POLYGON_OFFSET_FILL: 0x8037;\n readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;\n readonly SAMPLE_COVERAGE: 0x80A0;\n readonly NO_ERROR: 0;\n readonly INVALID_ENUM: 0x0500;\n readonly INVALID_VALUE: 0x0501;\n readonly INVALID_OPERATION: 0x0502;\n readonly OUT_OF_MEMORY: 0x0505;\n readonly CW: 0x0900;\n readonly CCW: 0x0901;\n readonly LINE_WIDTH: 0x0B21;\n readonly ALIASED_POINT_SIZE_RANGE: 0x846D;\n readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;\n readonly CULL_FACE_MODE: 0x0B45;\n readonly FRONT_FACE: 0x0B46;\n readonly DEPTH_RANGE: 0x0B70;\n readonly DEPTH_WRITEMASK: 0x0B72;\n readonly DEPTH_CLEAR_VALUE: 0x0B73;\n readonly DEPTH_FUNC: 0x0B74;\n readonly STENCIL_CLEAR_VALUE: 0x0B91;\n readonly STENCIL_FUNC: 0x0B92;\n readonly STENCIL_FAIL: 0x0B94;\n readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;\n readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;\n readonly STENCIL_REF: 0x0B97;\n readonly STENCIL_VALUE_MASK: 0x0B93;\n readonly STENCIL_WRITEMASK: 0x0B98;\n readonly STENCIL_BACK_FUNC: 0x8800;\n readonly STENCIL_BACK_FAIL: 0x8801;\n readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;\n readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;\n readonly STENCIL_BACK_REF: 0x8CA3;\n readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;\n readonly STENCIL_BACK_WRITEMASK: 0x8CA5;\n readonly VIEWPORT: 0x0BA2;\n readonly SCISSOR_BOX: 0x0C10;\n readonly COLOR_CLEAR_VALUE: 0x0C22;\n readonly COLOR_WRITEMASK: 0x0C23;\n readonly UNPACK_ALIGNMENT: 0x0CF5;\n readonly PACK_ALIGNMENT: 0x0D05;\n readonly MAX_TEXTURE_SIZE: 0x0D33;\n readonly MAX_VIEWPORT_DIMS: 0x0D3A;\n readonly SUBPIXEL_BITS: 0x0D50;\n readonly RED_BITS: 0x0D52;\n readonly GREEN_BITS: 0x0D53;\n readonly BLUE_BITS: 0x0D54;\n readonly ALPHA_BITS: 0x0D55;\n readonly DEPTH_BITS: 0x0D56;\n readonly STENCIL_BITS: 0x0D57;\n readonly POLYGON_OFFSET_UNITS: 0x2A00;\n readonly POLYGON_OFFSET_FACTOR: 0x8038;\n readonly TEXTURE_BINDING_2D: 0x8069;\n readonly SAMPLE_BUFFERS: 0x80A8;\n readonly SAMPLES: 0x80A9;\n readonly SAMPLE_COVERAGE_VALUE: 0x80AA;\n readonly SAMPLE_COVERAGE_INVERT: 0x80AB;\n readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;\n readonly DONT_CARE: 0x1100;\n readonly FASTEST: 0x1101;\n readonly NICEST: 0x1102;\n readonly GENERATE_MIPMAP_HINT: 0x8192;\n readonly BYTE: 0x1400;\n readonly UNSIGNED_BYTE: 0x1401;\n readonly SHORT: 0x1402;\n readonly UNSIGNED_SHORT: 0x1403;\n readonly INT: 0x1404;\n readonly UNSIGNED_INT: 0x1405;\n readonly FLOAT: 0x1406;\n readonly DEPTH_COMPONENT: 0x1902;\n readonly ALPHA: 0x1906;\n readonly RGB: 0x1907;\n readonly RGBA: 0x1908;\n readonly LUMINANCE: 0x1909;\n readonly LUMINANCE_ALPHA: 0x190A;\n readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;\n readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;\n readonly UNSIGNED_SHORT_5_6_5: 0x8363;\n readonly FRAGMENT_SHADER: 0x8B30;\n readonly VERTEX_SHADER: 0x8B31;\n readonly MAX_VERTEX_ATTRIBS: 0x8869;\n readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;\n readonly MAX_VARYING_VECTORS: 0x8DFC;\n readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;\n readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;\n readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;\n readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;\n readonly SHADER_TYPE: 0x8B4F;\n readonly DELETE_STATUS: 0x8B80;\n readonly LINK_STATUS: 0x8B82;\n readonly VALIDATE_STATUS: 0x8B83;\n readonly ATTACHED_SHADERS: 0x8B85;\n readonly ACTIVE_UNIFORMS: 0x8B86;\n readonly ACTIVE_ATTRIBUTES: 0x8B89;\n readonly SHADING_LANGUAGE_VERSION: 0x8B8C;\n readonly CURRENT_PROGRAM: 0x8B8D;\n readonly NEVER: 0x0200;\n readonly LESS: 0x0201;\n readonly EQUAL: 0x0202;\n readonly LEQUAL: 0x0203;\n readonly GREATER: 0x0204;\n readonly NOTEQUAL: 0x0205;\n readonly GEQUAL: 0x0206;\n readonly ALWAYS: 0x0207;\n readonly KEEP: 0x1E00;\n readonly REPLACE: 0x1E01;\n readonly INCR: 0x1E02;\n readonly DECR: 0x1E03;\n readonly INVERT: 0x150A;\n readonly INCR_WRAP: 0x8507;\n readonly DECR_WRAP: 0x8508;\n readonly VENDOR: 0x1F00;\n readonly RENDERER: 0x1F01;\n readonly VERSION: 0x1F02;\n readonly NEAREST: 0x2600;\n readonly LINEAR: 0x2601;\n readonly NEAREST_MIPMAP_NEAREST: 0x2700;\n readonly LINEAR_MIPMAP_NEAREST: 0x2701;\n readonly NEAREST_MIPMAP_LINEAR: 0x2702;\n readonly LINEAR_MIPMAP_LINEAR: 0x2703;\n readonly TEXTURE_MAG_FILTER: 0x2800;\n readonly TEXTURE_MIN_FILTER: 0x2801;\n readonly TEXTURE_WRAP_S: 0x2802;\n readonly TEXTURE_WRAP_T: 0x2803;\n readonly TEXTURE_2D: 0x0DE1;\n readonly TEXTURE: 0x1702;\n readonly TEXTURE_CUBE_MAP: 0x8513;\n readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;\n readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;\n readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;\n readonly TEXTURE0: 0x84C0;\n readonly TEXTURE1: 0x84C1;\n readonly TEXTURE2: 0x84C2;\n readonly TEXTURE3: 0x84C3;\n readonly TEXTURE4: 0x84C4;\n readonly TEXTURE5: 0x84C5;\n readonly TEXTURE6: 0x84C6;\n readonly TEXTURE7: 0x84C7;\n readonly TEXTURE8: 0x84C8;\n readonly TEXTURE9: 0x84C9;\n readonly TEXTURE10: 0x84CA;\n readonly TEXTURE11: 0x84CB;\n readonly TEXTURE12: 0x84CC;\n readonly TEXTURE13: 0x84CD;\n readonly TEXTURE14: 0x84CE;\n readonly TEXTURE15: 0x84CF;\n readonly TEXTURE16: 0x84D0;\n readonly TEXTURE17: 0x84D1;\n readonly TEXTURE18: 0x84D2;\n readonly TEXTURE19: 0x84D3;\n readonly TEXTURE20: 0x84D4;\n readonly TEXTURE21: 0x84D5;\n readonly TEXTURE22: 0x84D6;\n readonly TEXTURE23: 0x84D7;\n readonly TEXTURE24: 0x84D8;\n readonly TEXTURE25: 0x84D9;\n readonly TEXTURE26: 0x84DA;\n readonly TEXTURE27: 0x84DB;\n readonly TEXTURE28: 0x84DC;\n readonly TEXTURE29: 0x84DD;\n readonly TEXTURE30: 0x84DE;\n readonly TEXTURE31: 0x84DF;\n readonly ACTIVE_TEXTURE: 0x84E0;\n readonly REPEAT: 0x2901;\n readonly CLAMP_TO_EDGE: 0x812F;\n readonly MIRRORED_REPEAT: 0x8370;\n readonly FLOAT_VEC2: 0x8B50;\n readonly FLOAT_VEC3: 0x8B51;\n readonly FLOAT_VEC4: 0x8B52;\n readonly INT_VEC2: 0x8B53;\n readonly INT_VEC3: 0x8B54;\n readonly INT_VEC4: 0x8B55;\n readonly BOOL: 0x8B56;\n readonly BOOL_VEC2: 0x8B57;\n readonly BOOL_VEC3: 0x8B58;\n readonly BOOL_VEC4: 0x8B59;\n readonly FLOAT_MAT2: 0x8B5A;\n readonly FLOAT_MAT3: 0x8B5B;\n readonly FLOAT_MAT4: 0x8B5C;\n readonly SAMPLER_2D: 0x8B5E;\n readonly SAMPLER_CUBE: 0x8B60;\n readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;\n readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;\n readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;\n readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;\n readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;\n readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;\n readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;\n readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;\n readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;\n readonly COMPILE_STATUS: 0x8B81;\n readonly LOW_FLOAT: 0x8DF0;\n readonly MEDIUM_FLOAT: 0x8DF1;\n readonly HIGH_FLOAT: 0x8DF2;\n readonly LOW_INT: 0x8DF3;\n readonly MEDIUM_INT: 0x8DF4;\n readonly HIGH_INT: 0x8DF5;\n readonly FRAMEBUFFER: 0x8D40;\n readonly RENDERBUFFER: 0x8D41;\n readonly RGBA4: 0x8056;\n readonly RGB5_A1: 0x8057;\n readonly RGBA8: 0x8058;\n readonly RGB565: 0x8D62;\n readonly DEPTH_COMPONENT16: 0x81A5;\n readonly STENCIL_INDEX8: 0x8D48;\n readonly DEPTH_STENCIL: 0x84F9;\n readonly RENDERBUFFER_WIDTH: 0x8D42;\n readonly RENDERBUFFER_HEIGHT: 0x8D43;\n readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;\n readonly RENDERBUFFER_RED_SIZE: 0x8D50;\n readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;\n readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;\n readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;\n readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;\n readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;\n readonly COLOR_ATTACHMENT0: 0x8CE0;\n readonly DEPTH_ATTACHMENT: 0x8D00;\n readonly STENCIL_ATTACHMENT: 0x8D20;\n readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;\n readonly NONE: 0;\n readonly FRAMEBUFFER_COMPLETE: 0x8CD5;\n readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;\n readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;\n readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;\n readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;\n readonly FRAMEBUFFER_BINDING: 0x8CA6;\n readonly RENDERBUFFER_BINDING: 0x8CA7;\n readonly MAX_RENDERBUFFER_SIZE: 0x84E8;\n readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;\n readonly UNPACK_FLIP_Y_WEBGL: 0x9240;\n readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;\n readonly CONTEXT_LOST_WEBGL: 0x9242;\n readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;\n readonly BROWSER_DEFAULT_WEBGL: 0x9244;\n}\n\ninterface WebGLRenderingContextOverloads {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bufferData) */\n bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;\n bufferData(target: GLenum, data: AllowSharedBufferSource | null, usage: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bufferSubData) */\n bufferSubData(target: GLenum, offset: GLintptr, data: AllowSharedBufferSource): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexImage2D) */\n compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: ArrayBufferView): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexSubImage2D) */\n compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: ArrayBufferView): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/readPixels) */\n readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texImage2D) */\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texSubImage2D) */\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1fv(location: WebGLUniformLocation | null, v: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1iv(location: WebGLUniformLocation | null, v: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2fv(location: WebGLUniformLocation | null, v: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2iv(location: WebGLUniformLocation | null, v: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3fv(location: WebGLUniformLocation | null, v: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3iv(location: WebGLUniformLocation | null, v: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4fv(location: WebGLUniformLocation | null, v: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4iv(location: WebGLUniformLocation | null, v: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLSampler) */\ninterface WebGLSampler {\n}\n\ndeclare var WebGLSampler: {\n prototype: WebGLSampler;\n new(): WebGLSampler;\n};\n\n/**\n * The WebGLShader is part of the WebGL API and can either be a vertex or a fragment shader. A WebGLProgram requires both types of shaders.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShader)\n */\ninterface WebGLShader {\n}\n\ndeclare var WebGLShader: {\n prototype: WebGLShader;\n new(): WebGLShader;\n};\n\n/**\n * Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getShaderPrecisionFormat() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat)\n */\ninterface WebGLShaderPrecisionFormat {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/precision) */\n readonly precision: GLint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/rangeMax) */\n readonly rangeMax: GLint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/rangeMin) */\n readonly rangeMin: GLint;\n}\n\ndeclare var WebGLShaderPrecisionFormat: {\n prototype: WebGLShaderPrecisionFormat;\n new(): WebGLShaderPrecisionFormat;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLSync) */\ninterface WebGLSync {\n}\n\ndeclare var WebGLSync: {\n prototype: WebGLSync;\n new(): WebGLSync;\n};\n\n/**\n * Part of the WebGL API and represents an opaque texture object providing storage and state for texturing operations.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLTexture)\n */\ninterface WebGLTexture {\n}\n\ndeclare var WebGLTexture: {\n prototype: WebGLTexture;\n new(): WebGLTexture;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLTransformFeedback) */\ninterface WebGLTransformFeedback {\n}\n\ndeclare var WebGLTransformFeedback: {\n prototype: WebGLTransformFeedback;\n new(): WebGLTransformFeedback;\n};\n\n/**\n * Part of the WebGL API and represents the location of a uniform variable in a shader program.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLUniformLocation)\n */\ninterface WebGLUniformLocation {\n}\n\ndeclare var WebGLUniformLocation: {\n prototype: WebGLUniformLocation;\n new(): WebGLUniformLocation;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLVertexArrayObject) */\ninterface WebGLVertexArrayObject {\n}\n\ndeclare var WebGLVertexArrayObject: {\n prototype: WebGLVertexArrayObject;\n new(): WebGLVertexArrayObject;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLVertexArrayObjectOES) */\ninterface WebGLVertexArrayObjectOES {\n}\n\ninterface WebSocketEventMap {\n "close": CloseEvent;\n "error": Event;\n "message": MessageEvent;\n "open": Event;\n}\n\n/**\n * Provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket)\n */\ninterface WebSocket extends EventTarget {\n /**\n * Returns a string that indicates how binary data from the WebSocket object is exposed to scripts:\n *\n * Can be set, to change how binary data is returned. The default is "blob".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/binaryType)\n */\n binaryType: BinaryType;\n /**\n * Returns the number of bytes of application data (UTF-8 text and binary data) that have been queued using send() but not yet been transmitted to the network.\n *\n * If the WebSocket connection is closed, this attribute\'s value will only increase with each call to the send() method. (The number does not reset to zero once the connection closes.)\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/bufferedAmount)\n */\n readonly bufferedAmount: number;\n /**\n * Returns the extensions selected by the server, if any.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/extensions)\n */\n readonly extensions: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/close_event) */\n onclose: ((this: WebSocket, ev: CloseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/error_event) */\n onerror: ((this: WebSocket, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/message_event) */\n onmessage: ((this: WebSocket, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/open_event) */\n onopen: ((this: WebSocket, ev: Event) => any) | null;\n /**\n * Returns the subprotocol selected by the server, if any. It can be used in conjunction with the array form of the constructor\'s second argument to perform subprotocol negotiation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/protocol)\n */\n readonly protocol: string;\n /**\n * Returns the state of the WebSocket object\'s connection. It can have the values described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/readyState)\n */\n readonly readyState: number;\n /**\n * Returns the URL that was used to establish the WebSocket connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/url)\n */\n readonly url: string;\n /**\n * Closes the WebSocket connection, optionally using code as the the WebSocket connection close code and reason as the the WebSocket connection close reason.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/close)\n */\n close(code?: number, reason?: string): void;\n /**\n * Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/send)\n */\n send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;\n readonly CONNECTING: 0;\n readonly OPEN: 1;\n readonly CLOSING: 2;\n readonly CLOSED: 3;\n addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var WebSocket: {\n prototype: WebSocket;\n new(url: string | URL, protocols?: string | string[]): WebSocket;\n readonly CONNECTING: 0;\n readonly OPEN: 1;\n readonly CLOSING: 2;\n readonly CLOSED: 3;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport)\n */\ninterface WebTransport {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/closed) */\n readonly closed: Promise<WebTransportCloseInfo>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/datagrams) */\n readonly datagrams: WebTransportDatagramDuplexStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/incomingBidirectionalStreams) */\n readonly incomingBidirectionalStreams: ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/incomingUnidirectionalStreams) */\n readonly incomingUnidirectionalStreams: ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/ready) */\n readonly ready: Promise<undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/close) */\n close(closeInfo?: WebTransportCloseInfo): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/createBidirectionalStream) */\n createBidirectionalStream(options?: WebTransportSendStreamOptions): Promise<WebTransportBidirectionalStream>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/createUnidirectionalStream) */\n createUnidirectionalStream(options?: WebTransportSendStreamOptions): Promise<WritableStream>;\n}\n\ndeclare var WebTransport: {\n prototype: WebTransport;\n new(url: string | URL, options?: WebTransportOptions): WebTransport;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream)\n */\ninterface WebTransportBidirectionalStream {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream/readable) */\n readonly readable: ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream/writable) */\n readonly writable: WritableStream;\n}\n\ndeclare var WebTransportBidirectionalStream: {\n prototype: WebTransportBidirectionalStream;\n new(): WebTransportBidirectionalStream;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream)\n */\ninterface WebTransportDatagramDuplexStream {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/incomingHighWaterMark) */\n incomingHighWaterMark: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/incomingMaxAge) */\n incomingMaxAge: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/maxDatagramSize) */\n readonly maxDatagramSize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/outgoingHighWaterMark) */\n outgoingHighWaterMark: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/outgoingMaxAge) */\n outgoingMaxAge: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/readable) */\n readonly readable: ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/writable) */\n readonly writable: WritableStream;\n}\n\ndeclare var WebTransportDatagramDuplexStream: {\n prototype: WebTransportDatagramDuplexStream;\n new(): WebTransportDatagramDuplexStream;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError)\n */\ninterface WebTransportError extends DOMException {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError/source) */\n readonly source: WebTransportErrorSource;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError/streamErrorCode) */\n readonly streamErrorCode: number | null;\n}\n\ndeclare var WebTransportError: {\n prototype: WebTransportError;\n new(message?: string, options?: WebTransportErrorOptions): WebTransportError;\n};\n\n/**\n * Events that occur due to the user moving a mouse wheel or similar input device.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent)\n */\ninterface WheelEvent extends MouseEvent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent/deltaMode) */\n readonly deltaMode: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent/deltaX) */\n readonly deltaX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent/deltaY) */\n readonly deltaY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent/deltaZ) */\n readonly deltaZ: number;\n readonly DOM_DELTA_PIXEL: 0x00;\n readonly DOM_DELTA_LINE: 0x01;\n readonly DOM_DELTA_PAGE: 0x02;\n}\n\ndeclare var WheelEvent: {\n prototype: WheelEvent;\n new(type: string, eventInitDict?: WheelEventInit): WheelEvent;\n readonly DOM_DELTA_PIXEL: 0x00;\n readonly DOM_DELTA_LINE: 0x01;\n readonly DOM_DELTA_PAGE: 0x02;\n};\n\ninterface WindowEventMap extends GlobalEventHandlersEventMap, WindowEventHandlersEventMap {\n "DOMContentLoaded": Event;\n "devicemotion": DeviceMotionEvent;\n "deviceorientation": DeviceOrientationEvent;\n "deviceorientationabsolute": DeviceOrientationEvent;\n "gamepadconnected": GamepadEvent;\n "gamepaddisconnected": GamepadEvent;\n "orientationchange": Event;\n}\n\n/**\n * A window containing a DOM document; the document property points to the DOM document loaded in that window.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window)\n */\ninterface Window extends EventTarget, AnimationFrameProvider, GlobalEventHandlers, WindowEventHandlers, WindowLocalStorage, WindowOrWorkerGlobalScope, WindowSessionStorage {\n /**\n * @deprecated This is a legacy alias of `navigator`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/navigator)\n */\n readonly clientInformation: Navigator;\n /**\n * Returns true if the window has been closed, false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/closed)\n */\n readonly closed: boolean;\n /**\n * Defines a new custom element, mapping the given name to the given constructor as an autonomous custom element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/customElements)\n */\n readonly customElements: CustomElementRegistry;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/devicePixelRatio) */\n readonly devicePixelRatio: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/document) */\n readonly document: Document;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/event)\n */\n readonly event: Event | undefined;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/external)\n */\n readonly external: External;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/frameElement) */\n readonly frameElement: Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/frames) */\n readonly frames: WindowProxy;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/history) */\n readonly history: History;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/innerHeight) */\n readonly innerHeight: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/innerWidth) */\n readonly innerWidth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/location) */\n get location(): Location;\n set location(href: string | Location);\n /**\n * Returns true if the location bar is visible; otherwise, returns false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/locationbar)\n */\n readonly locationbar: BarProp;\n /**\n * Returns true if the menu bar is visible; otherwise, returns false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/menubar)\n */\n readonly menubar: BarProp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/name) */\n name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/navigator) */\n readonly navigator: Navigator;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/devicemotion_event)\n */\n ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/deviceorientation_event)\n */\n ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/deviceorientationabsolute_event)\n */\n ondeviceorientationabsolute: ((this: Window, ev: DeviceOrientationEvent) => any) | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/orientationchange_event)\n */\n onorientationchange: ((this: Window, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/opener) */\n opener: any;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/orientation)\n */\n readonly orientation: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/outerHeight) */\n readonly outerHeight: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/outerWidth) */\n readonly outerWidth: number;\n /**\n * @deprecated This is a legacy alias of `scrollX`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollX)\n */\n readonly pageXOffset: number;\n /**\n * @deprecated This is a legacy alias of `scrollY`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollY)\n */\n readonly pageYOffset: number;\n /**\n * Refers to either the parent WindowProxy, or itself.\n *\n * It can rarely be null e.g. for contentWindow of an iframe that is already removed from the parent.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/parent)\n */\n readonly parent: WindowProxy;\n /**\n * Returns true if the personal bar is visible; otherwise, returns false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/personalbar)\n */\n readonly personalbar: BarProp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screen) */\n readonly screen: Screen;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenLeft) */\n readonly screenLeft: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenTop) */\n readonly screenTop: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenX) */\n readonly screenX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenY) */\n readonly screenY: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollX) */\n readonly scrollX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollY) */\n readonly scrollY: number;\n /**\n * Returns true if the scrollbars are visible; otherwise, returns false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollbars)\n */\n readonly scrollbars: BarProp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/self) */\n readonly self: Window & typeof globalThis;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/speechSynthesis) */\n readonly speechSynthesis: SpeechSynthesis;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/status)\n */\n status: string;\n /**\n * Returns true if the status bar is visible; otherwise, returns false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/statusbar)\n */\n readonly statusbar: BarProp;\n /**\n * Returns true if the toolbar is visible; otherwise, returns false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/toolbar)\n */\n readonly toolbar: BarProp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/top) */\n readonly top: WindowProxy | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/visualViewport) */\n readonly visualViewport: VisualViewport | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window) */\n readonly window: Window & typeof globalThis;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/alert) */\n alert(message?: any): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/blur) */\n blur(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/cancelIdleCallback) */\n cancelIdleCallback(handle: number): void;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/captureEvents)\n */\n captureEvents(): void;\n /**\n * Closes the window.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/close)\n */\n close(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/confirm) */\n confirm(message?: string): boolean;\n /**\n * Moves the focus to the window\'s browsing context, if any.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/focus)\n */\n focus(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/getComputedStyle) */\n getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/getSelection) */\n getSelection(): Selection | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/matchMedia) */\n matchMedia(query: string): MediaQueryList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/moveBy) */\n moveBy(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/moveTo) */\n moveTo(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/open) */\n open(url?: string | URL, target?: string, features?: string): WindowProxy | null;\n /**\n * Posts a message to the given window. Messages can be structured objects, e.g. nested objects and arrays, can contain JavaScript values (strings, numbers, Date objects, etc), and can contain certain data objects such as File Blob, FileList, and ArrayBuffer objects.\n *\n * Objects listed in the transfer member of options are transferred, not just cloned, meaning that they are no longer usable on the sending side.\n *\n * A target origin can be specified using the targetOrigin member of options. If not provided, it defaults to "/". This default restricts the message to same-origin targets only.\n *\n * If the origin of the target window doesn\'t match the given target origin, the message is discarded, to avoid information leakage. To send the message to the target regardless of origin, set the target origin to "*".\n *\n * Throws a "DataCloneError" DOMException if transfer array contains duplicate objects or if message could not be cloned.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/postMessage)\n */\n postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;\n postMessage(message: any, options?: WindowPostMessageOptions): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/print) */\n print(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/prompt) */\n prompt(message?: string, _default?: string): string | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/releaseEvents)\n */\n releaseEvents(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/requestIdleCallback) */\n requestIdleCallback(callback: IdleRequestCallback, options?: IdleRequestOptions): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/resizeBy) */\n resizeBy(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/resizeTo) */\n resizeTo(width: number, height: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scroll) */\n scroll(options?: ScrollToOptions): void;\n scroll(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollBy) */\n scrollBy(options?: ScrollToOptions): void;\n scrollBy(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollTo) */\n scrollTo(options?: ScrollToOptions): void;\n scrollTo(x: number, y: number): void;\n /**\n * Cancels the document load.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/stop)\n */\n stop(): void;\n addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n [index: number]: Window;\n}\n\ndeclare var Window: {\n prototype: Window;\n new(): Window;\n};\n\ninterface WindowEventHandlersEventMap {\n "afterprint": Event;\n "beforeprint": Event;\n "beforeunload": BeforeUnloadEvent;\n "gamepadconnected": GamepadEvent;\n "gamepaddisconnected": GamepadEvent;\n "hashchange": HashChangeEvent;\n "languagechange": Event;\n "message": MessageEvent;\n "messageerror": MessageEvent;\n "offline": Event;\n "online": Event;\n "pagehide": PageTransitionEvent;\n "pageshow": PageTransitionEvent;\n "popstate": PopStateEvent;\n "rejectionhandled": PromiseRejectionEvent;\n "storage": StorageEvent;\n "unhandledrejection": PromiseRejectionEvent;\n "unload": Event;\n}\n\ninterface WindowEventHandlers {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/afterprint_event) */\n onafterprint: ((this: WindowEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/beforeprint_event) */\n onbeforeprint: ((this: WindowEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/beforeunload_event) */\n onbeforeunload: ((this: WindowEventHandlers, ev: BeforeUnloadEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/gamepadconnected_event) */\n ongamepadconnected: ((this: WindowEventHandlers, ev: GamepadEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/gamepaddisconnected_event) */\n ongamepaddisconnected: ((this: WindowEventHandlers, ev: GamepadEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/hashchange_event) */\n onhashchange: ((this: WindowEventHandlers, ev: HashChangeEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/languagechange_event) */\n onlanguagechange: ((this: WindowEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/message_event) */\n onmessage: ((this: WindowEventHandlers, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/messageerror_event) */\n onmessageerror: ((this: WindowEventHandlers, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/offline_event) */\n onoffline: ((this: WindowEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/online_event) */\n ononline: ((this: WindowEventHandlers, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pagehide_event) */\n onpagehide: ((this: WindowEventHandlers, ev: PageTransitionEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pageshow_event) */\n onpageshow: ((this: WindowEventHandlers, ev: PageTransitionEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/popstate_event) */\n onpopstate: ((this: WindowEventHandlers, ev: PopStateEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/rejectionhandled_event) */\n onrejectionhandled: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/storage_event) */\n onstorage: ((this: WindowEventHandlers, ev: StorageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unhandledrejection_event) */\n onunhandledrejection: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unload_event)\n */\n onunload: ((this: WindowEventHandlers, ev: Event) => any) | null;\n addEventListener<K extends keyof WindowEventHandlersEventMap>(type: K, listener: (this: WindowEventHandlers, ev: WindowEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof WindowEventHandlersEventMap>(type: K, listener: (this: WindowEventHandlers, ev: WindowEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ninterface WindowLocalStorage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/localStorage) */\n readonly localStorage: Storage;\n}\n\ninterface WindowOrWorkerGlobalScope {\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/caches)\n */\n readonly caches: CacheStorage;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/crossOriginIsolated) */\n readonly crossOriginIsolated: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/crypto_property) */\n readonly crypto: Crypto;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/indexedDB) */\n readonly indexedDB: IDBFactory;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/isSecureContext) */\n readonly isSecureContext: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/origin) */\n readonly origin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/performance_property) */\n readonly performance: Performance;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/atob) */\n atob(data: string): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/btoa) */\n btoa(data: string): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/clearInterval) */\n clearInterval(id: number | undefined): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/clearTimeout) */\n clearTimeout(id: number | undefined): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/createImageBitmap) */\n createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;\n createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/fetch) */\n fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/queueMicrotask) */\n queueMicrotask(callback: VoidFunction): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/reportError) */\n reportError(e: any): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/setInterval) */\n setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/setTimeout) */\n setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/structuredClone) */\n structuredClone<T = any>(value: T, options?: StructuredSerializeOptions): T;\n}\n\ninterface WindowSessionStorage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/sessionStorage) */\n readonly sessionStorage: Storage;\n}\n\ninterface WorkerEventMap extends AbstractWorkerEventMap {\n "message": MessageEvent;\n "messageerror": MessageEvent;\n}\n\n/**\n * This Web Workers API interface represents a background task that can be easily created and can send messages back to its creator. Creating a worker is as simple as calling the Worker() constructor and specifying a script to be run in the worker thread.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker)\n */\ninterface Worker extends EventTarget, AbstractWorker {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/message_event) */\n onmessage: ((this: Worker, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/messageerror_event) */\n onmessageerror: ((this: Worker, ev: MessageEvent) => any) | null;\n /**\n * Clones message and transmits it to worker\'s global environment. transfer can be passed as a list of objects that are to be transferred rather than cloned.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/postMessage)\n */\n postMessage(message: any, transfer: Transferable[]): void;\n postMessage(message: any, options?: StructuredSerializeOptions): void;\n /**\n * Aborts worker\'s associated global environment.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/terminate)\n */\n terminate(): void;\n addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Worker: {\n prototype: Worker;\n new(scriptURL: string | URL, options?: WorkerOptions): Worker;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worklet)\n */\ninterface Worklet {\n /**\n * Loads and executes the module script given by moduleURL into all of worklet\'s global scopes. It can also create additional global scopes as part of this process, depending on the worklet type. The returned promise will fulfill once the script has been successfully loaded and run in all global scopes.\n *\n * The credentials option can be set to a credentials mode to modify the script-fetching process. It defaults to "same-origin".\n *\n * Any failures in fetching the script or its dependencies will cause the returned promise to be rejected with an "AbortError" DOMException. Any errors in parsing the script or its dependencies will cause the returned promise to be rejected with the exception generated during parsing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worklet/addModule)\n */\n addModule(moduleURL: string | URL, options?: WorkletOptions): Promise<void>;\n}\n\ndeclare var Worklet: {\n prototype: Worklet;\n new(): Worklet;\n};\n\n/**\n * This Streams API interface provides a standard abstraction for writing streaming data to a destination, known as a sink. This object comes with built-in backpressure and queuing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream)\n */\ninterface WritableStream<W = any> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/locked) */\n readonly locked: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/abort) */\n abort(reason?: any): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/close) */\n close(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/getWriter) */\n getWriter(): WritableStreamDefaultWriter<W>;\n}\n\ndeclare var WritableStream: {\n prototype: WritableStream;\n new<W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;\n};\n\n/**\n * This Streams API interface represents a controller allowing control of a WritableStream\'s state. When constructing a WritableStream, the underlying sink is given a corresponding WritableStreamDefaultController instance to manipulate.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController)\n */\ninterface WritableStreamDefaultController {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController/signal) */\n readonly signal: AbortSignal;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController/error) */\n error(e?: any): void;\n}\n\ndeclare var WritableStreamDefaultController: {\n prototype: WritableStreamDefaultController;\n new(): WritableStreamDefaultController;\n};\n\n/**\n * This Streams API interface is the object returned by WritableStream.getWriter() and once created locks the < writer to the WritableStream ensuring that no other streams can write to the underlying sink.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter)\n */\ninterface WritableStreamDefaultWriter<W = any> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/closed) */\n readonly closed: Promise<undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/desiredSize) */\n readonly desiredSize: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/ready) */\n readonly ready: Promise<undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/abort) */\n abort(reason?: any): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/close) */\n close(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/releaseLock) */\n releaseLock(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/write) */\n write(chunk?: W): Promise<void>;\n}\n\ndeclare var WritableStreamDefaultWriter: {\n prototype: WritableStreamDefaultWriter;\n new<W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;\n};\n\n/**\n * An XML document. It inherits from the generic Document and does not add any specific methods or properties to it: nevertheless, several algorithms behave differently with the two types of documents.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLDocument)\n */\ninterface XMLDocument extends Document {\n addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: XMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: XMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var XMLDocument: {\n prototype: XMLDocument;\n new(): XMLDocument;\n};\n\ninterface XMLHttpRequestEventMap extends XMLHttpRequestEventTargetEventMap {\n "readystatechange": Event;\n}\n\n/**\n * Use XMLHttpRequest (XHR) objects to interact with servers. You can retrieve data from a URL without having to do a full page refresh. This enables a Web page to update just part of a page without disrupting what the user is doing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest)\n */\ninterface XMLHttpRequest extends XMLHttpRequestEventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/readystatechange_event) */\n onreadystatechange: ((this: XMLHttpRequest, ev: Event) => any) | null;\n /**\n * Returns client\'s state.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/readyState)\n */\n readonly readyState: number;\n /**\n * Returns the response body.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/response)\n */\n readonly response: any;\n /**\n * Returns response as text.\n *\n * Throws an "InvalidStateError" DOMException if responseType is not the empty string or "text".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseText)\n */\n readonly responseText: string;\n /**\n * Returns the response type.\n *\n * Can be set to change the response type. Values are: the empty string (default), "arraybuffer", "blob", "document", "json", and "text".\n *\n * When set: setting to "document" is ignored if current global object is not a Window object.\n *\n * When set: throws an "InvalidStateError" DOMException if state is loading or done.\n *\n * When set: throws an "InvalidAccessError" DOMException if the synchronous flag is set and current global object is a Window object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseType)\n */\n responseType: XMLHttpRequestResponseType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseURL) */\n readonly responseURL: string;\n /**\n * Returns the response as document.\n *\n * Throws an "InvalidStateError" DOMException if responseType is not the empty string or "document".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseXML)\n */\n readonly responseXML: Document | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/status) */\n readonly status: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/statusText) */\n readonly statusText: string;\n /**\n * Can be set to a time in milliseconds. When set to a non-zero value will cause fetching to terminate after the given time has passed. When the time has passed, the request has not yet completed, and this\'s synchronous flag is unset, a timeout event will then be dispatched, or a "TimeoutError" DOMException will be thrown otherwise (for the send() method).\n *\n * When set: throws an "InvalidAccessError" DOMException if the synchronous flag is set and current global object is a Window object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/timeout)\n */\n timeout: number;\n /**\n * Returns the associated XMLHttpRequestUpload object. It can be used to gather transmission information when data is transferred to a server.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/upload)\n */\n readonly upload: XMLHttpRequestUpload;\n /**\n * True when credentials are to be included in a cross-origin request. False when they are to be excluded in a cross-origin request and when cookies are to be ignored in its response. Initially false.\n *\n * When set: throws an "InvalidStateError" DOMException if state is not unsent or opened, or if the send() flag is set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/withCredentials)\n */\n withCredentials: boolean;\n /**\n * Cancels any network activity.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/abort)\n */\n abort(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getAllResponseHeaders) */\n getAllResponseHeaders(): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getResponseHeader) */\n getResponseHeader(name: string): string | null;\n /**\n * Sets the request method, request URL, and synchronous flag.\n *\n * Throws a "SyntaxError" DOMException if either method is not a valid method or url cannot be parsed.\n *\n * Throws a "SecurityError" DOMException if method is a case-insensitive match for `CONNECT`, `TRACE`, or `TRACK`.\n *\n * Throws an "InvalidAccessError" DOMException if async is false, current global object is a Window object, and the timeout attribute is not zero or the responseType attribute is not the empty string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/open)\n */\n open(method: string, url: string | URL): void;\n open(method: string, url: string | URL, async: boolean, username?: string | null, password?: string | null): void;\n /**\n * Acts as if the `Content-Type` header value for a response is mime. (It does not change the header.)\n *\n * Throws an "InvalidStateError" DOMException if state is loading or done.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/overrideMimeType)\n */\n overrideMimeType(mime: string): void;\n /**\n * Initiates the request. The body argument provides the request body, if any, and is ignored if the request method is GET or HEAD.\n *\n * Throws an "InvalidStateError" DOMException if either state is not opened or the send() flag is set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/send)\n */\n send(body?: Document | XMLHttpRequestBodyInit | null): void;\n /**\n * Combines a header in author request headers.\n *\n * Throws an "InvalidStateError" DOMException if either state is not opened or the send() flag is set.\n *\n * Throws a "SyntaxError" DOMException if name is not a header name or if value is not a header value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/setRequestHeader)\n */\n setRequestHeader(name: string, value: string): void;\n readonly UNSENT: 0;\n readonly OPENED: 1;\n readonly HEADERS_RECEIVED: 2;\n readonly LOADING: 3;\n readonly DONE: 4;\n addEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var XMLHttpRequest: {\n prototype: XMLHttpRequest;\n new(): XMLHttpRequest;\n readonly UNSENT: 0;\n readonly OPENED: 1;\n readonly HEADERS_RECEIVED: 2;\n readonly LOADING: 3;\n readonly DONE: 4;\n};\n\ninterface XMLHttpRequestEventTargetEventMap {\n "abort": ProgressEvent<XMLHttpRequestEventTarget>;\n "error": ProgressEvent<XMLHttpRequestEventTarget>;\n "load": ProgressEvent<XMLHttpRequestEventTarget>;\n "loadend": ProgressEvent<XMLHttpRequestEventTarget>;\n "loadstart": ProgressEvent<XMLHttpRequestEventTarget>;\n "progress": ProgressEvent<XMLHttpRequestEventTarget>;\n "timeout": ProgressEvent<XMLHttpRequestEventTarget>;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequestEventTarget) */\ninterface XMLHttpRequestEventTarget extends EventTarget {\n onabort: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onerror: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onload: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onloadend: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onloadstart: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onprogress: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n ontimeout: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var XMLHttpRequestEventTarget: {\n prototype: XMLHttpRequestEventTarget;\n new(): XMLHttpRequestEventTarget;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequestUpload) */\ninterface XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\n addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var XMLHttpRequestUpload: {\n prototype: XMLHttpRequestUpload;\n new(): XMLHttpRequestUpload;\n};\n\n/**\n * Provides the serializeToString() method to construct an XML string representing a DOM tree.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLSerializer)\n */\ninterface XMLSerializer {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLSerializer/serializeToString) */\n serializeToString(root: Node): string;\n}\n\ndeclare var XMLSerializer: {\n prototype: XMLSerializer;\n new(): XMLSerializer;\n};\n\n/**\n * The XPathEvaluator interface allows to compile and evaluate XPath expressions.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathEvaluator)\n */\ninterface XPathEvaluator extends XPathEvaluatorBase {\n}\n\ndeclare var XPathEvaluator: {\n prototype: XPathEvaluator;\n new(): XPathEvaluator;\n};\n\ninterface XPathEvaluatorBase {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createExpression) */\n createExpression(expression: string, resolver?: XPathNSResolver | null): XPathExpression;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createNSResolver) */\n createNSResolver(nodeResolver: Node): Node;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/evaluate) */\n evaluate(expression: string, contextNode: Node, resolver?: XPathNSResolver | null, type?: number, result?: XPathResult | null): XPathResult;\n}\n\n/**\n * This interface is a compiled XPath expression that can be evaluated on a document or specific node to return information its DOM tree.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathExpression)\n */\ninterface XPathExpression {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathExpression/evaluate) */\n evaluate(contextNode: Node, type?: number, result?: XPathResult | null): XPathResult;\n}\n\ndeclare var XPathExpression: {\n prototype: XPathExpression;\n new(): XPathExpression;\n};\n\n/**\n * The results generated by evaluating an XPath expression within the context of a given node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult)\n */\ninterface XPathResult {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/booleanValue) */\n readonly booleanValue: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/invalidIteratorState) */\n readonly invalidIteratorState: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/numberValue) */\n readonly numberValue: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/resultType) */\n readonly resultType: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/singleNodeValue) */\n readonly singleNodeValue: Node | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/snapshotLength) */\n readonly snapshotLength: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/stringValue) */\n readonly stringValue: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/iterateNext) */\n iterateNext(): Node | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/snapshotItem) */\n snapshotItem(index: number): Node | null;\n readonly ANY_TYPE: 0;\n readonly NUMBER_TYPE: 1;\n readonly STRING_TYPE: 2;\n readonly BOOLEAN_TYPE: 3;\n readonly UNORDERED_NODE_ITERATOR_TYPE: 4;\n readonly ORDERED_NODE_ITERATOR_TYPE: 5;\n readonly UNORDERED_NODE_SNAPSHOT_TYPE: 6;\n readonly ORDERED_NODE_SNAPSHOT_TYPE: 7;\n readonly ANY_UNORDERED_NODE_TYPE: 8;\n readonly FIRST_ORDERED_NODE_TYPE: 9;\n}\n\ndeclare var XPathResult: {\n prototype: XPathResult;\n new(): XPathResult;\n readonly ANY_TYPE: 0;\n readonly NUMBER_TYPE: 1;\n readonly STRING_TYPE: 2;\n readonly BOOLEAN_TYPE: 3;\n readonly UNORDERED_NODE_ITERATOR_TYPE: 4;\n readonly ORDERED_NODE_ITERATOR_TYPE: 5;\n readonly UNORDERED_NODE_SNAPSHOT_TYPE: 6;\n readonly ORDERED_NODE_SNAPSHOT_TYPE: 7;\n readonly ANY_UNORDERED_NODE_TYPE: 8;\n readonly FIRST_ORDERED_NODE_TYPE: 9;\n};\n\n/**\n * An XSLTProcessor applies an XSLT stylesheet transformation to an XML document to produce a new XML document as output. It has methods to load the XSLT stylesheet, to manipulate <xsl:param> parameter values, and to apply the transformation to documents.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor)\n */\ninterface XSLTProcessor {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/clearParameters) */\n clearParameters(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/getParameter) */\n getParameter(namespaceURI: string | null, localName: string): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/importStylesheet) */\n importStylesheet(style: Node): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/removeParameter) */\n removeParameter(namespaceURI: string | null, localName: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/reset) */\n reset(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/setParameter) */\n setParameter(namespaceURI: string | null, localName: string, value: any): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/transformToDocument) */\n transformToDocument(source: Node): Document;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/transformToFragment) */\n transformToFragment(source: Node, output: Document): DocumentFragment;\n}\n\ndeclare var XSLTProcessor: {\n prototype: XSLTProcessor;\n new(): XSLTProcessor;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console) */\ninterface Console {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/assert_static) */\n assert(condition?: boolean, ...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/clear_static) */\n clear(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/count_static) */\n count(label?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/countReset_static) */\n countReset(label?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/debug_static) */\n debug(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/dir_static) */\n dir(item?: any, options?: any): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/dirxml_static) */\n dirxml(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/error_static) */\n error(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/group_static) */\n group(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/groupCollapsed_static) */\n groupCollapsed(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/groupEnd_static) */\n groupEnd(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/info_static) */\n info(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static) */\n log(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/table_static) */\n table(tabularData?: any, properties?: string[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/time_static) */\n time(label?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeEnd_static) */\n timeEnd(label?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeLog_static) */\n timeLog(label?: string, ...data: any[]): void;\n timeStamp(label?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/trace_static) */\n trace(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/warn_static) */\n warn(...data: any[]): void;\n}\n\ndeclare var console: Console;\n\n/** Holds useful CSS-related methods. No object with this interface are implemented: it contains only static methods and therefore is a utilitarian interface. */\ndeclare namespace CSS {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/highlights_static) */\n var highlights: HighlightRegistry;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function Hz(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function Q(value: number): CSSUnitValue;\n function cap(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function ch(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function cm(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function cqb(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function cqh(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function cqi(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function cqmax(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function cqmin(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function cqw(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function deg(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function dpcm(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function dpi(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function dppx(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function dvb(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function dvh(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function dvi(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function dvmax(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function dvmin(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function dvw(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function em(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/escape_static) */\n function escape(ident: string): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function ex(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function fr(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function grad(value: number): CSSUnitValue;\n function ic(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function kHz(value: number): CSSUnitValue;\n function lh(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function lvb(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function lvh(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function lvi(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function lvmax(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function lvmin(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function lvw(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function mm(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function ms(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function number(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function pc(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function percent(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function pt(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function px(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function rad(value: number): CSSUnitValue;\n function rcap(value: number): CSSUnitValue;\n function rch(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/registerProperty_static) */\n function registerProperty(definition: PropertyDefinition): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function rem(value: number): CSSUnitValue;\n function rex(value: number): CSSUnitValue;\n function ric(value: number): CSSUnitValue;\n function rlh(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function s(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/supports_static) */\n function supports(property: string, value: string): boolean;\n function supports(conditionText: string): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function svb(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function svh(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function svi(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function svmax(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function svmin(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function svw(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function turn(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function vb(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function vh(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function vi(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function vmax(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function vmin(value: number): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */\n function vw(value: number): CSSUnitValue;\n}\n\ndeclare namespace WebAssembly {\n interface CompileError extends Error {\n }\n\n var CompileError: {\n prototype: CompileError;\n new(message?: string): CompileError;\n (message?: string): CompileError;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Global) */\n interface Global<T extends ValueType = ValueType> {\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Global/value) */\n value: ValueTypeMap[T];\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Global/valueOf) */\n valueOf(): ValueTypeMap[T];\n }\n\n var Global: {\n prototype: Global;\n new<T extends ValueType = ValueType>(descriptor: GlobalDescriptor<T>, v?: ValueTypeMap[T]): Global<T>;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Instance) */\n interface Instance {\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Instance/exports) */\n readonly exports: Exports;\n }\n\n var Instance: {\n prototype: Instance;\n new(module: Module, importObject?: Imports): Instance;\n };\n\n interface LinkError extends Error {\n }\n\n var LinkError: {\n prototype: LinkError;\n new(message?: string): LinkError;\n (message?: string): LinkError;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Memory) */\n interface Memory {\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Memory/buffer) */\n readonly buffer: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Memory/grow) */\n grow(delta: number): number;\n }\n\n var Memory: {\n prototype: Memory;\n new(descriptor: MemoryDescriptor): Memory;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Module) */\n interface Module {\n }\n\n var Module: {\n prototype: Module;\n new(bytes: BufferSource): Module;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Module/customSections_static) */\n customSections(moduleObject: Module, sectionName: string): ArrayBuffer[];\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Module/exports_static) */\n exports(moduleObject: Module): ModuleExportDescriptor[];\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Module/imports_static) */\n imports(moduleObject: Module): ModuleImportDescriptor[];\n };\n\n interface RuntimeError extends Error {\n }\n\n var RuntimeError: {\n prototype: RuntimeError;\n new(message?: string): RuntimeError;\n (message?: string): RuntimeError;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Table) */\n interface Table {\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Table/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Table/get) */\n get(index: number): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Table/grow) */\n grow(delta: number, value?: any): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Table/set) */\n set(index: number, value?: any): void;\n }\n\n var Table: {\n prototype: Table;\n new(descriptor: TableDescriptor, value?: any): Table;\n };\n\n interface GlobalDescriptor<T extends ValueType = ValueType> {\n mutable?: boolean;\n value: T;\n }\n\n interface MemoryDescriptor {\n initial: number;\n maximum?: number;\n shared?: boolean;\n }\n\n interface ModuleExportDescriptor {\n kind: ImportExportKind;\n name: string;\n }\n\n interface ModuleImportDescriptor {\n kind: ImportExportKind;\n module: string;\n name: string;\n }\n\n interface TableDescriptor {\n element: TableKind;\n initial: number;\n maximum?: number;\n }\n\n interface ValueTypeMap {\n anyfunc: Function;\n externref: any;\n f32: number;\n f64: number;\n i32: number;\n i64: bigint;\n v128: never;\n }\n\n interface WebAssemblyInstantiatedSource {\n instance: Instance;\n module: Module;\n }\n\n type ImportExportKind = "function" | "global" | "memory" | "table";\n type TableKind = "anyfunc" | "externref";\n type ExportValue = Function | Global | Memory | Table;\n type Exports = Record<string, ExportValue>;\n type ImportValue = ExportValue | number;\n type Imports = Record<string, ModuleImports>;\n type ModuleImports = Record<string, ImportValue>;\n type ValueType = keyof ValueTypeMap;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/compile_static) */\n function compile(bytes: BufferSource): Promise<Module>;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/compileStreaming_static) */\n function compileStreaming(source: Response | PromiseLike<Response>): Promise<Module>;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/instantiate_static) */\n function instantiate(bytes: BufferSource, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;\n function instantiate(moduleObject: Module, importObject?: Imports): Promise<Instance>;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/instantiateStreaming_static) */\n function instantiateStreaming(source: Response | PromiseLike<Response>, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/validate_static) */\n function validate(bytes: BufferSource): boolean;\n}\n\ninterface BlobCallback {\n (blob: Blob | null): void;\n}\n\ninterface CustomElementConstructor {\n new (...params: any[]): HTMLElement;\n}\n\ninterface DecodeErrorCallback {\n (error: DOMException): void;\n}\n\ninterface DecodeSuccessCallback {\n (decodedData: AudioBuffer): void;\n}\n\ninterface EncodedVideoChunkOutputCallback {\n (chunk: EncodedVideoChunk, metadata?: EncodedVideoChunkMetadata): void;\n}\n\ninterface ErrorCallback {\n (err: DOMException): void;\n}\n\ninterface FileCallback {\n (file: File): void;\n}\n\ninterface FileSystemEntriesCallback {\n (entries: FileSystemEntry[]): void;\n}\n\ninterface FileSystemEntryCallback {\n (entry: FileSystemEntry): void;\n}\n\ninterface FrameRequestCallback {\n (time: DOMHighResTimeStamp): void;\n}\n\ninterface FunctionStringCallback {\n (data: string): void;\n}\n\ninterface IdleRequestCallback {\n (deadline: IdleDeadline): void;\n}\n\ninterface IntersectionObserverCallback {\n (entries: IntersectionObserverEntry[], observer: IntersectionObserver): void;\n}\n\ninterface LockGrantedCallback {\n (lock: Lock | null): any;\n}\n\ninterface MediaSessionActionHandler {\n (details: MediaSessionActionDetails): void;\n}\n\ninterface MutationCallback {\n (mutations: MutationRecord[], observer: MutationObserver): void;\n}\n\ninterface NotificationPermissionCallback {\n (permission: NotificationPermission): void;\n}\n\ninterface OnBeforeUnloadEventHandlerNonNull {\n (event: Event): string | null;\n}\n\ninterface OnErrorEventHandlerNonNull {\n (event: Event | string, source?: string, lineno?: number, colno?: number, error?: Error): any;\n}\n\ninterface PerformanceObserverCallback {\n (entries: PerformanceObserverEntryList, observer: PerformanceObserver): void;\n}\n\ninterface PositionCallback {\n (position: GeolocationPosition): void;\n}\n\ninterface PositionErrorCallback {\n (positionError: GeolocationPositionError): void;\n}\n\ninterface QueuingStrategySize<T = any> {\n (chunk: T): number;\n}\n\ninterface RTCPeerConnectionErrorCallback {\n (error: DOMException): void;\n}\n\ninterface RTCSessionDescriptionCallback {\n (description: RTCSessionDescriptionInit): void;\n}\n\ninterface RemotePlaybackAvailabilityCallback {\n (available: boolean): void;\n}\n\ninterface ReportingObserverCallback {\n (reports: Report[], observer: ReportingObserver): void;\n}\n\ninterface ResizeObserverCallback {\n (entries: ResizeObserverEntry[], observer: ResizeObserver): void;\n}\n\ninterface TransformerFlushCallback<O> {\n (controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;\n}\n\ninterface TransformerStartCallback<O> {\n (controller: TransformStreamDefaultController<O>): any;\n}\n\ninterface TransformerTransformCallback<I, O> {\n (chunk: I, controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSinkAbortCallback {\n (reason?: any): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSinkCloseCallback {\n (): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSinkStartCallback {\n (controller: WritableStreamDefaultController): any;\n}\n\ninterface UnderlyingSinkWriteCallback<W> {\n (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSourceCancelCallback {\n (reason?: any): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSourcePullCallback<R> {\n (controller: ReadableStreamController<R>): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSourceStartCallback<R> {\n (controller: ReadableStreamController<R>): any;\n}\n\ninterface VideoFrameOutputCallback {\n (output: VideoFrame): void;\n}\n\ninterface VideoFrameRequestCallback {\n (now: DOMHighResTimeStamp, metadata: VideoFrameCallbackMetadata): void;\n}\n\ninterface VoidFunction {\n (): void;\n}\n\ninterface WebCodecsErrorCallback {\n (error: DOMException): void;\n}\n\ninterface HTMLElementTagNameMap {\n "a": HTMLAnchorElement;\n "abbr": HTMLElement;\n "address": HTMLElement;\n "area": HTMLAreaElement;\n "article": HTMLElement;\n "aside": HTMLElement;\n "audio": HTMLAudioElement;\n "b": HTMLElement;\n "base": HTMLBaseElement;\n "bdi": HTMLElement;\n "bdo": HTMLElement;\n "blockquote": HTMLQuoteElement;\n "body": HTMLBodyElement;\n "br": HTMLBRElement;\n "button": HTMLButtonElement;\n "canvas": HTMLCanvasElement;\n "caption": HTMLTableCaptionElement;\n "cite": HTMLElement;\n "code": HTMLElement;\n "col": HTMLTableColElement;\n "colgroup": HTMLTableColElement;\n "data": HTMLDataElement;\n "datalist": HTMLDataListElement;\n "dd": HTMLElement;\n "del": HTMLModElement;\n "details": HTMLDetailsElement;\n "dfn": HTMLElement;\n "dialog": HTMLDialogElement;\n "div": HTMLDivElement;\n "dl": HTMLDListElement;\n "dt": HTMLElement;\n "em": HTMLElement;\n "embed": HTMLEmbedElement;\n "fieldset": HTMLFieldSetElement;\n "figcaption": HTMLElement;\n "figure": HTMLElement;\n "footer": HTMLElement;\n "form": HTMLFormElement;\n "h1": HTMLHeadingElement;\n "h2": HTMLHeadingElement;\n "h3": HTMLHeadingElement;\n "h4": HTMLHeadingElement;\n "h5": HTMLHeadingElement;\n "h6": HTMLHeadingElement;\n "head": HTMLHeadElement;\n "header": HTMLElement;\n "hgroup": HTMLElement;\n "hr": HTMLHRElement;\n "html": HTMLHtmlElement;\n "i": HTMLElement;\n "iframe": HTMLIFrameElement;\n "img": HTMLImageElement;\n "input": HTMLInputElement;\n "ins": HTMLModElement;\n "kbd": HTMLElement;\n "label": HTMLLabelElement;\n "legend": HTMLLegendElement;\n "li": HTMLLIElement;\n "link": HTMLLinkElement;\n "main": HTMLElement;\n "map": HTMLMapElement;\n "mark": HTMLElement;\n "menu": HTMLMenuElement;\n "meta": HTMLMetaElement;\n "meter": HTMLMeterElement;\n "nav": HTMLElement;\n "noscript": HTMLElement;\n "object": HTMLObjectElement;\n "ol": HTMLOListElement;\n "optgroup": HTMLOptGroupElement;\n "option": HTMLOptionElement;\n "output": HTMLOutputElement;\n "p": HTMLParagraphElement;\n "picture": HTMLPictureElement;\n "pre": HTMLPreElement;\n "progress": HTMLProgressElement;\n "q": HTMLQuoteElement;\n "rp": HTMLElement;\n "rt": HTMLElement;\n "ruby": HTMLElement;\n "s": HTMLElement;\n "samp": HTMLElement;\n "script": HTMLScriptElement;\n "search": HTMLElement;\n "section": HTMLElement;\n "select": HTMLSelectElement;\n "slot": HTMLSlotElement;\n "small": HTMLElement;\n "source": HTMLSourceElement;\n "span": HTMLSpanElement;\n "strong": HTMLElement;\n "style": HTMLStyleElement;\n "sub": HTMLElement;\n "summary": HTMLElement;\n "sup": HTMLElement;\n "table": HTMLTableElement;\n "tbody": HTMLTableSectionElement;\n "td": HTMLTableCellElement;\n "template": HTMLTemplateElement;\n "textarea": HTMLTextAreaElement;\n "tfoot": HTMLTableSectionElement;\n "th": HTMLTableCellElement;\n "thead": HTMLTableSectionElement;\n "time": HTMLTimeElement;\n "title": HTMLTitleElement;\n "tr": HTMLTableRowElement;\n "track": HTMLTrackElement;\n "u": HTMLElement;\n "ul": HTMLUListElement;\n "var": HTMLElement;\n "video": HTMLVideoElement;\n "wbr": HTMLElement;\n}\n\ninterface HTMLElementDeprecatedTagNameMap {\n "acronym": HTMLElement;\n "applet": HTMLUnknownElement;\n "basefont": HTMLElement;\n "bgsound": HTMLUnknownElement;\n "big": HTMLElement;\n "blink": HTMLUnknownElement;\n "center": HTMLElement;\n "dir": HTMLDirectoryElement;\n "font": HTMLFontElement;\n "frame": HTMLFrameElement;\n "frameset": HTMLFrameSetElement;\n "isindex": HTMLUnknownElement;\n "keygen": HTMLUnknownElement;\n "listing": HTMLPreElement;\n "marquee": HTMLMarqueeElement;\n "menuitem": HTMLElement;\n "multicol": HTMLUnknownElement;\n "nextid": HTMLUnknownElement;\n "nobr": HTMLElement;\n "noembed": HTMLElement;\n "noframes": HTMLElement;\n "param": HTMLParamElement;\n "plaintext": HTMLElement;\n "rb": HTMLElement;\n "rtc": HTMLElement;\n "spacer": HTMLUnknownElement;\n "strike": HTMLElement;\n "tt": HTMLElement;\n "xmp": HTMLPreElement;\n}\n\ninterface SVGElementTagNameMap {\n "a": SVGAElement;\n "animate": SVGAnimateElement;\n "animateMotion": SVGAnimateMotionElement;\n "animateTransform": SVGAnimateTransformElement;\n "circle": SVGCircleElement;\n "clipPath": SVGClipPathElement;\n "defs": SVGDefsElement;\n "desc": SVGDescElement;\n "ellipse": SVGEllipseElement;\n "feBlend": SVGFEBlendElement;\n "feColorMatrix": SVGFEColorMatrixElement;\n "feComponentTransfer": SVGFEComponentTransferElement;\n "feComposite": SVGFECompositeElement;\n "feConvolveMatrix": SVGFEConvolveMatrixElement;\n "feDiffuseLighting": SVGFEDiffuseLightingElement;\n "feDisplacementMap": SVGFEDisplacementMapElement;\n "feDistantLight": SVGFEDistantLightElement;\n "feDropShadow": SVGFEDropShadowElement;\n "feFlood": SVGFEFloodElement;\n "feFuncA": SVGFEFuncAElement;\n "feFuncB": SVGFEFuncBElement;\n "feFuncG": SVGFEFuncGElement;\n "feFuncR": SVGFEFuncRElement;\n "feGaussianBlur": SVGFEGaussianBlurElement;\n "feImage": SVGFEImageElement;\n "feMerge": SVGFEMergeElement;\n "feMergeNode": SVGFEMergeNodeElement;\n "feMorphology": SVGFEMorphologyElement;\n "feOffset": SVGFEOffsetElement;\n "fePointLight": SVGFEPointLightElement;\n "feSpecularLighting": SVGFESpecularLightingElement;\n "feSpotLight": SVGFESpotLightElement;\n "feTile": SVGFETileElement;\n "feTurbulence": SVGFETurbulenceElement;\n "filter": SVGFilterElement;\n "foreignObject": SVGForeignObjectElement;\n "g": SVGGElement;\n "image": SVGImageElement;\n "line": SVGLineElement;\n "linearGradient": SVGLinearGradientElement;\n "marker": SVGMarkerElement;\n "mask": SVGMaskElement;\n "metadata": SVGMetadataElement;\n "mpath": SVGMPathElement;\n "path": SVGPathElement;\n "pattern": SVGPatternElement;\n "polygon": SVGPolygonElement;\n "polyline": SVGPolylineElement;\n "radialGradient": SVGRadialGradientElement;\n "rect": SVGRectElement;\n "script": SVGScriptElement;\n "set": SVGSetElement;\n "stop": SVGStopElement;\n "style": SVGStyleElement;\n "svg": SVGSVGElement;\n "switch": SVGSwitchElement;\n "symbol": SVGSymbolElement;\n "text": SVGTextElement;\n "textPath": SVGTextPathElement;\n "title": SVGTitleElement;\n "tspan": SVGTSpanElement;\n "use": SVGUseElement;\n "view": SVGViewElement;\n}\n\ninterface MathMLElementTagNameMap {\n "annotation": MathMLElement;\n "annotation-xml": MathMLElement;\n "maction": MathMLElement;\n "math": MathMLElement;\n "merror": MathMLElement;\n "mfrac": MathMLElement;\n "mi": MathMLElement;\n "mmultiscripts": MathMLElement;\n "mn": MathMLElement;\n "mo": MathMLElement;\n "mover": MathMLElement;\n "mpadded": MathMLElement;\n "mphantom": MathMLElement;\n "mprescripts": MathMLElement;\n "mroot": MathMLElement;\n "mrow": MathMLElement;\n "ms": MathMLElement;\n "mspace": MathMLElement;\n "msqrt": MathMLElement;\n "mstyle": MathMLElement;\n "msub": MathMLElement;\n "msubsup": MathMLElement;\n "msup": MathMLElement;\n "mtable": MathMLElement;\n "mtd": MathMLElement;\n "mtext": MathMLElement;\n "mtr": MathMLElement;\n "munder": MathMLElement;\n "munderover": MathMLElement;\n "semantics": MathMLElement;\n}\n\n/** @deprecated Directly use HTMLElementTagNameMap or SVGElementTagNameMap as appropriate, instead. */\ntype ElementTagNameMap = HTMLElementTagNameMap & Pick<SVGElementTagNameMap, Exclude<keyof SVGElementTagNameMap, keyof HTMLElementTagNameMap>>;\n\ndeclare var Audio: {\n new(src?: string): HTMLAudioElement;\n};\ndeclare var Image: {\n new(width?: number, height?: number): HTMLImageElement;\n};\ndeclare var Option: {\n new(text?: string, value?: string, defaultSelected?: boolean, selected?: boolean): HTMLOptionElement;\n};\n/**\n * @deprecated This is a legacy alias of `navigator`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/navigator)\n */\ndeclare var clientInformation: Navigator;\n/**\n * Returns true if the window has been closed, false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/closed)\n */\ndeclare var closed: boolean;\n/**\n * Defines a new custom element, mapping the given name to the given constructor as an autonomous custom element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/customElements)\n */\ndeclare var customElements: CustomElementRegistry;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/devicePixelRatio) */\ndeclare var devicePixelRatio: number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/document) */\ndeclare var document: Document;\n/**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/event)\n */\ndeclare var event: Event | undefined;\n/**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/external)\n */\ndeclare var external: External;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/frameElement) */\ndeclare var frameElement: Element | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/frames) */\ndeclare var frames: WindowProxy;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/history) */\ndeclare var history: History;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/innerHeight) */\ndeclare var innerHeight: number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/innerWidth) */\ndeclare var innerWidth: number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/length) */\ndeclare var length: number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/location) */\ndeclare var location: Location;\n/**\n * Returns true if the location bar is visible; otherwise, returns false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/locationbar)\n */\ndeclare var locationbar: BarProp;\n/**\n * Returns true if the menu bar is visible; otherwise, returns false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/menubar)\n */\ndeclare var menubar: BarProp;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/name) */\n/** @deprecated */\ndeclare const name: void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/navigator) */\ndeclare var navigator: Navigator;\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/devicemotion_event)\n */\ndeclare var ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null;\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/deviceorientation_event)\n */\ndeclare var ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null;\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/deviceorientationabsolute_event)\n */\ndeclare var ondeviceorientationabsolute: ((this: Window, ev: DeviceOrientationEvent) => any) | null;\n/**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/orientationchange_event)\n */\ndeclare var onorientationchange: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/opener) */\ndeclare var opener: any;\n/**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/orientation)\n */\ndeclare var orientation: number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/outerHeight) */\ndeclare var outerHeight: number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/outerWidth) */\ndeclare var outerWidth: number;\n/**\n * @deprecated This is a legacy alias of `scrollX`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollX)\n */\ndeclare var pageXOffset: number;\n/**\n * @deprecated This is a legacy alias of `scrollY`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollY)\n */\ndeclare var pageYOffset: number;\n/**\n * Refers to either the parent WindowProxy, or itself.\n *\n * It can rarely be null e.g. for contentWindow of an iframe that is already removed from the parent.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/parent)\n */\ndeclare var parent: WindowProxy;\n/**\n * Returns true if the personal bar is visible; otherwise, returns false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/personalbar)\n */\ndeclare var personalbar: BarProp;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screen) */\ndeclare var screen: Screen;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenLeft) */\ndeclare var screenLeft: number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenTop) */\ndeclare var screenTop: number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenX) */\ndeclare var screenX: number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenY) */\ndeclare var screenY: number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollX) */\ndeclare var scrollX: number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollY) */\ndeclare var scrollY: number;\n/**\n * Returns true if the scrollbars are visible; otherwise, returns false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollbars)\n */\ndeclare var scrollbars: BarProp;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/self) */\ndeclare var self: Window & typeof globalThis;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/speechSynthesis) */\ndeclare var speechSynthesis: SpeechSynthesis;\n/**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/status)\n */\ndeclare var status: string;\n/**\n * Returns true if the status bar is visible; otherwise, returns false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/statusbar)\n */\ndeclare var statusbar: BarProp;\n/**\n * Returns true if the toolbar is visible; otherwise, returns false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/toolbar)\n */\ndeclare var toolbar: BarProp;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/top) */\ndeclare var top: WindowProxy | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/visualViewport) */\ndeclare var visualViewport: VisualViewport | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window) */\ndeclare var window: Window & typeof globalThis;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/alert) */\ndeclare function alert(message?: any): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/blur) */\ndeclare function blur(): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/cancelIdleCallback) */\ndeclare function cancelIdleCallback(handle: number): void;\n/**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/captureEvents)\n */\ndeclare function captureEvents(): void;\n/**\n * Closes the window.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/close)\n */\ndeclare function close(): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/confirm) */\ndeclare function confirm(message?: string): boolean;\n/**\n * Moves the focus to the window\'s browsing context, if any.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/focus)\n */\ndeclare function focus(): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/getComputedStyle) */\ndeclare function getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/getSelection) */\ndeclare function getSelection(): Selection | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/matchMedia) */\ndeclare function matchMedia(query: string): MediaQueryList;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/moveBy) */\ndeclare function moveBy(x: number, y: number): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/moveTo) */\ndeclare function moveTo(x: number, y: number): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/open) */\ndeclare function open(url?: string | URL, target?: string, features?: string): WindowProxy | null;\n/**\n * Posts a message to the given window. Messages can be structured objects, e.g. nested objects and arrays, can contain JavaScript values (strings, numbers, Date objects, etc), and can contain certain data objects such as File Blob, FileList, and ArrayBuffer objects.\n *\n * Objects listed in the transfer member of options are transferred, not just cloned, meaning that they are no longer usable on the sending side.\n *\n * A target origin can be specified using the targetOrigin member of options. If not provided, it defaults to "/". This default restricts the message to same-origin targets only.\n *\n * If the origin of the target window doesn\'t match the given target origin, the message is discarded, to avoid information leakage. To send the message to the target regardless of origin, set the target origin to "*".\n *\n * Throws a "DataCloneError" DOMException if transfer array contains duplicate objects or if message could not be cloned.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/postMessage)\n */\ndeclare function postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;\ndeclare function postMessage(message: any, options?: WindowPostMessageOptions): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/print) */\ndeclare function print(): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/prompt) */\ndeclare function prompt(message?: string, _default?: string): string | null;\n/**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/releaseEvents)\n */\ndeclare function releaseEvents(): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/requestIdleCallback) */\ndeclare function requestIdleCallback(callback: IdleRequestCallback, options?: IdleRequestOptions): number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/resizeBy) */\ndeclare function resizeBy(x: number, y: number): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/resizeTo) */\ndeclare function resizeTo(width: number, height: number): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scroll) */\ndeclare function scroll(options?: ScrollToOptions): void;\ndeclare function scroll(x: number, y: number): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollBy) */\ndeclare function scrollBy(options?: ScrollToOptions): void;\ndeclare function scrollBy(x: number, y: number): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollTo) */\ndeclare function scrollTo(options?: ScrollToOptions): void;\ndeclare function scrollTo(x: number, y: number): void;\n/**\n * Cancels the document load.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/stop)\n */\ndeclare function stop(): void;\ndeclare function toString(): string;\n/**\n * Dispatches a synthetic event event to target and returns true if either event\'s cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)\n */\ndeclare function dispatchEvent(event: Event): boolean;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/cancelAnimationFrame) */\ndeclare function cancelAnimationFrame(handle: number): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/requestAnimationFrame) */\ndeclare function requestAnimationFrame(callback: FrameRequestCallback): number;\n/**\n * Fires when the user aborts the download.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/abort_event)\n */\ndeclare var onabort: ((this: Window, ev: UIEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationcancel_event) */\ndeclare var onanimationcancel: ((this: Window, ev: AnimationEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationend_event) */\ndeclare var onanimationend: ((this: Window, ev: AnimationEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationiteration_event) */\ndeclare var onanimationiteration: ((this: Window, ev: AnimationEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationstart_event) */\ndeclare var onanimationstart: ((this: Window, ev: AnimationEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/auxclick_event) */\ndeclare var onauxclick: ((this: Window, ev: MouseEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/beforeinput_event) */\ndeclare var onbeforeinput: ((this: Window, ev: InputEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/beforetoggle_event) */\ndeclare var onbeforetoggle: ((this: Window, ev: Event) => any) | null;\n/**\n * Fires when the object loses the input focus.\n * @param ev The focus event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/blur_event)\n */\ndeclare var onblur: ((this: Window, ev: FocusEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/cancel_event) */\ndeclare var oncancel: ((this: Window, ev: Event) => any) | null;\n/**\n * Occurs when playback is possible, but would require further buffering.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplay_event)\n */\ndeclare var oncanplay: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplaythrough_event) */\ndeclare var oncanplaythrough: ((this: Window, ev: Event) => any) | null;\n/**\n * Fires when the contents of the object or selection have changed.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/change_event)\n */\ndeclare var onchange: ((this: Window, ev: Event) => any) | null;\n/**\n * Fires when the user clicks the left mouse button on the object\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/click_event)\n */\ndeclare var onclick: ((this: Window, ev: MouseEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/close_event) */\ndeclare var onclose: ((this: Window, ev: Event) => any) | null;\n/**\n * Fires when the user clicks the right mouse button in the client area, opening the context menu.\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/contextmenu_event)\n */\ndeclare var oncontextmenu: ((this: Window, ev: MouseEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/copy_event) */\ndeclare var oncopy: ((this: Window, ev: ClipboardEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/cuechange_event) */\ndeclare var oncuechange: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/cut_event) */\ndeclare var oncut: ((this: Window, ev: ClipboardEvent) => any) | null;\n/**\n * Fires when the user double-clicks the object.\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/dblclick_event)\n */\ndeclare var ondblclick: ((this: Window, ev: MouseEvent) => any) | null;\n/**\n * Fires on the source object continuously during a drag operation.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drag_event)\n */\ndeclare var ondrag: ((this: Window, ev: DragEvent) => any) | null;\n/**\n * Fires on the source object when the user releases the mouse at the close of a drag operation.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragend_event)\n */\ndeclare var ondragend: ((this: Window, ev: DragEvent) => any) | null;\n/**\n * Fires on the target element when the user drags the object to a valid drop target.\n * @param ev The drag event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragenter_event)\n */\ndeclare var ondragenter: ((this: Window, ev: DragEvent) => any) | null;\n/**\n * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.\n * @param ev The drag event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragleave_event)\n */\ndeclare var ondragleave: ((this: Window, ev: DragEvent) => any) | null;\n/**\n * Fires on the target element continuously while the user drags the object over a valid drop target.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragover_event)\n */\ndeclare var ondragover: ((this: Window, ev: DragEvent) => any) | null;\n/**\n * Fires on the source object when the user starts to drag a text selection or selected object.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragstart_event)\n */\ndeclare var ondragstart: ((this: Window, ev: DragEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drop_event) */\ndeclare var ondrop: ((this: Window, ev: DragEvent) => any) | null;\n/**\n * Occurs when the duration attribute is updated.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/durationchange_event)\n */\ndeclare var ondurationchange: ((this: Window, ev: Event) => any) | null;\n/**\n * Occurs when the media element is reset to its initial state.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/emptied_event)\n */\ndeclare var onemptied: ((this: Window, ev: Event) => any) | null;\n/**\n * Occurs when the end of playback is reached.\n * @param ev The event\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event)\n */\ndeclare var onended: ((this: Window, ev: Event) => any) | null;\n/**\n * Fires when an error occurs during object loading.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event)\n */\ndeclare var onerror: OnErrorEventHandler;\n/**\n * Fires when the object receives focus.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event)\n */\ndeclare var onfocus: ((this: Window, ev: FocusEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */\ndeclare var onformdata: ((this: Window, ev: FormDataEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/gotpointercapture_event) */\ndeclare var ongotpointercapture: ((this: Window, ev: PointerEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/input_event) */\ndeclare var oninput: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/invalid_event) */\ndeclare var oninvalid: ((this: Window, ev: Event) => any) | null;\n/**\n * Fires when the user presses a key.\n * @param ev The keyboard event\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keydown_event)\n */\ndeclare var onkeydown: ((this: Window, ev: KeyboardEvent) => any) | null;\n/**\n * Fires when the user presses an alphanumeric key.\n * @param ev The event.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keypress_event)\n */\ndeclare var onkeypress: ((this: Window, ev: KeyboardEvent) => any) | null;\n/**\n * Fires when the user releases a key.\n * @param ev The keyboard event\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keyup_event)\n */\ndeclare var onkeyup: ((this: Window, ev: KeyboardEvent) => any) | null;\n/**\n * Fires immediately after the browser loads the object.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGElement/load_event)\n */\ndeclare var onload: ((this: Window, ev: Event) => any) | null;\n/**\n * Occurs when media data is loaded at the current playback position.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadeddata_event)\n */\ndeclare var onloadeddata: ((this: Window, ev: Event) => any) | null;\n/**\n * Occurs when the duration and dimensions of the media have been determined.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadedmetadata_event)\n */\ndeclare var onloadedmetadata: ((this: Window, ev: Event) => any) | null;\n/**\n * Occurs when Internet Explorer begins looking for media data.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadstart_event)\n */\ndeclare var onloadstart: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/lostpointercapture_event) */\ndeclare var onlostpointercapture: ((this: Window, ev: PointerEvent) => any) | null;\n/**\n * Fires when the user clicks the object with either mouse button.\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousedown_event)\n */\ndeclare var onmousedown: ((this: Window, ev: MouseEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseenter_event) */\ndeclare var onmouseenter: ((this: Window, ev: MouseEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseleave_event) */\ndeclare var onmouseleave: ((this: Window, ev: MouseEvent) => any) | null;\n/**\n * Fires when the user moves the mouse over the object.\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousemove_event)\n */\ndeclare var onmousemove: ((this: Window, ev: MouseEvent) => any) | null;\n/**\n * Fires when the user moves the mouse pointer outside the boundaries of the object.\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseout_event)\n */\ndeclare var onmouseout: ((this: Window, ev: MouseEvent) => any) | null;\n/**\n * Fires when the user moves the mouse pointer into the object.\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseover_event)\n */\ndeclare var onmouseover: ((this: Window, ev: MouseEvent) => any) | null;\n/**\n * Fires when the user releases a mouse button while the mouse is over the object.\n * @param ev The mouse event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseup_event)\n */\ndeclare var onmouseup: ((this: Window, ev: MouseEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/paste_event) */\ndeclare var onpaste: ((this: Window, ev: ClipboardEvent) => any) | null;\n/**\n * Occurs when playback is paused.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause_event)\n */\ndeclare var onpause: ((this: Window, ev: Event) => any) | null;\n/**\n * Occurs when the play method is requested.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play_event)\n */\ndeclare var onplay: ((this: Window, ev: Event) => any) | null;\n/**\n * Occurs when the audio or video has started playing.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/playing_event)\n */\ndeclare var onplaying: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointercancel_event) */\ndeclare var onpointercancel: ((this: Window, ev: PointerEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerdown_event) */\ndeclare var onpointerdown: ((this: Window, ev: PointerEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerenter_event) */\ndeclare var onpointerenter: ((this: Window, ev: PointerEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerleave_event) */\ndeclare var onpointerleave: ((this: Window, ev: PointerEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointermove_event) */\ndeclare var onpointermove: ((this: Window, ev: PointerEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerout_event) */\ndeclare var onpointerout: ((this: Window, ev: PointerEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerover_event) */\ndeclare var onpointerover: ((this: Window, ev: PointerEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerup_event) */\ndeclare var onpointerup: ((this: Window, ev: PointerEvent) => any) | null;\n/**\n * Occurs to indicate progress while downloading media data.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/progress_event)\n */\ndeclare var onprogress: ((this: Window, ev: ProgressEvent) => any) | null;\n/**\n * Occurs when the playback rate is increased or decreased.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ratechange_event)\n */\ndeclare var onratechange: ((this: Window, ev: Event) => any) | null;\n/**\n * Fires when the user resets a form.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/reset_event)\n */\ndeclare var onreset: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/resize_event) */\ndeclare var onresize: ((this: Window, ev: UIEvent) => any) | null;\n/**\n * Fires when the user repositions the scroll box in the scroll bar on the object.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scroll_event)\n */\ndeclare var onscroll: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scrollend_event) */\ndeclare var onscrollend: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/securitypolicyviolation_event) */\ndeclare var onsecuritypolicyviolation: ((this: Window, ev: SecurityPolicyViolationEvent) => any) | null;\n/**\n * Occurs when the seek operation ends.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeked_event)\n */\ndeclare var onseeked: ((this: Window, ev: Event) => any) | null;\n/**\n * Occurs when the current playback position is moved.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeking_event)\n */\ndeclare var onseeking: ((this: Window, ev: Event) => any) | null;\n/**\n * Fires when the current selection changes.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/select_event)\n */\ndeclare var onselect: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/selectionchange_event) */\ndeclare var onselectionchange: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/selectstart_event) */\ndeclare var onselectstart: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/slotchange_event) */\ndeclare var onslotchange: ((this: Window, ev: Event) => any) | null;\n/**\n * Occurs when the download has stopped.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/stalled_event)\n */\ndeclare var onstalled: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/submit_event) */\ndeclare var onsubmit: ((this: Window, ev: SubmitEvent) => any) | null;\n/**\n * Occurs if the load operation has been intentionally halted.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/suspend_event)\n */\ndeclare var onsuspend: ((this: Window, ev: Event) => any) | null;\n/**\n * Occurs to indicate the current playback position.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/timeupdate_event)\n */\ndeclare var ontimeupdate: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement/toggle_event) */\ndeclare var ontoggle: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchcancel_event) */\ndeclare var ontouchcancel: ((this: Window, ev: TouchEvent) => any) | null | undefined;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchend_event) */\ndeclare var ontouchend: ((this: Window, ev: TouchEvent) => any) | null | undefined;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchmove_event) */\ndeclare var ontouchmove: ((this: Window, ev: TouchEvent) => any) | null | undefined;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchstart_event) */\ndeclare var ontouchstart: ((this: Window, ev: TouchEvent) => any) | null | undefined;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitioncancel_event) */\ndeclare var ontransitioncancel: ((this: Window, ev: TransitionEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionend_event) */\ndeclare var ontransitionend: ((this: Window, ev: TransitionEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionrun_event) */\ndeclare var ontransitionrun: ((this: Window, ev: TransitionEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionstart_event) */\ndeclare var ontransitionstart: ((this: Window, ev: TransitionEvent) => any) | null;\n/**\n * Occurs when the volume is changed, or playback is muted or unmuted.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/volumechange_event)\n */\ndeclare var onvolumechange: ((this: Window, ev: Event) => any) | null;\n/**\n * Occurs when playback stops because the next frame of a video resource is not available.\n * @param ev The event.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/waiting_event)\n */\ndeclare var onwaiting: ((this: Window, ev: Event) => any) | null;\n/**\n * @deprecated This is a legacy alias of `onanimationend`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationend_event)\n */\ndeclare var onwebkitanimationend: ((this: Window, ev: Event) => any) | null;\n/**\n * @deprecated This is a legacy alias of `onanimationiteration`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationiteration_event)\n */\ndeclare var onwebkitanimationiteration: ((this: Window, ev: Event) => any) | null;\n/**\n * @deprecated This is a legacy alias of `onanimationstart`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationstart_event)\n */\ndeclare var onwebkitanimationstart: ((this: Window, ev: Event) => any) | null;\n/**\n * @deprecated This is a legacy alias of `ontransitionend`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionend_event)\n */\ndeclare var onwebkittransitionend: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/wheel_event) */\ndeclare var onwheel: ((this: Window, ev: WheelEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/afterprint_event) */\ndeclare var onafterprint: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/beforeprint_event) */\ndeclare var onbeforeprint: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/beforeunload_event) */\ndeclare var onbeforeunload: ((this: Window, ev: BeforeUnloadEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/gamepadconnected_event) */\ndeclare var ongamepadconnected: ((this: Window, ev: GamepadEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/gamepaddisconnected_event) */\ndeclare var ongamepaddisconnected: ((this: Window, ev: GamepadEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/hashchange_event) */\ndeclare var onhashchange: ((this: Window, ev: HashChangeEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/languagechange_event) */\ndeclare var onlanguagechange: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/message_event) */\ndeclare var onmessage: ((this: Window, ev: MessageEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/messageerror_event) */\ndeclare var onmessageerror: ((this: Window, ev: MessageEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/offline_event) */\ndeclare var onoffline: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/online_event) */\ndeclare var ononline: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pagehide_event) */\ndeclare var onpagehide: ((this: Window, ev: PageTransitionEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pageshow_event) */\ndeclare var onpageshow: ((this: Window, ev: PageTransitionEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/popstate_event) */\ndeclare var onpopstate: ((this: Window, ev: PopStateEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/rejectionhandled_event) */\ndeclare var onrejectionhandled: ((this: Window, ev: PromiseRejectionEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/storage_event) */\ndeclare var onstorage: ((this: Window, ev: StorageEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unhandledrejection_event) */\ndeclare var onunhandledrejection: ((this: Window, ev: PromiseRejectionEvent) => any) | null;\n/**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unload_event)\n */\ndeclare var onunload: ((this: Window, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/localStorage) */\ndeclare var localStorage: Storage;\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/caches)\n */\ndeclare var caches: CacheStorage;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/crossOriginIsolated) */\ndeclare var crossOriginIsolated: boolean;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/crypto_property) */\ndeclare var crypto: Crypto;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/indexedDB) */\ndeclare var indexedDB: IDBFactory;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/isSecureContext) */\ndeclare var isSecureContext: boolean;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/origin) */\ndeclare var origin: string;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/performance_property) */\ndeclare var performance: Performance;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/atob) */\ndeclare function atob(data: string): string;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/btoa) */\ndeclare function btoa(data: string): string;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/clearInterval) */\ndeclare function clearInterval(id: number | undefined): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/clearTimeout) */\ndeclare function clearTimeout(id: number | undefined): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/createImageBitmap) */\ndeclare function createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;\ndeclare function createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/fetch) */\ndeclare function fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/queueMicrotask) */\ndeclare function queueMicrotask(callback: VoidFunction): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/reportError) */\ndeclare function reportError(e: any): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/setInterval) */\ndeclare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/setTimeout) */\ndeclare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/structuredClone) */\ndeclare function structuredClone<T = any>(value: T, options?: StructuredSerializeOptions): T;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/sessionStorage) */\ndeclare var sessionStorage: Storage;\ndeclare function addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\ndeclare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\ndeclare function removeEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\ndeclare function removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\ntype AlgorithmIdentifier = Algorithm | string;\ntype AllowSharedBufferSource = ArrayBuffer | ArrayBufferView;\ntype AutoFill = AutoFillBase | `${OptionalPrefixToken<AutoFillSection>}${OptionalPrefixToken<AutoFillAddressKind>}${AutoFillField}${OptionalPostfixToken<AutoFillCredentialField>}`;\ntype AutoFillField = AutoFillNormalField | `${OptionalPrefixToken<AutoFillContactKind>}${AutoFillContactField}`;\ntype AutoFillSection = `section-${string}`;\ntype BigInteger = Uint8Array;\ntype BinaryData = ArrayBuffer | ArrayBufferView;\ntype BlobPart = BufferSource | Blob | string;\ntype BodyInit = ReadableStream | XMLHttpRequestBodyInit;\ntype BufferSource = ArrayBufferView | ArrayBuffer;\ntype COSEAlgorithmIdentifier = number;\ntype CSSKeywordish = string | CSSKeywordValue;\ntype CSSNumberish = number | CSSNumericValue;\ntype CSSPerspectiveValue = CSSNumericValue | CSSKeywordish;\ntype CSSUnparsedSegment = string | CSSVariableReferenceValue;\ntype CanvasImageSource = HTMLOrSVGImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap | OffscreenCanvas | VideoFrame;\ntype ClipboardItemData = Promise<string | Blob>;\ntype ClipboardItems = ClipboardItem[];\ntype ConstrainBoolean = boolean | ConstrainBooleanParameters;\ntype ConstrainDOMString = string | string[] | ConstrainDOMStringParameters;\ntype ConstrainDouble = number | ConstrainDoubleRange;\ntype ConstrainULong = number | ConstrainULongRange;\ntype DOMHighResTimeStamp = number;\ntype EpochTimeStamp = number;\ntype EventListenerOrEventListenerObject = EventListener | EventListenerObject;\ntype FileSystemWriteChunkType = BufferSource | Blob | string | WriteParams;\ntype Float32List = Float32Array | GLfloat[];\ntype FormDataEntryValue = File | string;\ntype GLbitfield = number;\ntype GLboolean = boolean;\ntype GLclampf = number;\ntype GLenum = number;\ntype GLfloat = number;\ntype GLint = number;\ntype GLint64 = number;\ntype GLintptr = number;\ntype GLsizei = number;\ntype GLsizeiptr = number;\ntype GLuint = number;\ntype GLuint64 = number;\ntype HTMLOrSVGImageElement = HTMLImageElement | SVGImageElement;\ntype HTMLOrSVGScriptElement = HTMLScriptElement | SVGScriptElement;\ntype HashAlgorithmIdentifier = AlgorithmIdentifier;\ntype HeadersInit = [string, string][] | Record<string, string> | Headers;\ntype IDBValidKey = number | string | Date | BufferSource | IDBValidKey[];\ntype ImageBitmapSource = CanvasImageSource | Blob | ImageData;\ntype Int32List = Int32Array | GLint[];\ntype LineAndPositionSetting = number | AutoKeyword;\ntype MediaProvider = MediaStream | MediaSource | Blob;\ntype MessageEventSource = WindowProxy | MessagePort | ServiceWorker;\ntype MutationRecordType = "attributes" | "characterData" | "childList";\ntype NamedCurve = string;\ntype OffscreenRenderingContext = OffscreenCanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext;\ntype OnBeforeUnloadEventHandler = OnBeforeUnloadEventHandlerNonNull | null;\ntype OnErrorEventHandler = OnErrorEventHandlerNonNull | null;\ntype OptionalPostfixToken<T extends string> = ` ${T}` | "";\ntype OptionalPrefixToken<T extends string> = `${T} ` | "";\ntype PerformanceEntryList = PerformanceEntry[];\ntype RTCRtpTransform = RTCRtpScriptTransform;\ntype ReadableStreamController<T> = ReadableStreamDefaultController<T> | ReadableByteStreamController;\ntype ReadableStreamReadResult<T> = ReadableStreamReadValueResult<T> | ReadableStreamReadDoneResult<T>;\ntype ReadableStreamReader<T> = ReadableStreamDefaultReader<T> | ReadableStreamBYOBReader;\ntype RenderingContext = CanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext;\ntype ReportList = Report[];\ntype RequestInfo = Request | string;\ntype TexImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | OffscreenCanvas | VideoFrame;\ntype TimerHandler = string | Function;\ntype Transferable = OffscreenCanvas | ImageBitmap | MessagePort | ReadableStream | WritableStream | TransformStream | VideoFrame | ArrayBuffer;\ntype Uint32List = Uint32Array | GLuint[];\ntype VibratePattern = number | number[];\ntype WindowProxy = Window;\ntype XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string;\ntype AlignSetting = "center" | "end" | "left" | "right" | "start";\ntype AlphaOption = "discard" | "keep";\ntype AnimationPlayState = "finished" | "idle" | "paused" | "running";\ntype AnimationReplaceState = "active" | "persisted" | "removed";\ntype AppendMode = "segments" | "sequence";\ntype AttestationConveyancePreference = "direct" | "enterprise" | "indirect" | "none";\ntype AudioContextLatencyCategory = "balanced" | "interactive" | "playback";\ntype AudioContextState = "closed" | "running" | "suspended";\ntype AuthenticatorAttachment = "cross-platform" | "platform";\ntype AuthenticatorTransport = "ble" | "hybrid" | "internal" | "nfc" | "usb";\ntype AutoFillAddressKind = "billing" | "shipping";\ntype AutoFillBase = "" | "off" | "on";\ntype AutoFillContactField = "email" | "tel" | "tel-area-code" | "tel-country-code" | "tel-extension" | "tel-local" | "tel-local-prefix" | "tel-local-suffix" | "tel-national";\ntype AutoFillContactKind = "home" | "mobile" | "work";\ntype AutoFillCredentialField = "webauthn";\ntype AutoFillNormalField = "additional-name" | "address-level1" | "address-level2" | "address-level3" | "address-level4" | "address-line1" | "address-line2" | "address-line3" | "bday-day" | "bday-month" | "bday-year" | "cc-csc" | "cc-exp" | "cc-exp-month" | "cc-exp-year" | "cc-family-name" | "cc-given-name" | "cc-name" | "cc-number" | "cc-type" | "country" | "country-name" | "current-password" | "family-name" | "given-name" | "honorific-prefix" | "honorific-suffix" | "name" | "new-password" | "one-time-code" | "organization" | "postal-code" | "street-address" | "transaction-amount" | "transaction-currency" | "username";\ntype AutoKeyword = "auto";\ntype AutomationRate = "a-rate" | "k-rate";\ntype AvcBitstreamFormat = "annexb" | "avc";\ntype BinaryType = "arraybuffer" | "blob";\ntype BiquadFilterType = "allpass" | "bandpass" | "highpass" | "highshelf" | "lowpass" | "lowshelf" | "notch" | "peaking";\ntype CSSMathOperator = "clamp" | "invert" | "max" | "min" | "negate" | "product" | "sum";\ntype CSSNumericBaseType = "angle" | "flex" | "frequency" | "length" | "percent" | "resolution" | "time";\ntype CanPlayTypeResult = "" | "maybe" | "probably";\ntype CanvasDirection = "inherit" | "ltr" | "rtl";\ntype CanvasFillRule = "evenodd" | "nonzero";\ntype CanvasFontKerning = "auto" | "none" | "normal";\ntype CanvasFontStretch = "condensed" | "expanded" | "extra-condensed" | "extra-expanded" | "normal" | "semi-condensed" | "semi-expanded" | "ultra-condensed" | "ultra-expanded";\ntype CanvasFontVariantCaps = "all-petite-caps" | "all-small-caps" | "normal" | "petite-caps" | "small-caps" | "titling-caps" | "unicase";\ntype CanvasLineCap = "butt" | "round" | "square";\ntype CanvasLineJoin = "bevel" | "miter" | "round";\ntype CanvasTextAlign = "center" | "end" | "left" | "right" | "start";\ntype CanvasTextBaseline = "alphabetic" | "bottom" | "hanging" | "ideographic" | "middle" | "top";\ntype CanvasTextRendering = "auto" | "geometricPrecision" | "optimizeLegibility" | "optimizeSpeed";\ntype ChannelCountMode = "clamped-max" | "explicit" | "max";\ntype ChannelInterpretation = "discrete" | "speakers";\ntype ClientTypes = "all" | "sharedworker" | "window" | "worker";\ntype CodecState = "closed" | "configured" | "unconfigured";\ntype ColorGamut = "p3" | "rec2020" | "srgb";\ntype ColorSpaceConversion = "default" | "none";\ntype CompositeOperation = "accumulate" | "add" | "replace";\ntype CompositeOperationOrAuto = "accumulate" | "add" | "auto" | "replace";\ntype CompressionFormat = "deflate" | "deflate-raw" | "gzip";\ntype CredentialMediationRequirement = "conditional" | "optional" | "required" | "silent";\ntype DOMParserSupportedType = "application/xhtml+xml" | "application/xml" | "image/svg+xml" | "text/html" | "text/xml";\ntype DirectionSetting = "" | "lr" | "rl";\ntype DisplayCaptureSurfaceType = "browser" | "monitor" | "window";\ntype DistanceModelType = "exponential" | "inverse" | "linear";\ntype DocumentReadyState = "complete" | "interactive" | "loading";\ntype DocumentVisibilityState = "hidden" | "visible";\ntype EncodedVideoChunkType = "delta" | "key";\ntype EndOfStreamError = "decode" | "network";\ntype EndingType = "native" | "transparent";\ntype FileSystemHandleKind = "directory" | "file";\ntype FillMode = "auto" | "backwards" | "both" | "forwards" | "none";\ntype FontDisplay = "auto" | "block" | "fallback" | "optional" | "swap";\ntype FontFaceLoadStatus = "error" | "loaded" | "loading" | "unloaded";\ntype FontFaceSetLoadStatus = "loaded" | "loading";\ntype FullscreenNavigationUI = "auto" | "hide" | "show";\ntype GamepadHapticActuatorType = "vibration";\ntype GamepadHapticEffectType = "dual-rumble";\ntype GamepadHapticsResult = "complete" | "preempted";\ntype GamepadMappingType = "" | "standard" | "xr-standard";\ntype GlobalCompositeOperation = "color" | "color-burn" | "color-dodge" | "copy" | "darken" | "destination-atop" | "destination-in" | "destination-out" | "destination-over" | "difference" | "exclusion" | "hard-light" | "hue" | "lighten" | "lighter" | "luminosity" | "multiply" | "overlay" | "saturation" | "screen" | "soft-light" | "source-atop" | "source-in" | "source-out" | "source-over" | "xor";\ntype HardwareAcceleration = "no-preference" | "prefer-hardware" | "prefer-software";\ntype HdrMetadataType = "smpteSt2086" | "smpteSt2094-10" | "smpteSt2094-40";\ntype HighlightType = "grammar-error" | "highlight" | "spelling-error";\ntype IDBCursorDirection = "next" | "nextunique" | "prev" | "prevunique";\ntype IDBRequestReadyState = "done" | "pending";\ntype IDBTransactionDurability = "default" | "relaxed" | "strict";\ntype IDBTransactionMode = "readonly" | "readwrite" | "versionchange";\ntype ImageOrientation = "flipY" | "from-image" | "none";\ntype ImageSmoothingQuality = "high" | "low" | "medium";\ntype InsertPosition = "afterbegin" | "afterend" | "beforebegin" | "beforeend";\ntype IterationCompositeOperation = "accumulate" | "replace";\ntype KeyFormat = "jwk" | "pkcs8" | "raw" | "spki";\ntype KeyType = "private" | "public" | "secret";\ntype KeyUsage = "decrypt" | "deriveBits" | "deriveKey" | "encrypt" | "sign" | "unwrapKey" | "verify" | "wrapKey";\ntype LatencyMode = "quality" | "realtime";\ntype LineAlignSetting = "center" | "end" | "start";\ntype LockMode = "exclusive" | "shared";\ntype MIDIPortConnectionState = "closed" | "open" | "pending";\ntype MIDIPortDeviceState = "connected" | "disconnected";\ntype MIDIPortType = "input" | "output";\ntype MediaDecodingType = "file" | "media-source" | "webrtc";\ntype MediaDeviceKind = "audioinput" | "audiooutput" | "videoinput";\ntype MediaEncodingType = "record" | "webrtc";\ntype MediaKeyMessageType = "individualization-request" | "license-release" | "license-renewal" | "license-request";\ntype MediaKeySessionClosedReason = "closed-by-application" | "hardware-context-reset" | "internal-error" | "release-acknowledged" | "resource-evicted";\ntype MediaKeySessionType = "persistent-license" | "temporary";\ntype MediaKeyStatus = "expired" | "internal-error" | "output-downscaled" | "output-restricted" | "released" | "status-pending" | "usable" | "usable-in-future";\ntype MediaKeysRequirement = "not-allowed" | "optional" | "required";\ntype MediaSessionAction = "nexttrack" | "pause" | "play" | "previoustrack" | "seekbackward" | "seekforward" | "seekto" | "skipad" | "stop";\ntype MediaSessionPlaybackState = "none" | "paused" | "playing";\ntype MediaStreamTrackState = "ended" | "live";\ntype NavigationTimingType = "back_forward" | "navigate" | "prerender" | "reload";\ntype NotificationDirection = "auto" | "ltr" | "rtl";\ntype NotificationPermission = "default" | "denied" | "granted";\ntype OffscreenRenderingContextId = "2d" | "bitmaprenderer" | "webgl" | "webgl2" | "webgpu";\ntype OrientationType = "landscape-primary" | "landscape-secondary" | "portrait-primary" | "portrait-secondary";\ntype OscillatorType = "custom" | "sawtooth" | "sine" | "square" | "triangle";\ntype OverSampleType = "2x" | "4x" | "none";\ntype PanningModelType = "HRTF" | "equalpower";\ntype PaymentComplete = "fail" | "success" | "unknown";\ntype PermissionName = "geolocation" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock" | "xr-spatial-tracking";\ntype PermissionState = "denied" | "granted" | "prompt";\ntype PlaybackDirection = "alternate" | "alternate-reverse" | "normal" | "reverse";\ntype PositionAlignSetting = "auto" | "center" | "line-left" | "line-right";\ntype PredefinedColorSpace = "display-p3" | "srgb";\ntype PremultiplyAlpha = "default" | "none" | "premultiply";\ntype PresentationStyle = "attachment" | "inline" | "unspecified";\ntype PublicKeyCredentialType = "public-key";\ntype PushEncryptionKeyName = "auth" | "p256dh";\ntype RTCBundlePolicy = "balanced" | "max-bundle" | "max-compat";\ntype RTCDataChannelState = "closed" | "closing" | "connecting" | "open";\ntype RTCDegradationPreference = "balanced" | "maintain-framerate" | "maintain-resolution";\ntype RTCDtlsTransportState = "closed" | "connected" | "connecting" | "failed" | "new";\ntype RTCEncodedVideoFrameType = "delta" | "empty" | "key";\ntype RTCErrorDetailType = "data-channel-failure" | "dtls-failure" | "fingerprint-failure" | "hardware-encoder-error" | "hardware-encoder-not-available" | "sctp-failure" | "sdp-syntax-error";\ntype RTCIceCandidateType = "host" | "prflx" | "relay" | "srflx";\ntype RTCIceComponent = "rtcp" | "rtp";\ntype RTCIceConnectionState = "checking" | "closed" | "completed" | "connected" | "disconnected" | "failed" | "new";\ntype RTCIceGathererState = "complete" | "gathering" | "new";\ntype RTCIceGatheringState = "complete" | "gathering" | "new";\ntype RTCIceProtocol = "tcp" | "udp";\ntype RTCIceTcpCandidateType = "active" | "passive" | "so";\ntype RTCIceTransportPolicy = "all" | "relay";\ntype RTCIceTransportState = "checking" | "closed" | "completed" | "connected" | "disconnected" | "failed" | "new";\ntype RTCPeerConnectionState = "closed" | "connected" | "connecting" | "disconnected" | "failed" | "new";\ntype RTCPriorityType = "high" | "low" | "medium" | "very-low";\ntype RTCRtcpMuxPolicy = "require";\ntype RTCRtpTransceiverDirection = "inactive" | "recvonly" | "sendonly" | "sendrecv" | "stopped";\ntype RTCSctpTransportState = "closed" | "connected" | "connecting";\ntype RTCSdpType = "answer" | "offer" | "pranswer" | "rollback";\ntype RTCSignalingState = "closed" | "have-local-offer" | "have-local-pranswer" | "have-remote-offer" | "have-remote-pranswer" | "stable";\ntype RTCStatsIceCandidatePairState = "failed" | "frozen" | "in-progress" | "inprogress" | "succeeded" | "waiting";\ntype RTCStatsType = "candidate-pair" | "certificate" | "codec" | "data-channel" | "inbound-rtp" | "local-candidate" | "media-playout" | "media-source" | "outbound-rtp" | "peer-connection" | "remote-candidate" | "remote-inbound-rtp" | "remote-outbound-rtp" | "transport";\ntype ReadableStreamReaderMode = "byob";\ntype ReadableStreamType = "bytes";\ntype ReadyState = "closed" | "ended" | "open";\ntype RecordingState = "inactive" | "paused" | "recording";\ntype ReferrerPolicy = "" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";\ntype RemotePlaybackState = "connected" | "connecting" | "disconnected";\ntype RequestCache = "default" | "force-cache" | "no-cache" | "no-store" | "only-if-cached" | "reload";\ntype RequestCredentials = "include" | "omit" | "same-origin";\ntype RequestDestination = "" | "audio" | "audioworklet" | "document" | "embed" | "font" | "frame" | "iframe" | "image" | "manifest" | "object" | "paintworklet" | "report" | "script" | "sharedworker" | "style" | "track" | "video" | "worker" | "xslt";\ntype RequestMode = "cors" | "navigate" | "no-cors" | "same-origin";\ntype RequestPriority = "auto" | "high" | "low";\ntype RequestRedirect = "error" | "follow" | "manual";\ntype ResidentKeyRequirement = "discouraged" | "preferred" | "required";\ntype ResizeObserverBoxOptions = "border-box" | "content-box" | "device-pixel-content-box";\ntype ResizeQuality = "high" | "low" | "medium" | "pixelated";\ntype ResponseType = "basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect";\ntype ScrollBehavior = "auto" | "instant" | "smooth";\ntype ScrollLogicalPosition = "center" | "end" | "nearest" | "start";\ntype ScrollRestoration = "auto" | "manual";\ntype ScrollSetting = "" | "up";\ntype SecurityPolicyViolationEventDisposition = "enforce" | "report";\ntype SelectionMode = "end" | "preserve" | "select" | "start";\ntype ServiceWorkerState = "activated" | "activating" | "installed" | "installing" | "parsed" | "redundant";\ntype ServiceWorkerUpdateViaCache = "all" | "imports" | "none";\ntype ShadowRootMode = "closed" | "open";\ntype SlotAssignmentMode = "manual" | "named";\ntype SpeechSynthesisErrorCode = "audio-busy" | "audio-hardware" | "canceled" | "interrupted" | "invalid-argument" | "language-unavailable" | "network" | "not-allowed" | "synthesis-failed" | "synthesis-unavailable" | "text-too-long" | "voice-unavailable";\ntype TextTrackKind = "captions" | "chapters" | "descriptions" | "metadata" | "subtitles";\ntype TextTrackMode = "disabled" | "hidden" | "showing";\ntype TouchType = "direct" | "stylus";\ntype TransferFunction = "hlg" | "pq" | "srgb";\ntype UserVerificationRequirement = "discouraged" | "preferred" | "required";\ntype VideoColorPrimaries = "bt470bg" | "bt709" | "smpte170m";\ntype VideoEncoderBitrateMode = "constant" | "quantizer" | "variable";\ntype VideoFacingModeEnum = "environment" | "left" | "right" | "user";\ntype VideoMatrixCoefficients = "bt470bg" | "bt709" | "rgb" | "smpte170m";\ntype VideoPixelFormat = "BGRA" | "BGRX" | "I420" | "I420A" | "I422" | "I444" | "NV12" | "RGBA" | "RGBX";\ntype VideoTransferCharacteristics = "bt709" | "iec61966-2-1" | "smpte170m";\ntype WakeLockType = "screen";\ntype WebGLPowerPreference = "default" | "high-performance" | "low-power";\ntype WebTransportCongestionControl = "default" | "low-latency" | "throughput";\ntype WebTransportErrorSource = "session" | "stream";\ntype WorkerType = "classic" | "module";\ntype WriteCommandType = "seek" | "truncate" | "write";\ntype XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text";\n', + 'lib.dom.iterable.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/////////////////////////////\n/// Window Iterable APIs\n/////////////////////////////\n\ninterface AudioParam {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setValueCurveAtTime) */\n setValueCurveAtTime(values: Iterable<number>, startTime: number, duration: number): AudioParam;\n}\n\ninterface AudioParamMap extends ReadonlyMap<string, AudioParam> {\n}\n\ninterface BaseAudioContext {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createIIRFilter) */\n createIIRFilter(feedforward: Iterable<number>, feedback: Iterable<number>): IIRFilterNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPeriodicWave) */\n createPeriodicWave(real: Iterable<number>, imag: Iterable<number>, constraints?: PeriodicWaveConstraints): PeriodicWave;\n}\n\ninterface CSSKeyframesRule {\n [Symbol.iterator](): IterableIterator<CSSKeyframeRule>;\n}\n\ninterface CSSNumericArray {\n [Symbol.iterator](): IterableIterator<CSSNumericValue>;\n entries(): IterableIterator<[number, CSSNumericValue]>;\n keys(): IterableIterator<number>;\n values(): IterableIterator<CSSNumericValue>;\n}\n\ninterface CSSRuleList {\n [Symbol.iterator](): IterableIterator<CSSRule>;\n}\n\ninterface CSSStyleDeclaration {\n [Symbol.iterator](): IterableIterator<string>;\n}\n\ninterface CSSTransformValue {\n [Symbol.iterator](): IterableIterator<CSSTransformComponent>;\n entries(): IterableIterator<[number, CSSTransformComponent]>;\n keys(): IterableIterator<number>;\n values(): IterableIterator<CSSTransformComponent>;\n}\n\ninterface CSSUnparsedValue {\n [Symbol.iterator](): IterableIterator<CSSUnparsedSegment>;\n entries(): IterableIterator<[number, CSSUnparsedSegment]>;\n keys(): IterableIterator<number>;\n values(): IterableIterator<CSSUnparsedSegment>;\n}\n\ninterface Cache {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/addAll) */\n addAll(requests: Iterable<RequestInfo>): Promise<void>;\n}\n\ninterface CanvasPath {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/roundRect) */\n roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | Iterable<number | DOMPointInit>): void;\n}\n\ninterface CanvasPathDrawingStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash) */\n setLineDash(segments: Iterable<number>): void;\n}\n\ninterface DOMRectList {\n [Symbol.iterator](): IterableIterator<DOMRect>;\n}\n\ninterface DOMStringList {\n [Symbol.iterator](): IterableIterator<string>;\n}\n\ninterface DOMTokenList {\n [Symbol.iterator](): IterableIterator<string>;\n entries(): IterableIterator<[number, string]>;\n keys(): IterableIterator<number>;\n values(): IterableIterator<string>;\n}\n\ninterface DataTransferItemList {\n [Symbol.iterator](): IterableIterator<DataTransferItem>;\n}\n\ninterface EventCounts extends ReadonlyMap<string, number> {\n}\n\ninterface FileList {\n [Symbol.iterator](): IterableIterator<File>;\n}\n\ninterface FontFaceSet extends Set<FontFace> {\n}\n\ninterface FormData {\n [Symbol.iterator](): IterableIterator<[string, FormDataEntryValue]>;\n /** Returns an array of key, value pairs for every entry in the list. */\n entries(): IterableIterator<[string, FormDataEntryValue]>;\n /** Returns a list of keys in the list. */\n keys(): IterableIterator<string>;\n /** Returns a list of values in the list. */\n values(): IterableIterator<FormDataEntryValue>;\n}\n\ninterface HTMLAllCollection {\n [Symbol.iterator](): IterableIterator<Element>;\n}\n\ninterface HTMLCollectionBase {\n [Symbol.iterator](): IterableIterator<Element>;\n}\n\ninterface HTMLCollectionOf<T extends Element> {\n [Symbol.iterator](): IterableIterator<T>;\n}\n\ninterface HTMLFormElement {\n [Symbol.iterator](): IterableIterator<Element>;\n}\n\ninterface HTMLSelectElement {\n [Symbol.iterator](): IterableIterator<HTMLOptionElement>;\n}\n\ninterface Headers {\n [Symbol.iterator](): IterableIterator<[string, string]>;\n /** Returns an iterator allowing to go through all key/value pairs contained in this object. */\n entries(): IterableIterator<[string, string]>;\n /** Returns an iterator allowing to go through all keys of the key/value pairs contained in this object. */\n keys(): IterableIterator<string>;\n /** Returns an iterator allowing to go through all values of the key/value pairs contained in this object. */\n values(): IterableIterator<string>;\n}\n\ninterface Highlight extends Set<AbstractRange> {\n}\n\ninterface HighlightRegistry extends Map<string, Highlight> {\n}\n\ninterface IDBDatabase {\n /**\n * 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.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/transaction)\n */\n transaction(storeNames: string | Iterable<string>, mode?: IDBTransactionMode, options?: IDBTransactionOptions): IDBTransaction;\n}\n\ninterface IDBObjectStore {\n /**\n * 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.\n *\n * Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/createIndex)\n */\n createIndex(name: string, keyPath: string | Iterable<string>, options?: IDBIndexParameters): IDBIndex;\n}\n\ninterface MIDIInputMap extends ReadonlyMap<string, MIDIInput> {\n}\n\ninterface MIDIOutput {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIOutput/send) */\n send(data: Iterable<number>, timestamp?: DOMHighResTimeStamp): void;\n}\n\ninterface MIDIOutputMap extends ReadonlyMap<string, MIDIOutput> {\n}\n\ninterface MediaKeyStatusMap {\n [Symbol.iterator](): IterableIterator<[BufferSource, MediaKeyStatus]>;\n entries(): IterableIterator<[BufferSource, MediaKeyStatus]>;\n keys(): IterableIterator<BufferSource>;\n values(): IterableIterator<MediaKeyStatus>;\n}\n\ninterface MediaList {\n [Symbol.iterator](): IterableIterator<string>;\n}\n\ninterface MessageEvent<T = any> {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/initMessageEvent)\n */\n initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: Iterable<MessagePort>): void;\n}\n\ninterface MimeTypeArray {\n [Symbol.iterator](): IterableIterator<MimeType>;\n}\n\ninterface NamedNodeMap {\n [Symbol.iterator](): IterableIterator<Attr>;\n}\n\ninterface Navigator {\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/requestMediaKeySystemAccess)\n */\n requestMediaKeySystemAccess(keySystem: string, supportedConfigurations: Iterable<MediaKeySystemConfiguration>): Promise<MediaKeySystemAccess>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/vibrate) */\n vibrate(pattern: Iterable<number>): boolean;\n}\n\ninterface NodeList {\n [Symbol.iterator](): IterableIterator<Node>;\n /** Returns an array of key, value pairs for every entry in the list. */\n entries(): IterableIterator<[number, Node]>;\n /** Returns an list of keys in the list. */\n keys(): IterableIterator<number>;\n /** Returns an list of values in the list. */\n values(): IterableIterator<Node>;\n}\n\ninterface NodeListOf<TNode extends Node> {\n [Symbol.iterator](): IterableIterator<TNode>;\n /** Returns an array of key, value pairs for every entry in the list. */\n entries(): IterableIterator<[number, TNode]>;\n /** Returns an list of keys in the list. */\n keys(): IterableIterator<number>;\n /** Returns an list of values in the list. */\n values(): IterableIterator<TNode>;\n}\n\ninterface Plugin {\n [Symbol.iterator](): IterableIterator<MimeType>;\n}\n\ninterface PluginArray {\n [Symbol.iterator](): IterableIterator<Plugin>;\n}\n\ninterface RTCRtpTransceiver {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/setCodecPreferences) */\n setCodecPreferences(codecs: Iterable<RTCRtpCodecCapability>): void;\n}\n\ninterface RTCStatsReport extends ReadonlyMap<string, any> {\n}\n\ninterface SVGLengthList {\n [Symbol.iterator](): IterableIterator<SVGLength>;\n}\n\ninterface SVGNumberList {\n [Symbol.iterator](): IterableIterator<SVGNumber>;\n}\n\ninterface SVGPointList {\n [Symbol.iterator](): IterableIterator<DOMPoint>;\n}\n\ninterface SVGStringList {\n [Symbol.iterator](): IterableIterator<string>;\n}\n\ninterface SVGTransformList {\n [Symbol.iterator](): IterableIterator<SVGTransform>;\n}\n\ninterface SourceBufferList {\n [Symbol.iterator](): IterableIterator<SourceBuffer>;\n}\n\ninterface SpeechRecognitionResult {\n [Symbol.iterator](): IterableIterator<SpeechRecognitionAlternative>;\n}\n\ninterface SpeechRecognitionResultList {\n [Symbol.iterator](): IterableIterator<SpeechRecognitionResult>;\n}\n\ninterface StylePropertyMapReadOnly {\n [Symbol.iterator](): IterableIterator<[string, Iterable<CSSStyleValue>]>;\n entries(): IterableIterator<[string, Iterable<CSSStyleValue>]>;\n keys(): IterableIterator<string>;\n values(): IterableIterator<Iterable<CSSStyleValue>>;\n}\n\ninterface StyleSheetList {\n [Symbol.iterator](): IterableIterator<CSSStyleSheet>;\n}\n\ninterface SubtleCrypto {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveKey) */\n deriveKey(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/generateKey) */\n generateKey(algorithm: "Ed25519", extractable: boolean, keyUsages: ReadonlyArray<"sign" | "verify">): Promise<CryptoKeyPair>;\n generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;\n generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;\n generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKeyPair | CryptoKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/importKey) */\n importKey(format: "jwk", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;\n importKey(format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/unwrapKey) */\n unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKey>;\n}\n\ninterface TextTrackCueList {\n [Symbol.iterator](): IterableIterator<TextTrackCue>;\n}\n\ninterface TextTrackList {\n [Symbol.iterator](): IterableIterator<TextTrack>;\n}\n\ninterface TouchList {\n [Symbol.iterator](): IterableIterator<Touch>;\n}\n\ninterface URLSearchParams {\n [Symbol.iterator](): IterableIterator<[string, string]>;\n /** Returns an array of key, value pairs for every entry in the search params. */\n entries(): IterableIterator<[string, string]>;\n /** Returns a list of keys in the search params. */\n keys(): IterableIterator<string>;\n /** Returns a list of values in the search params. */\n values(): IterableIterator<string>;\n}\n\ninterface WEBGL_draw_buffers {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_draw_buffers/drawBuffersWEBGL) */\n drawBuffersWEBGL(buffers: Iterable<GLenum>): void;\n}\n\ninterface WEBGL_multi_draw {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysInstancedWEBGL) */\n multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | Iterable<GLint>, firstsOffset: number, countsList: Int32Array | Iterable<GLsizei>, countsOffset: number, instanceCountsList: Int32Array | Iterable<GLsizei>, instanceCountsOffset: number, drawcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysWEBGL) */\n multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | Iterable<GLint>, firstsOffset: number, countsList: Int32Array | Iterable<GLsizei>, countsOffset: number, drawcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsInstancedWEBGL) */\n multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | Iterable<GLsizei>, countsOffset: number, type: GLenum, offsetsList: Int32Array | Iterable<GLsizei>, offsetsOffset: number, instanceCountsList: Int32Array | Iterable<GLsizei>, instanceCountsOffset: number, drawcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsWEBGL) */\n multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | Iterable<GLsizei>, countsOffset: number, type: GLenum, offsetsList: Int32Array | Iterable<GLsizei>, offsetsOffset: number, drawcount: GLsizei): void;\n}\n\ninterface WebGL2RenderingContextBase {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLfloat>, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLint>, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLuint>, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawBuffers) */\n drawBuffers(buffers: Iterable<GLenum>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniforms) */\n getActiveUniforms(program: WebGLProgram, uniformIndices: Iterable<GLuint>, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getUniformIndices) */\n getUniformIndices(program: WebGLProgram, uniformNames: Iterable<string>): Iterable<GLuint> | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateFramebuffer) */\n invalidateFramebuffer(target: GLenum, attachments: Iterable<GLenum>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateSubFramebuffer) */\n invalidateSubFramebuffer(target: GLenum, attachments: Iterable<GLenum>, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/transformFeedbackVaryings) */\n transformFeedbackVaryings(program: WebGLProgram, varyings: Iterable<string>, bufferMode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform1uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform2uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform3uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform4uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4iv(index: GLuint, values: Iterable<GLint>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4uiv(index: GLuint, values: Iterable<GLuint>): void;\n}\n\ninterface WebGL2RenderingContextOverloads {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n}\n\ninterface WebGLRenderingContextBase {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib1fv(index: GLuint, values: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib2fv(index: GLuint, values: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib3fv(index: GLuint, values: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib4fv(index: GLuint, values: Iterable<GLfloat>): void;\n}\n\ninterface WebGLRenderingContextOverloads {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;\n}\n', + 'lib.es2015.collection.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface Map<K, V> {\n clear(): void;\n /**\n * @returns true if an element in the Map existed and has been removed, or false if the element does not exist.\n */\n delete(key: K): boolean;\n /**\n * Executes a provided function once per each key/value pair in the Map, in insertion order.\n */\n forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void;\n /**\n * Returns a specified element from the Map object. If the value that is associated to the provided key is an object, then you will get a reference to that object and any change made to that object will effectively modify it inside the Map.\n * @returns Returns the element associated with the specified key. If no element is associated with the specified key, undefined is returned.\n */\n get(key: K): V | undefined;\n /**\n * @returns boolean indicating whether an element with the specified key exists or not.\n */\n has(key: K): boolean;\n /**\n * Adds a new element with a specified key and value to the Map. If an element with the same key already exists, the element will be updated.\n */\n set(key: K, value: V): this;\n /**\n * @returns the number of elements in the Map.\n */\n readonly size: number;\n}\n\ninterface MapConstructor {\n new (): Map<any, any>;\n new <K, V>(entries?: readonly (readonly [K, V])[] | null): Map<K, V>;\n readonly prototype: Map<any, any>;\n}\ndeclare var Map: MapConstructor;\n\ninterface ReadonlyMap<K, V> {\n forEach(callbackfn: (value: V, key: K, map: ReadonlyMap<K, V>) => void, thisArg?: any): void;\n get(key: K): V | undefined;\n has(key: K): boolean;\n readonly size: number;\n}\n\ninterface WeakMap<K extends WeakKey, V> {\n /**\n * Removes the specified element from the WeakMap.\n * @returns true if the element was successfully removed, or false if it was not present.\n */\n delete(key: K): boolean;\n /**\n * @returns a specified element.\n */\n get(key: K): V | undefined;\n /**\n * @returns a boolean indicating whether an element with the specified key exists or not.\n */\n has(key: K): boolean;\n /**\n * Adds a new element with a specified key and value.\n * @param key Must be an object or symbol.\n */\n set(key: K, value: V): this;\n}\n\ninterface WeakMapConstructor {\n new <K extends WeakKey = WeakKey, V = any>(entries?: readonly (readonly [K, V])[] | null): WeakMap<K, V>;\n readonly prototype: WeakMap<WeakKey, any>;\n}\ndeclare var WeakMap: WeakMapConstructor;\n\ninterface Set<T> {\n /**\n * Appends a new element with a specified value to the end of the Set.\n */\n add(value: T): this;\n\n clear(): void;\n /**\n * Removes a specified value from the Set.\n * @returns Returns true if an element in the Set existed and has been removed, or false if the element does not exist.\n */\n delete(value: T): boolean;\n /**\n * Executes a provided function once per each value in the Set object, in insertion order.\n */\n forEach(callbackfn: (value: T, value2: T, set: Set<T>) => void, thisArg?: any): void;\n /**\n * @returns a boolean indicating whether an element with the specified value exists in the Set or not.\n */\n has(value: T): boolean;\n /**\n * @returns the number of (unique) elements in Set.\n */\n readonly size: number;\n}\n\ninterface SetConstructor {\n new <T = any>(values?: readonly T[] | null): Set<T>;\n readonly prototype: Set<any>;\n}\ndeclare var Set: SetConstructor;\n\ninterface ReadonlySet<T> {\n forEach(callbackfn: (value: T, value2: T, set: ReadonlySet<T>) => void, thisArg?: any): void;\n has(value: T): boolean;\n readonly size: number;\n}\n\ninterface WeakSet<T extends WeakKey> {\n /**\n * Appends a new value to the end of the WeakSet.\n */\n add(value: T): this;\n /**\n * Removes the specified element from the WeakSet.\n * @returns Returns true if the element existed and has been removed, or false if the element does not exist.\n */\n delete(value: T): boolean;\n /**\n * @returns a boolean indicating whether a value exists in the WeakSet or not.\n */\n has(value: T): boolean;\n}\n\ninterface WeakSetConstructor {\n new <T extends WeakKey = WeakKey>(values?: readonly T[] | null): WeakSet<T>;\n readonly prototype: WeakSet<WeakKey>;\n}\ndeclare var WeakSet: WeakSetConstructor;\n', + 'lib.es2015.core.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface Array<T> {\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find<S extends T>(predicate: (value: T, index: number, obj: T[]) => value is S, thisArg?: any): S | undefined;\n find(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): number;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: T, start?: number, end?: number): this;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n}\n\ninterface ArrayConstructor {\n /**\n * Creates an array from an array-like object.\n * @param arrayLike An array-like object to convert to an array.\n */\n from<T>(arrayLike: ArrayLike<T>): T[];\n\n /**\n * Creates an array from an iterable object.\n * @param arrayLike An array-like object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of \'this\' used to invoke the mapfn.\n */\n from<T, U>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of<T>(...items: T[]): T[];\n}\n\ninterface DateConstructor {\n new (value: number | string | Date): Date;\n}\n\ninterface Function {\n /**\n * Returns the name of the function. Function names are read-only and can not be changed.\n */\n readonly name: string;\n}\n\ninterface Math {\n /**\n * Returns the number of leading zero bits in the 32-bit binary representation of a number.\n * @param x A numeric expression.\n */\n clz32(x: number): number;\n\n /**\n * Returns the result of 32-bit multiplication of two numbers.\n * @param x First number\n * @param y Second number\n */\n imul(x: number, y: number): number;\n\n /**\n * Returns the sign of the x, indicating whether x is positive, negative or zero.\n * @param x The numeric expression to test\n */\n sign(x: number): number;\n\n /**\n * Returns the base 10 logarithm of a number.\n * @param x A numeric expression.\n */\n log10(x: number): number;\n\n /**\n * Returns the base 2 logarithm of a number.\n * @param x A numeric expression.\n */\n log2(x: number): number;\n\n /**\n * Returns the natural logarithm of 1 + x.\n * @param x A numeric expression.\n */\n log1p(x: number): number;\n\n /**\n * Returns the result of (e^x - 1), which is an implementation-dependent approximation to\n * subtracting 1 from the exponential function of x (e raised to the power of x, where e\n * is the base of the natural logarithms).\n * @param x A numeric expression.\n */\n expm1(x: number): number;\n\n /**\n * Returns the hyperbolic cosine of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n cosh(x: number): number;\n\n /**\n * Returns the hyperbolic sine of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n sinh(x: number): number;\n\n /**\n * Returns the hyperbolic tangent of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n tanh(x: number): number;\n\n /**\n * Returns the inverse hyperbolic cosine of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n acosh(x: number): number;\n\n /**\n * Returns the inverse hyperbolic sine of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n asinh(x: number): number;\n\n /**\n * Returns the inverse hyperbolic tangent of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n atanh(x: number): number;\n\n /**\n * Returns the square root of the sum of squares of its arguments.\n * @param values Values to compute the square root for.\n * If no arguments are passed, the result is +0.\n * If there is only one argument, the result is the absolute value.\n * If any argument is +Infinity or -Infinity, the result is +Infinity.\n * If any argument is NaN, the result is NaN.\n * If all arguments are either +0 or −0, the result is +0.\n */\n hypot(...values: number[]): number;\n\n /**\n * Returns the integral part of the a numeric expression, x, removing any fractional digits.\n * If x is already an integer, the result is x.\n * @param x A numeric expression.\n */\n trunc(x: number): number;\n\n /**\n * Returns the nearest single precision float representation of a number.\n * @param x A numeric expression.\n */\n fround(x: number): number;\n\n /**\n * Returns an implementation-dependent approximation to the cube root of number.\n * @param x A numeric expression.\n */\n cbrt(x: number): number;\n}\n\ninterface NumberConstructor {\n /**\n * The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1\n * that is representable as a Number value, which is approximately:\n * 2.2204460492503130808472633361816 x 10−16.\n */\n readonly EPSILON: number;\n\n /**\n * Returns true if passed value is finite.\n * Unlike the global isFinite, Number.isFinite doesn\'t forcibly convert the parameter to a\n * number. Only finite values of the type number, result in true.\n * @param number A numeric value.\n */\n isFinite(number: unknown): boolean;\n\n /**\n * Returns true if the value passed is an integer, false otherwise.\n * @param number A numeric value.\n */\n isInteger(number: unknown): boolean;\n\n /**\n * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a\n * number). Unlike the global isNaN(), Number.isNaN() doesn\'t forcefully convert the parameter\n * to a number. Only values of the type number, that are also NaN, result in true.\n * @param number A numeric value.\n */\n isNaN(number: unknown): boolean;\n\n /**\n * Returns true if the value passed is a safe integer.\n * @param number A numeric value.\n */\n isSafeInteger(number: unknown): boolean;\n\n /**\n * The value of the largest integer n such that n and n + 1 are both exactly representable as\n * a Number value.\n * The value of Number.MAX_SAFE_INTEGER is 9007199254740991 2^53 − 1.\n */\n readonly MAX_SAFE_INTEGER: number;\n\n /**\n * The value of the smallest integer n such that n and n − 1 are both exactly representable as\n * a Number value.\n * The value of Number.MIN_SAFE_INTEGER is −9007199254740991 (−(2^53 − 1)).\n */\n readonly MIN_SAFE_INTEGER: number;\n\n /**\n * Converts a string to a floating-point number.\n * @param string A string that contains a floating-point number.\n */\n parseFloat(string: string): number;\n\n /**\n * Converts A string to an integer.\n * @param string A string to convert into a number.\n * @param radix A value between 2 and 36 that specifies the base of the number in `string`.\n * If this argument is not supplied, strings with a prefix of \'0x\' are considered hexadecimal.\n * All other strings are considered decimal.\n */\n parseInt(string: string, radix?: number): number;\n}\n\ninterface ObjectConstructor {\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source The source object from which to copy properties.\n */\n assign<T extends {}, U>(target: T, source: U): T & U;\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source1 The first source object from which to copy properties.\n * @param source2 The second source object from which to copy properties.\n */\n assign<T extends {}, U, V>(target: T, source1: U, source2: V): T & U & V;\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source1 The first source object from which to copy properties.\n * @param source2 The second source object from which to copy properties.\n * @param source3 The third source object from which to copy properties.\n */\n assign<T extends {}, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param sources One or more source objects from which to copy properties\n */\n assign(target: object, ...sources: any[]): any;\n\n /**\n * Returns an array of all symbol properties found directly on object o.\n * @param o Object to retrieve the symbols from.\n */\n getOwnPropertySymbols(o: any): symbol[];\n\n /**\n * Returns the names of the enumerable string properties and methods of an object.\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n keys(o: {}): string[];\n\n /**\n * Returns true if the values are the same value, false otherwise.\n * @param value1 The first value.\n * @param value2 The second value.\n */\n is(value1: any, value2: any): boolean;\n\n /**\n * Sets the prototype of a specified object o to object proto or null. Returns the object o.\n * @param o The object to change its prototype.\n * @param proto The value of the new prototype or null.\n */\n setPrototypeOf(o: any, proto: object | null): any;\n}\n\ninterface ReadonlyArray<T> {\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find<S extends T>(predicate: (value: T, index: number, obj: readonly T[]) => value is S, thisArg?: any): S | undefined;\n find(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): T | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: T, index: number, obj: readonly T[]) => unknown, thisArg?: any): number;\n}\n\ninterface RegExp {\n /**\n * Returns a string indicating the flags of the regular expression in question. This field is read-only.\n * The characters in this string are sequenced and concatenated in the following order:\n *\n * - "g" for global\n * - "i" for ignoreCase\n * - "m" for multiline\n * - "u" for unicode\n * - "y" for sticky\n *\n * If no flags are set, the value is the empty string.\n */\n readonly flags: string;\n\n /**\n * Returns a Boolean value indicating the state of the sticky flag (y) used with a regular\n * expression. Default is false. Read-only.\n */\n readonly sticky: boolean;\n\n /**\n * Returns a Boolean value indicating the state of the Unicode flag (u) used with a regular\n * expression. Default is false. Read-only.\n */\n readonly unicode: boolean;\n}\n\ninterface RegExpConstructor {\n new (pattern: RegExp | string, flags?: string): RegExp;\n (pattern: RegExp | string, flags?: string): RegExp;\n}\n\ninterface String {\n /**\n * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point\n * value of the UTF-16 encoded code point starting at the string element at position pos in\n * the String resulting from converting this object to a String.\n * If there is no element at that position, the result is undefined.\n * If a valid UTF-16 surrogate pair does not begin at pos, the result is the code unit at pos.\n */\n codePointAt(pos: number): number | undefined;\n\n /**\n * Returns true if searchString appears as a substring of the result of converting this\n * object to a String, at one or more positions that are\n * greater than or equal to position; otherwise, returns false.\n * @param searchString search string\n * @param position If position is undefined, 0 is assumed, so as to search all of the String.\n */\n includes(searchString: string, position?: number): boolean;\n\n /**\n * Returns true if the sequence of elements of searchString converted to a String is the\n * same as the corresponding elements of this object (converted to a String) starting at\n * endPosition – length(this). Otherwise returns false.\n */\n endsWith(searchString: string, endPosition?: number): boolean;\n\n /**\n * Returns the String value result of normalizing the string into the normalization form\n * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.\n * @param form Applicable values: "NFC", "NFD", "NFKC", or "NFKD", If not specified default\n * is "NFC"\n */\n normalize(form: "NFC" | "NFD" | "NFKC" | "NFKD"): string;\n\n /**\n * Returns the String value result of normalizing the string into the normalization form\n * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms.\n * @param form Applicable values: "NFC", "NFD", "NFKC", or "NFKD", If not specified default\n * is "NFC"\n */\n normalize(form?: string): string;\n\n /**\n * Returns a String value that is made from count copies appended together. If count is 0,\n * the empty string is returned.\n * @param count number of copies to append\n */\n repeat(count: number): string;\n\n /**\n * Returns true if the sequence of elements of searchString converted to a String is the\n * same as the corresponding elements of this object (converted to a String) starting at\n * position. Otherwise returns false.\n */\n startsWith(searchString: string, position?: number): boolean;\n\n /**\n * Returns an `<a>` HTML anchor element and sets the name attribute to the text value\n * @deprecated A legacy feature for browser compatibility\n * @param name\n */\n anchor(name: string): string;\n\n /**\n * Returns a `<big>` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n big(): string;\n\n /**\n * Returns a `<blink>` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n blink(): string;\n\n /**\n * Returns a `<b>` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n bold(): string;\n\n /**\n * Returns a `<tt>` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n fixed(): string;\n\n /**\n * Returns a `<font>` HTML element and sets the color attribute value\n * @deprecated A legacy feature for browser compatibility\n */\n fontcolor(color: string): string;\n\n /**\n * Returns a `<font>` HTML element and sets the size attribute value\n * @deprecated A legacy feature for browser compatibility\n */\n fontsize(size: number): string;\n\n /**\n * Returns a `<font>` HTML element and sets the size attribute value\n * @deprecated A legacy feature for browser compatibility\n */\n fontsize(size: string): string;\n\n /**\n * Returns an `<i>` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n italics(): string;\n\n /**\n * Returns an `<a>` HTML element and sets the href attribute value\n * @deprecated A legacy feature for browser compatibility\n */\n link(url: string): string;\n\n /**\n * Returns a `<small>` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n small(): string;\n\n /**\n * Returns a `<strike>` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n strike(): string;\n\n /**\n * Returns a `<sub>` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n sub(): string;\n\n /**\n * Returns a `<sup>` HTML element\n * @deprecated A legacy feature for browser compatibility\n */\n sup(): string;\n}\n\ninterface StringConstructor {\n /**\n * Return the String value whose elements are, in order, the elements in the List elements.\n * If length is 0, the empty string is returned.\n */\n fromCodePoint(...codePoints: number[]): string;\n\n /**\n * String.raw is usually used as a tag function of a Tagged Template String. When called as\n * such, the first argument will be a well formed template call site object and the rest\n * parameter will contain the substitution values. It can also be called directly, for example,\n * to interleave strings and values from your own tag function, and in this case the only thing\n * it needs from the first argument is the raw property.\n * @param template A well-formed template string call site representation.\n * @param substitutions A set of substitution values.\n */\n raw(template: { raw: readonly string[] | ArrayLike<string>; }, ...substitutions: any[]): string;\n}\n', + 'lib.es2015.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es5" />\n/// <reference lib="es2015.core" />\n/// <reference lib="es2015.collection" />\n/// <reference lib="es2015.iterable" />\n/// <reference lib="es2015.generator" />\n/// <reference lib="es2015.promise" />\n/// <reference lib="es2015.proxy" />\n/// <reference lib="es2015.reflect" />\n/// <reference lib="es2015.symbol" />\n/// <reference lib="es2015.symbol.wellknown" />\n', + 'lib.es2015.generator.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2015.iterable" />\n\ninterface Generator<T = unknown, TReturn = any, TNext = unknown> extends Iterator<T, TReturn, TNext> {\n // NOTE: \'next\' is defined using a tuple to ensure we report the correct assignability errors in all places.\n next(...args: [] | [TNext]): IteratorResult<T, TReturn>;\n return(value: TReturn): IteratorResult<T, TReturn>;\n throw(e: any): IteratorResult<T, TReturn>;\n [Symbol.iterator](): Generator<T, TReturn, TNext>;\n}\n\ninterface GeneratorFunction {\n /**\n * Creates a new Generator object.\n * @param args A list of arguments the function accepts.\n */\n new (...args: any[]): Generator;\n /**\n * Creates a new Generator object.\n * @param args A list of arguments the function accepts.\n */\n (...args: any[]): Generator;\n /**\n * The length of the arguments.\n */\n readonly length: number;\n /**\n * Returns the name of the function.\n */\n readonly name: string;\n /**\n * A reference to the prototype.\n */\n readonly prototype: Generator;\n}\n\ninterface GeneratorFunctionConstructor {\n /**\n * Creates a new Generator function.\n * @param args A list of arguments the function accepts.\n */\n new (...args: string[]): GeneratorFunction;\n /**\n * Creates a new Generator function.\n * @param args A list of arguments the function accepts.\n */\n (...args: string[]): GeneratorFunction;\n /**\n * The length of the arguments.\n */\n readonly length: number;\n /**\n * Returns the name of the function.\n */\n readonly name: string;\n /**\n * A reference to the prototype.\n */\n readonly prototype: GeneratorFunction;\n}\n', + 'lib.es2015.iterable.d.ts': + "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib=\"true\"/>\n\n/// <reference lib=\"es2015.symbol\" />\n\ninterface SymbolConstructor {\n /**\n * A method that returns the default iterator for an object. Called by the semantics of the\n * for-of statement.\n */\n readonly iterator: unique symbol;\n}\n\ninterface IteratorYieldResult<TYield> {\n done?: false;\n value: TYield;\n}\n\ninterface IteratorReturnResult<TReturn> {\n done: true;\n value: TReturn;\n}\n\ntype IteratorResult<T, TReturn = any> = IteratorYieldResult<T> | IteratorReturnResult<TReturn>;\n\ninterface Iterator<T, TReturn = any, TNext = undefined> {\n // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.\n next(...args: [] | [TNext]): IteratorResult<T, TReturn>;\n return?(value?: TReturn): IteratorResult<T, TReturn>;\n throw?(e?: any): IteratorResult<T, TReturn>;\n}\n\ninterface Iterable<T> {\n [Symbol.iterator](): Iterator<T>;\n}\n\ninterface IterableIterator<T> extends Iterator<T> {\n [Symbol.iterator](): IterableIterator<T>;\n}\n\ninterface Array<T> {\n /** Iterator */\n [Symbol.iterator](): IterableIterator<T>;\n\n /**\n * Returns an iterable of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, T]>;\n\n /**\n * Returns an iterable of keys in the array\n */\n keys(): IterableIterator<number>;\n\n /**\n * Returns an iterable of values in the array\n */\n values(): IterableIterator<T>;\n}\n\ninterface ArrayConstructor {\n /**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n */\n from<T>(iterable: Iterable<T> | ArrayLike<T>): T[];\n\n /**\n * Creates an array from an iterable object.\n * @param iterable An iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[];\n}\n\ninterface ReadonlyArray<T> {\n /** Iterator of values in the array. */\n [Symbol.iterator](): IterableIterator<T>;\n\n /**\n * Returns an iterable of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, T]>;\n\n /**\n * Returns an iterable of keys in the array\n */\n keys(): IterableIterator<number>;\n\n /**\n * Returns an iterable of values in the array\n */\n values(): IterableIterator<T>;\n}\n\ninterface IArguments {\n /** Iterator */\n [Symbol.iterator](): IterableIterator<any>;\n}\n\ninterface Map<K, V> {\n /** Returns an iterable of entries in the map. */\n [Symbol.iterator](): IterableIterator<[K, V]>;\n\n /**\n * Returns an iterable of key, value pairs for every entry in the map.\n */\n entries(): IterableIterator<[K, V]>;\n\n /**\n * Returns an iterable of keys in the map\n */\n keys(): IterableIterator<K>;\n\n /**\n * Returns an iterable of values in the map\n */\n values(): IterableIterator<V>;\n}\n\ninterface ReadonlyMap<K, V> {\n /** Returns an iterable of entries in the map. */\n [Symbol.iterator](): IterableIterator<[K, V]>;\n\n /**\n * Returns an iterable of key, value pairs for every entry in the map.\n */\n entries(): IterableIterator<[K, V]>;\n\n /**\n * Returns an iterable of keys in the map\n */\n keys(): IterableIterator<K>;\n\n /**\n * Returns an iterable of values in the map\n */\n values(): IterableIterator<V>;\n}\n\ninterface MapConstructor {\n new (): Map<any, any>;\n new <K, V>(iterable?: Iterable<readonly [K, V]> | null): Map<K, V>;\n}\n\ninterface WeakMap<K extends WeakKey, V> {}\n\ninterface WeakMapConstructor {\n new <K extends WeakKey, V>(iterable: Iterable<readonly [K, V]>): WeakMap<K, V>;\n}\n\ninterface Set<T> {\n /** Iterates over values in the set. */\n [Symbol.iterator](): IterableIterator<T>;\n /**\n * Returns an iterable of [v,v] pairs for every value `v` in the set.\n */\n entries(): IterableIterator<[T, T]>;\n /**\n * Despite its name, returns an iterable of the values in the set.\n */\n keys(): IterableIterator<T>;\n\n /**\n * Returns an iterable of values in the set.\n */\n values(): IterableIterator<T>;\n}\n\ninterface ReadonlySet<T> {\n /** Iterates over values in the set. */\n [Symbol.iterator](): IterableIterator<T>;\n\n /**\n * Returns an iterable of [v,v] pairs for every value `v` in the set.\n */\n entries(): IterableIterator<[T, T]>;\n\n /**\n * Despite its name, returns an iterable of the values in the set.\n */\n keys(): IterableIterator<T>;\n\n /**\n * Returns an iterable of values in the set.\n */\n values(): IterableIterator<T>;\n}\n\ninterface SetConstructor {\n new <T>(iterable?: Iterable<T> | null): Set<T>;\n}\n\ninterface WeakSet<T extends WeakKey> {}\n\ninterface WeakSetConstructor {\n new <T extends WeakKey = WeakKey>(iterable: Iterable<T>): WeakSet<T>;\n}\n\ninterface Promise<T> {}\n\ninterface PromiseConstructor {\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An iterable of Promises.\n * @returns A new Promise.\n */\n all<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>[]>;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An iterable of Promises.\n * @returns A new Promise.\n */\n race<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>>;\n}\n\ninterface String {\n /** Iterator */\n [Symbol.iterator](): IterableIterator<string>;\n}\n\ninterface Int8Array {\n [Symbol.iterator](): IterableIterator<number>;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator<number>;\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator<number>;\n}\n\ninterface Int8ArrayConstructor {\n new (elements: Iterable<number>): Int8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array;\n}\n\ninterface Uint8Array {\n [Symbol.iterator](): IterableIterator<number>;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator<number>;\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator<number>;\n}\n\ninterface Uint8ArrayConstructor {\n new (elements: Iterable<number>): Uint8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array;\n}\n\ninterface Uint8ClampedArray {\n [Symbol.iterator](): IterableIterator<number>;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator<number>;\n\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator<number>;\n}\n\ninterface Uint8ClampedArrayConstructor {\n new (elements: Iterable<number>): Uint8ClampedArray;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray;\n}\n\ninterface Int16Array {\n [Symbol.iterator](): IterableIterator<number>;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator<number>;\n\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator<number>;\n}\n\ninterface Int16ArrayConstructor {\n new (elements: Iterable<number>): Int16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array;\n}\n\ninterface Uint16Array {\n [Symbol.iterator](): IterableIterator<number>;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator<number>;\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator<number>;\n}\n\ninterface Uint16ArrayConstructor {\n new (elements: Iterable<number>): Uint16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array;\n}\n\ninterface Int32Array {\n [Symbol.iterator](): IterableIterator<number>;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator<number>;\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator<number>;\n}\n\ninterface Int32ArrayConstructor {\n new (elements: Iterable<number>): Int32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array;\n}\n\ninterface Uint32Array {\n [Symbol.iterator](): IterableIterator<number>;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator<number>;\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator<number>;\n}\n\ninterface Uint32ArrayConstructor {\n new (elements: Iterable<number>): Uint32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array;\n}\n\ninterface Float32Array {\n [Symbol.iterator](): IterableIterator<number>;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator<number>;\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator<number>;\n}\n\ninterface Float32ArrayConstructor {\n new (elements: Iterable<number>): Float32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array;\n}\n\ninterface Float64Array {\n [Symbol.iterator](): IterableIterator<number>;\n /**\n * Returns an array of key, value pairs for every entry in the array\n */\n entries(): IterableIterator<[number, number]>;\n /**\n * Returns an list of keys in the array\n */\n keys(): IterableIterator<number>;\n /**\n * Returns an list of values in the array\n */\n values(): IterableIterator<number>;\n}\n\ninterface Float64ArrayConstructor {\n new (elements: Iterable<number>): Float64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of 'this' used to invoke the mapfn.\n */\n from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array;\n}\n", + 'lib.es2015.promise.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface PromiseConstructor {\n /**\n * A reference to the prototype.\n */\n readonly prototype: Promise<any>;\n\n /**\n * Creates a new Promise.\n * @param executor A callback used to initialize the promise. This callback is passed two arguments:\n * a resolve callback used to resolve the promise with a value or the result of another promise,\n * and a reject callback used to reject the promise with a provided reason or error.\n */\n new <T>(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;\n\n /**\n * Creates a Promise that is resolved with an array of results when all of the provided Promises\n * resolve, or rejected when any Promise is rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n all<T extends readonly unknown[] | []>(values: T): Promise<{ -readonly [P in keyof T]: Awaited<T[P]>; }>;\n\n // see: lib.es2015.iterable.d.ts\n // all<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>[]>;\n\n /**\n * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\n * or rejected.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n race<T extends readonly unknown[] | []>(values: T): Promise<Awaited<T[number]>>;\n\n // see: lib.es2015.iterable.d.ts\n // race<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>>;\n\n /**\n * Creates a new rejected promise for the provided reason.\n * @param reason The reason the promise was rejected.\n * @returns A new rejected Promise.\n */\n reject<T = never>(reason?: any): Promise<T>;\n\n /**\n * Creates a new resolved promise.\n * @returns A resolved promise.\n */\n resolve(): Promise<void>;\n /**\n * Creates a new resolved promise for the provided value.\n * @param value A promise.\n * @returns A promise whose internal state matches the provided promise.\n */\n resolve<T>(value: T): Promise<Awaited<T>>;\n /**\n * Creates a new resolved promise for the provided value.\n * @param value A promise.\n * @returns A promise whose internal state matches the provided promise.\n */\n resolve<T>(value: T | PromiseLike<T>): Promise<Awaited<T>>;\n}\n\ndeclare var Promise: PromiseConstructor;\n', + 'lib.es2015.proxy.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface ProxyHandler<T extends object> {\n /**\n * A trap method for a function call.\n * @param target The original callable object which is being proxied.\n */\n apply?(target: T, thisArg: any, argArray: any[]): any;\n\n /**\n * A trap for the `new` operator.\n * @param target The original object which is being proxied.\n * @param newTarget The constructor that was originally called.\n */\n construct?(target: T, argArray: any[], newTarget: Function): object;\n\n /**\n * A trap for `Object.defineProperty()`.\n * @param target The original object which is being proxied.\n * @returns A `Boolean` indicating whether or not the property has been defined.\n */\n defineProperty?(target: T, property: string | symbol, attributes: PropertyDescriptor): boolean;\n\n /**\n * A trap for the `delete` operator.\n * @param target The original object which is being proxied.\n * @param p The name or `Symbol` of the property to delete.\n * @returns A `Boolean` indicating whether or not the property was deleted.\n */\n deleteProperty?(target: T, p: string | symbol): boolean;\n\n /**\n * A trap for getting a property value.\n * @param target The original object which is being proxied.\n * @param p The name or `Symbol` of the property to get.\n * @param receiver The proxy or an object that inherits from the proxy.\n */\n get?(target: T, p: string | symbol, receiver: any): any;\n\n /**\n * A trap for `Object.getOwnPropertyDescriptor()`.\n * @param target The original object which is being proxied.\n * @param p The name of the property whose description should be retrieved.\n */\n getOwnPropertyDescriptor?(target: T, p: string | symbol): PropertyDescriptor | undefined;\n\n /**\n * A trap for the `[[GetPrototypeOf]]` internal method.\n * @param target The original object which is being proxied.\n */\n getPrototypeOf?(target: T): object | null;\n\n /**\n * A trap for the `in` operator.\n * @param target The original object which is being proxied.\n * @param p The name or `Symbol` of the property to check for existence.\n */\n has?(target: T, p: string | symbol): boolean;\n\n /**\n * A trap for `Object.isExtensible()`.\n * @param target The original object which is being proxied.\n */\n isExtensible?(target: T): boolean;\n\n /**\n * A trap for `Reflect.ownKeys()`.\n * @param target The original object which is being proxied.\n */\n ownKeys?(target: T): ArrayLike<string | symbol>;\n\n /**\n * A trap for `Object.preventExtensions()`.\n * @param target The original object which is being proxied.\n */\n preventExtensions?(target: T): boolean;\n\n /**\n * A trap for setting a property value.\n * @param target The original object which is being proxied.\n * @param p The name or `Symbol` of the property to set.\n * @param receiver The object to which the assignment was originally directed.\n * @returns A `Boolean` indicating whether or not the property was set.\n */\n set?(target: T, p: string | symbol, newValue: any, receiver: any): boolean;\n\n /**\n * A trap for `Object.setPrototypeOf()`.\n * @param target The original object which is being proxied.\n * @param newPrototype The object\'s new prototype or `null`.\n */\n setPrototypeOf?(target: T, v: object | null): boolean;\n}\n\ninterface ProxyConstructor {\n /**\n * Creates a revocable Proxy object.\n * @param target A target object to wrap with Proxy.\n * @param handler An object whose properties define the behavior of Proxy when an operation is attempted on it.\n */\n revocable<T extends object>(target: T, handler: ProxyHandler<T>): { proxy: T; revoke: () => void; };\n\n /**\n * Creates a Proxy object. The Proxy object allows you to create an object that can be used in place of the\n * original object, but which may redefine fundamental Object operations like getting, setting, and defining\n * properties. Proxy objects are commonly used to log property accesses, validate, format, or sanitize inputs.\n * @param target A target object to wrap with Proxy.\n * @param handler An object whose properties define the behavior of Proxy when an operation is attempted on it.\n */\n new <T extends object>(target: T, handler: ProxyHandler<T>): T;\n}\ndeclare var Proxy: ProxyConstructor;\n', + 'lib.es2015.reflect.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ndeclare namespace Reflect {\n /**\n * Calls the function with the specified object as the this value\n * and the elements of specified array as the arguments.\n * @param target The function to call.\n * @param thisArgument The object to be used as the this object.\n * @param argumentsList An array of argument values to be passed to the function.\n */\n function apply<T, A extends readonly any[], R>(\n target: (this: T, ...args: A) => R,\n thisArgument: T,\n argumentsList: Readonly<A>,\n ): R;\n function apply(target: Function, thisArgument: any, argumentsList: ArrayLike<any>): any;\n\n /**\n * Constructs the target with the elements of specified array as the arguments\n * and the specified constructor as the `new.target` value.\n * @param target The constructor to invoke.\n * @param argumentsList An array of argument values to be passed to the constructor.\n * @param newTarget The constructor to be used as the `new.target` object.\n */\n function construct<A extends readonly any[], R>(\n target: new (...args: A) => R,\n argumentsList: Readonly<A>,\n newTarget?: new (...args: any) => any,\n ): R;\n function construct(target: Function, argumentsList: ArrayLike<any>, newTarget?: Function): any;\n\n /**\n * Adds a property to an object, or modifies attributes of an existing property.\n * @param target Object on which to add or modify the property. This can be a native JavaScript object\n * (that is, a user-defined object or a built in object) or a DOM object.\n * @param propertyKey The property name.\n * @param attributes Descriptor for the property. It can be for a data property or an accessor property.\n */\n function defineProperty(target: object, propertyKey: PropertyKey, attributes: PropertyDescriptor & ThisType<any>): boolean;\n\n /**\n * Removes a property from an object, equivalent to `delete target[propertyKey]`,\n * except it won\'t throw if `target[propertyKey]` is non-configurable.\n * @param target Object from which to remove the own property.\n * @param propertyKey The property name.\n */\n function deleteProperty(target: object, propertyKey: PropertyKey): boolean;\n\n /**\n * Gets the property of target, equivalent to `target[propertyKey]` when `receiver === target`.\n * @param target Object that contains the property on itself or in its prototype chain.\n * @param propertyKey The property name.\n * @param receiver The reference to use as the `this` value in the getter function,\n * if `target[propertyKey]` is an accessor property.\n */\n function get<T extends object, P extends PropertyKey>(\n target: T,\n propertyKey: P,\n receiver?: unknown,\n ): P extends keyof T ? T[P] : any;\n\n /**\n * Gets the own property descriptor of the specified object.\n * An own property descriptor is one that is defined directly on the object and is not inherited from the object\'s prototype.\n * @param target Object that contains the property.\n * @param propertyKey The property name.\n */\n function getOwnPropertyDescriptor<T extends object, P extends PropertyKey>(\n target: T,\n propertyKey: P,\n ): TypedPropertyDescriptor<P extends keyof T ? T[P] : any> | undefined;\n\n /**\n * Returns the prototype of an object.\n * @param target The object that references the prototype.\n */\n function getPrototypeOf(target: object): object | null;\n\n /**\n * Equivalent to `propertyKey in target`.\n * @param target Object that contains the property on itself or in its prototype chain.\n * @param propertyKey Name of the property.\n */\n function has(target: object, propertyKey: PropertyKey): boolean;\n\n /**\n * Returns a value that indicates whether new properties can be added to an object.\n * @param target Object to test.\n */\n function isExtensible(target: object): boolean;\n\n /**\n * Returns the string and symbol keys of the own properties of an object. The own properties of an object\n * are those that are defined directly on that object, and are not inherited from the object\'s prototype.\n * @param target Object that contains the own properties.\n */\n function ownKeys(target: object): (string | symbol)[];\n\n /**\n * Prevents the addition of new properties to an object.\n * @param target Object to make non-extensible.\n * @return Whether the object has been made non-extensible.\n */\n function preventExtensions(target: object): boolean;\n\n /**\n * Sets the property of target, equivalent to `target[propertyKey] = value` when `receiver === target`.\n * @param target Object that contains the property on itself or in its prototype chain.\n * @param propertyKey Name of the property.\n * @param receiver The reference to use as the `this` value in the setter function,\n * if `target[propertyKey]` is an accessor property.\n */\n function set<T extends object, P extends PropertyKey>(\n target: T,\n propertyKey: P,\n value: P extends keyof T ? T[P] : any,\n receiver?: any,\n ): boolean;\n function set(target: object, propertyKey: PropertyKey, value: any, receiver?: any): boolean;\n\n /**\n * Sets the prototype of a specified object o to object proto or null.\n * @param target The object to change its prototype.\n * @param proto The value of the new prototype or null.\n * @return Whether setting the prototype was successful.\n */\n function setPrototypeOf(target: object, proto: object | null): boolean;\n}\n', + 'lib.es2015.symbol.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface SymbolConstructor {\n /**\n * A reference to the prototype.\n */\n readonly prototype: Symbol;\n\n /**\n * Returns a new unique Symbol value.\n * @param description Description of the new Symbol object.\n */\n (description?: string | number): symbol;\n\n /**\n * Returns a Symbol object from the global symbol registry matching the given key if found.\n * Otherwise, returns a new symbol with this key.\n * @param key key to search for.\n */\n for(key: string): symbol;\n\n /**\n * Returns a key from the global symbol registry matching the given Symbol if found.\n * Otherwise, returns a undefined.\n * @param sym Symbol to find the key for.\n */\n keyFor(sym: symbol): string | undefined;\n}\n\ndeclare var Symbol: SymbolConstructor;\n', + 'lib.es2015.symbol.wellknown.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2015.symbol" />\n\ninterface SymbolConstructor {\n /**\n * A method that determines if a constructor object recognizes an object as one of the\n * constructor’s instances. Called by the semantics of the instanceof operator.\n */\n readonly hasInstance: unique symbol;\n\n /**\n * A Boolean value that if true indicates that an object should flatten to its array elements\n * by Array.prototype.concat.\n */\n readonly isConcatSpreadable: unique symbol;\n\n /**\n * A regular expression method that matches the regular expression against a string. Called\n * by the String.prototype.match method.\n */\n readonly match: unique symbol;\n\n /**\n * A regular expression method that replaces matched substrings of a string. Called by the\n * String.prototype.replace method.\n */\n readonly replace: unique symbol;\n\n /**\n * A regular expression method that returns the index within a string that matches the\n * regular expression. Called by the String.prototype.search method.\n */\n readonly search: unique symbol;\n\n /**\n * A function valued property that is the constructor function that is used to create\n * derived objects.\n */\n readonly species: unique symbol;\n\n /**\n * A regular expression method that splits a string at the indices that match the regular\n * expression. Called by the String.prototype.split method.\n */\n readonly split: unique symbol;\n\n /**\n * A method that converts an object to a corresponding primitive value.\n * Called by the ToPrimitive abstract operation.\n */\n readonly toPrimitive: unique symbol;\n\n /**\n * A String value that is used in the creation of the default string description of an object.\n * Called by the built-in method Object.prototype.toString.\n */\n readonly toStringTag: unique symbol;\n\n /**\n * An Object whose truthy properties are properties that are excluded from the \'with\'\n * environment bindings of the associated objects.\n */\n readonly unscopables: unique symbol;\n}\n\ninterface Symbol {\n /**\n * Converts a Symbol object to a symbol.\n */\n [Symbol.toPrimitive](hint: string): symbol;\n\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface Array<T> {\n /**\n * Is an object whose properties have the value \'true\'\n * when they will be absent when used in a \'with\' statement.\n */\n readonly [Symbol.unscopables]: {\n [K in keyof any[]]?: boolean;\n };\n}\n\ninterface ReadonlyArray<T> {\n /**\n * Is an object whose properties have the value \'true\'\n * when they will be absent when used in a \'with\' statement.\n */\n readonly [Symbol.unscopables]: {\n [K in keyof readonly any[]]?: boolean;\n };\n}\n\ninterface Date {\n /**\n * Converts a Date object to a string.\n */\n [Symbol.toPrimitive](hint: "default"): string;\n /**\n * Converts a Date object to a string.\n */\n [Symbol.toPrimitive](hint: "string"): string;\n /**\n * Converts a Date object to a number.\n */\n [Symbol.toPrimitive](hint: "number"): number;\n /**\n * Converts a Date object to a string or number.\n *\n * @param hint The strings "number", "string", or "default" to specify what primitive to return.\n *\n * @throws {TypeError} If \'hint\' was given something other than "number", "string", or "default".\n * @returns A number if \'hint\' was "number", a string if \'hint\' was "string" or "default".\n */\n [Symbol.toPrimitive](hint: string): string | number;\n}\n\ninterface Map<K, V> {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface WeakMap<K extends WeakKey, V> {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface Set<T> {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface WeakSet<T extends WeakKey> {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface JSON {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface Function {\n /**\n * Determines whether the given value inherits from this function if this function was used\n * as a constructor function.\n *\n * A constructor function can control which objects are recognized as its instances by\n * \'instanceof\' by overriding this method.\n */\n [Symbol.hasInstance](value: any): boolean;\n}\n\ninterface GeneratorFunction {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface Math {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface Promise<T> {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface PromiseConstructor {\n readonly [Symbol.species]: PromiseConstructor;\n}\n\ninterface RegExp {\n /**\n * Matches a string with this regular expression, and returns an array containing the results of\n * that search.\n * @param string A string to search within.\n */\n [Symbol.match](string: string): RegExpMatchArray | null;\n\n /**\n * Replaces text in a string, using this regular expression.\n * @param string A String object or string literal whose contents matching against\n * this regular expression will be replaced\n * @param replaceValue A String object or string literal containing the text to replace for every\n * successful match of this regular expression.\n */\n [Symbol.replace](string: string, replaceValue: string): string;\n\n /**\n * Replaces text in a string, using this regular expression.\n * @param string A String object or string literal whose contents matching against\n * this regular expression will be replaced\n * @param replacer A function that returns the replacement text.\n */\n [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;\n\n /**\n * Finds the position beginning first substring match in a regular expression search\n * using this regular expression.\n *\n * @param string The string to search within.\n */\n [Symbol.search](string: string): number;\n\n /**\n * Returns an array of substrings that were delimited by strings in the original input that\n * match against this regular expression.\n *\n * If the regular expression contains capturing parentheses, then each time this\n * regular expression matches, the results (including any undefined results) of the\n * capturing parentheses are spliced.\n *\n * @param string string value to split\n * @param limit if not undefined, the output array is truncated so that it contains no more\n * than \'limit\' elements.\n */\n [Symbol.split](string: string, limit?: number): string[];\n}\n\ninterface RegExpConstructor {\n readonly [Symbol.species]: RegExpConstructor;\n}\n\ninterface String {\n /**\n * Matches a string or an object that supports being matched against, and returns an array\n * containing the results of that search, or null if no matches are found.\n * @param matcher An object that supports being matched against.\n */\n match(matcher: { [Symbol.match](string: string): RegExpMatchArray | null; }): RegExpMatchArray | null;\n\n /**\n * Passes a string and {@linkcode replaceValue} to the `[Symbol.replace]` method on {@linkcode searchValue}. This method is expected to implement its own replacement algorithm.\n * @param searchValue An object that supports searching for and replacing matches within a string.\n * @param replaceValue The replacement text.\n */\n replace(searchValue: { [Symbol.replace](string: string, replaceValue: string): string; }, replaceValue: string): string;\n\n /**\n * Replaces text in a string, using an object that supports replacement within a string.\n * @param searchValue A object can search for and replace matches within a string.\n * @param replacer A function that returns the replacement text.\n */\n replace(searchValue: { [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string; }, replacer: (substring: string, ...args: any[]) => string): string;\n\n /**\n * Finds the first substring match in a regular expression search.\n * @param searcher An object which supports searching within a string.\n */\n search(searcher: { [Symbol.search](string: string): number; }): number;\n\n /**\n * Split a string into substrings using the specified separator and return them as an array.\n * @param splitter An object that can split a string.\n * @param limit A value used to limit the number of elements returned in the array.\n */\n split(splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number): string[];\n}\n\ninterface ArrayBuffer {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface DataView {\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface Int8Array {\n readonly [Symbol.toStringTag]: "Int8Array";\n}\n\ninterface Uint8Array {\n readonly [Symbol.toStringTag]: "Uint8Array";\n}\n\ninterface Uint8ClampedArray {\n readonly [Symbol.toStringTag]: "Uint8ClampedArray";\n}\n\ninterface Int16Array {\n readonly [Symbol.toStringTag]: "Int16Array";\n}\n\ninterface Uint16Array {\n readonly [Symbol.toStringTag]: "Uint16Array";\n}\n\ninterface Int32Array {\n readonly [Symbol.toStringTag]: "Int32Array";\n}\n\ninterface Uint32Array {\n readonly [Symbol.toStringTag]: "Uint32Array";\n}\n\ninterface Float32Array {\n readonly [Symbol.toStringTag]: "Float32Array";\n}\n\ninterface Float64Array {\n readonly [Symbol.toStringTag]: "Float64Array";\n}\n\ninterface ArrayConstructor {\n readonly [Symbol.species]: ArrayConstructor;\n}\ninterface MapConstructor {\n readonly [Symbol.species]: MapConstructor;\n}\ninterface SetConstructor {\n readonly [Symbol.species]: SetConstructor;\n}\ninterface ArrayBufferConstructor {\n readonly [Symbol.species]: ArrayBufferConstructor;\n}\n', + 'lib.es2016.array.include.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface Array<T> {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: T, fromIndex?: number): boolean;\n}\n\ninterface ReadonlyArray<T> {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: T, fromIndex?: number): boolean;\n}\n\ninterface Int8Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Uint8Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Uint8ClampedArray {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Int16Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Uint16Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Int32Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Uint32Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Float32Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n\ninterface Float64Array {\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: number, fromIndex?: number): boolean;\n}\n', + 'lib.es2016.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2015" />\n/// <reference lib="es2016.array.include" />\n/// <reference lib="es2016.intl" />\n', + 'lib.es2016.full.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2016" />\n/// <reference lib="dom" />\n/// <reference lib="webworker.importscripts" />\n/// <reference lib="scripthost" />\n/// <reference lib="dom.iterable" />\n', + 'lib.es2016.intl.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ndeclare namespace Intl {\n /**\n * The `Intl.getCanonicalLocales()` method returns an array containing\n * the canonical locale names. Duplicates will be omitted and elements\n * will be validated as structurally valid language tags.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/getCanonicalLocales)\n *\n * @param locale A list of String values for which to get the canonical locale names\n * @returns An array containing the canonical and validated locale names.\n */\n function getCanonicalLocales(locale?: string | readonly string[]): string[];\n}\n', + 'lib.es2017.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2016" />\n/// <reference lib="es2017.object" />\n/// <reference lib="es2017.sharedmemory" />\n/// <reference lib="es2017.string" />\n/// <reference lib="es2017.intl" />\n/// <reference lib="es2017.typedarrays" />\n/// <reference lib="es2017.date" />\n', + 'lib.es2017.date.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface DateConstructor {\n /**\n * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date.\n * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.\n * @param monthIndex The month as a number between 0 and 11 (January to December).\n * @param date The date as a number between 1 and 31.\n * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour.\n * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes.\n * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds.\n * @param ms A number from 0 to 999 that specifies the milliseconds.\n */\n UTC(year: number, monthIndex?: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;\n}\n', + 'lib.es2017.full.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2017" />\n/// <reference lib="dom" />\n/// <reference lib="webworker.importscripts" />\n/// <reference lib="scripthost" />\n/// <reference lib="dom.iterable" />\n', + 'lib.es2017.intl.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ndeclare namespace Intl {\n interface DateTimeFormatPartTypesRegistry {\n day: any;\n dayPeriod: any;\n era: any;\n hour: any;\n literal: any;\n minute: any;\n month: any;\n second: any;\n timeZoneName: any;\n weekday: any;\n year: any;\n }\n\n type DateTimeFormatPartTypes = keyof DateTimeFormatPartTypesRegistry;\n\n interface DateTimeFormatPart {\n type: DateTimeFormatPartTypes;\n value: string;\n }\n\n interface DateTimeFormat {\n formatToParts(date?: Date | number): DateTimeFormatPart[];\n }\n}\n', + 'lib.es2017.object.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface ObjectConstructor {\n /**\n * Returns an array of values of the enumerable properties of an object\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n values<T>(o: { [s: string]: T; } | ArrayLike<T>): T[];\n\n /**\n * Returns an array of values of the enumerable properties of an object\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n values(o: {}): any[];\n\n /**\n * Returns an array of key/values of the enumerable properties of an object\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n entries<T>(o: { [s: string]: T; } | ArrayLike<T>): [string, T][];\n\n /**\n * Returns an array of key/values of the enumerable properties of an object\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n entries(o: {}): [string, any][];\n\n /**\n * Returns an object containing all own property descriptors of an object\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n getOwnPropertyDescriptors<T>(o: T): { [P in keyof T]: TypedPropertyDescriptor<T[P]>; } & { [x: string]: PropertyDescriptor; };\n}\n', + 'lib.es2017.sharedmemory.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2015.symbol" />\n/// <reference lib="es2015.symbol.wellknown" />\n\ninterface SharedArrayBuffer {\n /**\n * Read-only. The length of the ArrayBuffer (in bytes).\n */\n readonly byteLength: number;\n\n /**\n * Returns a section of an SharedArrayBuffer.\n */\n slice(begin: number, end?: number): SharedArrayBuffer;\n readonly [Symbol.species]: SharedArrayBuffer;\n readonly [Symbol.toStringTag]: "SharedArrayBuffer";\n}\n\ninterface SharedArrayBufferConstructor {\n readonly prototype: SharedArrayBuffer;\n new (byteLength: number): SharedArrayBuffer;\n}\ndeclare var SharedArrayBuffer: SharedArrayBufferConstructor;\n\ninterface ArrayBufferTypes {\n SharedArrayBuffer: SharedArrayBuffer;\n}\n\ninterface Atomics {\n /**\n * Adds a value to the value at the given position in the array, returning the original value.\n * Until this atomic operation completes, any other read or write operation against the array\n * will block.\n */\n add(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\n\n /**\n * Stores the bitwise AND of a value with the value at the given position in the array,\n * returning the original value. Until this atomic operation completes, any other read or\n * write operation against the array will block.\n */\n and(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\n\n /**\n * Replaces the value at the given position in the array if the original value equals the given\n * expected value, returning the original value. Until this atomic operation completes, any\n * other read or write operation against the array will block.\n */\n compareExchange(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, expectedValue: number, replacementValue: number): number;\n\n /**\n * Replaces the value at the given position in the array, returning the original value. Until\n * this atomic operation completes, any other read or write operation against the array will\n * block.\n */\n exchange(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\n\n /**\n * Returns a value indicating whether high-performance algorithms can use atomic operations\n * (`true`) or must use locks (`false`) for the given number of bytes-per-element of a typed\n * array.\n */\n isLockFree(size: number): boolean;\n\n /**\n * Returns the value at the given position in the array. Until this atomic operation completes,\n * any other read or write operation against the array will block.\n */\n load(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number): number;\n\n /**\n * Stores the bitwise OR of a value with the value at the given position in the array,\n * returning the original value. Until this atomic operation completes, any other read or write\n * operation against the array will block.\n */\n or(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\n\n /**\n * Stores a value at the given position in the array, returning the new value. Until this\n * atomic operation completes, any other read or write operation against the array will block.\n */\n store(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\n\n /**\n * Subtracts a value from the value at the given position in the array, returning the original\n * value. Until this atomic operation completes, any other read or write operation against the\n * array will block.\n */\n sub(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\n\n /**\n * If the value at the given position in the array is equal to the provided value, the current\n * agent is put to sleep causing execution to suspend until the timeout expires (returning\n * `"timed-out"`) or until the agent is awoken (returning `"ok"`); otherwise, returns\n * `"not-equal"`.\n */\n wait(typedArray: Int32Array, index: number, value: number, timeout?: number): "ok" | "not-equal" | "timed-out";\n\n /**\n * Wakes up sleeping agents that are waiting on the given index of the array, returning the\n * number of agents that were awoken.\n * @param typedArray A shared Int32Array.\n * @param index The position in the typedArray to wake up on.\n * @param count The number of sleeping agents to notify. Defaults to +Infinity.\n */\n notify(typedArray: Int32Array, index: number, count?: number): number;\n\n /**\n * Stores the bitwise XOR of a value with the value at the given position in the array,\n * returning the original value. Until this atomic operation completes, any other read or write\n * operation against the array will block.\n */\n xor(typedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array, index: number, value: number): number;\n\n readonly [Symbol.toStringTag]: "Atomics";\n}\n\ndeclare var Atomics: Atomics;\n', + 'lib.es2017.string.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface String {\n /**\n * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.\n * The padding is applied from the start (left) of the current string.\n *\n * @param maxLength The length of the resulting string once the current string has been padded.\n * If this parameter is smaller than the current string\'s length, the current string will be returned as it is.\n *\n * @param fillString The string to pad the current string with.\n * If this string is too long, it will be truncated and the left-most part will be applied.\n * The default value for this parameter is " " (U+0020).\n */\n padStart(maxLength: number, fillString?: string): string;\n\n /**\n * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length.\n * The padding is applied from the end (right) of the current string.\n *\n * @param maxLength The length of the resulting string once the current string has been padded.\n * If this parameter is smaller than the current string\'s length, the current string will be returned as it is.\n *\n * @param fillString The string to pad the current string with.\n * If this string is too long, it will be truncated and the left-most part will be applied.\n * The default value for this parameter is " " (U+0020).\n */\n padEnd(maxLength: number, fillString?: string): string;\n}\n', + 'lib.es2017.typedarrays.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface Int8ArrayConstructor {\n new (): Int8Array;\n}\n\ninterface Uint8ArrayConstructor {\n new (): Uint8Array;\n}\n\ninterface Uint8ClampedArrayConstructor {\n new (): Uint8ClampedArray;\n}\n\ninterface Int16ArrayConstructor {\n new (): Int16Array;\n}\n\ninterface Uint16ArrayConstructor {\n new (): Uint16Array;\n}\n\ninterface Int32ArrayConstructor {\n new (): Int32Array;\n}\n\ninterface Uint32ArrayConstructor {\n new (): Uint32Array;\n}\n\ninterface Float32ArrayConstructor {\n new (): Float32Array;\n}\n\ninterface Float64ArrayConstructor {\n new (): Float64Array;\n}\n', + 'lib.es2018.asyncgenerator.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2018.asynciterable" />\n\ninterface AsyncGenerator<T = unknown, TReturn = any, TNext = unknown> extends AsyncIterator<T, TReturn, TNext> {\n // NOTE: \'next\' is defined using a tuple to ensure we report the correct assignability errors in all places.\n next(...args: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;\n return(value: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;\n throw(e: any): Promise<IteratorResult<T, TReturn>>;\n [Symbol.asyncIterator](): AsyncGenerator<T, TReturn, TNext>;\n}\n\ninterface AsyncGeneratorFunction {\n /**\n * Creates a new AsyncGenerator object.\n * @param args A list of arguments the function accepts.\n */\n new (...args: any[]): AsyncGenerator;\n /**\n * Creates a new AsyncGenerator object.\n * @param args A list of arguments the function accepts.\n */\n (...args: any[]): AsyncGenerator;\n /**\n * The length of the arguments.\n */\n readonly length: number;\n /**\n * Returns the name of the function.\n */\n readonly name: string;\n /**\n * A reference to the prototype.\n */\n readonly prototype: AsyncGenerator;\n}\n\ninterface AsyncGeneratorFunctionConstructor {\n /**\n * Creates a new AsyncGenerator function.\n * @param args A list of arguments the function accepts.\n */\n new (...args: string[]): AsyncGeneratorFunction;\n /**\n * Creates a new AsyncGenerator function.\n * @param args A list of arguments the function accepts.\n */\n (...args: string[]): AsyncGeneratorFunction;\n /**\n * The length of the arguments.\n */\n readonly length: number;\n /**\n * Returns the name of the function.\n */\n readonly name: string;\n /**\n * A reference to the prototype.\n */\n readonly prototype: AsyncGeneratorFunction;\n}\n', + 'lib.es2018.asynciterable.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2015.symbol" />\n/// <reference lib="es2015.iterable" />\n\ninterface SymbolConstructor {\n /**\n * A method that returns the default async iterator for an object. Called by the semantics of\n * the for-await-of statement.\n */\n readonly asyncIterator: unique symbol;\n}\n\ninterface AsyncIterator<T, TReturn = any, TNext = undefined> {\n // NOTE: \'next\' is defined using a tuple to ensure we report the correct assignability errors in all places.\n next(...args: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;\n return?(value?: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;\n throw?(e?: any): Promise<IteratorResult<T, TReturn>>;\n}\n\ninterface AsyncIterable<T> {\n [Symbol.asyncIterator](): AsyncIterator<T>;\n}\n\ninterface AsyncIterableIterator<T> extends AsyncIterator<T> {\n [Symbol.asyncIterator](): AsyncIterableIterator<T>;\n}\n', + 'lib.es2018.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2017" />\n/// <reference lib="es2018.asynciterable" />\n/// <reference lib="es2018.asyncgenerator" />\n/// <reference lib="es2018.promise" />\n/// <reference lib="es2018.regexp" />\n/// <reference lib="es2018.intl" />\n', + 'lib.es2018.full.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2018" />\n/// <reference lib="dom" />\n/// <reference lib="webworker.importscripts" />\n/// <reference lib="scripthost" />\n/// <reference lib="dom.iterable" />\n/// <reference lib="dom.asynciterable" />\n', + 'lib.es2018.intl.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ndeclare namespace Intl {\n // http://cldr.unicode.org/index/cldr-spec/plural-rules#TOC-Determining-Plural-Categories\n type LDMLPluralRule = "zero" | "one" | "two" | "few" | "many" | "other";\n type PluralRuleType = "cardinal" | "ordinal";\n\n interface PluralRulesOptions {\n localeMatcher?: "lookup" | "best fit" | undefined;\n type?: PluralRuleType | undefined;\n minimumIntegerDigits?: number | undefined;\n minimumFractionDigits?: number | undefined;\n maximumFractionDigits?: number | undefined;\n minimumSignificantDigits?: number | undefined;\n maximumSignificantDigits?: number | undefined;\n }\n\n interface ResolvedPluralRulesOptions {\n locale: string;\n pluralCategories: LDMLPluralRule[];\n type: PluralRuleType;\n minimumIntegerDigits: number;\n minimumFractionDigits: number;\n maximumFractionDigits: number;\n minimumSignificantDigits?: number;\n maximumSignificantDigits?: number;\n }\n\n interface PluralRules {\n resolvedOptions(): ResolvedPluralRulesOptions;\n select(n: number): LDMLPluralRule;\n }\n\n interface PluralRulesConstructor {\n new (locales?: string | readonly string[], options?: PluralRulesOptions): PluralRules;\n (locales?: string | readonly string[], options?: PluralRulesOptions): PluralRules;\n supportedLocalesOf(locales: string | readonly string[], options?: { localeMatcher?: "lookup" | "best fit"; }): string[];\n }\n\n const PluralRules: PluralRulesConstructor;\n\n // We can only have one definition for \'type\' in TypeScript, and so you can learn where the keys come from here:\n type ES2018NumberFormatPartType = "literal" | "nan" | "infinity" | "percent" | "integer" | "group" | "decimal" | "fraction" | "plusSign" | "minusSign" | "percentSign" | "currency" | "code" | "symbol" | "name";\n type ES2020NumberFormatPartType = "compact" | "exponentInteger" | "exponentMinusSign" | "exponentSeparator" | "unit" | "unknown";\n type NumberFormatPartTypes = ES2018NumberFormatPartType | ES2020NumberFormatPartType;\n\n interface NumberFormatPart {\n type: NumberFormatPartTypes;\n value: string;\n }\n\n interface NumberFormat {\n formatToParts(number?: number | bigint): NumberFormatPart[];\n }\n}\n', + 'lib.es2018.promise.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/**\n * Represents the completion of an asynchronous operation\n */\ninterface Promise<T> {\n /**\n * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The\n * resolved value cannot be modified from the callback.\n * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).\n * @returns A Promise for the completion of the callback.\n */\n finally(onfinally?: (() => void) | undefined | null): Promise<T>;\n}\n', + 'lib.es2018.regexp.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface RegExpMatchArray {\n groups?: {\n [key: string]: string;\n };\n}\n\ninterface RegExpExecArray {\n groups?: {\n [key: string]: string;\n };\n}\n\ninterface RegExp {\n /**\n * Returns a Boolean value indicating the state of the dotAll flag (s) used with a regular expression.\n * Default is false. Read-only.\n */\n readonly dotAll: boolean;\n}\n', + 'lib.es2019.array.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ntype FlatArray<Arr, Depth extends number> = {\n done: Arr;\n recur: Arr extends ReadonlyArray<infer InnerArr> ? FlatArray<InnerArr, [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][Depth]>\n : Arr;\n}[Depth extends -1 ? "done" : "recur"];\n\ninterface ReadonlyArray<T> {\n /**\n * Calls a defined callback function on each element of an array. Then, flattens the result into\n * a new array.\n * This is identical to a map followed by flat with depth 1.\n *\n * @param callback A function that accepts up to three arguments. The flatMap method calls the\n * callback function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callback function. If\n * thisArg is omitted, undefined is used as the this value.\n */\n flatMap<U, This = undefined>(\n callback: (this: This, value: T, index: number, array: T[]) => U | ReadonlyArray<U>,\n thisArg?: This,\n ): U[];\n\n /**\n * Returns a new array with all sub-array elements concatenated into it recursively up to the\n * specified depth.\n *\n * @param depth The maximum recursion depth\n */\n flat<A, D extends number = 1>(\n this: A,\n depth?: D,\n ): FlatArray<A, D>[];\n}\n\ninterface Array<T> {\n /**\n * Calls a defined callback function on each element of an array. Then, flattens the result into\n * a new array.\n * This is identical to a map followed by flat with depth 1.\n *\n * @param callback A function that accepts up to three arguments. The flatMap method calls the\n * callback function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callback function. If\n * thisArg is omitted, undefined is used as the this value.\n */\n flatMap<U, This = undefined>(\n callback: (this: This, value: T, index: number, array: T[]) => U | ReadonlyArray<U>,\n thisArg?: This,\n ): U[];\n\n /**\n * Returns a new array with all sub-array elements concatenated into it recursively up to the\n * specified depth.\n *\n * @param depth The maximum recursion depth\n */\n flat<A, D extends number = 1>(\n this: A,\n depth?: D,\n ): FlatArray<A, D>[];\n}\n', + 'lib.es2019.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2018" />\n/// <reference lib="es2019.array" />\n/// <reference lib="es2019.object" />\n/// <reference lib="es2019.string" />\n/// <reference lib="es2019.symbol" />\n/// <reference lib="es2019.intl" />\n', + 'lib.es2019.full.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2019" />\n/// <reference lib="dom" />\n/// <reference lib="webworker.importscripts" />\n/// <reference lib="scripthost" />\n/// <reference lib="dom.iterable" />\n/// <reference lib="dom.asynciterable" />\n', + 'lib.es2019.intl.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ndeclare namespace Intl {\n interface DateTimeFormatPartTypesRegistry {\n unknown: any;\n }\n}\n', + 'lib.es2019.object.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2015.iterable" />\n\ninterface ObjectConstructor {\n /**\n * Returns an object created by key-value entries for properties and methods\n * @param entries An iterable object that contains key-value entries for properties and methods.\n */\n fromEntries<T = any>(entries: Iterable<readonly [PropertyKey, T]>): { [k: string]: T; };\n\n /**\n * Returns an object created by key-value entries for properties and methods\n * @param entries An iterable object that contains key-value entries for properties and methods.\n */\n fromEntries(entries: Iterable<readonly any[]>): any;\n}\n', + 'lib.es2019.string.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface String {\n /** Removes the trailing white space and line terminator characters from a string. */\n trimEnd(): string;\n\n /** Removes the leading white space and line terminator characters from a string. */\n trimStart(): string;\n\n /**\n * Removes the leading white space and line terminator characters from a string.\n * @deprecated A legacy feature for browser compatibility. Use `trimStart` instead\n */\n trimLeft(): string;\n\n /**\n * Removes the trailing white space and line terminator characters from a string.\n * @deprecated A legacy feature for browser compatibility. Use `trimEnd` instead\n */\n trimRight(): string;\n}\n', + 'lib.es2019.symbol.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface Symbol {\n /**\n * Expose the [[Description]] internal slot of a symbol directly.\n */\n readonly description: string | undefined;\n}\n', + 'lib.es2020.bigint.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2020.intl" />\n\ninterface BigIntToLocaleStringOptions {\n /**\n * The locale matching algorithm to use.The default is "best fit". For information about this option, see the {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation Intl page}.\n */\n localeMatcher?: string;\n /**\n * The formatting style to use , the default is "decimal".\n */\n style?: string;\n\n numberingSystem?: string;\n /**\n * The unit to use in unit formatting, Possible values are core unit identifiers, defined in UTS #35, Part 2, Section 6. A subset of units from the full list was selected for use in ECMAScript. Pairs of simple units can be concatenated with "-per-" to make a compound unit. There is no default value; if the style is "unit", the unit property must be provided.\n */\n unit?: string;\n\n /**\n * The unit formatting style to use in unit formatting, the defaults is "short".\n */\n unitDisplay?: string;\n\n /**\n * The currency to use in currency formatting. Possible values are the ISO 4217 currency codes, such as "USD" for the US dollar, "EUR" for the euro, or "CNY" for the Chinese RMB — see the Current currency & funds code list. There is no default value; if the style is "currency", the currency property must be provided. It is only used when [[Style]] has the value "currency".\n */\n currency?: string;\n\n /**\n * How to display the currency in currency formatting. It is only used when [[Style]] has the value "currency". The default is "symbol".\n *\n * "symbol" to use a localized currency symbol such as €,\n *\n * "code" to use the ISO currency code,\n *\n * "name" to use a localized currency name such as "dollar"\n */\n currencyDisplay?: string;\n\n /**\n * Whether to use grouping separators, such as thousands separators or thousand/lakh/crore separators. The default is true.\n */\n useGrouping?: boolean;\n\n /**\n * The minimum number of integer digits to use. Possible values are from 1 to 21; the default is 1.\n */\n minimumIntegerDigits?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21;\n\n /**\n * The minimum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number and percent formatting is 0; the default for currency formatting is the number of minor unit digits provided by the {@link http://www.currency-iso.org/en/home/tables/table-a1.html ISO 4217 currency codes list} (2 if the list doesn\'t provide that information).\n */\n minimumFractionDigits?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20;\n\n /**\n * The maximum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number formatting is the larger of minimumFractionDigits and 3; the default for currency formatting is the larger of minimumFractionDigits and the number of minor unit digits provided by the {@link http://www.currency-iso.org/en/home/tables/table-a1.html ISO 4217 currency codes list} (2 if the list doesn\'t provide that information); the default for percent formatting is the larger of minimumFractionDigits and 0.\n */\n maximumFractionDigits?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20;\n\n /**\n * The minimum number of significant digits to use. Possible values are from 1 to 21; the default is 1.\n */\n minimumSignificantDigits?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21;\n\n /**\n * The maximum number of significant digits to use. Possible values are from 1 to 21; the default is 21.\n */\n maximumSignificantDigits?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21;\n\n /**\n * The formatting that should be displayed for the number, the defaults is "standard"\n *\n * "standard" plain number formatting\n *\n * "scientific" return the order-of-magnitude for formatted number.\n *\n * "engineering" return the exponent of ten when divisible by three\n *\n * "compact" string representing exponent, defaults is using the "short" form\n */\n notation?: string;\n\n /**\n * used only when notation is "compact"\n */\n compactDisplay?: string;\n}\n\ninterface BigInt {\n /**\n * Returns a string representation of an object.\n * @param radix Specifies a radix for converting numeric values to strings.\n */\n toString(radix?: number): string;\n\n /** Returns a string representation appropriate to the host environment\'s current locale. */\n toLocaleString(locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): bigint;\n\n readonly [Symbol.toStringTag]: "BigInt";\n}\n\ninterface BigIntConstructor {\n (value: bigint | boolean | number | string): bigint;\n readonly prototype: BigInt;\n\n /**\n * Interprets the low bits of a BigInt as a 2\'s-complement signed integer.\n * All higher bits are discarded.\n * @param bits The number of low bits to use\n * @param int The BigInt whose bits to extract\n */\n asIntN(bits: number, int: bigint): bigint;\n /**\n * Interprets the low bits of a BigInt as an unsigned integer.\n * All higher bits are discarded.\n * @param bits The number of low bits to use\n * @param int The BigInt whose bits to extract\n */\n asUintN(bits: number, int: bigint): bigint;\n}\n\ndeclare var BigInt: BigIntConstructor;\n\n/**\n * A typed array of 64-bit signed integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated, an exception is raised.\n */\ninterface BigInt64Array {\n /** The size in bytes of each element in the array. */\n readonly BYTES_PER_ELEMENT: number;\n\n /** The ArrayBuffer instance referenced by the array. */\n readonly buffer: ArrayBufferLike;\n\n /** The length in bytes of the array. */\n readonly byteLength: number;\n\n /** The offset in bytes of the array. */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /** Yields index, value pairs for every entry in the array. */\n entries(): IterableIterator<[number, bigint]>;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns false,\n * or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: bigint, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: bigint, index: number, array: BigInt64Array) => any, thisArg?: any): BigInt64Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): bigint | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: bigint, index: number, array: BigInt64Array) => void, thisArg?: any): void;\n\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: bigint, fromIndex?: number): boolean;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: bigint, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /** Yields each index in the array. */\n keys(): IterableIterator<number>;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: bigint, fromIndex?: number): number;\n\n /** The length of the array. */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: bigint, index: number, array: BigInt64Array) => bigint, thisArg?: any): BigInt64Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigInt64Array) => bigint): bigint;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigInt64Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigInt64Array) => bigint): bigint;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigInt64Array) => U, initialValue: U): U;\n\n /** Reverses the elements in the array. */\n reverse(): this;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike<bigint>, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): BigInt64Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls the\n * predicate function for each element in the array until the predicate returns true, or until\n * the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: bigint, index: number, array: BigInt64Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Sorts the array.\n * @param compareFn The function used to determine the order of the elements. If omitted, the elements are sorted in ascending order.\n */\n sort(compareFn?: (a: bigint, b: bigint) => number | bigint): this;\n\n /**\n * Gets a new BigInt64Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): BigInt64Array;\n\n /** Converts the array to a string by using the current locale. */\n toLocaleString(): string;\n\n /** Returns a string representation of the array. */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): BigInt64Array;\n\n /** Yields each value in the array. */\n values(): IterableIterator<bigint>;\n\n [Symbol.iterator](): IterableIterator<bigint>;\n\n readonly [Symbol.toStringTag]: "BigInt64Array";\n\n [index: number]: bigint;\n}\n\ninterface BigInt64ArrayConstructor {\n readonly prototype: BigInt64Array;\n new (length?: number): BigInt64Array;\n new (array: Iterable<bigint>): BigInt64Array;\n new (buffer: ArrayBufferLike, byteOffset?: number, length?: number): BigInt64Array;\n\n /** The size in bytes of each element in the array. */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: bigint[]): BigInt64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of \'this\' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike<bigint>): BigInt64Array;\n from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigInt64Array;\n}\n\ndeclare var BigInt64Array: BigInt64ArrayConstructor;\n\n/**\n * A typed array of 64-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated, an exception is raised.\n */\ninterface BigUint64Array {\n /** The size in bytes of each element in the array. */\n readonly BYTES_PER_ELEMENT: number;\n\n /** The ArrayBuffer instance referenced by the array. */\n readonly buffer: ArrayBufferLike;\n\n /** The length in bytes of the array. */\n readonly byteLength: number;\n\n /** The offset in bytes of the array. */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /** Yields index, value pairs for every entry in the array. */\n entries(): IterableIterator<[number, bigint]>;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns false,\n * or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: bigint, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: bigint, index: number, array: BigUint64Array) => any, thisArg?: any): BigUint64Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): bigint | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: bigint, index: number, array: BigUint64Array) => void, thisArg?: any): void;\n\n /**\n * Determines whether an array includes a certain element, returning true or false as appropriate.\n * @param searchElement The element to search for.\n * @param fromIndex The position in this array at which to begin searching for searchElement.\n */\n includes(searchElement: bigint, fromIndex?: number): boolean;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: bigint, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /** Yields each index in the array. */\n keys(): IterableIterator<number>;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: bigint, fromIndex?: number): number;\n\n /** The length of the array. */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: bigint, index: number, array: BigUint64Array) => bigint, thisArg?: any): BigUint64Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigUint64Array) => bigint): bigint;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigUint64Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: bigint, currentValue: bigint, currentIndex: number, array: BigUint64Array) => bigint): bigint;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight<U>(callbackfn: (previousValue: U, currentValue: bigint, currentIndex: number, array: BigUint64Array) => U, initialValue: U): U;\n\n /** Reverses the elements in the array. */\n reverse(): this;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike<bigint>, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array.\n */\n slice(start?: number, end?: number): BigUint64Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls the\n * predicate function for each element in the array until the predicate returns true, or until\n * the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: bigint, index: number, array: BigUint64Array) => boolean, thisArg?: any): boolean;\n\n /**\n * Sorts the array.\n * @param compareFn The function used to determine the order of the elements. If omitted, the elements are sorted in ascending order.\n */\n sort(compareFn?: (a: bigint, b: bigint) => number | bigint): this;\n\n /**\n * Gets a new BigUint64Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): BigUint64Array;\n\n /** Converts the array to a string by using the current locale. */\n toLocaleString(): string;\n\n /** Returns a string representation of the array. */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): BigUint64Array;\n\n /** Yields each value in the array. */\n values(): IterableIterator<bigint>;\n\n [Symbol.iterator](): IterableIterator<bigint>;\n\n readonly [Symbol.toStringTag]: "BigUint64Array";\n\n [index: number]: bigint;\n}\n\ninterface BigUint64ArrayConstructor {\n readonly prototype: BigUint64Array;\n new (length?: number): BigUint64Array;\n new (array: Iterable<bigint>): BigUint64Array;\n new (buffer: ArrayBufferLike, byteOffset?: number, length?: number): BigUint64Array;\n\n /** The size in bytes of each element in the array. */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: bigint[]): BigUint64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of \'this\' used to invoke the mapfn.\n */\n from(arrayLike: ArrayLike<bigint>): BigUint64Array;\n from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): BigUint64Array;\n}\n\ndeclare var BigUint64Array: BigUint64ArrayConstructor;\n\ninterface DataView {\n /**\n * Gets the BigInt64 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getBigInt64(byteOffset: number, littleEndian?: boolean): bigint;\n\n /**\n * Gets the BigUint64 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getBigUint64(byteOffset: number, littleEndian?: boolean): bigint;\n\n /**\n * Stores a BigInt64 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setBigInt64(byteOffset: number, value: bigint, littleEndian?: boolean): void;\n\n /**\n * Stores a BigUint64 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setBigUint64(byteOffset: number, value: bigint, littleEndian?: boolean): void;\n}\n\ndeclare namespace Intl {\n interface NumberFormat {\n format(value: number | bigint): string;\n resolvedOptions(): ResolvedNumberFormatOptions;\n }\n}\n', + 'lib.es2020.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2019" />\n/// <reference lib="es2020.bigint" />\n/// <reference lib="es2020.date" />\n/// <reference lib="es2020.number" />\n/// <reference lib="es2020.promise" />\n/// <reference lib="es2020.sharedmemory" />\n/// <reference lib="es2020.string" />\n/// <reference lib="es2020.symbol.wellknown" />\n/// <reference lib="es2020.intl" />\n', + 'lib.es2020.date.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2020.intl" />\n\ninterface Date {\n /**\n * Converts a date and time to a string by using the current or specified locale.\n * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;\n\n /**\n * Converts a date to a string by using the current or specified locale.\n * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleDateString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;\n\n /**\n * Converts a time to a string by using the current or specified locale.\n * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleTimeString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string;\n}\n', + 'lib.es2020.full.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2020" />\n/// <reference lib="dom" />\n/// <reference lib="webworker.importscripts" />\n/// <reference lib="scripthost" />\n/// <reference lib="dom.iterable" />\n/// <reference lib="dom.asynciterable" />\n', + 'lib.es2020.intl.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2018.intl" />\ndeclare namespace Intl {\n /**\n * A string that is a valid [Unicode BCP 47 Locale Identifier](https://unicode.org/reports/tr35/#Unicode_locale_identifier).\n *\n * For example: "fa", "es-MX", "zh-Hant-TW".\n *\n * See [MDN - Intl - locales argument](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).\n */\n type UnicodeBCP47LocaleIdentifier = string;\n\n /**\n * Unit to use in the relative time internationalized message.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format#Parameters).\n */\n type RelativeTimeFormatUnit =\n | "year"\n | "years"\n | "quarter"\n | "quarters"\n | "month"\n | "months"\n | "week"\n | "weeks"\n | "day"\n | "days"\n | "hour"\n | "hours"\n | "minute"\n | "minutes"\n | "second"\n | "seconds";\n\n /**\n * Value of the `unit` property in objects returned by\n * `Intl.RelativeTimeFormat.prototype.formatToParts()`. `formatToParts` and\n * `format` methods accept either singular or plural unit names as input,\n * but `formatToParts` only outputs singular (e.g. "day") not plural (e.g.\n * "days").\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).\n */\n type RelativeTimeFormatUnitSingular =\n | "year"\n | "quarter"\n | "month"\n | "week"\n | "day"\n | "hour"\n | "minute"\n | "second";\n\n /**\n * The locale matching algorithm to use.\n *\n * [MDN](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation).\n */\n type RelativeTimeFormatLocaleMatcher = "lookup" | "best fit";\n\n /**\n * The format of output message.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).\n */\n type RelativeTimeFormatNumeric = "always" | "auto";\n\n /**\n * The length of the internationalized message.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).\n */\n type RelativeTimeFormatStyle = "long" | "short" | "narrow";\n\n /**\n * The locale or locales to use\n *\n * See [MDN - Intl - locales argument](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).\n */\n type LocalesArgument = UnicodeBCP47LocaleIdentifier | Locale | readonly (UnicodeBCP47LocaleIdentifier | Locale)[] | undefined;\n\n /**\n * An object with some or all of properties of `options` parameter\n * of `Intl.RelativeTimeFormat` constructor.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters).\n */\n interface RelativeTimeFormatOptions {\n /** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */\n localeMatcher?: RelativeTimeFormatLocaleMatcher;\n /** The format of output message. */\n numeric?: RelativeTimeFormatNumeric;\n /** The length of the internationalized message. */\n style?: RelativeTimeFormatStyle;\n }\n\n /**\n * An object with properties reflecting the locale\n * and formatting options computed during initialization\n * of the `Intl.RelativeTimeFormat` object\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions#Description).\n */\n interface ResolvedRelativeTimeFormatOptions {\n locale: UnicodeBCP47LocaleIdentifier;\n style: RelativeTimeFormatStyle;\n numeric: RelativeTimeFormatNumeric;\n numberingSystem: string;\n }\n\n /**\n * An object representing the relative time format in parts\n * that can be used for custom locale-aware formatting.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts#Using_formatToParts).\n */\n type RelativeTimeFormatPart =\n | {\n type: "literal";\n value: string;\n }\n | {\n type: Exclude<NumberFormatPartTypes, "literal">;\n value: string;\n unit: RelativeTimeFormatUnitSingular;\n };\n\n interface RelativeTimeFormat {\n /**\n * Formats a value and a unit according to the locale\n * and formatting options of the given\n * [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat)\n * object.\n *\n * While this method automatically provides the correct plural forms,\n * the grammatical form is otherwise as neutral as possible.\n *\n * It is the caller\'s responsibility to handle cut-off logic\n * such as deciding between displaying "in 7 days" or "in 1 week".\n * This API does not support relative dates involving compound units.\n * e.g "in 5 days and 4 hours".\n *\n * @param value - Numeric value to use in the internationalized relative time message\n *\n * @param unit - [Unit](https://tc39.es/ecma402/#sec-singularrelativetimeunit) to use in the relative time internationalized message.\n *\n * @throws `RangeError` if `unit` was given something other than `unit` possible values\n *\n * @returns {string} Internationalized relative time message as string\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/format).\n */\n format(value: number, unit: RelativeTimeFormatUnit): string;\n\n /**\n * Returns an array of objects representing the relative time format in parts that can be used for custom locale-aware formatting.\n *\n * @param value - Numeric value to use in the internationalized relative time message\n *\n * @param unit - [Unit](https://tc39.es/ecma402/#sec-singularrelativetimeunit) to use in the relative time internationalized message.\n *\n * @throws `RangeError` if `unit` was given something other than `unit` possible values\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/formatToParts).\n */\n formatToParts(value: number, unit: RelativeTimeFormatUnit): RelativeTimeFormatPart[];\n\n /**\n * Provides access to the locale and options computed during initialization of this `Intl.RelativeTimeFormat` object.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/resolvedOptions).\n */\n resolvedOptions(): ResolvedRelativeTimeFormatOptions;\n }\n\n /**\n * The [`Intl.RelativeTimeFormat`](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat)\n * object is a constructor for objects that enable language-sensitive relative time formatting.\n *\n * [Compatibility](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat#Browser_compatibility).\n */\n const RelativeTimeFormat: {\n /**\n * Creates [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) objects\n *\n * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.\n * For the general form and interpretation of the locales argument,\n * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\n *\n * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)\n * with some or all of options of `RelativeTimeFormatOptions`.\n *\n * @returns [Intl.RelativeTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RelativeTimeFormat) object.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat).\n */\n new (\n locales?: LocalesArgument,\n options?: RelativeTimeFormatOptions,\n ): RelativeTimeFormat;\n\n /**\n * Returns an array containing those of the provided locales\n * that are supported in date and time formatting\n * without having to fall back to the runtime\'s default locale.\n *\n * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.\n * For the general form and interpretation of the locales argument,\n * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\n *\n * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/RelativeTimeFormat#Parameters)\n * with some or all of options of the formatting.\n *\n * @returns An array containing those of the provided locales\n * that are supported in date and time formatting\n * without having to fall back to the runtime\'s default locale.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat/supportedLocalesOf).\n */\n supportedLocalesOf(\n locales?: LocalesArgument,\n options?: RelativeTimeFormatOptions,\n ): UnicodeBCP47LocaleIdentifier[];\n };\n\n interface NumberFormatOptions {\n compactDisplay?: "short" | "long" | undefined;\n notation?: "standard" | "scientific" | "engineering" | "compact" | undefined;\n signDisplay?: "auto" | "never" | "always" | "exceptZero" | undefined;\n unit?: string | undefined;\n unitDisplay?: "short" | "long" | "narrow" | undefined;\n currencyDisplay?: string | undefined;\n currencySign?: string | undefined;\n }\n\n interface ResolvedNumberFormatOptions {\n compactDisplay?: "short" | "long";\n notation?: "standard" | "scientific" | "engineering" | "compact";\n signDisplay?: "auto" | "never" | "always" | "exceptZero";\n unit?: string;\n unitDisplay?: "short" | "long" | "narrow";\n currencyDisplay?: string;\n currencySign?: string;\n }\n\n interface DateTimeFormatOptions {\n calendar?: string | undefined;\n dayPeriod?: "narrow" | "short" | "long" | undefined;\n numberingSystem?: string | undefined;\n\n dateStyle?: "full" | "long" | "medium" | "short" | undefined;\n timeStyle?: "full" | "long" | "medium" | "short" | undefined;\n hourCycle?: "h11" | "h12" | "h23" | "h24" | undefined;\n }\n\n type LocaleHourCycleKey = "h12" | "h23" | "h11" | "h24";\n type LocaleCollationCaseFirst = "upper" | "lower" | "false";\n\n interface LocaleOptions {\n /** A string containing the language, and the script and region if available. */\n baseName?: string;\n /** The part of the Locale that indicates the locale\'s calendar era. */\n calendar?: string;\n /** Flag that defines whether case is taken into account for the locale\'s collation rules. */\n caseFirst?: LocaleCollationCaseFirst;\n /** The collation type used for sorting */\n collation?: string;\n /** The time keeping format convention used by the locale. */\n hourCycle?: LocaleHourCycleKey;\n /** The primary language subtag associated with the locale. */\n language?: string;\n /** The numeral system used by the locale. */\n numberingSystem?: string;\n /** Flag that defines whether the locale has special collation handling for numeric characters. */\n numeric?: boolean;\n /** The region of the world (usually a country) associated with the locale. Possible values are region codes as defined by ISO 3166-1. */\n region?: string;\n /** The script used for writing the particular language used in the locale. Possible values are script codes as defined by ISO 15924. */\n script?: string;\n }\n\n interface Locale extends LocaleOptions {\n /** A string containing the language, and the script and region if available. */\n baseName: string;\n /** The primary language subtag associated with the locale. */\n language: string;\n /** Gets the most likely values for the language, script, and region of the locale based on existing values. */\n maximize(): Locale;\n /** Attempts to remove information about the locale that would be added by calling `Locale.maximize()`. */\n minimize(): Locale;\n /** Returns the locale\'s full locale identifier string. */\n toString(): UnicodeBCP47LocaleIdentifier;\n }\n\n /**\n * Constructor creates [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale)\n * objects\n *\n * @param tag - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646).\n * For the general form and interpretation of the locales argument,\n * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\n *\n * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/Locale#Parameters) with some or all of options of the locale.\n *\n * @returns [Intl.Locale](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale) object.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale).\n */\n const Locale: {\n new (tag: UnicodeBCP47LocaleIdentifier | Locale, options?: LocaleOptions): Locale;\n };\n\n type DisplayNamesFallback =\n | "code"\n | "none";\n\n type DisplayNamesType =\n | "language"\n | "region"\n | "script"\n | "calendar"\n | "dateTimeField"\n | "currency";\n\n type DisplayNamesLanguageDisplay =\n | "dialect"\n | "standard";\n\n interface DisplayNamesOptions {\n localeMatcher?: RelativeTimeFormatLocaleMatcher;\n style?: RelativeTimeFormatStyle;\n type: DisplayNamesType;\n languageDisplay?: DisplayNamesLanguageDisplay;\n fallback?: DisplayNamesFallback;\n }\n\n interface ResolvedDisplayNamesOptions {\n locale: UnicodeBCP47LocaleIdentifier;\n style: RelativeTimeFormatStyle;\n type: DisplayNamesType;\n fallback: DisplayNamesFallback;\n languageDisplay?: DisplayNamesLanguageDisplay;\n }\n\n interface DisplayNames {\n /**\n * Receives a code and returns a string based on the locale and options provided when instantiating\n * [`Intl.DisplayNames()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)\n *\n * @param code The `code` to provide depends on the `type` passed to display name during creation:\n * - If the type is `"region"`, code should be either an [ISO-3166 two letters region code](https://www.iso.org/iso-3166-country-codes.html),\n * or a [three digits UN M49 Geographic Regions](https://unstats.un.org/unsd/methodology/m49/).\n * - If the type is `"script"`, code should be an [ISO-15924 four letters script code](https://unicode.org/iso15924/iso15924-codes.html).\n * - If the type is `"language"`, code should be a `languageCode` ["-" `scriptCode`] ["-" `regionCode` ] *("-" `variant` )\n * subsequence of the unicode_language_id grammar in [UTS 35\'s Unicode Language and Locale Identifiers grammar](https://unicode.org/reports/tr35/#Unicode_language_identifier).\n * `languageCode` is either a two letters ISO 639-1 language code or a three letters ISO 639-2 language code.\n * - If the type is `"currency"`, code should be a [3-letter ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html).\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/of).\n */\n of(code: string): string | undefined;\n /**\n * Returns a new object with properties reflecting the locale and style formatting options computed during the construction of the current\n * [`Intl/DisplayNames`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames) object.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/resolvedOptions).\n */\n resolvedOptions(): ResolvedDisplayNamesOptions;\n }\n\n /**\n * The [`Intl.DisplayNames()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames)\n * object enables the consistent translation of language, region and script display names.\n *\n * [Compatibility](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames#browser_compatibility).\n */\n const DisplayNames: {\n prototype: DisplayNames;\n\n /**\n * @param locales A string with a BCP 47 language tag, or an array of such strings.\n * For the general form and interpretation of the `locales` argument, see the [Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)\n * page.\n *\n * @param options An object for setting up a display name.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/DisplayNames).\n */\n new (locales: LocalesArgument, options: DisplayNamesOptions): DisplayNames;\n\n /**\n * Returns an array containing those of the provided locales that are supported in display names without having to fall back to the runtime\'s default locale.\n *\n * @param locales A string with a BCP 47 language tag, or an array of such strings.\n * For the general form and interpretation of the `locales` argument, see the [Intl](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)\n * page.\n *\n * @param options An object with a locale matcher.\n *\n * @returns An array of strings representing a subset of the given locale tags that are supported in display names without having to fall back to the runtime\'s default locale.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/supportedLocalesOf).\n */\n supportedLocalesOf(locales?: LocalesArgument, options?: { localeMatcher?: RelativeTimeFormatLocaleMatcher; }): UnicodeBCP47LocaleIdentifier[];\n };\n\n interface CollatorConstructor {\n new (locales?: LocalesArgument, options?: CollatorOptions): Collator;\n (locales?: LocalesArgument, options?: CollatorOptions): Collator;\n supportedLocalesOf(locales: LocalesArgument, options?: CollatorOptions): string[];\n }\n\n interface DateTimeFormatConstructor {\n new (locales?: LocalesArgument, options?: DateTimeFormatOptions): DateTimeFormat;\n (locales?: LocalesArgument, options?: DateTimeFormatOptions): DateTimeFormat;\n supportedLocalesOf(locales: LocalesArgument, options?: DateTimeFormatOptions): string[];\n }\n\n interface NumberFormatConstructor {\n new (locales?: LocalesArgument, options?: NumberFormatOptions): NumberFormat;\n (locales?: LocalesArgument, options?: NumberFormatOptions): NumberFormat;\n supportedLocalesOf(locales: LocalesArgument, options?: NumberFormatOptions): string[];\n }\n\n interface PluralRulesConstructor {\n new (locales?: LocalesArgument, options?: PluralRulesOptions): PluralRules;\n (locales?: LocalesArgument, options?: PluralRulesOptions): PluralRules;\n\n supportedLocalesOf(locales: LocalesArgument, options?: { localeMatcher?: "lookup" | "best fit"; }): string[];\n }\n}\n', + 'lib.es2020.number.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2020.intl" />\n\ninterface Number {\n /**\n * Converts a number to a string by using the current or specified locale.\n * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;\n}\n', + 'lib.es2020.promise.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface PromiseFulfilledResult<T> {\n status: "fulfilled";\n value: T;\n}\n\ninterface PromiseRejectedResult {\n status: "rejected";\n reason: any;\n}\n\ntype PromiseSettledResult<T> = PromiseFulfilledResult<T> | PromiseRejectedResult;\n\ninterface PromiseConstructor {\n /**\n * Creates a Promise that is resolved with an array of results when all\n * of the provided Promises resolve or reject.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n allSettled<T extends readonly unknown[] | []>(values: T): Promise<{ -readonly [P in keyof T]: PromiseSettledResult<Awaited<T[P]>>; }>;\n\n /**\n * Creates a Promise that is resolved with an array of results when all\n * of the provided Promises resolve or reject.\n * @param values An array of Promises.\n * @returns A new Promise.\n */\n allSettled<T>(values: Iterable<T | PromiseLike<T>>): Promise<PromiseSettledResult<Awaited<T>>[]>;\n}\n', + 'lib.es2020.sharedmemory.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface Atomics {\n /**\n * Adds a value to the value at the given position in the array, returning the original value.\n * Until this atomic operation completes, any other read or write operation against the array\n * will block.\n */\n add(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\n\n /**\n * Stores the bitwise AND of a value with the value at the given position in the array,\n * returning the original value. Until this atomic operation completes, any other read or\n * write operation against the array will block.\n */\n and(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\n\n /**\n * Replaces the value at the given position in the array if the original value equals the given\n * expected value, returning the original value. Until this atomic operation completes, any\n * other read or write operation against the array will block.\n */\n compareExchange(typedArray: BigInt64Array | BigUint64Array, index: number, expectedValue: bigint, replacementValue: bigint): bigint;\n\n /**\n * Replaces the value at the given position in the array, returning the original value. Until\n * this atomic operation completes, any other read or write operation against the array will\n * block.\n */\n exchange(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\n\n /**\n * Returns the value at the given position in the array. Until this atomic operation completes,\n * any other read or write operation against the array will block.\n */\n load(typedArray: BigInt64Array | BigUint64Array, index: number): bigint;\n\n /**\n * Stores the bitwise OR of a value with the value at the given position in the array,\n * returning the original value. Until this atomic operation completes, any other read or write\n * operation against the array will block.\n */\n or(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\n\n /**\n * Stores a value at the given position in the array, returning the new value. Until this\n * atomic operation completes, any other read or write operation against the array will block.\n */\n store(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\n\n /**\n * Subtracts a value from the value at the given position in the array, returning the original\n * value. Until this atomic operation completes, any other read or write operation against the\n * array will block.\n */\n sub(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\n\n /**\n * If the value at the given position in the array is equal to the provided value, the current\n * agent is put to sleep causing execution to suspend until the timeout expires (returning\n * `"timed-out"`) or until the agent is awoken (returning `"ok"`); otherwise, returns\n * `"not-equal"`.\n */\n wait(typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): "ok" | "not-equal" | "timed-out";\n\n /**\n * Wakes up sleeping agents that are waiting on the given index of the array, returning the\n * number of agents that were awoken.\n * @param typedArray A shared BigInt64Array.\n * @param index The position in the typedArray to wake up on.\n * @param count The number of sleeping agents to notify. Defaults to +Infinity.\n */\n notify(typedArray: BigInt64Array, index: number, count?: number): number;\n\n /**\n * Stores the bitwise XOR of a value with the value at the given position in the array,\n * returning the original value. Until this atomic operation completes, any other read or write\n * operation against the array will block.\n */\n xor(typedArray: BigInt64Array | BigUint64Array, index: number, value: bigint): bigint;\n}\n', + 'lib.es2020.string.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2015.iterable" />\n\ninterface String {\n /**\n * Matches a string with a regular expression, and returns an iterable of matches\n * containing the results of that search.\n * @param regexp A variable name or string literal containing the regular expression pattern and flags.\n */\n matchAll(regexp: RegExp): IterableIterator<RegExpExecArray>;\n\n /** Converts all alphabetic characters to lowercase, taking into account the host environment\'s current locale. */\n toLocaleLowerCase(locales?: Intl.LocalesArgument): string;\n\n /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment\'s current locale. */\n toLocaleUpperCase(locales?: Intl.LocalesArgument): string;\n\n /**\n * Determines whether two strings are equivalent in the current or specified locale.\n * @param that String to compare to target string\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.\n * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.\n */\n localeCompare(that: string, locales?: Intl.LocalesArgument, options?: Intl.CollatorOptions): number;\n}\n', + 'lib.es2020.symbol.wellknown.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2015.iterable" />\n/// <reference lib="es2015.symbol" />\n\ninterface SymbolConstructor {\n /**\n * A regular expression method that matches the regular expression against a string. Called\n * by the String.prototype.matchAll method.\n */\n readonly matchAll: unique symbol;\n}\n\ninterface RegExp {\n /**\n * Matches a string with this regular expression, and returns an iterable of matches\n * containing the results of that search.\n * @param string A string to search within.\n */\n [Symbol.matchAll](str: string): IterableIterator<RegExpMatchArray>;\n}\n', + 'lib.es2021.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2020" />\n/// <reference lib="es2021.promise" />\n/// <reference lib="es2021.string" />\n/// <reference lib="es2021.weakref" />\n/// <reference lib="es2021.intl" />\n', + 'lib.es2021.full.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2021" />\n/// <reference lib="dom" />\n/// <reference lib="webworker.importscripts" />\n/// <reference lib="scripthost" />\n/// <reference lib="dom.iterable" />\n/// <reference lib="dom.asynciterable" />\n', + 'lib.es2021.intl.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ndeclare namespace Intl {\n interface DateTimeFormatPartTypesRegistry {\n fractionalSecond: any;\n }\n\n interface DateTimeFormatOptions {\n formatMatcher?: "basic" | "best fit" | "best fit" | undefined;\n dateStyle?: "full" | "long" | "medium" | "short" | undefined;\n timeStyle?: "full" | "long" | "medium" | "short" | undefined;\n dayPeriod?: "narrow" | "short" | "long" | undefined;\n fractionalSecondDigits?: 1 | 2 | 3 | undefined;\n }\n\n interface DateTimeRangeFormatPart extends DateTimeFormatPart {\n source: "startRange" | "endRange" | "shared";\n }\n\n interface DateTimeFormat {\n formatRange(startDate: Date | number | bigint, endDate: Date | number | bigint): string;\n formatRangeToParts(startDate: Date | number | bigint, endDate: Date | number | bigint): DateTimeRangeFormatPart[];\n }\n\n interface ResolvedDateTimeFormatOptions {\n formatMatcher?: "basic" | "best fit" | "best fit";\n dateStyle?: "full" | "long" | "medium" | "short";\n timeStyle?: "full" | "long" | "medium" | "short";\n hourCycle?: "h11" | "h12" | "h23" | "h24";\n dayPeriod?: "narrow" | "short" | "long";\n fractionalSecondDigits?: 1 | 2 | 3;\n }\n\n /**\n * The locale matching algorithm to use.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).\n */\n type ListFormatLocaleMatcher = "lookup" | "best fit";\n\n /**\n * The format of output message.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).\n */\n type ListFormatType = "conjunction" | "disjunction" | "unit";\n\n /**\n * The length of the formatted message.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).\n */\n type ListFormatStyle = "long" | "short" | "narrow";\n\n /**\n * An object with some or all properties of the `Intl.ListFormat` constructor `options` parameter.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters).\n */\n interface ListFormatOptions {\n /** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */\n localeMatcher?: ListFormatLocaleMatcher | undefined;\n /** The format of output message. */\n type?: ListFormatType | undefined;\n /** The length of the internationalized message. */\n style?: ListFormatStyle | undefined;\n }\n\n interface ResolvedListFormatOptions {\n locale: string;\n style: ListFormatStyle;\n type: ListFormatType;\n }\n\n interface ListFormat {\n /**\n * Returns a string with a language-specific representation of the list.\n *\n * @param list - An iterable object, such as an [Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array).\n *\n * @throws `TypeError` if `list` includes something other than the possible values.\n *\n * @returns {string} A language-specific formatted string representing the elements of the list.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/format).\n */\n format(list: Iterable<string>): string;\n\n /**\n * Returns an Array of objects representing the different components that can be used to format a list of values in a locale-aware fashion.\n *\n * @param list - An iterable object, such as an [Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array), to be formatted according to a locale.\n *\n * @throws `TypeError` if `list` includes something other than the possible values.\n *\n * @returns {{ type: "element" | "literal", value: string; }[]} An Array of components which contains the formatted parts from the list.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/formatToParts).\n */\n formatToParts(list: Iterable<string>): { type: "element" | "literal"; value: string; }[];\n\n /**\n * Returns a new object with properties reflecting the locale and style\n * formatting options computed during the construction of the current\n * `Intl.ListFormat` object.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/resolvedOptions).\n */\n resolvedOptions(): ResolvedListFormatOptions;\n }\n\n const ListFormat: {\n prototype: ListFormat;\n\n /**\n * Creates [Intl.ListFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat) objects that\n * enable language-sensitive list formatting.\n *\n * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.\n * For the general form and interpretation of the `locales` argument,\n * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\n *\n * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#parameters)\n * with some or all options of `ListFormatOptions`.\n *\n * @returns [Intl.ListFormatOptions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat) object.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat).\n */\n new (locales?: LocalesArgument, options?: ListFormatOptions): ListFormat;\n\n /**\n * Returns an array containing those of the provided locales that are\n * supported in list formatting without having to fall back to the runtime\'s default locale.\n *\n * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.\n * For the general form and interpretation of the `locales` argument,\n * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\n *\n * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/supportedLocalesOf#parameters).\n * with some or all possible options.\n *\n * @returns An array of strings representing a subset of the given locale tags that are supported in list\n * formatting without having to fall back to the runtime\'s default locale.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/supportedLocalesOf).\n */\n supportedLocalesOf(locales: LocalesArgument, options?: Pick<ListFormatOptions, "localeMatcher">): UnicodeBCP47LocaleIdentifier[];\n };\n}\n', + 'lib.es2021.promise.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface AggregateError extends Error {\n errors: any[];\n}\n\ninterface AggregateErrorConstructor {\n new (errors: Iterable<any>, message?: string): AggregateError;\n (errors: Iterable<any>, message?: string): AggregateError;\n readonly prototype: AggregateError;\n}\n\ndeclare var AggregateError: AggregateErrorConstructor;\n\n/**\n * Represents the completion of an asynchronous operation\n */\ninterface PromiseConstructor {\n /**\n * The any function returns a promise that is fulfilled by the first given promise to be fulfilled, or rejected with an AggregateError containing an array of rejection reasons if all of the given promises are rejected. It resolves all elements of the passed iterable to promises as it runs this algorithm.\n * @param values An array or iterable of Promises.\n * @returns A new Promise.\n */\n any<T extends readonly unknown[] | []>(values: T): Promise<Awaited<T[number]>>;\n\n /**\n * The any function returns a promise that is fulfilled by the first given promise to be fulfilled, or rejected with an AggregateError containing an array of rejection reasons if all of the given promises are rejected. It resolves all elements of the passed iterable to promises as it runs this algorithm.\n * @param values An array or iterable of Promises.\n * @returns A new Promise.\n */\n any<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>>;\n}\n', + 'lib.es2021.string.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface String {\n /**\n * Replace all instances of a substring in a string, using a regular expression or search string.\n * @param searchValue A string to search for.\n * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string.\n */\n replaceAll(searchValue: string | RegExp, replaceValue: string): string;\n\n /**\n * Replace all instances of a substring in a string, using a regular expression or search string.\n * @param searchValue A string to search for.\n * @param replacer A function that returns the replacement text.\n */\n replaceAll(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;\n}\n', + 'lib.es2021.weakref.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface WeakRef<T extends WeakKey> {\n readonly [Symbol.toStringTag]: "WeakRef";\n\n /**\n * Returns the WeakRef instance\'s target value, or undefined if the target value has been\n * reclaimed.\n * In es2023 the value can be either a symbol or an object, in previous versions only object is permissible.\n */\n deref(): T | undefined;\n}\n\ninterface WeakRefConstructor {\n readonly prototype: WeakRef<any>;\n\n /**\n * Creates a WeakRef instance for the given target value.\n * In es2023 the value can be either a symbol or an object, in previous versions only object is permissible.\n * @param target The target value for the WeakRef instance.\n */\n new <T extends WeakKey>(target: T): WeakRef<T>;\n}\n\ndeclare var WeakRef: WeakRefConstructor;\n\ninterface FinalizationRegistry<T> {\n readonly [Symbol.toStringTag]: "FinalizationRegistry";\n\n /**\n * Registers a value with the registry.\n * In es2023 the value can be either a symbol or an object, in previous versions only object is permissible.\n * @param target The target value to register.\n * @param heldValue The value to pass to the finalizer for this value. This cannot be the\n * target value.\n * @param unregisterToken The token to pass to the unregister method to unregister the target\n * value. If not provided, the target cannot be unregistered.\n */\n register(target: WeakKey, heldValue: T, unregisterToken?: WeakKey): void;\n\n /**\n * Unregisters a value from the registry.\n * In es2023 the value can be either a symbol or an object, in previous versions only object is permissible.\n * @param unregisterToken The token that was used as the unregisterToken argument when calling\n * register to register the target value.\n */\n unregister(unregisterToken: WeakKey): void;\n}\n\ninterface FinalizationRegistryConstructor {\n readonly prototype: FinalizationRegistry<any>;\n\n /**\n * Creates a finalization registry with an associated cleanup callback\n * @param cleanupCallback The callback to call after a value in the registry has been reclaimed.\n */\n new <T>(cleanupCallback: (heldValue: T) => void): FinalizationRegistry<T>;\n}\n\ndeclare var FinalizationRegistry: FinalizationRegistryConstructor;\n', + 'lib.es2022.array.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface Array<T> {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): T | undefined;\n}\n\ninterface ReadonlyArray<T> {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): T | undefined;\n}\n\ninterface Int8Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Uint8Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Uint8ClampedArray {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Int16Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Uint16Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Int32Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Uint32Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Float32Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface Float64Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): number | undefined;\n}\n\ninterface BigInt64Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): bigint | undefined;\n}\n\ninterface BigUint64Array {\n /**\n * Returns the item located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): bigint | undefined;\n}\n', + 'lib.es2022.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2021" />\n/// <reference lib="es2022.array" />\n/// <reference lib="es2022.error" />\n/// <reference lib="es2022.intl" />\n/// <reference lib="es2022.object" />\n/// <reference lib="es2022.sharedmemory" />\n/// <reference lib="es2022.string" />\n/// <reference lib="es2022.regexp" />\n', + 'lib.es2022.error.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface ErrorOptions {\n cause?: unknown;\n}\n\ninterface Error {\n cause?: unknown;\n}\n\ninterface ErrorConstructor {\n new (message?: string, options?: ErrorOptions): Error;\n (message?: string, options?: ErrorOptions): Error;\n}\n\ninterface EvalErrorConstructor {\n new (message?: string, options?: ErrorOptions): EvalError;\n (message?: string, options?: ErrorOptions): EvalError;\n}\n\ninterface RangeErrorConstructor {\n new (message?: string, options?: ErrorOptions): RangeError;\n (message?: string, options?: ErrorOptions): RangeError;\n}\n\ninterface ReferenceErrorConstructor {\n new (message?: string, options?: ErrorOptions): ReferenceError;\n (message?: string, options?: ErrorOptions): ReferenceError;\n}\n\ninterface SyntaxErrorConstructor {\n new (message?: string, options?: ErrorOptions): SyntaxError;\n (message?: string, options?: ErrorOptions): SyntaxError;\n}\n\ninterface TypeErrorConstructor {\n new (message?: string, options?: ErrorOptions): TypeError;\n (message?: string, options?: ErrorOptions): TypeError;\n}\n\ninterface URIErrorConstructor {\n new (message?: string, options?: ErrorOptions): URIError;\n (message?: string, options?: ErrorOptions): URIError;\n}\n\ninterface AggregateErrorConstructor {\n new (\n errors: Iterable<any>,\n message?: string,\n options?: ErrorOptions,\n ): AggregateError;\n (\n errors: Iterable<any>,\n message?: string,\n options?: ErrorOptions,\n ): AggregateError;\n}\n', + 'lib.es2022.full.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2022" />\n/// <reference lib="dom" />\n/// <reference lib="webworker.importscripts" />\n/// <reference lib="scripthost" />\n/// <reference lib="dom.iterable" />\n/// <reference lib="dom.asynciterable" />\n', + 'lib.es2022.intl.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ndeclare namespace Intl {\n /**\n * An object with some or all properties of the `Intl.Segmenter` constructor `options` parameter.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/Segmenter#parameters)\n */\n interface SegmenterOptions {\n /** The locale matching algorithm to use. For information about this option, see [Intl page](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation). */\n localeMatcher?: "best fit" | "lookup" | undefined;\n /** The type of input to be split */\n granularity?: "grapheme" | "word" | "sentence" | undefined;\n }\n\n interface Segmenter {\n /**\n * Returns `Segments` object containing the segments of the input string, using the segmenter\'s locale and granularity.\n *\n * @param input - The text to be segmented as a `string`.\n *\n * @returns A new iterable Segments object containing the segments of the input string, using the segmenter\'s locale and granularity.\n */\n segment(input: string): Segments;\n resolvedOptions(): ResolvedSegmenterOptions;\n }\n\n interface ResolvedSegmenterOptions {\n locale: string;\n granularity: "grapheme" | "word" | "sentence";\n }\n\n interface Segments {\n /**\n * Returns an object describing the segment in the original string that includes the code unit at a specified index.\n *\n * @param codeUnitIndex - A number specifying the index of the code unit in the original input string. If the value is omitted, it defaults to `0`.\n */\n containing(codeUnitIndex?: number): SegmentData;\n\n /** Returns an iterator to iterate over the segments. */\n [Symbol.iterator](): IterableIterator<SegmentData>;\n }\n\n interface SegmentData {\n /** A string containing the segment extracted from the original input string. */\n segment: string;\n /** The code unit index in the original input string at which the segment begins. */\n index: number;\n /** The complete input string that was segmented. */\n input: string;\n /**\n * A boolean value only if granularity is "word"; otherwise, undefined.\n * If granularity is "word", then isWordLike is true when the segment is word-like (i.e., consists of letters/numbers/ideographs/etc.); otherwise, false.\n */\n isWordLike?: boolean;\n }\n\n const Segmenter: {\n prototype: Segmenter;\n\n /**\n * Creates a new `Intl.Segmenter` object.\n *\n * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.\n * For the general form and interpretation of the `locales` argument,\n * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\n *\n * @param options - An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/Segmenter#parameters)\n * with some or all options of `SegmenterOptions`.\n *\n * @returns [Intl.Segmenter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segments) object.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter).\n */\n new (locales?: LocalesArgument, options?: SegmenterOptions): Segmenter;\n\n /**\n * Returns an array containing those of the provided locales that are supported without having to fall back to the runtime\'s default locale.\n *\n * @param locales - A string with a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such strings.\n * For the general form and interpretation of the `locales` argument,\n * see the [`Intl` page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation).\n *\n * @param options An [object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/supportedLocalesOf#parameters).\n * with some or all possible options.\n *\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/supportedLocalesOf)\n */\n supportedLocalesOf(locales: LocalesArgument, options?: Pick<SegmenterOptions, "localeMatcher">): UnicodeBCP47LocaleIdentifier[];\n };\n\n /**\n * Returns a sorted array of the supported collation, calendar, currency, numbering system, timezones, and units by the implementation.\n * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/supportedValuesOf)\n *\n * @param key A string indicating the category of values to return.\n * @returns A sorted array of the supported values.\n */\n function supportedValuesOf(key: "calendar" | "collation" | "currency" | "numberingSystem" | "timeZone" | "unit"): string[];\n}\n', + 'lib.es2022.object.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface ObjectConstructor {\n /**\n * Determines whether an object has a property with the specified name.\n * @param o An object.\n * @param v A property name.\n */\n hasOwn(o: object, v: PropertyKey): boolean;\n}\n', + 'lib.es2022.regexp.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface RegExpMatchArray {\n indices?: RegExpIndicesArray;\n}\n\ninterface RegExpExecArray {\n indices?: RegExpIndicesArray;\n}\n\ninterface RegExpIndicesArray extends Array<[number, number]> {\n groups?: {\n [key: string]: [number, number];\n };\n}\n\ninterface RegExp {\n /**\n * Returns a Boolean value indicating the state of the hasIndices flag (d) used with with a regular expression.\n * Default is false. Read-only.\n */\n readonly hasIndices: boolean;\n}\n', + 'lib.es2022.sharedmemory.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface Atomics {\n /**\n * A non-blocking, asynchronous version of wait which is usable on the main thread.\n * Waits asynchronously on a shared memory location and returns a Promise\n * @param typedArray A shared Int32Array or BigInt64Array.\n * @param index The position in the typedArray to wait on.\n * @param value The expected value to test.\n * @param [timeout] The expected value to test.\n */\n waitAsync(typedArray: Int32Array, index: number, value: number, timeout?: number): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; };\n\n /**\n * A non-blocking, asynchronous version of wait which is usable on the main thread.\n * Waits asynchronously on a shared memory location and returns a Promise\n * @param typedArray A shared Int32Array or BigInt64Array.\n * @param index The position in the typedArray to wait on.\n * @param value The expected value to test.\n * @param [timeout] The expected value to test.\n */\n waitAsync(typedArray: BigInt64Array, index: number, value: bigint, timeout?: number): { async: false; value: "not-equal" | "timed-out"; } | { async: true; value: Promise<"ok" | "timed-out">; };\n}\n', + 'lib.es2022.string.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface String {\n /**\n * Returns a new String consisting of the single UTF-16 code unit located at the specified index.\n * @param index The zero-based index of the desired code unit. A negative index will count back from the last item.\n */\n at(index: number): string | undefined;\n}\n', + 'lib.es2023.array.d.ts': + "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib=\"true\"/>\n\ninterface Array<T> {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S | undefined;\n findLast(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): number;\n\n /**\n * Returns a copy of an array with its elements reversed.\n */\n toReversed(): T[];\n\n /**\n * Returns a copy of an array with its elements sorted.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\n * ```ts\n * [11, 2, 22, 1].toSorted((a, b) => a - b) // [1, 2, 11, 22]\n * ```\n */\n toSorted(compareFn?: (a: T, b: T) => number): T[];\n\n /**\n * Copies an array and removes elements and, if necessary, inserts new elements in their place. Returns the copied array.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n * @param items Elements to insert into the copied array in place of the deleted elements.\n * @returns The copied array.\n */\n toSpliced(start: number, deleteCount: number, ...items: T[]): T[];\n\n /**\n * Copies an array and removes elements while returning the remaining elements.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n * @returns A copy of the original array with the remaining elements.\n */\n toSpliced(start: number, deleteCount?: number): T[];\n\n /**\n * Copies an array, then overwrites the value at the provided index with the\n * given value. If the index is negative, then it replaces from the end\n * of the array.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to write into the copied array.\n * @returns The copied array with the updated value.\n */\n with(index: number, value: T): T[];\n}\n\ninterface ReadonlyArray<T> {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast<S extends T>(\n predicate: (value: T, index: number, array: readonly T[]) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (value: T, index: number, array: readonly T[]) => unknown,\n thisArg?: any,\n ): T | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (value: T, index: number, array: readonly T[]) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copied array with all of its elements reversed.\n */\n toReversed(): T[];\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\n * ```ts\n * [11, 2, 22, 1].toSorted((a, b) => a - b) // [1, 2, 11, 22]\n * ```\n */\n toSorted(compareFn?: (a: T, b: T) => number): T[];\n\n /**\n * Copies an array and removes elements while, if necessary, inserting new elements in their place, returning the remaining elements.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n * @param items Elements to insert into the copied array in place of the deleted elements.\n * @returns A copy of the original array with the remaining elements.\n */\n toSpliced(start: number, deleteCount: number, ...items: T[]): T[];\n\n /**\n * Copies an array and removes elements while returning the remaining elements.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n * @returns A copy of the original array with the remaining elements.\n */\n toSpliced(start: number, deleteCount?: number): T[];\n\n /**\n * Copies an array, then overwrites the value at the provided index with the\n * given value. If the index is negative, then it replaces from the end\n * of the array\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: T): T[];\n}\n\ninterface Int8Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast<S extends number>(\n predicate: (\n value: number,\n index: number,\n array: Int8Array,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (value: number, index: number, array: Int8Array) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (value: number, index: number, array: Int8Array) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Uint8Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Uint8Array.from([11, 2, 22, 1]);\n * myNums.toSorted((a, b) => a - b) // Uint8Array(4) [1, 2, 11, 22]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Uint8Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Uint8Array;\n}\n\ninterface Uint8Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast<S extends number>(\n predicate: (\n value: number,\n index: number,\n array: Uint8Array,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (value: number, index: number, array: Uint8Array) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (value: number, index: number, array: Uint8Array) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Uint8Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Uint8Array.from([11, 2, 22, 1]);\n * myNums.toSorted((a, b) => a - b) // Uint8Array(4) [1, 2, 11, 22]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Uint8Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Uint8Array;\n}\n\ninterface Uint8ClampedArray {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast<S extends number>(\n predicate: (\n value: number,\n index: number,\n array: Uint8ClampedArray,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: number,\n index: number,\n array: Uint8ClampedArray,\n ) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: number,\n index: number,\n array: Uint8ClampedArray,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Uint8ClampedArray;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Uint8ClampedArray.from([11, 2, 22, 1]);\n * myNums.toSorted((a, b) => a - b) // Uint8ClampedArray(4) [1, 2, 11, 22]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Uint8ClampedArray;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Uint8ClampedArray;\n}\n\ninterface Int16Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast<S extends number>(\n predicate: (\n value: number,\n index: number,\n array: Int16Array,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (value: number, index: number, array: Int16Array) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (value: number, index: number, array: Int16Array) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Int16Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Int16Array.from([11, 2, -22, 1]);\n * myNums.toSorted((a, b) => a - b) // Int16Array(4) [-22, 1, 2, 11]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Int16Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Int16Array;\n}\n\ninterface Uint16Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast<S extends number>(\n predicate: (\n value: number,\n index: number,\n array: Uint16Array,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: number,\n index: number,\n array: Uint16Array,\n ) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: number,\n index: number,\n array: Uint16Array,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Uint16Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Uint16Array.from([11, 2, 22, 1]);\n * myNums.toSorted((a, b) => a - b) // Uint16Array(4) [1, 2, 11, 22]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Uint16Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Uint16Array;\n}\n\ninterface Int32Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast<S extends number>(\n predicate: (\n value: number,\n index: number,\n array: Int32Array,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (value: number, index: number, array: Int32Array) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (value: number, index: number, array: Int32Array) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Int32Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Int32Array.from([11, 2, -22, 1]);\n * myNums.toSorted((a, b) => a - b) // Int32Array(4) [-22, 1, 2, 11]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Int32Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Int32Array;\n}\n\ninterface Uint32Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast<S extends number>(\n predicate: (\n value: number,\n index: number,\n array: Uint32Array,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: number,\n index: number,\n array: Uint32Array,\n ) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: number,\n index: number,\n array: Uint32Array,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Uint32Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Uint32Array.from([11, 2, 22, 1]);\n * myNums.toSorted((a, b) => a - b) // Uint32Array(4) [1, 2, 11, 22]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Uint32Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Uint32Array;\n}\n\ninterface Float32Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast<S extends number>(\n predicate: (\n value: number,\n index: number,\n array: Float32Array,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: number,\n index: number,\n array: Float32Array,\n ) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: number,\n index: number,\n array: Float32Array,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Float32Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Float32Array.from([11.25, 2, -22.5, 1]);\n * myNums.toSorted((a, b) => a - b) // Float32Array(4) [-22.5, 1, 2, 11.5]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Float32Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Float32Array;\n}\n\ninterface Float64Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast<S extends number>(\n predicate: (\n value: number,\n index: number,\n array: Float64Array,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: number,\n index: number,\n array: Float64Array,\n ) => unknown,\n thisArg?: any,\n ): number | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: number,\n index: number,\n array: Float64Array,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): Float64Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = Float64Array.from([11.25, 2, -22.5, 1]);\n * myNums.toSorted((a, b) => a - b) // Float64Array(4) [-22.5, 1, 2, 11.5]\n * ```\n */\n toSorted(compareFn?: (a: number, b: number) => number): Float64Array;\n\n /**\n * Copies the array and inserts the given number at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: number): Float64Array;\n}\n\ninterface BigInt64Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast<S extends bigint>(\n predicate: (\n value: bigint,\n index: number,\n array: BigInt64Array,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: bigint,\n index: number,\n array: BigInt64Array,\n ) => unknown,\n thisArg?: any,\n ): bigint | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: bigint,\n index: number,\n array: BigInt64Array,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): BigInt64Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = BigInt64Array.from([11n, 2n, -22n, 1n]);\n * myNums.toSorted((a, b) => Number(a - b)) // BigInt64Array(4) [-22n, 1n, 2n, 11n]\n * ```\n */\n toSorted(compareFn?: (a: bigint, b: bigint) => number): BigInt64Array;\n\n /**\n * Copies the array and inserts the given bigint at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: bigint): BigInt64Array;\n}\n\ninterface BigUint64Array {\n /**\n * Returns the value of the last element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate findLast calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found, findLast\n * immediately returns that element value. Otherwise, findLast returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLast<S extends bigint>(\n predicate: (\n value: bigint,\n index: number,\n array: BigUint64Array,\n ) => value is S,\n thisArg?: any,\n ): S | undefined;\n findLast(\n predicate: (\n value: bigint,\n index: number,\n array: BigUint64Array,\n ) => unknown,\n thisArg?: any,\n ): bigint | undefined;\n\n /**\n * Returns the index of the last element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate findLastIndex calls predicate once for each element of the array, in descending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findLastIndex(\n predicate: (\n value: bigint,\n index: number,\n array: BigUint64Array,\n ) => unknown,\n thisArg?: any,\n ): number;\n\n /**\n * Copies the array and returns the copy with the elements in reverse order.\n */\n toReversed(): BigUint64Array;\n\n /**\n * Copies and sorts the array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they're equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * const myNums = BigUint64Array.from([11n, 2n, 22n, 1n]);\n * myNums.toSorted((a, b) => Number(a - b)) // BigUint64Array(4) [1n, 2n, 11n, 22n]\n * ```\n */\n toSorted(compareFn?: (a: bigint, b: bigint) => number): BigUint64Array;\n\n /**\n * Copies the array and inserts the given bigint at the provided index.\n * @param index The index of the value to overwrite. If the index is\n * negative, then it replaces from the end of the array.\n * @param value The value to insert into the copied array.\n * @returns A copy of the original array with the inserted value.\n */\n with(index: number, value: bigint): BigUint64Array;\n}\n", + 'lib.es2023.collection.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface WeakKeyTypes {\n symbol: symbol;\n}\n', + 'lib.es2023.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2022" />\n/// <reference lib="es2023.array" />\n/// <reference lib="es2023.collection" />\n', + 'lib.es2023.full.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2023" />\n/// <reference lib="dom" />\n/// <reference lib="webworker.importscripts" />\n/// <reference lib="scripthost" />\n/// <reference lib="dom.iterable" />\n/// <reference lib="dom.asynciterable" />\n', + 'lib.es5.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="decorators" />\n/// <reference lib="decorators.legacy" />\n\n/////////////////////////////\n/// ECMAScript APIs\n/////////////////////////////\n\ndeclare var NaN: number;\ndeclare var Infinity: number;\n\n/**\n * Evaluates JavaScript code and executes it.\n * @param x A String value that contains valid JavaScript code.\n */\ndeclare function eval(x: string): any;\n\n/**\n * Converts a string to an integer.\n * @param string A string to convert into a number.\n * @param radix A value between 2 and 36 that specifies the base of the number in `string`.\n * If this argument is not supplied, strings with a prefix of \'0x\' are considered hexadecimal.\n * All other strings are considered decimal.\n */\ndeclare function parseInt(string: string, radix?: number): number;\n\n/**\n * Converts a string to a floating-point number.\n * @param string A string that contains a floating-point number.\n */\ndeclare function parseFloat(string: string): number;\n\n/**\n * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).\n * @param number A numeric value.\n */\ndeclare function isNaN(number: number): boolean;\n\n/**\n * Determines whether a supplied number is finite.\n * @param number Any numeric value.\n */\ndeclare function isFinite(number: number): boolean;\n\n/**\n * Gets the unencoded version of an encoded Uniform Resource Identifier (URI).\n * @param encodedURI A value representing an encoded URI.\n */\ndeclare function decodeURI(encodedURI: string): string;\n\n/**\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n * @param encodedURIComponent A value representing an encoded URI component.\n */\ndeclare function decodeURIComponent(encodedURIComponent: string): string;\n\n/**\n * Encodes a text string as a valid Uniform Resource Identifier (URI)\n * @param uri A value representing an unencoded URI.\n */\ndeclare function encodeURI(uri: string): string;\n\n/**\n * Encodes a text string as a valid component of a Uniform Resource Identifier (URI).\n * @param uriComponent A value representing an unencoded URI component.\n */\ndeclare function encodeURIComponent(uriComponent: string | number | boolean): string;\n\n/**\n * Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.\n * @deprecated A legacy feature for browser compatibility\n * @param string A string value\n */\ndeclare function escape(string: string): string;\n\n/**\n * Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.\n * @deprecated A legacy feature for browser compatibility\n * @param string A string value\n */\ndeclare function unescape(string: string): string;\n\ninterface Symbol {\n /** Returns a string representation of an object. */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): symbol;\n}\n\ndeclare type PropertyKey = string | number | symbol;\n\ninterface PropertyDescriptor {\n configurable?: boolean;\n enumerable?: boolean;\n value?: any;\n writable?: boolean;\n get?(): any;\n set?(v: any): void;\n}\n\ninterface PropertyDescriptorMap {\n [key: PropertyKey]: PropertyDescriptor;\n}\n\ninterface Object {\n /** The initial value of Object.prototype.constructor is the standard built-in Object constructor. */\n constructor: Function;\n\n /** Returns a string representation of an object. */\n toString(): string;\n\n /** Returns a date converted to a string using the current locale. */\n toLocaleString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): Object;\n\n /**\n * Determines whether an object has a property with the specified name.\n * @param v A property name.\n */\n hasOwnProperty(v: PropertyKey): boolean;\n\n /**\n * Determines whether an object exists in another object\'s prototype chain.\n * @param v Another object whose prototype chain is to be checked.\n */\n isPrototypeOf(v: Object): boolean;\n\n /**\n * Determines whether a specified property is enumerable.\n * @param v A property name.\n */\n propertyIsEnumerable(v: PropertyKey): boolean;\n}\n\ninterface ObjectConstructor {\n new (value?: any): Object;\n (): any;\n (value: any): any;\n\n /** A reference to the prototype for a class of objects. */\n readonly prototype: Object;\n\n /**\n * Returns the prototype of an object.\n * @param o The object that references the prototype.\n */\n getPrototypeOf(o: any): any;\n\n /**\n * Gets the own property descriptor of the specified object.\n * An own property descriptor is one that is defined directly on the object and is not inherited from the object\'s prototype.\n * @param o Object that contains the property.\n * @param p Name of the property.\n */\n getOwnPropertyDescriptor(o: any, p: PropertyKey): PropertyDescriptor | undefined;\n\n /**\n * Returns the names of the own properties of an object. The own properties of an object are those that are defined directly\n * on that object, and are not inherited from the object\'s prototype. The properties of an object include both fields (objects) and functions.\n * @param o Object that contains the own properties.\n */\n getOwnPropertyNames(o: any): string[];\n\n /**\n * Creates an object that has the specified prototype or that has null prototype.\n * @param o Object to use as a prototype. May be null.\n */\n create(o: object | null): any;\n\n /**\n * Creates an object that has the specified prototype, and that optionally contains specified properties.\n * @param o Object to use as a prototype. May be null\n * @param properties JavaScript object that contains one or more property descriptors.\n */\n create(o: object | null, properties: PropertyDescriptorMap & ThisType<any>): any;\n\n /**\n * Adds a property to an object, or modifies attributes of an existing property.\n * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object.\n * @param p The property name.\n * @param attributes Descriptor for the property. It can be for a data property or an accessor property.\n */\n defineProperty<T>(o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType<any>): T;\n\n /**\n * Adds one or more properties to an object, and/or modifies attributes of existing properties.\n * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object.\n * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property.\n */\n defineProperties<T>(o: T, properties: PropertyDescriptorMap & ThisType<any>): T;\n\n /**\n * Prevents the modification of attributes of existing properties, and prevents the addition of new properties.\n * @param o Object on which to lock the attributes.\n */\n seal<T>(o: T): T;\n\n /**\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\n * @param f Object on which to lock the attributes.\n */\n freeze<T extends Function>(f: T): T;\n\n /**\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\n * @param o Object on which to lock the attributes.\n */\n freeze<T extends { [idx: string]: U | null | undefined | object; }, U extends string | bigint | number | boolean | symbol>(o: T): Readonly<T>;\n\n /**\n * Prevents the modification of existing property attributes and values, and prevents the addition of new properties.\n * @param o Object on which to lock the attributes.\n */\n freeze<T>(o: T): Readonly<T>;\n\n /**\n * Prevents the addition of new properties to an object.\n * @param o Object to make non-extensible.\n */\n preventExtensions<T>(o: T): T;\n\n /**\n * Returns true if existing property attributes cannot be modified in an object and new properties cannot be added to the object.\n * @param o Object to test.\n */\n isSealed(o: any): boolean;\n\n /**\n * Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object.\n * @param o Object to test.\n */\n isFrozen(o: any): boolean;\n\n /**\n * Returns a value that indicates whether new properties can be added to an object.\n * @param o Object to test.\n */\n isExtensible(o: any): boolean;\n\n /**\n * Returns the names of the enumerable string properties and methods of an object.\n * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\n */\n keys(o: object): string[];\n}\n\n/**\n * Provides functionality common to all JavaScript objects.\n */\ndeclare var Object: ObjectConstructor;\n\n/**\n * Creates a new function.\n */\ninterface Function {\n /**\n * Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.\n * @param thisArg The object to be used as the this object.\n * @param argArray A set of arguments to be passed to the function.\n */\n apply(this: Function, thisArg: any, argArray?: any): any;\n\n /**\n * Calls a method of an object, substituting another object for the current object.\n * @param thisArg The object to be used as the current object.\n * @param argArray A list of arguments to be passed to the method.\n */\n call(this: Function, thisArg: any, ...argArray: any[]): any;\n\n /**\n * For a given function, creates a bound function that has the same body as the original function.\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\n * @param thisArg An object to which the this keyword can refer inside the new function.\n * @param argArray A list of arguments to be passed to the new function.\n */\n bind(this: Function, thisArg: any, ...argArray: any[]): any;\n\n /** Returns a string representation of a function. */\n toString(): string;\n\n prototype: any;\n readonly length: number;\n\n // Non-standard extensions\n arguments: any;\n caller: Function;\n}\n\ninterface FunctionConstructor {\n /**\n * Creates a new function.\n * @param args A list of arguments the function accepts.\n */\n new (...args: string[]): Function;\n (...args: string[]): Function;\n readonly prototype: Function;\n}\n\ndeclare var Function: FunctionConstructor;\n\n/**\n * Extracts the type of the \'this\' parameter of a function type, or \'unknown\' if the function type has no \'this\' parameter.\n */\ntype ThisParameterType<T> = T extends (this: infer U, ...args: never) => any ? U : unknown;\n\n/**\n * Removes the \'this\' parameter from a function type.\n */\ntype OmitThisParameter<T> = unknown extends ThisParameterType<T> ? T : T extends (...args: infer A) => infer R ? (...args: A) => R : T;\n\ninterface CallableFunction extends Function {\n /**\n * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\n * @param thisArg The object to be used as the this object.\n */\n apply<T, R>(this: (this: T) => R, thisArg: T): R;\n\n /**\n * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\n * @param thisArg The object to be used as the this object.\n * @param args An array of argument values to be passed to the function.\n */\n apply<T, A extends any[], R>(this: (this: T, ...args: A) => R, thisArg: T, args: A): R;\n\n /**\n * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.\n * @param thisArg The object to be used as the this object.\n * @param args Argument values to be passed to the function.\n */\n call<T, A extends any[], R>(this: (this: T, ...args: A) => R, thisArg: T, ...args: A): R;\n\n /**\n * For a given function, creates a bound function that has the same body as the original function.\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\n * @param thisArg The object to be used as the this object.\n */\n bind<T>(this: T, thisArg: ThisParameterType<T>): OmitThisParameter<T>;\n\n /**\n * For a given function, creates a bound function that has the same body as the original function.\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\n * @param thisArg The object to be used as the this object.\n * @param args Arguments to bind to the parameters of the function.\n */\n bind<T, A extends any[], B extends any[], R>(this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R;\n}\n\ninterface NewableFunction extends Function {\n /**\n * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\n * @param thisArg The object to be used as the this object.\n */\n apply<T>(this: new () => T, thisArg: T): void;\n /**\n * Calls the function with the specified object as the this value and the elements of specified array as the arguments.\n * @param thisArg The object to be used as the this object.\n * @param args An array of argument values to be passed to the function.\n */\n apply<T, A extends any[]>(this: new (...args: A) => T, thisArg: T, args: A): void;\n\n /**\n * Calls the function with the specified object as the this value and the specified rest arguments as the arguments.\n * @param thisArg The object to be used as the this object.\n * @param args Argument values to be passed to the function.\n */\n call<T, A extends any[]>(this: new (...args: A) => T, thisArg: T, ...args: A): void;\n\n /**\n * For a given function, creates a bound function that has the same body as the original function.\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\n * @param thisArg The object to be used as the this object.\n */\n bind<T>(this: T, thisArg: any): T;\n\n /**\n * For a given function, creates a bound function that has the same body as the original function.\n * The this object of the bound function is associated with the specified object, and has the specified initial parameters.\n * @param thisArg The object to be used as the this object.\n * @param args Arguments to bind to the parameters of the function.\n */\n bind<A extends any[], B extends any[], R>(this: new (...args: [...A, ...B]) => R, thisArg: any, ...args: A): new (...args: B) => R;\n}\n\ninterface IArguments {\n [index: number]: any;\n length: number;\n callee: Function;\n}\n\ninterface String {\n /** Returns a string representation of a string. */\n toString(): string;\n\n /**\n * Returns the character at the specified index.\n * @param pos The zero-based index of the desired character.\n */\n charAt(pos: number): string;\n\n /**\n * Returns the Unicode value of the character at the specified location.\n * @param index The zero-based index of the desired character. If there is no character at the specified index, NaN is returned.\n */\n charCodeAt(index: number): number;\n\n /**\n * Returns a string that contains the concatenation of two or more strings.\n * @param strings The strings to append to the end of the string.\n */\n concat(...strings: string[]): string;\n\n /**\n * Returns the position of the first occurrence of a substring.\n * @param searchString The substring to search for in the string\n * @param position The index at which to begin searching the String object. If omitted, search starts at the beginning of the string.\n */\n indexOf(searchString: string, position?: number): number;\n\n /**\n * Returns the last occurrence of a substring in the string.\n * @param searchString The substring to search for.\n * @param position The index at which to begin searching. If omitted, the search begins at the end of the string.\n */\n lastIndexOf(searchString: string, position?: number): number;\n\n /**\n * Determines whether two strings are equivalent in the current locale.\n * @param that String to compare to target string\n */\n localeCompare(that: string): number;\n\n /**\n * Matches a string with a regular expression, and returns an array containing the results of that search.\n * @param regexp A variable name or string literal containing the regular expression pattern and flags.\n */\n match(regexp: string | RegExp): RegExpMatchArray | null;\n\n /**\n * Replaces text in a string, using a regular expression or search string.\n * @param searchValue A string or regular expression to search for.\n * @param replaceValue A string containing the text to replace. When the {@linkcode searchValue} is a `RegExp`, all matches are replaced if the `g` flag is set (or only those matches at the beginning, if the `y` flag is also present). Otherwise, only the first match of {@linkcode searchValue} is replaced.\n */\n replace(searchValue: string | RegExp, replaceValue: string): string;\n\n /**\n * Replaces text in a string, using a regular expression or search string.\n * @param searchValue A string to search for.\n * @param replacer A function that returns the replacement text.\n */\n replace(searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;\n\n /**\n * Finds the first substring match in a regular expression search.\n * @param regexp The regular expression pattern and applicable flags.\n */\n search(regexp: string | RegExp): number;\n\n /**\n * Returns a section of a string.\n * @param start The index to the beginning of the specified portion of stringObj.\n * @param end The index to the end of the specified portion of stringObj. The substring includes the characters up to, but not including, the character indicated by end.\n * If this value is not specified, the substring continues to the end of stringObj.\n */\n slice(start?: number, end?: number): string;\n\n /**\n * Split a string into substrings using the specified separator and return them as an array.\n * @param separator A string that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned.\n * @param limit A value used to limit the number of elements returned in the array.\n */\n split(separator: string | RegExp, limit?: number): string[];\n\n /**\n * Returns the substring at the specified location within a String object.\n * @param start The zero-based index number indicating the beginning of the substring.\n * @param end Zero-based index number indicating the end of the substring. The substring includes the characters up to, but not including, the character indicated by end.\n * If end is omitted, the characters from start through the end of the original string are returned.\n */\n substring(start: number, end?: number): string;\n\n /** Converts all the alphabetic characters in a string to lowercase. */\n toLowerCase(): string;\n\n /** Converts all alphabetic characters to lowercase, taking into account the host environment\'s current locale. */\n toLocaleLowerCase(locales?: string | string[]): string;\n\n /** Converts all the alphabetic characters in a string to uppercase. */\n toUpperCase(): string;\n\n /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment\'s current locale. */\n toLocaleUpperCase(locales?: string | string[]): string;\n\n /** Removes the leading and trailing white space and line terminator characters from a string. */\n trim(): string;\n\n /** Returns the length of a String object. */\n readonly length: number;\n\n // IE extensions\n /**\n * Gets a substring beginning at the specified location and having the specified length.\n * @deprecated A legacy feature for browser compatibility\n * @param from The starting position of the desired substring. The index of the first character in the string is zero.\n * @param length The number of characters to include in the returned substring.\n */\n substr(from: number, length?: number): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): string;\n\n readonly [index: number]: string;\n}\n\ninterface StringConstructor {\n new (value?: any): String;\n (value?: any): string;\n readonly prototype: String;\n fromCharCode(...codes: number[]): string;\n}\n\n/**\n * Allows manipulation and formatting of text strings and determination and location of substrings within strings.\n */\ndeclare var String: StringConstructor;\n\ninterface Boolean {\n /** Returns the primitive value of the specified object. */\n valueOf(): boolean;\n}\n\ninterface BooleanConstructor {\n new (value?: any): Boolean;\n <T>(value?: T): boolean;\n readonly prototype: Boolean;\n}\n\ndeclare var Boolean: BooleanConstructor;\n\ninterface Number {\n /**\n * Returns a string representation of an object.\n * @param radix Specifies a radix for converting numeric values to strings. This value is only used for numbers.\n */\n toString(radix?: number): string;\n\n /**\n * Returns a string representing a number in fixed-point notation.\n * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\n */\n toFixed(fractionDigits?: number): string;\n\n /**\n * Returns a string containing a number represented in exponential notation.\n * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive.\n */\n toExponential(fractionDigits?: number): string;\n\n /**\n * Returns a string containing a number represented either in exponential or fixed-point notation with a specified number of digits.\n * @param precision Number of significant digits. Must be in the range 1 - 21, inclusive.\n */\n toPrecision(precision?: number): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): number;\n}\n\ninterface NumberConstructor {\n new (value?: any): Number;\n (value?: any): number;\n readonly prototype: Number;\n\n /** The largest number that can be represented in JavaScript. Equal to approximately 1.79E+308. */\n readonly MAX_VALUE: number;\n\n /** The closest number to zero that can be represented in JavaScript. Equal to approximately 5.00E-324. */\n readonly MIN_VALUE: number;\n\n /**\n * A value that is not a number.\n * In equality comparisons, NaN does not equal any value, including itself. To test whether a value is equivalent to NaN, use the isNaN function.\n */\n readonly NaN: number;\n\n /**\n * A value that is less than the largest negative number that can be represented in JavaScript.\n * JavaScript displays NEGATIVE_INFINITY values as -infinity.\n */\n readonly NEGATIVE_INFINITY: number;\n\n /**\n * A value greater than the largest number that can be represented in JavaScript.\n * JavaScript displays POSITIVE_INFINITY values as infinity.\n */\n readonly POSITIVE_INFINITY: number;\n}\n\n/** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */\ndeclare var Number: NumberConstructor;\n\ninterface TemplateStringsArray extends ReadonlyArray<string> {\n readonly raw: readonly string[];\n}\n\n/**\n * The type of `import.meta`.\n *\n * If you need to declare that a given property exists on `import.meta`,\n * this type may be augmented via interface merging.\n */\ninterface ImportMeta {\n}\n\n/**\n * The type for the optional second argument to `import()`.\n *\n * If your host environment supports additional options, this type may be\n * augmented via interface merging.\n */\ninterface ImportCallOptions {\n /** @deprecated*/ assert?: ImportAssertions;\n with?: ImportAttributes;\n}\n\n/**\n * The type for the `assert` property of the optional second argument to `import()`.\n * @deprecated\n */\ninterface ImportAssertions {\n [key: string]: string;\n}\n\n/**\n * The type for the `with` property of the optional second argument to `import()`.\n */\ninterface ImportAttributes {\n [key: string]: string;\n}\n\ninterface Math {\n /** The mathematical constant e. This is Euler\'s number, the base of natural logarithms. */\n readonly E: number;\n /** The natural logarithm of 10. */\n readonly LN10: number;\n /** The natural logarithm of 2. */\n readonly LN2: number;\n /** The base-2 logarithm of e. */\n readonly LOG2E: number;\n /** The base-10 logarithm of e. */\n readonly LOG10E: number;\n /** Pi. This is the ratio of the circumference of a circle to its diameter. */\n readonly PI: number;\n /** The square root of 0.5, or, equivalently, one divided by the square root of 2. */\n readonly SQRT1_2: number;\n /** The square root of 2. */\n readonly SQRT2: number;\n /**\n * Returns the absolute value of a number (the value without regard to whether it is positive or negative).\n * For example, the absolute value of -5 is the same as the absolute value of 5.\n * @param x A numeric expression for which the absolute value is needed.\n */\n abs(x: number): number;\n /**\n * Returns the arc cosine (or inverse cosine) of a number.\n * @param x A numeric expression.\n */\n acos(x: number): number;\n /**\n * Returns the arcsine of a number.\n * @param x A numeric expression.\n */\n asin(x: number): number;\n /**\n * Returns the arctangent of a number.\n * @param x A numeric expression for which the arctangent is needed.\n */\n atan(x: number): number;\n /**\n * Returns the angle (in radians) from the X axis to a point.\n * @param y A numeric expression representing the cartesian y-coordinate.\n * @param x A numeric expression representing the cartesian x-coordinate.\n */\n atan2(y: number, x: number): number;\n /**\n * Returns the smallest integer greater than or equal to its numeric argument.\n * @param x A numeric expression.\n */\n ceil(x: number): number;\n /**\n * Returns the cosine of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n cos(x: number): number;\n /**\n * Returns e (the base of natural logarithms) raised to a power.\n * @param x A numeric expression representing the power of e.\n */\n exp(x: number): number;\n /**\n * Returns the greatest integer less than or equal to its numeric argument.\n * @param x A numeric expression.\n */\n floor(x: number): number;\n /**\n * Returns the natural logarithm (base e) of a number.\n * @param x A numeric expression.\n */\n log(x: number): number;\n /**\n * Returns the larger of a set of supplied numeric expressions.\n * @param values Numeric expressions to be evaluated.\n */\n max(...values: number[]): number;\n /**\n * Returns the smaller of a set of supplied numeric expressions.\n * @param values Numeric expressions to be evaluated.\n */\n min(...values: number[]): number;\n /**\n * Returns the value of a base expression taken to a specified power.\n * @param x The base value of the expression.\n * @param y The exponent value of the expression.\n */\n pow(x: number, y: number): number;\n /** Returns a pseudorandom number between 0 and 1. */\n random(): number;\n /**\n * Returns a supplied numeric expression rounded to the nearest integer.\n * @param x The value to be rounded to the nearest integer.\n */\n round(x: number): number;\n /**\n * Returns the sine of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n sin(x: number): number;\n /**\n * Returns the square root of a number.\n * @param x A numeric expression.\n */\n sqrt(x: number): number;\n /**\n * Returns the tangent of a number.\n * @param x A numeric expression that contains an angle measured in radians.\n */\n tan(x: number): number;\n}\n/** An intrinsic object that provides basic mathematics functionality and constants. */\ndeclare var Math: Math;\n\n/** Enables basic storage and retrieval of dates and times. */\ninterface Date {\n /** Returns a string representation of a date. The format of the string depends on the locale. */\n toString(): string;\n /** Returns a date as a string value. */\n toDateString(): string;\n /** Returns a time as a string value. */\n toTimeString(): string;\n /** Returns a value as a string value appropriate to the host environment\'s current locale. */\n toLocaleString(): string;\n /** Returns a date as a string value appropriate to the host environment\'s current locale. */\n toLocaleDateString(): string;\n /** Returns a time as a string value appropriate to the host environment\'s current locale. */\n toLocaleTimeString(): string;\n /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */\n valueOf(): number;\n /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */\n getTime(): number;\n /** Gets the year, using local time. */\n getFullYear(): number;\n /** Gets the year using Universal Coordinated Time (UTC). */\n getUTCFullYear(): number;\n /** Gets the month, using local time. */\n getMonth(): number;\n /** Gets the month of a Date object using Universal Coordinated Time (UTC). */\n getUTCMonth(): number;\n /** Gets the day-of-the-month, using local time. */\n getDate(): number;\n /** Gets the day-of-the-month, using Universal Coordinated Time (UTC). */\n getUTCDate(): number;\n /** Gets the day of the week, using local time. */\n getDay(): number;\n /** Gets the day of the week using Universal Coordinated Time (UTC). */\n getUTCDay(): number;\n /** Gets the hours in a date, using local time. */\n getHours(): number;\n /** Gets the hours value in a Date object using Universal Coordinated Time (UTC). */\n getUTCHours(): number;\n /** Gets the minutes of a Date object, using local time. */\n getMinutes(): number;\n /** Gets the minutes of a Date object using Universal Coordinated Time (UTC). */\n getUTCMinutes(): number;\n /** Gets the seconds of a Date object, using local time. */\n getSeconds(): number;\n /** Gets the seconds of a Date object using Universal Coordinated Time (UTC). */\n getUTCSeconds(): number;\n /** Gets the milliseconds of a Date, using local time. */\n getMilliseconds(): number;\n /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */\n getUTCMilliseconds(): number;\n /** Gets the difference in minutes between the time on the local computer and Universal Coordinated Time (UTC). */\n getTimezoneOffset(): number;\n /**\n * Sets the date and time value in the Date object.\n * @param time A numeric value representing the number of elapsed milliseconds since midnight, January 1, 1970 GMT.\n */\n setTime(time: number): number;\n /**\n * Sets the milliseconds value in the Date object using local time.\n * @param ms A numeric value equal to the millisecond value.\n */\n setMilliseconds(ms: number): number;\n /**\n * Sets the milliseconds value in the Date object using Universal Coordinated Time (UTC).\n * @param ms A numeric value equal to the millisecond value.\n */\n setUTCMilliseconds(ms: number): number;\n\n /**\n * Sets the seconds value in the Date object using local time.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setSeconds(sec: number, ms?: number): number;\n /**\n * Sets the seconds value in the Date object using Universal Coordinated Time (UTC).\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setUTCSeconds(sec: number, ms?: number): number;\n /**\n * Sets the minutes value in the Date object using local time.\n * @param min A numeric value equal to the minutes value.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setMinutes(min: number, sec?: number, ms?: number): number;\n /**\n * Sets the minutes value in the Date object using Universal Coordinated Time (UTC).\n * @param min A numeric value equal to the minutes value.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setUTCMinutes(min: number, sec?: number, ms?: number): number;\n /**\n * Sets the hour value in the Date object using local time.\n * @param hours A numeric value equal to the hours value.\n * @param min A numeric value equal to the minutes value.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setHours(hours: number, min?: number, sec?: number, ms?: number): number;\n /**\n * Sets the hours value in the Date object using Universal Coordinated Time (UTC).\n * @param hours A numeric value equal to the hours value.\n * @param min A numeric value equal to the minutes value.\n * @param sec A numeric value equal to the seconds value.\n * @param ms A numeric value equal to the milliseconds value.\n */\n setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number;\n /**\n * Sets the numeric day-of-the-month value of the Date object using local time.\n * @param date A numeric value equal to the day of the month.\n */\n setDate(date: number): number;\n /**\n * Sets the numeric day of the month in the Date object using Universal Coordinated Time (UTC).\n * @param date A numeric value equal to the day of the month.\n */\n setUTCDate(date: number): number;\n /**\n * Sets the month value in the Date object using local time.\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\n * @param date A numeric value representing the day of the month. If this value is not supplied, the value from a call to the getDate method is used.\n */\n setMonth(month: number, date?: number): number;\n /**\n * Sets the month value in the Date object using Universal Coordinated Time (UTC).\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively.\n * @param date A numeric value representing the day of the month. If it is not supplied, the value from a call to the getUTCDate method is used.\n */\n setUTCMonth(month: number, date?: number): number;\n /**\n * Sets the year of the Date object using local time.\n * @param year A numeric value for the year.\n * @param month A zero-based numeric value for the month (0 for January, 11 for December). Must be specified if numDate is specified.\n * @param date A numeric value equal for the day of the month.\n */\n setFullYear(year: number, month?: number, date?: number): number;\n /**\n * Sets the year value in the Date object using Universal Coordinated Time (UTC).\n * @param year A numeric value equal to the year.\n * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. Must be supplied if numDate is supplied.\n * @param date A numeric value equal to the day of the month.\n */\n setUTCFullYear(year: number, month?: number, date?: number): number;\n /** Returns a date converted to a string using Universal Coordinated Time (UTC). */\n toUTCString(): string;\n /** Returns a date as a string value in ISO format. */\n toISOString(): string;\n /** Used by the JSON.stringify method to enable the transformation of an object\'s data for JavaScript Object Notation (JSON) serialization. */\n toJSON(key?: any): string;\n}\n\ninterface DateConstructor {\n new (): Date;\n new (value: number | string): Date;\n /**\n * Creates a new Date.\n * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.\n * @param monthIndex The month as a number between 0 and 11 (January to December).\n * @param date The date as a number between 1 and 31.\n * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour.\n * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes.\n * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds.\n * @param ms A number from 0 to 999 that specifies the milliseconds.\n */\n new (year: number, monthIndex: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): Date;\n (): string;\n readonly prototype: Date;\n /**\n * Parses a string containing a date, and returns the number of milliseconds between that date and midnight, January 1, 1970.\n * @param s A date string\n */\n parse(s: string): number;\n /**\n * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date.\n * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year.\n * @param monthIndex The month as a number between 0 and 11 (January to December).\n * @param date The date as a number between 1 and 31.\n * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour.\n * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes.\n * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds.\n * @param ms A number from 0 to 999 that specifies the milliseconds.\n */\n UTC(year: number, monthIndex: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;\n /** Returns the number of milliseconds elapsed since midnight, January 1, 1970 Universal Coordinated Time (UTC). */\n now(): number;\n}\n\ndeclare var Date: DateConstructor;\n\ninterface RegExpMatchArray extends Array<string> {\n /**\n * The index of the search at which the result was found.\n */\n index?: number;\n /**\n * A copy of the search string.\n */\n input?: string;\n /**\n * The first match. This will always be present because `null` will be returned if there are no matches.\n */\n 0: string;\n}\n\ninterface RegExpExecArray extends Array<string> {\n /**\n * The index of the search at which the result was found.\n */\n index: number;\n /**\n * A copy of the search string.\n */\n input: string;\n /**\n * The first match. This will always be present because `null` will be returned if there are no matches.\n */\n 0: string;\n}\n\ninterface RegExp {\n /**\n * Executes a search on a string using a regular expression pattern, and returns an array containing the results of that search.\n * @param string The String object or string literal on which to perform the search.\n */\n exec(string: string): RegExpExecArray | null;\n\n /**\n * Returns a Boolean value that indicates whether or not a pattern exists in a searched string.\n * @param string String on which to perform the search.\n */\n test(string: string): boolean;\n\n /** Returns a copy of the text of the regular expression pattern. Read-only. The regExp argument is a Regular expression object. It can be a variable name or a literal. */\n readonly source: string;\n\n /** Returns a Boolean value indicating the state of the global flag (g) used with a regular expression. Default is false. Read-only. */\n readonly global: boolean;\n\n /** Returns a Boolean value indicating the state of the ignoreCase flag (i) used with a regular expression. Default is false. Read-only. */\n readonly ignoreCase: boolean;\n\n /** Returns a Boolean value indicating the state of the multiline flag (m) used with a regular expression. Default is false. Read-only. */\n readonly multiline: boolean;\n\n lastIndex: number;\n\n // Non-standard extensions\n /** @deprecated A legacy feature for browser compatibility */\n compile(pattern: string, flags?: string): this;\n}\n\ninterface RegExpConstructor {\n new (pattern: RegExp | string): RegExp;\n new (pattern: string, flags?: string): RegExp;\n (pattern: RegExp | string): RegExp;\n (pattern: string, flags?: string): RegExp;\n readonly "prototype": RegExp;\n\n // Non-standard extensions\n /** @deprecated A legacy feature for browser compatibility */\n "$1": string;\n /** @deprecated A legacy feature for browser compatibility */\n "$2": string;\n /** @deprecated A legacy feature for browser compatibility */\n "$3": string;\n /** @deprecated A legacy feature for browser compatibility */\n "$4": string;\n /** @deprecated A legacy feature for browser compatibility */\n "$5": string;\n /** @deprecated A legacy feature for browser compatibility */\n "$6": string;\n /** @deprecated A legacy feature for browser compatibility */\n "$7": string;\n /** @deprecated A legacy feature for browser compatibility */\n "$8": string;\n /** @deprecated A legacy feature for browser compatibility */\n "$9": string;\n /** @deprecated A legacy feature for browser compatibility */\n "input": string;\n /** @deprecated A legacy feature for browser compatibility */\n "$_": string;\n /** @deprecated A legacy feature for browser compatibility */\n "lastMatch": string;\n /** @deprecated A legacy feature for browser compatibility */\n "$&": string;\n /** @deprecated A legacy feature for browser compatibility */\n "lastParen": string;\n /** @deprecated A legacy feature for browser compatibility */\n "$+": string;\n /** @deprecated A legacy feature for browser compatibility */\n "leftContext": string;\n /** @deprecated A legacy feature for browser compatibility */\n "$`": string;\n /** @deprecated A legacy feature for browser compatibility */\n "rightContext": string;\n /** @deprecated A legacy feature for browser compatibility */\n "$\'": string;\n}\n\ndeclare var RegExp: RegExpConstructor;\n\ninterface Error {\n name: string;\n message: string;\n stack?: string;\n}\n\ninterface ErrorConstructor {\n new (message?: string): Error;\n (message?: string): Error;\n readonly prototype: Error;\n}\n\ndeclare var Error: ErrorConstructor;\n\ninterface EvalError extends Error {\n}\n\ninterface EvalErrorConstructor extends ErrorConstructor {\n new (message?: string): EvalError;\n (message?: string): EvalError;\n readonly prototype: EvalError;\n}\n\ndeclare var EvalError: EvalErrorConstructor;\n\ninterface RangeError extends Error {\n}\n\ninterface RangeErrorConstructor extends ErrorConstructor {\n new (message?: string): RangeError;\n (message?: string): RangeError;\n readonly prototype: RangeError;\n}\n\ndeclare var RangeError: RangeErrorConstructor;\n\ninterface ReferenceError extends Error {\n}\n\ninterface ReferenceErrorConstructor extends ErrorConstructor {\n new (message?: string): ReferenceError;\n (message?: string): ReferenceError;\n readonly prototype: ReferenceError;\n}\n\ndeclare var ReferenceError: ReferenceErrorConstructor;\n\ninterface SyntaxError extends Error {\n}\n\ninterface SyntaxErrorConstructor extends ErrorConstructor {\n new (message?: string): SyntaxError;\n (message?: string): SyntaxError;\n readonly prototype: SyntaxError;\n}\n\ndeclare var SyntaxError: SyntaxErrorConstructor;\n\ninterface TypeError extends Error {\n}\n\ninterface TypeErrorConstructor extends ErrorConstructor {\n new (message?: string): TypeError;\n (message?: string): TypeError;\n readonly prototype: TypeError;\n}\n\ndeclare var TypeError: TypeErrorConstructor;\n\ninterface URIError extends Error {\n}\n\ninterface URIErrorConstructor extends ErrorConstructor {\n new (message?: string): URIError;\n (message?: string): URIError;\n readonly prototype: URIError;\n}\n\ndeclare var URIError: URIErrorConstructor;\n\ninterface JSON {\n /**\n * Converts a JavaScript Object Notation (JSON) string into an object.\n * @param text A valid JSON string.\n * @param reviver A function that transforms the results. This function is called for each member of the object.\n * If a member contains nested objects, the nested objects are transformed before the parent object is.\n */\n parse(text: string, reviver?: (this: any, key: string, value: any) => any): any;\n /**\n * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\n * @param value A JavaScript value, usually an object or array, to be converted.\n * @param replacer A function that transforms the results.\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\n */\n stringify(value: any, replacer?: (this: any, key: string, value: any) => any, space?: string | number): string;\n /**\n * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.\n * @param value A JavaScript value, usually an object or array, to be converted.\n * @param replacer An array of strings and numbers that acts as an approved list for selecting the object properties that will be stringified.\n * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.\n */\n stringify(value: any, replacer?: (number | string)[] | null, space?: string | number): string;\n}\n\n/**\n * An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.\n */\ndeclare var JSON: JSON;\n\n/////////////////////////////\n/// ECMAScript Array API (specially handled by compiler)\n/////////////////////////////\n\ninterface ReadonlyArray<T> {\n /**\n * Gets the length of the array. This is a number one higher than the highest element defined in an array.\n */\n readonly length: number;\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n /**\n * Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.\n */\n toLocaleString(): string;\n /**\n * Combines two or more arrays.\n * @param items Additional items to add to the end of array1.\n */\n concat(...items: ConcatArray<T>[]): T[];\n /**\n * Combines two or more arrays.\n * @param items Additional items to add to the end of array1.\n */\n concat(...items: (T | ConcatArray<T>)[]): T[];\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index \'end\'.\n */\n slice(start?: number, end?: number): T[];\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\n */\n indexOf(searchElement: T, fromIndex?: number): number;\n /**\n * Returns the index of the last occurrence of a specified value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array.\n */\n lastIndexOf(searchElement: T, fromIndex?: number): number;\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every<S extends T>(predicate: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): this is readonly S[];\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): boolean;\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: T, index: number, array: readonly T[]) => void, thisArg?: any): void;\n /**\n * Calls a defined callback function on each element of an array, and returns an array that contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n map<U>(callbackfn: (value: T, index: number, array: readonly T[]) => U, thisArg?: any): U[];\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.\n */\n filter<S extends T>(predicate: (value: T, index: number, array: readonly T[]) => value is S, thisArg?: any): S[];\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: T, index: number, array: readonly T[]) => unknown, thisArg?: any): T[];\n /**\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\n /**\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\n /**\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T): T;\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: readonly T[]) => T, initialValue: T): T;\n /**\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: readonly T[]) => U, initialValue: U): U;\n\n readonly [n: number]: T;\n}\n\ninterface ConcatArray<T> {\n readonly length: number;\n readonly [n: number]: T;\n join(separator?: string): string;\n slice(start?: number, end?: number): T[];\n}\n\ninterface Array<T> {\n /**\n * Gets or sets the length of the array. This is a number one higher than the highest index in the array.\n */\n length: number;\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n /**\n * Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.\n */\n toLocaleString(): string;\n /**\n * Removes the last element from an array and returns it.\n * If the array is empty, undefined is returned and the array is not modified.\n */\n pop(): T | undefined;\n /**\n * Appends new elements to the end of an array, and returns the new length of the array.\n * @param items New elements to add to the array.\n */\n push(...items: T[]): number;\n /**\n * Combines two or more arrays.\n * This method returns a new array without modifying any existing arrays.\n * @param items Additional arrays and/or items to add to the end of the array.\n */\n concat(...items: ConcatArray<T>[]): T[];\n /**\n * Combines two or more arrays.\n * This method returns a new array without modifying any existing arrays.\n * @param items Additional arrays and/or items to add to the end of the array.\n */\n concat(...items: (T | ConcatArray<T>)[]): T[];\n /**\n * Adds all the elements of an array into a string, separated by the specified separator string.\n * @param separator A string used to separate one element of the array from the next in the resulting string. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n /**\n * Reverses the elements in an array in place.\n * This method mutates the array and returns a reference to the same array.\n */\n reverse(): T[];\n /**\n * Removes the first element from an array and returns it.\n * If the array is empty, undefined is returned and the array is not modified.\n */\n shift(): T | undefined;\n /**\n * Returns a copy of a section of an array.\n * For both start and end, a negative index can be used to indicate an offset from the end of the array.\n * For example, -2 refers to the second to last element of the array.\n * @param start The beginning index of the specified portion of the array.\n * If start is undefined, then the slice begins at index 0.\n * @param end The end index of the specified portion of the array. This is exclusive of the element at the index \'end\'.\n * If end is undefined, then the slice extends to the end of the array.\n */\n slice(start?: number, end?: number): T[];\n /**\n * Sorts an array in place.\n * This method mutates the array and returns a reference to the same array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if the first argument is less than the second argument, zero if they\'re equal, and a positive\n * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: T, b: T) => number): this;\n /**\n * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n * @returns An array containing the elements that were deleted.\n */\n splice(start: number, deleteCount?: number): T[];\n /**\n * Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n * @param items Elements to insert into the array in place of the deleted elements.\n * @returns An array containing the elements that were deleted.\n */\n splice(start: number, deleteCount: number, ...items: T[]): T[];\n /**\n * Inserts new elements at the start of an array, and returns the new length of the array.\n * @param items Elements to insert at the start of the array.\n */\n unshift(...items: T[]): number;\n /**\n * Returns the index of the first occurrence of a value in an array, or -1 if it is not present.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\n */\n indexOf(searchElement: T, fromIndex?: number): number;\n /**\n * Returns the index of the last occurrence of a specified value in an array, or -1 if it is not present.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin searching backward. If fromIndex is omitted, the search starts at the last index in the array.\n */\n lastIndexOf(searchElement: T, fromIndex?: number): number;\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): this is S[];\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;\n /**\n * Calls a defined callback function on each element of an array, and returns an array that contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\n */\n map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.\n */\n filter<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[];\n /**\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\n reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\n /**\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\n /**\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;\n reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;\n /**\n * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\n */\n reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;\n\n [n: number]: T;\n}\n\ninterface ArrayConstructor {\n new (arrayLength?: number): any[];\n new <T>(arrayLength: number): T[];\n new <T>(...items: T[]): T[];\n (arrayLength?: number): any[];\n <T>(arrayLength: number): T[];\n <T>(...items: T[]): T[];\n isArray(arg: any): arg is any[];\n readonly prototype: any[];\n}\n\ndeclare var Array: ArrayConstructor;\n\ninterface TypedPropertyDescriptor<T> {\n enumerable?: boolean;\n configurable?: boolean;\n writable?: boolean;\n value?: T;\n get?: () => T;\n set?: (value: T) => void;\n}\n\ndeclare type PromiseConstructorLike = new <T>(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void) => PromiseLike<T>;\n\ninterface PromiseLike<T> {\n /**\n * Attaches callbacks for the resolution and/or rejection of the Promise.\n * @param onfulfilled The callback to execute when the Promise is resolved.\n * @param onrejected The callback to execute when the Promise is rejected.\n * @returns A Promise for the completion of which ever callback is executed.\n */\n then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;\n}\n\n/**\n * Represents the completion of an asynchronous operation\n */\ninterface Promise<T> {\n /**\n * Attaches callbacks for the resolution and/or rejection of the Promise.\n * @param onfulfilled The callback to execute when the Promise is resolved.\n * @param onrejected The callback to execute when the Promise is rejected.\n * @returns A Promise for the completion of which ever callback is executed.\n */\n then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;\n\n /**\n * Attaches a callback for only the rejection of the Promise.\n * @param onrejected The callback to execute when the Promise is rejected.\n * @returns A Promise for the completion of the callback.\n */\n catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;\n}\n\n/**\n * Recursively unwraps the "awaited type" of a type. Non-promise "thenables" should resolve to `never`. This emulates the behavior of `await`.\n */\ntype Awaited<T> = T extends null | undefined ? T : // special case for `null | undefined` when not in `--strictNullChecks` mode\n T extends object & { then(onfulfilled: infer F, ...args: infer _): any; } ? // `await` only unwraps object types with a callable `then`. Non-object types are not unwrapped\n F extends ((value: infer V, ...args: infer _) => any) ? // if the argument to `then` is callable, extracts the first argument\n Awaited<V> : // recursively unwrap the value\n never : // the argument to `then` was not callable\n T; // non-object or non-thenable\n\ninterface ArrayLike<T> {\n readonly length: number;\n readonly [n: number]: T;\n}\n\n/**\n * Make all properties in T optional\n */\ntype Partial<T> = {\n [P in keyof T]?: T[P];\n};\n\n/**\n * Make all properties in T required\n */\ntype Required<T> = {\n [P in keyof T]-?: T[P];\n};\n\n/**\n * Make all properties in T readonly\n */\ntype Readonly<T> = {\n readonly [P in keyof T]: T[P];\n};\n\n/**\n * From T, pick a set of properties whose keys are in the union K\n */\ntype Pick<T, K extends keyof T> = {\n [P in K]: T[P];\n};\n\n/**\n * Construct a type with a set of properties K of type T\n */\ntype Record<K extends keyof any, T> = {\n [P in K]: T;\n};\n\n/**\n * Exclude from T those types that are assignable to U\n */\ntype Exclude<T, U> = T extends U ? never : T;\n\n/**\n * Extract from T those types that are assignable to U\n */\ntype Extract<T, U> = T extends U ? T : never;\n\n/**\n * Construct a type with the properties of T except for those in type K.\n */\ntype Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;\n\n/**\n * Exclude null and undefined from T\n */\ntype NonNullable<T> = T & {};\n\n/**\n * Obtain the parameters of a function type in a tuple\n */\ntype Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never;\n\n/**\n * Obtain the parameters of a constructor function type in a tuple\n */\ntype ConstructorParameters<T extends abstract new (...args: any) => any> = T extends abstract new (...args: infer P) => any ? P : never;\n\n/**\n * Obtain the return type of a function type\n */\ntype ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;\n\n/**\n * Obtain the return type of a constructor function type\n */\ntype InstanceType<T extends abstract new (...args: any) => any> = T extends abstract new (...args: any) => infer R ? R : any;\n\n/**\n * Convert string literal type to uppercase\n */\ntype Uppercase<S extends string> = intrinsic;\n\n/**\n * Convert string literal type to lowercase\n */\ntype Lowercase<S extends string> = intrinsic;\n\n/**\n * Convert first character of string literal type to uppercase\n */\ntype Capitalize<S extends string> = intrinsic;\n\n/**\n * Convert first character of string literal type to lowercase\n */\ntype Uncapitalize<S extends string> = intrinsic;\n\n/**\n * Marker for non-inference type position\n */\ntype NoInfer<T> = intrinsic;\n\n/**\n * Marker for contextual \'this\' type\n */\ninterface ThisType<T> {}\n\n/**\n * Stores types to be used with WeakSet, WeakMap, WeakRef, and FinalizationRegistry\n */\ninterface WeakKeyTypes {\n object: object;\n}\n\ntype WeakKey = WeakKeyTypes[keyof WeakKeyTypes];\n\n/**\n * Represents a raw buffer of binary data, which is used to store data for the\n * different typed arrays. ArrayBuffers cannot be read from or written to directly,\n * but can be passed to a typed array or DataView Object to interpret the raw\n * buffer as needed.\n */\ninterface ArrayBuffer {\n /**\n * Read-only. The length of the ArrayBuffer (in bytes).\n */\n readonly byteLength: number;\n\n /**\n * Returns a section of an ArrayBuffer.\n */\n slice(begin: number, end?: number): ArrayBuffer;\n}\n\n/**\n * Allowed ArrayBuffer types for the buffer of an ArrayBufferView and related Typed Arrays.\n */\ninterface ArrayBufferTypes {\n ArrayBuffer: ArrayBuffer;\n}\ntype ArrayBufferLike = ArrayBufferTypes[keyof ArrayBufferTypes];\n\ninterface ArrayBufferConstructor {\n readonly prototype: ArrayBuffer;\n new (byteLength: number): ArrayBuffer;\n isView(arg: any): arg is ArrayBufferView;\n}\ndeclare var ArrayBuffer: ArrayBufferConstructor;\n\ninterface ArrayBufferView {\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n byteOffset: number;\n}\n\ninterface DataView {\n readonly buffer: ArrayBuffer;\n readonly byteLength: number;\n readonly byteOffset: number;\n /**\n * Gets the Float32 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getFloat32(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Gets the Float64 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getFloat64(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Gets the Int8 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n */\n getInt8(byteOffset: number): number;\n\n /**\n * Gets the Int16 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getInt16(byteOffset: number, littleEndian?: boolean): number;\n /**\n * Gets the Int32 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getInt32(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Gets the Uint8 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n */\n getUint8(byteOffset: number): number;\n\n /**\n * Gets the Uint16 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getUint16(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Gets the Uint32 value at the specified byte offset from the start of the view. There is\n * no alignment constraint; multi-byte values may be fetched from any offset.\n * @param byteOffset The place in the buffer at which the value should be retrieved.\n * @param littleEndian If false or undefined, a big-endian value should be read.\n */\n getUint32(byteOffset: number, littleEndian?: boolean): number;\n\n /**\n * Stores an Float32 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setFloat32(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Float64 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setFloat64(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Int8 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n */\n setInt8(byteOffset: number, value: number): void;\n\n /**\n * Stores an Int16 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setInt16(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Int32 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setInt32(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Uint8 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n */\n setUint8(byteOffset: number, value: number): void;\n\n /**\n * Stores an Uint16 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setUint16(byteOffset: number, value: number, littleEndian?: boolean): void;\n\n /**\n * Stores an Uint32 value at the specified byte offset from the start of the view.\n * @param byteOffset The place in the buffer at which the value should be set.\n * @param value The value to set.\n * @param littleEndian If false or undefined, a big-endian value should be written.\n */\n setUint32(byteOffset: number, value: number, littleEndian?: boolean): void;\n}\n\ninterface DataViewConstructor {\n readonly prototype: DataView;\n new (buffer: ArrayBufferLike & { BYTES_PER_ELEMENT?: never; }, byteOffset?: number, byteLength?: number): DataView;\n}\ndeclare var DataView: DataViewConstructor;\n\n/**\n * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\n * number of bytes could not be allocated an exception is raised.\n */\ninterface Int8Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: Int8Array) => any, thisArg?: any): Int8Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Int8Array) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int8Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int8Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Int8Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike<number>, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index \'end\'.\n */\n slice(start?: number, end?: number): Int8Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they\'re equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Int8Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Int8Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): Int8Array;\n\n [index: number]: number;\n}\ninterface Int8ArrayConstructor {\n readonly prototype: Int8Array;\n new (length: number): Int8Array;\n new (array: ArrayLike<number> | ArrayBufferLike): Int8Array;\n new (buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int8Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Int8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n */\n from(arrayLike: ArrayLike<number>): Int8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of \'this\' used to invoke the mapfn.\n */\n from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array;\n}\ndeclare var Int8Array: Int8ArrayConstructor;\n\n/**\n * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint8Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: Uint8Array) => any, thisArg?: any): Uint8Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: Uint8Array) => number, thisArg?: any): Uint8Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Uint8Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike<number>, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index \'end\'.\n */\n slice(start?: number, end?: number): Uint8Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they\'re equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Uint8Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Uint8Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): Uint8Array;\n\n [index: number]: number;\n}\n\ninterface Uint8ArrayConstructor {\n readonly prototype: Uint8Array;\n new (length: number): Uint8Array;\n new (array: ArrayLike<number> | ArrayBufferLike): Uint8Array;\n new (buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint8Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Uint8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n */\n from(arrayLike: ArrayLike<number>): Uint8Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of \'this\' used to invoke the mapfn.\n */\n from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array;\n}\ndeclare var Uint8Array: Uint8ArrayConstructor;\n\n/**\n * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\n * If the requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint8ClampedArray {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: Uint8ClampedArray) => any, thisArg?: any): Uint8ClampedArray;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Uint8ClampedArray) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: Uint8ClampedArray) => number, thisArg?: any): Uint8ClampedArray;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint8ClampedArray) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Uint8ClampedArray;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike<number>, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index \'end\'.\n */\n slice(start?: number, end?: number): Uint8ClampedArray;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they\'re equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Uint8ClampedArray view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Uint8ClampedArray;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): Uint8ClampedArray;\n\n [index: number]: number;\n}\n\ninterface Uint8ClampedArrayConstructor {\n readonly prototype: Uint8ClampedArray;\n new (length: number): Uint8ClampedArray;\n new (array: ArrayLike<number> | ArrayBufferLike): Uint8ClampedArray;\n new (buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint8ClampedArray;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Uint8ClampedArray;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n */\n from(arrayLike: ArrayLike<number>): Uint8ClampedArray;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of \'this\' used to invoke the mapfn.\n */\n from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray;\n}\ndeclare var Uint8ClampedArray: Uint8ClampedArrayConstructor;\n\n/**\n * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Int16Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: Int16Array) => any, thisArg?: any): Int16Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Int16Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Int16Array) => void, thisArg?: any): void;\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: Int16Array) => number, thisArg?: any): Int16Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int16Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int16Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Int16Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike<number>, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index \'end\'.\n */\n slice(start?: number, end?: number): Int16Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they\'re equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Int16Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Int16Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): Int16Array;\n\n [index: number]: number;\n}\n\ninterface Int16ArrayConstructor {\n readonly prototype: Int16Array;\n new (length: number): Int16Array;\n new (array: ArrayLike<number> | ArrayBufferLike): Int16Array;\n new (buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int16Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Int16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n */\n from(arrayLike: ArrayLike<number>): Int16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of \'this\' used to invoke the mapfn.\n */\n from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array;\n}\ndeclare var Int16Array: Int16ArrayConstructor;\n\n/**\n * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint16Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: Uint16Array) => any, thisArg?: any): Uint16Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Uint16Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Uint16Array) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: Uint16Array) => number, thisArg?: any): Uint16Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint16Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint16Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Uint16Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike<number>, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index \'end\'.\n */\n slice(start?: number, end?: number): Uint16Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they\'re equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Uint16Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Uint16Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): Uint16Array;\n\n [index: number]: number;\n}\n\ninterface Uint16ArrayConstructor {\n readonly prototype: Uint16Array;\n new (length: number): Uint16Array;\n new (array: ArrayLike<number> | ArrayBufferLike): Uint16Array;\n new (buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint16Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Uint16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n */\n from(arrayLike: ArrayLike<number>): Uint16Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of \'this\' used to invoke the mapfn.\n */\n from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array;\n}\ndeclare var Uint16Array: Uint16ArrayConstructor;\n/**\n * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Int32Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: Int32Array) => any, thisArg?: any): Int32Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Int32Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Int32Array) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: Int32Array) => number, thisArg?: any): Int32Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Int32Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Int32Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Int32Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike<number>, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index \'end\'.\n */\n slice(start?: number, end?: number): Int32Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they\'re equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Int32Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Int32Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): Int32Array;\n\n [index: number]: number;\n}\n\ninterface Int32ArrayConstructor {\n readonly prototype: Int32Array;\n new (length: number): Int32Array;\n new (array: ArrayLike<number> | ArrayBufferLike): Int32Array;\n new (buffer: ArrayBufferLike, byteOffset?: number, length?: number): Int32Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Int32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n */\n from(arrayLike: ArrayLike<number>): Int32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of \'this\' used to invoke the mapfn.\n */\n from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array;\n}\ndeclare var Int32Array: Int32ArrayConstructor;\n\n/**\n * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\n * requested number of bytes could not be allocated an exception is raised.\n */\ninterface Uint32Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: Uint32Array) => any, thisArg?: any): Uint32Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Uint32Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Uint32Array) => void, thisArg?: any): void;\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: Uint32Array) => number, thisArg?: any): Uint32Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Uint32Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Uint32Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Uint32Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike<number>, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index \'end\'.\n */\n slice(start?: number, end?: number): Uint32Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they\'re equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Uint32Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Uint32Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): Uint32Array;\n\n [index: number]: number;\n}\n\ninterface Uint32ArrayConstructor {\n readonly prototype: Uint32Array;\n new (length: number): Uint32Array;\n new (array: ArrayLike<number> | ArrayBufferLike): Uint32Array;\n new (buffer: ArrayBufferLike, byteOffset?: number, length?: number): Uint32Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Uint32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n */\n from(arrayLike: ArrayLike<number>): Uint32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of \'this\' used to invoke the mapfn.\n */\n from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array;\n}\ndeclare var Uint32Array: Uint32ArrayConstructor;\n\n/**\n * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\n * of bytes could not be allocated an exception is raised.\n */\ninterface Float32Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: Float32Array) => any, thisArg?: any): Float32Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any): Float32Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Float32Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike<number>, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index \'end\'.\n */\n slice(start?: number, end?: number): Float32Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they\'re equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Float32Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Float32Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): Float32Array;\n\n [index: number]: number;\n}\n\ninterface Float32ArrayConstructor {\n readonly prototype: Float32Array;\n new (length: number): Float32Array;\n new (array: ArrayLike<number> | ArrayBufferLike): Float32Array;\n new (buffer: ArrayBufferLike, byteOffset?: number, length?: number): Float32Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Float32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n */\n from(arrayLike: ArrayLike<number>): Float32Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of \'this\' used to invoke the mapfn.\n */\n from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array;\n}\ndeclare var Float32Array: Float32ArrayConstructor;\n\n/**\n * A typed array of 64-bit float values. The contents are initialized to 0. If the requested\n * number of bytes could not be allocated an exception is raised.\n */\ninterface Float64Array {\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * The ArrayBuffer instance referenced by the array.\n */\n readonly buffer: ArrayBufferLike;\n\n /**\n * The length in bytes of the array.\n */\n readonly byteLength: number;\n\n /**\n * The offset in bytes of the array.\n */\n readonly byteOffset: number;\n\n /**\n * Returns the this object after copying a section of the array identified by start and end\n * to the same array starting at position target\n * @param target If target is negative, it is treated as length+target where length is the\n * length of the array.\n * @param start If start is negative, it is treated as length+start. If end is negative, it\n * is treated as length+end.\n * @param end If not specified, length of the this object is used as its default value.\n */\n copyWithin(target: number, start: number, end?: number): this;\n\n /**\n * Determines whether all the members of an array satisfy the specified test.\n * @param predicate A function that accepts up to three arguments. The every method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value false, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n every(predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Changes all array elements from `start` to `end` index to a static `value` and returns the modified array\n * @param value value to fill array section with\n * @param start index to start filling the array at. If start is negative, it is treated as\n * length+start where length is the length of the array.\n * @param end index to stop filling the array at. If end is negative, it is treated as\n * length+end.\n */\n fill(value: number, start?: number, end?: number): this;\n\n /**\n * Returns the elements of an array that meet the condition specified in a callback function.\n * @param predicate A function that accepts up to three arguments. The filter method calls\n * the predicate function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n filter(predicate: (value: number, index: number, array: Float64Array) => any, thisArg?: any): Float64Array;\n\n /**\n * Returns the value of the first element in the array where predicate is true, and undefined\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found, find\n * immediately returns that element value. Otherwise, find returns undefined.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n find(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number | undefined;\n\n /**\n * Returns the index of the first element in the array where predicate is true, and -1\n * otherwise.\n * @param predicate find calls predicate once for each element of the array, in ascending\n * order, until it finds one where predicate returns true. If such an element is found,\n * findIndex immediately returns that element index. Otherwise, findIndex returns -1.\n * @param thisArg If provided, it will be used as the this value for each invocation of\n * predicate. If it is not provided, undefined is used instead.\n */\n findIndex(predicate: (value: number, index: number, obj: Float64Array) => boolean, thisArg?: any): number;\n\n /**\n * Performs the specified action for each element in an array.\n * @param callbackfn A function that accepts up to three arguments. forEach calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n forEach(callbackfn: (value: number, index: number, array: Float64Array) => void, thisArg?: any): void;\n\n /**\n * Returns the index of the first occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n indexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * Adds all the elements of an array separated by the specified separator string.\n * @param separator A string used to separate one element of an array from the next in the\n * resulting String. If omitted, the array elements are separated with a comma.\n */\n join(separator?: string): string;\n\n /**\n * Returns the index of the last occurrence of a value in an array.\n * @param searchElement The value to locate in the array.\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the\n * search starts at index 0.\n */\n lastIndexOf(searchElement: number, fromIndex?: number): number;\n\n /**\n * The length of the array.\n */\n readonly length: number;\n\n /**\n * Calls a defined callback function on each element of an array, and returns an array that\n * contains the results.\n * @param callbackfn A function that accepts up to three arguments. The map method calls the\n * callbackfn function one time for each element in the array.\n * @param thisArg An object to which the this keyword can refer in the callbackfn function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n map(callbackfn: (value: number, index: number, array: Float64Array) => number, thisArg?: any): Float64Array;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;\n reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array. The return value of\n * the callback function is the accumulated result, and is provided as an argument in the next\n * call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the\n * callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduce<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an\n * argument instead of an array value.\n */\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number): number;\n reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float64Array) => number, initialValue: number): number;\n\n /**\n * Calls the specified callback function for all the elements in an array, in descending order.\n * The return value of the callback function is the accumulated result, and is provided as an\n * argument in the next call to the callback function.\n * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls\n * the callbackfn function one time for each element in the array.\n * @param initialValue If initialValue is specified, it is used as the initial value to start\n * the accumulation. The first call to the callbackfn function provides this value as an argument\n * instead of an array value.\n */\n reduceRight<U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float64Array) => U, initialValue: U): U;\n\n /**\n * Reverses the elements in an Array.\n */\n reverse(): Float64Array;\n\n /**\n * Sets a value or an array of values.\n * @param array A typed or untyped array of values to set.\n * @param offset The index in the current array at which the values are to be written.\n */\n set(array: ArrayLike<number>, offset?: number): void;\n\n /**\n * Returns a section of an array.\n * @param start The beginning of the specified portion of the array.\n * @param end The end of the specified portion of the array. This is exclusive of the element at the index \'end\'.\n */\n slice(start?: number, end?: number): Float64Array;\n\n /**\n * Determines whether the specified callback function returns true for any element of an array.\n * @param predicate A function that accepts up to three arguments. The some method calls\n * the predicate function for each element in the array until the predicate returns a value\n * which is coercible to the Boolean value true, or until the end of the array.\n * @param thisArg An object to which the this keyword can refer in the predicate function.\n * If thisArg is omitted, undefined is used as the this value.\n */\n some(predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): boolean;\n\n /**\n * Sorts an array.\n * @param compareFn Function used to determine the order of the elements. It is expected to return\n * a negative value if first argument is less than second argument, zero if they\'re equal and a positive\n * value otherwise. If omitted, the elements are sorted in ascending order.\n * ```ts\n * [11,2,22,1].sort((a, b) => a - b)\n * ```\n */\n sort(compareFn?: (a: number, b: number) => number): this;\n\n /**\n * Gets a new Float64Array view of the ArrayBuffer store for this array, referencing the elements\n * at begin, inclusive, up to end, exclusive.\n * @param begin The index of the beginning of the array.\n * @param end The index of the end of the array.\n */\n subarray(begin?: number, end?: number): Float64Array;\n\n /**\n * Converts a number to a string by using the current locale.\n */\n toLocaleString(): string;\n\n /**\n * Returns a string representation of an array.\n */\n toString(): string;\n\n /** Returns the primitive value of the specified object. */\n valueOf(): Float64Array;\n\n [index: number]: number;\n}\n\ninterface Float64ArrayConstructor {\n readonly prototype: Float64Array;\n new (length: number): Float64Array;\n new (array: ArrayLike<number> | ArrayBufferLike): Float64Array;\n new (buffer: ArrayBufferLike, byteOffset?: number, length?: number): Float64Array;\n\n /**\n * The size in bytes of each element in the array.\n */\n readonly BYTES_PER_ELEMENT: number;\n\n /**\n * Returns a new array from a set of elements.\n * @param items A set of elements to include in the new array object.\n */\n of(...items: number[]): Float64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n */\n from(arrayLike: ArrayLike<number>): Float64Array;\n\n /**\n * Creates an array from an array-like or iterable object.\n * @param arrayLike An array-like or iterable object to convert to an array.\n * @param mapfn A mapping function to call on every element of the array.\n * @param thisArg Value of \'this\' used to invoke the mapfn.\n */\n from<T>(arrayLike: ArrayLike<T>, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array;\n}\ndeclare var Float64Array: Float64ArrayConstructor;\n\n/////////////////////////////\n/// ECMAScript Internationalization API\n/////////////////////////////\n\ndeclare namespace Intl {\n interface CollatorOptions {\n usage?: "sort" | "search" | undefined;\n localeMatcher?: "lookup" | "best fit" | undefined;\n numeric?: boolean | undefined;\n caseFirst?: "upper" | "lower" | "false" | undefined;\n sensitivity?: "base" | "accent" | "case" | "variant" | undefined;\n collation?: "big5han" | "compat" | "dict" | "direct" | "ducet" | "emoji" | "eor" | "gb2312" | "phonebk" | "phonetic" | "pinyin" | "reformed" | "searchjl" | "stroke" | "trad" | "unihan" | "zhuyin" | undefined;\n ignorePunctuation?: boolean | undefined;\n }\n\n interface ResolvedCollatorOptions {\n locale: string;\n usage: string;\n sensitivity: string;\n ignorePunctuation: boolean;\n collation: string;\n caseFirst: string;\n numeric: boolean;\n }\n\n interface Collator {\n compare(x: string, y: string): number;\n resolvedOptions(): ResolvedCollatorOptions;\n }\n\n interface CollatorConstructor {\n new (locales?: string | string[], options?: CollatorOptions): Collator;\n (locales?: string | string[], options?: CollatorOptions): Collator;\n supportedLocalesOf(locales: string | string[], options?: CollatorOptions): string[];\n }\n\n var Collator: CollatorConstructor;\n\n interface NumberFormatOptions {\n localeMatcher?: string | undefined;\n style?: string | undefined;\n currency?: string | undefined;\n currencySign?: string | undefined;\n useGrouping?: boolean | undefined;\n minimumIntegerDigits?: number | undefined;\n minimumFractionDigits?: number | undefined;\n maximumFractionDigits?: number | undefined;\n minimumSignificantDigits?: number | undefined;\n maximumSignificantDigits?: number | undefined;\n }\n\n interface ResolvedNumberFormatOptions {\n locale: string;\n numberingSystem: string;\n style: string;\n currency?: string;\n minimumIntegerDigits: number;\n minimumFractionDigits: number;\n maximumFractionDigits: number;\n minimumSignificantDigits?: number;\n maximumSignificantDigits?: number;\n useGrouping: boolean;\n }\n\n interface NumberFormat {\n format(value: number): string;\n resolvedOptions(): ResolvedNumberFormatOptions;\n }\n\n interface NumberFormatConstructor {\n new (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\n (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;\n supportedLocalesOf(locales: string | string[], options?: NumberFormatOptions): string[];\n readonly prototype: NumberFormat;\n }\n\n var NumberFormat: NumberFormatConstructor;\n\n interface DateTimeFormatOptions {\n localeMatcher?: "best fit" | "lookup" | undefined;\n weekday?: "long" | "short" | "narrow" | undefined;\n era?: "long" | "short" | "narrow" | undefined;\n year?: "numeric" | "2-digit" | undefined;\n month?: "numeric" | "2-digit" | "long" | "short" | "narrow" | undefined;\n day?: "numeric" | "2-digit" | undefined;\n hour?: "numeric" | "2-digit" | undefined;\n minute?: "numeric" | "2-digit" | undefined;\n second?: "numeric" | "2-digit" | undefined;\n timeZoneName?: "short" | "long" | "shortOffset" | "longOffset" | "shortGeneric" | "longGeneric" | undefined;\n formatMatcher?: "best fit" | "basic" | undefined;\n hour12?: boolean | undefined;\n timeZone?: string | undefined;\n }\n\n interface ResolvedDateTimeFormatOptions {\n locale: string;\n calendar: string;\n numberingSystem: string;\n timeZone: string;\n hour12?: boolean;\n weekday?: string;\n era?: string;\n year?: string;\n month?: string;\n day?: string;\n hour?: string;\n minute?: string;\n second?: string;\n timeZoneName?: string;\n }\n\n interface DateTimeFormat {\n format(date?: Date | number): string;\n resolvedOptions(): ResolvedDateTimeFormatOptions;\n }\n\n interface DateTimeFormatConstructor {\n new (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\n (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat;\n supportedLocalesOf(locales: string | string[], options?: DateTimeFormatOptions): string[];\n readonly prototype: DateTimeFormat;\n }\n\n var DateTimeFormat: DateTimeFormatConstructor;\n}\n\ninterface String {\n /**\n * Determines whether two strings are equivalent in the current or specified locale.\n * @param that String to compare to target string\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details.\n * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details.\n */\n localeCompare(that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;\n}\n\ninterface Number {\n /**\n * Converts a number to a string by using the current or specified locale.\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): string;\n}\n\ninterface Date {\n /**\n * Converts a date and time to a string by using the current or specified locale.\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\n /**\n * Converts a date to a string by using the current or specified locale.\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleDateString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\n\n /**\n * Converts a time to a string by using the current or specified locale.\n * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.\n * @param options An object that contains one or more properties that specify comparison options.\n */\n toLocaleTimeString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;\n}\n', + 'lib.es6.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2015" />\n/// <reference lib="dom" />\n/// <reference lib="dom.iterable" />\n/// <reference lib="webworker.importscripts" />\n/// <reference lib="scripthost" />\n', + 'lib.esnext.collection.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface MapConstructor {\n /**\n * Groups members of an iterable according to the return value of the passed callback.\n * @param items An iterable.\n * @param keySelector A callback which will be invoked for each item in items.\n */\n groupBy<K, T>(\n items: Iterable<T>,\n keySelector: (item: T, index: number) => K,\n ): Map<K, T[]>;\n}\n', + 'lib.esnext.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2023" />\n/// <reference lib="esnext.intl" />\n/// <reference lib="esnext.decorators" />\n/// <reference lib="esnext.disposable" />\n/// <reference lib="esnext.promise" />\n/// <reference lib="esnext.object" />\n/// <reference lib="esnext.collection" />\n', + 'lib.esnext.decorators.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2015.symbol" />\n/// <reference lib="decorators" />\n\ninterface SymbolConstructor {\n readonly metadata: unique symbol;\n}\n\ninterface Function {\n [Symbol.metadata]: DecoratorMetadata | null;\n}\n', + 'lib.esnext.disposable.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="es2015.symbol" />\n\ninterface SymbolConstructor {\n /**\n * A method that is used to release resources held by an object. Called by the semantics of the `using` statement.\n */\n readonly dispose: unique symbol;\n\n /**\n * A method that is used to asynchronously release resources held by an object. Called by the semantics of the `await using` statement.\n */\n readonly asyncDispose: unique symbol;\n}\n\ninterface Disposable {\n [Symbol.dispose](): void;\n}\n\ninterface AsyncDisposable {\n [Symbol.asyncDispose](): PromiseLike<void>;\n}\n\ninterface SuppressedError extends Error {\n error: any;\n suppressed: any;\n}\n\ninterface SuppressedErrorConstructor {\n new (error: any, suppressed: any, message?: string): SuppressedError;\n (error: any, suppressed: any, message?: string): SuppressedError;\n readonly prototype: SuppressedError;\n}\ndeclare var SuppressedError: SuppressedErrorConstructor;\n\ninterface DisposableStack {\n /**\n * Returns a value indicating whether this stack has been disposed.\n */\n readonly disposed: boolean;\n /**\n * Disposes each resource in the stack in the reverse order that they were added.\n */\n dispose(): void;\n /**\n * Adds a disposable resource to the stack, returning the resource.\n * @param value The resource to add. `null` and `undefined` will not be added, but will be returned.\n * @returns The provided {@link value}.\n */\n use<T extends Disposable | null | undefined>(value: T): T;\n /**\n * Adds a value and associated disposal callback as a resource to the stack.\n * @param value The value to add.\n * @param onDispose The callback to use in place of a `[Symbol.dispose]()` method. Will be invoked with `value`\n * as the first parameter.\n * @returns The provided {@link value}.\n */\n adopt<T>(value: T, onDispose: (value: T) => void): T;\n /**\n * Adds a callback to be invoked when the stack is disposed.\n */\n defer(onDispose: () => void): void;\n /**\n * Move all resources out of this stack and into a new `DisposableStack`, and marks this stack as disposed.\n * @example\n * ```ts\n * class C {\n * #res1: Disposable;\n * #res2: Disposable;\n * #disposables: DisposableStack;\n * constructor() {\n * // stack will be disposed when exiting constructor for any reason\n * using stack = new DisposableStack();\n *\n * // get first resource\n * this.#res1 = stack.use(getResource1());\n *\n * // get second resource. If this fails, both `stack` and `#res1` will be disposed.\n * this.#res2 = stack.use(getResource2());\n *\n * // all operations succeeded, move resources out of `stack` so that they aren\'t disposed\n * // when constructor exits\n * this.#disposables = stack.move();\n * }\n *\n * [Symbol.dispose]() {\n * this.#disposables.dispose();\n * }\n * }\n * ```\n */\n move(): DisposableStack;\n [Symbol.dispose](): void;\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface DisposableStackConstructor {\n new (): DisposableStack;\n readonly prototype: DisposableStack;\n}\ndeclare var DisposableStack: DisposableStackConstructor;\n\ninterface AsyncDisposableStack {\n /**\n * Returns a value indicating whether this stack has been disposed.\n */\n readonly disposed: boolean;\n /**\n * Disposes each resource in the stack in the reverse order that they were added.\n */\n disposeAsync(): Promise<void>;\n /**\n * Adds a disposable resource to the stack, returning the resource.\n * @param value The resource to add. `null` and `undefined` will not be added, but will be returned.\n * @returns The provided {@link value}.\n */\n use<T extends AsyncDisposable | Disposable | null | undefined>(value: T): T;\n /**\n * Adds a value and associated disposal callback as a resource to the stack.\n * @param value The value to add.\n * @param onDisposeAsync The callback to use in place of a `[Symbol.asyncDispose]()` method. Will be invoked with `value`\n * as the first parameter.\n * @returns The provided {@link value}.\n */\n adopt<T>(value: T, onDisposeAsync: (value: T) => PromiseLike<void> | void): T;\n /**\n * Adds a callback to be invoked when the stack is disposed.\n */\n defer(onDisposeAsync: () => PromiseLike<void> | void): void;\n /**\n * Move all resources out of this stack and into a new `DisposableStack`, and marks this stack as disposed.\n * @example\n * ```ts\n * class C {\n * #res1: Disposable;\n * #res2: Disposable;\n * #disposables: DisposableStack;\n * constructor() {\n * // stack will be disposed when exiting constructor for any reason\n * using stack = new DisposableStack();\n *\n * // get first resource\n * this.#res1 = stack.use(getResource1());\n *\n * // get second resource. If this fails, both `stack` and `#res1` will be disposed.\n * this.#res2 = stack.use(getResource2());\n *\n * // all operations succeeded, move resources out of `stack` so that they aren\'t disposed\n * // when constructor exits\n * this.#disposables = stack.move();\n * }\n *\n * [Symbol.dispose]() {\n * this.#disposables.dispose();\n * }\n * }\n * ```\n */\n move(): AsyncDisposableStack;\n [Symbol.asyncDispose](): Promise<void>;\n readonly [Symbol.toStringTag]: string;\n}\n\ninterface AsyncDisposableStackConstructor {\n new (): AsyncDisposableStack;\n readonly prototype: AsyncDisposableStack;\n}\ndeclare var AsyncDisposableStack: AsyncDisposableStackConstructor;\n', + 'lib.esnext.full.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/// <reference lib="esnext" />\n/// <reference lib="dom" />\n/// <reference lib="webworker.importscripts" />\n/// <reference lib="scripthost" />\n/// <reference lib="dom.iterable" />\n/// <reference lib="dom.asynciterable" />\n', + 'lib.esnext.intl.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ndeclare namespace Intl {\n interface NumberRangeFormatPart extends NumberFormatPart {\n source: "startRange" | "endRange" | "shared";\n }\n\n interface NumberFormat {\n formatRange(start: number | bigint, end: number | bigint): string;\n formatRangeToParts(start: number | bigint, end: number | bigint): NumberRangeFormatPart[];\n }\n}\n', + 'lib.esnext.object.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface ObjectConstructor {\n /**\n * Groups members of an iterable according to the return value of the passed callback.\n * @param items An iterable.\n * @param keySelector A callback which will be invoked for each item in items.\n */\n groupBy<K extends PropertyKey, T>(\n items: Iterable<T>,\n keySelector: (item: T, index: number) => K,\n ): Partial<Record<K, T[]>>;\n}\n', + 'lib.esnext.promise.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\ninterface PromiseWithResolvers<T> {\n promise: Promise<T>;\n resolve: (value: T | PromiseLike<T>) => void;\n reject: (reason?: any) => void;\n}\n\ninterface PromiseConstructor {\n /**\n * Creates a new Promise and returns it in an object, along with its resolve and reject functions.\n * @returns An object with the properties `promise`, `resolve`, and `reject`.\n *\n * ```ts\n * const { promise, resolve, reject } = Promise.withResolvers<T>();\n * ```\n */\n withResolvers<T>(): PromiseWithResolvers<T>;\n}\n', + 'lib.scripthost.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/////////////////////////////\n/// Windows Script Host APIS\n/////////////////////////////\n\ninterface ActiveXObject {\n new (s: string): any;\n}\ndeclare var ActiveXObject: ActiveXObject;\n\ninterface ITextWriter {\n Write(s: string): void;\n WriteLine(s: string): void;\n Close(): void;\n}\n\ninterface TextStreamBase {\n /**\n * The column number of the current character position in an input stream.\n */\n Column: number;\n\n /**\n * The current line number in an input stream.\n */\n Line: number;\n\n /**\n * Closes a text stream.\n * It is not necessary to close standard streams; they close automatically when the process ends. If\n * you close a standard stream, be aware that any other pointers to that standard stream become invalid.\n */\n Close(): void;\n}\n\ninterface TextStreamWriter extends TextStreamBase {\n /**\n * Sends a string to an output stream.\n */\n Write(s: string): void;\n\n /**\n * Sends a specified number of blank lines (newline characters) to an output stream.\n */\n WriteBlankLines(intLines: number): void;\n\n /**\n * Sends a string followed by a newline character to an output stream.\n */\n WriteLine(s: string): void;\n}\n\ninterface TextStreamReader extends TextStreamBase {\n /**\n * Returns a specified number of characters from an input stream, starting at the current pointer position.\n * Does not return until the ENTER key is pressed.\n * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\n */\n Read(characters: number): string;\n\n /**\n * Returns all characters from an input stream.\n * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\n */\n ReadAll(): string;\n\n /**\n * Returns an entire line from an input stream.\n * Although this method extracts the newline character, it does not add it to the returned string.\n * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\n */\n ReadLine(): string;\n\n /**\n * Skips a specified number of characters when reading from an input text stream.\n * Can only be used on a stream in reading mode; causes an error in writing or appending mode.\n * @param characters Positive number of characters to skip forward. (Backward skipping is not supported.)\n */\n Skip(characters: number): void;\n\n /**\n * Skips the next line when reading from an input text stream.\n * Can only be used on a stream in reading mode, not writing or appending mode.\n */\n SkipLine(): void;\n\n /**\n * Indicates whether the stream pointer position is at the end of a line.\n */\n AtEndOfLine: boolean;\n\n /**\n * Indicates whether the stream pointer position is at the end of a stream.\n */\n AtEndOfStream: boolean;\n}\n\ndeclare var WScript: {\n /**\n * Outputs text to either a message box (under WScript.exe) or the command console window followed by\n * a newline (under CScript.exe).\n */\n Echo(s: any): void;\n\n /**\n * Exposes the write-only error output stream for the current script.\n * Can be accessed only while using CScript.exe.\n */\n StdErr: TextStreamWriter;\n\n /**\n * Exposes the write-only output stream for the current script.\n * Can be accessed only while using CScript.exe.\n */\n StdOut: TextStreamWriter;\n Arguments: { length: number; Item(n: number): string; };\n\n /**\n * The full path of the currently running script.\n */\n ScriptFullName: string;\n\n /**\n * Forces the script to stop immediately, with an optional exit code.\n */\n Quit(exitCode?: number): number;\n\n /**\n * The Windows Script Host build version number.\n */\n BuildVersion: number;\n\n /**\n * Fully qualified path of the host executable.\n */\n FullName: string;\n\n /**\n * Gets/sets the script mode - interactive(true) or batch(false).\n */\n Interactive: boolean;\n\n /**\n * The name of the host executable (WScript.exe or CScript.exe).\n */\n Name: string;\n\n /**\n * Path of the directory containing the host executable.\n */\n Path: string;\n\n /**\n * The filename of the currently running script.\n */\n ScriptName: string;\n\n /**\n * Exposes the read-only input stream for the current script.\n * Can be accessed only while using CScript.exe.\n */\n StdIn: TextStreamReader;\n\n /**\n * Windows Script Host version\n */\n Version: string;\n\n /**\n * Connects a COM object\'s event sources to functions named with a given prefix, in the form prefix_event.\n */\n ConnectObject(objEventSource: any, strPrefix: string): void;\n\n /**\n * Creates a COM object.\n * @param strProgiID\n * @param strPrefix Function names in the form prefix_event will be bound to this object\'s COM events.\n */\n CreateObject(strProgID: string, strPrefix?: string): any;\n\n /**\n * Disconnects a COM object from its event sources.\n */\n DisconnectObject(obj: any): void;\n\n /**\n * Retrieves an existing object with the specified ProgID from memory, or creates a new one from a file.\n * @param strPathname Fully qualified path to the file containing the object persisted to disk.\n * For objects in memory, pass a zero-length string.\n * @param strProgID\n * @param strPrefix Function names in the form prefix_event will be bound to this object\'s COM events.\n */\n GetObject(strPathname: string, strProgID?: string, strPrefix?: string): any;\n\n /**\n * Suspends script execution for a specified length of time, then continues execution.\n * @param intTime Interval (in milliseconds) to suspend script execution.\n */\n Sleep(intTime: number): void;\n};\n\n/**\n * WSH is an alias for WScript under Windows Script Host\n */\ndeclare var WSH: typeof WScript;\n\n/**\n * Represents an Automation SAFEARRAY\n */\ndeclare class SafeArray<T = any> {\n private constructor();\n private SafeArray_typekey: SafeArray<T>;\n}\n\n/**\n * Allows enumerating over a COM collection, which may not have indexed item access.\n */\ninterface Enumerator<T = any> {\n /**\n * Returns true if the current item is the last one in the collection, or the collection is empty,\n * or the current item is undefined.\n */\n atEnd(): boolean;\n\n /**\n * Returns the current item in the collection\n */\n item(): T;\n\n /**\n * Resets the current item in the collection to the first item. If there are no items in the collection,\n * the current item is set to undefined.\n */\n moveFirst(): void;\n\n /**\n * Moves the current item to the next item in the collection. If the enumerator is at the end of\n * the collection or the collection is empty, the current item is set to undefined.\n */\n moveNext(): void;\n}\n\ninterface EnumeratorConstructor {\n new <T = any>(safearray: SafeArray<T>): Enumerator<T>;\n new <T = any>(collection: { Item(index: any): T; }): Enumerator<T>;\n new <T = any>(collection: any): Enumerator<T>;\n}\n\ndeclare var Enumerator: EnumeratorConstructor;\n\n/**\n * Enables reading from a COM safe array, which might have an alternate lower bound, or multiple dimensions.\n */\ninterface VBArray<T = any> {\n /**\n * Returns the number of dimensions (1-based).\n */\n dimensions(): number;\n\n /**\n * Takes an index for each dimension in the array, and returns the item at the corresponding location.\n */\n getItem(dimension1Index: number, ...dimensionNIndexes: number[]): T;\n\n /**\n * Returns the smallest available index for a given dimension.\n * @param dimension 1-based dimension (defaults to 1)\n */\n lbound(dimension?: number): number;\n\n /**\n * Returns the largest available index for a given dimension.\n * @param dimension 1-based dimension (defaults to 1)\n */\n ubound(dimension?: number): number;\n\n /**\n * Returns a Javascript array with all the elements in the VBArray. If there are multiple dimensions,\n * each successive dimension is appended to the end of the array.\n * Example: [[1,2,3],[4,5,6]] becomes [1,2,3,4,5,6]\n */\n toArray(): T[];\n}\n\ninterface VBArrayConstructor {\n new <T = any>(safeArray: SafeArray<T>): VBArray<T>;\n}\n\ndeclare var VBArray: VBArrayConstructor;\n\n/**\n * Automation date (VT_DATE)\n */\ndeclare class VarDate {\n private constructor();\n private VarDate_typekey: VarDate;\n}\n\ninterface DateConstructor {\n new (vd: VarDate): Date;\n}\n\ninterface Date {\n getVarDate: () => VarDate;\n}\n', + 'lib.webworker.asynciterable.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/////////////////////////////\n/// Worker Async Iterable APIs\n/////////////////////////////\n\ninterface FileSystemDirectoryHandle {\n [Symbol.asyncIterator](): AsyncIterableIterator<[string, FileSystemHandle]>;\n entries(): AsyncIterableIterator<[string, FileSystemHandle]>;\n keys(): AsyncIterableIterator<string>;\n values(): AsyncIterableIterator<FileSystemHandle>;\n}\n', + 'lib.webworker.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/////////////////////////////\n/// Worker APIs\n/////////////////////////////\n\ninterface AddEventListenerOptions extends EventListenerOptions {\n once?: boolean;\n passive?: boolean;\n signal?: AbortSignal;\n}\n\ninterface AesCbcParams extends Algorithm {\n iv: BufferSource;\n}\n\ninterface AesCtrParams extends Algorithm {\n counter: BufferSource;\n length: number;\n}\n\ninterface AesDerivedKeyParams extends Algorithm {\n length: number;\n}\n\ninterface AesGcmParams extends Algorithm {\n additionalData?: BufferSource;\n iv: BufferSource;\n tagLength?: number;\n}\n\ninterface AesKeyAlgorithm extends KeyAlgorithm {\n length: number;\n}\n\ninterface AesKeyGenParams extends Algorithm {\n length: number;\n}\n\ninterface Algorithm {\n name: string;\n}\n\ninterface AudioConfiguration {\n bitrate?: number;\n channels?: string;\n contentType: string;\n samplerate?: number;\n spatialRendering?: boolean;\n}\n\ninterface AvcEncoderConfig {\n format?: AvcBitstreamFormat;\n}\n\ninterface BlobPropertyBag {\n endings?: EndingType;\n type?: string;\n}\n\ninterface CSSMatrixComponentOptions {\n is2D?: boolean;\n}\n\ninterface CSSNumericType {\n angle?: number;\n flex?: number;\n frequency?: number;\n length?: number;\n percent?: number;\n percentHint?: CSSNumericBaseType;\n resolution?: number;\n time?: number;\n}\n\ninterface CacheQueryOptions {\n ignoreMethod?: boolean;\n ignoreSearch?: boolean;\n ignoreVary?: boolean;\n}\n\ninterface ClientQueryOptions {\n includeUncontrolled?: boolean;\n type?: ClientTypes;\n}\n\ninterface CloseEventInit extends EventInit {\n code?: number;\n reason?: string;\n wasClean?: boolean;\n}\n\ninterface CryptoKeyPair {\n privateKey: CryptoKey;\n publicKey: CryptoKey;\n}\n\ninterface CustomEventInit<T = any> extends EventInit {\n detail?: T;\n}\n\ninterface DOMMatrix2DInit {\n a?: number;\n b?: number;\n c?: number;\n d?: number;\n e?: number;\n f?: number;\n m11?: number;\n m12?: number;\n m21?: number;\n m22?: number;\n m41?: number;\n m42?: number;\n}\n\ninterface DOMMatrixInit extends DOMMatrix2DInit {\n is2D?: boolean;\n m13?: number;\n m14?: number;\n m23?: number;\n m24?: number;\n m31?: number;\n m32?: number;\n m33?: number;\n m34?: number;\n m43?: number;\n m44?: number;\n}\n\ninterface DOMPointInit {\n w?: number;\n x?: number;\n y?: number;\n z?: number;\n}\n\ninterface DOMQuadInit {\n p1?: DOMPointInit;\n p2?: DOMPointInit;\n p3?: DOMPointInit;\n p4?: DOMPointInit;\n}\n\ninterface DOMRectInit {\n height?: number;\n width?: number;\n x?: number;\n y?: number;\n}\n\ninterface EcKeyGenParams extends Algorithm {\n namedCurve: NamedCurve;\n}\n\ninterface EcKeyImportParams extends Algorithm {\n namedCurve: NamedCurve;\n}\n\ninterface EcdhKeyDeriveParams extends Algorithm {\n public: CryptoKey;\n}\n\ninterface EcdsaParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface EncodedVideoChunkInit {\n data: AllowSharedBufferSource;\n duration?: number;\n timestamp: number;\n type: EncodedVideoChunkType;\n}\n\ninterface EncodedVideoChunkMetadata {\n decoderConfig?: VideoDecoderConfig;\n}\n\ninterface ErrorEventInit extends EventInit {\n colno?: number;\n error?: any;\n filename?: string;\n lineno?: number;\n message?: string;\n}\n\ninterface EventInit {\n bubbles?: boolean;\n cancelable?: boolean;\n composed?: boolean;\n}\n\ninterface EventListenerOptions {\n capture?: boolean;\n}\n\ninterface EventSourceInit {\n withCredentials?: boolean;\n}\n\ninterface ExtendableEventInit extends EventInit {\n}\n\ninterface ExtendableMessageEventInit extends ExtendableEventInit {\n data?: any;\n lastEventId?: string;\n origin?: string;\n ports?: MessagePort[];\n source?: Client | ServiceWorker | MessagePort | null;\n}\n\ninterface FetchEventInit extends ExtendableEventInit {\n clientId?: string;\n handled?: Promise<undefined>;\n preloadResponse?: Promise<any>;\n replacesClientId?: string;\n request: Request;\n resultingClientId?: string;\n}\n\ninterface FilePropertyBag extends BlobPropertyBag {\n lastModified?: number;\n}\n\ninterface FileSystemCreateWritableOptions {\n keepExistingData?: boolean;\n}\n\ninterface FileSystemGetDirectoryOptions {\n create?: boolean;\n}\n\ninterface FileSystemGetFileOptions {\n create?: boolean;\n}\n\ninterface FileSystemReadWriteOptions {\n at?: number;\n}\n\ninterface FileSystemRemoveOptions {\n recursive?: boolean;\n}\n\ninterface FontFaceDescriptors {\n ascentOverride?: string;\n descentOverride?: string;\n display?: FontDisplay;\n featureSettings?: string;\n lineGapOverride?: string;\n stretch?: string;\n style?: string;\n unicodeRange?: string;\n weight?: string;\n}\n\ninterface FontFaceSetLoadEventInit extends EventInit {\n fontfaces?: FontFace[];\n}\n\ninterface GetNotificationOptions {\n tag?: string;\n}\n\ninterface HkdfParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n info: BufferSource;\n salt: BufferSource;\n}\n\ninterface HmacImportParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n length?: number;\n}\n\ninterface HmacKeyGenParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n length?: number;\n}\n\ninterface IDBDatabaseInfo {\n name?: string;\n version?: number;\n}\n\ninterface IDBIndexParameters {\n multiEntry?: boolean;\n unique?: boolean;\n}\n\ninterface IDBObjectStoreParameters {\n autoIncrement?: boolean;\n keyPath?: string | string[] | null;\n}\n\ninterface IDBTransactionOptions {\n durability?: IDBTransactionDurability;\n}\n\ninterface IDBVersionChangeEventInit extends EventInit {\n newVersion?: number | null;\n oldVersion?: number;\n}\n\ninterface ImageBitmapOptions {\n colorSpaceConversion?: ColorSpaceConversion;\n imageOrientation?: ImageOrientation;\n premultiplyAlpha?: PremultiplyAlpha;\n resizeHeight?: number;\n resizeQuality?: ResizeQuality;\n resizeWidth?: number;\n}\n\ninterface ImageBitmapRenderingContextSettings {\n alpha?: boolean;\n}\n\ninterface ImageDataSettings {\n colorSpace?: PredefinedColorSpace;\n}\n\ninterface ImageEncodeOptions {\n quality?: number;\n type?: string;\n}\n\ninterface ImportMeta {\n url: string;\n}\n\ninterface JsonWebKey {\n alg?: string;\n crv?: string;\n d?: string;\n dp?: string;\n dq?: string;\n e?: string;\n ext?: boolean;\n k?: string;\n key_ops?: string[];\n kty?: string;\n n?: string;\n oth?: RsaOtherPrimesInfo[];\n p?: string;\n q?: string;\n qi?: string;\n use?: string;\n x?: string;\n y?: string;\n}\n\ninterface KeyAlgorithm {\n name: string;\n}\n\ninterface LockInfo {\n clientId?: string;\n mode?: LockMode;\n name?: string;\n}\n\ninterface LockManagerSnapshot {\n held?: LockInfo[];\n pending?: LockInfo[];\n}\n\ninterface LockOptions {\n ifAvailable?: boolean;\n mode?: LockMode;\n signal?: AbortSignal;\n steal?: boolean;\n}\n\ninterface MediaCapabilitiesDecodingInfo extends MediaCapabilitiesInfo {\n configuration?: MediaDecodingConfiguration;\n}\n\ninterface MediaCapabilitiesEncodingInfo extends MediaCapabilitiesInfo {\n configuration?: MediaEncodingConfiguration;\n}\n\ninterface MediaCapabilitiesInfo {\n powerEfficient: boolean;\n smooth: boolean;\n supported: boolean;\n}\n\ninterface MediaConfiguration {\n audio?: AudioConfiguration;\n video?: VideoConfiguration;\n}\n\ninterface MediaDecodingConfiguration extends MediaConfiguration {\n type: MediaDecodingType;\n}\n\ninterface MediaEncodingConfiguration extends MediaConfiguration {\n type: MediaEncodingType;\n}\n\ninterface MessageEventInit<T = any> extends EventInit {\n data?: T;\n lastEventId?: string;\n origin?: string;\n ports?: MessagePort[];\n source?: MessageEventSource | null;\n}\n\ninterface MultiCacheQueryOptions extends CacheQueryOptions {\n cacheName?: string;\n}\n\ninterface NavigationPreloadState {\n enabled?: boolean;\n headerValue?: string;\n}\n\ninterface NotificationEventInit extends ExtendableEventInit {\n action?: string;\n notification: Notification;\n}\n\ninterface NotificationOptions {\n badge?: string;\n body?: string;\n data?: any;\n dir?: NotificationDirection;\n icon?: string;\n lang?: string;\n requireInteraction?: boolean;\n silent?: boolean | null;\n tag?: string;\n}\n\ninterface Pbkdf2Params extends Algorithm {\n hash: HashAlgorithmIdentifier;\n iterations: number;\n salt: BufferSource;\n}\n\ninterface PerformanceMarkOptions {\n detail?: any;\n startTime?: DOMHighResTimeStamp;\n}\n\ninterface PerformanceMeasureOptions {\n detail?: any;\n duration?: DOMHighResTimeStamp;\n end?: string | DOMHighResTimeStamp;\n start?: string | DOMHighResTimeStamp;\n}\n\ninterface PerformanceObserverInit {\n buffered?: boolean;\n entryTypes?: string[];\n type?: string;\n}\n\ninterface PermissionDescriptor {\n name: PermissionName;\n}\n\ninterface PlaneLayout {\n offset: number;\n stride: number;\n}\n\ninterface ProgressEventInit extends EventInit {\n lengthComputable?: boolean;\n loaded?: number;\n total?: number;\n}\n\ninterface PromiseRejectionEventInit extends EventInit {\n promise: Promise<any>;\n reason?: any;\n}\n\ninterface PushEventInit extends ExtendableEventInit {\n data?: PushMessageDataInit;\n}\n\ninterface PushSubscriptionJSON {\n endpoint?: string;\n expirationTime?: EpochTimeStamp | null;\n keys?: Record<string, string>;\n}\n\ninterface PushSubscriptionOptionsInit {\n applicationServerKey?: BufferSource | string | null;\n userVisibleOnly?: boolean;\n}\n\ninterface QueuingStrategy<T = any> {\n highWaterMark?: number;\n size?: QueuingStrategySize<T>;\n}\n\ninterface QueuingStrategyInit {\n /**\n * Creates a new ByteLengthQueuingStrategy with the provided high water mark.\n *\n * Note that the provided high water mark will not be validated ahead of time. Instead, if it is negative, NaN, or not a number, the resulting ByteLengthQueuingStrategy will cause the corresponding stream constructor to throw.\n */\n highWaterMark: number;\n}\n\ninterface RTCEncodedAudioFrameMetadata {\n contributingSources?: number[];\n payloadType?: number;\n sequenceNumber?: number;\n synchronizationSource?: number;\n}\n\ninterface RTCEncodedVideoFrameMetadata {\n contributingSources?: number[];\n dependencies?: number[];\n frameId?: number;\n height?: number;\n payloadType?: number;\n spatialIndex?: number;\n synchronizationSource?: number;\n temporalIndex?: number;\n timestamp?: number;\n width?: number;\n}\n\ninterface ReadableStreamGetReaderOptions {\n /**\n * Creates a ReadableStreamBYOBReader and locks the stream to the new reader.\n *\n * This call behaves the same way as the no-argument variant, except that it only works on readable byte streams, i.e. streams which were constructed specifically with the ability to handle "bring your own buffer" reading. The returned BYOB reader provides the ability to directly read individual chunks from the stream via its read() method, into developer-supplied buffers, allowing more precise control over allocation.\n */\n mode?: ReadableStreamReaderMode;\n}\n\ninterface ReadableStreamReadDoneResult<T> {\n done: true;\n value?: T;\n}\n\ninterface ReadableStreamReadValueResult<T> {\n done: false;\n value: T;\n}\n\ninterface ReadableWritablePair<R = any, W = any> {\n readable: ReadableStream<R>;\n /**\n * Provides a convenient, chainable way of piping this readable stream through a transform stream (or any other { writable, readable } pair). It simply pipes the stream into the writable side of the supplied pair, and returns the readable side for further use.\n *\n * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.\n */\n writable: WritableStream<W>;\n}\n\ninterface RegistrationOptions {\n scope?: string;\n type?: WorkerType;\n updateViaCache?: ServiceWorkerUpdateViaCache;\n}\n\ninterface ReportingObserverOptions {\n buffered?: boolean;\n types?: string[];\n}\n\ninterface RequestInit {\n /** A BodyInit object or null to set request\'s body. */\n body?: BodyInit | null;\n /** A string indicating how the request will interact with the browser\'s cache to set request\'s cache. */\n cache?: RequestCache;\n /** A string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. Sets request\'s credentials. */\n credentials?: RequestCredentials;\n /** A Headers object, an object literal, or an array of two-item arrays to set request\'s headers. */\n headers?: HeadersInit;\n /** A cryptographic hash of the resource to be fetched by request. Sets request\'s integrity. */\n integrity?: string;\n /** A boolean to set request\'s keepalive. */\n keepalive?: boolean;\n /** A string to set request\'s method. */\n method?: string;\n /** A string to indicate whether the request will use CORS, or will be restricted to same-origin URLs. Sets request\'s mode. */\n mode?: RequestMode;\n priority?: RequestPriority;\n /** A string indicating whether request follows redirects, results in an error upon encountering a redirect, or returns the redirect (in an opaque fashion). Sets request\'s redirect. */\n redirect?: RequestRedirect;\n /** A string whose value is a same-origin URL, "about:client", or the empty string, to set request\'s referrer. */\n referrer?: string;\n /** A referrer policy to set request\'s referrerPolicy. */\n referrerPolicy?: ReferrerPolicy;\n /** An AbortSignal to set request\'s signal. */\n signal?: AbortSignal | null;\n /** Can only be null. Used to disassociate request from any Window. */\n window?: null;\n}\n\ninterface ResponseInit {\n headers?: HeadersInit;\n status?: number;\n statusText?: string;\n}\n\ninterface RsaHashedImportParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface RsaHashedKeyGenParams extends RsaKeyGenParams {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface RsaKeyGenParams extends Algorithm {\n modulusLength: number;\n publicExponent: BigInteger;\n}\n\ninterface RsaOaepParams extends Algorithm {\n label?: BufferSource;\n}\n\ninterface RsaOtherPrimesInfo {\n d?: string;\n r?: string;\n t?: string;\n}\n\ninterface RsaPssParams extends Algorithm {\n saltLength: number;\n}\n\ninterface SecurityPolicyViolationEventInit extends EventInit {\n blockedURI?: string;\n columnNumber?: number;\n disposition: SecurityPolicyViolationEventDisposition;\n documentURI: string;\n effectiveDirective: string;\n lineNumber?: number;\n originalPolicy: string;\n referrer?: string;\n sample?: string;\n sourceFile?: string;\n statusCode: number;\n violatedDirective: string;\n}\n\ninterface StorageEstimate {\n quota?: number;\n usage?: number;\n}\n\ninterface StreamPipeOptions {\n preventAbort?: boolean;\n preventCancel?: boolean;\n /**\n * Pipes this readable stream to a given writable stream destination. The way in which the piping process behaves under various error conditions can be customized with a number of passed options. It returns a promise that fulfills when the piping process completes successfully, or rejects if any errors were encountered.\n *\n * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.\n *\n * Errors and closures of the source and destination streams propagate as follows:\n *\n * An error in this source readable stream will abort destination, unless preventAbort is truthy. The returned promise will be rejected with the source\'s error, or with any error that occurs during aborting the destination.\n *\n * An error in destination will cancel this source readable stream, unless preventCancel is truthy. The returned promise will be rejected with the destination\'s error, or with any error that occurs during canceling the source.\n *\n * When this source readable stream closes, destination will be closed, unless preventClose is truthy. The returned promise will be fulfilled once this process completes, unless an error is encountered while closing the destination, in which case it will be rejected with that error.\n *\n * If destination starts out closed or closing, this source readable stream will be canceled, unless preventCancel is true. The returned promise will be rejected with an error indicating piping to a closed stream failed, or with any error that occurs during canceling the source.\n *\n * The signal option can be set to an AbortSignal to allow aborting an ongoing pipe operation via the corresponding AbortController. In this case, this source readable stream will be canceled, and destination aborted, unless the respective options preventCancel or preventAbort are set.\n */\n preventClose?: boolean;\n signal?: AbortSignal;\n}\n\ninterface StructuredSerializeOptions {\n transfer?: Transferable[];\n}\n\ninterface TextDecodeOptions {\n stream?: boolean;\n}\n\ninterface TextDecoderOptions {\n fatal?: boolean;\n ignoreBOM?: boolean;\n}\n\ninterface TextEncoderEncodeIntoResult {\n read: number;\n written: number;\n}\n\ninterface Transformer<I = any, O = any> {\n flush?: TransformerFlushCallback<O>;\n readableType?: undefined;\n start?: TransformerStartCallback<O>;\n transform?: TransformerTransformCallback<I, O>;\n writableType?: undefined;\n}\n\ninterface UnderlyingByteSource {\n autoAllocateChunkSize?: number;\n cancel?: UnderlyingSourceCancelCallback;\n pull?: (controller: ReadableByteStreamController) => void | PromiseLike<void>;\n start?: (controller: ReadableByteStreamController) => any;\n type: "bytes";\n}\n\ninterface UnderlyingDefaultSource<R = any> {\n cancel?: UnderlyingSourceCancelCallback;\n pull?: (controller: ReadableStreamDefaultController<R>) => void | PromiseLike<void>;\n start?: (controller: ReadableStreamDefaultController<R>) => any;\n type?: undefined;\n}\n\ninterface UnderlyingSink<W = any> {\n abort?: UnderlyingSinkAbortCallback;\n close?: UnderlyingSinkCloseCallback;\n start?: UnderlyingSinkStartCallback;\n type?: undefined;\n write?: UnderlyingSinkWriteCallback<W>;\n}\n\ninterface UnderlyingSource<R = any> {\n autoAllocateChunkSize?: number;\n cancel?: UnderlyingSourceCancelCallback;\n pull?: UnderlyingSourcePullCallback<R>;\n start?: UnderlyingSourceStartCallback<R>;\n type?: ReadableStreamType;\n}\n\ninterface VideoColorSpaceInit {\n fullRange?: boolean | null;\n matrix?: VideoMatrixCoefficients | null;\n primaries?: VideoColorPrimaries | null;\n transfer?: VideoTransferCharacteristics | null;\n}\n\ninterface VideoConfiguration {\n bitrate: number;\n colorGamut?: ColorGamut;\n contentType: string;\n framerate: number;\n hdrMetadataType?: HdrMetadataType;\n height: number;\n scalabilityMode?: string;\n transferFunction?: TransferFunction;\n width: number;\n}\n\ninterface VideoDecoderConfig {\n codec: string;\n codedHeight?: number;\n codedWidth?: number;\n colorSpace?: VideoColorSpaceInit;\n description?: AllowSharedBufferSource;\n displayAspectHeight?: number;\n displayAspectWidth?: number;\n hardwareAcceleration?: HardwareAcceleration;\n optimizeForLatency?: boolean;\n}\n\ninterface VideoDecoderInit {\n error: WebCodecsErrorCallback;\n output: VideoFrameOutputCallback;\n}\n\ninterface VideoDecoderSupport {\n config?: VideoDecoderConfig;\n supported?: boolean;\n}\n\ninterface VideoEncoderConfig {\n alpha?: AlphaOption;\n avc?: AvcEncoderConfig;\n bitrate?: number;\n bitrateMode?: VideoEncoderBitrateMode;\n codec: string;\n displayHeight?: number;\n displayWidth?: number;\n framerate?: number;\n hardwareAcceleration?: HardwareAcceleration;\n height: number;\n latencyMode?: LatencyMode;\n scalabilityMode?: string;\n width: number;\n}\n\ninterface VideoEncoderEncodeOptions {\n keyFrame?: boolean;\n}\n\ninterface VideoEncoderInit {\n error: WebCodecsErrorCallback;\n output: EncodedVideoChunkOutputCallback;\n}\n\ninterface VideoEncoderSupport {\n config?: VideoEncoderConfig;\n supported?: boolean;\n}\n\ninterface VideoFrameBufferInit {\n codedHeight: number;\n codedWidth: number;\n colorSpace?: VideoColorSpaceInit;\n displayHeight?: number;\n displayWidth?: number;\n duration?: number;\n format: VideoPixelFormat;\n layout?: PlaneLayout[];\n timestamp: number;\n visibleRect?: DOMRectInit;\n}\n\ninterface VideoFrameCopyToOptions {\n layout?: PlaneLayout[];\n rect?: DOMRectInit;\n}\n\ninterface VideoFrameInit {\n alpha?: AlphaOption;\n displayHeight?: number;\n displayWidth?: number;\n duration?: number;\n timestamp?: number;\n visibleRect?: DOMRectInit;\n}\n\ninterface WebGLContextAttributes {\n alpha?: boolean;\n antialias?: boolean;\n depth?: boolean;\n desynchronized?: boolean;\n failIfMajorPerformanceCaveat?: boolean;\n powerPreference?: WebGLPowerPreference;\n premultipliedAlpha?: boolean;\n preserveDrawingBuffer?: boolean;\n stencil?: boolean;\n}\n\ninterface WebGLContextEventInit extends EventInit {\n statusMessage?: string;\n}\n\ninterface WebTransportCloseInfo {\n closeCode?: number;\n reason?: string;\n}\n\ninterface WebTransportErrorOptions {\n source?: WebTransportErrorSource;\n streamErrorCode?: number | null;\n}\n\ninterface WebTransportHash {\n algorithm?: string;\n value?: BufferSource;\n}\n\ninterface WebTransportOptions {\n allowPooling?: boolean;\n congestionControl?: WebTransportCongestionControl;\n requireUnreliable?: boolean;\n serverCertificateHashes?: WebTransportHash[];\n}\n\ninterface WebTransportSendStreamOptions {\n sendOrder?: number;\n}\n\ninterface WorkerOptions {\n credentials?: RequestCredentials;\n name?: string;\n type?: WorkerType;\n}\n\ninterface WriteParams {\n data?: BufferSource | Blob | string | null;\n position?: number | null;\n size?: number | null;\n type: WriteCommandType;\n}\n\n/**\n * The ANGLE_instanced_arrays extension is part of the WebGL API and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays)\n */\ninterface ANGLE_instanced_arrays {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawArraysInstancedANGLE) */\n drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawElementsInstancedANGLE) */\n drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/vertexAttribDivisorANGLE) */\n vertexAttribDivisorANGLE(index: GLuint, divisor: GLuint): void;\n readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: 0x88FE;\n}\n\n/**\n * A controller object that allows you to abort one or more DOM requests as and when desired.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController)\n */\ninterface AbortController {\n /**\n * Returns the AbortSignal object associated with this object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/signal)\n */\n readonly signal: AbortSignal;\n /**\n * Invoking this method will set this object\'s AbortSignal\'s aborted flag and signal to any observers that the associated activity is to be aborted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/abort)\n */\n abort(reason?: any): void;\n}\n\ndeclare var AbortController: {\n prototype: AbortController;\n new(): AbortController;\n};\n\ninterface AbortSignalEventMap {\n "abort": Event;\n}\n\n/**\n * A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal)\n */\ninterface AbortSignal extends EventTarget {\n /**\n * Returns true if this AbortSignal\'s AbortController has signaled to abort, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/aborted)\n */\n readonly aborted: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_event) */\n onabort: ((this: AbortSignal, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/reason) */\n readonly reason: any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/throwIfAborted) */\n throwIfAborted(): void;\n addEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AbortSignal: {\n prototype: AbortSignal;\n new(): AbortSignal;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_static) */\n abort(reason?: any): AbortSignal;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/timeout_static) */\n timeout(milliseconds: number): AbortSignal;\n};\n\ninterface AbstractWorkerEventMap {\n "error": ErrorEvent;\n}\n\ninterface AbstractWorker {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/error_event) */\n onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;\n addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ninterface AnimationFrameProvider {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/cancelAnimationFrame) */\n cancelAnimationFrame(handle: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/requestAnimationFrame) */\n requestAnimationFrame(callback: FrameRequestCallback): number;\n}\n\n/**\n * 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.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob)\n */\ninterface Blob {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/size) */\n readonly size: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/type) */\n readonly type: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/arrayBuffer) */\n arrayBuffer(): Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/slice) */\n slice(start?: number, end?: number, contentType?: string): Blob;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/stream) */\n stream(): ReadableStream<Uint8Array>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/text) */\n text(): Promise<string>;\n}\n\ndeclare var Blob: {\n prototype: Blob;\n new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;\n};\n\ninterface Body {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body) */\n readonly body: ReadableStream<Uint8Array> | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */\n readonly bodyUsed: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */\n arrayBuffer(): Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */\n blob(): Promise<Blob>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/formData) */\n formData(): Promise<FormData>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/json) */\n json(): Promise<any>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/text) */\n text(): Promise<string>;\n}\n\ninterface BroadcastChannelEventMap {\n "message": MessageEvent;\n "messageerror": MessageEvent;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel) */\ninterface BroadcastChannel extends EventTarget {\n /**\n * Returns the channel name (as passed to the constructor).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/name)\n */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/message_event) */\n onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/messageerror_event) */\n onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\n /**\n * Closes the BroadcastChannel object, opening it up to garbage collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/close)\n */\n close(): void;\n /**\n * Sends the given message to other BroadcastChannel objects set up for this channel. Messages can be structured objects, e.g. nested objects and arrays.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/postMessage)\n */\n postMessage(message: any): void;\n addEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var BroadcastChannel: {\n prototype: BroadcastChannel;\n new(name: string): BroadcastChannel;\n};\n\n/**\n * This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy)\n */\ninterface ByteLengthQueuingStrategy extends QueuingStrategy<ArrayBufferView> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/highWaterMark) */\n readonly highWaterMark: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/size) */\n readonly size: QueuingStrategySize<ArrayBufferView>;\n}\n\ndeclare var ByteLengthQueuingStrategy: {\n prototype: ByteLengthQueuingStrategy;\n new(init: QueuingStrategyInit): ByteLengthQueuingStrategy;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImageValue) */\ninterface CSSImageValue extends CSSStyleValue {\n}\n\ndeclare var CSSImageValue: {\n prototype: CSSImageValue;\n new(): CSSImageValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeywordValue) */\ninterface CSSKeywordValue extends CSSStyleValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeywordValue/value) */\n value: string;\n}\n\ndeclare var CSSKeywordValue: {\n prototype: CSSKeywordValue;\n new(value: string): CSSKeywordValue;\n};\n\ninterface CSSMathClamp extends CSSMathValue {\n readonly lower: CSSNumericValue;\n readonly upper: CSSNumericValue;\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathClamp: {\n prototype: CSSMathClamp;\n new(lower: CSSNumberish, value: CSSNumberish, upper: CSSNumberish): CSSMathClamp;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathInvert) */\ninterface CSSMathInvert extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathInvert/value) */\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathInvert: {\n prototype: CSSMathInvert;\n new(arg: CSSNumberish): CSSMathInvert;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMax) */\ninterface CSSMathMax extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMax/values) */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathMax: {\n prototype: CSSMathMax;\n new(...args: CSSNumberish[]): CSSMathMax;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMin) */\ninterface CSSMathMin extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMin/values) */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathMin: {\n prototype: CSSMathMin;\n new(...args: CSSNumberish[]): CSSMathMin;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathNegate) */\ninterface CSSMathNegate extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathNegate/value) */\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathNegate: {\n prototype: CSSMathNegate;\n new(arg: CSSNumberish): CSSMathNegate;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathProduct) */\ninterface CSSMathProduct extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathProduct/values) */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathProduct: {\n prototype: CSSMathProduct;\n new(...args: CSSNumberish[]): CSSMathProduct;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathSum) */\ninterface CSSMathSum extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathSum/values) */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathSum: {\n prototype: CSSMathSum;\n new(...args: CSSNumberish[]): CSSMathSum;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathValue) */\ninterface CSSMathValue extends CSSNumericValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathValue/operator) */\n readonly operator: CSSMathOperator;\n}\n\ndeclare var CSSMathValue: {\n prototype: CSSMathValue;\n new(): CSSMathValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMatrixComponent) */\ninterface CSSMatrixComponent extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMatrixComponent/matrix) */\n matrix: DOMMatrix;\n}\n\ndeclare var CSSMatrixComponent: {\n prototype: CSSMatrixComponent;\n new(matrix: DOMMatrixReadOnly, options?: CSSMatrixComponentOptions): CSSMatrixComponent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericArray) */\ninterface CSSNumericArray {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericArray/length) */\n readonly length: number;\n forEach(callbackfn: (value: CSSNumericValue, key: number, parent: CSSNumericArray) => void, thisArg?: any): void;\n [index: number]: CSSNumericValue;\n}\n\ndeclare var CSSNumericArray: {\n prototype: CSSNumericArray;\n new(): CSSNumericArray;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue) */\ninterface CSSNumericValue extends CSSStyleValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/add) */\n add(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/div) */\n div(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/equals) */\n equals(...value: CSSNumberish[]): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/max) */\n max(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/min) */\n min(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/mul) */\n mul(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/sub) */\n sub(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/to) */\n to(unit: string): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/toSum) */\n toSum(...units: string[]): CSSMathSum;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/type) */\n type(): CSSNumericType;\n}\n\ndeclare var CSSNumericValue: {\n prototype: CSSNumericValue;\n new(): CSSNumericValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPerspective) */\ninterface CSSPerspective extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPerspective/length) */\n length: CSSPerspectiveValue;\n}\n\ndeclare var CSSPerspective: {\n prototype: CSSPerspective;\n new(length: CSSPerspectiveValue): CSSPerspective;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate) */\ninterface CSSRotate extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/angle) */\n angle: CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/x) */\n x: CSSNumberish;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/y) */\n y: CSSNumberish;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/z) */\n z: CSSNumberish;\n}\n\ndeclare var CSSRotate: {\n prototype: CSSRotate;\n new(angle: CSSNumericValue): CSSRotate;\n new(x: CSSNumberish, y: CSSNumberish, z: CSSNumberish, angle: CSSNumericValue): CSSRotate;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale) */\ninterface CSSScale extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/x) */\n x: CSSNumberish;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/y) */\n y: CSSNumberish;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/z) */\n z: CSSNumberish;\n}\n\ndeclare var CSSScale: {\n prototype: CSSScale;\n new(x: CSSNumberish, y: CSSNumberish, z?: CSSNumberish): CSSScale;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew) */\ninterface CSSSkew extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew/ax) */\n ax: CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew/ay) */\n ay: CSSNumericValue;\n}\n\ndeclare var CSSSkew: {\n prototype: CSSSkew;\n new(ax: CSSNumericValue, ay: CSSNumericValue): CSSSkew;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewX) */\ninterface CSSSkewX extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewX/ax) */\n ax: CSSNumericValue;\n}\n\ndeclare var CSSSkewX: {\n prototype: CSSSkewX;\n new(ax: CSSNumericValue): CSSSkewX;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewY) */\ninterface CSSSkewY extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewY/ay) */\n ay: CSSNumericValue;\n}\n\ndeclare var CSSSkewY: {\n prototype: CSSSkewY;\n new(ay: CSSNumericValue): CSSSkewY;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue) */\ninterface CSSStyleValue {\n toString(): string;\n}\n\ndeclare var CSSStyleValue: {\n prototype: CSSStyleValue;\n new(): CSSStyleValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent) */\ninterface CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent/is2D) */\n is2D: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent/toMatrix) */\n toMatrix(): DOMMatrix;\n toString(): string;\n}\n\ndeclare var CSSTransformComponent: {\n prototype: CSSTransformComponent;\n new(): CSSTransformComponent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue) */\ninterface CSSTransformValue extends CSSStyleValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/is2D) */\n readonly is2D: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/toMatrix) */\n toMatrix(): DOMMatrix;\n forEach(callbackfn: (value: CSSTransformComponent, key: number, parent: CSSTransformValue) => void, thisArg?: any): void;\n [index: number]: CSSTransformComponent;\n}\n\ndeclare var CSSTransformValue: {\n prototype: CSSTransformValue;\n new(transforms: CSSTransformComponent[]): CSSTransformValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate) */\ninterface CSSTranslate extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/x) */\n x: CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/y) */\n y: CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/z) */\n z: CSSNumericValue;\n}\n\ndeclare var CSSTranslate: {\n prototype: CSSTranslate;\n new(x: CSSNumericValue, y: CSSNumericValue, z?: CSSNumericValue): CSSTranslate;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue) */\ninterface CSSUnitValue extends CSSNumericValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue/unit) */\n readonly unit: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue/value) */\n value: number;\n}\n\ndeclare var CSSUnitValue: {\n prototype: CSSUnitValue;\n new(value: number, unit: string): CSSUnitValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue) */\ninterface CSSUnparsedValue extends CSSStyleValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue/length) */\n readonly length: number;\n forEach(callbackfn: (value: CSSUnparsedSegment, key: number, parent: CSSUnparsedValue) => void, thisArg?: any): void;\n [index: number]: CSSUnparsedSegment;\n}\n\ndeclare var CSSUnparsedValue: {\n prototype: CSSUnparsedValue;\n new(members: CSSUnparsedSegment[]): CSSUnparsedValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue) */\ninterface CSSVariableReferenceValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue/fallback) */\n readonly fallback: CSSUnparsedValue | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue/variable) */\n variable: string;\n}\n\ndeclare var CSSVariableReferenceValue: {\n prototype: CSSVariableReferenceValue;\n new(variable: string, fallback?: CSSUnparsedValue | null): CSSVariableReferenceValue;\n};\n\n/**\n * Provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don\'t have to use it in conjunction with service workers, even though it is defined in the service worker spec.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache)\n */\ninterface Cache {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/add) */\n add(request: RequestInfo | URL): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/addAll) */\n addAll(requests: RequestInfo[]): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/delete) */\n delete(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<boolean>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/keys) */\n keys(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<ReadonlyArray<Request>>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/match) */\n match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/matchAll) */\n matchAll(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<ReadonlyArray<Response>>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/put) */\n put(request: RequestInfo | URL, response: Response): Promise<void>;\n}\n\ndeclare var Cache: {\n prototype: Cache;\n new(): Cache;\n};\n\n/**\n * The storage for Cache objects.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage)\n */\ninterface CacheStorage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/delete) */\n delete(cacheName: string): Promise<boolean>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/has) */\n has(cacheName: string): Promise<boolean>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/keys) */\n keys(): Promise<string[]>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/match) */\n match(request: RequestInfo | URL, options?: MultiCacheQueryOptions): Promise<Response | undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/open) */\n open(cacheName: string): Promise<Cache>;\n}\n\ndeclare var CacheStorage: {\n prototype: CacheStorage;\n new(): CacheStorage;\n};\n\ninterface CanvasCompositing {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalAlpha) */\n globalAlpha: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation) */\n globalCompositeOperation: GlobalCompositeOperation;\n}\n\ninterface CanvasDrawImage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/drawImage) */\n drawImage(image: CanvasImageSource, dx: number, dy: number): void;\n drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void;\n drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;\n}\n\ninterface CanvasDrawPath {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/beginPath) */\n beginPath(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clip) */\n clip(fillRule?: CanvasFillRule): void;\n clip(path: Path2D, fillRule?: CanvasFillRule): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fill) */\n fill(fillRule?: CanvasFillRule): void;\n fill(path: Path2D, fillRule?: CanvasFillRule): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInPath) */\n isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;\n isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInStroke) */\n isPointInStroke(x: number, y: number): boolean;\n isPointInStroke(path: Path2D, x: number, y: number): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/stroke) */\n stroke(): void;\n stroke(path: Path2D): void;\n}\n\ninterface CanvasFillStrokeStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillStyle) */\n fillStyle: string | CanvasGradient | CanvasPattern;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeStyle) */\n strokeStyle: string | CanvasGradient | CanvasPattern;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createConicGradient) */\n createConicGradient(startAngle: number, x: number, y: number): CanvasGradient;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createLinearGradient) */\n createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createPattern) */\n createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createRadialGradient) */\n createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;\n}\n\ninterface CanvasFilters {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/filter) */\n filter: string;\n}\n\n/**\n * An opaque object describing a gradient. It is returned by the methods CanvasRenderingContext2D.createLinearGradient() or CanvasRenderingContext2D.createRadialGradient().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient)\n */\ninterface CanvasGradient {\n /**\n * Adds a color stop with the given color to the gradient at the given offset. 0.0 is the offset at one end of the gradient, 1.0 is the offset at the other end.\n *\n * Throws an "IndexSizeError" DOMException if the offset is out of range. Throws a "SyntaxError" DOMException if the color cannot be parsed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient/addColorStop)\n */\n addColorStop(offset: number, color: string): void;\n}\n\ndeclare var CanvasGradient: {\n prototype: CanvasGradient;\n new(): CanvasGradient;\n};\n\ninterface CanvasImageData {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createImageData) */\n createImageData(sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n createImageData(imagedata: ImageData): ImageData;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getImageData) */\n getImageData(sx: number, sy: number, sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/putImageData) */\n putImageData(imagedata: ImageData, dx: number, dy: number): void;\n putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;\n}\n\ninterface CanvasImageSmoothing {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingEnabled) */\n imageSmoothingEnabled: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingQuality) */\n imageSmoothingQuality: ImageSmoothingQuality;\n}\n\ninterface CanvasPath {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arc) */\n arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arcTo) */\n arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/bezierCurveTo) */\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/closePath) */\n closePath(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/ellipse) */\n ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineTo) */\n lineTo(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/moveTo) */\n moveTo(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/quadraticCurveTo) */\n quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rect) */\n rect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/roundRect) */\n roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | (number | DOMPointInit)[]): void;\n}\n\ninterface CanvasPathDrawingStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineCap) */\n lineCap: CanvasLineCap;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineDashOffset) */\n lineDashOffset: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineJoin) */\n lineJoin: CanvasLineJoin;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineWidth) */\n lineWidth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/miterLimit) */\n miterLimit: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getLineDash) */\n getLineDash(): number[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash) */\n setLineDash(segments: number[]): void;\n}\n\n/**\n * An opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern)\n */\ninterface CanvasPattern {\n /**\n * Sets the transformation matrix that will be used when rendering the pattern during a fill or stroke painting operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern/setTransform)\n */\n setTransform(transform?: DOMMatrix2DInit): void;\n}\n\ndeclare var CanvasPattern: {\n prototype: CanvasPattern;\n new(): CanvasPattern;\n};\n\ninterface CanvasRect {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clearRect) */\n clearRect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillRect) */\n fillRect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeRect) */\n strokeRect(x: number, y: number, w: number, h: number): void;\n}\n\ninterface CanvasShadowStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowBlur) */\n shadowBlur: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowColor) */\n shadowColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowOffsetX) */\n shadowOffsetX: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowOffsetY) */\n shadowOffsetY: number;\n}\n\ninterface CanvasState {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/reset) */\n reset(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/restore) */\n restore(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/save) */\n save(): void;\n}\n\ninterface CanvasText {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillText) */\n fillText(text: string, x: number, y: number, maxWidth?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/measureText) */\n measureText(text: string): TextMetrics;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeText) */\n strokeText(text: string, x: number, y: number, maxWidth?: number): void;\n}\n\ninterface CanvasTextDrawingStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/direction) */\n direction: CanvasDirection;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/font) */\n font: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontKerning) */\n fontKerning: CanvasFontKerning;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontStretch) */\n fontStretch: CanvasFontStretch;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontVariantCaps) */\n fontVariantCaps: CanvasFontVariantCaps;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/letterSpacing) */\n letterSpacing: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textAlign) */\n textAlign: CanvasTextAlign;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textBaseline) */\n textBaseline: CanvasTextBaseline;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textRendering) */\n textRendering: CanvasTextRendering;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/wordSpacing) */\n wordSpacing: string;\n}\n\ninterface CanvasTransform {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getTransform) */\n getTransform(): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/resetTransform) */\n resetTransform(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rotate) */\n rotate(angle: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/scale) */\n scale(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setTransform) */\n setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;\n setTransform(transform?: DOMMatrix2DInit): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/transform) */\n transform(a: number, b: number, c: number, d: number, e: number, f: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/translate) */\n translate(x: number, y: number): void;\n}\n\n/**\n * The Client interface represents an executable context such as a Worker, or a SharedWorker. Window clients are represented by the more-specific WindowClient. You can get Client/WindowClient objects from methods such as Clients.matchAll() and Clients.get().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client)\n */\ninterface Client {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/frameType) */\n readonly frameType: FrameType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/id) */\n readonly id: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/type) */\n readonly type: ClientTypes;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/url) */\n readonly url: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/postMessage) */\n postMessage(message: any, transfer: Transferable[]): void;\n postMessage(message: any, options?: StructuredSerializeOptions): void;\n}\n\ndeclare var Client: {\n prototype: Client;\n new(): Client;\n};\n\n/**\n * Provides access to Client objects. Access it via self.clients within a service worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients)\n */\ninterface Clients {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/claim) */\n claim(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/get) */\n get(id: string): Promise<Client | undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/matchAll) */\n matchAll<T extends ClientQueryOptions>(options?: T): Promise<ReadonlyArray<T["type"] extends "window" ? WindowClient : Client>>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/openWindow) */\n openWindow(url: string | URL): Promise<WindowClient | null>;\n}\n\ndeclare var Clients: {\n prototype: Clients;\n new(): Clients;\n};\n\n/**\n * A CloseEvent is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object\'s onclose attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent)\n */\ninterface CloseEvent extends Event {\n /**\n * Returns the WebSocket connection close code provided by the server.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/code)\n */\n readonly code: number;\n /**\n * Returns the WebSocket connection close reason provided by the server.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/reason)\n */\n readonly reason: string;\n /**\n * Returns true if the connection closed cleanly; false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/wasClean)\n */\n readonly wasClean: boolean;\n}\n\ndeclare var CloseEvent: {\n prototype: CloseEvent;\n new(type: string, eventInitDict?: CloseEventInit): CloseEvent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream) */\ninterface CompressionStream extends GenericTransformStream {\n}\n\ndeclare var CompressionStream: {\n prototype: CompressionStream;\n new(format: CompressionFormat): CompressionStream;\n};\n\n/**\n * This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy)\n */\ninterface CountQueuingStrategy extends QueuingStrategy {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/highWaterMark) */\n readonly highWaterMark: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/size) */\n readonly size: QueuingStrategySize;\n}\n\ndeclare var CountQueuingStrategy: {\n prototype: CountQueuingStrategy;\n new(init: QueuingStrategyInit): CountQueuingStrategy;\n};\n\n/**\n * Basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto)\n */\ninterface Crypto {\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/subtle)\n */\n readonly subtle: SubtleCrypto;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/getRandomValues) */\n getRandomValues<T extends ArrayBufferView | null>(array: T): T;\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/randomUUID)\n */\n randomUUID(): `${string}-${string}-${string}-${string}-${string}`;\n}\n\ndeclare var Crypto: {\n prototype: Crypto;\n new(): Crypto;\n};\n\n/**\n * The CryptoKey dictionary of the Web Crypto API represents a cryptographic key.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey)\n */\ninterface CryptoKey {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/algorithm) */\n readonly algorithm: KeyAlgorithm;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/extractable) */\n readonly extractable: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/type) */\n readonly type: KeyType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/usages) */\n readonly usages: KeyUsage[];\n}\n\ndeclare var CryptoKey: {\n prototype: CryptoKey;\n new(): CryptoKey;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent) */\ninterface CustomEvent<T = any> extends Event {\n /**\n * Returns any custom data event was created with. Typically used for synthetic events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/detail)\n */\n readonly detail: T;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/initCustomEvent)\n */\n initCustomEvent(type: string, bubbles?: boolean, cancelable?: boolean, detail?: T): void;\n}\n\ndeclare var CustomEvent: {\n prototype: CustomEvent;\n new<T>(type: string, eventInitDict?: CustomEventInit<T>): CustomEvent<T>;\n};\n\n/**\n * An abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException)\n */\ninterface DOMException extends Error {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/code)\n */\n readonly code: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/message) */\n readonly message: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/name) */\n readonly name: string;\n readonly INDEX_SIZE_ERR: 1;\n readonly DOMSTRING_SIZE_ERR: 2;\n readonly HIERARCHY_REQUEST_ERR: 3;\n readonly WRONG_DOCUMENT_ERR: 4;\n readonly INVALID_CHARACTER_ERR: 5;\n readonly NO_DATA_ALLOWED_ERR: 6;\n readonly NO_MODIFICATION_ALLOWED_ERR: 7;\n readonly NOT_FOUND_ERR: 8;\n readonly NOT_SUPPORTED_ERR: 9;\n readonly INUSE_ATTRIBUTE_ERR: 10;\n readonly INVALID_STATE_ERR: 11;\n readonly SYNTAX_ERR: 12;\n readonly INVALID_MODIFICATION_ERR: 13;\n readonly NAMESPACE_ERR: 14;\n readonly INVALID_ACCESS_ERR: 15;\n readonly VALIDATION_ERR: 16;\n readonly TYPE_MISMATCH_ERR: 17;\n readonly SECURITY_ERR: 18;\n readonly NETWORK_ERR: 19;\n readonly ABORT_ERR: 20;\n readonly URL_MISMATCH_ERR: 21;\n readonly QUOTA_EXCEEDED_ERR: 22;\n readonly TIMEOUT_ERR: 23;\n readonly INVALID_NODE_TYPE_ERR: 24;\n readonly DATA_CLONE_ERR: 25;\n}\n\ndeclare var DOMException: {\n prototype: DOMException;\n new(message?: string, name?: string): DOMException;\n readonly INDEX_SIZE_ERR: 1;\n readonly DOMSTRING_SIZE_ERR: 2;\n readonly HIERARCHY_REQUEST_ERR: 3;\n readonly WRONG_DOCUMENT_ERR: 4;\n readonly INVALID_CHARACTER_ERR: 5;\n readonly NO_DATA_ALLOWED_ERR: 6;\n readonly NO_MODIFICATION_ALLOWED_ERR: 7;\n readonly NOT_FOUND_ERR: 8;\n readonly NOT_SUPPORTED_ERR: 9;\n readonly INUSE_ATTRIBUTE_ERR: 10;\n readonly INVALID_STATE_ERR: 11;\n readonly SYNTAX_ERR: 12;\n readonly INVALID_MODIFICATION_ERR: 13;\n readonly NAMESPACE_ERR: 14;\n readonly INVALID_ACCESS_ERR: 15;\n readonly VALIDATION_ERR: 16;\n readonly TYPE_MISMATCH_ERR: 17;\n readonly SECURITY_ERR: 18;\n readonly NETWORK_ERR: 19;\n readonly ABORT_ERR: 20;\n readonly URL_MISMATCH_ERR: 21;\n readonly QUOTA_EXCEEDED_ERR: 22;\n readonly TIMEOUT_ERR: 23;\n readonly INVALID_NODE_TYPE_ERR: 24;\n readonly DATA_CLONE_ERR: 25;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix) */\ninterface DOMMatrix extends DOMMatrixReadOnly {\n a: number;\n b: number;\n c: number;\n d: number;\n e: number;\n f: number;\n m11: number;\n m12: number;\n m13: number;\n m14: number;\n m21: number;\n m22: number;\n m23: number;\n m24: number;\n m31: number;\n m32: number;\n m33: number;\n m34: number;\n m41: number;\n m42: number;\n m43: number;\n m44: number;\n invertSelf(): DOMMatrix;\n multiplySelf(other?: DOMMatrixInit): DOMMatrix;\n preMultiplySelf(other?: DOMMatrixInit): DOMMatrix;\n rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;\n rotateFromVectorSelf(x?: number, y?: number): DOMMatrix;\n rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/scale3dSelf) */\n scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/scaleSelf) */\n scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n skewXSelf(sx?: number): DOMMatrix;\n skewYSelf(sy?: number): DOMMatrix;\n translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix;\n}\n\ndeclare var DOMMatrix: {\n prototype: DOMMatrix;\n new(init?: string | number[]): DOMMatrix;\n fromFloat32Array(array32: Float32Array): DOMMatrix;\n fromFloat64Array(array64: Float64Array): DOMMatrix;\n fromMatrix(other?: DOMMatrixInit): DOMMatrix;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly) */\ninterface DOMMatrixReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/a) */\n readonly a: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/b) */\n readonly b: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/c) */\n readonly c: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/d) */\n readonly d: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/e) */\n readonly e: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/f) */\n readonly f: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/is2D) */\n readonly is2D: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/isIdentity) */\n readonly isIdentity: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m11) */\n readonly m11: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m12) */\n readonly m12: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m13) */\n readonly m13: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m14) */\n readonly m14: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m21) */\n readonly m21: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m22) */\n readonly m22: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m23) */\n readonly m23: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m24) */\n readonly m24: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m31) */\n readonly m31: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m32) */\n readonly m32: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m33) */\n readonly m33: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m34) */\n readonly m34: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m41) */\n readonly m41: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m42) */\n readonly m42: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m43) */\n readonly m43: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m44) */\n readonly m44: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/flipX) */\n flipX(): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/flipY) */\n flipY(): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/inverse) */\n inverse(): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/multiply) */\n multiply(other?: DOMMatrixInit): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotate) */\n rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotateAxisAngle) */\n rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotateFromVector) */\n rotateFromVector(x?: number, y?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scale) */\n scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scale3d) */\n scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scaleNonUniform)\n */\n scaleNonUniform(scaleX?: number, scaleY?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/skewX) */\n skewX(sx?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/skewY) */\n skewY(sy?: number): DOMMatrix;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toFloat32Array) */\n toFloat32Array(): Float32Array;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toFloat64Array) */\n toFloat64Array(): Float64Array;\n toJSON(): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/transformPoint) */\n transformPoint(point?: DOMPointInit): DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/translate) */\n translate(tx?: number, ty?: number, tz?: number): DOMMatrix;\n}\n\ndeclare var DOMMatrixReadOnly: {\n prototype: DOMMatrixReadOnly;\n new(init?: string | number[]): DOMMatrixReadOnly;\n fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;\n fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;\n fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint) */\ninterface DOMPoint extends DOMPointReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/w) */\n w: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/x) */\n x: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/y) */\n y: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/z) */\n z: number;\n}\n\ndeclare var DOMPoint: {\n prototype: DOMPoint;\n new(x?: number, y?: number, z?: number, w?: number): DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/fromPoint_static) */\n fromPoint(other?: DOMPointInit): DOMPoint;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly) */\ninterface DOMPointReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/w) */\n readonly w: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/x) */\n readonly x: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/y) */\n readonly y: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/z) */\n readonly z: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/matrixTransform) */\n matrixTransform(matrix?: DOMMatrixInit): DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/toJSON) */\n toJSON(): any;\n}\n\ndeclare var DOMPointReadOnly: {\n prototype: DOMPointReadOnly;\n new(x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/fromPoint_static) */\n fromPoint(other?: DOMPointInit): DOMPointReadOnly;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad) */\ninterface DOMQuad {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p1) */\n readonly p1: DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p2) */\n readonly p2: DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p3) */\n readonly p3: DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p4) */\n readonly p4: DOMPoint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/getBounds) */\n getBounds(): DOMRect;\n toJSON(): any;\n}\n\ndeclare var DOMQuad: {\n prototype: DOMQuad;\n new(p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;\n fromQuad(other?: DOMQuadInit): DOMQuad;\n fromRect(other?: DOMRectInit): DOMQuad;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect) */\ninterface DOMRect extends DOMRectReadOnly {\n height: number;\n width: number;\n x: number;\n y: number;\n}\n\ndeclare var DOMRect: {\n prototype: DOMRect;\n new(x?: number, y?: number, width?: number, height?: number): DOMRect;\n fromRect(other?: DOMRectInit): DOMRect;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly) */\ninterface DOMRectReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/bottom) */\n readonly bottom: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/height) */\n readonly height: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/left) */\n readonly left: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/right) */\n readonly right: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/top) */\n readonly top: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/width) */\n readonly width: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/x) */\n readonly x: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/y) */\n readonly y: number;\n toJSON(): any;\n}\n\ndeclare var DOMRectReadOnly: {\n prototype: DOMRectReadOnly;\n new(x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/fromRect_static) */\n fromRect(other?: DOMRectInit): DOMRectReadOnly;\n};\n\n/**\n * A type returned by some APIs which contains a list of DOMString (strings).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList)\n */\ninterface DOMStringList {\n /**\n * Returns the number of strings in strings.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/length)\n */\n readonly length: number;\n /**\n * Returns true if strings contains string, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/contains)\n */\n contains(string: string): boolean;\n /**\n * Returns the string with index index from strings.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/item)\n */\n item(index: number): string | null;\n [index: number]: string;\n}\n\ndeclare var DOMStringList: {\n prototype: DOMStringList;\n new(): DOMStringList;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DecompressionStream) */\ninterface DecompressionStream extends GenericTransformStream {\n}\n\ndeclare var DecompressionStream: {\n prototype: DecompressionStream;\n new(format: CompressionFormat): DecompressionStream;\n};\n\ninterface DedicatedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {\n "message": MessageEvent;\n "messageerror": MessageEvent;\n "rtctransform": Event;\n}\n\n/**\n * (the Worker global scope) is accessible through the self keyword. Some additional global functions, namespaces objects, and constructors, not typically associated with the worker global scope, but available on it, are listed in the JavaScript Reference. See also: Functions available to workers.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope)\n */\ninterface DedicatedWorkerGlobalScope extends WorkerGlobalScope, AnimationFrameProvider {\n /**\n * Returns dedicatedWorkerGlobal\'s name, i.e. the value given to the Worker constructor. Primarily useful for debugging.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/name)\n */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/message_event) */\n onmessage: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/messageerror_event) */\n onmessageerror: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/rtctransform_event) */\n onrtctransform: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;\n /**\n * Aborts dedicatedWorkerGlobal.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/close)\n */\n close(): void;\n /**\n * Clones message and transmits it to the Worker object associated with dedicatedWorkerGlobal. transfer can be passed as a list of objects that are to be transferred rather than cloned.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/postMessage)\n */\n postMessage(message: any, transfer: Transferable[]): void;\n postMessage(message: any, options?: StructuredSerializeOptions): void;\n addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var DedicatedWorkerGlobalScope: {\n prototype: DedicatedWorkerGlobalScope;\n new(): DedicatedWorkerGlobalScope;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_blend_minmax) */\ninterface EXT_blend_minmax {\n readonly MIN_EXT: 0x8007;\n readonly MAX_EXT: 0x8008;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_color_buffer_float) */\ninterface EXT_color_buffer_float {\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_color_buffer_half_float) */\ninterface EXT_color_buffer_half_float {\n readonly RGBA16F_EXT: 0x881A;\n readonly RGB16F_EXT: 0x881B;\n readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;\n readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_float_blend) */\ninterface EXT_float_blend {\n}\n\n/**\n * The EXT_frag_depth extension is part of the WebGL API and enables to set a depth value of a fragment from within the fragment shader.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_frag_depth)\n */\ninterface EXT_frag_depth {\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_sRGB) */\ninterface EXT_sRGB {\n readonly SRGB_EXT: 0x8C40;\n readonly SRGB_ALPHA_EXT: 0x8C42;\n readonly SRGB8_ALPHA8_EXT: 0x8C43;\n readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: 0x8210;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_shader_texture_lod) */\ninterface EXT_shader_texture_lod {\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_compression_bptc) */\ninterface EXT_texture_compression_bptc {\n readonly COMPRESSED_RGBA_BPTC_UNORM_EXT: 0x8E8C;\n readonly COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT: 0x8E8D;\n readonly COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT: 0x8E8E;\n readonly COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT: 0x8E8F;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_compression_rgtc) */\ninterface EXT_texture_compression_rgtc {\n readonly COMPRESSED_RED_RGTC1_EXT: 0x8DBB;\n readonly COMPRESSED_SIGNED_RED_RGTC1_EXT: 0x8DBC;\n readonly COMPRESSED_RED_GREEN_RGTC2_EXT: 0x8DBD;\n readonly COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 0x8DBE;\n}\n\n/**\n * The EXT_texture_filter_anisotropic extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_filter_anisotropic)\n */\ninterface EXT_texture_filter_anisotropic {\n readonly TEXTURE_MAX_ANISOTROPY_EXT: 0x84FE;\n readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: 0x84FF;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_norm16) */\ninterface EXT_texture_norm16 {\n readonly R16_EXT: 0x822A;\n readonly RG16_EXT: 0x822C;\n readonly RGB16_EXT: 0x8054;\n readonly RGBA16_EXT: 0x805B;\n readonly R16_SNORM_EXT: 0x8F98;\n readonly RG16_SNORM_EXT: 0x8F99;\n readonly RGB16_SNORM_EXT: 0x8F9A;\n readonly RGBA16_SNORM_EXT: 0x8F9B;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk) */\ninterface EncodedVideoChunk {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/byteLength) */\n readonly byteLength: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/duration) */\n readonly duration: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/timestamp) */\n readonly timestamp: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/type) */\n readonly type: EncodedVideoChunkType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/copyTo) */\n copyTo(destination: AllowSharedBufferSource): void;\n}\n\ndeclare var EncodedVideoChunk: {\n prototype: EncodedVideoChunk;\n new(init: EncodedVideoChunkInit): EncodedVideoChunk;\n};\n\n/**\n * Events providing information related to errors in scripts or in files.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent)\n */\ninterface ErrorEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/colno) */\n readonly colno: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/error) */\n readonly error: any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/filename) */\n readonly filename: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/lineno) */\n readonly lineno: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/message) */\n readonly message: string;\n}\n\ndeclare var ErrorEvent: {\n prototype: ErrorEvent;\n new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent;\n};\n\n/**\n * An event which takes place in the DOM.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event)\n */\ninterface Event {\n /**\n * Returns true or false depending on how event was initialized. True if event goes through its target\'s ancestors in reverse tree order, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/bubbles)\n */\n readonly bubbles: boolean;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelBubble)\n */\n cancelBubble: boolean;\n /**\n * Returns true or false depending on how event was initialized. Its return value does not always carry meaning, but true can indicate that part of the operation during which event was dispatched, can be canceled by invoking the preventDefault() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelable)\n */\n readonly cancelable: boolean;\n /**\n * Returns true or false depending on how event was initialized. True if event invokes listeners past a ShadowRoot node that is the root of its target, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composed)\n */\n readonly composed: boolean;\n /**\n * Returns the object whose event listener\'s callback is currently being invoked.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)\n */\n readonly currentTarget: EventTarget | null;\n /**\n * Returns true if preventDefault() was invoked successfully to indicate cancelation, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/defaultPrevented)\n */\n readonly defaultPrevented: boolean;\n /**\n * Returns the event\'s phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET, and BUBBLING_PHASE.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/eventPhase)\n */\n readonly eventPhase: number;\n /**\n * Returns true if event was dispatched by the user agent, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/isTrusted)\n */\n readonly isTrusted: boolean;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/returnValue)\n */\n returnValue: boolean;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/srcElement)\n */\n readonly srcElement: EventTarget | null;\n /**\n * Returns the object to which event is dispatched (its target).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)\n */\n readonly target: EventTarget | null;\n /**\n * Returns the event\'s timestamp as the number of milliseconds measured relative to the time origin.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/timeStamp)\n */\n readonly timeStamp: DOMHighResTimeStamp;\n /**\n * Returns the type of event, e.g. "click", "hashchange", or "submit".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/type)\n */\n readonly type: string;\n /**\n * Returns the invocation target objects of event\'s path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root\'s mode is "closed" that are not reachable from event\'s currentTarget.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composedPath)\n */\n composedPath(): EventTarget[];\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/initEvent)\n */\n initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;\n /**\n * If invoked when the cancelable attribute value is true, and while executing a listener for the event with passive set to false, signals to the operation that caused event to be dispatched that it needs to be canceled.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/preventDefault)\n */\n preventDefault(): void;\n /**\n * Invoking this method prevents event from reaching any registered event listeners after the current one finishes running and, when dispatched in a tree, also prevents event from reaching any other objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopImmediatePropagation)\n */\n stopImmediatePropagation(): void;\n /**\n * When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopPropagation)\n */\n stopPropagation(): void;\n readonly NONE: 0;\n readonly CAPTURING_PHASE: 1;\n readonly AT_TARGET: 2;\n readonly BUBBLING_PHASE: 3;\n}\n\ndeclare var Event: {\n prototype: Event;\n new(type: string, eventInitDict?: EventInit): Event;\n readonly NONE: 0;\n readonly CAPTURING_PHASE: 1;\n readonly AT_TARGET: 2;\n readonly BUBBLING_PHASE: 3;\n};\n\ninterface EventListener {\n (evt: Event): void;\n}\n\ninterface EventListenerObject {\n handleEvent(object: Event): void;\n}\n\ninterface EventSourceEventMap {\n "error": Event;\n "message": MessageEvent;\n "open": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource) */\ninterface EventSource extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/error_event) */\n onerror: ((this: EventSource, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/message_event) */\n onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/open_event) */\n onopen: ((this: EventSource, ev: Event) => any) | null;\n /**\n * Returns the state of this EventSource object\'s connection. It can have the values described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/readyState)\n */\n readonly readyState: number;\n /**\n * Returns the URL providing the event stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/url)\n */\n readonly url: string;\n /**\n * Returns true if the credentials mode for connection requests to the URL providing the event stream is set to "include", and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/withCredentials)\n */\n readonly withCredentials: boolean;\n /**\n * Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/close)\n */\n close(): void;\n readonly CONNECTING: 0;\n readonly OPEN: 1;\n readonly CLOSED: 2;\n addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var EventSource: {\n prototype: EventSource;\n new(url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource;\n readonly CONNECTING: 0;\n readonly OPEN: 1;\n readonly CLOSED: 2;\n};\n\n/**\n * EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget)\n */\ninterface EventTarget {\n /**\n * Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.\n *\n * The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options\'s capture.\n *\n * When set to true, options\'s capture prevents callback from being invoked when the event\'s eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event\'s eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event\'s eventPhase attribute value is AT_TARGET.\n *\n * When set to true, options\'s passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.\n *\n * When set to true, options\'s once indicates that the callback will only be invoked once after which the event listener will be removed.\n *\n * If an AbortSignal is passed for options\'s signal, then the event listener will be removed when signal is aborted.\n *\n * The event listener is appended to target\'s event listener list and is not appended if it has the same type, callback, and capture.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)\n */\n addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void;\n /**\n * Dispatches a synthetic event event to target and returns true if either event\'s cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)\n */\n dispatchEvent(event: Event): boolean;\n /**\n * Removes the event listener in target\'s event listener list with the same type, callback, and options.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)\n */\n removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;\n}\n\ndeclare var EventTarget: {\n prototype: EventTarget;\n new(): EventTarget;\n};\n\n/**\n * Extends the lifetime of the install and activate events dispatched on the global scope as part of the service worker lifecycle. This ensures that any functional events (like FetchEvent) are not dispatched until it upgrades database schemas and deletes the outdated cache entries.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableEvent)\n */\ninterface ExtendableEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableEvent/waitUntil) */\n waitUntil(f: Promise<any>): void;\n}\n\ndeclare var ExtendableEvent: {\n prototype: ExtendableEvent;\n new(type: string, eventInitDict?: ExtendableEventInit): ExtendableEvent;\n};\n\n/**\n * This ServiceWorker API interface represents the event object of a message event fired on a service worker (when a channel message is received on the ServiceWorkerGlobalScope from another context) — extends the lifetime of such events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent)\n */\ninterface ExtendableMessageEvent extends ExtendableEvent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/data) */\n readonly data: any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/lastEventId) */\n readonly lastEventId: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/origin) */\n readonly origin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/ports) */\n readonly ports: ReadonlyArray<MessagePort>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/source) */\n readonly source: Client | ServiceWorker | MessagePort | null;\n}\n\ndeclare var ExtendableMessageEvent: {\n prototype: ExtendableMessageEvent;\n new(type: string, eventInitDict?: ExtendableMessageEventInit): ExtendableMessageEvent;\n};\n\n/**\n * This is the event type for fetch events dispatched on the service worker global scope. It contains information about the fetch, including the request and how the receiver will treat the response. It provides the event.respondWith() method, which allows us to provide a response to this fetch.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent)\n */\ninterface FetchEvent extends ExtendableEvent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/clientId) */\n readonly clientId: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/handled) */\n readonly handled: Promise<undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/preloadResponse) */\n readonly preloadResponse: Promise<any>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/request) */\n readonly request: Request;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/resultingClientId) */\n readonly resultingClientId: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/respondWith) */\n respondWith(r: Response | PromiseLike<Response>): void;\n}\n\ndeclare var FetchEvent: {\n prototype: FetchEvent;\n new(type: string, eventInitDict: FetchEventInit): FetchEvent;\n};\n\n/**\n * Provides information about files and allows JavaScript in a web page to access their content.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File)\n */\ninterface File extends Blob {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/lastModified) */\n readonly lastModified: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/webkitRelativePath) */\n readonly webkitRelativePath: string;\n}\n\ndeclare var File: {\n prototype: File;\n new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;\n};\n\n/**\n * An object of this type is returned by the files property of the HTML <input> element; this lets you access the list of files selected with the <input type="file"> element. It\'s also used for a list of files dropped into web content when using the drag and drop API; see the DataTransfer object for details on this usage.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList)\n */\ninterface FileList {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList/item) */\n item(index: number): File | null;\n [index: number]: File;\n}\n\ndeclare var FileList: {\n prototype: FileList;\n new(): FileList;\n};\n\ninterface FileReaderEventMap {\n "abort": ProgressEvent<FileReader>;\n "error": ProgressEvent<FileReader>;\n "load": ProgressEvent<FileReader>;\n "loadend": ProgressEvent<FileReader>;\n "loadstart": ProgressEvent<FileReader>;\n "progress": ProgressEvent<FileReader>;\n}\n\n/**\n * Lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user\'s computer, using File or Blob objects to specify the file or data to read.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader)\n */\ninterface FileReader extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/error) */\n readonly error: DOMException | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/abort_event) */\n onabort: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/error_event) */\n onerror: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/load_event) */\n onload: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/loadend_event) */\n onloadend: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/loadstart_event) */\n onloadstart: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/progress_event) */\n onprogress: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readyState) */\n readonly readyState: typeof FileReader.EMPTY | typeof FileReader.LOADING | typeof FileReader.DONE;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/result) */\n readonly result: string | ArrayBuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/abort) */\n abort(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsArrayBuffer) */\n readAsArrayBuffer(blob: Blob): void;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsBinaryString)\n */\n readAsBinaryString(blob: Blob): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsDataURL) */\n readAsDataURL(blob: Blob): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsText) */\n readAsText(blob: Blob, encoding?: string): void;\n readonly EMPTY: 0;\n readonly LOADING: 1;\n readonly DONE: 2;\n addEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var FileReader: {\n prototype: FileReader;\n new(): FileReader;\n readonly EMPTY: 0;\n readonly LOADING: 1;\n readonly DONE: 2;\n};\n\n/**\n * Allows to read File or Blob objects in a synchronous way.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync)\n */\ninterface FileReaderSync {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsArrayBuffer) */\n readAsArrayBuffer(blob: Blob): ArrayBuffer;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsBinaryString)\n */\n readAsBinaryString(blob: Blob): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsDataURL) */\n readAsDataURL(blob: Blob): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsText) */\n readAsText(blob: Blob, encoding?: string): string;\n}\n\ndeclare var FileReaderSync: {\n prototype: FileReaderSync;\n new(): FileReaderSync;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle)\n */\ninterface FileSystemDirectoryHandle extends FileSystemHandle {\n readonly kind: "directory";\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/getDirectoryHandle) */\n getDirectoryHandle(name: string, options?: FileSystemGetDirectoryOptions): Promise<FileSystemDirectoryHandle>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/getFileHandle) */\n getFileHandle(name: string, options?: FileSystemGetFileOptions): Promise<FileSystemFileHandle>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/removeEntry) */\n removeEntry(name: string, options?: FileSystemRemoveOptions): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/resolve) */\n resolve(possibleDescendant: FileSystemHandle): Promise<string[] | null>;\n}\n\ndeclare var FileSystemDirectoryHandle: {\n prototype: FileSystemDirectoryHandle;\n new(): FileSystemDirectoryHandle;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle)\n */\ninterface FileSystemFileHandle extends FileSystemHandle {\n readonly kind: "file";\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/createSyncAccessHandle) */\n createSyncAccessHandle(): Promise<FileSystemSyncAccessHandle>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/createWritable) */\n createWritable(options?: FileSystemCreateWritableOptions): Promise<FileSystemWritableFileStream>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/getFile) */\n getFile(): Promise<File>;\n}\n\ndeclare var FileSystemFileHandle: {\n prototype: FileSystemFileHandle;\n new(): FileSystemFileHandle;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle)\n */\ninterface FileSystemHandle {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/kind) */\n readonly kind: FileSystemHandleKind;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/isSameEntry) */\n isSameEntry(other: FileSystemHandle): Promise<boolean>;\n}\n\ndeclare var FileSystemHandle: {\n prototype: FileSystemHandle;\n new(): FileSystemHandle;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle)\n */\ninterface FileSystemSyncAccessHandle {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/close) */\n close(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/flush) */\n flush(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/getSize) */\n getSize(): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/read) */\n read(buffer: AllowSharedBufferSource, options?: FileSystemReadWriteOptions): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/truncate) */\n truncate(newSize: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/write) */\n write(buffer: AllowSharedBufferSource, options?: FileSystemReadWriteOptions): number;\n}\n\ndeclare var FileSystemSyncAccessHandle: {\n prototype: FileSystemSyncAccessHandle;\n new(): FileSystemSyncAccessHandle;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream)\n */\ninterface FileSystemWritableFileStream extends WritableStream {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/seek) */\n seek(position: number): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/truncate) */\n truncate(size: number): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/write) */\n write(data: FileSystemWriteChunkType): Promise<void>;\n}\n\ndeclare var FileSystemWritableFileStream: {\n prototype: FileSystemWritableFileStream;\n new(): FileSystemWritableFileStream;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace) */\ninterface FontFace {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/ascentOverride) */\n ascentOverride: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/descentOverride) */\n descentOverride: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/display) */\n display: FontDisplay;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/family) */\n family: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/featureSettings) */\n featureSettings: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/lineGapOverride) */\n lineGapOverride: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/loaded) */\n readonly loaded: Promise<FontFace>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/status) */\n readonly status: FontFaceLoadStatus;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/stretch) */\n stretch: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/style) */\n style: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/unicodeRange) */\n unicodeRange: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/weight) */\n weight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/load) */\n load(): Promise<FontFace>;\n}\n\ndeclare var FontFace: {\n prototype: FontFace;\n new(family: string, source: string | BinaryData, descriptors?: FontFaceDescriptors): FontFace;\n};\n\ninterface FontFaceSetEventMap {\n "loading": Event;\n "loadingdone": Event;\n "loadingerror": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet) */\ninterface FontFaceSet extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loading_event) */\n onloading: ((this: FontFaceSet, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loadingdone_event) */\n onloadingdone: ((this: FontFaceSet, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loadingerror_event) */\n onloadingerror: ((this: FontFaceSet, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/ready) */\n readonly ready: Promise<FontFaceSet>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/status) */\n readonly status: FontFaceSetLoadStatus;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/check) */\n check(font: string, text?: string): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/load) */\n load(font: string, text?: string): Promise<FontFace[]>;\n forEach(callbackfn: (value: FontFace, key: FontFace, parent: FontFaceSet) => void, thisArg?: any): void;\n addEventListener<K extends keyof FontFaceSetEventMap>(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof FontFaceSetEventMap>(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var FontFaceSet: {\n prototype: FontFaceSet;\n new(initialFaces: FontFace[]): FontFaceSet;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSetLoadEvent) */\ninterface FontFaceSetLoadEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSetLoadEvent/fontfaces) */\n readonly fontfaces: ReadonlyArray<FontFace>;\n}\n\ndeclare var FontFaceSetLoadEvent: {\n prototype: FontFaceSetLoadEvent;\n new(type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent;\n};\n\ninterface FontFaceSource {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fonts) */\n readonly fonts: FontFaceSet;\n}\n\n/**\n * Provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to "multipart/form-data".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData)\n */\ninterface FormData {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/append) */\n append(name: string, value: string | Blob): void;\n append(name: string, value: string): void;\n append(name: string, blobValue: Blob, filename?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/delete) */\n delete(name: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/get) */\n get(name: string): FormDataEntryValue | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/getAll) */\n getAll(name: string): FormDataEntryValue[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/has) */\n has(name: string): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/set) */\n set(name: string, value: string | Blob): void;\n set(name: string, value: string): void;\n set(name: string, blobValue: Blob, filename?: string): void;\n forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any): void;\n}\n\ndeclare var FormData: {\n prototype: FormData;\n new(): FormData;\n};\n\ninterface GenericTransformStream {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream/readable) */\n readonly readable: ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream/writable) */\n readonly writable: WritableStream;\n}\n\n/**\n * This Fetch API interface allows you to perform various actions on HTTP request and response headers. These actions include retrieving, setting, adding to, and removing. A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs. You can add to this using methods like append() (see Examples.) In all methods of this interface, header names are matched by case-insensitive byte sequence.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers)\n */\ninterface Headers {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/append) */\n append(name: string, value: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/delete) */\n delete(name: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/get) */\n get(name: string): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/getSetCookie) */\n getSetCookie(): string[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/has) */\n has(name: string): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/set) */\n set(name: string, value: string): void;\n forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void;\n}\n\ndeclare var Headers: {\n prototype: Headers;\n new(init?: HeadersInit): Headers;\n};\n\n/**\n * This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor)\n */\ninterface IDBCursor {\n /**\n * Returns the direction ("next", "nextunique", "prev" or "prevunique") of the cursor.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/direction)\n */\n readonly direction: IDBCursorDirection;\n /**\n * Returns the key of the cursor. Throws a "InvalidStateError" DOMException if the cursor is advancing or is finished.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/key)\n */\n readonly key: IDBValidKey;\n /**\n * Returns the effective key of the cursor. Throws a "InvalidStateError" DOMException if the cursor is advancing or is finished.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/primaryKey)\n */\n readonly primaryKey: IDBValidKey;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/request) */\n readonly request: IDBRequest;\n /**\n * Returns the IDBObjectStore or IDBIndex the cursor was opened from.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/source)\n */\n readonly source: IDBObjectStore | IDBIndex;\n /**\n * Advances the cursor through the next count records in range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/advance)\n */\n advance(count: number): void;\n /**\n * Advances the cursor to the next record in range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/continue)\n */\n continue(key?: IDBValidKey): void;\n /**\n * Advances the cursor to the next record in range matching or after key and primaryKey. Throws an "InvalidAccessError" DOMException if the source is not an index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/continuePrimaryKey)\n */\n continuePrimaryKey(key: IDBValidKey, primaryKey: IDBValidKey): void;\n /**\n * Delete the record pointed at by the cursor with a new value.\n *\n * If successful, request\'s result will be undefined.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/delete)\n */\n delete(): IDBRequest<undefined>;\n /**\n * Updated the record pointed at by the cursor with a new value.\n *\n * Throws a "DataError" DOMException if the effective object store uses in-line keys and the key would have changed.\n *\n * If successful, request\'s result will be the record\'s key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/update)\n */\n update(value: any): IDBRequest<IDBValidKey>;\n}\n\ndeclare var IDBCursor: {\n prototype: IDBCursor;\n new(): IDBCursor;\n};\n\n/**\n * This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database. It is the same as the IDBCursor, except that it includes the value property.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursorWithValue)\n */\ninterface IDBCursorWithValue extends IDBCursor {\n /**\n * Returns the cursor\'s current value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursorWithValue/value)\n */\n readonly value: any;\n}\n\ndeclare var IDBCursorWithValue: {\n prototype: IDBCursorWithValue;\n new(): IDBCursorWithValue;\n};\n\ninterface IDBDatabaseEventMap {\n "abort": Event;\n "close": Event;\n "error": Event;\n "versionchange": IDBVersionChangeEvent;\n}\n\n/**\n * This IndexedDB API interface provides a connection to a database; you can use an IDBDatabase object to open a transaction on your database then create, manipulate, and delete objects (data) in that database. The interface provides the only way to get and manage versions of the database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase)\n */\ninterface IDBDatabase extends EventTarget {\n /**\n * Returns the name of the database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/name)\n */\n readonly name: string;\n /**\n * Returns a list of the names of object stores in the database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/objectStoreNames)\n */\n readonly objectStoreNames: DOMStringList;\n onabort: ((this: IDBDatabase, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/close_event) */\n onclose: ((this: IDBDatabase, ev: Event) => any) | null;\n onerror: ((this: IDBDatabase, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/versionchange_event) */\n onversionchange: ((this: IDBDatabase, ev: IDBVersionChangeEvent) => any) | null;\n /**\n * Returns the version of the database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/version)\n */\n readonly version: number;\n /**\n * Closes the connection once all running transactions have finished.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/close)\n */\n close(): void;\n /**\n * Creates a new object store with the given name and options and returns a new IDBObjectStore.\n *\n * Throws a "InvalidStateError" DOMException if not called within an upgrade transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/createObjectStore)\n */\n createObjectStore(name: string, options?: IDBObjectStoreParameters): IDBObjectStore;\n /**\n * Deletes the object store with the given name.\n *\n * Throws a "InvalidStateError" DOMException if not called within an upgrade transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/deleteObjectStore)\n */\n deleteObjectStore(name: string): void;\n /**\n * 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.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/transaction)\n */\n transaction(storeNames: string | string[], mode?: IDBTransactionMode, options?: IDBTransactionOptions): IDBTransaction;\n addEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBDatabase: {\n prototype: IDBDatabase;\n new(): IDBDatabase;\n};\n\n/**\n * In the following code snippet, we make a request to open a database, and include handlers for the success and error cases. For a full working example, see our To-do Notifications app (view example live.)\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory)\n */\ninterface IDBFactory {\n /**\n * Compares two values as keys. Returns -1 if key1 precedes key2, 1 if key2 precedes key1, and 0 if the keys are equal.\n *\n * Throws a "DataError" DOMException if either input is not a valid key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/cmp)\n */\n cmp(first: any, second: any): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/databases) */\n databases(): Promise<IDBDatabaseInfo[]>;\n /**\n * Attempts to delete the named database. If the database already exists and there are open connections that don\'t close in response to a versionchange event, the request will be blocked until all they close. If the request is successful request\'s result will be null.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/deleteDatabase)\n */\n deleteDatabase(name: string): IDBOpenDBRequest;\n /**\n * Attempts to open a connection to the named database with the current version, or 1 if it does not already exist. If the request is successful request\'s result will be the connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/open)\n */\n open(name: string, version?: number): IDBOpenDBRequest;\n}\n\ndeclare var IDBFactory: {\n prototype: IDBFactory;\n new(): IDBFactory;\n};\n\n/**\n * IDBIndex interface of the IndexedDB API provides asynchronous access to an index in a database. An index is a kind of object store for looking up records in another object store, called the referenced object store. You use this interface to retrieve data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex)\n */\ninterface IDBIndex {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/keyPath) */\n readonly keyPath: string | string[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/multiEntry) */\n readonly multiEntry: boolean;\n /**\n * Returns the name of the index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/name)\n */\n name: string;\n /**\n * Returns the IDBObjectStore the index belongs to.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/objectStore)\n */\n readonly objectStore: IDBObjectStore;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/unique) */\n readonly unique: boolean;\n /**\n * Retrieves the number of records matching the given key or key range in query.\n *\n * If successful, request\'s result will be the count.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/count)\n */\n count(query?: IDBValidKey | IDBKeyRange): IDBRequest<number>;\n /**\n * Retrieves the value of the first record matching the given key or key range in query.\n *\n * If successful, request\'s result will be the value, or undefined if there was no matching record.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/get)\n */\n get(query: IDBValidKey | IDBKeyRange): IDBRequest<any>;\n /**\n * Retrieves the values of the records matching the given key or key range in query (up to count if given).\n *\n * If successful, request\'s result will be an Array of the values.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getAll)\n */\n getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;\n /**\n * Retrieves the keys of records matching the given key or key range in query (up to count if given).\n *\n * If successful, request\'s result will be an Array of the keys.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getAllKeys)\n */\n getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;\n /**\n * Retrieves the key of the first record matching the given key or key range in query.\n *\n * If successful, request\'s result will be the key, or undefined if there was no matching record.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getKey)\n */\n getKey(query: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;\n /**\n * Opens a cursor over the records matching query, ordered by direction. If query is null, all records in index are matched.\n *\n * If successful, request\'s result will be an IDBCursorWithValue, or null if there were no matching records.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/openCursor)\n */\n openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;\n /**\n * Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in index are matched.\n *\n * If successful, request\'s result will be an IDBCursor, or null if there were no matching records.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/openKeyCursor)\n */\n openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;\n}\n\ndeclare var IDBIndex: {\n prototype: IDBIndex;\n new(): IDBIndex;\n};\n\n/**\n * A key range can be a single value or a range with upper and lower bounds or endpoints. If the key range has both upper and lower bounds, then it is bounded; if it has no bounds, it is unbounded. A bounded key range can either be open (the endpoints are excluded) or closed (the endpoints are included). To retrieve all keys within a certain range, you can use the following code constructs:\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange)\n */\ninterface IDBKeyRange {\n /**\n * Returns lower bound, or undefined if none.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lower)\n */\n readonly lower: any;\n /**\n * Returns true if the lower open flag is set, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lowerOpen)\n */\n readonly lowerOpen: boolean;\n /**\n * Returns upper bound, or undefined if none.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upper)\n */\n readonly upper: any;\n /**\n * Returns true if the upper open flag is set, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upperOpen)\n */\n readonly upperOpen: boolean;\n /**\n * Returns true if key is included in the range, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/includes)\n */\n includes(key: any): boolean;\n}\n\ndeclare var IDBKeyRange: {\n prototype: IDBKeyRange;\n new(): IDBKeyRange;\n /**\n * Returns a new IDBKeyRange spanning from lower to upper. If lowerOpen is true, lower is not included in the range. If upperOpen is true, upper is not included in the range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/bound_static)\n */\n bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;\n /**\n * Returns a new IDBKeyRange starting at key with no upper bound. If open is true, key is not included in the range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lowerBound_static)\n */\n lowerBound(lower: any, open?: boolean): IDBKeyRange;\n /**\n * Returns a new IDBKeyRange spanning only key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/only_static)\n */\n only(value: any): IDBKeyRange;\n /**\n * Returns a new IDBKeyRange with no lower bound and ending at key. If open is true, key is not included in the range.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upperBound_static)\n */\n upperBound(upper: any, open?: boolean): IDBKeyRange;\n};\n\n/**\n * This example shows a variety of different uses of object stores, from updating the data structure with IDBObjectStore.createIndex inside an onupgradeneeded function, to adding a new item to our object store with IDBObjectStore.add. For a full working example, see our To-do Notifications app (view example live.)\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore)\n */\ninterface IDBObjectStore {\n /**\n * Returns true if the store has a key generator, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/autoIncrement)\n */\n readonly autoIncrement: boolean;\n /**\n * Returns a list of the names of indexes in the store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/indexNames)\n */\n readonly indexNames: DOMStringList;\n /**\n * Returns the key path of the store, or null if none.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/keyPath)\n */\n readonly keyPath: string | string[];\n /**\n * Returns the name of the store.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/name)\n */\n name: string;\n /**\n * Returns the associated transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/transaction)\n */\n readonly transaction: IDBTransaction;\n /**\n * Adds or updates a record in store with the given value and key.\n *\n * If the store uses in-line keys and key is specified a "DataError" DOMException will be thrown.\n *\n * If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request\'s error set to a "ConstraintError" DOMException.\n *\n * If successful, request\'s result will be the record\'s key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/add)\n */\n add(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;\n /**\n * Deletes all records in store.\n *\n * If successful, request\'s result will be undefined.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/clear)\n */\n clear(): IDBRequest<undefined>;\n /**\n * Retrieves the number of records matching the given key or key range in query.\n *\n * If successful, request\'s result will be the count.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/count)\n */\n count(query?: IDBValidKey | IDBKeyRange): IDBRequest<number>;\n /**\n * 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.\n *\n * Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/createIndex)\n */\n createIndex(name: string, keyPath: string | string[], options?: IDBIndexParameters): IDBIndex;\n /**\n * Deletes records in store with the given key or in the given key range in query.\n *\n * If successful, request\'s result will be undefined.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/delete)\n */\n delete(query: IDBValidKey | IDBKeyRange): IDBRequest<undefined>;\n /**\n * Deletes the index in store with the given name.\n *\n * Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/deleteIndex)\n */\n deleteIndex(name: string): void;\n /**\n * Retrieves the value of the first record matching the given key or key range in query.\n *\n * If successful, request\'s result will be the value, or undefined if there was no matching record.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/get)\n */\n get(query: IDBValidKey | IDBKeyRange): IDBRequest<any>;\n /**\n * Retrieves the values of the records matching the given key or key range in query (up to count if given).\n *\n * If successful, request\'s result will be an Array of the values.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getAll)\n */\n getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;\n /**\n * Retrieves the keys of records matching the given key or key range in query (up to count if given).\n *\n * If successful, request\'s result will be an Array of the keys.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getAllKeys)\n */\n getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;\n /**\n * Retrieves the key of the first record matching the given key or key range in query.\n *\n * If successful, request\'s result will be the key, or undefined if there was no matching record.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getKey)\n */\n getKey(query: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/index) */\n index(name: string): IDBIndex;\n /**\n * Opens a cursor over the records matching query, ordered by direction. If query is null, all records in store are matched.\n *\n * If successful, request\'s result will be an IDBCursorWithValue pointing at the first matching record, or null if there were no matching records.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/openCursor)\n */\n openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;\n /**\n * Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in store are matched.\n *\n * If successful, request\'s result will be an IDBCursor pointing at the first matching record, or null if there were no matching records.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/openKeyCursor)\n */\n openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;\n /**\n * Adds or updates a record in store with the given value and key.\n *\n * If the store uses in-line keys and key is specified a "DataError" DOMException will be thrown.\n *\n * If put() is used, any existing record with the key will be replaced. If add() is used, and if a record with the key already exists the request will fail, with request\'s error set to a "ConstraintError" DOMException.\n *\n * If successful, request\'s result will be the record\'s key.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/put)\n */\n put(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;\n}\n\ndeclare var IDBObjectStore: {\n prototype: IDBObjectStore;\n new(): IDBObjectStore;\n};\n\ninterface IDBOpenDBRequestEventMap extends IDBRequestEventMap {\n "blocked": IDBVersionChangeEvent;\n "upgradeneeded": IDBVersionChangeEvent;\n}\n\n/**\n * Also inherits methods from its parents IDBRequest and EventTarget.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest)\n */\ninterface IDBOpenDBRequest extends IDBRequest<IDBDatabase> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest/blocked_event) */\n onblocked: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest/upgradeneeded_event) */\n onupgradeneeded: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;\n addEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBOpenDBRequest: {\n prototype: IDBOpenDBRequest;\n new(): IDBOpenDBRequest;\n};\n\ninterface IDBRequestEventMap {\n "error": Event;\n "success": Event;\n}\n\n/**\n * The request object does not initially contain any information about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the IDBRequest instance.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest)\n */\ninterface IDBRequest<T = any> extends EventTarget {\n /**\n * When a request is completed, returns the error (a DOMException), or null if the request succeeded. Throws a "InvalidStateError" DOMException if the request is still pending.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/error)\n */\n readonly error: DOMException | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/error_event) */\n onerror: ((this: IDBRequest<T>, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/success_event) */\n onsuccess: ((this: IDBRequest<T>, ev: Event) => any) | null;\n /**\n * Returns "pending" until a request is complete, then returns "done".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/readyState)\n */\n readonly readyState: IDBRequestReadyState;\n /**\n * When a request is completed, returns the result, or undefined if the request failed. Throws a "InvalidStateError" DOMException if the request is still pending.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/result)\n */\n readonly result: T;\n /**\n * Returns the IDBObjectStore, IDBIndex, or IDBCursor the request was made against, or null if is was an open request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/source)\n */\n readonly source: IDBObjectStore | IDBIndex | IDBCursor;\n /**\n * Returns the IDBTransaction the request was made within. If this as an open request, then it returns an upgrade transaction while it is running, or null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/transaction)\n */\n readonly transaction: IDBTransaction | null;\n addEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBRequest: {\n prototype: IDBRequest;\n new(): IDBRequest;\n};\n\ninterface IDBTransactionEventMap {\n "abort": Event;\n "complete": Event;\n "error": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction) */\ninterface IDBTransaction extends EventTarget {\n /**\n * Returns the transaction\'s connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/db)\n */\n readonly db: IDBDatabase;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/durability) */\n readonly durability: IDBTransactionDurability;\n /**\n * If the transaction was aborted, returns the error (a DOMException) providing the reason.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/error)\n */\n readonly error: DOMException | null;\n /**\n * Returns the mode the transaction was created with ("readonly" or "readwrite"), or "versionchange" for an upgrade transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/mode)\n */\n readonly mode: IDBTransactionMode;\n /**\n * Returns a list of the names of object stores in the transaction\'s scope. For an upgrade transaction this is all object stores in the database.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/objectStoreNames)\n */\n readonly objectStoreNames: DOMStringList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/abort_event) */\n onabort: ((this: IDBTransaction, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/complete_event) */\n oncomplete: ((this: IDBTransaction, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/error_event) */\n onerror: ((this: IDBTransaction, ev: Event) => any) | null;\n /**\n * Aborts the transaction. All pending requests will fail with a "AbortError" DOMException and all changes made to the database will be reverted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/abort)\n */\n abort(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/commit) */\n commit(): void;\n /**\n * Returns an IDBObjectStore in the transaction\'s scope.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/objectStore)\n */\n objectStore(name: string): IDBObjectStore;\n addEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var IDBTransaction: {\n prototype: IDBTransaction;\n new(): IDBTransaction;\n};\n\n/**\n * This IndexedDB API interface indicates that the version of the database has changed, as the result of an IDBOpenDBRequest.onupgradeneeded event handler function.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent)\n */\ninterface IDBVersionChangeEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent/newVersion) */\n readonly newVersion: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent/oldVersion) */\n readonly oldVersion: number;\n}\n\ndeclare var IDBVersionChangeEvent: {\n prototype: IDBVersionChangeEvent;\n new(type: string, eventInitDict?: IDBVersionChangeEventInit): IDBVersionChangeEvent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap) */\ninterface ImageBitmap {\n /**\n * Returns the intrinsic height of the image, in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/height)\n */\n readonly height: number;\n /**\n * Returns the intrinsic width of the image, in CSS pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/width)\n */\n readonly width: number;\n /**\n * Releases imageBitmap\'s underlying bitmap data.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/close)\n */\n close(): void;\n}\n\ndeclare var ImageBitmap: {\n prototype: ImageBitmap;\n new(): ImageBitmap;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmapRenderingContext) */\ninterface ImageBitmapRenderingContext {\n /**\n * Transfers the underlying bitmap data from imageBitmap to context, and the bitmap becomes the contents of the canvas element to which context is bound.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmapRenderingContext/transferFromImageBitmap)\n */\n transferFromImageBitmap(bitmap: ImageBitmap | null): void;\n}\n\ndeclare var ImageBitmapRenderingContext: {\n prototype: ImageBitmapRenderingContext;\n new(): ImageBitmapRenderingContext;\n};\n\n/**\n * The underlying pixel data of an area of a <canvas> element. It is created using the ImageData() constructor or creator methods on the CanvasRenderingContext2D object associated with a canvas: createImageData() and getImageData(). It can also be used to set a part of the canvas by using putImageData().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData)\n */\ninterface ImageData {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/colorSpace) */\n readonly colorSpace: PredefinedColorSpace;\n /**\n * Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/data)\n */\n readonly data: Uint8ClampedArray;\n /**\n * Returns the actual dimensions of the data in the ImageData object, in pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/height)\n */\n readonly height: number;\n /**\n * Returns the actual dimensions of the data in the ImageData object, in pixels.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/width)\n */\n readonly width: number;\n}\n\ndeclare var ImageData: {\n prototype: ImageData;\n new(sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n new(data: Uint8ClampedArray, sw: number, sh?: number, settings?: ImageDataSettings): ImageData;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KHR_parallel_shader_compile) */\ninterface KHR_parallel_shader_compile {\n readonly COMPLETION_STATUS_KHR: 0x91B1;\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock)\n */\ninterface Lock {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock/mode) */\n readonly mode: LockMode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock/name) */\n readonly name: string;\n}\n\ndeclare var Lock: {\n prototype: Lock;\n new(): Lock;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager)\n */\ninterface LockManager {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/query) */\n query(): Promise<LockManagerSnapshot>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/request) */\n request(name: string, callback: LockGrantedCallback): Promise<any>;\n request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;\n}\n\ndeclare var LockManager: {\n prototype: LockManager;\n new(): LockManager;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities) */\ninterface MediaCapabilities {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities/decodingInfo) */\n decodingInfo(configuration: MediaDecodingConfiguration): Promise<MediaCapabilitiesDecodingInfo>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities/encodingInfo) */\n encodingInfo(configuration: MediaEncodingConfiguration): Promise<MediaCapabilitiesEncodingInfo>;\n}\n\ndeclare var MediaCapabilities: {\n prototype: MediaCapabilities;\n new(): MediaCapabilities;\n};\n\n/**\n * This Channel Messaging API interface allows us to create a new message channel and send data through it via its two MessagePort properties.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel)\n */\ninterface MessageChannel {\n /**\n * Returns the first MessagePort object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel/port1)\n */\n readonly port1: MessagePort;\n /**\n * Returns the second MessagePort object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel/port2)\n */\n readonly port2: MessagePort;\n}\n\ndeclare var MessageChannel: {\n prototype: MessageChannel;\n new(): MessageChannel;\n};\n\n/**\n * A message received by a target object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent)\n */\ninterface MessageEvent<T = any> extends Event {\n /**\n * Returns the data of the message.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/data)\n */\n readonly data: T;\n /**\n * Returns the last event ID string, for server-sent events.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/lastEventId)\n */\n readonly lastEventId: string;\n /**\n * Returns the origin of the message, for server-sent events and cross-document messaging.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/origin)\n */\n readonly origin: string;\n /**\n * Returns the MessagePort array sent with the message, for cross-document messaging and channel messaging.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/ports)\n */\n readonly ports: ReadonlyArray<MessagePort>;\n /**\n * Returns the WindowProxy of the source window, for cross-document messaging, and the MessagePort being attached, in the connect event fired at SharedWorkerGlobalScope objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/source)\n */\n readonly source: MessageEventSource | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/initMessageEvent)\n */\n initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: MessagePort[]): void;\n}\n\ndeclare var MessageEvent: {\n prototype: MessageEvent;\n new<T>(type: string, eventInitDict?: MessageEventInit<T>): MessageEvent<T>;\n};\n\ninterface MessagePortEventMap {\n "message": MessageEvent;\n "messageerror": MessageEvent;\n}\n\n/**\n * This Channel Messaging API interface represents one of the two ports of a MessageChannel, allowing messages to be sent from one port and listening out for them arriving at the other.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort)\n */\ninterface MessagePort extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/message_event) */\n onmessage: ((this: MessagePort, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/messageerror_event) */\n onmessageerror: ((this: MessagePort, ev: MessageEvent) => any) | null;\n /**\n * Disconnects the port, so that it is no longer active.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/close)\n */\n close(): void;\n /**\n * Posts a message through the channel. Objects listed in transfer are transferred, not just cloned, meaning that they are no longer usable on the sending side.\n *\n * Throws a "DataCloneError" DOMException if transfer contains duplicate objects or port, or if message could not be cloned.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/postMessage)\n */\n postMessage(message: any, transfer: Transferable[]): void;\n postMessage(message: any, options?: StructuredSerializeOptions): void;\n /**\n * Begins dispatching messages received on the port.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/start)\n */\n start(): void;\n addEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var MessagePort: {\n prototype: MessagePort;\n new(): MessagePort;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager)\n */\ninterface NavigationPreloadManager {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/disable) */\n disable(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/enable) */\n enable(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/getState) */\n getState(): Promise<NavigationPreloadState>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/setHeaderValue) */\n setHeaderValue(value: string): Promise<void>;\n}\n\ndeclare var NavigationPreloadManager: {\n prototype: NavigationPreloadManager;\n new(): NavigationPreloadManager;\n};\n\n/** Available only in secure contexts. */\ninterface NavigatorBadge {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/clearAppBadge) */\n clearAppBadge(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/setAppBadge) */\n setAppBadge(contents?: number): Promise<void>;\n}\n\ninterface NavigatorConcurrentHardware {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/hardwareConcurrency) */\n readonly hardwareConcurrency: number;\n}\n\ninterface NavigatorID {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appCodeName)\n */\n readonly appCodeName: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appName)\n */\n readonly appName: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appVersion)\n */\n readonly appVersion: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/platform)\n */\n readonly platform: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/product)\n */\n readonly product: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/userAgent) */\n readonly userAgent: string;\n}\n\ninterface NavigatorLanguage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/language) */\n readonly language: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/languages) */\n readonly languages: ReadonlyArray<string>;\n}\n\n/** Available only in secure contexts. */\ninterface NavigatorLocks {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/locks) */\n readonly locks: LockManager;\n}\n\ninterface NavigatorOnLine {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/onLine) */\n readonly onLine: boolean;\n}\n\n/** Available only in secure contexts. */\ninterface NavigatorStorage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/storage) */\n readonly storage: StorageManager;\n}\n\ninterface NotificationEventMap {\n "click": Event;\n "close": Event;\n "error": Event;\n "show": Event;\n}\n\n/**\n * This Notifications API interface is used to configure and display desktop notifications to the user.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification)\n */\ninterface Notification extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/badge) */\n readonly badge: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/body) */\n readonly body: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/data) */\n readonly data: any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/dir) */\n readonly dir: NotificationDirection;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/icon) */\n readonly icon: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/lang) */\n readonly lang: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/click_event) */\n onclick: ((this: Notification, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/close_event) */\n onclose: ((this: Notification, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/error_event) */\n onerror: ((this: Notification, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/show_event) */\n onshow: ((this: Notification, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/requireInteraction) */\n readonly requireInteraction: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/silent) */\n readonly silent: boolean | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/tag) */\n readonly tag: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/title) */\n readonly title: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/close) */\n close(): void;\n addEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Notification: {\n prototype: Notification;\n new(title: string, options?: NotificationOptions): Notification;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/permission_static) */\n readonly permission: NotificationPermission;\n};\n\n/**\n * The parameter passed into the onnotificationclick handler, the NotificationEvent interface represents a notification click event that is dispatched on the ServiceWorkerGlobalScope of a ServiceWorker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NotificationEvent)\n */\ninterface NotificationEvent extends ExtendableEvent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NotificationEvent/action) */\n readonly action: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NotificationEvent/notification) */\n readonly notification: Notification;\n}\n\ndeclare var NotificationEvent: {\n prototype: NotificationEvent;\n new(type: string, eventInitDict: NotificationEventInit): NotificationEvent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed) */\ninterface OES_draw_buffers_indexed {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendEquationSeparateiOES) */\n blendEquationSeparateiOES(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendEquationiOES) */\n blendEquationiOES(buf: GLuint, mode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendFuncSeparateiOES) */\n blendFuncSeparateiOES(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendFunciOES) */\n blendFunciOES(buf: GLuint, src: GLenum, dst: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/colorMaskiOES) */\n colorMaskiOES(buf: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/disableiOES) */\n disableiOES(target: GLenum, index: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/enableiOES) */\n enableiOES(target: GLenum, index: GLuint): void;\n}\n\n/**\n * The OES_element_index_uint extension is part of the WebGL API and adds support for gl.UNSIGNED_INT types to WebGLRenderingContext.drawElements().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_element_index_uint)\n */\ninterface OES_element_index_uint {\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_fbo_render_mipmap) */\ninterface OES_fbo_render_mipmap {\n}\n\n/**\n * The OES_standard_derivatives extension is part of the WebGL API and adds the GLSL derivative functions dFdx, dFdy, and fwidth.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_standard_derivatives)\n */\ninterface OES_standard_derivatives {\n readonly FRAGMENT_SHADER_DERIVATIVE_HINT_OES: 0x8B8B;\n}\n\n/**\n * The OES_texture_float extension is part of the WebGL API and exposes floating-point pixel types for textures.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_float)\n */\ninterface OES_texture_float {\n}\n\n/**\n * The OES_texture_float_linear extension is part of the WebGL API and allows linear filtering with floating-point pixel types for textures.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_float_linear)\n */\ninterface OES_texture_float_linear {\n}\n\n/**\n * The OES_texture_half_float extension is part of the WebGL API and adds texture formats with 16- (aka half float) and 32-bit floating-point components.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_half_float)\n */\ninterface OES_texture_half_float {\n readonly HALF_FLOAT_OES: 0x8D61;\n}\n\n/**\n * The OES_texture_half_float_linear extension is part of the WebGL API and allows linear filtering with half floating-point pixel types for textures.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_half_float_linear)\n */\ninterface OES_texture_half_float_linear {\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object) */\ninterface OES_vertex_array_object {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/bindVertexArrayOES) */\n bindVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/createVertexArrayOES) */\n createVertexArrayOES(): WebGLVertexArrayObjectOES | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/deleteVertexArrayOES) */\n deleteVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/isVertexArrayOES) */\n isVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): GLboolean;\n readonly VERTEX_ARRAY_BINDING_OES: 0x85B5;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OVR_multiview2) */\ninterface OVR_multiview2 {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OVR_multiview2/framebufferTextureMultiviewOVR) */\n framebufferTextureMultiviewOVR(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, baseViewIndex: GLint, numViews: GLsizei): void;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR: 0x9630;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR: 0x9632;\n readonly MAX_VIEWS_OVR: 0x9631;\n readonly FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: 0x9633;\n}\n\ninterface OffscreenCanvasEventMap {\n "contextlost": Event;\n "contextrestored": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas) */\ninterface OffscreenCanvas extends EventTarget {\n /**\n * These attributes return the dimensions of the OffscreenCanvas object\'s bitmap.\n *\n * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/height)\n */\n height: number;\n oncontextlost: ((this: OffscreenCanvas, ev: Event) => any) | null;\n oncontextrestored: ((this: OffscreenCanvas, ev: Event) => any) | null;\n /**\n * These attributes return the dimensions of the OffscreenCanvas object\'s bitmap.\n *\n * They can be set, to replace the bitmap with a new, transparent black bitmap of the specified dimensions (effectively resizing it).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/width)\n */\n width: number;\n /**\n * Returns a promise that will fulfill with a new Blob object representing a file containing the image in the OffscreenCanvas object.\n *\n * The argument, if provided, is a dictionary that controls the encoding options of the image file to be created. The type field specifies the file format and has a default value of "image/png"; that type is also used if the requested type isn\'t supported. If the image format supports variable quality (such as "image/jpeg"), then the quality field is a number in the range 0.0 to 1.0 inclusive indicating the desired quality level for the resulting image.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/convertToBlob)\n */\n convertToBlob(options?: ImageEncodeOptions): Promise<Blob>;\n /**\n * Returns an object that exposes an API for drawing on the OffscreenCanvas object. contextId specifies the desired API: "2d", "bitmaprenderer", "webgl", or "webgl2". options is handled by that API.\n *\n * This specification defines the "2d" context below, which is similar but distinct from the "2d" context that is created from a canvas element. The WebGL specifications define the "webgl" and "webgl2" contexts. [WEBGL]\n *\n * Returns null if the canvas has already been initialized with another context type (e.g., trying to get a "2d" context after getting a "webgl" context).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/getContext)\n */\n getContext(contextId: "2d", options?: any): OffscreenCanvasRenderingContext2D | null;\n getContext(contextId: "bitmaprenderer", options?: any): ImageBitmapRenderingContext | null;\n getContext(contextId: "webgl", options?: any): WebGLRenderingContext | null;\n getContext(contextId: "webgl2", options?: any): WebGL2RenderingContext | null;\n getContext(contextId: OffscreenRenderingContextId, options?: any): OffscreenRenderingContext | null;\n /**\n * Returns a newly created ImageBitmap object with the image in the OffscreenCanvas object. The image in the OffscreenCanvas object is replaced with a new blank image.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/transferToImageBitmap)\n */\n transferToImageBitmap(): ImageBitmap;\n addEventListener<K extends keyof OffscreenCanvasEventMap>(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof OffscreenCanvasEventMap>(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var OffscreenCanvas: {\n prototype: OffscreenCanvas;\n new(width: number, height: number): OffscreenCanvas;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvasRenderingContext2D) */\ninterface OffscreenCanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform {\n readonly canvas: OffscreenCanvas;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvasRenderingContext2D/commit) */\n commit(): void;\n}\n\ndeclare var OffscreenCanvasRenderingContext2D: {\n prototype: OffscreenCanvasRenderingContext2D;\n new(): OffscreenCanvasRenderingContext2D;\n};\n\n/**\n * This Canvas 2D API interface is used to declare a path that can then be used on a CanvasRenderingContext2D object. The path methods of the CanvasRenderingContext2D interface are also present on this interface, which gives you the convenience of being able to retain and replay your path whenever desired.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Path2D)\n */\ninterface Path2D extends CanvasPath {\n /**\n * Adds to the path the path given by the argument.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Path2D/addPath)\n */\n addPath(path: Path2D, transform?: DOMMatrix2DInit): void;\n}\n\ndeclare var Path2D: {\n prototype: Path2D;\n new(path?: Path2D | string): Path2D;\n};\n\ninterface PerformanceEventMap {\n "resourcetimingbufferfull": Event;\n}\n\n/**\n * Provides access to performance-related information for the current page. It\'s part of the High Resolution Time API, but is enhanced by the Performance Timeline API, the Navigation Timing API, the User Timing API, and the Resource Timing API.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance)\n */\ninterface Performance extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/resourcetimingbufferfull_event) */\n onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/timeOrigin) */\n readonly timeOrigin: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearMarks) */\n clearMarks(markName?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearMeasures) */\n clearMeasures(measureName?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearResourceTimings) */\n clearResourceTimings(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntries) */\n getEntries(): PerformanceEntryList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntriesByName) */\n getEntriesByName(name: string, type?: string): PerformanceEntryList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntriesByType) */\n getEntriesByType(type: string): PerformanceEntryList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/mark) */\n mark(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/measure) */\n measure(measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string): PerformanceMeasure;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/now) */\n now(): DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/setResourceTimingBufferSize) */\n setResourceTimingBufferSize(maxSize: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/toJSON) */\n toJSON(): any;\n addEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Performance: {\n prototype: Performance;\n new(): Performance;\n};\n\n/**\n * Encapsulates a single performance metric that is part of the performance timeline. A performance entry can be directly created by making a performance mark or measure (for example by calling the mark() method) at an explicit point in an application. Performance entries are also created in indirect ways such as loading a resource (such as an image).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry)\n */\ninterface PerformanceEntry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/duration) */\n readonly duration: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/entryType) */\n readonly entryType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/startTime) */\n readonly startTime: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/toJSON) */\n toJSON(): any;\n}\n\ndeclare var PerformanceEntry: {\n prototype: PerformanceEntry;\n new(): PerformanceEntry;\n};\n\n/**\n * PerformanceMark is an abstract interface for PerformanceEntry objects with an entryType of "mark". Entries of this type are created by calling performance.mark() to add a named DOMHighResTimeStamp (the mark) to the browser\'s performance timeline.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMark)\n */\ninterface PerformanceMark extends PerformanceEntry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMark/detail) */\n readonly detail: any;\n}\n\ndeclare var PerformanceMark: {\n prototype: PerformanceMark;\n new(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;\n};\n\n/**\n * PerformanceMeasure is an abstract interface for PerformanceEntry objects with an entryType of "measure". Entries of this type are created by calling performance.measure() to add a named DOMHighResTimeStamp (the measure) between two marks to the browser\'s performance timeline.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMeasure)\n */\ninterface PerformanceMeasure extends PerformanceEntry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMeasure/detail) */\n readonly detail: any;\n}\n\ndeclare var PerformanceMeasure: {\n prototype: PerformanceMeasure;\n new(): PerformanceMeasure;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver) */\ninterface PerformanceObserver {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/disconnect) */\n disconnect(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/observe) */\n observe(options?: PerformanceObserverInit): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/takeRecords) */\n takeRecords(): PerformanceEntryList;\n}\n\ndeclare var PerformanceObserver: {\n prototype: PerformanceObserver;\n new(callback: PerformanceObserverCallback): PerformanceObserver;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/supportedEntryTypes_static) */\n readonly supportedEntryTypes: ReadonlyArray<string>;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList) */\ninterface PerformanceObserverEntryList {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntries) */\n getEntries(): PerformanceEntryList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntriesByName) */\n getEntriesByName(name: string, type?: string): PerformanceEntryList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntriesByType) */\n getEntriesByType(type: string): PerformanceEntryList;\n}\n\ndeclare var PerformanceObserverEntryList: {\n prototype: PerformanceObserverEntryList;\n new(): PerformanceObserverEntryList;\n};\n\n/**\n * Enables retrieval and analysis of detailed network timing data regarding the loading of an application\'s resources. An application can use the timing metrics to determine, for example, the length of time it takes to fetch a specific resource, such as an XMLHttpRequest, <SVG>, image, or script.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming)\n */\ninterface PerformanceResourceTiming extends PerformanceEntry {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/connectEnd) */\n readonly connectEnd: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/connectStart) */\n readonly connectStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/decodedBodySize) */\n readonly decodedBodySize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/domainLookupEnd) */\n readonly domainLookupEnd: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/domainLookupStart) */\n readonly domainLookupStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/encodedBodySize) */\n readonly encodedBodySize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/fetchStart) */\n readonly fetchStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/initiatorType) */\n readonly initiatorType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/nextHopProtocol) */\n readonly nextHopProtocol: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/redirectEnd) */\n readonly redirectEnd: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/redirectStart) */\n readonly redirectStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/requestStart) */\n readonly requestStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/responseEnd) */\n readonly responseEnd: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/responseStart) */\n readonly responseStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/secureConnectionStart) */\n readonly secureConnectionStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/serverTiming) */\n readonly serverTiming: ReadonlyArray<PerformanceServerTiming>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/transferSize) */\n readonly transferSize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/workerStart) */\n readonly workerStart: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/toJSON) */\n toJSON(): any;\n}\n\ndeclare var PerformanceResourceTiming: {\n prototype: PerformanceResourceTiming;\n new(): PerformanceResourceTiming;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming) */\ninterface PerformanceServerTiming {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/description) */\n readonly description: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/duration) */\n readonly duration: DOMHighResTimeStamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/toJSON) */\n toJSON(): any;\n}\n\ndeclare var PerformanceServerTiming: {\n prototype: PerformanceServerTiming;\n new(): PerformanceServerTiming;\n};\n\ninterface PermissionStatusEventMap {\n "change": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus) */\ninterface PermissionStatus extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/change_event) */\n onchange: ((this: PermissionStatus, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/state) */\n readonly state: PermissionState;\n addEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var PermissionStatus: {\n prototype: PermissionStatus;\n new(): PermissionStatus;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Permissions) */\ninterface Permissions {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Permissions/query) */\n query(permissionDesc: PermissionDescriptor): Promise<PermissionStatus>;\n}\n\ndeclare var Permissions: {\n prototype: Permissions;\n new(): Permissions;\n};\n\n/**\n * Events measuring progress of an underlying process, like an HTTP request (for an XMLHttpRequest, or the loading of the underlying resource of an <img>, <audio>, <video>, <style> or <link>).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent)\n */\ninterface ProgressEvent<T extends EventTarget = EventTarget> extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/lengthComputable) */\n readonly lengthComputable: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/loaded) */\n readonly loaded: number;\n readonly target: T | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/total) */\n readonly total: number;\n}\n\ndeclare var ProgressEvent: {\n prototype: ProgressEvent;\n new(type: string, eventInitDict?: ProgressEventInit): ProgressEvent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent) */\ninterface PromiseRejectionEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent/promise) */\n readonly promise: Promise<any>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent/reason) */\n readonly reason: any;\n}\n\ndeclare var PromiseRejectionEvent: {\n prototype: PromiseRejectionEvent;\n new(type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent;\n};\n\n/**\n * This Push API interface represents a push message that has been received. This event is sent to the global scope of a ServiceWorker. It contains the information sent from an application server to a PushSubscription.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushEvent)\n */\ninterface PushEvent extends ExtendableEvent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushEvent/data) */\n readonly data: PushMessageData | null;\n}\n\ndeclare var PushEvent: {\n prototype: PushEvent;\n new(type: string, eventInitDict?: PushEventInit): PushEvent;\n};\n\n/**\n * This Push API interface provides a way to receive notifications from third-party servers as well as request URLs for push notifications.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager)\n */\ninterface PushManager {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/getSubscription) */\n getSubscription(): Promise<PushSubscription | null>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/permissionState) */\n permissionState(options?: PushSubscriptionOptionsInit): Promise<PermissionState>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/subscribe) */\n subscribe(options?: PushSubscriptionOptionsInit): Promise<PushSubscription>;\n}\n\ndeclare var PushManager: {\n prototype: PushManager;\n new(): PushManager;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/supportedContentEncodings_static) */\n readonly supportedContentEncodings: ReadonlyArray<string>;\n};\n\n/**\n * This Push API interface provides methods which let you retrieve the push data sent by a server in various formats.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData)\n */\ninterface PushMessageData {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData/arrayBuffer) */\n arrayBuffer(): ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData/blob) */\n blob(): Blob;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData/json) */\n json(): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData/text) */\n text(): string;\n}\n\ndeclare var PushMessageData: {\n prototype: PushMessageData;\n new(): PushMessageData;\n};\n\n/**\n * This Push API interface provides a subcription\'s URL endpoint and allows unsubscription from a push service.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription)\n */\ninterface PushSubscription {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/endpoint) */\n readonly endpoint: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/expirationTime) */\n readonly expirationTime: EpochTimeStamp | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/options) */\n readonly options: PushSubscriptionOptions;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/getKey) */\n getKey(name: PushEncryptionKeyName): ArrayBuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/toJSON) */\n toJSON(): PushSubscriptionJSON;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/unsubscribe) */\n unsubscribe(): Promise<boolean>;\n}\n\ndeclare var PushSubscription: {\n prototype: PushSubscription;\n new(): PushSubscription;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscriptionOptions)\n */\ninterface PushSubscriptionOptions {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscriptionOptions/applicationServerKey) */\n readonly applicationServerKey: ArrayBuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscriptionOptions/userVisibleOnly) */\n readonly userVisibleOnly: boolean;\n}\n\ndeclare var PushSubscriptionOptions: {\n prototype: PushSubscriptionOptions;\n new(): PushSubscriptionOptions;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame) */\ninterface RTCEncodedAudioFrame {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/data) */\n data: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/timestamp) */\n readonly timestamp: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/getMetadata) */\n getMetadata(): RTCEncodedAudioFrameMetadata;\n}\n\ndeclare var RTCEncodedAudioFrame: {\n prototype: RTCEncodedAudioFrame;\n new(): RTCEncodedAudioFrame;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame) */\ninterface RTCEncodedVideoFrame {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/data) */\n data: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/timestamp) */\n readonly timestamp: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/type) */\n readonly type: RTCEncodedVideoFrameType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/getMetadata) */\n getMetadata(): RTCEncodedVideoFrameMetadata;\n}\n\ndeclare var RTCEncodedVideoFrame: {\n prototype: RTCEncodedVideoFrame;\n new(): RTCEncodedVideoFrame;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer) */\ninterface RTCRtpScriptTransformer extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/options) */\n readonly options: any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/readable) */\n readonly readable: ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/writable) */\n readonly writable: WritableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/generateKeyFrame) */\n generateKeyFrame(rid?: string): Promise<number>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/sendKeyFrameRequest) */\n sendKeyFrameRequest(): Promise<void>;\n}\n\ndeclare var RTCRtpScriptTransformer: {\n prototype: RTCRtpScriptTransformer;\n new(): RTCRtpScriptTransformer;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTransformEvent) */\ninterface RTCTransformEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTransformEvent/transformer) */\n readonly transformer: RTCRtpScriptTransformer;\n}\n\ndeclare var RTCTransformEvent: {\n prototype: RTCTransformEvent;\n new(): RTCTransformEvent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController) */\ninterface ReadableByteStreamController {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/byobRequest) */\n readonly byobRequest: ReadableStreamBYOBRequest | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/desiredSize) */\n readonly desiredSize: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/close) */\n close(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/enqueue) */\n enqueue(chunk: ArrayBufferView): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/error) */\n error(e?: any): void;\n}\n\ndeclare var ReadableByteStreamController: {\n prototype: ReadableByteStreamController;\n new(): ReadableByteStreamController;\n};\n\n/**\n * This Streams API interface represents a readable stream of byte data. The Fetch API offers a concrete instance of a ReadableStream through the body property of a Response object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream)\n */\ninterface ReadableStream<R = any> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/locked) */\n readonly locked: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/cancel) */\n cancel(reason?: any): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/getReader) */\n getReader(options: { mode: "byob" }): ReadableStreamBYOBReader;\n getReader(): ReadableStreamDefaultReader<R>;\n getReader(options?: ReadableStreamGetReaderOptions): ReadableStreamReader<R>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/pipeThrough) */\n pipeThrough<T>(transform: ReadableWritablePair<T, R>, options?: StreamPipeOptions): ReadableStream<T>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/pipeTo) */\n pipeTo(destination: WritableStream<R>, options?: StreamPipeOptions): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/tee) */\n tee(): [ReadableStream<R>, ReadableStream<R>];\n}\n\ndeclare var ReadableStream: {\n prototype: ReadableStream;\n new(underlyingSource: UnderlyingByteSource, strategy?: { highWaterMark?: number }): ReadableStream<Uint8Array>;\n new<R = any>(underlyingSource: UnderlyingDefaultSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;\n new<R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader) */\ninterface ReadableStreamBYOBReader extends ReadableStreamGenericReader {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/read) */\n read<T extends ArrayBufferView>(view: T): Promise<ReadableStreamReadResult<T>>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/releaseLock) */\n releaseLock(): void;\n}\n\ndeclare var ReadableStreamBYOBReader: {\n prototype: ReadableStreamBYOBReader;\n new(stream: ReadableStream): ReadableStreamBYOBReader;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest) */\ninterface ReadableStreamBYOBRequest {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/view) */\n readonly view: ArrayBufferView | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/respond) */\n respond(bytesWritten: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/respondWithNewView) */\n respondWithNewView(view: ArrayBufferView): void;\n}\n\ndeclare var ReadableStreamBYOBRequest: {\n prototype: ReadableStreamBYOBRequest;\n new(): ReadableStreamBYOBRequest;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController) */\ninterface ReadableStreamDefaultController<R = any> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/desiredSize) */\n readonly desiredSize: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/close) */\n close(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/enqueue) */\n enqueue(chunk?: R): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/error) */\n error(e?: any): void;\n}\n\ndeclare var ReadableStreamDefaultController: {\n prototype: ReadableStreamDefaultController;\n new(): ReadableStreamDefaultController;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader) */\ninterface ReadableStreamDefaultReader<R = any> extends ReadableStreamGenericReader {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader/read) */\n read(): Promise<ReadableStreamReadResult<R>>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader/releaseLock) */\n releaseLock(): void;\n}\n\ndeclare var ReadableStreamDefaultReader: {\n prototype: ReadableStreamDefaultReader;\n new<R = any>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>;\n};\n\ninterface ReadableStreamGenericReader {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/closed) */\n readonly closed: Promise<undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/cancel) */\n cancel(reason?: any): Promise<void>;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report) */\ninterface Report {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/body) */\n readonly body: ReportBody | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/type) */\n readonly type: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/url) */\n readonly url: string;\n toJSON(): any;\n}\n\ndeclare var Report: {\n prototype: Report;\n new(): Report;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportBody) */\ninterface ReportBody {\n toJSON(): any;\n}\n\ndeclare var ReportBody: {\n prototype: ReportBody;\n new(): ReportBody;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver) */\ninterface ReportingObserver {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/disconnect) */\n disconnect(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/observe) */\n observe(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/takeRecords) */\n takeRecords(): ReportList;\n}\n\ndeclare var ReportingObserver: {\n prototype: ReportingObserver;\n new(callback: ReportingObserverCallback, options?: ReportingObserverOptions): ReportingObserver;\n};\n\n/**\n * This Fetch API interface represents a resource request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request)\n */\ninterface Request extends Body {\n /**\n * Returns the cache mode associated with request, which is a string indicating how the request will interact with the browser\'s cache when fetching.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/cache)\n */\n readonly cache: RequestCache;\n /**\n * Returns the credentials mode associated with request, which is a string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/credentials)\n */\n readonly credentials: RequestCredentials;\n /**\n * Returns the kind of resource requested by request, e.g., "document" or "script".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/destination)\n */\n readonly destination: RequestDestination;\n /**\n * Returns a Headers object consisting of the headers associated with request. Note that headers added in the network layer by the user agent will not be accounted for in this object, e.g., the "Host" header.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/headers)\n */\n readonly headers: Headers;\n /**\n * Returns request\'s subresource integrity metadata, which is a cryptographic hash of the resource being fetched. Its value consists of multiple hashes separated by whitespace. [SRI]\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/integrity)\n */\n readonly integrity: string;\n /**\n * Returns a boolean indicating whether or not request can outlive the global in which it was created.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/keepalive)\n */\n readonly keepalive: boolean;\n /**\n * Returns request\'s HTTP method, which is "GET" by default.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/method)\n */\n readonly method: string;\n /**\n * Returns the mode associated with request, which is a string indicating whether the request will use CORS, or will be restricted to same-origin URLs.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/mode)\n */\n readonly mode: RequestMode;\n /**\n * Returns the redirect mode associated with request, which is a string indicating how redirects for the request will be handled during fetching. A request will follow redirects by default.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/redirect)\n */\n readonly redirect: RequestRedirect;\n /**\n * Returns the referrer of request. Its value can be a same-origin URL if explicitly set in init, the empty string to indicate no referrer, and "about:client" when defaulting to the global\'s default. This is used during fetching to determine the value of the `Referer` header of the request being made.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/referrer)\n */\n readonly referrer: string;\n /**\n * Returns the referrer policy associated with request. This is used during fetching to compute the value of the request\'s referrer.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/referrerPolicy)\n */\n readonly referrerPolicy: ReferrerPolicy;\n /**\n * Returns the signal associated with request, which is an AbortSignal object indicating whether or not request has been aborted, and its abort event handler.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/signal)\n */\n readonly signal: AbortSignal;\n /**\n * Returns the URL of request as a string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/url)\n */\n readonly url: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/clone) */\n clone(): Request;\n}\n\ndeclare var Request: {\n prototype: Request;\n new(input: RequestInfo | URL, init?: RequestInit): Request;\n};\n\n/**\n * This Fetch API interface represents the response to a request.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response)\n */\ninterface Response extends Body {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/headers) */\n readonly headers: Headers;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/ok) */\n readonly ok: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/redirected) */\n readonly redirected: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/status) */\n readonly status: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/statusText) */\n readonly statusText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/type) */\n readonly type: ResponseType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/url) */\n readonly url: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/clone) */\n clone(): Response;\n}\n\ndeclare var Response: {\n prototype: Response;\n new(body?: BodyInit | null, init?: ResponseInit): Response;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/error_static) */\n error(): Response;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/json_static) */\n json(data: any, init?: ResponseInit): Response;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/redirect_static) */\n redirect(url: string | URL, status?: number): Response;\n};\n\n/**\n * Inherits from Event, and represents the event object of an event sent on a document or worker when its content security policy is violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent)\n */\ninterface SecurityPolicyViolationEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/blockedURI) */\n readonly blockedURI: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/columnNumber) */\n readonly columnNumber: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/disposition) */\n readonly disposition: SecurityPolicyViolationEventDisposition;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/documentURI) */\n readonly documentURI: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/effectiveDirective) */\n readonly effectiveDirective: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/lineNumber) */\n readonly lineNumber: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/originalPolicy) */\n readonly originalPolicy: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/referrer) */\n readonly referrer: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/sample) */\n readonly sample: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/sourceFile) */\n readonly sourceFile: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/statusCode) */\n readonly statusCode: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/violatedDirective) */\n readonly violatedDirective: string;\n}\n\ndeclare var SecurityPolicyViolationEvent: {\n prototype: SecurityPolicyViolationEvent;\n new(type: string, eventInitDict?: SecurityPolicyViolationEventInit): SecurityPolicyViolationEvent;\n};\n\ninterface ServiceWorkerEventMap extends AbstractWorkerEventMap {\n "statechange": Event;\n}\n\n/**\n * This ServiceWorker API interface provides a reference to a service worker. Multiple browsing contexts (e.g. pages, workers, etc.) can be associated with the same service worker, each through a unique ServiceWorker object.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker)\n */\ninterface ServiceWorker extends EventTarget, AbstractWorker {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/statechange_event) */\n onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/scriptURL) */\n readonly scriptURL: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/state) */\n readonly state: ServiceWorkerState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/postMessage) */\n postMessage(message: any, transfer: Transferable[]): void;\n postMessage(message: any, options?: StructuredSerializeOptions): void;\n addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorker: {\n prototype: ServiceWorker;\n new(): ServiceWorker;\n};\n\ninterface ServiceWorkerContainerEventMap {\n "controllerchange": Event;\n "message": MessageEvent;\n "messageerror": MessageEvent;\n}\n\n/**\n * The ServiceWorkerContainer interface of the ServiceWorker API provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer)\n */\ninterface ServiceWorkerContainer extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/controller) */\n readonly controller: ServiceWorker | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/controllerchange_event) */\n oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/message_event) */\n onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/messageerror_event) */\n onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/ready) */\n readonly ready: Promise<ServiceWorkerRegistration>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/getRegistration) */\n getRegistration(clientURL?: string | URL): Promise<ServiceWorkerRegistration | undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/getRegistrations) */\n getRegistrations(): Promise<ReadonlyArray<ServiceWorkerRegistration>>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/register) */\n register(scriptURL: string | URL, options?: RegistrationOptions): Promise<ServiceWorkerRegistration>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/startMessages) */\n startMessages(): void;\n addEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorkerContainer: {\n prototype: ServiceWorkerContainer;\n new(): ServiceWorkerContainer;\n};\n\ninterface ServiceWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {\n "activate": ExtendableEvent;\n "fetch": FetchEvent;\n "install": ExtendableEvent;\n "message": ExtendableMessageEvent;\n "messageerror": MessageEvent;\n "notificationclick": NotificationEvent;\n "notificationclose": NotificationEvent;\n "push": PushEvent;\n "pushsubscriptionchange": Event;\n}\n\n/**\n * This ServiceWorker API interface represents the global execution context of a service worker.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope)\n */\ninterface ServiceWorkerGlobalScope extends WorkerGlobalScope {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/clients) */\n readonly clients: Clients;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/activate_event) */\n onactivate: ((this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/fetch_event) */\n onfetch: ((this: ServiceWorkerGlobalScope, ev: FetchEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/install_event) */\n oninstall: ((this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/message_event) */\n onmessage: ((this: ServiceWorkerGlobalScope, ev: ExtendableMessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/messageerror_event) */\n onmessageerror: ((this: ServiceWorkerGlobalScope, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/notificationclick_event) */\n onnotificationclick: ((this: ServiceWorkerGlobalScope, ev: NotificationEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/notificationclose_event) */\n onnotificationclose: ((this: ServiceWorkerGlobalScope, ev: NotificationEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/push_event) */\n onpush: ((this: ServiceWorkerGlobalScope, ev: PushEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/pushsubscriptionchange_event) */\n onpushsubscriptionchange: ((this: ServiceWorkerGlobalScope, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/registration) */\n readonly registration: ServiceWorkerRegistration;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/serviceWorker) */\n readonly serviceWorker: ServiceWorker;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/skipWaiting) */\n skipWaiting(): Promise<void>;\n addEventListener<K extends keyof ServiceWorkerGlobalScopeEventMap>(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof ServiceWorkerGlobalScopeEventMap>(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorkerGlobalScope: {\n prototype: ServiceWorkerGlobalScope;\n new(): ServiceWorkerGlobalScope;\n};\n\ninterface ServiceWorkerRegistrationEventMap {\n "updatefound": Event;\n}\n\n/**\n * This ServiceWorker API interface represents the service worker registration. You register a service worker to control one or more pages that share the same origin.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration)\n */\ninterface ServiceWorkerRegistration extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/active) */\n readonly active: ServiceWorker | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/installing) */\n readonly installing: ServiceWorker | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/navigationPreload) */\n readonly navigationPreload: NavigationPreloadManager;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/updatefound_event) */\n onupdatefound: ((this: ServiceWorkerRegistration, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/pushManager) */\n readonly pushManager: PushManager;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/scope) */\n readonly scope: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/updateViaCache) */\n readonly updateViaCache: ServiceWorkerUpdateViaCache;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/waiting) */\n readonly waiting: ServiceWorker | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/getNotifications) */\n getNotifications(filter?: GetNotificationOptions): Promise<Notification[]>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/showNotification) */\n showNotification(title: string, options?: NotificationOptions): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/unregister) */\n unregister(): Promise<boolean>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/update) */\n update(): Promise<void>;\n addEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var ServiceWorkerRegistration: {\n prototype: ServiceWorkerRegistration;\n new(): ServiceWorkerRegistration;\n};\n\ninterface SharedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {\n "connect": MessageEvent;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorkerGlobalScope) */\ninterface SharedWorkerGlobalScope extends WorkerGlobalScope {\n /**\n * Returns sharedWorkerGlobal\'s name, i.e. the value given to the SharedWorker constructor. Multiple SharedWorker objects can correspond to the same shared worker (and SharedWorkerGlobalScope), by reusing the same name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorkerGlobalScope/name)\n */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorkerGlobalScope/connect_event) */\n onconnect: ((this: SharedWorkerGlobalScope, ev: MessageEvent) => any) | null;\n /**\n * Aborts sharedWorkerGlobal.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorkerGlobalScope/close)\n */\n close(): void;\n addEventListener<K extends keyof SharedWorkerGlobalScopeEventMap>(type: K, listener: (this: SharedWorkerGlobalScope, ev: SharedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof SharedWorkerGlobalScopeEventMap>(type: K, listener: (this: SharedWorkerGlobalScope, ev: SharedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var SharedWorkerGlobalScope: {\n prototype: SharedWorkerGlobalScope;\n new(): SharedWorkerGlobalScope;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager)\n */\ninterface StorageManager {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/estimate) */\n estimate(): Promise<StorageEstimate>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/getDirectory) */\n getDirectory(): Promise<FileSystemDirectoryHandle>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/persisted) */\n persisted(): Promise<boolean>;\n}\n\ndeclare var StorageManager: {\n prototype: StorageManager;\n new(): StorageManager;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly) */\ninterface StylePropertyMapReadOnly {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/size) */\n readonly size: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/get) */\n get(property: string): undefined | CSSStyleValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/getAll) */\n getAll(property: string): CSSStyleValue[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/has) */\n has(property: string): boolean;\n forEach(callbackfn: (value: CSSStyleValue[], key: string, parent: StylePropertyMapReadOnly) => void, thisArg?: any): void;\n}\n\ndeclare var StylePropertyMapReadOnly: {\n prototype: StylePropertyMapReadOnly;\n new(): StylePropertyMapReadOnly;\n};\n\n/**\n * This Web Crypto API interface provides a number of low-level cryptographic functions. It is accessed via the Crypto.subtle properties available in a window context (via Window.crypto).\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto)\n */\ninterface SubtleCrypto {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/decrypt) */\n decrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveBits) */\n deriveBits(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length: number): Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveKey) */\n deriveKey(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/digest) */\n digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/encrypt) */\n encrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/exportKey) */\n exportKey(format: "jwk", key: CryptoKey): Promise<JsonWebKey>;\n exportKey(format: Exclude<KeyFormat, "jwk">, key: CryptoKey): Promise<ArrayBuffer>;\n exportKey(format: KeyFormat, key: CryptoKey): Promise<ArrayBuffer | JsonWebKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/generateKey) */\n generateKey(algorithm: "Ed25519", extractable: boolean, keyUsages: ReadonlyArray<"sign" | "verify">): Promise<CryptoKeyPair>;\n generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;\n generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;\n generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair | CryptoKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/importKey) */\n importKey(format: "jwk", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;\n importKey(format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/sign) */\n sign(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/unwrapKey) */\n unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/verify) */\n verify(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: BufferSource, data: BufferSource): Promise<boolean>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/wrapKey) */\n wrapKey(format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams): Promise<ArrayBuffer>;\n}\n\ndeclare var SubtleCrypto: {\n prototype: SubtleCrypto;\n new(): SubtleCrypto;\n};\n\n/**\n * A decoder for a specific method, that is a specific character encoding, like utf-8, iso-8859-2, koi8, cp1261, gbk, etc. A decoder takes a stream of bytes as input and emits a stream of code points. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder)\n */\ninterface TextDecoder extends TextDecoderCommon {\n /**\n * Returns the result of running encoding\'s decoder. The method can be invoked zero or more times with options\'s stream set to true, and then once without options\'s stream (or set to false), to process a fragmented input. If the invocation without options\'s stream (or set to false) has no input, it\'s clearest to omit both arguments.\n *\n * ```\n * var string = "", decoder = new TextDecoder(encoding), buffer;\n * while(buffer = next_chunk()) {\n * string += decoder.decode(buffer, {stream:true});\n * }\n * string += decoder.decode(); // end-of-queue\n * ```\n *\n * If the error mode is "fatal" and encoding\'s decoder returns error, throws a TypeError.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/decode)\n */\n decode(input?: AllowSharedBufferSource, options?: TextDecodeOptions): string;\n}\n\ndeclare var TextDecoder: {\n prototype: TextDecoder;\n new(label?: string, options?: TextDecoderOptions): TextDecoder;\n};\n\ninterface TextDecoderCommon {\n /**\n * Returns encoding\'s name, lowercased.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/encoding)\n */\n readonly encoding: string;\n /**\n * Returns true if error mode is "fatal", otherwise false.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/fatal)\n */\n readonly fatal: boolean;\n /**\n * Returns the value of ignore BOM.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/ignoreBOM)\n */\n readonly ignoreBOM: boolean;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoderStream) */\ninterface TextDecoderStream extends GenericTransformStream, TextDecoderCommon {\n readonly readable: ReadableStream<string>;\n readonly writable: WritableStream<BufferSource>;\n}\n\ndeclare var TextDecoderStream: {\n prototype: TextDecoderStream;\n new(label?: string, options?: TextDecoderOptions): TextDecoderStream;\n};\n\n/**\n * TextEncoder takes a stream of code points as input and emits a stream of bytes. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder)\n */\ninterface TextEncoder extends TextEncoderCommon {\n /**\n * Returns the result of running UTF-8\'s encoder.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encode)\n */\n encode(input?: string): Uint8Array;\n /**\n * Runs the UTF-8 encoder on source, stores the result of that operation into destination, and returns the progress made as an object wherein read is the number of converted code units of source and written is the number of bytes modified in destination.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encodeInto)\n */\n encodeInto(source: string, destination: Uint8Array): TextEncoderEncodeIntoResult;\n}\n\ndeclare var TextEncoder: {\n prototype: TextEncoder;\n new(): TextEncoder;\n};\n\ninterface TextEncoderCommon {\n /**\n * Returns "utf-8".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encoding)\n */\n readonly encoding: string;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoderStream) */\ninterface TextEncoderStream extends GenericTransformStream, TextEncoderCommon {\n readonly readable: ReadableStream<Uint8Array>;\n readonly writable: WritableStream<string>;\n}\n\ndeclare var TextEncoderStream: {\n prototype: TextEncoderStream;\n new(): TextEncoderStream;\n};\n\n/**\n * The dimensions of a piece of text in the canvas, as created by the CanvasRenderingContext2D.measureText() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics)\n */\ninterface TextMetrics {\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxAscent)\n */\n readonly actualBoundingBoxAscent: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxDescent)\n */\n readonly actualBoundingBoxDescent: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxLeft)\n */\n readonly actualBoundingBoxLeft: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxRight)\n */\n readonly actualBoundingBoxRight: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/alphabeticBaseline)\n */\n readonly alphabeticBaseline: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/emHeightAscent)\n */\n readonly emHeightAscent: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/emHeightDescent)\n */\n readonly emHeightDescent: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/fontBoundingBoxAscent)\n */\n readonly fontBoundingBoxAscent: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/fontBoundingBoxDescent)\n */\n readonly fontBoundingBoxDescent: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/hangingBaseline)\n */\n readonly hangingBaseline: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/ideographicBaseline)\n */\n readonly ideographicBaseline: number;\n /**\n * Returns the measurement described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/width)\n */\n readonly width: number;\n}\n\ndeclare var TextMetrics: {\n prototype: TextMetrics;\n new(): TextMetrics;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream) */\ninterface TransformStream<I = any, O = any> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream/readable) */\n readonly readable: ReadableStream<O>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream/writable) */\n readonly writable: WritableStream<I>;\n}\n\ndeclare var TransformStream: {\n prototype: TransformStream;\n new<I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController) */\ninterface TransformStreamDefaultController<O = any> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/desiredSize) */\n readonly desiredSize: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/enqueue) */\n enqueue(chunk?: O): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/error) */\n error(reason?: any): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/terminate) */\n terminate(): void;\n}\n\ndeclare var TransformStreamDefaultController: {\n prototype: TransformStreamDefaultController;\n new(): TransformStreamDefaultController;\n};\n\n/**\n * The URL interface represents an object providing static methods used for creating object URLs.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL)\n */\ninterface URL {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/hash) */\n hash: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/host) */\n host: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/hostname) */\n hostname: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/href) */\n href: string;\n toString(): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/origin) */\n readonly origin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/password) */\n password: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/pathname) */\n pathname: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/port) */\n port: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/protocol) */\n protocol: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/search) */\n search: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/searchParams) */\n readonly searchParams: URLSearchParams;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/username) */\n username: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/toJSON) */\n toJSON(): string;\n}\n\ndeclare var URL: {\n prototype: URL;\n new(url: string | URL, base?: string | URL): URL;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/canParse_static) */\n canParse(url: string | URL, base?: string): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/createObjectURL_static) */\n createObjectURL(obj: Blob): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/revokeObjectURL_static) */\n revokeObjectURL(url: string): void;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams) */\ninterface URLSearchParams {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/size) */\n readonly size: number;\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/append)\n */\n append(name: string, value: string): void;\n /**\n * Deletes the given search parameter, and its associated value, from the list of all search parameters.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/delete)\n */\n delete(name: string, value?: string): void;\n /**\n * Returns the first value associated to the given search parameter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/get)\n */\n get(name: string): string | null;\n /**\n * Returns all the values association with a given search parameter.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/getAll)\n */\n getAll(name: string): string[];\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/has)\n */\n has(name: string, value?: string): boolean;\n /**\n * Sets the value associated to a given search parameter to the given value. If there were several values, delete the others.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/set)\n */\n set(name: string, value: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/sort) */\n sort(): void;\n /** Returns a string containing a query string suitable for use in a URL. Does not include the question mark. */\n toString(): string;\n forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void;\n}\n\ndeclare var URLSearchParams: {\n prototype: URLSearchParams;\n new(init?: string[][] | Record<string, string> | string | URLSearchParams): URLSearchParams;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace) */\ninterface VideoColorSpace {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/fullRange) */\n readonly fullRange: boolean | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/matrix) */\n readonly matrix: VideoMatrixCoefficients | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/primaries) */\n readonly primaries: VideoColorPrimaries | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/transfer) */\n readonly transfer: VideoTransferCharacteristics | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/toJSON) */\n toJSON(): VideoColorSpaceInit;\n}\n\ndeclare var VideoColorSpace: {\n prototype: VideoColorSpace;\n new(init?: VideoColorSpaceInit): VideoColorSpace;\n};\n\ninterface VideoDecoderEventMap {\n "dequeue": Event;\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder)\n */\ninterface VideoDecoder extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/decodeQueueSize) */\n readonly decodeQueueSize: number;\n ondequeue: ((this: VideoDecoder, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/state) */\n readonly state: CodecState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/close) */\n close(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/configure) */\n configure(config: VideoDecoderConfig): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/decode) */\n decode(chunk: EncodedVideoChunk): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/flush) */\n flush(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/reset) */\n reset(): void;\n addEventListener<K extends keyof VideoDecoderEventMap>(type: K, listener: (this: VideoDecoder, ev: VideoDecoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof VideoDecoderEventMap>(type: K, listener: (this: VideoDecoder, ev: VideoDecoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var VideoDecoder: {\n prototype: VideoDecoder;\n new(init: VideoDecoderInit): VideoDecoder;\n isConfigSupported(config: VideoDecoderConfig): Promise<VideoDecoderSupport>;\n};\n\ninterface VideoEncoderEventMap {\n "dequeue": Event;\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder)\n */\ninterface VideoEncoder extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/encodeQueueSize) */\n readonly encodeQueueSize: number;\n ondequeue: ((this: VideoEncoder, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/state) */\n readonly state: CodecState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/close) */\n close(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/configure) */\n configure(config: VideoEncoderConfig): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/encode) */\n encode(frame: VideoFrame, options?: VideoEncoderEncodeOptions): void;\n flush(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/reset) */\n reset(): void;\n addEventListener<K extends keyof VideoEncoderEventMap>(type: K, listener: (this: VideoEncoder, ev: VideoEncoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof VideoEncoderEventMap>(type: K, listener: (this: VideoEncoder, ev: VideoEncoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var VideoEncoder: {\n prototype: VideoEncoder;\n new(init: VideoEncoderInit): VideoEncoder;\n isConfigSupported(config: VideoEncoderConfig): Promise<VideoEncoderSupport>;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame) */\ninterface VideoFrame {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedHeight) */\n readonly codedHeight: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedRect) */\n readonly codedRect: DOMRectReadOnly | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedWidth) */\n readonly codedWidth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/colorSpace) */\n readonly colorSpace: VideoColorSpace;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/displayHeight) */\n readonly displayHeight: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/displayWidth) */\n readonly displayWidth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/duration) */\n readonly duration: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/format) */\n readonly format: VideoPixelFormat | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/timestamp) */\n readonly timestamp: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/visibleRect) */\n readonly visibleRect: DOMRectReadOnly | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/allocationSize) */\n allocationSize(options?: VideoFrameCopyToOptions): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/clone) */\n clone(): VideoFrame;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/close) */\n close(): void;\n copyTo(destination: AllowSharedBufferSource, options?: VideoFrameCopyToOptions): Promise<PlaneLayout[]>;\n}\n\ndeclare var VideoFrame: {\n prototype: VideoFrame;\n new(image: CanvasImageSource, init?: VideoFrameInit): VideoFrame;\n new(data: AllowSharedBufferSource, init: VideoFrameBufferInit): VideoFrame;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_color_buffer_float) */\ninterface WEBGL_color_buffer_float {\n readonly RGBA32F_EXT: 0x8814;\n readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;\n readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_astc) */\ninterface WEBGL_compressed_texture_astc {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_astc/getSupportedProfiles) */\n getSupportedProfiles(): string[];\n readonly COMPRESSED_RGBA_ASTC_4x4_KHR: 0x93B0;\n readonly COMPRESSED_RGBA_ASTC_5x4_KHR: 0x93B1;\n readonly COMPRESSED_RGBA_ASTC_5x5_KHR: 0x93B2;\n readonly COMPRESSED_RGBA_ASTC_6x5_KHR: 0x93B3;\n readonly COMPRESSED_RGBA_ASTC_6x6_KHR: 0x93B4;\n readonly COMPRESSED_RGBA_ASTC_8x5_KHR: 0x93B5;\n readonly COMPRESSED_RGBA_ASTC_8x6_KHR: 0x93B6;\n readonly COMPRESSED_RGBA_ASTC_8x8_KHR: 0x93B7;\n readonly COMPRESSED_RGBA_ASTC_10x5_KHR: 0x93B8;\n readonly COMPRESSED_RGBA_ASTC_10x6_KHR: 0x93B9;\n readonly COMPRESSED_RGBA_ASTC_10x8_KHR: 0x93BA;\n readonly COMPRESSED_RGBA_ASTC_10x10_KHR: 0x93BB;\n readonly COMPRESSED_RGBA_ASTC_12x10_KHR: 0x93BC;\n readonly COMPRESSED_RGBA_ASTC_12x12_KHR: 0x93BD;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: 0x93D0;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: 0x93D1;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: 0x93D2;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: 0x93D3;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: 0x93D4;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: 0x93D5;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: 0x93D6;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: 0x93D7;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: 0x93D8;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: 0x93D9;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: 0x93DA;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: 0x93DB;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: 0x93DC;\n readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: 0x93DD;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_etc) */\ninterface WEBGL_compressed_texture_etc {\n readonly COMPRESSED_R11_EAC: 0x9270;\n readonly COMPRESSED_SIGNED_R11_EAC: 0x9271;\n readonly COMPRESSED_RG11_EAC: 0x9272;\n readonly COMPRESSED_SIGNED_RG11_EAC: 0x9273;\n readonly COMPRESSED_RGB8_ETC2: 0x9274;\n readonly COMPRESSED_SRGB8_ETC2: 0x9275;\n readonly COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9276;\n readonly COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9277;\n readonly COMPRESSED_RGBA8_ETC2_EAC: 0x9278;\n readonly COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 0x9279;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_etc1) */\ninterface WEBGL_compressed_texture_etc1 {\n readonly COMPRESSED_RGB_ETC1_WEBGL: 0x8D64;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_pvrtc) */\ninterface WEBGL_compressed_texture_pvrtc {\n readonly COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 0x8C00;\n readonly COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 0x8C01;\n readonly COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 0x8C02;\n readonly COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 0x8C03;\n}\n\n/**\n * The WEBGL_compressed_texture_s3tc extension is part of the WebGL API and exposes four S3TC compressed texture formats.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_s3tc)\n */\ninterface WEBGL_compressed_texture_s3tc {\n readonly COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83F0;\n readonly COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83F1;\n readonly COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83F2;\n readonly COMPRESSED_RGBA_S3TC_DXT5_EXT: 0x83F3;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_s3tc_srgb) */\ninterface WEBGL_compressed_texture_s3tc_srgb {\n readonly COMPRESSED_SRGB_S3TC_DXT1_EXT: 0x8C4C;\n readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 0x8C4D;\n readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 0x8C4E;\n readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 0x8C4F;\n}\n\n/**\n * The WEBGL_debug_renderer_info extension is part of the WebGL API and exposes two constants with information about the graphics driver for debugging purposes.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_renderer_info)\n */\ninterface WEBGL_debug_renderer_info {\n readonly UNMASKED_VENDOR_WEBGL: 0x9245;\n readonly UNMASKED_RENDERER_WEBGL: 0x9246;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_shaders) */\ninterface WEBGL_debug_shaders {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_shaders/getTranslatedShaderSource) */\n getTranslatedShaderSource(shader: WebGLShader): string;\n}\n\n/**\n * The WEBGL_depth_texture extension is part of the WebGL API and defines 2D depth and depth-stencil textures.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_depth_texture)\n */\ninterface WEBGL_depth_texture {\n readonly UNSIGNED_INT_24_8_WEBGL: 0x84FA;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_draw_buffers) */\ninterface WEBGL_draw_buffers {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_draw_buffers/drawBuffersWEBGL) */\n drawBuffersWEBGL(buffers: GLenum[]): void;\n readonly COLOR_ATTACHMENT0_WEBGL: 0x8CE0;\n readonly COLOR_ATTACHMENT1_WEBGL: 0x8CE1;\n readonly COLOR_ATTACHMENT2_WEBGL: 0x8CE2;\n readonly COLOR_ATTACHMENT3_WEBGL: 0x8CE3;\n readonly COLOR_ATTACHMENT4_WEBGL: 0x8CE4;\n readonly COLOR_ATTACHMENT5_WEBGL: 0x8CE5;\n readonly COLOR_ATTACHMENT6_WEBGL: 0x8CE6;\n readonly COLOR_ATTACHMENT7_WEBGL: 0x8CE7;\n readonly COLOR_ATTACHMENT8_WEBGL: 0x8CE8;\n readonly COLOR_ATTACHMENT9_WEBGL: 0x8CE9;\n readonly COLOR_ATTACHMENT10_WEBGL: 0x8CEA;\n readonly COLOR_ATTACHMENT11_WEBGL: 0x8CEB;\n readonly COLOR_ATTACHMENT12_WEBGL: 0x8CEC;\n readonly COLOR_ATTACHMENT13_WEBGL: 0x8CED;\n readonly COLOR_ATTACHMENT14_WEBGL: 0x8CEE;\n readonly COLOR_ATTACHMENT15_WEBGL: 0x8CEF;\n readonly DRAW_BUFFER0_WEBGL: 0x8825;\n readonly DRAW_BUFFER1_WEBGL: 0x8826;\n readonly DRAW_BUFFER2_WEBGL: 0x8827;\n readonly DRAW_BUFFER3_WEBGL: 0x8828;\n readonly DRAW_BUFFER4_WEBGL: 0x8829;\n readonly DRAW_BUFFER5_WEBGL: 0x882A;\n readonly DRAW_BUFFER6_WEBGL: 0x882B;\n readonly DRAW_BUFFER7_WEBGL: 0x882C;\n readonly DRAW_BUFFER8_WEBGL: 0x882D;\n readonly DRAW_BUFFER9_WEBGL: 0x882E;\n readonly DRAW_BUFFER10_WEBGL: 0x882F;\n readonly DRAW_BUFFER11_WEBGL: 0x8830;\n readonly DRAW_BUFFER12_WEBGL: 0x8831;\n readonly DRAW_BUFFER13_WEBGL: 0x8832;\n readonly DRAW_BUFFER14_WEBGL: 0x8833;\n readonly DRAW_BUFFER15_WEBGL: 0x8834;\n readonly MAX_COLOR_ATTACHMENTS_WEBGL: 0x8CDF;\n readonly MAX_DRAW_BUFFERS_WEBGL: 0x8824;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context) */\ninterface WEBGL_lose_context {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context/loseContext) */\n loseContext(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context/restoreContext) */\n restoreContext(): void;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw) */\ninterface WEBGL_multi_draw {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysInstancedWEBGL) */\n multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: number, countsList: Int32Array | GLsizei[], countsOffset: number, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: number, drawcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysWEBGL) */\n multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: number, countsList: Int32Array | GLsizei[], countsOffset: number, drawcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsInstancedWEBGL) */\n multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | GLsizei[], countsOffset: number, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: number, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: number, drawcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsWEBGL) */\n multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | GLsizei[], countsOffset: number, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: number, drawcount: GLsizei): void;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext) */\ninterface WebGL2RenderingContext extends WebGL2RenderingContextBase, WebGL2RenderingContextOverloads, WebGLRenderingContextBase {\n}\n\ndeclare var WebGL2RenderingContext: {\n prototype: WebGL2RenderingContext;\n new(): WebGL2RenderingContext;\n readonly READ_BUFFER: 0x0C02;\n readonly UNPACK_ROW_LENGTH: 0x0CF2;\n readonly UNPACK_SKIP_ROWS: 0x0CF3;\n readonly UNPACK_SKIP_PIXELS: 0x0CF4;\n readonly PACK_ROW_LENGTH: 0x0D02;\n readonly PACK_SKIP_ROWS: 0x0D03;\n readonly PACK_SKIP_PIXELS: 0x0D04;\n readonly COLOR: 0x1800;\n readonly DEPTH: 0x1801;\n readonly STENCIL: 0x1802;\n readonly RED: 0x1903;\n readonly RGB8: 0x8051;\n readonly RGB10_A2: 0x8059;\n readonly TEXTURE_BINDING_3D: 0x806A;\n readonly UNPACK_SKIP_IMAGES: 0x806D;\n readonly UNPACK_IMAGE_HEIGHT: 0x806E;\n readonly TEXTURE_3D: 0x806F;\n readonly TEXTURE_WRAP_R: 0x8072;\n readonly MAX_3D_TEXTURE_SIZE: 0x8073;\n readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;\n readonly MAX_ELEMENTS_VERTICES: 0x80E8;\n readonly MAX_ELEMENTS_INDICES: 0x80E9;\n readonly TEXTURE_MIN_LOD: 0x813A;\n readonly TEXTURE_MAX_LOD: 0x813B;\n readonly TEXTURE_BASE_LEVEL: 0x813C;\n readonly TEXTURE_MAX_LEVEL: 0x813D;\n readonly MIN: 0x8007;\n readonly MAX: 0x8008;\n readonly DEPTH_COMPONENT24: 0x81A6;\n readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;\n readonly TEXTURE_COMPARE_MODE: 0x884C;\n readonly TEXTURE_COMPARE_FUNC: 0x884D;\n readonly CURRENT_QUERY: 0x8865;\n readonly QUERY_RESULT: 0x8866;\n readonly QUERY_RESULT_AVAILABLE: 0x8867;\n readonly STREAM_READ: 0x88E1;\n readonly STREAM_COPY: 0x88E2;\n readonly STATIC_READ: 0x88E5;\n readonly STATIC_COPY: 0x88E6;\n readonly DYNAMIC_READ: 0x88E9;\n readonly DYNAMIC_COPY: 0x88EA;\n readonly MAX_DRAW_BUFFERS: 0x8824;\n readonly DRAW_BUFFER0: 0x8825;\n readonly DRAW_BUFFER1: 0x8826;\n readonly DRAW_BUFFER2: 0x8827;\n readonly DRAW_BUFFER3: 0x8828;\n readonly DRAW_BUFFER4: 0x8829;\n readonly DRAW_BUFFER5: 0x882A;\n readonly DRAW_BUFFER6: 0x882B;\n readonly DRAW_BUFFER7: 0x882C;\n readonly DRAW_BUFFER8: 0x882D;\n readonly DRAW_BUFFER9: 0x882E;\n readonly DRAW_BUFFER10: 0x882F;\n readonly DRAW_BUFFER11: 0x8830;\n readonly DRAW_BUFFER12: 0x8831;\n readonly DRAW_BUFFER13: 0x8832;\n readonly DRAW_BUFFER14: 0x8833;\n readonly DRAW_BUFFER15: 0x8834;\n readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;\n readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;\n readonly SAMPLER_3D: 0x8B5F;\n readonly SAMPLER_2D_SHADOW: 0x8B62;\n readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;\n readonly PIXEL_PACK_BUFFER: 0x88EB;\n readonly PIXEL_UNPACK_BUFFER: 0x88EC;\n readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;\n readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;\n readonly FLOAT_MAT2x3: 0x8B65;\n readonly FLOAT_MAT2x4: 0x8B66;\n readonly FLOAT_MAT3x2: 0x8B67;\n readonly FLOAT_MAT3x4: 0x8B68;\n readonly FLOAT_MAT4x2: 0x8B69;\n readonly FLOAT_MAT4x3: 0x8B6A;\n readonly SRGB: 0x8C40;\n readonly SRGB8: 0x8C41;\n readonly SRGB8_ALPHA8: 0x8C43;\n readonly COMPARE_REF_TO_TEXTURE: 0x884E;\n readonly RGBA32F: 0x8814;\n readonly RGB32F: 0x8815;\n readonly RGBA16F: 0x881A;\n readonly RGB16F: 0x881B;\n readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;\n readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;\n readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;\n readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;\n readonly MAX_VARYING_COMPONENTS: 0x8B4B;\n readonly TEXTURE_2D_ARRAY: 0x8C1A;\n readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;\n readonly R11F_G11F_B10F: 0x8C3A;\n readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;\n readonly RGB9_E5: 0x8C3D;\n readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;\n readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;\n readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;\n readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;\n readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;\n readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;\n readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;\n readonly RASTERIZER_DISCARD: 0x8C89;\n readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;\n readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;\n readonly INTERLEAVED_ATTRIBS: 0x8C8C;\n readonly SEPARATE_ATTRIBS: 0x8C8D;\n readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;\n readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;\n readonly RGBA32UI: 0x8D70;\n readonly RGB32UI: 0x8D71;\n readonly RGBA16UI: 0x8D76;\n readonly RGB16UI: 0x8D77;\n readonly RGBA8UI: 0x8D7C;\n readonly RGB8UI: 0x8D7D;\n readonly RGBA32I: 0x8D82;\n readonly RGB32I: 0x8D83;\n readonly RGBA16I: 0x8D88;\n readonly RGB16I: 0x8D89;\n readonly RGBA8I: 0x8D8E;\n readonly RGB8I: 0x8D8F;\n readonly RED_INTEGER: 0x8D94;\n readonly RGB_INTEGER: 0x8D98;\n readonly RGBA_INTEGER: 0x8D99;\n readonly SAMPLER_2D_ARRAY: 0x8DC1;\n readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;\n readonly SAMPLER_CUBE_SHADOW: 0x8DC5;\n readonly UNSIGNED_INT_VEC2: 0x8DC6;\n readonly UNSIGNED_INT_VEC3: 0x8DC7;\n readonly UNSIGNED_INT_VEC4: 0x8DC8;\n readonly INT_SAMPLER_2D: 0x8DCA;\n readonly INT_SAMPLER_3D: 0x8DCB;\n readonly INT_SAMPLER_CUBE: 0x8DCC;\n readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;\n readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;\n readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;\n readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;\n readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;\n readonly DEPTH_COMPONENT32F: 0x8CAC;\n readonly DEPTH32F_STENCIL8: 0x8CAD;\n readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;\n readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;\n readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;\n readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;\n readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;\n readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;\n readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;\n readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;\n readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;\n readonly FRAMEBUFFER_DEFAULT: 0x8218;\n readonly UNSIGNED_INT_24_8: 0x84FA;\n readonly DEPTH24_STENCIL8: 0x88F0;\n readonly UNSIGNED_NORMALIZED: 0x8C17;\n readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6;\n readonly READ_FRAMEBUFFER: 0x8CA8;\n readonly DRAW_FRAMEBUFFER: 0x8CA9;\n readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;\n readonly RENDERBUFFER_SAMPLES: 0x8CAB;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;\n readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;\n readonly COLOR_ATTACHMENT1: 0x8CE1;\n readonly COLOR_ATTACHMENT2: 0x8CE2;\n readonly COLOR_ATTACHMENT3: 0x8CE3;\n readonly COLOR_ATTACHMENT4: 0x8CE4;\n readonly COLOR_ATTACHMENT5: 0x8CE5;\n readonly COLOR_ATTACHMENT6: 0x8CE6;\n readonly COLOR_ATTACHMENT7: 0x8CE7;\n readonly COLOR_ATTACHMENT8: 0x8CE8;\n readonly COLOR_ATTACHMENT9: 0x8CE9;\n readonly COLOR_ATTACHMENT10: 0x8CEA;\n readonly COLOR_ATTACHMENT11: 0x8CEB;\n readonly COLOR_ATTACHMENT12: 0x8CEC;\n readonly COLOR_ATTACHMENT13: 0x8CED;\n readonly COLOR_ATTACHMENT14: 0x8CEE;\n readonly COLOR_ATTACHMENT15: 0x8CEF;\n readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;\n readonly MAX_SAMPLES: 0x8D57;\n readonly HALF_FLOAT: 0x140B;\n readonly RG: 0x8227;\n readonly RG_INTEGER: 0x8228;\n readonly R8: 0x8229;\n readonly RG8: 0x822B;\n readonly R16F: 0x822D;\n readonly R32F: 0x822E;\n readonly RG16F: 0x822F;\n readonly RG32F: 0x8230;\n readonly R8I: 0x8231;\n readonly R8UI: 0x8232;\n readonly R16I: 0x8233;\n readonly R16UI: 0x8234;\n readonly R32I: 0x8235;\n readonly R32UI: 0x8236;\n readonly RG8I: 0x8237;\n readonly RG8UI: 0x8238;\n readonly RG16I: 0x8239;\n readonly RG16UI: 0x823A;\n readonly RG32I: 0x823B;\n readonly RG32UI: 0x823C;\n readonly VERTEX_ARRAY_BINDING: 0x85B5;\n readonly R8_SNORM: 0x8F94;\n readonly RG8_SNORM: 0x8F95;\n readonly RGB8_SNORM: 0x8F96;\n readonly RGBA8_SNORM: 0x8F97;\n readonly SIGNED_NORMALIZED: 0x8F9C;\n readonly COPY_READ_BUFFER: 0x8F36;\n readonly COPY_WRITE_BUFFER: 0x8F37;\n readonly COPY_READ_BUFFER_BINDING: 0x8F36;\n readonly COPY_WRITE_BUFFER_BINDING: 0x8F37;\n readonly UNIFORM_BUFFER: 0x8A11;\n readonly UNIFORM_BUFFER_BINDING: 0x8A28;\n readonly UNIFORM_BUFFER_START: 0x8A29;\n readonly UNIFORM_BUFFER_SIZE: 0x8A2A;\n readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;\n readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;\n readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;\n readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;\n readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;\n readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;\n readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;\n readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;\n readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;\n readonly UNIFORM_TYPE: 0x8A37;\n readonly UNIFORM_SIZE: 0x8A38;\n readonly UNIFORM_BLOCK_INDEX: 0x8A3A;\n readonly UNIFORM_OFFSET: 0x8A3B;\n readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;\n readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;\n readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;\n readonly UNIFORM_BLOCK_BINDING: 0x8A3F;\n readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;\n readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;\n readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;\n readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;\n readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;\n readonly INVALID_INDEX: 0xFFFFFFFF;\n readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;\n readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;\n readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;\n readonly OBJECT_TYPE: 0x9112;\n readonly SYNC_CONDITION: 0x9113;\n readonly SYNC_STATUS: 0x9114;\n readonly SYNC_FLAGS: 0x9115;\n readonly SYNC_FENCE: 0x9116;\n readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;\n readonly UNSIGNALED: 0x9118;\n readonly SIGNALED: 0x9119;\n readonly ALREADY_SIGNALED: 0x911A;\n readonly TIMEOUT_EXPIRED: 0x911B;\n readonly CONDITION_SATISFIED: 0x911C;\n readonly WAIT_FAILED: 0x911D;\n readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;\n readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;\n readonly ANY_SAMPLES_PASSED: 0x8C2F;\n readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;\n readonly SAMPLER_BINDING: 0x8919;\n readonly RGB10_A2UI: 0x906F;\n readonly INT_2_10_10_10_REV: 0x8D9F;\n readonly TRANSFORM_FEEDBACK: 0x8E22;\n readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;\n readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;\n readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;\n readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;\n readonly MAX_ELEMENT_INDEX: 0x8D6B;\n readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;\n readonly TIMEOUT_IGNORED: -1;\n readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;\n readonly DEPTH_BUFFER_BIT: 0x00000100;\n readonly STENCIL_BUFFER_BIT: 0x00000400;\n readonly COLOR_BUFFER_BIT: 0x00004000;\n readonly POINTS: 0x0000;\n readonly LINES: 0x0001;\n readonly LINE_LOOP: 0x0002;\n readonly LINE_STRIP: 0x0003;\n readonly TRIANGLES: 0x0004;\n readonly TRIANGLE_STRIP: 0x0005;\n readonly TRIANGLE_FAN: 0x0006;\n readonly ZERO: 0;\n readonly ONE: 1;\n readonly SRC_COLOR: 0x0300;\n readonly ONE_MINUS_SRC_COLOR: 0x0301;\n readonly SRC_ALPHA: 0x0302;\n readonly ONE_MINUS_SRC_ALPHA: 0x0303;\n readonly DST_ALPHA: 0x0304;\n readonly ONE_MINUS_DST_ALPHA: 0x0305;\n readonly DST_COLOR: 0x0306;\n readonly ONE_MINUS_DST_COLOR: 0x0307;\n readonly SRC_ALPHA_SATURATE: 0x0308;\n readonly FUNC_ADD: 0x8006;\n readonly BLEND_EQUATION: 0x8009;\n readonly BLEND_EQUATION_RGB: 0x8009;\n readonly BLEND_EQUATION_ALPHA: 0x883D;\n readonly FUNC_SUBTRACT: 0x800A;\n readonly FUNC_REVERSE_SUBTRACT: 0x800B;\n readonly BLEND_DST_RGB: 0x80C8;\n readonly BLEND_SRC_RGB: 0x80C9;\n readonly BLEND_DST_ALPHA: 0x80CA;\n readonly BLEND_SRC_ALPHA: 0x80CB;\n readonly CONSTANT_COLOR: 0x8001;\n readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;\n readonly CONSTANT_ALPHA: 0x8003;\n readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;\n readonly BLEND_COLOR: 0x8005;\n readonly ARRAY_BUFFER: 0x8892;\n readonly ELEMENT_ARRAY_BUFFER: 0x8893;\n readonly ARRAY_BUFFER_BINDING: 0x8894;\n readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;\n readonly STREAM_DRAW: 0x88E0;\n readonly STATIC_DRAW: 0x88E4;\n readonly DYNAMIC_DRAW: 0x88E8;\n readonly BUFFER_SIZE: 0x8764;\n readonly BUFFER_USAGE: 0x8765;\n readonly CURRENT_VERTEX_ATTRIB: 0x8626;\n readonly FRONT: 0x0404;\n readonly BACK: 0x0405;\n readonly FRONT_AND_BACK: 0x0408;\n readonly CULL_FACE: 0x0B44;\n readonly BLEND: 0x0BE2;\n readonly DITHER: 0x0BD0;\n readonly STENCIL_TEST: 0x0B90;\n readonly DEPTH_TEST: 0x0B71;\n readonly SCISSOR_TEST: 0x0C11;\n readonly POLYGON_OFFSET_FILL: 0x8037;\n readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;\n readonly SAMPLE_COVERAGE: 0x80A0;\n readonly NO_ERROR: 0;\n readonly INVALID_ENUM: 0x0500;\n readonly INVALID_VALUE: 0x0501;\n readonly INVALID_OPERATION: 0x0502;\n readonly OUT_OF_MEMORY: 0x0505;\n readonly CW: 0x0900;\n readonly CCW: 0x0901;\n readonly LINE_WIDTH: 0x0B21;\n readonly ALIASED_POINT_SIZE_RANGE: 0x846D;\n readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;\n readonly CULL_FACE_MODE: 0x0B45;\n readonly FRONT_FACE: 0x0B46;\n readonly DEPTH_RANGE: 0x0B70;\n readonly DEPTH_WRITEMASK: 0x0B72;\n readonly DEPTH_CLEAR_VALUE: 0x0B73;\n readonly DEPTH_FUNC: 0x0B74;\n readonly STENCIL_CLEAR_VALUE: 0x0B91;\n readonly STENCIL_FUNC: 0x0B92;\n readonly STENCIL_FAIL: 0x0B94;\n readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;\n readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;\n readonly STENCIL_REF: 0x0B97;\n readonly STENCIL_VALUE_MASK: 0x0B93;\n readonly STENCIL_WRITEMASK: 0x0B98;\n readonly STENCIL_BACK_FUNC: 0x8800;\n readonly STENCIL_BACK_FAIL: 0x8801;\n readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;\n readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;\n readonly STENCIL_BACK_REF: 0x8CA3;\n readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;\n readonly STENCIL_BACK_WRITEMASK: 0x8CA5;\n readonly VIEWPORT: 0x0BA2;\n readonly SCISSOR_BOX: 0x0C10;\n readonly COLOR_CLEAR_VALUE: 0x0C22;\n readonly COLOR_WRITEMASK: 0x0C23;\n readonly UNPACK_ALIGNMENT: 0x0CF5;\n readonly PACK_ALIGNMENT: 0x0D05;\n readonly MAX_TEXTURE_SIZE: 0x0D33;\n readonly MAX_VIEWPORT_DIMS: 0x0D3A;\n readonly SUBPIXEL_BITS: 0x0D50;\n readonly RED_BITS: 0x0D52;\n readonly GREEN_BITS: 0x0D53;\n readonly BLUE_BITS: 0x0D54;\n readonly ALPHA_BITS: 0x0D55;\n readonly DEPTH_BITS: 0x0D56;\n readonly STENCIL_BITS: 0x0D57;\n readonly POLYGON_OFFSET_UNITS: 0x2A00;\n readonly POLYGON_OFFSET_FACTOR: 0x8038;\n readonly TEXTURE_BINDING_2D: 0x8069;\n readonly SAMPLE_BUFFERS: 0x80A8;\n readonly SAMPLES: 0x80A9;\n readonly SAMPLE_COVERAGE_VALUE: 0x80AA;\n readonly SAMPLE_COVERAGE_INVERT: 0x80AB;\n readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;\n readonly DONT_CARE: 0x1100;\n readonly FASTEST: 0x1101;\n readonly NICEST: 0x1102;\n readonly GENERATE_MIPMAP_HINT: 0x8192;\n readonly BYTE: 0x1400;\n readonly UNSIGNED_BYTE: 0x1401;\n readonly SHORT: 0x1402;\n readonly UNSIGNED_SHORT: 0x1403;\n readonly INT: 0x1404;\n readonly UNSIGNED_INT: 0x1405;\n readonly FLOAT: 0x1406;\n readonly DEPTH_COMPONENT: 0x1902;\n readonly ALPHA: 0x1906;\n readonly RGB: 0x1907;\n readonly RGBA: 0x1908;\n readonly LUMINANCE: 0x1909;\n readonly LUMINANCE_ALPHA: 0x190A;\n readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;\n readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;\n readonly UNSIGNED_SHORT_5_6_5: 0x8363;\n readonly FRAGMENT_SHADER: 0x8B30;\n readonly VERTEX_SHADER: 0x8B31;\n readonly MAX_VERTEX_ATTRIBS: 0x8869;\n readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;\n readonly MAX_VARYING_VECTORS: 0x8DFC;\n readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;\n readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;\n readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;\n readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;\n readonly SHADER_TYPE: 0x8B4F;\n readonly DELETE_STATUS: 0x8B80;\n readonly LINK_STATUS: 0x8B82;\n readonly VALIDATE_STATUS: 0x8B83;\n readonly ATTACHED_SHADERS: 0x8B85;\n readonly ACTIVE_UNIFORMS: 0x8B86;\n readonly ACTIVE_ATTRIBUTES: 0x8B89;\n readonly SHADING_LANGUAGE_VERSION: 0x8B8C;\n readonly CURRENT_PROGRAM: 0x8B8D;\n readonly NEVER: 0x0200;\n readonly LESS: 0x0201;\n readonly EQUAL: 0x0202;\n readonly LEQUAL: 0x0203;\n readonly GREATER: 0x0204;\n readonly NOTEQUAL: 0x0205;\n readonly GEQUAL: 0x0206;\n readonly ALWAYS: 0x0207;\n readonly KEEP: 0x1E00;\n readonly REPLACE: 0x1E01;\n readonly INCR: 0x1E02;\n readonly DECR: 0x1E03;\n readonly INVERT: 0x150A;\n readonly INCR_WRAP: 0x8507;\n readonly DECR_WRAP: 0x8508;\n readonly VENDOR: 0x1F00;\n readonly RENDERER: 0x1F01;\n readonly VERSION: 0x1F02;\n readonly NEAREST: 0x2600;\n readonly LINEAR: 0x2601;\n readonly NEAREST_MIPMAP_NEAREST: 0x2700;\n readonly LINEAR_MIPMAP_NEAREST: 0x2701;\n readonly NEAREST_MIPMAP_LINEAR: 0x2702;\n readonly LINEAR_MIPMAP_LINEAR: 0x2703;\n readonly TEXTURE_MAG_FILTER: 0x2800;\n readonly TEXTURE_MIN_FILTER: 0x2801;\n readonly TEXTURE_WRAP_S: 0x2802;\n readonly TEXTURE_WRAP_T: 0x2803;\n readonly TEXTURE_2D: 0x0DE1;\n readonly TEXTURE: 0x1702;\n readonly TEXTURE_CUBE_MAP: 0x8513;\n readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;\n readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;\n readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;\n readonly TEXTURE0: 0x84C0;\n readonly TEXTURE1: 0x84C1;\n readonly TEXTURE2: 0x84C2;\n readonly TEXTURE3: 0x84C3;\n readonly TEXTURE4: 0x84C4;\n readonly TEXTURE5: 0x84C5;\n readonly TEXTURE6: 0x84C6;\n readonly TEXTURE7: 0x84C7;\n readonly TEXTURE8: 0x84C8;\n readonly TEXTURE9: 0x84C9;\n readonly TEXTURE10: 0x84CA;\n readonly TEXTURE11: 0x84CB;\n readonly TEXTURE12: 0x84CC;\n readonly TEXTURE13: 0x84CD;\n readonly TEXTURE14: 0x84CE;\n readonly TEXTURE15: 0x84CF;\n readonly TEXTURE16: 0x84D0;\n readonly TEXTURE17: 0x84D1;\n readonly TEXTURE18: 0x84D2;\n readonly TEXTURE19: 0x84D3;\n readonly TEXTURE20: 0x84D4;\n readonly TEXTURE21: 0x84D5;\n readonly TEXTURE22: 0x84D6;\n readonly TEXTURE23: 0x84D7;\n readonly TEXTURE24: 0x84D8;\n readonly TEXTURE25: 0x84D9;\n readonly TEXTURE26: 0x84DA;\n readonly TEXTURE27: 0x84DB;\n readonly TEXTURE28: 0x84DC;\n readonly TEXTURE29: 0x84DD;\n readonly TEXTURE30: 0x84DE;\n readonly TEXTURE31: 0x84DF;\n readonly ACTIVE_TEXTURE: 0x84E0;\n readonly REPEAT: 0x2901;\n readonly CLAMP_TO_EDGE: 0x812F;\n readonly MIRRORED_REPEAT: 0x8370;\n readonly FLOAT_VEC2: 0x8B50;\n readonly FLOAT_VEC3: 0x8B51;\n readonly FLOAT_VEC4: 0x8B52;\n readonly INT_VEC2: 0x8B53;\n readonly INT_VEC3: 0x8B54;\n readonly INT_VEC4: 0x8B55;\n readonly BOOL: 0x8B56;\n readonly BOOL_VEC2: 0x8B57;\n readonly BOOL_VEC3: 0x8B58;\n readonly BOOL_VEC4: 0x8B59;\n readonly FLOAT_MAT2: 0x8B5A;\n readonly FLOAT_MAT3: 0x8B5B;\n readonly FLOAT_MAT4: 0x8B5C;\n readonly SAMPLER_2D: 0x8B5E;\n readonly SAMPLER_CUBE: 0x8B60;\n readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;\n readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;\n readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;\n readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;\n readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;\n readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;\n readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;\n readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;\n readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;\n readonly COMPILE_STATUS: 0x8B81;\n readonly LOW_FLOAT: 0x8DF0;\n readonly MEDIUM_FLOAT: 0x8DF1;\n readonly HIGH_FLOAT: 0x8DF2;\n readonly LOW_INT: 0x8DF3;\n readonly MEDIUM_INT: 0x8DF4;\n readonly HIGH_INT: 0x8DF5;\n readonly FRAMEBUFFER: 0x8D40;\n readonly RENDERBUFFER: 0x8D41;\n readonly RGBA4: 0x8056;\n readonly RGB5_A1: 0x8057;\n readonly RGBA8: 0x8058;\n readonly RGB565: 0x8D62;\n readonly DEPTH_COMPONENT16: 0x81A5;\n readonly STENCIL_INDEX8: 0x8D48;\n readonly DEPTH_STENCIL: 0x84F9;\n readonly RENDERBUFFER_WIDTH: 0x8D42;\n readonly RENDERBUFFER_HEIGHT: 0x8D43;\n readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;\n readonly RENDERBUFFER_RED_SIZE: 0x8D50;\n readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;\n readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;\n readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;\n readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;\n readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;\n readonly COLOR_ATTACHMENT0: 0x8CE0;\n readonly DEPTH_ATTACHMENT: 0x8D00;\n readonly STENCIL_ATTACHMENT: 0x8D20;\n readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;\n readonly NONE: 0;\n readonly FRAMEBUFFER_COMPLETE: 0x8CD5;\n readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;\n readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;\n readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;\n readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;\n readonly FRAMEBUFFER_BINDING: 0x8CA6;\n readonly RENDERBUFFER_BINDING: 0x8CA7;\n readonly MAX_RENDERBUFFER_SIZE: 0x84E8;\n readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;\n readonly UNPACK_FLIP_Y_WEBGL: 0x9240;\n readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;\n readonly CONTEXT_LOST_WEBGL: 0x9242;\n readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;\n readonly BROWSER_DEFAULT_WEBGL: 0x9244;\n};\n\ninterface WebGL2RenderingContextBase {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/beginQuery) */\n beginQuery(target: GLenum, query: WebGLQuery): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/beginTransformFeedback) */\n beginTransformFeedback(primitiveMode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindBufferBase) */\n bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindBufferRange) */\n bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer | null, offset: GLintptr, size: GLsizeiptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindSampler) */\n bindSampler(unit: GLuint, sampler: WebGLSampler | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindTransformFeedback) */\n bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindVertexArray) */\n bindVertexArray(array: WebGLVertexArrayObject | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/blitFramebuffer) */\n blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clientWaitSync) */\n clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64): GLenum;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/compressedTexImage3D) */\n compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;\n compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: number, srcLengthOverride?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/compressedTexSubImage3D) */\n compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;\n compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: number, srcLengthOverride?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/copyBufferSubData) */\n copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/copyTexSubImage3D) */\n copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createQuery) */\n createQuery(): WebGLQuery | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createSampler) */\n createSampler(): WebGLSampler | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createTransformFeedback) */\n createTransformFeedback(): WebGLTransformFeedback | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createVertexArray) */\n createVertexArray(): WebGLVertexArrayObject | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteQuery) */\n deleteQuery(query: WebGLQuery | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteSampler) */\n deleteSampler(sampler: WebGLSampler | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteSync) */\n deleteSync(sync: WebGLSync | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteTransformFeedback) */\n deleteTransformFeedback(tf: WebGLTransformFeedback | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteVertexArray) */\n deleteVertexArray(vertexArray: WebGLVertexArrayObject | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawArraysInstanced) */\n drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawBuffers) */\n drawBuffers(buffers: GLenum[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawElementsInstanced) */\n drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawRangeElements) */\n drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/endQuery) */\n endQuery(target: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/endTransformFeedback) */\n endTransformFeedback(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/fenceSync) */\n fenceSync(condition: GLenum, flags: GLbitfield): WebGLSync | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/framebufferTextureLayer) */\n framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, layer: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniformBlockName) */\n getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniformBlockParameter) */\n getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniforms) */\n getActiveUniforms(program: WebGLProgram, uniformIndices: GLuint[], pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getBufferSubData) */\n getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView, dstOffset?: number, length?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getFragDataLocation) */\n getFragDataLocation(program: WebGLProgram, name: string): GLint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getIndexedParameter) */\n getIndexedParameter(target: GLenum, index: GLuint): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getInternalformatParameter) */\n getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getQuery) */\n getQuery(target: GLenum, pname: GLenum): WebGLQuery | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getQueryParameter) */\n getQueryParameter(query: WebGLQuery, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getSamplerParameter) */\n getSamplerParameter(sampler: WebGLSampler, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getSyncParameter) */\n getSyncParameter(sync: WebGLSync, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getTransformFeedbackVarying) */\n getTransformFeedbackVarying(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getUniformBlockIndex) */\n getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): GLuint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getUniformIndices) */\n getUniformIndices(program: WebGLProgram, uniformNames: string[]): GLuint[] | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateFramebuffer) */\n invalidateFramebuffer(target: GLenum, attachments: GLenum[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateSubFramebuffer) */\n invalidateSubFramebuffer(target: GLenum, attachments: GLenum[], x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isQuery) */\n isQuery(query: WebGLQuery | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isSampler) */\n isSampler(sampler: WebGLSampler | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isSync) */\n isSync(sync: WebGLSync | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isTransformFeedback) */\n isTransformFeedback(tf: WebGLTransformFeedback | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isVertexArray) */\n isVertexArray(vertexArray: WebGLVertexArrayObject | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/pauseTransformFeedback) */\n pauseTransformFeedback(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/readBuffer) */\n readBuffer(src: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/renderbufferStorageMultisample) */\n renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/resumeTransformFeedback) */\n resumeTransformFeedback(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/samplerParameter) */\n samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/samplerParameter) */\n samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texImage3D) */\n texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView | null): void;\n texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texStorage2D) */\n texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texStorage3D) */\n texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texSubImage3D) */\n texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;\n texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView | null, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/transformFeedbackVaryings) */\n transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform1ui(location: WebGLUniformLocation | null, v0: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform1uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform2ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform2uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform3ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform3uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform4ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform4uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformBlockBinding) */\n uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribDivisor) */\n vertexAttribDivisor(index: GLuint, divisor: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4iv(index: GLuint, values: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4uiv(index: GLuint, values: Uint32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribIPointer) */\n vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/waitSync) */\n waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64): void;\n readonly READ_BUFFER: 0x0C02;\n readonly UNPACK_ROW_LENGTH: 0x0CF2;\n readonly UNPACK_SKIP_ROWS: 0x0CF3;\n readonly UNPACK_SKIP_PIXELS: 0x0CF4;\n readonly PACK_ROW_LENGTH: 0x0D02;\n readonly PACK_SKIP_ROWS: 0x0D03;\n readonly PACK_SKIP_PIXELS: 0x0D04;\n readonly COLOR: 0x1800;\n readonly DEPTH: 0x1801;\n readonly STENCIL: 0x1802;\n readonly RED: 0x1903;\n readonly RGB8: 0x8051;\n readonly RGB10_A2: 0x8059;\n readonly TEXTURE_BINDING_3D: 0x806A;\n readonly UNPACK_SKIP_IMAGES: 0x806D;\n readonly UNPACK_IMAGE_HEIGHT: 0x806E;\n readonly TEXTURE_3D: 0x806F;\n readonly TEXTURE_WRAP_R: 0x8072;\n readonly MAX_3D_TEXTURE_SIZE: 0x8073;\n readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;\n readonly MAX_ELEMENTS_VERTICES: 0x80E8;\n readonly MAX_ELEMENTS_INDICES: 0x80E9;\n readonly TEXTURE_MIN_LOD: 0x813A;\n readonly TEXTURE_MAX_LOD: 0x813B;\n readonly TEXTURE_BASE_LEVEL: 0x813C;\n readonly TEXTURE_MAX_LEVEL: 0x813D;\n readonly MIN: 0x8007;\n readonly MAX: 0x8008;\n readonly DEPTH_COMPONENT24: 0x81A6;\n readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;\n readonly TEXTURE_COMPARE_MODE: 0x884C;\n readonly TEXTURE_COMPARE_FUNC: 0x884D;\n readonly CURRENT_QUERY: 0x8865;\n readonly QUERY_RESULT: 0x8866;\n readonly QUERY_RESULT_AVAILABLE: 0x8867;\n readonly STREAM_READ: 0x88E1;\n readonly STREAM_COPY: 0x88E2;\n readonly STATIC_READ: 0x88E5;\n readonly STATIC_COPY: 0x88E6;\n readonly DYNAMIC_READ: 0x88E9;\n readonly DYNAMIC_COPY: 0x88EA;\n readonly MAX_DRAW_BUFFERS: 0x8824;\n readonly DRAW_BUFFER0: 0x8825;\n readonly DRAW_BUFFER1: 0x8826;\n readonly DRAW_BUFFER2: 0x8827;\n readonly DRAW_BUFFER3: 0x8828;\n readonly DRAW_BUFFER4: 0x8829;\n readonly DRAW_BUFFER5: 0x882A;\n readonly DRAW_BUFFER6: 0x882B;\n readonly DRAW_BUFFER7: 0x882C;\n readonly DRAW_BUFFER8: 0x882D;\n readonly DRAW_BUFFER9: 0x882E;\n readonly DRAW_BUFFER10: 0x882F;\n readonly DRAW_BUFFER11: 0x8830;\n readonly DRAW_BUFFER12: 0x8831;\n readonly DRAW_BUFFER13: 0x8832;\n readonly DRAW_BUFFER14: 0x8833;\n readonly DRAW_BUFFER15: 0x8834;\n readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;\n readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;\n readonly SAMPLER_3D: 0x8B5F;\n readonly SAMPLER_2D_SHADOW: 0x8B62;\n readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;\n readonly PIXEL_PACK_BUFFER: 0x88EB;\n readonly PIXEL_UNPACK_BUFFER: 0x88EC;\n readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;\n readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;\n readonly FLOAT_MAT2x3: 0x8B65;\n readonly FLOAT_MAT2x4: 0x8B66;\n readonly FLOAT_MAT3x2: 0x8B67;\n readonly FLOAT_MAT3x4: 0x8B68;\n readonly FLOAT_MAT4x2: 0x8B69;\n readonly FLOAT_MAT4x3: 0x8B6A;\n readonly SRGB: 0x8C40;\n readonly SRGB8: 0x8C41;\n readonly SRGB8_ALPHA8: 0x8C43;\n readonly COMPARE_REF_TO_TEXTURE: 0x884E;\n readonly RGBA32F: 0x8814;\n readonly RGB32F: 0x8815;\n readonly RGBA16F: 0x881A;\n readonly RGB16F: 0x881B;\n readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;\n readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;\n readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;\n readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;\n readonly MAX_VARYING_COMPONENTS: 0x8B4B;\n readonly TEXTURE_2D_ARRAY: 0x8C1A;\n readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;\n readonly R11F_G11F_B10F: 0x8C3A;\n readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;\n readonly RGB9_E5: 0x8C3D;\n readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;\n readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;\n readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;\n readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;\n readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;\n readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;\n readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;\n readonly RASTERIZER_DISCARD: 0x8C89;\n readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;\n readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;\n readonly INTERLEAVED_ATTRIBS: 0x8C8C;\n readonly SEPARATE_ATTRIBS: 0x8C8D;\n readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;\n readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;\n readonly RGBA32UI: 0x8D70;\n readonly RGB32UI: 0x8D71;\n readonly RGBA16UI: 0x8D76;\n readonly RGB16UI: 0x8D77;\n readonly RGBA8UI: 0x8D7C;\n readonly RGB8UI: 0x8D7D;\n readonly RGBA32I: 0x8D82;\n readonly RGB32I: 0x8D83;\n readonly RGBA16I: 0x8D88;\n readonly RGB16I: 0x8D89;\n readonly RGBA8I: 0x8D8E;\n readonly RGB8I: 0x8D8F;\n readonly RED_INTEGER: 0x8D94;\n readonly RGB_INTEGER: 0x8D98;\n readonly RGBA_INTEGER: 0x8D99;\n readonly SAMPLER_2D_ARRAY: 0x8DC1;\n readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;\n readonly SAMPLER_CUBE_SHADOW: 0x8DC5;\n readonly UNSIGNED_INT_VEC2: 0x8DC6;\n readonly UNSIGNED_INT_VEC3: 0x8DC7;\n readonly UNSIGNED_INT_VEC4: 0x8DC8;\n readonly INT_SAMPLER_2D: 0x8DCA;\n readonly INT_SAMPLER_3D: 0x8DCB;\n readonly INT_SAMPLER_CUBE: 0x8DCC;\n readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;\n readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;\n readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;\n readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;\n readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;\n readonly DEPTH_COMPONENT32F: 0x8CAC;\n readonly DEPTH32F_STENCIL8: 0x8CAD;\n readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;\n readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;\n readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;\n readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;\n readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;\n readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;\n readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;\n readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;\n readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;\n readonly FRAMEBUFFER_DEFAULT: 0x8218;\n readonly UNSIGNED_INT_24_8: 0x84FA;\n readonly DEPTH24_STENCIL8: 0x88F0;\n readonly UNSIGNED_NORMALIZED: 0x8C17;\n readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6;\n readonly READ_FRAMEBUFFER: 0x8CA8;\n readonly DRAW_FRAMEBUFFER: 0x8CA9;\n readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;\n readonly RENDERBUFFER_SAMPLES: 0x8CAB;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;\n readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;\n readonly COLOR_ATTACHMENT1: 0x8CE1;\n readonly COLOR_ATTACHMENT2: 0x8CE2;\n readonly COLOR_ATTACHMENT3: 0x8CE3;\n readonly COLOR_ATTACHMENT4: 0x8CE4;\n readonly COLOR_ATTACHMENT5: 0x8CE5;\n readonly COLOR_ATTACHMENT6: 0x8CE6;\n readonly COLOR_ATTACHMENT7: 0x8CE7;\n readonly COLOR_ATTACHMENT8: 0x8CE8;\n readonly COLOR_ATTACHMENT9: 0x8CE9;\n readonly COLOR_ATTACHMENT10: 0x8CEA;\n readonly COLOR_ATTACHMENT11: 0x8CEB;\n readonly COLOR_ATTACHMENT12: 0x8CEC;\n readonly COLOR_ATTACHMENT13: 0x8CED;\n readonly COLOR_ATTACHMENT14: 0x8CEE;\n readonly COLOR_ATTACHMENT15: 0x8CEF;\n readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;\n readonly MAX_SAMPLES: 0x8D57;\n readonly HALF_FLOAT: 0x140B;\n readonly RG: 0x8227;\n readonly RG_INTEGER: 0x8228;\n readonly R8: 0x8229;\n readonly RG8: 0x822B;\n readonly R16F: 0x822D;\n readonly R32F: 0x822E;\n readonly RG16F: 0x822F;\n readonly RG32F: 0x8230;\n readonly R8I: 0x8231;\n readonly R8UI: 0x8232;\n readonly R16I: 0x8233;\n readonly R16UI: 0x8234;\n readonly R32I: 0x8235;\n readonly R32UI: 0x8236;\n readonly RG8I: 0x8237;\n readonly RG8UI: 0x8238;\n readonly RG16I: 0x8239;\n readonly RG16UI: 0x823A;\n readonly RG32I: 0x823B;\n readonly RG32UI: 0x823C;\n readonly VERTEX_ARRAY_BINDING: 0x85B5;\n readonly R8_SNORM: 0x8F94;\n readonly RG8_SNORM: 0x8F95;\n readonly RGB8_SNORM: 0x8F96;\n readonly RGBA8_SNORM: 0x8F97;\n readonly SIGNED_NORMALIZED: 0x8F9C;\n readonly COPY_READ_BUFFER: 0x8F36;\n readonly COPY_WRITE_BUFFER: 0x8F37;\n readonly COPY_READ_BUFFER_BINDING: 0x8F36;\n readonly COPY_WRITE_BUFFER_BINDING: 0x8F37;\n readonly UNIFORM_BUFFER: 0x8A11;\n readonly UNIFORM_BUFFER_BINDING: 0x8A28;\n readonly UNIFORM_BUFFER_START: 0x8A29;\n readonly UNIFORM_BUFFER_SIZE: 0x8A2A;\n readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;\n readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;\n readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;\n readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;\n readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;\n readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;\n readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;\n readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;\n readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;\n readonly UNIFORM_TYPE: 0x8A37;\n readonly UNIFORM_SIZE: 0x8A38;\n readonly UNIFORM_BLOCK_INDEX: 0x8A3A;\n readonly UNIFORM_OFFSET: 0x8A3B;\n readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;\n readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;\n readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;\n readonly UNIFORM_BLOCK_BINDING: 0x8A3F;\n readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;\n readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;\n readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;\n readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;\n readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;\n readonly INVALID_INDEX: 0xFFFFFFFF;\n readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;\n readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;\n readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;\n readonly OBJECT_TYPE: 0x9112;\n readonly SYNC_CONDITION: 0x9113;\n readonly SYNC_STATUS: 0x9114;\n readonly SYNC_FLAGS: 0x9115;\n readonly SYNC_FENCE: 0x9116;\n readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;\n readonly UNSIGNALED: 0x9118;\n readonly SIGNALED: 0x9119;\n readonly ALREADY_SIGNALED: 0x911A;\n readonly TIMEOUT_EXPIRED: 0x911B;\n readonly CONDITION_SATISFIED: 0x911C;\n readonly WAIT_FAILED: 0x911D;\n readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;\n readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;\n readonly ANY_SAMPLES_PASSED: 0x8C2F;\n readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;\n readonly SAMPLER_BINDING: 0x8919;\n readonly RGB10_A2UI: 0x906F;\n readonly INT_2_10_10_10_REV: 0x8D9F;\n readonly TRANSFORM_FEEDBACK: 0x8E22;\n readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;\n readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;\n readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;\n readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;\n readonly MAX_ELEMENT_INDEX: 0x8D6B;\n readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;\n readonly TIMEOUT_IGNORED: -1;\n readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;\n}\n\ninterface WebGL2RenderingContextOverloads {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bufferData) */\n bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;\n bufferData(target: GLenum, srcData: AllowSharedBufferSource | null, usage: GLenum): void;\n bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: number, length?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bufferSubData) */\n bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: AllowSharedBufferSource): void;\n bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: number, length?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexImage2D) */\n compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;\n compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: number, srcLengthOverride?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexSubImage2D) */\n compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;\n compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: number, srcLengthOverride?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/readPixels) */\n readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView | null): void;\n readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr): void;\n readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texImage2D) */\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texSubImage2D) */\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;\n}\n\n/**\n * Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getActiveAttrib() and WebGLRenderingContext.getActiveUniform() methods.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo)\n */\ninterface WebGLActiveInfo {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/size) */\n readonly size: GLint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/type) */\n readonly type: GLenum;\n}\n\ndeclare var WebGLActiveInfo: {\n prototype: WebGLActiveInfo;\n new(): WebGLActiveInfo;\n};\n\n/**\n * Part of the WebGL API and represents an opaque buffer object storing data such as vertices or colors.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLBuffer)\n */\ninterface WebGLBuffer {\n}\n\ndeclare var WebGLBuffer: {\n prototype: WebGLBuffer;\n new(): WebGLBuffer;\n};\n\n/**\n * The WebContextEvent interface is part of the WebGL API and is an interface for an event that is generated in response to a status change to the WebGL rendering context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLContextEvent)\n */\ninterface WebGLContextEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLContextEvent/statusMessage) */\n readonly statusMessage: string;\n}\n\ndeclare var WebGLContextEvent: {\n prototype: WebGLContextEvent;\n new(type: string, eventInit?: WebGLContextEventInit): WebGLContextEvent;\n};\n\n/**\n * Part of the WebGL API and represents a collection of buffers that serve as a rendering destination.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLFramebuffer)\n */\ninterface WebGLFramebuffer {\n}\n\ndeclare var WebGLFramebuffer: {\n prototype: WebGLFramebuffer;\n new(): WebGLFramebuffer;\n};\n\n/**\n * The WebGLProgram is part of the WebGL API and is a combination of two compiled WebGLShaders consisting of a vertex shader and a fragment shader (both written in GLSL).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLProgram)\n */\ninterface WebGLProgram {\n}\n\ndeclare var WebGLProgram: {\n prototype: WebGLProgram;\n new(): WebGLProgram;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLQuery) */\ninterface WebGLQuery {\n}\n\ndeclare var WebGLQuery: {\n prototype: WebGLQuery;\n new(): WebGLQuery;\n};\n\n/**\n * Part of the WebGL API and represents a buffer that can contain an image, or can be source or target of an rendering operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderbuffer)\n */\ninterface WebGLRenderbuffer {\n}\n\ndeclare var WebGLRenderbuffer: {\n prototype: WebGLRenderbuffer;\n new(): WebGLRenderbuffer;\n};\n\n/**\n * Provides an interface to the OpenGL ES 2.0 graphics rendering context for the drawing surface of an HTML <canvas> element.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext)\n */\ninterface WebGLRenderingContext extends WebGLRenderingContextBase, WebGLRenderingContextOverloads {\n}\n\ndeclare var WebGLRenderingContext: {\n prototype: WebGLRenderingContext;\n new(): WebGLRenderingContext;\n readonly DEPTH_BUFFER_BIT: 0x00000100;\n readonly STENCIL_BUFFER_BIT: 0x00000400;\n readonly COLOR_BUFFER_BIT: 0x00004000;\n readonly POINTS: 0x0000;\n readonly LINES: 0x0001;\n readonly LINE_LOOP: 0x0002;\n readonly LINE_STRIP: 0x0003;\n readonly TRIANGLES: 0x0004;\n readonly TRIANGLE_STRIP: 0x0005;\n readonly TRIANGLE_FAN: 0x0006;\n readonly ZERO: 0;\n readonly ONE: 1;\n readonly SRC_COLOR: 0x0300;\n readonly ONE_MINUS_SRC_COLOR: 0x0301;\n readonly SRC_ALPHA: 0x0302;\n readonly ONE_MINUS_SRC_ALPHA: 0x0303;\n readonly DST_ALPHA: 0x0304;\n readonly ONE_MINUS_DST_ALPHA: 0x0305;\n readonly DST_COLOR: 0x0306;\n readonly ONE_MINUS_DST_COLOR: 0x0307;\n readonly SRC_ALPHA_SATURATE: 0x0308;\n readonly FUNC_ADD: 0x8006;\n readonly BLEND_EQUATION: 0x8009;\n readonly BLEND_EQUATION_RGB: 0x8009;\n readonly BLEND_EQUATION_ALPHA: 0x883D;\n readonly FUNC_SUBTRACT: 0x800A;\n readonly FUNC_REVERSE_SUBTRACT: 0x800B;\n readonly BLEND_DST_RGB: 0x80C8;\n readonly BLEND_SRC_RGB: 0x80C9;\n readonly BLEND_DST_ALPHA: 0x80CA;\n readonly BLEND_SRC_ALPHA: 0x80CB;\n readonly CONSTANT_COLOR: 0x8001;\n readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;\n readonly CONSTANT_ALPHA: 0x8003;\n readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;\n readonly BLEND_COLOR: 0x8005;\n readonly ARRAY_BUFFER: 0x8892;\n readonly ELEMENT_ARRAY_BUFFER: 0x8893;\n readonly ARRAY_BUFFER_BINDING: 0x8894;\n readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;\n readonly STREAM_DRAW: 0x88E0;\n readonly STATIC_DRAW: 0x88E4;\n readonly DYNAMIC_DRAW: 0x88E8;\n readonly BUFFER_SIZE: 0x8764;\n readonly BUFFER_USAGE: 0x8765;\n readonly CURRENT_VERTEX_ATTRIB: 0x8626;\n readonly FRONT: 0x0404;\n readonly BACK: 0x0405;\n readonly FRONT_AND_BACK: 0x0408;\n readonly CULL_FACE: 0x0B44;\n readonly BLEND: 0x0BE2;\n readonly DITHER: 0x0BD0;\n readonly STENCIL_TEST: 0x0B90;\n readonly DEPTH_TEST: 0x0B71;\n readonly SCISSOR_TEST: 0x0C11;\n readonly POLYGON_OFFSET_FILL: 0x8037;\n readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;\n readonly SAMPLE_COVERAGE: 0x80A0;\n readonly NO_ERROR: 0;\n readonly INVALID_ENUM: 0x0500;\n readonly INVALID_VALUE: 0x0501;\n readonly INVALID_OPERATION: 0x0502;\n readonly OUT_OF_MEMORY: 0x0505;\n readonly CW: 0x0900;\n readonly CCW: 0x0901;\n readonly LINE_WIDTH: 0x0B21;\n readonly ALIASED_POINT_SIZE_RANGE: 0x846D;\n readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;\n readonly CULL_FACE_MODE: 0x0B45;\n readonly FRONT_FACE: 0x0B46;\n readonly DEPTH_RANGE: 0x0B70;\n readonly DEPTH_WRITEMASK: 0x0B72;\n readonly DEPTH_CLEAR_VALUE: 0x0B73;\n readonly DEPTH_FUNC: 0x0B74;\n readonly STENCIL_CLEAR_VALUE: 0x0B91;\n readonly STENCIL_FUNC: 0x0B92;\n readonly STENCIL_FAIL: 0x0B94;\n readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;\n readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;\n readonly STENCIL_REF: 0x0B97;\n readonly STENCIL_VALUE_MASK: 0x0B93;\n readonly STENCIL_WRITEMASK: 0x0B98;\n readonly STENCIL_BACK_FUNC: 0x8800;\n readonly STENCIL_BACK_FAIL: 0x8801;\n readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;\n readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;\n readonly STENCIL_BACK_REF: 0x8CA3;\n readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;\n readonly STENCIL_BACK_WRITEMASK: 0x8CA5;\n readonly VIEWPORT: 0x0BA2;\n readonly SCISSOR_BOX: 0x0C10;\n readonly COLOR_CLEAR_VALUE: 0x0C22;\n readonly COLOR_WRITEMASK: 0x0C23;\n readonly UNPACK_ALIGNMENT: 0x0CF5;\n readonly PACK_ALIGNMENT: 0x0D05;\n readonly MAX_TEXTURE_SIZE: 0x0D33;\n readonly MAX_VIEWPORT_DIMS: 0x0D3A;\n readonly SUBPIXEL_BITS: 0x0D50;\n readonly RED_BITS: 0x0D52;\n readonly GREEN_BITS: 0x0D53;\n readonly BLUE_BITS: 0x0D54;\n readonly ALPHA_BITS: 0x0D55;\n readonly DEPTH_BITS: 0x0D56;\n readonly STENCIL_BITS: 0x0D57;\n readonly POLYGON_OFFSET_UNITS: 0x2A00;\n readonly POLYGON_OFFSET_FACTOR: 0x8038;\n readonly TEXTURE_BINDING_2D: 0x8069;\n readonly SAMPLE_BUFFERS: 0x80A8;\n readonly SAMPLES: 0x80A9;\n readonly SAMPLE_COVERAGE_VALUE: 0x80AA;\n readonly SAMPLE_COVERAGE_INVERT: 0x80AB;\n readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;\n readonly DONT_CARE: 0x1100;\n readonly FASTEST: 0x1101;\n readonly NICEST: 0x1102;\n readonly GENERATE_MIPMAP_HINT: 0x8192;\n readonly BYTE: 0x1400;\n readonly UNSIGNED_BYTE: 0x1401;\n readonly SHORT: 0x1402;\n readonly UNSIGNED_SHORT: 0x1403;\n readonly INT: 0x1404;\n readonly UNSIGNED_INT: 0x1405;\n readonly FLOAT: 0x1406;\n readonly DEPTH_COMPONENT: 0x1902;\n readonly ALPHA: 0x1906;\n readonly RGB: 0x1907;\n readonly RGBA: 0x1908;\n readonly LUMINANCE: 0x1909;\n readonly LUMINANCE_ALPHA: 0x190A;\n readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;\n readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;\n readonly UNSIGNED_SHORT_5_6_5: 0x8363;\n readonly FRAGMENT_SHADER: 0x8B30;\n readonly VERTEX_SHADER: 0x8B31;\n readonly MAX_VERTEX_ATTRIBS: 0x8869;\n readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;\n readonly MAX_VARYING_VECTORS: 0x8DFC;\n readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;\n readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;\n readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;\n readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;\n readonly SHADER_TYPE: 0x8B4F;\n readonly DELETE_STATUS: 0x8B80;\n readonly LINK_STATUS: 0x8B82;\n readonly VALIDATE_STATUS: 0x8B83;\n readonly ATTACHED_SHADERS: 0x8B85;\n readonly ACTIVE_UNIFORMS: 0x8B86;\n readonly ACTIVE_ATTRIBUTES: 0x8B89;\n readonly SHADING_LANGUAGE_VERSION: 0x8B8C;\n readonly CURRENT_PROGRAM: 0x8B8D;\n readonly NEVER: 0x0200;\n readonly LESS: 0x0201;\n readonly EQUAL: 0x0202;\n readonly LEQUAL: 0x0203;\n readonly GREATER: 0x0204;\n readonly NOTEQUAL: 0x0205;\n readonly GEQUAL: 0x0206;\n readonly ALWAYS: 0x0207;\n readonly KEEP: 0x1E00;\n readonly REPLACE: 0x1E01;\n readonly INCR: 0x1E02;\n readonly DECR: 0x1E03;\n readonly INVERT: 0x150A;\n readonly INCR_WRAP: 0x8507;\n readonly DECR_WRAP: 0x8508;\n readonly VENDOR: 0x1F00;\n readonly RENDERER: 0x1F01;\n readonly VERSION: 0x1F02;\n readonly NEAREST: 0x2600;\n readonly LINEAR: 0x2601;\n readonly NEAREST_MIPMAP_NEAREST: 0x2700;\n readonly LINEAR_MIPMAP_NEAREST: 0x2701;\n readonly NEAREST_MIPMAP_LINEAR: 0x2702;\n readonly LINEAR_MIPMAP_LINEAR: 0x2703;\n readonly TEXTURE_MAG_FILTER: 0x2800;\n readonly TEXTURE_MIN_FILTER: 0x2801;\n readonly TEXTURE_WRAP_S: 0x2802;\n readonly TEXTURE_WRAP_T: 0x2803;\n readonly TEXTURE_2D: 0x0DE1;\n readonly TEXTURE: 0x1702;\n readonly TEXTURE_CUBE_MAP: 0x8513;\n readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;\n readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;\n readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;\n readonly TEXTURE0: 0x84C0;\n readonly TEXTURE1: 0x84C1;\n readonly TEXTURE2: 0x84C2;\n readonly TEXTURE3: 0x84C3;\n readonly TEXTURE4: 0x84C4;\n readonly TEXTURE5: 0x84C5;\n readonly TEXTURE6: 0x84C6;\n readonly TEXTURE7: 0x84C7;\n readonly TEXTURE8: 0x84C8;\n readonly TEXTURE9: 0x84C9;\n readonly TEXTURE10: 0x84CA;\n readonly TEXTURE11: 0x84CB;\n readonly TEXTURE12: 0x84CC;\n readonly TEXTURE13: 0x84CD;\n readonly TEXTURE14: 0x84CE;\n readonly TEXTURE15: 0x84CF;\n readonly TEXTURE16: 0x84D0;\n readonly TEXTURE17: 0x84D1;\n readonly TEXTURE18: 0x84D2;\n readonly TEXTURE19: 0x84D3;\n readonly TEXTURE20: 0x84D4;\n readonly TEXTURE21: 0x84D5;\n readonly TEXTURE22: 0x84D6;\n readonly TEXTURE23: 0x84D7;\n readonly TEXTURE24: 0x84D8;\n readonly TEXTURE25: 0x84D9;\n readonly TEXTURE26: 0x84DA;\n readonly TEXTURE27: 0x84DB;\n readonly TEXTURE28: 0x84DC;\n readonly TEXTURE29: 0x84DD;\n readonly TEXTURE30: 0x84DE;\n readonly TEXTURE31: 0x84DF;\n readonly ACTIVE_TEXTURE: 0x84E0;\n readonly REPEAT: 0x2901;\n readonly CLAMP_TO_EDGE: 0x812F;\n readonly MIRRORED_REPEAT: 0x8370;\n readonly FLOAT_VEC2: 0x8B50;\n readonly FLOAT_VEC3: 0x8B51;\n readonly FLOAT_VEC4: 0x8B52;\n readonly INT_VEC2: 0x8B53;\n readonly INT_VEC3: 0x8B54;\n readonly INT_VEC4: 0x8B55;\n readonly BOOL: 0x8B56;\n readonly BOOL_VEC2: 0x8B57;\n readonly BOOL_VEC3: 0x8B58;\n readonly BOOL_VEC4: 0x8B59;\n readonly FLOAT_MAT2: 0x8B5A;\n readonly FLOAT_MAT3: 0x8B5B;\n readonly FLOAT_MAT4: 0x8B5C;\n readonly SAMPLER_2D: 0x8B5E;\n readonly SAMPLER_CUBE: 0x8B60;\n readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;\n readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;\n readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;\n readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;\n readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;\n readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;\n readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;\n readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;\n readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;\n readonly COMPILE_STATUS: 0x8B81;\n readonly LOW_FLOAT: 0x8DF0;\n readonly MEDIUM_FLOAT: 0x8DF1;\n readonly HIGH_FLOAT: 0x8DF2;\n readonly LOW_INT: 0x8DF3;\n readonly MEDIUM_INT: 0x8DF4;\n readonly HIGH_INT: 0x8DF5;\n readonly FRAMEBUFFER: 0x8D40;\n readonly RENDERBUFFER: 0x8D41;\n readonly RGBA4: 0x8056;\n readonly RGB5_A1: 0x8057;\n readonly RGBA8: 0x8058;\n readonly RGB565: 0x8D62;\n readonly DEPTH_COMPONENT16: 0x81A5;\n readonly STENCIL_INDEX8: 0x8D48;\n readonly DEPTH_STENCIL: 0x84F9;\n readonly RENDERBUFFER_WIDTH: 0x8D42;\n readonly RENDERBUFFER_HEIGHT: 0x8D43;\n readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;\n readonly RENDERBUFFER_RED_SIZE: 0x8D50;\n readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;\n readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;\n readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;\n readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;\n readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;\n readonly COLOR_ATTACHMENT0: 0x8CE0;\n readonly DEPTH_ATTACHMENT: 0x8D00;\n readonly STENCIL_ATTACHMENT: 0x8D20;\n readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;\n readonly NONE: 0;\n readonly FRAMEBUFFER_COMPLETE: 0x8CD5;\n readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;\n readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;\n readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;\n readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;\n readonly FRAMEBUFFER_BINDING: 0x8CA6;\n readonly RENDERBUFFER_BINDING: 0x8CA7;\n readonly MAX_RENDERBUFFER_SIZE: 0x84E8;\n readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;\n readonly UNPACK_FLIP_Y_WEBGL: 0x9240;\n readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;\n readonly CONTEXT_LOST_WEBGL: 0x9242;\n readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;\n readonly BROWSER_DEFAULT_WEBGL: 0x9244;\n};\n\ninterface WebGLRenderingContextBase {\n drawingBufferColorSpace: PredefinedColorSpace;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawingBufferHeight) */\n readonly drawingBufferHeight: GLsizei;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawingBufferWidth) */\n readonly drawingBufferWidth: GLsizei;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/activeTexture) */\n activeTexture(texture: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/attachShader) */\n attachShader(program: WebGLProgram, shader: WebGLShader): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindAttribLocation) */\n bindAttribLocation(program: WebGLProgram, index: GLuint, name: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindBuffer) */\n bindBuffer(target: GLenum, buffer: WebGLBuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindFramebuffer) */\n bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindRenderbuffer) */\n bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindTexture) */\n bindTexture(target: GLenum, texture: WebGLTexture | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendColor) */\n blendColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendEquation) */\n blendEquation(mode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendEquationSeparate) */\n blendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendFunc) */\n blendFunc(sfactor: GLenum, dfactor: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendFuncSeparate) */\n blendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/checkFramebufferStatus) */\n checkFramebufferStatus(target: GLenum): GLenum;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clear) */\n clear(mask: GLbitfield): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearColor) */\n clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearDepth) */\n clearDepth(depth: GLclampf): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearStencil) */\n clearStencil(s: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/colorMask) */\n colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compileShader) */\n compileShader(shader: WebGLShader): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/copyTexImage2D) */\n copyTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/copyTexSubImage2D) */\n copyTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createBuffer) */\n createBuffer(): WebGLBuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createFramebuffer) */\n createFramebuffer(): WebGLFramebuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createProgram) */\n createProgram(): WebGLProgram | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createRenderbuffer) */\n createRenderbuffer(): WebGLRenderbuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createShader) */\n createShader(type: GLenum): WebGLShader | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createTexture) */\n createTexture(): WebGLTexture | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/cullFace) */\n cullFace(mode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteBuffer) */\n deleteBuffer(buffer: WebGLBuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteFramebuffer) */\n deleteFramebuffer(framebuffer: WebGLFramebuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteProgram) */\n deleteProgram(program: WebGLProgram | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteRenderbuffer) */\n deleteRenderbuffer(renderbuffer: WebGLRenderbuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteShader) */\n deleteShader(shader: WebGLShader | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteTexture) */\n deleteTexture(texture: WebGLTexture | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthFunc) */\n depthFunc(func: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthMask) */\n depthMask(flag: GLboolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthRange) */\n depthRange(zNear: GLclampf, zFar: GLclampf): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/detachShader) */\n detachShader(program: WebGLProgram, shader: WebGLShader): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/disable) */\n disable(cap: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/disableVertexAttribArray) */\n disableVertexAttribArray(index: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawArrays) */\n drawArrays(mode: GLenum, first: GLint, count: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawElements) */\n drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/enable) */\n enable(cap: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/enableVertexAttribArray) */\n enableVertexAttribArray(index: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/finish) */\n finish(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/flush) */\n flush(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/framebufferRenderbuffer) */\n framebufferRenderbuffer(target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: WebGLRenderbuffer | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/framebufferTexture2D) */\n framebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLenum, texture: WebGLTexture | null, level: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/frontFace) */\n frontFace(mode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/generateMipmap) */\n generateMipmap(target: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getActiveAttrib) */\n getActiveAttrib(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getActiveUniform) */\n getActiveUniform(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getAttachedShaders) */\n getAttachedShaders(program: WebGLProgram): WebGLShader[] | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getAttribLocation) */\n getAttribLocation(program: WebGLProgram, name: string): GLint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getBufferParameter) */\n getBufferParameter(target: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getContextAttributes) */\n getContextAttributes(): WebGLContextAttributes | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getError) */\n getError(): GLenum;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getExtension) */\n getExtension(extensionName: "ANGLE_instanced_arrays"): ANGLE_instanced_arrays | null;\n getExtension(extensionName: "EXT_blend_minmax"): EXT_blend_minmax | null;\n getExtension(extensionName: "EXT_color_buffer_float"): EXT_color_buffer_float | null;\n getExtension(extensionName: "EXT_color_buffer_half_float"): EXT_color_buffer_half_float | null;\n getExtension(extensionName: "EXT_float_blend"): EXT_float_blend | null;\n getExtension(extensionName: "EXT_frag_depth"): EXT_frag_depth | null;\n getExtension(extensionName: "EXT_sRGB"): EXT_sRGB | null;\n getExtension(extensionName: "EXT_shader_texture_lod"): EXT_shader_texture_lod | null;\n getExtension(extensionName: "EXT_texture_compression_bptc"): EXT_texture_compression_bptc | null;\n getExtension(extensionName: "EXT_texture_compression_rgtc"): EXT_texture_compression_rgtc | null;\n getExtension(extensionName: "EXT_texture_filter_anisotropic"): EXT_texture_filter_anisotropic | null;\n getExtension(extensionName: "KHR_parallel_shader_compile"): KHR_parallel_shader_compile | null;\n getExtension(extensionName: "OES_element_index_uint"): OES_element_index_uint | null;\n getExtension(extensionName: "OES_fbo_render_mipmap"): OES_fbo_render_mipmap | null;\n getExtension(extensionName: "OES_standard_derivatives"): OES_standard_derivatives | null;\n getExtension(extensionName: "OES_texture_float"): OES_texture_float | null;\n getExtension(extensionName: "OES_texture_float_linear"): OES_texture_float_linear | null;\n getExtension(extensionName: "OES_texture_half_float"): OES_texture_half_float | null;\n getExtension(extensionName: "OES_texture_half_float_linear"): OES_texture_half_float_linear | null;\n getExtension(extensionName: "OES_vertex_array_object"): OES_vertex_array_object | null;\n getExtension(extensionName: "OVR_multiview2"): OVR_multiview2 | null;\n getExtension(extensionName: "WEBGL_color_buffer_float"): WEBGL_color_buffer_float | null;\n getExtension(extensionName: "WEBGL_compressed_texture_astc"): WEBGL_compressed_texture_astc | null;\n getExtension(extensionName: "WEBGL_compressed_texture_etc"): WEBGL_compressed_texture_etc | null;\n getExtension(extensionName: "WEBGL_compressed_texture_etc1"): WEBGL_compressed_texture_etc1 | null;\n getExtension(extensionName: "WEBGL_compressed_texture_pvrtc"): WEBGL_compressed_texture_pvrtc | null;\n getExtension(extensionName: "WEBGL_compressed_texture_s3tc"): WEBGL_compressed_texture_s3tc | null;\n getExtension(extensionName: "WEBGL_compressed_texture_s3tc_srgb"): WEBGL_compressed_texture_s3tc_srgb | null;\n getExtension(extensionName: "WEBGL_debug_renderer_info"): WEBGL_debug_renderer_info | null;\n getExtension(extensionName: "WEBGL_debug_shaders"): WEBGL_debug_shaders | null;\n getExtension(extensionName: "WEBGL_depth_texture"): WEBGL_depth_texture | null;\n getExtension(extensionName: "WEBGL_draw_buffers"): WEBGL_draw_buffers | null;\n getExtension(extensionName: "WEBGL_lose_context"): WEBGL_lose_context | null;\n getExtension(extensionName: "WEBGL_multi_draw"): WEBGL_multi_draw | null;\n getExtension(name: string): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getFramebufferAttachmentParameter) */\n getFramebufferAttachmentParameter(target: GLenum, attachment: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getParameter) */\n getParameter(pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getProgramInfoLog) */\n getProgramInfoLog(program: WebGLProgram): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getProgramParameter) */\n getProgramParameter(program: WebGLProgram, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getRenderbufferParameter) */\n getRenderbufferParameter(target: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderInfoLog) */\n getShaderInfoLog(shader: WebGLShader): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderParameter) */\n getShaderParameter(shader: WebGLShader, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderPrecisionFormat) */\n getShaderPrecisionFormat(shadertype: GLenum, precisiontype: GLenum): WebGLShaderPrecisionFormat | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderSource) */\n getShaderSource(shader: WebGLShader): string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getSupportedExtensions) */\n getSupportedExtensions(): string[] | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getTexParameter) */\n getTexParameter(target: GLenum, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getUniform) */\n getUniform(program: WebGLProgram, location: WebGLUniformLocation): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getUniformLocation) */\n getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getVertexAttrib) */\n getVertexAttrib(index: GLuint, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getVertexAttribOffset) */\n getVertexAttribOffset(index: GLuint, pname: GLenum): GLintptr;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/hint) */\n hint(target: GLenum, mode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isBuffer) */\n isBuffer(buffer: WebGLBuffer | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isContextLost) */\n isContextLost(): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isEnabled) */\n isEnabled(cap: GLenum): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isFramebuffer) */\n isFramebuffer(framebuffer: WebGLFramebuffer | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isProgram) */\n isProgram(program: WebGLProgram | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isRenderbuffer) */\n isRenderbuffer(renderbuffer: WebGLRenderbuffer | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isShader) */\n isShader(shader: WebGLShader | null): GLboolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isTexture) */\n isTexture(texture: WebGLTexture | null): GLboolean;\n lineWidth(width: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/linkProgram) */\n linkProgram(program: WebGLProgram): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/pixelStorei) */\n pixelStorei(pname: GLenum, param: GLint | GLboolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/polygonOffset) */\n polygonOffset(factor: GLfloat, units: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/renderbufferStorage) */\n renderbufferStorage(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/sampleCoverage) */\n sampleCoverage(value: GLclampf, invert: GLboolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/scissor) */\n scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/shaderSource) */\n shaderSource(shader: WebGLShader, source: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilFunc) */\n stencilFunc(func: GLenum, ref: GLint, mask: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilFuncSeparate) */\n stencilFuncSeparate(face: GLenum, func: GLenum, ref: GLint, mask: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilMask) */\n stencilMask(mask: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilMaskSeparate) */\n stencilMaskSeparate(face: GLenum, mask: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilOp) */\n stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilOpSeparate) */\n stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texParameter) */\n texParameterf(target: GLenum, pname: GLenum, param: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texParameter) */\n texParameteri(target: GLenum, pname: GLenum, param: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1f(location: WebGLUniformLocation | null, x: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1i(location: WebGLUniformLocation | null, x: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2i(location: WebGLUniformLocation | null, x: GLint, y: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint, w: GLint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/useProgram) */\n useProgram(program: WebGLProgram | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/validateProgram) */\n validateProgram(program: WebGLProgram): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib1f(index: GLuint, x: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib1fv(index: GLuint, values: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib2fv(index: GLuint, values: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib3fv(index: GLuint, values: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib4fv(index: GLuint, values: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttribPointer) */\n vertexAttribPointer(index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/viewport) */\n viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n readonly DEPTH_BUFFER_BIT: 0x00000100;\n readonly STENCIL_BUFFER_BIT: 0x00000400;\n readonly COLOR_BUFFER_BIT: 0x00004000;\n readonly POINTS: 0x0000;\n readonly LINES: 0x0001;\n readonly LINE_LOOP: 0x0002;\n readonly LINE_STRIP: 0x0003;\n readonly TRIANGLES: 0x0004;\n readonly TRIANGLE_STRIP: 0x0005;\n readonly TRIANGLE_FAN: 0x0006;\n readonly ZERO: 0;\n readonly ONE: 1;\n readonly SRC_COLOR: 0x0300;\n readonly ONE_MINUS_SRC_COLOR: 0x0301;\n readonly SRC_ALPHA: 0x0302;\n readonly ONE_MINUS_SRC_ALPHA: 0x0303;\n readonly DST_ALPHA: 0x0304;\n readonly ONE_MINUS_DST_ALPHA: 0x0305;\n readonly DST_COLOR: 0x0306;\n readonly ONE_MINUS_DST_COLOR: 0x0307;\n readonly SRC_ALPHA_SATURATE: 0x0308;\n readonly FUNC_ADD: 0x8006;\n readonly BLEND_EQUATION: 0x8009;\n readonly BLEND_EQUATION_RGB: 0x8009;\n readonly BLEND_EQUATION_ALPHA: 0x883D;\n readonly FUNC_SUBTRACT: 0x800A;\n readonly FUNC_REVERSE_SUBTRACT: 0x800B;\n readonly BLEND_DST_RGB: 0x80C8;\n readonly BLEND_SRC_RGB: 0x80C9;\n readonly BLEND_DST_ALPHA: 0x80CA;\n readonly BLEND_SRC_ALPHA: 0x80CB;\n readonly CONSTANT_COLOR: 0x8001;\n readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;\n readonly CONSTANT_ALPHA: 0x8003;\n readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;\n readonly BLEND_COLOR: 0x8005;\n readonly ARRAY_BUFFER: 0x8892;\n readonly ELEMENT_ARRAY_BUFFER: 0x8893;\n readonly ARRAY_BUFFER_BINDING: 0x8894;\n readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;\n readonly STREAM_DRAW: 0x88E0;\n readonly STATIC_DRAW: 0x88E4;\n readonly DYNAMIC_DRAW: 0x88E8;\n readonly BUFFER_SIZE: 0x8764;\n readonly BUFFER_USAGE: 0x8765;\n readonly CURRENT_VERTEX_ATTRIB: 0x8626;\n readonly FRONT: 0x0404;\n readonly BACK: 0x0405;\n readonly FRONT_AND_BACK: 0x0408;\n readonly CULL_FACE: 0x0B44;\n readonly BLEND: 0x0BE2;\n readonly DITHER: 0x0BD0;\n readonly STENCIL_TEST: 0x0B90;\n readonly DEPTH_TEST: 0x0B71;\n readonly SCISSOR_TEST: 0x0C11;\n readonly POLYGON_OFFSET_FILL: 0x8037;\n readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;\n readonly SAMPLE_COVERAGE: 0x80A0;\n readonly NO_ERROR: 0;\n readonly INVALID_ENUM: 0x0500;\n readonly INVALID_VALUE: 0x0501;\n readonly INVALID_OPERATION: 0x0502;\n readonly OUT_OF_MEMORY: 0x0505;\n readonly CW: 0x0900;\n readonly CCW: 0x0901;\n readonly LINE_WIDTH: 0x0B21;\n readonly ALIASED_POINT_SIZE_RANGE: 0x846D;\n readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;\n readonly CULL_FACE_MODE: 0x0B45;\n readonly FRONT_FACE: 0x0B46;\n readonly DEPTH_RANGE: 0x0B70;\n readonly DEPTH_WRITEMASK: 0x0B72;\n readonly DEPTH_CLEAR_VALUE: 0x0B73;\n readonly DEPTH_FUNC: 0x0B74;\n readonly STENCIL_CLEAR_VALUE: 0x0B91;\n readonly STENCIL_FUNC: 0x0B92;\n readonly STENCIL_FAIL: 0x0B94;\n readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;\n readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;\n readonly STENCIL_REF: 0x0B97;\n readonly STENCIL_VALUE_MASK: 0x0B93;\n readonly STENCIL_WRITEMASK: 0x0B98;\n readonly STENCIL_BACK_FUNC: 0x8800;\n readonly STENCIL_BACK_FAIL: 0x8801;\n readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;\n readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;\n readonly STENCIL_BACK_REF: 0x8CA3;\n readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;\n readonly STENCIL_BACK_WRITEMASK: 0x8CA5;\n readonly VIEWPORT: 0x0BA2;\n readonly SCISSOR_BOX: 0x0C10;\n readonly COLOR_CLEAR_VALUE: 0x0C22;\n readonly COLOR_WRITEMASK: 0x0C23;\n readonly UNPACK_ALIGNMENT: 0x0CF5;\n readonly PACK_ALIGNMENT: 0x0D05;\n readonly MAX_TEXTURE_SIZE: 0x0D33;\n readonly MAX_VIEWPORT_DIMS: 0x0D3A;\n readonly SUBPIXEL_BITS: 0x0D50;\n readonly RED_BITS: 0x0D52;\n readonly GREEN_BITS: 0x0D53;\n readonly BLUE_BITS: 0x0D54;\n readonly ALPHA_BITS: 0x0D55;\n readonly DEPTH_BITS: 0x0D56;\n readonly STENCIL_BITS: 0x0D57;\n readonly POLYGON_OFFSET_UNITS: 0x2A00;\n readonly POLYGON_OFFSET_FACTOR: 0x8038;\n readonly TEXTURE_BINDING_2D: 0x8069;\n readonly SAMPLE_BUFFERS: 0x80A8;\n readonly SAMPLES: 0x80A9;\n readonly SAMPLE_COVERAGE_VALUE: 0x80AA;\n readonly SAMPLE_COVERAGE_INVERT: 0x80AB;\n readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;\n readonly DONT_CARE: 0x1100;\n readonly FASTEST: 0x1101;\n readonly NICEST: 0x1102;\n readonly GENERATE_MIPMAP_HINT: 0x8192;\n readonly BYTE: 0x1400;\n readonly UNSIGNED_BYTE: 0x1401;\n readonly SHORT: 0x1402;\n readonly UNSIGNED_SHORT: 0x1403;\n readonly INT: 0x1404;\n readonly UNSIGNED_INT: 0x1405;\n readonly FLOAT: 0x1406;\n readonly DEPTH_COMPONENT: 0x1902;\n readonly ALPHA: 0x1906;\n readonly RGB: 0x1907;\n readonly RGBA: 0x1908;\n readonly LUMINANCE: 0x1909;\n readonly LUMINANCE_ALPHA: 0x190A;\n readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;\n readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;\n readonly UNSIGNED_SHORT_5_6_5: 0x8363;\n readonly FRAGMENT_SHADER: 0x8B30;\n readonly VERTEX_SHADER: 0x8B31;\n readonly MAX_VERTEX_ATTRIBS: 0x8869;\n readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;\n readonly MAX_VARYING_VECTORS: 0x8DFC;\n readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;\n readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;\n readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;\n readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;\n readonly SHADER_TYPE: 0x8B4F;\n readonly DELETE_STATUS: 0x8B80;\n readonly LINK_STATUS: 0x8B82;\n readonly VALIDATE_STATUS: 0x8B83;\n readonly ATTACHED_SHADERS: 0x8B85;\n readonly ACTIVE_UNIFORMS: 0x8B86;\n readonly ACTIVE_ATTRIBUTES: 0x8B89;\n readonly SHADING_LANGUAGE_VERSION: 0x8B8C;\n readonly CURRENT_PROGRAM: 0x8B8D;\n readonly NEVER: 0x0200;\n readonly LESS: 0x0201;\n readonly EQUAL: 0x0202;\n readonly LEQUAL: 0x0203;\n readonly GREATER: 0x0204;\n readonly NOTEQUAL: 0x0205;\n readonly GEQUAL: 0x0206;\n readonly ALWAYS: 0x0207;\n readonly KEEP: 0x1E00;\n readonly REPLACE: 0x1E01;\n readonly INCR: 0x1E02;\n readonly DECR: 0x1E03;\n readonly INVERT: 0x150A;\n readonly INCR_WRAP: 0x8507;\n readonly DECR_WRAP: 0x8508;\n readonly VENDOR: 0x1F00;\n readonly RENDERER: 0x1F01;\n readonly VERSION: 0x1F02;\n readonly NEAREST: 0x2600;\n readonly LINEAR: 0x2601;\n readonly NEAREST_MIPMAP_NEAREST: 0x2700;\n readonly LINEAR_MIPMAP_NEAREST: 0x2701;\n readonly NEAREST_MIPMAP_LINEAR: 0x2702;\n readonly LINEAR_MIPMAP_LINEAR: 0x2703;\n readonly TEXTURE_MAG_FILTER: 0x2800;\n readonly TEXTURE_MIN_FILTER: 0x2801;\n readonly TEXTURE_WRAP_S: 0x2802;\n readonly TEXTURE_WRAP_T: 0x2803;\n readonly TEXTURE_2D: 0x0DE1;\n readonly TEXTURE: 0x1702;\n readonly TEXTURE_CUBE_MAP: 0x8513;\n readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;\n readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;\n readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;\n readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;\n readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;\n readonly TEXTURE0: 0x84C0;\n readonly TEXTURE1: 0x84C1;\n readonly TEXTURE2: 0x84C2;\n readonly TEXTURE3: 0x84C3;\n readonly TEXTURE4: 0x84C4;\n readonly TEXTURE5: 0x84C5;\n readonly TEXTURE6: 0x84C6;\n readonly TEXTURE7: 0x84C7;\n readonly TEXTURE8: 0x84C8;\n readonly TEXTURE9: 0x84C9;\n readonly TEXTURE10: 0x84CA;\n readonly TEXTURE11: 0x84CB;\n readonly TEXTURE12: 0x84CC;\n readonly TEXTURE13: 0x84CD;\n readonly TEXTURE14: 0x84CE;\n readonly TEXTURE15: 0x84CF;\n readonly TEXTURE16: 0x84D0;\n readonly TEXTURE17: 0x84D1;\n readonly TEXTURE18: 0x84D2;\n readonly TEXTURE19: 0x84D3;\n readonly TEXTURE20: 0x84D4;\n readonly TEXTURE21: 0x84D5;\n readonly TEXTURE22: 0x84D6;\n readonly TEXTURE23: 0x84D7;\n readonly TEXTURE24: 0x84D8;\n readonly TEXTURE25: 0x84D9;\n readonly TEXTURE26: 0x84DA;\n readonly TEXTURE27: 0x84DB;\n readonly TEXTURE28: 0x84DC;\n readonly TEXTURE29: 0x84DD;\n readonly TEXTURE30: 0x84DE;\n readonly TEXTURE31: 0x84DF;\n readonly ACTIVE_TEXTURE: 0x84E0;\n readonly REPEAT: 0x2901;\n readonly CLAMP_TO_EDGE: 0x812F;\n readonly MIRRORED_REPEAT: 0x8370;\n readonly FLOAT_VEC2: 0x8B50;\n readonly FLOAT_VEC3: 0x8B51;\n readonly FLOAT_VEC4: 0x8B52;\n readonly INT_VEC2: 0x8B53;\n readonly INT_VEC3: 0x8B54;\n readonly INT_VEC4: 0x8B55;\n readonly BOOL: 0x8B56;\n readonly BOOL_VEC2: 0x8B57;\n readonly BOOL_VEC3: 0x8B58;\n readonly BOOL_VEC4: 0x8B59;\n readonly FLOAT_MAT2: 0x8B5A;\n readonly FLOAT_MAT3: 0x8B5B;\n readonly FLOAT_MAT4: 0x8B5C;\n readonly SAMPLER_2D: 0x8B5E;\n readonly SAMPLER_CUBE: 0x8B60;\n readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;\n readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;\n readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;\n readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;\n readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;\n readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;\n readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;\n readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;\n readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;\n readonly COMPILE_STATUS: 0x8B81;\n readonly LOW_FLOAT: 0x8DF0;\n readonly MEDIUM_FLOAT: 0x8DF1;\n readonly HIGH_FLOAT: 0x8DF2;\n readonly LOW_INT: 0x8DF3;\n readonly MEDIUM_INT: 0x8DF4;\n readonly HIGH_INT: 0x8DF5;\n readonly FRAMEBUFFER: 0x8D40;\n readonly RENDERBUFFER: 0x8D41;\n readonly RGBA4: 0x8056;\n readonly RGB5_A1: 0x8057;\n readonly RGBA8: 0x8058;\n readonly RGB565: 0x8D62;\n readonly DEPTH_COMPONENT16: 0x81A5;\n readonly STENCIL_INDEX8: 0x8D48;\n readonly DEPTH_STENCIL: 0x84F9;\n readonly RENDERBUFFER_WIDTH: 0x8D42;\n readonly RENDERBUFFER_HEIGHT: 0x8D43;\n readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;\n readonly RENDERBUFFER_RED_SIZE: 0x8D50;\n readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;\n readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;\n readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;\n readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;\n readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;\n readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;\n readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;\n readonly COLOR_ATTACHMENT0: 0x8CE0;\n readonly DEPTH_ATTACHMENT: 0x8D00;\n readonly STENCIL_ATTACHMENT: 0x8D20;\n readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;\n readonly NONE: 0;\n readonly FRAMEBUFFER_COMPLETE: 0x8CD5;\n readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;\n readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;\n readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;\n readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;\n readonly FRAMEBUFFER_BINDING: 0x8CA6;\n readonly RENDERBUFFER_BINDING: 0x8CA7;\n readonly MAX_RENDERBUFFER_SIZE: 0x84E8;\n readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;\n readonly UNPACK_FLIP_Y_WEBGL: 0x9240;\n readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;\n readonly CONTEXT_LOST_WEBGL: 0x9242;\n readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;\n readonly BROWSER_DEFAULT_WEBGL: 0x9244;\n}\n\ninterface WebGLRenderingContextOverloads {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bufferData) */\n bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;\n bufferData(target: GLenum, data: AllowSharedBufferSource | null, usage: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bufferSubData) */\n bufferSubData(target: GLenum, offset: GLintptr, data: AllowSharedBufferSource): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexImage2D) */\n compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: ArrayBufferView): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexSubImage2D) */\n compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: ArrayBufferView): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/readPixels) */\n readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texImage2D) */\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texSubImage2D) */\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;\n texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1fv(location: WebGLUniformLocation | null, v: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1iv(location: WebGLUniformLocation | null, v: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2fv(location: WebGLUniformLocation | null, v: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2iv(location: WebGLUniformLocation | null, v: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3fv(location: WebGLUniformLocation | null, v: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3iv(location: WebGLUniformLocation | null, v: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4fv(location: WebGLUniformLocation | null, v: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4iv(location: WebGLUniformLocation | null, v: Int32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLSampler) */\ninterface WebGLSampler {\n}\n\ndeclare var WebGLSampler: {\n prototype: WebGLSampler;\n new(): WebGLSampler;\n};\n\n/**\n * The WebGLShader is part of the WebGL API and can either be a vertex or a fragment shader. A WebGLProgram requires both types of shaders.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShader)\n */\ninterface WebGLShader {\n}\n\ndeclare var WebGLShader: {\n prototype: WebGLShader;\n new(): WebGLShader;\n};\n\n/**\n * Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getShaderPrecisionFormat() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat)\n */\ninterface WebGLShaderPrecisionFormat {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/precision) */\n readonly precision: GLint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/rangeMax) */\n readonly rangeMax: GLint;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/rangeMin) */\n readonly rangeMin: GLint;\n}\n\ndeclare var WebGLShaderPrecisionFormat: {\n prototype: WebGLShaderPrecisionFormat;\n new(): WebGLShaderPrecisionFormat;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLSync) */\ninterface WebGLSync {\n}\n\ndeclare var WebGLSync: {\n prototype: WebGLSync;\n new(): WebGLSync;\n};\n\n/**\n * Part of the WebGL API and represents an opaque texture object providing storage and state for texturing operations.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLTexture)\n */\ninterface WebGLTexture {\n}\n\ndeclare var WebGLTexture: {\n prototype: WebGLTexture;\n new(): WebGLTexture;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLTransformFeedback) */\ninterface WebGLTransformFeedback {\n}\n\ndeclare var WebGLTransformFeedback: {\n prototype: WebGLTransformFeedback;\n new(): WebGLTransformFeedback;\n};\n\n/**\n * Part of the WebGL API and represents the location of a uniform variable in a shader program.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLUniformLocation)\n */\ninterface WebGLUniformLocation {\n}\n\ndeclare var WebGLUniformLocation: {\n prototype: WebGLUniformLocation;\n new(): WebGLUniformLocation;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLVertexArrayObject) */\ninterface WebGLVertexArrayObject {\n}\n\ndeclare var WebGLVertexArrayObject: {\n prototype: WebGLVertexArrayObject;\n new(): WebGLVertexArrayObject;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLVertexArrayObjectOES) */\ninterface WebGLVertexArrayObjectOES {\n}\n\ninterface WebSocketEventMap {\n "close": CloseEvent;\n "error": Event;\n "message": MessageEvent;\n "open": Event;\n}\n\n/**\n * Provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket)\n */\ninterface WebSocket extends EventTarget {\n /**\n * Returns a string that indicates how binary data from the WebSocket object is exposed to scripts:\n *\n * Can be set, to change how binary data is returned. The default is "blob".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/binaryType)\n */\n binaryType: BinaryType;\n /**\n * Returns the number of bytes of application data (UTF-8 text and binary data) that have been queued using send() but not yet been transmitted to the network.\n *\n * If the WebSocket connection is closed, this attribute\'s value will only increase with each call to the send() method. (The number does not reset to zero once the connection closes.)\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/bufferedAmount)\n */\n readonly bufferedAmount: number;\n /**\n * Returns the extensions selected by the server, if any.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/extensions)\n */\n readonly extensions: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/close_event) */\n onclose: ((this: WebSocket, ev: CloseEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/error_event) */\n onerror: ((this: WebSocket, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/message_event) */\n onmessage: ((this: WebSocket, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/open_event) */\n onopen: ((this: WebSocket, ev: Event) => any) | null;\n /**\n * Returns the subprotocol selected by the server, if any. It can be used in conjunction with the array form of the constructor\'s second argument to perform subprotocol negotiation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/protocol)\n */\n readonly protocol: string;\n /**\n * Returns the state of the WebSocket object\'s connection. It can have the values described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/readyState)\n */\n readonly readyState: number;\n /**\n * Returns the URL that was used to establish the WebSocket connection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/url)\n */\n readonly url: string;\n /**\n * Closes the WebSocket connection, optionally using code as the the WebSocket connection close code and reason as the the WebSocket connection close reason.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/close)\n */\n close(code?: number, reason?: string): void;\n /**\n * Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/send)\n */\n send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;\n readonly CONNECTING: 0;\n readonly OPEN: 1;\n readonly CLOSING: 2;\n readonly CLOSED: 3;\n addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var WebSocket: {\n prototype: WebSocket;\n new(url: string | URL, protocols?: string | string[]): WebSocket;\n readonly CONNECTING: 0;\n readonly OPEN: 1;\n readonly CLOSING: 2;\n readonly CLOSED: 3;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport)\n */\ninterface WebTransport {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/closed) */\n readonly closed: Promise<WebTransportCloseInfo>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/datagrams) */\n readonly datagrams: WebTransportDatagramDuplexStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/incomingBidirectionalStreams) */\n readonly incomingBidirectionalStreams: ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/incomingUnidirectionalStreams) */\n readonly incomingUnidirectionalStreams: ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/ready) */\n readonly ready: Promise<undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/close) */\n close(closeInfo?: WebTransportCloseInfo): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/createBidirectionalStream) */\n createBidirectionalStream(options?: WebTransportSendStreamOptions): Promise<WebTransportBidirectionalStream>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/createUnidirectionalStream) */\n createUnidirectionalStream(options?: WebTransportSendStreamOptions): Promise<WritableStream>;\n}\n\ndeclare var WebTransport: {\n prototype: WebTransport;\n new(url: string | URL, options?: WebTransportOptions): WebTransport;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream)\n */\ninterface WebTransportBidirectionalStream {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream/readable) */\n readonly readable: ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream/writable) */\n readonly writable: WritableStream;\n}\n\ndeclare var WebTransportBidirectionalStream: {\n prototype: WebTransportBidirectionalStream;\n new(): WebTransportBidirectionalStream;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream)\n */\ninterface WebTransportDatagramDuplexStream {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/incomingHighWaterMark) */\n incomingHighWaterMark: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/incomingMaxAge) */\n incomingMaxAge: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/maxDatagramSize) */\n readonly maxDatagramSize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/outgoingHighWaterMark) */\n outgoingHighWaterMark: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/outgoingMaxAge) */\n outgoingMaxAge: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/readable) */\n readonly readable: ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/writable) */\n readonly writable: WritableStream;\n}\n\ndeclare var WebTransportDatagramDuplexStream: {\n prototype: WebTransportDatagramDuplexStream;\n new(): WebTransportDatagramDuplexStream;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError)\n */\ninterface WebTransportError extends DOMException {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError/source) */\n readonly source: WebTransportErrorSource;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError/streamErrorCode) */\n readonly streamErrorCode: number | null;\n}\n\ndeclare var WebTransportError: {\n prototype: WebTransportError;\n new(message?: string, options?: WebTransportErrorOptions): WebTransportError;\n};\n\n/**\n * This ServiceWorker API interface represents the scope of a service worker client that is a document in a browser context, controlled by an active worker. The service worker client independently selects and uses a service worker for its own loading and sub-resources.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient)\n */\ninterface WindowClient extends Client {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient/focused) */\n readonly focused: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient/visibilityState) */\n readonly visibilityState: DocumentVisibilityState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient/focus) */\n focus(): Promise<WindowClient>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient/navigate) */\n navigate(url: string | URL): Promise<WindowClient | null>;\n}\n\ndeclare var WindowClient: {\n prototype: WindowClient;\n new(): WindowClient;\n};\n\ninterface WindowOrWorkerGlobalScope {\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/caches)\n */\n readonly caches: CacheStorage;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/crossOriginIsolated) */\n readonly crossOriginIsolated: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/crypto_property) */\n readonly crypto: Crypto;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/indexedDB) */\n readonly indexedDB: IDBFactory;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/isSecureContext) */\n readonly isSecureContext: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/origin) */\n readonly origin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/performance_property) */\n readonly performance: Performance;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/atob) */\n atob(data: string): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/btoa) */\n btoa(data: string): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/clearInterval) */\n clearInterval(id: number | undefined): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/clearTimeout) */\n clearTimeout(id: number | undefined): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/createImageBitmap) */\n createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;\n createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/fetch) */\n fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/queueMicrotask) */\n queueMicrotask(callback: VoidFunction): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/reportError) */\n reportError(e: any): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/setInterval) */\n setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/setTimeout) */\n setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/structuredClone) */\n structuredClone<T = any>(value: T, options?: StructuredSerializeOptions): T;\n}\n\ninterface WorkerEventMap extends AbstractWorkerEventMap {\n "message": MessageEvent;\n "messageerror": MessageEvent;\n}\n\n/**\n * This Web Workers API interface represents a background task that can be easily created and can send messages back to its creator. Creating a worker is as simple as calling the Worker() constructor and specifying a script to be run in the worker thread.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker)\n */\ninterface Worker extends EventTarget, AbstractWorker {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/message_event) */\n onmessage: ((this: Worker, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/messageerror_event) */\n onmessageerror: ((this: Worker, ev: MessageEvent) => any) | null;\n /**\n * Clones message and transmits it to worker\'s global environment. transfer can be passed as a list of objects that are to be transferred rather than cloned.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/postMessage)\n */\n postMessage(message: any, transfer: Transferable[]): void;\n postMessage(message: any, options?: StructuredSerializeOptions): void;\n /**\n * Aborts worker\'s associated global environment.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/terminate)\n */\n terminate(): void;\n addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Worker: {\n prototype: Worker;\n new(scriptURL: string | URL, options?: WorkerOptions): Worker;\n};\n\ninterface WorkerGlobalScopeEventMap {\n "error": ErrorEvent;\n "languagechange": Event;\n "offline": Event;\n "online": Event;\n "rejectionhandled": PromiseRejectionEvent;\n "unhandledrejection": PromiseRejectionEvent;\n}\n\n/**\n * This Web Workers API interface is an interface representing the scope of any worker. Workers have no browsing context; this scope contains the information usually conveyed by Window objects — in this case event handlers, the console or the associated WorkerNavigator object. Each WorkerGlobalScope has its own event loop.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope)\n */\ninterface WorkerGlobalScope extends EventTarget, FontFaceSource, WindowOrWorkerGlobalScope {\n /**\n * Returns workerGlobal\'s WorkerLocation object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/location)\n */\n readonly location: WorkerLocation;\n /**\n * Returns workerGlobal\'s WorkerNavigator object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/navigator)\n */\n readonly navigator: WorkerNavigator;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/error_event) */\n onerror: ((this: WorkerGlobalScope, ev: ErrorEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/languagechange_event) */\n onlanguagechange: ((this: WorkerGlobalScope, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/offline_event) */\n onoffline: ((this: WorkerGlobalScope, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/online_event) */\n ononline: ((this: WorkerGlobalScope, ev: Event) => any) | null;\n onrejectionhandled: ((this: WorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;\n onunhandledrejection: ((this: WorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;\n /**\n * Returns workerGlobal.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/self)\n */\n readonly self: WorkerGlobalScope & typeof globalThis;\n /**\n * Fetches each URL in urls, executes them one-by-one in the order they are passed, and then returns (or throws if something went amiss).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/importScripts)\n */\n importScripts(...urls: (string | URL)[]): void;\n addEventListener<K extends keyof WorkerGlobalScopeEventMap>(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof WorkerGlobalScopeEventMap>(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var WorkerGlobalScope: {\n prototype: WorkerGlobalScope;\n new(): WorkerGlobalScope;\n};\n\n/**\n * The absolute location of the script executed by the Worker. Such an object is initialized for each worker and is available via the WorkerGlobalScope.location property obtained by calling self.location.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation)\n */\ninterface WorkerLocation {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/hash) */\n readonly hash: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/host) */\n readonly host: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/hostname) */\n readonly hostname: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/href) */\n readonly href: string;\n toString(): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/origin) */\n readonly origin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/pathname) */\n readonly pathname: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/port) */\n readonly port: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/protocol) */\n readonly protocol: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/search) */\n readonly search: string;\n}\n\ndeclare var WorkerLocation: {\n prototype: WorkerLocation;\n new(): WorkerLocation;\n};\n\n/**\n * A subset of the Navigator interface allowed to be accessed from a Worker. Such an object is initialized for each worker and is available via the WorkerGlobalScope.navigator property obtained by calling window.self.navigator.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerNavigator)\n */\ninterface WorkerNavigator extends NavigatorBadge, NavigatorConcurrentHardware, NavigatorID, NavigatorLanguage, NavigatorLocks, NavigatorOnLine, NavigatorStorage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerNavigator/mediaCapabilities) */\n readonly mediaCapabilities: MediaCapabilities;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerNavigator/permissions) */\n readonly permissions: Permissions;\n}\n\ndeclare var WorkerNavigator: {\n prototype: WorkerNavigator;\n new(): WorkerNavigator;\n};\n\n/**\n * This Streams API interface provides a standard abstraction for writing streaming data to a destination, known as a sink. This object comes with built-in backpressure and queuing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream)\n */\ninterface WritableStream<W = any> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/locked) */\n readonly locked: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/abort) */\n abort(reason?: any): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/close) */\n close(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/getWriter) */\n getWriter(): WritableStreamDefaultWriter<W>;\n}\n\ndeclare var WritableStream: {\n prototype: WritableStream;\n new<W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;\n};\n\n/**\n * This Streams API interface represents a controller allowing control of a WritableStream\'s state. When constructing a WritableStream, the underlying sink is given a corresponding WritableStreamDefaultController instance to manipulate.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController)\n */\ninterface WritableStreamDefaultController {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController/signal) */\n readonly signal: AbortSignal;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController/error) */\n error(e?: any): void;\n}\n\ndeclare var WritableStreamDefaultController: {\n prototype: WritableStreamDefaultController;\n new(): WritableStreamDefaultController;\n};\n\n/**\n * This Streams API interface is the object returned by WritableStream.getWriter() and once created locks the < writer to the WritableStream ensuring that no other streams can write to the underlying sink.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter)\n */\ninterface WritableStreamDefaultWriter<W = any> {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/closed) */\n readonly closed: Promise<undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/desiredSize) */\n readonly desiredSize: number | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/ready) */\n readonly ready: Promise<undefined>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/abort) */\n abort(reason?: any): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/close) */\n close(): Promise<void>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/releaseLock) */\n releaseLock(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/write) */\n write(chunk?: W): Promise<void>;\n}\n\ndeclare var WritableStreamDefaultWriter: {\n prototype: WritableStreamDefaultWriter;\n new<W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;\n};\n\ninterface XMLHttpRequestEventMap extends XMLHttpRequestEventTargetEventMap {\n "readystatechange": Event;\n}\n\n/**\n * Use XMLHttpRequest (XHR) objects to interact with servers. You can retrieve data from a URL without having to do a full page refresh. This enables a Web page to update just part of a page without disrupting what the user is doing.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest)\n */\ninterface XMLHttpRequest extends XMLHttpRequestEventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/readystatechange_event) */\n onreadystatechange: ((this: XMLHttpRequest, ev: Event) => any) | null;\n /**\n * Returns client\'s state.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/readyState)\n */\n readonly readyState: number;\n /**\n * Returns the response body.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/response)\n */\n readonly response: any;\n /**\n * Returns response as text.\n *\n * Throws an "InvalidStateError" DOMException if responseType is not the empty string or "text".\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseText)\n */\n readonly responseText: string;\n /**\n * Returns the response type.\n *\n * Can be set to change the response type. Values are: the empty string (default), "arraybuffer", "blob", "document", "json", and "text".\n *\n * When set: setting to "document" is ignored if current global object is not a Window object.\n *\n * When set: throws an "InvalidStateError" DOMException if state is loading or done.\n *\n * When set: throws an "InvalidAccessError" DOMException if the synchronous flag is set and current global object is a Window object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseType)\n */\n responseType: XMLHttpRequestResponseType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseURL) */\n readonly responseURL: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/status) */\n readonly status: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/statusText) */\n readonly statusText: string;\n /**\n * Can be set to a time in milliseconds. When set to a non-zero value will cause fetching to terminate after the given time has passed. When the time has passed, the request has not yet completed, and this\'s synchronous flag is unset, a timeout event will then be dispatched, or a "TimeoutError" DOMException will be thrown otherwise (for the send() method).\n *\n * When set: throws an "InvalidAccessError" DOMException if the synchronous flag is set and current global object is a Window object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/timeout)\n */\n timeout: number;\n /**\n * Returns the associated XMLHttpRequestUpload object. It can be used to gather transmission information when data is transferred to a server.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/upload)\n */\n readonly upload: XMLHttpRequestUpload;\n /**\n * True when credentials are to be included in a cross-origin request. False when they are to be excluded in a cross-origin request and when cookies are to be ignored in its response. Initially false.\n *\n * When set: throws an "InvalidStateError" DOMException if state is not unsent or opened, or if the send() flag is set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/withCredentials)\n */\n withCredentials: boolean;\n /**\n * Cancels any network activity.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/abort)\n */\n abort(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getAllResponseHeaders) */\n getAllResponseHeaders(): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getResponseHeader) */\n getResponseHeader(name: string): string | null;\n /**\n * Sets the request method, request URL, and synchronous flag.\n *\n * Throws a "SyntaxError" DOMException if either method is not a valid method or url cannot be parsed.\n *\n * Throws a "SecurityError" DOMException if method is a case-insensitive match for `CONNECT`, `TRACE`, or `TRACK`.\n *\n * Throws an "InvalidAccessError" DOMException if async is false, current global object is a Window object, and the timeout attribute is not zero or the responseType attribute is not the empty string.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/open)\n */\n open(method: string, url: string | URL): void;\n open(method: string, url: string | URL, async: boolean, username?: string | null, password?: string | null): void;\n /**\n * Acts as if the `Content-Type` header value for a response is mime. (It does not change the header.)\n *\n * Throws an "InvalidStateError" DOMException if state is loading or done.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/overrideMimeType)\n */\n overrideMimeType(mime: string): void;\n /**\n * Initiates the request. The body argument provides the request body, if any, and is ignored if the request method is GET or HEAD.\n *\n * Throws an "InvalidStateError" DOMException if either state is not opened or the send() flag is set.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/send)\n */\n send(body?: XMLHttpRequestBodyInit | null): void;\n /**\n * Combines a header in author request headers.\n *\n * Throws an "InvalidStateError" DOMException if either state is not opened or the send() flag is set.\n *\n * Throws a "SyntaxError" DOMException if name is not a header name or if value is not a header value.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/setRequestHeader)\n */\n setRequestHeader(name: string, value: string): void;\n readonly UNSENT: 0;\n readonly OPENED: 1;\n readonly HEADERS_RECEIVED: 2;\n readonly LOADING: 3;\n readonly DONE: 4;\n addEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var XMLHttpRequest: {\n prototype: XMLHttpRequest;\n new(): XMLHttpRequest;\n readonly UNSENT: 0;\n readonly OPENED: 1;\n readonly HEADERS_RECEIVED: 2;\n readonly LOADING: 3;\n readonly DONE: 4;\n};\n\ninterface XMLHttpRequestEventTargetEventMap {\n "abort": ProgressEvent<XMLHttpRequestEventTarget>;\n "error": ProgressEvent<XMLHttpRequestEventTarget>;\n "load": ProgressEvent<XMLHttpRequestEventTarget>;\n "loadend": ProgressEvent<XMLHttpRequestEventTarget>;\n "loadstart": ProgressEvent<XMLHttpRequestEventTarget>;\n "progress": ProgressEvent<XMLHttpRequestEventTarget>;\n "timeout": ProgressEvent<XMLHttpRequestEventTarget>;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequestEventTarget) */\ninterface XMLHttpRequestEventTarget extends EventTarget {\n onabort: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onerror: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onload: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onloadend: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onloadstart: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n onprogress: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n ontimeout: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;\n addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var XMLHttpRequestEventTarget: {\n prototype: XMLHttpRequestEventTarget;\n new(): XMLHttpRequestEventTarget;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequestUpload) */\ninterface XMLHttpRequestUpload extends XMLHttpRequestEventTarget {\n addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var XMLHttpRequestUpload: {\n prototype: XMLHttpRequestUpload;\n new(): XMLHttpRequestUpload;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console) */\ninterface Console {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/assert_static) */\n assert(condition?: boolean, ...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/clear_static) */\n clear(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/count_static) */\n count(label?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/countReset_static) */\n countReset(label?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/debug_static) */\n debug(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/dir_static) */\n dir(item?: any, options?: any): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/dirxml_static) */\n dirxml(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/error_static) */\n error(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/group_static) */\n group(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/groupCollapsed_static) */\n groupCollapsed(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/groupEnd_static) */\n groupEnd(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/info_static) */\n info(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static) */\n log(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/table_static) */\n table(tabularData?: any, properties?: string[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/time_static) */\n time(label?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeEnd_static) */\n timeEnd(label?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeLog_static) */\n timeLog(label?: string, ...data: any[]): void;\n timeStamp(label?: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/trace_static) */\n trace(...data: any[]): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/warn_static) */\n warn(...data: any[]): void;\n}\n\ndeclare var console: Console;\n\ndeclare namespace WebAssembly {\n interface CompileError extends Error {\n }\n\n var CompileError: {\n prototype: CompileError;\n new(message?: string): CompileError;\n (message?: string): CompileError;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Global) */\n interface Global<T extends ValueType = ValueType> {\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Global/value) */\n value: ValueTypeMap[T];\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Global/valueOf) */\n valueOf(): ValueTypeMap[T];\n }\n\n var Global: {\n prototype: Global;\n new<T extends ValueType = ValueType>(descriptor: GlobalDescriptor<T>, v?: ValueTypeMap[T]): Global<T>;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Instance) */\n interface Instance {\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Instance/exports) */\n readonly exports: Exports;\n }\n\n var Instance: {\n prototype: Instance;\n new(module: Module, importObject?: Imports): Instance;\n };\n\n interface LinkError extends Error {\n }\n\n var LinkError: {\n prototype: LinkError;\n new(message?: string): LinkError;\n (message?: string): LinkError;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Memory) */\n interface Memory {\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Memory/buffer) */\n readonly buffer: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Memory/grow) */\n grow(delta: number): number;\n }\n\n var Memory: {\n prototype: Memory;\n new(descriptor: MemoryDescriptor): Memory;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Module) */\n interface Module {\n }\n\n var Module: {\n prototype: Module;\n new(bytes: BufferSource): Module;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Module/customSections_static) */\n customSections(moduleObject: Module, sectionName: string): ArrayBuffer[];\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Module/exports_static) */\n exports(moduleObject: Module): ModuleExportDescriptor[];\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Module/imports_static) */\n imports(moduleObject: Module): ModuleImportDescriptor[];\n };\n\n interface RuntimeError extends Error {\n }\n\n var RuntimeError: {\n prototype: RuntimeError;\n new(message?: string): RuntimeError;\n (message?: string): RuntimeError;\n };\n\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Table) */\n interface Table {\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Table/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Table/get) */\n get(index: number): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Table/grow) */\n grow(delta: number, value?: any): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/Table/set) */\n set(index: number, value?: any): void;\n }\n\n var Table: {\n prototype: Table;\n new(descriptor: TableDescriptor, value?: any): Table;\n };\n\n interface GlobalDescriptor<T extends ValueType = ValueType> {\n mutable?: boolean;\n value: T;\n }\n\n interface MemoryDescriptor {\n initial: number;\n maximum?: number;\n shared?: boolean;\n }\n\n interface ModuleExportDescriptor {\n kind: ImportExportKind;\n name: string;\n }\n\n interface ModuleImportDescriptor {\n kind: ImportExportKind;\n module: string;\n name: string;\n }\n\n interface TableDescriptor {\n element: TableKind;\n initial: number;\n maximum?: number;\n }\n\n interface ValueTypeMap {\n anyfunc: Function;\n externref: any;\n f32: number;\n f64: number;\n i32: number;\n i64: bigint;\n v128: never;\n }\n\n interface WebAssemblyInstantiatedSource {\n instance: Instance;\n module: Module;\n }\n\n type ImportExportKind = "function" | "global" | "memory" | "table";\n type TableKind = "anyfunc" | "externref";\n type ExportValue = Function | Global | Memory | Table;\n type Exports = Record<string, ExportValue>;\n type ImportValue = ExportValue | number;\n type Imports = Record<string, ModuleImports>;\n type ModuleImports = Record<string, ImportValue>;\n type ValueType = keyof ValueTypeMap;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/compile_static) */\n function compile(bytes: BufferSource): Promise<Module>;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/compileStreaming_static) */\n function compileStreaming(source: Response | PromiseLike<Response>): Promise<Module>;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/instantiate_static) */\n function instantiate(bytes: BufferSource, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;\n function instantiate(moduleObject: Module, importObject?: Imports): Promise<Instance>;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/instantiateStreaming_static) */\n function instantiateStreaming(source: Response | PromiseLike<Response>, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;\n /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/JavaScript_interface/validate_static) */\n function validate(bytes: BufferSource): boolean;\n}\n\ninterface EncodedVideoChunkOutputCallback {\n (chunk: EncodedVideoChunk, metadata?: EncodedVideoChunkMetadata): void;\n}\n\ninterface FrameRequestCallback {\n (time: DOMHighResTimeStamp): void;\n}\n\ninterface LockGrantedCallback {\n (lock: Lock | null): any;\n}\n\ninterface OnErrorEventHandlerNonNull {\n (event: Event | string, source?: string, lineno?: number, colno?: number, error?: Error): any;\n}\n\ninterface PerformanceObserverCallback {\n (entries: PerformanceObserverEntryList, observer: PerformanceObserver): void;\n}\n\ninterface QueuingStrategySize<T = any> {\n (chunk: T): number;\n}\n\ninterface ReportingObserverCallback {\n (reports: Report[], observer: ReportingObserver): void;\n}\n\ninterface TransformerFlushCallback<O> {\n (controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;\n}\n\ninterface TransformerStartCallback<O> {\n (controller: TransformStreamDefaultController<O>): any;\n}\n\ninterface TransformerTransformCallback<I, O> {\n (chunk: I, controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSinkAbortCallback {\n (reason?: any): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSinkCloseCallback {\n (): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSinkStartCallback {\n (controller: WritableStreamDefaultController): any;\n}\n\ninterface UnderlyingSinkWriteCallback<W> {\n (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSourceCancelCallback {\n (reason?: any): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSourcePullCallback<R> {\n (controller: ReadableStreamController<R>): void | PromiseLike<void>;\n}\n\ninterface UnderlyingSourceStartCallback<R> {\n (controller: ReadableStreamController<R>): any;\n}\n\ninterface VideoFrameOutputCallback {\n (output: VideoFrame): void;\n}\n\ninterface VoidFunction {\n (): void;\n}\n\ninterface WebCodecsErrorCallback {\n (error: DOMException): void;\n}\n\n/**\n * Returns dedicatedWorkerGlobal\'s name, i.e. the value given to the Worker constructor. Primarily useful for debugging.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/name)\n */\ndeclare var name: string;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/message_event) */\ndeclare var onmessage: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/messageerror_event) */\ndeclare var onmessageerror: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/rtctransform_event) */\ndeclare var onrtctransform: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;\n/**\n * Aborts dedicatedWorkerGlobal.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/close)\n */\ndeclare function close(): void;\n/**\n * Clones message and transmits it to the Worker object associated with dedicatedWorkerGlobal. transfer can be passed as a list of objects that are to be transferred rather than cloned.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/postMessage)\n */\ndeclare function postMessage(message: any, transfer: Transferable[]): void;\ndeclare function postMessage(message: any, options?: StructuredSerializeOptions): void;\n/**\n * Dispatches a synthetic event event to target and returns true if either event\'s cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)\n */\ndeclare function dispatchEvent(event: Event): boolean;\n/**\n * Returns workerGlobal\'s WorkerLocation object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/location)\n */\ndeclare var location: WorkerLocation;\n/**\n * Returns workerGlobal\'s WorkerNavigator object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/navigator)\n */\ndeclare var navigator: WorkerNavigator;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/error_event) */\ndeclare var onerror: ((this: DedicatedWorkerGlobalScope, ev: ErrorEvent) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/languagechange_event) */\ndeclare var onlanguagechange: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/offline_event) */\ndeclare var onoffline: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/online_event) */\ndeclare var ononline: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;\ndeclare var onrejectionhandled: ((this: DedicatedWorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;\ndeclare var onunhandledrejection: ((this: DedicatedWorkerGlobalScope, ev: PromiseRejectionEvent) => any) | null;\n/**\n * Returns workerGlobal.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/self)\n */\ndeclare var self: WorkerGlobalScope & typeof globalThis;\n/**\n * Fetches each URL in urls, executes them one-by-one in the order they are passed, and then returns (or throws if something went amiss).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/importScripts)\n */\ndeclare function importScripts(...urls: (string | URL)[]): void;\n/**\n * Dispatches a synthetic event event to target and returns true if either event\'s cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)\n */\ndeclare function dispatchEvent(event: Event): boolean;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fonts) */\ndeclare var fonts: FontFaceSet;\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/caches)\n */\ndeclare var caches: CacheStorage;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/crossOriginIsolated) */\ndeclare var crossOriginIsolated: boolean;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/crypto_property) */\ndeclare var crypto: Crypto;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/indexedDB) */\ndeclare var indexedDB: IDBFactory;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/isSecureContext) */\ndeclare var isSecureContext: boolean;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/origin) */\ndeclare var origin: string;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/performance_property) */\ndeclare var performance: Performance;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/atob) */\ndeclare function atob(data: string): string;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/btoa) */\ndeclare function btoa(data: string): string;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/clearInterval) */\ndeclare function clearInterval(id: number | undefined): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/clearTimeout) */\ndeclare function clearTimeout(id: number | undefined): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/createImageBitmap) */\ndeclare function createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;\ndeclare function createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/fetch) */\ndeclare function fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/queueMicrotask) */\ndeclare function queueMicrotask(callback: VoidFunction): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/reportError) */\ndeclare function reportError(e: any): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/setInterval) */\ndeclare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/setTimeout) */\ndeclare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/structuredClone) */\ndeclare function structuredClone<T = any>(value: T, options?: StructuredSerializeOptions): T;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/cancelAnimationFrame) */\ndeclare function cancelAnimationFrame(handle: number): void;\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/requestAnimationFrame) */\ndeclare function requestAnimationFrame(callback: FrameRequestCallback): number;\ndeclare function addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\ndeclare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\ndeclare function removeEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\ndeclare function removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\ntype AlgorithmIdentifier = Algorithm | string;\ntype AllowSharedBufferSource = ArrayBuffer | ArrayBufferView;\ntype BigInteger = Uint8Array;\ntype BinaryData = ArrayBuffer | ArrayBufferView;\ntype BlobPart = BufferSource | Blob | string;\ntype BodyInit = ReadableStream | XMLHttpRequestBodyInit;\ntype BufferSource = ArrayBufferView | ArrayBuffer;\ntype CSSKeywordish = string | CSSKeywordValue;\ntype CSSNumberish = number | CSSNumericValue;\ntype CSSPerspectiveValue = CSSNumericValue | CSSKeywordish;\ntype CSSUnparsedSegment = string | CSSVariableReferenceValue;\ntype CanvasImageSource = ImageBitmap | OffscreenCanvas | VideoFrame;\ntype DOMHighResTimeStamp = number;\ntype EpochTimeStamp = number;\ntype EventListenerOrEventListenerObject = EventListener | EventListenerObject;\ntype FileSystemWriteChunkType = BufferSource | Blob | string | WriteParams;\ntype Float32List = Float32Array | GLfloat[];\ntype FormDataEntryValue = File | string;\ntype GLbitfield = number;\ntype GLboolean = boolean;\ntype GLclampf = number;\ntype GLenum = number;\ntype GLfloat = number;\ntype GLint = number;\ntype GLint64 = number;\ntype GLintptr = number;\ntype GLsizei = number;\ntype GLsizeiptr = number;\ntype GLuint = number;\ntype GLuint64 = number;\ntype HashAlgorithmIdentifier = AlgorithmIdentifier;\ntype HeadersInit = [string, string][] | Record<string, string> | Headers;\ntype IDBValidKey = number | string | Date | BufferSource | IDBValidKey[];\ntype ImageBitmapSource = CanvasImageSource | Blob | ImageData;\ntype Int32List = Int32Array | GLint[];\ntype MessageEventSource = MessagePort | ServiceWorker;\ntype NamedCurve = string;\ntype OffscreenRenderingContext = OffscreenCanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext;\ntype OnErrorEventHandler = OnErrorEventHandlerNonNull | null;\ntype PerformanceEntryList = PerformanceEntry[];\ntype PushMessageDataInit = BufferSource | string;\ntype ReadableStreamController<T> = ReadableStreamDefaultController<T> | ReadableByteStreamController;\ntype ReadableStreamReadResult<T> = ReadableStreamReadValueResult<T> | ReadableStreamReadDoneResult<T>;\ntype ReadableStreamReader<T> = ReadableStreamDefaultReader<T> | ReadableStreamBYOBReader;\ntype ReportList = Report[];\ntype RequestInfo = Request | string;\ntype TexImageSource = ImageBitmap | ImageData | OffscreenCanvas | VideoFrame;\ntype TimerHandler = string | Function;\ntype Transferable = OffscreenCanvas | ImageBitmap | MessagePort | ReadableStream | WritableStream | TransformStream | VideoFrame | ArrayBuffer;\ntype Uint32List = Uint32Array | GLuint[];\ntype XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string;\ntype AlphaOption = "discard" | "keep";\ntype AvcBitstreamFormat = "annexb" | "avc";\ntype BinaryType = "arraybuffer" | "blob";\ntype CSSMathOperator = "clamp" | "invert" | "max" | "min" | "negate" | "product" | "sum";\ntype CSSNumericBaseType = "angle" | "flex" | "frequency" | "length" | "percent" | "resolution" | "time";\ntype CanvasDirection = "inherit" | "ltr" | "rtl";\ntype CanvasFillRule = "evenodd" | "nonzero";\ntype CanvasFontKerning = "auto" | "none" | "normal";\ntype CanvasFontStretch = "condensed" | "expanded" | "extra-condensed" | "extra-expanded" | "normal" | "semi-condensed" | "semi-expanded" | "ultra-condensed" | "ultra-expanded";\ntype CanvasFontVariantCaps = "all-petite-caps" | "all-small-caps" | "normal" | "petite-caps" | "small-caps" | "titling-caps" | "unicase";\ntype CanvasLineCap = "butt" | "round" | "square";\ntype CanvasLineJoin = "bevel" | "miter" | "round";\ntype CanvasTextAlign = "center" | "end" | "left" | "right" | "start";\ntype CanvasTextBaseline = "alphabetic" | "bottom" | "hanging" | "ideographic" | "middle" | "top";\ntype CanvasTextRendering = "auto" | "geometricPrecision" | "optimizeLegibility" | "optimizeSpeed";\ntype ClientTypes = "all" | "sharedworker" | "window" | "worker";\ntype CodecState = "closed" | "configured" | "unconfigured";\ntype ColorGamut = "p3" | "rec2020" | "srgb";\ntype ColorSpaceConversion = "default" | "none";\ntype CompressionFormat = "deflate" | "deflate-raw" | "gzip";\ntype DocumentVisibilityState = "hidden" | "visible";\ntype EncodedVideoChunkType = "delta" | "key";\ntype EndingType = "native" | "transparent";\ntype FileSystemHandleKind = "directory" | "file";\ntype FontDisplay = "auto" | "block" | "fallback" | "optional" | "swap";\ntype FontFaceLoadStatus = "error" | "loaded" | "loading" | "unloaded";\ntype FontFaceSetLoadStatus = "loaded" | "loading";\ntype FrameType = "auxiliary" | "nested" | "none" | "top-level";\ntype GlobalCompositeOperation = "color" | "color-burn" | "color-dodge" | "copy" | "darken" | "destination-atop" | "destination-in" | "destination-out" | "destination-over" | "difference" | "exclusion" | "hard-light" | "hue" | "lighten" | "lighter" | "luminosity" | "multiply" | "overlay" | "saturation" | "screen" | "soft-light" | "source-atop" | "source-in" | "source-out" | "source-over" | "xor";\ntype HardwareAcceleration = "no-preference" | "prefer-hardware" | "prefer-software";\ntype HdrMetadataType = "smpteSt2086" | "smpteSt2094-10" | "smpteSt2094-40";\ntype IDBCursorDirection = "next" | "nextunique" | "prev" | "prevunique";\ntype IDBRequestReadyState = "done" | "pending";\ntype IDBTransactionDurability = "default" | "relaxed" | "strict";\ntype IDBTransactionMode = "readonly" | "readwrite" | "versionchange";\ntype ImageOrientation = "flipY" | "from-image" | "none";\ntype ImageSmoothingQuality = "high" | "low" | "medium";\ntype KeyFormat = "jwk" | "pkcs8" | "raw" | "spki";\ntype KeyType = "private" | "public" | "secret";\ntype KeyUsage = "decrypt" | "deriveBits" | "deriveKey" | "encrypt" | "sign" | "unwrapKey" | "verify" | "wrapKey";\ntype LatencyMode = "quality" | "realtime";\ntype LockMode = "exclusive" | "shared";\ntype MediaDecodingType = "file" | "media-source" | "webrtc";\ntype MediaEncodingType = "record" | "webrtc";\ntype NotificationDirection = "auto" | "ltr" | "rtl";\ntype NotificationPermission = "default" | "denied" | "granted";\ntype OffscreenRenderingContextId = "2d" | "bitmaprenderer" | "webgl" | "webgl2" | "webgpu";\ntype PermissionName = "geolocation" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock" | "xr-spatial-tracking";\ntype PermissionState = "denied" | "granted" | "prompt";\ntype PredefinedColorSpace = "display-p3" | "srgb";\ntype PremultiplyAlpha = "default" | "none" | "premultiply";\ntype PushEncryptionKeyName = "auth" | "p256dh";\ntype RTCEncodedVideoFrameType = "delta" | "empty" | "key";\ntype ReadableStreamReaderMode = "byob";\ntype ReadableStreamType = "bytes";\ntype ReferrerPolicy = "" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";\ntype RequestCache = "default" | "force-cache" | "no-cache" | "no-store" | "only-if-cached" | "reload";\ntype RequestCredentials = "include" | "omit" | "same-origin";\ntype RequestDestination = "" | "audio" | "audioworklet" | "document" | "embed" | "font" | "frame" | "iframe" | "image" | "manifest" | "object" | "paintworklet" | "report" | "script" | "sharedworker" | "style" | "track" | "video" | "worker" | "xslt";\ntype RequestMode = "cors" | "navigate" | "no-cors" | "same-origin";\ntype RequestPriority = "auto" | "high" | "low";\ntype RequestRedirect = "error" | "follow" | "manual";\ntype ResizeQuality = "high" | "low" | "medium" | "pixelated";\ntype ResponseType = "basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect";\ntype SecurityPolicyViolationEventDisposition = "enforce" | "report";\ntype ServiceWorkerState = "activated" | "activating" | "installed" | "installing" | "parsed" | "redundant";\ntype ServiceWorkerUpdateViaCache = "all" | "imports" | "none";\ntype TransferFunction = "hlg" | "pq" | "srgb";\ntype VideoColorPrimaries = "bt470bg" | "bt709" | "smpte170m";\ntype VideoEncoderBitrateMode = "constant" | "quantizer" | "variable";\ntype VideoMatrixCoefficients = "bt470bg" | "bt709" | "rgb" | "smpte170m";\ntype VideoPixelFormat = "BGRA" | "BGRX" | "I420" | "I420A" | "I422" | "I444" | "NV12" | "RGBA" | "RGBX";\ntype VideoTransferCharacteristics = "bt709" | "iec61966-2-1" | "smpte170m";\ntype WebGLPowerPreference = "default" | "high-performance" | "low-power";\ntype WebTransportCongestionControl = "default" | "low-latency" | "throughput";\ntype WebTransportErrorSource = "session" | "stream";\ntype WorkerType = "classic" | "module";\ntype WriteCommandType = "seek" | "truncate" | "write";\ntype XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text";\n', + 'lib.webworker.importscripts.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/////////////////////////////\n/// WorkerGlobalScope APIs\n/////////////////////////////\n// These are only available in a Web Worker\ndeclare function importScripts(...urls: string[]): void;\n', + 'lib.webworker.iterable.d.ts': + '/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the "License"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// <reference no-default-lib="true"/>\n\n/////////////////////////////\n/// Worker Iterable APIs\n/////////////////////////////\n\ninterface CSSNumericArray {\n [Symbol.iterator](): IterableIterator<CSSNumericValue>;\n entries(): IterableIterator<[number, CSSNumericValue]>;\n keys(): IterableIterator<number>;\n values(): IterableIterator<CSSNumericValue>;\n}\n\ninterface CSSTransformValue {\n [Symbol.iterator](): IterableIterator<CSSTransformComponent>;\n entries(): IterableIterator<[number, CSSTransformComponent]>;\n keys(): IterableIterator<number>;\n values(): IterableIterator<CSSTransformComponent>;\n}\n\ninterface CSSUnparsedValue {\n [Symbol.iterator](): IterableIterator<CSSUnparsedSegment>;\n entries(): IterableIterator<[number, CSSUnparsedSegment]>;\n keys(): IterableIterator<number>;\n values(): IterableIterator<CSSUnparsedSegment>;\n}\n\ninterface Cache {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/addAll) */\n addAll(requests: Iterable<RequestInfo>): Promise<void>;\n}\n\ninterface CanvasPath {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/roundRect) */\n roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | Iterable<number | DOMPointInit>): void;\n}\n\ninterface CanvasPathDrawingStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash) */\n setLineDash(segments: Iterable<number>): void;\n}\n\ninterface DOMStringList {\n [Symbol.iterator](): IterableIterator<string>;\n}\n\ninterface FileList {\n [Symbol.iterator](): IterableIterator<File>;\n}\n\ninterface FontFaceSet extends Set<FontFace> {\n}\n\ninterface FormData {\n [Symbol.iterator](): IterableIterator<[string, FormDataEntryValue]>;\n /** Returns an array of key, value pairs for every entry in the list. */\n entries(): IterableIterator<[string, FormDataEntryValue]>;\n /** Returns a list of keys in the list. */\n keys(): IterableIterator<string>;\n /** Returns a list of values in the list. */\n values(): IterableIterator<FormDataEntryValue>;\n}\n\ninterface Headers {\n [Symbol.iterator](): IterableIterator<[string, string]>;\n /** Returns an iterator allowing to go through all key/value pairs contained in this object. */\n entries(): IterableIterator<[string, string]>;\n /** Returns an iterator allowing to go through all keys of the key/value pairs contained in this object. */\n keys(): IterableIterator<string>;\n /** Returns an iterator allowing to go through all values of the key/value pairs contained in this object. */\n values(): IterableIterator<string>;\n}\n\ninterface IDBDatabase {\n /**\n * 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.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/transaction)\n */\n transaction(storeNames: string | Iterable<string>, mode?: IDBTransactionMode, options?: IDBTransactionOptions): IDBTransaction;\n}\n\ninterface IDBObjectStore {\n /**\n * 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.\n *\n * Throws an "InvalidStateError" DOMException if not called within an upgrade transaction.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/createIndex)\n */\n createIndex(name: string, keyPath: string | Iterable<string>, options?: IDBIndexParameters): IDBIndex;\n}\n\ninterface MessageEvent<T = any> {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/initMessageEvent)\n */\n initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: Iterable<MessagePort>): void;\n}\n\ninterface StylePropertyMapReadOnly {\n [Symbol.iterator](): IterableIterator<[string, Iterable<CSSStyleValue>]>;\n entries(): IterableIterator<[string, Iterable<CSSStyleValue>]>;\n keys(): IterableIterator<string>;\n values(): IterableIterator<Iterable<CSSStyleValue>>;\n}\n\ninterface SubtleCrypto {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveKey) */\n deriveKey(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/generateKey) */\n generateKey(algorithm: "Ed25519", extractable: boolean, keyUsages: ReadonlyArray<"sign" | "verify">): Promise<CryptoKeyPair>;\n generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;\n generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;\n generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKeyPair | CryptoKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/importKey) */\n importKey(format: "jwk", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;\n importKey(format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKey>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/unwrapKey) */\n unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: Iterable<KeyUsage>): Promise<CryptoKey>;\n}\n\ninterface URLSearchParams {\n [Symbol.iterator](): IterableIterator<[string, string]>;\n /** Returns an array of key, value pairs for every entry in the search params. */\n entries(): IterableIterator<[string, string]>;\n /** Returns a list of keys in the search params. */\n keys(): IterableIterator<string>;\n /** Returns a list of values in the search params. */\n values(): IterableIterator<string>;\n}\n\ninterface WEBGL_draw_buffers {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_draw_buffers/drawBuffersWEBGL) */\n drawBuffersWEBGL(buffers: Iterable<GLenum>): void;\n}\n\ninterface WEBGL_multi_draw {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysInstancedWEBGL) */\n multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | Iterable<GLint>, firstsOffset: number, countsList: Int32Array | Iterable<GLsizei>, countsOffset: number, instanceCountsList: Int32Array | Iterable<GLsizei>, instanceCountsOffset: number, drawcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysWEBGL) */\n multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | Iterable<GLint>, firstsOffset: number, countsList: Int32Array | Iterable<GLsizei>, countsOffset: number, drawcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsInstancedWEBGL) */\n multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | Iterable<GLsizei>, countsOffset: number, type: GLenum, offsetsList: Int32Array | Iterable<GLsizei>, offsetsOffset: number, instanceCountsList: Int32Array | Iterable<GLsizei>, instanceCountsOffset: number, drawcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsWEBGL) */\n multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | Iterable<GLsizei>, countsOffset: number, type: GLenum, offsetsList: Int32Array | Iterable<GLsizei>, offsetsOffset: number, drawcount: GLsizei): void;\n}\n\ninterface WebGL2RenderingContextBase {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLfloat>, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLint>, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */\n clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Iterable<GLuint>, srcOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawBuffers) */\n drawBuffers(buffers: Iterable<GLenum>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniforms) */\n getActiveUniforms(program: WebGLProgram, uniformIndices: Iterable<GLuint>, pname: GLenum): any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getUniformIndices) */\n getUniformIndices(program: WebGLProgram, uniformNames: Iterable<string>): Iterable<GLuint> | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateFramebuffer) */\n invalidateFramebuffer(target: GLenum, attachments: Iterable<GLenum>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateSubFramebuffer) */\n invalidateSubFramebuffer(target: GLenum, attachments: Iterable<GLenum>, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/transformFeedbackVaryings) */\n transformFeedbackVaryings(program: WebGLProgram, varyings: Iterable<string>, bufferMode: GLenum): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform1uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform2uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform3uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */\n uniform4uiv(location: WebGLUniformLocation | null, data: Iterable<GLuint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */\n uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4iv(index: GLuint, values: Iterable<GLint>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */\n vertexAttribI4uiv(index: GLuint, values: Iterable<GLuint>): void;\n}\n\ninterface WebGL2RenderingContextOverloads {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4fv(location: WebGLUniformLocation | null, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4iv(location: WebGLUniformLocation | null, data: Iterable<GLint>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Iterable<GLfloat>, srcOffset?: number, srcLength?: GLuint): void;\n}\n\ninterface WebGLRenderingContextBase {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib1fv(index: GLuint, values: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib2fv(index: GLuint, values: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib3fv(index: GLuint, values: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */\n vertexAttrib4fv(index: GLuint, values: Iterable<GLfloat>): void;\n}\n\ninterface WebGLRenderingContextOverloads {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform1iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform2iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform3iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4fv(location: WebGLUniformLocation | null, v: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */\n uniform4iv(location: WebGLUniformLocation | null, v: Iterable<GLint>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */\n uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Iterable<GLfloat>): void;\n}\n', +}; diff --git a/src/routes/ts-worker.ts b/src/routes/ts-worker.ts deleted file mode 100644 index 460885c..0000000 --- a/src/routes/ts-worker.ts +++ /dev/null @@ -1,11 +0,0 @@ -export default (async () => { - const contents = new TextDecoder().decode( - (await (await import('brotli-wasm')).default).decompress( - await fetch('./generated/ts-worker.js.br') - .then((v) => v.arrayBuffer()) - .then((v) => new Uint8Array(v)) - ) - ); - const worker = new Worker(`data:text/javascript;base64,${btoa(contents)}`); - return worker; -})(); |