githrun

A CLI tool to run Python scrip...
Log | Files | Refs | README | LICENSE

lib.dom.d.ts (1874901B)


      1 /*! *****************************************************************************
      2 Copyright (c) Microsoft Corporation. All rights reserved.
      3 Licensed under the Apache License, Version 2.0 (the "License"); you may not use
      4 this file except in compliance with the License. You may obtain a copy of the
      5 License at http://www.apache.org/licenses/LICENSE-2.0
      6 
      7 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
      8 KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
      9 WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
     10 MERCHANTABLITY OR NON-INFRINGEMENT.
     11 
     12 See the Apache Version 2.0 License for specific language governing permissions
     13 and limitations under the License.
     14 ***************************************************************************** */
     15 
     16 
     17 /// <reference no-default-lib="true"/>
     18 
     19 /////////////////////////////
     20 /// Window APIs
     21 /////////////////////////////
     22 
     23 interface AddEventListenerOptions extends EventListenerOptions {
     24     once?: boolean;
     25     passive?: boolean;
     26     signal?: AbortSignal;
     27 }
     28 
     29 interface AddressErrors {
     30     addressLine?: string;
     31     city?: string;
     32     country?: string;
     33     dependentLocality?: string;
     34     organization?: string;
     35     phone?: string;
     36     postalCode?: string;
     37     recipient?: string;
     38     region?: string;
     39     sortingCode?: string;
     40 }
     41 
     42 interface AesCbcParams extends Algorithm {
     43     iv: BufferSource;
     44 }
     45 
     46 interface AesCtrParams extends Algorithm {
     47     counter: BufferSource;
     48     length: number;
     49 }
     50 
     51 interface AesDerivedKeyParams extends Algorithm {
     52     length: number;
     53 }
     54 
     55 interface AesGcmParams extends Algorithm {
     56     additionalData?: BufferSource;
     57     iv: BufferSource;
     58     tagLength?: number;
     59 }
     60 
     61 interface AesKeyAlgorithm extends KeyAlgorithm {
     62     length: number;
     63 }
     64 
     65 interface AesKeyGenParams extends Algorithm {
     66     length: number;
     67 }
     68 
     69 interface Algorithm {
     70     name: string;
     71 }
     72 
     73 interface AnalyserOptions extends AudioNodeOptions {
     74     fftSize?: number;
     75     maxDecibels?: number;
     76     minDecibels?: number;
     77     smoothingTimeConstant?: number;
     78 }
     79 
     80 interface AnimationEventInit extends EventInit {
     81     animationName?: string;
     82     elapsedTime?: number;
     83     pseudoElement?: string;
     84 }
     85 
     86 interface AnimationPlaybackEventInit extends EventInit {
     87     currentTime?: CSSNumberish | null;
     88     timelineTime?: CSSNumberish | null;
     89 }
     90 
     91 interface AssignedNodesOptions {
     92     flatten?: boolean;
     93 }
     94 
     95 interface AudioBufferOptions {
     96     length: number;
     97     numberOfChannels?: number;
     98     sampleRate: number;
     99 }
    100 
    101 interface AudioBufferSourceOptions {
    102     buffer?: AudioBuffer | null;
    103     detune?: number;
    104     loop?: boolean;
    105     loopEnd?: number;
    106     loopStart?: number;
    107     playbackRate?: number;
    108 }
    109 
    110 interface AudioConfiguration {
    111     bitrate?: number;
    112     channels?: string;
    113     contentType: string;
    114     samplerate?: number;
    115     spatialRendering?: boolean;
    116 }
    117 
    118 interface AudioContextOptions {
    119     latencyHint?: AudioContextLatencyCategory | number;
    120     sampleRate?: number;
    121 }
    122 
    123 interface AudioDataCopyToOptions {
    124     format?: AudioSampleFormat;
    125     frameCount?: number;
    126     frameOffset?: number;
    127     planeIndex: number;
    128 }
    129 
    130 interface AudioDataInit {
    131     data: BufferSource;
    132     format: AudioSampleFormat;
    133     numberOfChannels: number;
    134     numberOfFrames: number;
    135     sampleRate: number;
    136     timestamp: number;
    137     transfer?: ArrayBuffer[];
    138 }
    139 
    140 interface AudioDecoderConfig {
    141     codec: string;
    142     description?: AllowSharedBufferSource;
    143     numberOfChannels: number;
    144     sampleRate: number;
    145 }
    146 
    147 interface AudioDecoderInit {
    148     error: WebCodecsErrorCallback;
    149     output: AudioDataOutputCallback;
    150 }
    151 
    152 interface AudioDecoderSupport {
    153     config?: AudioDecoderConfig;
    154     supported?: boolean;
    155 }
    156 
    157 interface AudioEncoderConfig {
    158     bitrate?: number;
    159     bitrateMode?: BitrateMode;
    160     codec: string;
    161     numberOfChannels: number;
    162     opus?: OpusEncoderConfig;
    163     sampleRate: number;
    164 }
    165 
    166 interface AudioEncoderInit {
    167     error: WebCodecsErrorCallback;
    168     output: EncodedAudioChunkOutputCallback;
    169 }
    170 
    171 interface AudioEncoderSupport {
    172     config?: AudioEncoderConfig;
    173     supported?: boolean;
    174 }
    175 
    176 interface AudioNodeOptions {
    177     channelCount?: number;
    178     channelCountMode?: ChannelCountMode;
    179     channelInterpretation?: ChannelInterpretation;
    180 }
    181 
    182 interface AudioProcessingEventInit extends EventInit {
    183     inputBuffer: AudioBuffer;
    184     outputBuffer: AudioBuffer;
    185     playbackTime: number;
    186 }
    187 
    188 interface AudioTimestamp {
    189     contextTime?: number;
    190     performanceTime?: DOMHighResTimeStamp;
    191 }
    192 
    193 interface AudioWorkletNodeOptions extends AudioNodeOptions {
    194     numberOfInputs?: number;
    195     numberOfOutputs?: number;
    196     outputChannelCount?: number[];
    197     parameterData?: Record<string, number>;
    198     processorOptions?: any;
    199 }
    200 
    201 interface AuthenticationExtensionsClientInputs {
    202     appid?: string;
    203     credProps?: boolean;
    204     credentialProtectionPolicy?: string;
    205     enforceCredentialProtectionPolicy?: boolean;
    206     hmacCreateSecret?: boolean;
    207     largeBlob?: AuthenticationExtensionsLargeBlobInputs;
    208     minPinLength?: boolean;
    209     prf?: AuthenticationExtensionsPRFInputs;
    210 }
    211 
    212 interface AuthenticationExtensionsClientInputsJSON {
    213     appid?: string;
    214     credProps?: boolean;
    215     largeBlob?: AuthenticationExtensionsLargeBlobInputsJSON;
    216     prf?: AuthenticationExtensionsPRFInputsJSON;
    217 }
    218 
    219 interface AuthenticationExtensionsClientOutputs {
    220     appid?: boolean;
    221     credProps?: CredentialPropertiesOutput;
    222     hmacCreateSecret?: boolean;
    223     largeBlob?: AuthenticationExtensionsLargeBlobOutputs;
    224     prf?: AuthenticationExtensionsPRFOutputs;
    225 }
    226 
    227 interface AuthenticationExtensionsLargeBlobInputs {
    228     read?: boolean;
    229     support?: string;
    230     write?: BufferSource;
    231 }
    232 
    233 interface AuthenticationExtensionsLargeBlobInputsJSON {
    234     read?: boolean;
    235     support?: string;
    236     write?: Base64URLString;
    237 }
    238 
    239 interface AuthenticationExtensionsLargeBlobOutputs {
    240     blob?: ArrayBuffer;
    241     supported?: boolean;
    242     written?: boolean;
    243 }
    244 
    245 interface AuthenticationExtensionsPRFInputs {
    246     eval?: AuthenticationExtensionsPRFValues;
    247     evalByCredential?: Record<string, AuthenticationExtensionsPRFValues>;
    248 }
    249 
    250 interface AuthenticationExtensionsPRFInputsJSON {
    251     eval?: AuthenticationExtensionsPRFValuesJSON;
    252     evalByCredential?: Record<string, AuthenticationExtensionsPRFValuesJSON>;
    253 }
    254 
    255 interface AuthenticationExtensionsPRFOutputs {
    256     enabled?: boolean;
    257     results?: AuthenticationExtensionsPRFValues;
    258 }
    259 
    260 interface AuthenticationExtensionsPRFValues {
    261     first: BufferSource;
    262     second?: BufferSource;
    263 }
    264 
    265 interface AuthenticationExtensionsPRFValuesJSON {
    266     first: Base64URLString;
    267     second?: Base64URLString;
    268 }
    269 
    270 interface AuthenticatorSelectionCriteria {
    271     authenticatorAttachment?: AuthenticatorAttachment;
    272     requireResidentKey?: boolean;
    273     residentKey?: ResidentKeyRequirement;
    274     userVerification?: UserVerificationRequirement;
    275 }
    276 
    277 interface AvcEncoderConfig {
    278     format?: AvcBitstreamFormat;
    279 }
    280 
    281 interface BiquadFilterOptions extends AudioNodeOptions {
    282     Q?: number;
    283     detune?: number;
    284     frequency?: number;
    285     gain?: number;
    286     type?: BiquadFilterType;
    287 }
    288 
    289 interface BlobEventInit extends EventInit {
    290     data: Blob;
    291     timecode?: DOMHighResTimeStamp;
    292 }
    293 
    294 interface BlobPropertyBag {
    295     endings?: EndingType;
    296     type?: string;
    297 }
    298 
    299 interface CSSMatrixComponentOptions {
    300     is2D?: boolean;
    301 }
    302 
    303 interface CSSNumericType {
    304     angle?: number;
    305     flex?: number;
    306     frequency?: number;
    307     length?: number;
    308     percent?: number;
    309     percentHint?: CSSNumericBaseType;
    310     resolution?: number;
    311     time?: number;
    312 }
    313 
    314 interface CSSStyleSheetInit {
    315     baseURL?: string;
    316     disabled?: boolean;
    317     media?: MediaList | string;
    318 }
    319 
    320 interface CacheQueryOptions {
    321     ignoreMethod?: boolean;
    322     ignoreSearch?: boolean;
    323     ignoreVary?: boolean;
    324 }
    325 
    326 interface CanvasRenderingContext2DSettings {
    327     alpha?: boolean;
    328     colorSpace?: PredefinedColorSpace;
    329     desynchronized?: boolean;
    330     willReadFrequently?: boolean;
    331 }
    332 
    333 interface CaretPositionFromPointOptions {
    334     shadowRoots?: ShadowRoot[];
    335 }
    336 
    337 interface ChannelMergerOptions extends AudioNodeOptions {
    338     numberOfInputs?: number;
    339 }
    340 
    341 interface ChannelSplitterOptions extends AudioNodeOptions {
    342     numberOfOutputs?: number;
    343 }
    344 
    345 interface CheckVisibilityOptions {
    346     checkOpacity?: boolean;
    347     checkVisibilityCSS?: boolean;
    348     contentVisibilityAuto?: boolean;
    349     opacityProperty?: boolean;
    350     visibilityProperty?: boolean;
    351 }
    352 
    353 interface ClientQueryOptions {
    354     includeUncontrolled?: boolean;
    355     type?: ClientTypes;
    356 }
    357 
    358 interface ClipboardEventInit extends EventInit {
    359     clipboardData?: DataTransfer | null;
    360 }
    361 
    362 interface ClipboardItemOptions {
    363     presentationStyle?: PresentationStyle;
    364 }
    365 
    366 interface CloseEventInit extends EventInit {
    367     code?: number;
    368     reason?: string;
    369     wasClean?: boolean;
    370 }
    371 
    372 interface CompositionEventInit extends UIEventInit {
    373     data?: string;
    374 }
    375 
    376 interface ComputedEffectTiming extends EffectTiming {
    377     activeDuration?: CSSNumberish;
    378     currentIteration?: number | null;
    379     endTime?: CSSNumberish;
    380     localTime?: CSSNumberish | null;
    381     progress?: number | null;
    382     startTime?: CSSNumberish;
    383 }
    384 
    385 interface ComputedKeyframe {
    386     composite: CompositeOperationOrAuto;
    387     computedOffset: number;
    388     easing: string;
    389     offset: number | null;
    390     [property: string]: string | number | null | undefined;
    391 }
    392 
    393 interface ConstantSourceOptions {
    394     offset?: number;
    395 }
    396 
    397 interface ConstrainBooleanParameters {
    398     exact?: boolean;
    399     ideal?: boolean;
    400 }
    401 
    402 interface ConstrainDOMStringParameters {
    403     exact?: string | string[];
    404     ideal?: string | string[];
    405 }
    406 
    407 interface ConstrainDoubleRange extends DoubleRange {
    408     exact?: number;
    409     ideal?: number;
    410 }
    411 
    412 interface ConstrainULongRange extends ULongRange {
    413     exact?: number;
    414     ideal?: number;
    415 }
    416 
    417 interface ContentVisibilityAutoStateChangeEventInit extends EventInit {
    418     skipped?: boolean;
    419 }
    420 
    421 interface ConvolverOptions extends AudioNodeOptions {
    422     buffer?: AudioBuffer | null;
    423     disableNormalization?: boolean;
    424 }
    425 
    426 interface CookieChangeEventInit extends EventInit {
    427     changed?: CookieList;
    428     deleted?: CookieList;
    429 }
    430 
    431 interface CookieInit {
    432     domain?: string | null;
    433     expires?: DOMHighResTimeStamp | null;
    434     name: string;
    435     partitioned?: boolean;
    436     path?: string;
    437     sameSite?: CookieSameSite;
    438     value: string;
    439 }
    440 
    441 interface CookieListItem {
    442     name?: string;
    443     value?: string;
    444 }
    445 
    446 interface CookieStoreDeleteOptions {
    447     domain?: string | null;
    448     name: string;
    449     partitioned?: boolean;
    450     path?: string;
    451 }
    452 
    453 interface CookieStoreGetOptions {
    454     name?: string;
    455     url?: string;
    456 }
    457 
    458 interface CredentialCreationOptions {
    459     publicKey?: PublicKeyCredentialCreationOptions;
    460     signal?: AbortSignal;
    461 }
    462 
    463 interface CredentialPropertiesOutput {
    464     rk?: boolean;
    465 }
    466 
    467 interface CredentialRequestOptions {
    468     mediation?: CredentialMediationRequirement;
    469     publicKey?: PublicKeyCredentialRequestOptions;
    470     signal?: AbortSignal;
    471 }
    472 
    473 interface CryptoKeyPair {
    474     privateKey: CryptoKey;
    475     publicKey: CryptoKey;
    476 }
    477 
    478 interface CustomEventInit<T = any> extends EventInit {
    479     detail?: T;
    480 }
    481 
    482 interface DOMMatrix2DInit {
    483     a?: number;
    484     b?: number;
    485     c?: number;
    486     d?: number;
    487     e?: number;
    488     f?: number;
    489     m11?: number;
    490     m12?: number;
    491     m21?: number;
    492     m22?: number;
    493     m41?: number;
    494     m42?: number;
    495 }
    496 
    497 interface DOMMatrixInit extends DOMMatrix2DInit {
    498     is2D?: boolean;
    499     m13?: number;
    500     m14?: number;
    501     m23?: number;
    502     m24?: number;
    503     m31?: number;
    504     m32?: number;
    505     m33?: number;
    506     m34?: number;
    507     m43?: number;
    508     m44?: number;
    509 }
    510 
    511 interface DOMPointInit {
    512     w?: number;
    513     x?: number;
    514     y?: number;
    515     z?: number;
    516 }
    517 
    518 interface DOMQuadInit {
    519     p1?: DOMPointInit;
    520     p2?: DOMPointInit;
    521     p3?: DOMPointInit;
    522     p4?: DOMPointInit;
    523 }
    524 
    525 interface DOMRectInit {
    526     height?: number;
    527     width?: number;
    528     x?: number;
    529     y?: number;
    530 }
    531 
    532 interface DelayOptions extends AudioNodeOptions {
    533     delayTime?: number;
    534     maxDelayTime?: number;
    535 }
    536 
    537 interface DeviceMotionEventAccelerationInit {
    538     x?: number | null;
    539     y?: number | null;
    540     z?: number | null;
    541 }
    542 
    543 interface DeviceMotionEventInit extends EventInit {
    544     acceleration?: DeviceMotionEventAccelerationInit;
    545     accelerationIncludingGravity?: DeviceMotionEventAccelerationInit;
    546     interval?: number;
    547     rotationRate?: DeviceMotionEventRotationRateInit;
    548 }
    549 
    550 interface DeviceMotionEventRotationRateInit {
    551     alpha?: number | null;
    552     beta?: number | null;
    553     gamma?: number | null;
    554 }
    555 
    556 interface DeviceOrientationEventInit extends EventInit {
    557     absolute?: boolean;
    558     alpha?: number | null;
    559     beta?: number | null;
    560     gamma?: number | null;
    561 }
    562 
    563 interface DisplayMediaStreamOptions {
    564     audio?: boolean | MediaTrackConstraints;
    565     video?: boolean | MediaTrackConstraints;
    566 }
    567 
    568 interface DocumentTimelineOptions {
    569     originTime?: DOMHighResTimeStamp;
    570 }
    571 
    572 interface DoubleRange {
    573     max?: number;
    574     min?: number;
    575 }
    576 
    577 interface DragEventInit extends MouseEventInit {
    578     dataTransfer?: DataTransfer | null;
    579 }
    580 
    581 interface DynamicsCompressorOptions extends AudioNodeOptions {
    582     attack?: number;
    583     knee?: number;
    584     ratio?: number;
    585     release?: number;
    586     threshold?: number;
    587 }
    588 
    589 interface EcKeyAlgorithm extends KeyAlgorithm {
    590     namedCurve: NamedCurve;
    591 }
    592 
    593 interface EcKeyGenParams extends Algorithm {
    594     namedCurve: NamedCurve;
    595 }
    596 
    597 interface EcKeyImportParams extends Algorithm {
    598     namedCurve: NamedCurve;
    599 }
    600 
    601 interface EcdhKeyDeriveParams extends Algorithm {
    602     public: CryptoKey;
    603 }
    604 
    605 interface EcdsaParams extends Algorithm {
    606     hash: HashAlgorithmIdentifier;
    607 }
    608 
    609 interface EffectTiming {
    610     delay?: number;
    611     direction?: PlaybackDirection;
    612     duration?: number | CSSNumericValue | string;
    613     easing?: string;
    614     endDelay?: number;
    615     fill?: FillMode;
    616     iterationStart?: number;
    617     iterations?: number;
    618     playbackRate?: number;
    619 }
    620 
    621 interface ElementCreationOptions {
    622     customElementRegistry?: CustomElementRegistry;
    623     is?: string;
    624 }
    625 
    626 interface ElementDefinitionOptions {
    627     extends?: string;
    628 }
    629 
    630 interface EncodedAudioChunkInit {
    631     data: AllowSharedBufferSource;
    632     duration?: number;
    633     timestamp: number;
    634     transfer?: ArrayBuffer[];
    635     type: EncodedAudioChunkType;
    636 }
    637 
    638 interface EncodedAudioChunkMetadata {
    639     decoderConfig?: AudioDecoderConfig;
    640 }
    641 
    642 interface EncodedVideoChunkInit {
    643     data: AllowSharedBufferSource;
    644     duration?: number;
    645     timestamp: number;
    646     type: EncodedVideoChunkType;
    647 }
    648 
    649 interface EncodedVideoChunkMetadata {
    650     decoderConfig?: VideoDecoderConfig;
    651 }
    652 
    653 interface ErrorEventInit extends EventInit {
    654     colno?: number;
    655     error?: any;
    656     filename?: string;
    657     lineno?: number;
    658     message?: string;
    659 }
    660 
    661 interface EventInit {
    662     bubbles?: boolean;
    663     cancelable?: boolean;
    664     composed?: boolean;
    665 }
    666 
    667 interface EventListenerOptions {
    668     capture?: boolean;
    669 }
    670 
    671 interface EventModifierInit extends UIEventInit {
    672     altKey?: boolean;
    673     ctrlKey?: boolean;
    674     metaKey?: boolean;
    675     modifierAltGraph?: boolean;
    676     modifierCapsLock?: boolean;
    677     modifierFn?: boolean;
    678     modifierFnLock?: boolean;
    679     modifierHyper?: boolean;
    680     modifierNumLock?: boolean;
    681     modifierScrollLock?: boolean;
    682     modifierSuper?: boolean;
    683     modifierSymbol?: boolean;
    684     modifierSymbolLock?: boolean;
    685     shiftKey?: boolean;
    686 }
    687 
    688 interface EventSourceInit {
    689     withCredentials?: boolean;
    690 }
    691 
    692 interface FilePropertyBag extends BlobPropertyBag {
    693     lastModified?: number;
    694 }
    695 
    696 interface FileSystemCreateWritableOptions {
    697     keepExistingData?: boolean;
    698 }
    699 
    700 interface FileSystemFlags {
    701     create?: boolean;
    702     exclusive?: boolean;
    703 }
    704 
    705 interface FileSystemGetDirectoryOptions {
    706     create?: boolean;
    707 }
    708 
    709 interface FileSystemGetFileOptions {
    710     create?: boolean;
    711 }
    712 
    713 interface FileSystemRemoveOptions {
    714     recursive?: boolean;
    715 }
    716 
    717 interface FocusEventInit extends UIEventInit {
    718     relatedTarget?: EventTarget | null;
    719 }
    720 
    721 interface FocusOptions {
    722     preventScroll?: boolean;
    723 }
    724 
    725 interface FontFaceDescriptors {
    726     ascentOverride?: string;
    727     descentOverride?: string;
    728     display?: FontDisplay;
    729     featureSettings?: string;
    730     lineGapOverride?: string;
    731     stretch?: string;
    732     style?: string;
    733     unicodeRange?: string;
    734     weight?: string;
    735 }
    736 
    737 interface FontFaceSetLoadEventInit extends EventInit {
    738     fontfaces?: FontFace[];
    739 }
    740 
    741 interface FormDataEventInit extends EventInit {
    742     formData: FormData;
    743 }
    744 
    745 interface FullscreenOptions {
    746     navigationUI?: FullscreenNavigationUI;
    747 }
    748 
    749 interface GainOptions extends AudioNodeOptions {
    750     gain?: number;
    751 }
    752 
    753 interface GamepadEffectParameters {
    754     duration?: number;
    755     leftTrigger?: number;
    756     rightTrigger?: number;
    757     startDelay?: number;
    758     strongMagnitude?: number;
    759     weakMagnitude?: number;
    760 }
    761 
    762 interface GamepadEventInit extends EventInit {
    763     gamepad: Gamepad;
    764 }
    765 
    766 interface GetAnimationsOptions {
    767     subtree?: boolean;
    768 }
    769 
    770 interface GetComposedRangesOptions {
    771     shadowRoots?: ShadowRoot[];
    772 }
    773 
    774 interface GetHTMLOptions {
    775     serializableShadowRoots?: boolean;
    776     shadowRoots?: ShadowRoot[];
    777 }
    778 
    779 interface GetNotificationOptions {
    780     tag?: string;
    781 }
    782 
    783 interface GetRootNodeOptions {
    784     composed?: boolean;
    785 }
    786 
    787 interface HashChangeEventInit extends EventInit {
    788     newURL?: string;
    789     oldURL?: string;
    790 }
    791 
    792 interface HkdfParams extends Algorithm {
    793     hash: HashAlgorithmIdentifier;
    794     info: BufferSource;
    795     salt: BufferSource;
    796 }
    797 
    798 interface HmacImportParams extends Algorithm {
    799     hash: HashAlgorithmIdentifier;
    800     length?: number;
    801 }
    802 
    803 interface HmacKeyAlgorithm extends KeyAlgorithm {
    804     hash: KeyAlgorithm;
    805     length: number;
    806 }
    807 
    808 interface HmacKeyGenParams extends Algorithm {
    809     hash: HashAlgorithmIdentifier;
    810     length?: number;
    811 }
    812 
    813 interface IDBDatabaseInfo {
    814     name?: string;
    815     version?: number;
    816 }
    817 
    818 interface IDBIndexParameters {
    819     multiEntry?: boolean;
    820     unique?: boolean;
    821 }
    822 
    823 interface IDBObjectStoreParameters {
    824     autoIncrement?: boolean;
    825     keyPath?: string | string[] | null;
    826 }
    827 
    828 interface IDBTransactionOptions {
    829     durability?: IDBTransactionDurability;
    830 }
    831 
    832 interface IDBVersionChangeEventInit extends EventInit {
    833     newVersion?: number | null;
    834     oldVersion?: number;
    835 }
    836 
    837 interface IIRFilterOptions extends AudioNodeOptions {
    838     feedback: number[];
    839     feedforward: number[];
    840 }
    841 
    842 interface IdleRequestOptions {
    843     timeout?: number;
    844 }
    845 
    846 interface ImageBitmapOptions {
    847     colorSpaceConversion?: ColorSpaceConversion;
    848     imageOrientation?: ImageOrientation;
    849     premultiplyAlpha?: PremultiplyAlpha;
    850     resizeHeight?: number;
    851     resizeQuality?: ResizeQuality;
    852     resizeWidth?: number;
    853 }
    854 
    855 interface ImageBitmapRenderingContextSettings {
    856     alpha?: boolean;
    857 }
    858 
    859 interface ImageDataSettings {
    860     colorSpace?: PredefinedColorSpace;
    861 }
    862 
    863 interface ImageDecodeOptions {
    864     completeFramesOnly?: boolean;
    865     frameIndex?: number;
    866 }
    867 
    868 interface ImageDecodeResult {
    869     complete: boolean;
    870     image: VideoFrame;
    871 }
    872 
    873 interface ImageDecoderInit {
    874     colorSpaceConversion?: ColorSpaceConversion;
    875     data: ImageBufferSource;
    876     desiredHeight?: number;
    877     desiredWidth?: number;
    878     preferAnimation?: boolean;
    879     transfer?: ArrayBuffer[];
    880     type: string;
    881 }
    882 
    883 interface ImageEncodeOptions {
    884     quality?: number;
    885     type?: string;
    886 }
    887 
    888 interface ImportNodeOptions {
    889     customElementRegistry?: CustomElementRegistry;
    890     selfOnly?: boolean;
    891 }
    892 
    893 interface InputEventInit extends UIEventInit {
    894     data?: string | null;
    895     dataTransfer?: DataTransfer | null;
    896     inputType?: string;
    897     isComposing?: boolean;
    898     targetRanges?: StaticRange[];
    899 }
    900 
    901 interface IntersectionObserverInit {
    902     root?: Element | Document | null;
    903     rootMargin?: string;
    904     threshold?: number | number[];
    905 }
    906 
    907 interface JsonWebKey {
    908     alg?: string;
    909     crv?: string;
    910     d?: string;
    911     dp?: string;
    912     dq?: string;
    913     e?: string;
    914     ext?: boolean;
    915     k?: string;
    916     key_ops?: string[];
    917     kty?: string;
    918     n?: string;
    919     oth?: RsaOtherPrimesInfo[];
    920     p?: string;
    921     q?: string;
    922     qi?: string;
    923     use?: string;
    924     x?: string;
    925     y?: string;
    926 }
    927 
    928 interface KeyAlgorithm {
    929     name: string;
    930 }
    931 
    932 interface KeySystemTrackConfiguration {
    933     robustness?: string;
    934 }
    935 
    936 interface KeyboardEventInit extends EventModifierInit {
    937     /** @deprecated */
    938     charCode?: number;
    939     code?: string;
    940     isComposing?: boolean;
    941     key?: string;
    942     /** @deprecated */
    943     keyCode?: number;
    944     location?: number;
    945     repeat?: boolean;
    946 }
    947 
    948 interface Keyframe {
    949     composite?: CompositeOperationOrAuto;
    950     easing?: string;
    951     offset?: number | null;
    952     [property: string]: string | number | null | undefined;
    953 }
    954 
    955 interface KeyframeAnimationOptions extends KeyframeEffectOptions {
    956     id?: string;
    957     timeline?: AnimationTimeline | null;
    958 }
    959 
    960 interface KeyframeEffectOptions extends EffectTiming {
    961     composite?: CompositeOperation;
    962     iterationComposite?: IterationCompositeOperation;
    963     pseudoElement?: string | null;
    964 }
    965 
    966 interface LockInfo {
    967     clientId?: string;
    968     mode?: LockMode;
    969     name?: string;
    970 }
    971 
    972 interface LockManagerSnapshot {
    973     held?: LockInfo[];
    974     pending?: LockInfo[];
    975 }
    976 
    977 interface LockOptions {
    978     ifAvailable?: boolean;
    979     mode?: LockMode;
    980     signal?: AbortSignal;
    981     steal?: boolean;
    982 }
    983 
    984 interface MIDIConnectionEventInit extends EventInit {
    985     port?: MIDIPort;
    986 }
    987 
    988 interface MIDIMessageEventInit extends EventInit {
    989     data?: Uint8Array<ArrayBuffer>;
    990 }
    991 
    992 interface MIDIOptions {
    993     software?: boolean;
    994     sysex?: boolean;
    995 }
    996 
    997 interface MediaCapabilitiesDecodingInfo extends MediaCapabilitiesInfo {
    998     keySystemAccess: MediaKeySystemAccess | null;
    999 }
   1000 
   1001 interface MediaCapabilitiesEncodingInfo extends MediaCapabilitiesInfo {
   1002 }
   1003 
   1004 interface MediaCapabilitiesInfo {
   1005     powerEfficient: boolean;
   1006     smooth: boolean;
   1007     supported: boolean;
   1008 }
   1009 
   1010 interface MediaCapabilitiesKeySystemConfiguration {
   1011     audio?: KeySystemTrackConfiguration;
   1012     distinctiveIdentifier?: MediaKeysRequirement;
   1013     initDataType?: string;
   1014     keySystem: string;
   1015     persistentState?: MediaKeysRequirement;
   1016     sessionTypes?: string[];
   1017     video?: KeySystemTrackConfiguration;
   1018 }
   1019 
   1020 interface MediaConfiguration {
   1021     audio?: AudioConfiguration;
   1022     video?: VideoConfiguration;
   1023 }
   1024 
   1025 interface MediaDecodingConfiguration extends MediaConfiguration {
   1026     keySystemConfiguration?: MediaCapabilitiesKeySystemConfiguration;
   1027     type: MediaDecodingType;
   1028 }
   1029 
   1030 interface MediaElementAudioSourceOptions {
   1031     mediaElement: HTMLMediaElement;
   1032 }
   1033 
   1034 interface MediaEncodingConfiguration extends MediaConfiguration {
   1035     type: MediaEncodingType;
   1036 }
   1037 
   1038 interface MediaEncryptedEventInit extends EventInit {
   1039     initData?: ArrayBuffer | null;
   1040     initDataType?: string;
   1041 }
   1042 
   1043 interface MediaImage {
   1044     sizes?: string;
   1045     src: string;
   1046     type?: string;
   1047 }
   1048 
   1049 interface MediaKeyMessageEventInit extends EventInit {
   1050     message: ArrayBuffer;
   1051     messageType: MediaKeyMessageType;
   1052 }
   1053 
   1054 interface MediaKeySystemConfiguration {
   1055     audioCapabilities?: MediaKeySystemMediaCapability[];
   1056     distinctiveIdentifier?: MediaKeysRequirement;
   1057     initDataTypes?: string[];
   1058     label?: string;
   1059     persistentState?: MediaKeysRequirement;
   1060     sessionTypes?: string[];
   1061     videoCapabilities?: MediaKeySystemMediaCapability[];
   1062 }
   1063 
   1064 interface MediaKeySystemMediaCapability {
   1065     contentType?: string;
   1066     encryptionScheme?: string | null;
   1067     robustness?: string;
   1068 }
   1069 
   1070 interface MediaKeysPolicy {
   1071     minHdcpVersion?: string;
   1072 }
   1073 
   1074 interface MediaMetadataInit {
   1075     album?: string;
   1076     artist?: string;
   1077     artwork?: MediaImage[];
   1078     title?: string;
   1079 }
   1080 
   1081 interface MediaPositionState {
   1082     duration?: number;
   1083     playbackRate?: number;
   1084     position?: number;
   1085 }
   1086 
   1087 interface MediaQueryListEventInit extends EventInit {
   1088     matches?: boolean;
   1089     media?: string;
   1090 }
   1091 
   1092 interface MediaRecorderOptions {
   1093     audioBitsPerSecond?: number;
   1094     bitsPerSecond?: number;
   1095     mimeType?: string;
   1096     videoBitsPerSecond?: number;
   1097 }
   1098 
   1099 interface MediaSessionActionDetails {
   1100     action: MediaSessionAction;
   1101     fastSeek?: boolean;
   1102     seekOffset?: number;
   1103     seekTime?: number;
   1104 }
   1105 
   1106 interface MediaSettingsRange {
   1107     max?: number;
   1108     min?: number;
   1109     step?: number;
   1110 }
   1111 
   1112 interface MediaStreamAudioSourceOptions {
   1113     mediaStream: MediaStream;
   1114 }
   1115 
   1116 interface MediaStreamConstraints {
   1117     audio?: boolean | MediaTrackConstraints;
   1118     peerIdentity?: string;
   1119     preferCurrentTab?: boolean;
   1120     video?: boolean | MediaTrackConstraints;
   1121 }
   1122 
   1123 interface MediaStreamTrackEventInit extends EventInit {
   1124     track: MediaStreamTrack;
   1125 }
   1126 
   1127 interface MediaTrackCapabilities {
   1128     aspectRatio?: DoubleRange;
   1129     autoGainControl?: boolean[];
   1130     backgroundBlur?: boolean[];
   1131     channelCount?: ULongRange;
   1132     deviceId?: string;
   1133     displaySurface?: string;
   1134     echoCancellation?: boolean[];
   1135     facingMode?: string[];
   1136     frameRate?: DoubleRange;
   1137     groupId?: string;
   1138     height?: ULongRange;
   1139     noiseSuppression?: boolean[];
   1140     sampleRate?: ULongRange;
   1141     sampleSize?: ULongRange;
   1142     width?: ULongRange;
   1143 }
   1144 
   1145 interface MediaTrackConstraintSet {
   1146     aspectRatio?: ConstrainDouble;
   1147     autoGainControl?: ConstrainBoolean;
   1148     backgroundBlur?: ConstrainBoolean;
   1149     channelCount?: ConstrainULong;
   1150     deviceId?: ConstrainDOMString;
   1151     displaySurface?: ConstrainDOMString;
   1152     echoCancellation?: ConstrainBoolean;
   1153     facingMode?: ConstrainDOMString;
   1154     frameRate?: ConstrainDouble;
   1155     groupId?: ConstrainDOMString;
   1156     height?: ConstrainULong;
   1157     noiseSuppression?: ConstrainBoolean;
   1158     sampleRate?: ConstrainULong;
   1159     sampleSize?: ConstrainULong;
   1160     width?: ConstrainULong;
   1161 }
   1162 
   1163 interface MediaTrackConstraints extends MediaTrackConstraintSet {
   1164     advanced?: MediaTrackConstraintSet[];
   1165 }
   1166 
   1167 interface MediaTrackSettings {
   1168     aspectRatio?: number;
   1169     autoGainControl?: boolean;
   1170     backgroundBlur?: boolean;
   1171     channelCount?: number;
   1172     deviceId?: string;
   1173     displaySurface?: string;
   1174     echoCancellation?: boolean;
   1175     facingMode?: string;
   1176     frameRate?: number;
   1177     groupId?: string;
   1178     height?: number;
   1179     noiseSuppression?: boolean;
   1180     sampleRate?: number;
   1181     sampleSize?: number;
   1182     torch?: boolean;
   1183     whiteBalanceMode?: string;
   1184     width?: number;
   1185     zoom?: number;
   1186 }
   1187 
   1188 interface MediaTrackSupportedConstraints {
   1189     aspectRatio?: boolean;
   1190     autoGainControl?: boolean;
   1191     backgroundBlur?: boolean;
   1192     channelCount?: boolean;
   1193     deviceId?: boolean;
   1194     displaySurface?: boolean;
   1195     echoCancellation?: boolean;
   1196     facingMode?: boolean;
   1197     frameRate?: boolean;
   1198     groupId?: boolean;
   1199     height?: boolean;
   1200     noiseSuppression?: boolean;
   1201     sampleRate?: boolean;
   1202     sampleSize?: boolean;
   1203     width?: boolean;
   1204 }
   1205 
   1206 interface MessageEventInit<T = any> extends EventInit {
   1207     data?: T;
   1208     lastEventId?: string;
   1209     origin?: string;
   1210     ports?: MessagePort[];
   1211     source?: MessageEventSource | null;
   1212 }
   1213 
   1214 interface MouseEventInit extends EventModifierInit {
   1215     button?: number;
   1216     buttons?: number;
   1217     clientX?: number;
   1218     clientY?: number;
   1219     movementX?: number;
   1220     movementY?: number;
   1221     relatedTarget?: EventTarget | null;
   1222     screenX?: number;
   1223     screenY?: number;
   1224 }
   1225 
   1226 interface MultiCacheQueryOptions extends CacheQueryOptions {
   1227     cacheName?: string;
   1228 }
   1229 
   1230 interface MutationObserverInit {
   1231     /** 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. */
   1232     attributeFilter?: string[];
   1233     /** Set to true if attributes is true or omitted and target's attribute value before the mutation needs to be recorded. */
   1234     attributeOldValue?: boolean;
   1235     /** Set to true if mutations to target's attributes are to be observed. Can be omitted if attributeOldValue or attributeFilter is specified. */
   1236     attributes?: boolean;
   1237     /** Set to true if mutations to target's data are to be observed. Can be omitted if characterDataOldValue is specified. */
   1238     characterData?: boolean;
   1239     /** Set to true if characterData is set to true or omitted and target's data before the mutation needs to be recorded. */
   1240     characterDataOldValue?: boolean;
   1241     /** Set to true if mutations to target's children are to be observed. */
   1242     childList?: boolean;
   1243     /** Set to true if mutations to not just target, but also target's descendants are to be observed. */
   1244     subtree?: boolean;
   1245 }
   1246 
   1247 interface NavigationPreloadState {
   1248     enabled?: boolean;
   1249     headerValue?: string;
   1250 }
   1251 
   1252 interface NotificationOptions {
   1253     badge?: string;
   1254     body?: string;
   1255     data?: any;
   1256     dir?: NotificationDirection;
   1257     icon?: string;
   1258     lang?: string;
   1259     requireInteraction?: boolean;
   1260     silent?: boolean | null;
   1261     tag?: string;
   1262 }
   1263 
   1264 interface OfflineAudioCompletionEventInit extends EventInit {
   1265     renderedBuffer: AudioBuffer;
   1266 }
   1267 
   1268 interface OfflineAudioContextOptions {
   1269     length: number;
   1270     numberOfChannels?: number;
   1271     sampleRate: number;
   1272 }
   1273 
   1274 interface OptionalEffectTiming {
   1275     delay?: number;
   1276     direction?: PlaybackDirection;
   1277     duration?: number | string;
   1278     easing?: string;
   1279     endDelay?: number;
   1280     fill?: FillMode;
   1281     iterationStart?: number;
   1282     iterations?: number;
   1283     playbackRate?: number;
   1284 }
   1285 
   1286 interface OpusEncoderConfig {
   1287     complexity?: number;
   1288     format?: OpusBitstreamFormat;
   1289     frameDuration?: number;
   1290     packetlossperc?: number;
   1291     usedtx?: boolean;
   1292     useinbandfec?: boolean;
   1293 }
   1294 
   1295 interface OscillatorOptions extends AudioNodeOptions {
   1296     detune?: number;
   1297     frequency?: number;
   1298     periodicWave?: PeriodicWave;
   1299     type?: OscillatorType;
   1300 }
   1301 
   1302 interface PageRevealEventInit extends EventInit {
   1303     viewTransition?: ViewTransition | null;
   1304 }
   1305 
   1306 interface PageSwapEventInit extends EventInit {
   1307     activation?: NavigationActivation | null;
   1308     viewTransition?: ViewTransition | null;
   1309 }
   1310 
   1311 interface PageTransitionEventInit extends EventInit {
   1312     persisted?: boolean;
   1313 }
   1314 
   1315 interface PannerOptions extends AudioNodeOptions {
   1316     coneInnerAngle?: number;
   1317     coneOuterAngle?: number;
   1318     coneOuterGain?: number;
   1319     distanceModel?: DistanceModelType;
   1320     maxDistance?: number;
   1321     orientationX?: number;
   1322     orientationY?: number;
   1323     orientationZ?: number;
   1324     panningModel?: PanningModelType;
   1325     positionX?: number;
   1326     positionY?: number;
   1327     positionZ?: number;
   1328     refDistance?: number;
   1329     rolloffFactor?: number;
   1330 }
   1331 
   1332 interface PayerErrors {
   1333     email?: string;
   1334     name?: string;
   1335     phone?: string;
   1336 }
   1337 
   1338 interface PaymentCurrencyAmount {
   1339     currency: string;
   1340     value: string;
   1341 }
   1342 
   1343 interface PaymentDetailsBase {
   1344     displayItems?: PaymentItem[];
   1345     modifiers?: PaymentDetailsModifier[];
   1346     shippingOptions?: PaymentShippingOption[];
   1347 }
   1348 
   1349 interface PaymentDetailsInit extends PaymentDetailsBase {
   1350     id?: string;
   1351     total: PaymentItem;
   1352 }
   1353 
   1354 interface PaymentDetailsModifier {
   1355     additionalDisplayItems?: PaymentItem[];
   1356     data?: any;
   1357     supportedMethods: string;
   1358     total?: PaymentItem;
   1359 }
   1360 
   1361 interface PaymentDetailsUpdate extends PaymentDetailsBase {
   1362     error?: string;
   1363     paymentMethodErrors?: any;
   1364     shippingAddressErrors?: AddressErrors;
   1365     total?: PaymentItem;
   1366 }
   1367 
   1368 interface PaymentItem {
   1369     amount: PaymentCurrencyAmount;
   1370     label: string;
   1371     pending?: boolean;
   1372 }
   1373 
   1374 interface PaymentMethodChangeEventInit extends PaymentRequestUpdateEventInit {
   1375     methodDetails?: any;
   1376     methodName?: string;
   1377 }
   1378 
   1379 interface PaymentMethodData {
   1380     data?: any;
   1381     supportedMethods: string;
   1382 }
   1383 
   1384 interface PaymentOptions {
   1385     requestPayerEmail?: boolean;
   1386     requestPayerName?: boolean;
   1387     requestPayerPhone?: boolean;
   1388     requestShipping?: boolean;
   1389     shippingType?: PaymentShippingType;
   1390 }
   1391 
   1392 interface PaymentRequestUpdateEventInit extends EventInit {
   1393 }
   1394 
   1395 interface PaymentShippingOption {
   1396     amount: PaymentCurrencyAmount;
   1397     id: string;
   1398     label: string;
   1399     selected?: boolean;
   1400 }
   1401 
   1402 interface PaymentValidationErrors {
   1403     error?: string;
   1404     payer?: PayerErrors;
   1405     shippingAddress?: AddressErrors;
   1406 }
   1407 
   1408 interface Pbkdf2Params extends Algorithm {
   1409     hash: HashAlgorithmIdentifier;
   1410     iterations: number;
   1411     salt: BufferSource;
   1412 }
   1413 
   1414 interface PerformanceMarkOptions {
   1415     detail?: any;
   1416     startTime?: DOMHighResTimeStamp;
   1417 }
   1418 
   1419 interface PerformanceMeasureOptions {
   1420     detail?: any;
   1421     duration?: DOMHighResTimeStamp;
   1422     end?: string | DOMHighResTimeStamp;
   1423     start?: string | DOMHighResTimeStamp;
   1424 }
   1425 
   1426 interface PerformanceObserverInit {
   1427     buffered?: boolean;
   1428     entryTypes?: string[];
   1429     type?: string;
   1430 }
   1431 
   1432 interface PeriodicWaveConstraints {
   1433     disableNormalization?: boolean;
   1434 }
   1435 
   1436 interface PeriodicWaveOptions extends PeriodicWaveConstraints {
   1437     imag?: number[] | Float32Array;
   1438     real?: number[] | Float32Array;
   1439 }
   1440 
   1441 interface PermissionDescriptor {
   1442     name: PermissionName;
   1443 }
   1444 
   1445 interface PhotoCapabilities {
   1446     fillLightMode?: FillLightMode[];
   1447     imageHeight?: MediaSettingsRange;
   1448     imageWidth?: MediaSettingsRange;
   1449     redEyeReduction?: RedEyeReduction;
   1450 }
   1451 
   1452 interface PhotoSettings {
   1453     fillLightMode?: FillLightMode;
   1454     imageHeight?: number;
   1455     imageWidth?: number;
   1456     redEyeReduction?: boolean;
   1457 }
   1458 
   1459 interface PictureInPictureEventInit extends EventInit {
   1460     pictureInPictureWindow: PictureInPictureWindow;
   1461 }
   1462 
   1463 interface PlaneLayout {
   1464     offset: number;
   1465     stride: number;
   1466 }
   1467 
   1468 interface PointerEventInit extends MouseEventInit {
   1469     altitudeAngle?: number;
   1470     azimuthAngle?: number;
   1471     coalescedEvents?: PointerEvent[];
   1472     height?: number;
   1473     isPrimary?: boolean;
   1474     pointerId?: number;
   1475     pointerType?: string;
   1476     predictedEvents?: PointerEvent[];
   1477     pressure?: number;
   1478     tangentialPressure?: number;
   1479     tiltX?: number;
   1480     tiltY?: number;
   1481     twist?: number;
   1482     width?: number;
   1483 }
   1484 
   1485 interface PointerLockOptions {
   1486     unadjustedMovement?: boolean;
   1487 }
   1488 
   1489 interface PopStateEventInit extends EventInit {
   1490     state?: any;
   1491 }
   1492 
   1493 interface PositionOptions {
   1494     enableHighAccuracy?: boolean;
   1495     maximumAge?: number;
   1496     timeout?: number;
   1497 }
   1498 
   1499 interface ProgressEventInit extends EventInit {
   1500     lengthComputable?: boolean;
   1501     loaded?: number;
   1502     total?: number;
   1503 }
   1504 
   1505 interface PromiseRejectionEventInit extends EventInit {
   1506     promise: Promise<any>;
   1507     reason?: any;
   1508 }
   1509 
   1510 interface PropertyDefinition {
   1511     inherits: boolean;
   1512     initialValue?: string;
   1513     name: string;
   1514     syntax?: string;
   1515 }
   1516 
   1517 interface PropertyIndexedKeyframes {
   1518     composite?: CompositeOperationOrAuto | CompositeOperationOrAuto[];
   1519     easing?: string | string[];
   1520     offset?: number | (number | null)[];
   1521     [property: string]: string | string[] | number | null | (number | null)[] | undefined;
   1522 }
   1523 
   1524 interface PublicKeyCredentialCreationOptions {
   1525     attestation?: AttestationConveyancePreference;
   1526     authenticatorSelection?: AuthenticatorSelectionCriteria;
   1527     challenge: BufferSource;
   1528     excludeCredentials?: PublicKeyCredentialDescriptor[];
   1529     extensions?: AuthenticationExtensionsClientInputs;
   1530     pubKeyCredParams: PublicKeyCredentialParameters[];
   1531     rp: PublicKeyCredentialRpEntity;
   1532     timeout?: number;
   1533     user: PublicKeyCredentialUserEntity;
   1534 }
   1535 
   1536 interface PublicKeyCredentialCreationOptionsJSON {
   1537     attestation?: string;
   1538     authenticatorSelection?: AuthenticatorSelectionCriteria;
   1539     challenge: Base64URLString;
   1540     excludeCredentials?: PublicKeyCredentialDescriptorJSON[];
   1541     extensions?: AuthenticationExtensionsClientInputsJSON;
   1542     hints?: string[];
   1543     pubKeyCredParams: PublicKeyCredentialParameters[];
   1544     rp: PublicKeyCredentialRpEntity;
   1545     timeout?: number;
   1546     user: PublicKeyCredentialUserEntityJSON;
   1547 }
   1548 
   1549 interface PublicKeyCredentialDescriptor {
   1550     id: BufferSource;
   1551     transports?: AuthenticatorTransport[];
   1552     type: PublicKeyCredentialType;
   1553 }
   1554 
   1555 interface PublicKeyCredentialDescriptorJSON {
   1556     id: Base64URLString;
   1557     transports?: string[];
   1558     type: string;
   1559 }
   1560 
   1561 interface PublicKeyCredentialEntity {
   1562     name: string;
   1563 }
   1564 
   1565 interface PublicKeyCredentialParameters {
   1566     alg: COSEAlgorithmIdentifier;
   1567     type: PublicKeyCredentialType;
   1568 }
   1569 
   1570 interface PublicKeyCredentialRequestOptions {
   1571     allowCredentials?: PublicKeyCredentialDescriptor[];
   1572     challenge: BufferSource;
   1573     extensions?: AuthenticationExtensionsClientInputs;
   1574     rpId?: string;
   1575     timeout?: number;
   1576     userVerification?: UserVerificationRequirement;
   1577 }
   1578 
   1579 interface PublicKeyCredentialRequestOptionsJSON {
   1580     allowCredentials?: PublicKeyCredentialDescriptorJSON[];
   1581     challenge: Base64URLString;
   1582     extensions?: AuthenticationExtensionsClientInputsJSON;
   1583     hints?: string[];
   1584     rpId?: string;
   1585     timeout?: number;
   1586     userVerification?: string;
   1587 }
   1588 
   1589 interface PublicKeyCredentialRpEntity extends PublicKeyCredentialEntity {
   1590     id?: string;
   1591 }
   1592 
   1593 interface PublicKeyCredentialUserEntity extends PublicKeyCredentialEntity {
   1594     displayName: string;
   1595     id: BufferSource;
   1596 }
   1597 
   1598 interface PublicKeyCredentialUserEntityJSON {
   1599     displayName: string;
   1600     id: Base64URLString;
   1601     name: string;
   1602 }
   1603 
   1604 interface PushSubscriptionJSON {
   1605     endpoint?: string;
   1606     expirationTime?: EpochTimeStamp | null;
   1607     keys?: Record<string, string>;
   1608 }
   1609 
   1610 interface PushSubscriptionOptionsInit {
   1611     applicationServerKey?: BufferSource | string | null;
   1612     userVisibleOnly?: boolean;
   1613 }
   1614 
   1615 interface QueuingStrategy<T = any> {
   1616     highWaterMark?: number;
   1617     size?: QueuingStrategySize<T>;
   1618 }
   1619 
   1620 interface QueuingStrategyInit {
   1621     /**
   1622      * Creates a new ByteLengthQueuingStrategy with the provided high water mark.
   1623      *
   1624      * 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.
   1625      */
   1626     highWaterMark: number;
   1627 }
   1628 
   1629 interface RTCAnswerOptions extends RTCOfferAnswerOptions {
   1630 }
   1631 
   1632 interface RTCCertificateExpiration {
   1633     expires?: number;
   1634 }
   1635 
   1636 interface RTCConfiguration {
   1637     bundlePolicy?: RTCBundlePolicy;
   1638     certificates?: RTCCertificate[];
   1639     iceCandidatePoolSize?: number;
   1640     iceServers?: RTCIceServer[];
   1641     iceTransportPolicy?: RTCIceTransportPolicy;
   1642     rtcpMuxPolicy?: RTCRtcpMuxPolicy;
   1643 }
   1644 
   1645 interface RTCDTMFToneChangeEventInit extends EventInit {
   1646     tone?: string;
   1647 }
   1648 
   1649 interface RTCDataChannelEventInit extends EventInit {
   1650     channel: RTCDataChannel;
   1651 }
   1652 
   1653 interface RTCDataChannelInit {
   1654     id?: number;
   1655     maxPacketLifeTime?: number;
   1656     maxRetransmits?: number;
   1657     negotiated?: boolean;
   1658     ordered?: boolean;
   1659     protocol?: string;
   1660 }
   1661 
   1662 interface RTCDtlsFingerprint {
   1663     algorithm?: string;
   1664     value?: string;
   1665 }
   1666 
   1667 interface RTCEncodedAudioFrameMetadata extends RTCEncodedFrameMetadata {
   1668     sequenceNumber?: number;
   1669 }
   1670 
   1671 interface RTCEncodedFrameMetadata {
   1672     contributingSources?: number[];
   1673     mimeType?: string;
   1674     payloadType?: number;
   1675     rtpTimestamp?: number;
   1676     synchronizationSource?: number;
   1677 }
   1678 
   1679 interface RTCEncodedVideoFrameMetadata extends RTCEncodedFrameMetadata {
   1680     dependencies?: number[];
   1681     frameId?: number;
   1682     height?: number;
   1683     spatialIndex?: number;
   1684     temporalIndex?: number;
   1685     timestamp?: number;
   1686     width?: number;
   1687 }
   1688 
   1689 interface RTCErrorEventInit extends EventInit {
   1690     error: RTCError;
   1691 }
   1692 
   1693 interface RTCErrorInit {
   1694     errorDetail: RTCErrorDetailType;
   1695     httpRequestStatusCode?: number;
   1696     receivedAlert?: number;
   1697     sctpCauseCode?: number;
   1698     sdpLineNumber?: number;
   1699     sentAlert?: number;
   1700 }
   1701 
   1702 interface RTCIceCandidateInit {
   1703     candidate?: string;
   1704     sdpMLineIndex?: number | null;
   1705     sdpMid?: string | null;
   1706     usernameFragment?: string | null;
   1707 }
   1708 
   1709 interface RTCIceCandidatePairStats extends RTCStats {
   1710     availableIncomingBitrate?: number;
   1711     availableOutgoingBitrate?: number;
   1712     bytesDiscardedOnSend?: number;
   1713     bytesReceived?: number;
   1714     bytesSent?: number;
   1715     consentRequestsSent?: number;
   1716     currentRoundTripTime?: number;
   1717     lastPacketReceivedTimestamp?: DOMHighResTimeStamp;
   1718     lastPacketSentTimestamp?: DOMHighResTimeStamp;
   1719     localCandidateId: string;
   1720     nominated?: boolean;
   1721     packetsDiscardedOnSend?: number;
   1722     packetsReceived?: number;
   1723     packetsSent?: number;
   1724     remoteCandidateId: string;
   1725     requestsReceived?: number;
   1726     requestsSent?: number;
   1727     responsesReceived?: number;
   1728     responsesSent?: number;
   1729     state: RTCStatsIceCandidatePairState;
   1730     totalRoundTripTime?: number;
   1731     transportId: string;
   1732 }
   1733 
   1734 interface RTCIceServer {
   1735     credential?: string;
   1736     urls: string | string[];
   1737     username?: string;
   1738 }
   1739 
   1740 interface RTCInboundRtpStreamStats extends RTCReceivedRtpStreamStats {
   1741     audioLevel?: number;
   1742     bytesReceived?: number;
   1743     concealedSamples?: number;
   1744     concealmentEvents?: number;
   1745     decoderImplementation?: string;
   1746     estimatedPlayoutTimestamp?: DOMHighResTimeStamp;
   1747     fecBytesReceived?: number;
   1748     fecPacketsDiscarded?: number;
   1749     fecPacketsReceived?: number;
   1750     fecSsrc?: number;
   1751     firCount?: number;
   1752     frameHeight?: number;
   1753     frameWidth?: number;
   1754     framesAssembledFromMultiplePackets?: number;
   1755     framesDecoded?: number;
   1756     framesDropped?: number;
   1757     framesPerSecond?: number;
   1758     framesReceived?: number;
   1759     framesRendered?: number;
   1760     freezeCount?: number;
   1761     headerBytesReceived?: number;
   1762     insertedSamplesForDeceleration?: number;
   1763     jitterBufferDelay?: number;
   1764     jitterBufferEmittedCount?: number;
   1765     jitterBufferMinimumDelay?: number;
   1766     jitterBufferTargetDelay?: number;
   1767     keyFramesDecoded?: number;
   1768     lastPacketReceivedTimestamp?: DOMHighResTimeStamp;
   1769     mid?: string;
   1770     nackCount?: number;
   1771     packetsDiscarded?: number;
   1772     pauseCount?: number;
   1773     playoutId?: string;
   1774     pliCount?: number;
   1775     qpSum?: number;
   1776     remoteId?: string;
   1777     removedSamplesForAcceleration?: number;
   1778     retransmittedBytesReceived?: number;
   1779     retransmittedPacketsReceived?: number;
   1780     rtxSsrc?: number;
   1781     silentConcealedSamples?: number;
   1782     totalAssemblyTime?: number;
   1783     totalAudioEnergy?: number;
   1784     totalDecodeTime?: number;
   1785     totalFreezesDuration?: number;
   1786     totalInterFrameDelay?: number;
   1787     totalPausesDuration?: number;
   1788     totalProcessingDelay?: number;
   1789     totalSamplesDuration?: number;
   1790     totalSamplesReceived?: number;
   1791     totalSquaredInterFrameDelay?: number;
   1792     trackIdentifier: string;
   1793 }
   1794 
   1795 interface RTCLocalIceCandidateInit extends RTCIceCandidateInit {
   1796 }
   1797 
   1798 interface RTCLocalSessionDescriptionInit {
   1799     sdp?: string;
   1800     type?: RTCSdpType;
   1801 }
   1802 
   1803 interface RTCOfferAnswerOptions {
   1804 }
   1805 
   1806 interface RTCOfferOptions extends RTCOfferAnswerOptions {
   1807     iceRestart?: boolean;
   1808     offerToReceiveAudio?: boolean;
   1809     offerToReceiveVideo?: boolean;
   1810 }
   1811 
   1812 interface RTCOutboundRtpStreamStats extends RTCSentRtpStreamStats {
   1813     active?: boolean;
   1814     firCount?: number;
   1815     frameHeight?: number;
   1816     frameWidth?: number;
   1817     framesEncoded?: number;
   1818     framesPerSecond?: number;
   1819     framesSent?: number;
   1820     headerBytesSent?: number;
   1821     hugeFramesSent?: number;
   1822     keyFramesEncoded?: number;
   1823     mediaSourceId?: string;
   1824     mid?: string;
   1825     nackCount?: number;
   1826     pliCount?: number;
   1827     qpSum?: number;
   1828     qualityLimitationDurations?: Record<string, number>;
   1829     qualityLimitationReason?: RTCQualityLimitationReason;
   1830     qualityLimitationResolutionChanges?: number;
   1831     remoteId?: string;
   1832     retransmittedBytesSent?: number;
   1833     retransmittedPacketsSent?: number;
   1834     rid?: string;
   1835     rtxSsrc?: number;
   1836     scalabilityMode?: string;
   1837     targetBitrate?: number;
   1838     totalEncodeTime?: number;
   1839     totalEncodedBytesTarget?: number;
   1840     totalPacketSendDelay?: number;
   1841 }
   1842 
   1843 interface RTCPeerConnectionIceErrorEventInit extends EventInit {
   1844     address?: string | null;
   1845     errorCode: number;
   1846     errorText?: string;
   1847     port?: number | null;
   1848     url?: string;
   1849 }
   1850 
   1851 interface RTCPeerConnectionIceEventInit extends EventInit {
   1852     candidate?: RTCIceCandidate | null;
   1853 }
   1854 
   1855 interface RTCReceivedRtpStreamStats extends RTCRtpStreamStats {
   1856     jitter?: number;
   1857     packetsLost?: number;
   1858     packetsReceived?: number;
   1859 }
   1860 
   1861 interface RTCRtcpParameters {
   1862     cname?: string;
   1863     reducedSize?: boolean;
   1864 }
   1865 
   1866 interface RTCRtpCapabilities {
   1867     codecs: RTCRtpCodec[];
   1868     headerExtensions: RTCRtpHeaderExtensionCapability[];
   1869 }
   1870 
   1871 interface RTCRtpCodec {
   1872     channels?: number;
   1873     clockRate: number;
   1874     mimeType: string;
   1875     sdpFmtpLine?: string;
   1876 }
   1877 
   1878 interface RTCRtpCodecParameters extends RTCRtpCodec {
   1879     payloadType: number;
   1880 }
   1881 
   1882 interface RTCRtpCodingParameters {
   1883     rid?: string;
   1884 }
   1885 
   1886 interface RTCRtpContributingSource {
   1887     audioLevel?: number;
   1888     rtpTimestamp: number;
   1889     source: number;
   1890     timestamp: DOMHighResTimeStamp;
   1891 }
   1892 
   1893 interface RTCRtpEncodingParameters extends RTCRtpCodingParameters {
   1894     active?: boolean;
   1895     maxBitrate?: number;
   1896     maxFramerate?: number;
   1897     networkPriority?: RTCPriorityType;
   1898     priority?: RTCPriorityType;
   1899     scaleResolutionDownBy?: number;
   1900 }
   1901 
   1902 interface RTCRtpHeaderExtensionCapability {
   1903     uri: string;
   1904 }
   1905 
   1906 interface RTCRtpHeaderExtensionParameters {
   1907     encrypted?: boolean;
   1908     id: number;
   1909     uri: string;
   1910 }
   1911 
   1912 interface RTCRtpParameters {
   1913     codecs: RTCRtpCodecParameters[];
   1914     headerExtensions: RTCRtpHeaderExtensionParameters[];
   1915     rtcp: RTCRtcpParameters;
   1916 }
   1917 
   1918 interface RTCRtpReceiveParameters extends RTCRtpParameters {
   1919 }
   1920 
   1921 interface RTCRtpSendParameters extends RTCRtpParameters {
   1922     degradationPreference?: RTCDegradationPreference;
   1923     encodings: RTCRtpEncodingParameters[];
   1924     transactionId: string;
   1925 }
   1926 
   1927 interface RTCRtpStreamStats extends RTCStats {
   1928     codecId?: string;
   1929     kind: string;
   1930     ssrc: number;
   1931     transportId?: string;
   1932 }
   1933 
   1934 interface RTCRtpSynchronizationSource extends RTCRtpContributingSource {
   1935 }
   1936 
   1937 interface RTCRtpTransceiverInit {
   1938     direction?: RTCRtpTransceiverDirection;
   1939     sendEncodings?: RTCRtpEncodingParameters[];
   1940     streams?: MediaStream[];
   1941 }
   1942 
   1943 interface RTCSentRtpStreamStats extends RTCRtpStreamStats {
   1944     bytesSent?: number;
   1945     packetsSent?: number;
   1946 }
   1947 
   1948 interface RTCSessionDescriptionInit {
   1949     sdp?: string;
   1950     type: RTCSdpType;
   1951 }
   1952 
   1953 interface RTCSetParameterOptions {
   1954 }
   1955 
   1956 interface RTCStats {
   1957     id: string;
   1958     timestamp: DOMHighResTimeStamp;
   1959     type: RTCStatsType;
   1960 }
   1961 
   1962 interface RTCTrackEventInit extends EventInit {
   1963     receiver: RTCRtpReceiver;
   1964     streams?: MediaStream[];
   1965     track: MediaStreamTrack;
   1966     transceiver: RTCRtpTransceiver;
   1967 }
   1968 
   1969 interface RTCTransportStats extends RTCStats {
   1970     bytesReceived?: number;
   1971     bytesSent?: number;
   1972     dtlsCipher?: string;
   1973     dtlsRole?: RTCDtlsRole;
   1974     dtlsState: RTCDtlsTransportState;
   1975     iceLocalUsernameFragment?: string;
   1976     iceRole?: RTCIceRole;
   1977     iceState?: RTCIceTransportState;
   1978     localCertificateId?: string;
   1979     packetsReceived?: number;
   1980     packetsSent?: number;
   1981     remoteCertificateId?: string;
   1982     selectedCandidatePairChanges?: number;
   1983     selectedCandidatePairId?: string;
   1984     srtpCipher?: string;
   1985     tlsVersion?: string;
   1986 }
   1987 
   1988 interface ReadableStreamGetReaderOptions {
   1989     /**
   1990      * Creates a ReadableStreamBYOBReader and locks the stream to the new reader.
   1991      *
   1992      * 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.
   1993      */
   1994     mode?: ReadableStreamReaderMode;
   1995 }
   1996 
   1997 interface ReadableStreamIteratorOptions {
   1998     /**
   1999      * Asynchronously iterates over the chunks in the stream's internal queue.
   2000      *
   2001      * Asynchronously iterating over the stream will lock it, preventing any other consumer from acquiring a reader. The lock will be released if the async iterator's return() method is called, e.g. by breaking out of the loop.
   2002      *
   2003      * By default, calling the async iterator's return() method will also cancel the stream. To prevent this, use the stream's values() method, passing true for the preventCancel option.
   2004      */
   2005     preventCancel?: boolean;
   2006 }
   2007 
   2008 interface ReadableStreamReadDoneResult<T> {
   2009     done: true;
   2010     value: T | undefined;
   2011 }
   2012 
   2013 interface ReadableStreamReadValueResult<T> {
   2014     done: false;
   2015     value: T;
   2016 }
   2017 
   2018 interface ReadableWritablePair<R = any, W = any> {
   2019     readable: ReadableStream<R>;
   2020     /**
   2021      * 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.
   2022      *
   2023      * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.
   2024      */
   2025     writable: WritableStream<W>;
   2026 }
   2027 
   2028 interface RegistrationOptions {
   2029     scope?: string;
   2030     type?: WorkerType;
   2031     updateViaCache?: ServiceWorkerUpdateViaCache;
   2032 }
   2033 
   2034 interface ReportingObserverOptions {
   2035     buffered?: boolean;
   2036     types?: string[];
   2037 }
   2038 
   2039 interface RequestInit {
   2040     /** A BodyInit object or null to set request's body. */
   2041     body?: BodyInit | null;
   2042     /** A string indicating how the request will interact with the browser's cache to set request's cache. */
   2043     cache?: RequestCache;
   2044     /** 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. */
   2045     credentials?: RequestCredentials;
   2046     /** A Headers object, an object literal, or an array of two-item arrays to set request's headers. */
   2047     headers?: HeadersInit;
   2048     /** A cryptographic hash of the resource to be fetched by request. Sets request's integrity. */
   2049     integrity?: string;
   2050     /** A boolean to set request's keepalive. */
   2051     keepalive?: boolean;
   2052     /** A string to set request's method. */
   2053     method?: string;
   2054     /** A string to indicate whether the request will use CORS, or will be restricted to same-origin URLs. Sets request's mode. */
   2055     mode?: RequestMode;
   2056     priority?: RequestPriority;
   2057     /** 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. */
   2058     redirect?: RequestRedirect;
   2059     /** A string whose value is a same-origin URL, "about:client", or the empty string, to set request's referrer. */
   2060     referrer?: string;
   2061     /** A referrer policy to set request's referrerPolicy. */
   2062     referrerPolicy?: ReferrerPolicy;
   2063     /** An AbortSignal to set request's signal. */
   2064     signal?: AbortSignal | null;
   2065     /** Can only be null. Used to disassociate request from any Window. */
   2066     window?: null;
   2067 }
   2068 
   2069 interface ResizeObserverOptions {
   2070     box?: ResizeObserverBoxOptions;
   2071 }
   2072 
   2073 interface ResponseInit {
   2074     headers?: HeadersInit;
   2075     status?: number;
   2076     statusText?: string;
   2077 }
   2078 
   2079 interface RsaHashedImportParams extends Algorithm {
   2080     hash: HashAlgorithmIdentifier;
   2081 }
   2082 
   2083 interface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm {
   2084     hash: KeyAlgorithm;
   2085 }
   2086 
   2087 interface RsaHashedKeyGenParams extends RsaKeyGenParams {
   2088     hash: HashAlgorithmIdentifier;
   2089 }
   2090 
   2091 interface RsaKeyAlgorithm extends KeyAlgorithm {
   2092     modulusLength: number;
   2093     publicExponent: BigInteger;
   2094 }
   2095 
   2096 interface RsaKeyGenParams extends Algorithm {
   2097     modulusLength: number;
   2098     publicExponent: BigInteger;
   2099 }
   2100 
   2101 interface RsaOaepParams extends Algorithm {
   2102     label?: BufferSource;
   2103 }
   2104 
   2105 interface RsaOtherPrimesInfo {
   2106     d?: string;
   2107     r?: string;
   2108     t?: string;
   2109 }
   2110 
   2111 interface RsaPssParams extends Algorithm {
   2112     saltLength: number;
   2113 }
   2114 
   2115 interface SVGBoundingBoxOptions {
   2116     clipped?: boolean;
   2117     fill?: boolean;
   2118     markers?: boolean;
   2119     stroke?: boolean;
   2120 }
   2121 
   2122 interface ScrollIntoViewOptions extends ScrollOptions {
   2123     block?: ScrollLogicalPosition;
   2124     inline?: ScrollLogicalPosition;
   2125 }
   2126 
   2127 interface ScrollOptions {
   2128     behavior?: ScrollBehavior;
   2129 }
   2130 
   2131 interface ScrollToOptions extends ScrollOptions {
   2132     left?: number;
   2133     top?: number;
   2134 }
   2135 
   2136 interface SecurityPolicyViolationEventInit extends EventInit {
   2137     blockedURI?: string;
   2138     columnNumber?: number;
   2139     disposition?: SecurityPolicyViolationEventDisposition;
   2140     documentURI?: string;
   2141     effectiveDirective?: string;
   2142     lineNumber?: number;
   2143     originalPolicy?: string;
   2144     referrer?: string;
   2145     sample?: string;
   2146     sourceFile?: string;
   2147     statusCode?: number;
   2148     violatedDirective?: string;
   2149 }
   2150 
   2151 interface ShadowRootInit {
   2152     clonable?: boolean;
   2153     customElementRegistry?: CustomElementRegistry;
   2154     delegatesFocus?: boolean;
   2155     mode: ShadowRootMode;
   2156     serializable?: boolean;
   2157     slotAssignment?: SlotAssignmentMode;
   2158 }
   2159 
   2160 interface ShareData {
   2161     files?: File[];
   2162     text?: string;
   2163     title?: string;
   2164     url?: string;
   2165 }
   2166 
   2167 interface SpeechSynthesisErrorEventInit extends SpeechSynthesisEventInit {
   2168     error: SpeechSynthesisErrorCode;
   2169 }
   2170 
   2171 interface SpeechSynthesisEventInit extends EventInit {
   2172     charIndex?: number;
   2173     charLength?: number;
   2174     elapsedTime?: number;
   2175     name?: string;
   2176     utterance: SpeechSynthesisUtterance;
   2177 }
   2178 
   2179 interface StartViewTransitionOptions {
   2180     types?: string[] | null;
   2181     update?: ViewTransitionUpdateCallback | null;
   2182 }
   2183 
   2184 interface StaticRangeInit {
   2185     endContainer: Node;
   2186     endOffset: number;
   2187     startContainer: Node;
   2188     startOffset: number;
   2189 }
   2190 
   2191 interface StereoPannerOptions extends AudioNodeOptions {
   2192     pan?: number;
   2193 }
   2194 
   2195 interface StorageEstimate {
   2196     quota?: number;
   2197     usage?: number;
   2198 }
   2199 
   2200 interface StorageEventInit extends EventInit {
   2201     key?: string | null;
   2202     newValue?: string | null;
   2203     oldValue?: string | null;
   2204     storageArea?: Storage | null;
   2205     url?: string;
   2206 }
   2207 
   2208 interface StreamPipeOptions {
   2209     preventAbort?: boolean;
   2210     preventCancel?: boolean;
   2211     /**
   2212      * 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.
   2213      *
   2214      * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.
   2215      *
   2216      * Errors and closures of the source and destination streams propagate as follows:
   2217      *
   2218      * 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.
   2219      *
   2220      * 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.
   2221      *
   2222      * 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.
   2223      *
   2224      * 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.
   2225      *
   2226      * 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.
   2227      */
   2228     preventClose?: boolean;
   2229     signal?: AbortSignal;
   2230 }
   2231 
   2232 interface StructuredSerializeOptions {
   2233     transfer?: Transferable[];
   2234 }
   2235 
   2236 interface SubmitEventInit extends EventInit {
   2237     submitter?: HTMLElement | null;
   2238 }
   2239 
   2240 interface TextDecodeOptions {
   2241     stream?: boolean;
   2242 }
   2243 
   2244 interface TextDecoderOptions {
   2245     fatal?: boolean;
   2246     ignoreBOM?: boolean;
   2247 }
   2248 
   2249 interface TextEncoderEncodeIntoResult {
   2250     read: number;
   2251     written: number;
   2252 }
   2253 
   2254 interface ToggleEventInit extends EventInit {
   2255     newState?: string;
   2256     oldState?: string;
   2257 }
   2258 
   2259 interface TouchEventInit extends EventModifierInit {
   2260     changedTouches?: Touch[];
   2261     targetTouches?: Touch[];
   2262     touches?: Touch[];
   2263 }
   2264 
   2265 interface TouchInit {
   2266     altitudeAngle?: number;
   2267     azimuthAngle?: number;
   2268     clientX?: number;
   2269     clientY?: number;
   2270     force?: number;
   2271     identifier: number;
   2272     pageX?: number;
   2273     pageY?: number;
   2274     radiusX?: number;
   2275     radiusY?: number;
   2276     rotationAngle?: number;
   2277     screenX?: number;
   2278     screenY?: number;
   2279     target: EventTarget;
   2280     touchType?: TouchType;
   2281 }
   2282 
   2283 interface TrackEventInit extends EventInit {
   2284     track?: TextTrack | null;
   2285 }
   2286 
   2287 interface Transformer<I = any, O = any> {
   2288     flush?: TransformerFlushCallback<O>;
   2289     readableType?: undefined;
   2290     start?: TransformerStartCallback<O>;
   2291     transform?: TransformerTransformCallback<I, O>;
   2292     writableType?: undefined;
   2293 }
   2294 
   2295 interface TransitionEventInit extends EventInit {
   2296     elapsedTime?: number;
   2297     propertyName?: string;
   2298     pseudoElement?: string;
   2299 }
   2300 
   2301 interface UIEventInit extends EventInit {
   2302     detail?: number;
   2303     view?: Window | null;
   2304     /** @deprecated */
   2305     which?: number;
   2306 }
   2307 
   2308 interface ULongRange {
   2309     max?: number;
   2310     min?: number;
   2311 }
   2312 
   2313 interface UnderlyingByteSource {
   2314     autoAllocateChunkSize?: number;
   2315     cancel?: UnderlyingSourceCancelCallback;
   2316     pull?: (controller: ReadableByteStreamController) => void | PromiseLike<void>;
   2317     start?: (controller: ReadableByteStreamController) => any;
   2318     type: "bytes";
   2319 }
   2320 
   2321 interface UnderlyingDefaultSource<R = any> {
   2322     cancel?: UnderlyingSourceCancelCallback;
   2323     pull?: (controller: ReadableStreamDefaultController<R>) => void | PromiseLike<void>;
   2324     start?: (controller: ReadableStreamDefaultController<R>) => any;
   2325     type?: undefined;
   2326 }
   2327 
   2328 interface UnderlyingSink<W = any> {
   2329     abort?: UnderlyingSinkAbortCallback;
   2330     close?: UnderlyingSinkCloseCallback;
   2331     start?: UnderlyingSinkStartCallback;
   2332     type?: undefined;
   2333     write?: UnderlyingSinkWriteCallback<W>;
   2334 }
   2335 
   2336 interface UnderlyingSource<R = any> {
   2337     autoAllocateChunkSize?: number;
   2338     cancel?: UnderlyingSourceCancelCallback;
   2339     pull?: UnderlyingSourcePullCallback<R>;
   2340     start?: UnderlyingSourceStartCallback<R>;
   2341     type?: ReadableStreamType;
   2342 }
   2343 
   2344 interface ValidityStateFlags {
   2345     badInput?: boolean;
   2346     customError?: boolean;
   2347     patternMismatch?: boolean;
   2348     rangeOverflow?: boolean;
   2349     rangeUnderflow?: boolean;
   2350     stepMismatch?: boolean;
   2351     tooLong?: boolean;
   2352     tooShort?: boolean;
   2353     typeMismatch?: boolean;
   2354     valueMissing?: boolean;
   2355 }
   2356 
   2357 interface VideoColorSpaceInit {
   2358     fullRange?: boolean | null;
   2359     matrix?: VideoMatrixCoefficients | null;
   2360     primaries?: VideoColorPrimaries | null;
   2361     transfer?: VideoTransferCharacteristics | null;
   2362 }
   2363 
   2364 interface VideoConfiguration {
   2365     bitrate: number;
   2366     colorGamut?: ColorGamut;
   2367     contentType: string;
   2368     framerate: number;
   2369     hasAlphaChannel?: boolean;
   2370     hdrMetadataType?: HdrMetadataType;
   2371     height: number;
   2372     scalabilityMode?: string;
   2373     transferFunction?: TransferFunction;
   2374     width: number;
   2375 }
   2376 
   2377 interface VideoDecoderConfig {
   2378     codec: string;
   2379     codedHeight?: number;
   2380     codedWidth?: number;
   2381     colorSpace?: VideoColorSpaceInit;
   2382     description?: AllowSharedBufferSource;
   2383     displayAspectHeight?: number;
   2384     displayAspectWidth?: number;
   2385     hardwareAcceleration?: HardwareAcceleration;
   2386     optimizeForLatency?: boolean;
   2387 }
   2388 
   2389 interface VideoDecoderInit {
   2390     error: WebCodecsErrorCallback;
   2391     output: VideoFrameOutputCallback;
   2392 }
   2393 
   2394 interface VideoDecoderSupport {
   2395     config?: VideoDecoderConfig;
   2396     supported?: boolean;
   2397 }
   2398 
   2399 interface VideoEncoderConfig {
   2400     alpha?: AlphaOption;
   2401     avc?: AvcEncoderConfig;
   2402     bitrate?: number;
   2403     bitrateMode?: VideoEncoderBitrateMode;
   2404     codec: string;
   2405     contentHint?: string;
   2406     displayHeight?: number;
   2407     displayWidth?: number;
   2408     framerate?: number;
   2409     hardwareAcceleration?: HardwareAcceleration;
   2410     height: number;
   2411     latencyMode?: LatencyMode;
   2412     scalabilityMode?: string;
   2413     width: number;
   2414 }
   2415 
   2416 interface VideoEncoderEncodeOptions {
   2417     avc?: VideoEncoderEncodeOptionsForAvc;
   2418     keyFrame?: boolean;
   2419 }
   2420 
   2421 interface VideoEncoderEncodeOptionsForAvc {
   2422     quantizer?: number | null;
   2423 }
   2424 
   2425 interface VideoEncoderInit {
   2426     error: WebCodecsErrorCallback;
   2427     output: EncodedVideoChunkOutputCallback;
   2428 }
   2429 
   2430 interface VideoEncoderSupport {
   2431     config?: VideoEncoderConfig;
   2432     supported?: boolean;
   2433 }
   2434 
   2435 interface VideoFrameBufferInit {
   2436     codedHeight: number;
   2437     codedWidth: number;
   2438     colorSpace?: VideoColorSpaceInit;
   2439     displayHeight?: number;
   2440     displayWidth?: number;
   2441     duration?: number;
   2442     format: VideoPixelFormat;
   2443     layout?: PlaneLayout[];
   2444     timestamp: number;
   2445     visibleRect?: DOMRectInit;
   2446 }
   2447 
   2448 interface VideoFrameCallbackMetadata {
   2449     captureTime?: DOMHighResTimeStamp;
   2450     expectedDisplayTime: DOMHighResTimeStamp;
   2451     height: number;
   2452     mediaTime: number;
   2453     presentationTime: DOMHighResTimeStamp;
   2454     presentedFrames: number;
   2455     processingDuration?: number;
   2456     receiveTime?: DOMHighResTimeStamp;
   2457     rtpTimestamp?: number;
   2458     width: number;
   2459 }
   2460 
   2461 interface VideoFrameCopyToOptions {
   2462     colorSpace?: PredefinedColorSpace;
   2463     format?: VideoPixelFormat;
   2464     layout?: PlaneLayout[];
   2465     rect?: DOMRectInit;
   2466 }
   2467 
   2468 interface VideoFrameInit {
   2469     alpha?: AlphaOption;
   2470     displayHeight?: number;
   2471     displayWidth?: number;
   2472     duration?: number;
   2473     timestamp?: number;
   2474     visibleRect?: DOMRectInit;
   2475 }
   2476 
   2477 interface WaveShaperOptions extends AudioNodeOptions {
   2478     curve?: number[] | Float32Array;
   2479     oversample?: OverSampleType;
   2480 }
   2481 
   2482 interface WebGLContextAttributes {
   2483     alpha?: boolean;
   2484     antialias?: boolean;
   2485     depth?: boolean;
   2486     desynchronized?: boolean;
   2487     failIfMajorPerformanceCaveat?: boolean;
   2488     powerPreference?: WebGLPowerPreference;
   2489     premultipliedAlpha?: boolean;
   2490     preserveDrawingBuffer?: boolean;
   2491     stencil?: boolean;
   2492 }
   2493 
   2494 interface WebGLContextEventInit extends EventInit {
   2495     statusMessage?: string;
   2496 }
   2497 
   2498 interface WebTransportCloseInfo {
   2499     closeCode?: number;
   2500     reason?: string;
   2501 }
   2502 
   2503 interface WebTransportErrorOptions {
   2504     source?: WebTransportErrorSource;
   2505     streamErrorCode?: number | null;
   2506 }
   2507 
   2508 interface WebTransportHash {
   2509     algorithm?: string;
   2510     value?: BufferSource;
   2511 }
   2512 
   2513 interface WebTransportOptions {
   2514     allowPooling?: boolean;
   2515     congestionControl?: WebTransportCongestionControl;
   2516     requireUnreliable?: boolean;
   2517     serverCertificateHashes?: WebTransportHash[];
   2518 }
   2519 
   2520 interface WebTransportSendOptions {
   2521     sendOrder?: number;
   2522 }
   2523 
   2524 interface WebTransportSendStreamOptions extends WebTransportSendOptions {
   2525 }
   2526 
   2527 interface WheelEventInit extends MouseEventInit {
   2528     deltaMode?: number;
   2529     deltaX?: number;
   2530     deltaY?: number;
   2531     deltaZ?: number;
   2532 }
   2533 
   2534 interface WindowPostMessageOptions extends StructuredSerializeOptions {
   2535     targetOrigin?: string;
   2536 }
   2537 
   2538 interface WorkerOptions {
   2539     credentials?: RequestCredentials;
   2540     name?: string;
   2541     type?: WorkerType;
   2542 }
   2543 
   2544 interface WorkletOptions {
   2545     credentials?: RequestCredentials;
   2546 }
   2547 
   2548 interface WriteParams {
   2549     data?: BufferSource | Blob | string | null;
   2550     position?: number | null;
   2551     size?: number | null;
   2552     type: WriteCommandType;
   2553 }
   2554 
   2555 type NodeFilter = ((node: Node) => number) | { acceptNode(node: Node): number; };
   2556 
   2557 declare var NodeFilter: {
   2558     readonly FILTER_ACCEPT: 1;
   2559     readonly FILTER_REJECT: 2;
   2560     readonly FILTER_SKIP: 3;
   2561     readonly SHOW_ALL: 0xFFFFFFFF;
   2562     readonly SHOW_ELEMENT: 0x1;
   2563     readonly SHOW_ATTRIBUTE: 0x2;
   2564     readonly SHOW_TEXT: 0x4;
   2565     readonly SHOW_CDATA_SECTION: 0x8;
   2566     readonly SHOW_ENTITY_REFERENCE: 0x10;
   2567     readonly SHOW_ENTITY: 0x20;
   2568     readonly SHOW_PROCESSING_INSTRUCTION: 0x40;
   2569     readonly SHOW_COMMENT: 0x80;
   2570     readonly SHOW_DOCUMENT: 0x100;
   2571     readonly SHOW_DOCUMENT_TYPE: 0x200;
   2572     readonly SHOW_DOCUMENT_FRAGMENT: 0x400;
   2573     readonly SHOW_NOTATION: 0x800;
   2574 };
   2575 
   2576 type XPathNSResolver = ((prefix: string | null) => string | null) | { lookupNamespaceURI(prefix: string | null): string | null; };
   2577 
   2578 /**
   2579  * 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.
   2580  *
   2581  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays)
   2582  */
   2583 interface ANGLE_instanced_arrays {
   2584     /**
   2585      * The **`ANGLE_instanced_arrays.drawArraysInstancedANGLE()`** method of the WebGL API renders primitives from array data like the WebGLRenderingContext.drawArrays() method.
   2586      *
   2587      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawArraysInstancedANGLE)
   2588      */
   2589     drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void;
   2590     /**
   2591      * The **`ANGLE_instanced_arrays.drawElementsInstancedANGLE()`** method of the WebGL API renders primitives from array data like the WebGLRenderingContext.drawElements() method.
   2592      *
   2593      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawElementsInstancedANGLE)
   2594      */
   2595     drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void;
   2596     /**
   2597      * The **ANGLE_instanced_arrays.vertexAttribDivisorANGLE()** method of the WebGL API modifies the rate at which generic vertex attributes advance when rendering multiple instances of primitives with ANGLE_instanced_arrays.drawArraysInstancedANGLE() and ANGLE_instanced_arrays.drawElementsInstancedANGLE().
   2598      *
   2599      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/vertexAttribDivisorANGLE)
   2600      */
   2601     vertexAttribDivisorANGLE(index: GLuint, divisor: GLuint): void;
   2602     readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: 0x88FE;
   2603 }
   2604 
   2605 interface ARIAMixin {
   2606     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaActiveDescendantElement) */
   2607     ariaActiveDescendantElement: Element | null;
   2608     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaAtomic) */
   2609     ariaAtomic: string | null;
   2610     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaAutoComplete) */
   2611     ariaAutoComplete: string | null;
   2612     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaBrailleLabel) */
   2613     ariaBrailleLabel: string | null;
   2614     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaBrailleRoleDescription) */
   2615     ariaBrailleRoleDescription: string | null;
   2616     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaBusy) */
   2617     ariaBusy: string | null;
   2618     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaChecked) */
   2619     ariaChecked: string | null;
   2620     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaColCount) */
   2621     ariaColCount: string | null;
   2622     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaColIndex) */
   2623     ariaColIndex: string | null;
   2624     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaColIndexText) */
   2625     ariaColIndexText: string | null;
   2626     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaColSpan) */
   2627     ariaColSpan: string | null;
   2628     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaControlsElements) */
   2629     ariaControlsElements: ReadonlyArray<Element> | null;
   2630     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaCurrent) */
   2631     ariaCurrent: string | null;
   2632     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaDescribedByElements) */
   2633     ariaDescribedByElements: ReadonlyArray<Element> | null;
   2634     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaDescription) */
   2635     ariaDescription: string | null;
   2636     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaDetailsElements) */
   2637     ariaDetailsElements: ReadonlyArray<Element> | null;
   2638     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaDisabled) */
   2639     ariaDisabled: string | null;
   2640     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaErrorMessageElements) */
   2641     ariaErrorMessageElements: ReadonlyArray<Element> | null;
   2642     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaExpanded) */
   2643     ariaExpanded: string | null;
   2644     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaFlowToElements) */
   2645     ariaFlowToElements: ReadonlyArray<Element> | null;
   2646     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaHasPopup) */
   2647     ariaHasPopup: string | null;
   2648     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaHidden) */
   2649     ariaHidden: string | null;
   2650     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaInvalid) */
   2651     ariaInvalid: string | null;
   2652     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaKeyShortcuts) */
   2653     ariaKeyShortcuts: string | null;
   2654     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLabel) */
   2655     ariaLabel: string | null;
   2656     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLabelledByElements) */
   2657     ariaLabelledByElements: ReadonlyArray<Element> | null;
   2658     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLevel) */
   2659     ariaLevel: string | null;
   2660     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLive) */
   2661     ariaLive: string | null;
   2662     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaModal) */
   2663     ariaModal: string | null;
   2664     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaMultiLine) */
   2665     ariaMultiLine: string | null;
   2666     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaMultiSelectable) */
   2667     ariaMultiSelectable: string | null;
   2668     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaOrientation) */
   2669     ariaOrientation: string | null;
   2670     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaOwnsElements) */
   2671     ariaOwnsElements: ReadonlyArray<Element> | null;
   2672     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaPlaceholder) */
   2673     ariaPlaceholder: string | null;
   2674     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaPosInSet) */
   2675     ariaPosInSet: string | null;
   2676     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaPressed) */
   2677     ariaPressed: string | null;
   2678     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaReadOnly) */
   2679     ariaReadOnly: string | null;
   2680     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRelevant) */
   2681     ariaRelevant: string | null;
   2682     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRequired) */
   2683     ariaRequired: string | null;
   2684     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRoleDescription) */
   2685     ariaRoleDescription: string | null;
   2686     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRowCount) */
   2687     ariaRowCount: string | null;
   2688     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRowIndex) */
   2689     ariaRowIndex: string | null;
   2690     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRowIndexText) */
   2691     ariaRowIndexText: string | null;
   2692     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRowSpan) */
   2693     ariaRowSpan: string | null;
   2694     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaSelected) */
   2695     ariaSelected: string | null;
   2696     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaSetSize) */
   2697     ariaSetSize: string | null;
   2698     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaSort) */
   2699     ariaSort: string | null;
   2700     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueMax) */
   2701     ariaValueMax: string | null;
   2702     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueMin) */
   2703     ariaValueMin: string | null;
   2704     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueNow) */
   2705     ariaValueNow: string | null;
   2706     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueText) */
   2707     ariaValueText: string | null;
   2708     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/role) */
   2709     role: string | null;
   2710 }
   2711 
   2712 /**
   2713  * The **`AbortController`** interface represents a controller object that allows you to abort one or more Web requests as and when desired.
   2714  *
   2715  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController)
   2716  */
   2717 interface AbortController {
   2718     /**
   2719      * The **`signal`** read-only property of the AbortController interface returns an AbortSignal object instance, which can be used to communicate with/abort an asynchronous operation as desired.
   2720      *
   2721      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/signal)
   2722      */
   2723     readonly signal: AbortSignal;
   2724     /**
   2725      * The **`abort()`** method of the AbortController interface aborts an asynchronous operation before it has completed.
   2726      *
   2727      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/abort)
   2728      */
   2729     abort(reason?: any): void;
   2730 }
   2731 
   2732 declare var AbortController: {
   2733     prototype: AbortController;
   2734     new(): AbortController;
   2735 };
   2736 
   2737 interface AbortSignalEventMap {
   2738     "abort": Event;
   2739 }
   2740 
   2741 /**
   2742  * The **`AbortSignal`** interface represents a signal object that allows you to communicate with an asynchronous operation (such as a fetch request) and abort it if required via an AbortController object.
   2743  *
   2744  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal)
   2745  */
   2746 interface AbortSignal extends EventTarget {
   2747     /**
   2748      * The **`aborted`** read-only property returns a value that indicates whether the asynchronous operations the signal is communicating with are aborted (`true`) or not (`false`).
   2749      *
   2750      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/aborted)
   2751      */
   2752     readonly aborted: boolean;
   2753     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_event) */
   2754     onabort: ((this: AbortSignal, ev: Event) => any) | null;
   2755     /**
   2756      * The **`reason`** read-only property returns a JavaScript value that indicates the abort reason.
   2757      *
   2758      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/reason)
   2759      */
   2760     readonly reason: any;
   2761     /**
   2762      * The **`throwIfAborted()`** method throws the signal's abort AbortSignal.reason if the signal has been aborted; otherwise it does nothing.
   2763      *
   2764      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/throwIfAborted)
   2765      */
   2766     throwIfAborted(): void;
   2767     addEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   2768     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   2769     removeEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   2770     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   2771 }
   2772 
   2773 declare var AbortSignal: {
   2774     prototype: AbortSignal;
   2775     new(): AbortSignal;
   2776     /**
   2777      * The **`AbortSignal.abort()`** static method returns an AbortSignal that is already set as aborted (and which does not trigger an AbortSignal/abort_event event).
   2778      *
   2779      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_static)
   2780      */
   2781     abort(reason?: any): AbortSignal;
   2782     /**
   2783      * The **`AbortSignal.any()`** static method takes an iterable of abort signals and returns an AbortSignal.
   2784      *
   2785      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/any_static)
   2786      */
   2787     any(signals: AbortSignal[]): AbortSignal;
   2788     /**
   2789      * The **`AbortSignal.timeout()`** static method returns an AbortSignal that will automatically abort after a specified time.
   2790      *
   2791      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/timeout_static)
   2792      */
   2793     timeout(milliseconds: number): AbortSignal;
   2794 };
   2795 
   2796 /**
   2797  * The **`AbstractRange`** abstract interface is the base class upon which all DOM range types are defined.
   2798  *
   2799  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange)
   2800  */
   2801 interface AbstractRange {
   2802     /**
   2803      * The read-only **`collapsed`** property of the AbstractRange interface returns `true` if the range's start position and end position are the same.
   2804      *
   2805      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/collapsed)
   2806      */
   2807     readonly collapsed: boolean;
   2808     /**
   2809      * The read-only **`endContainer`** property of the AbstractRange interface returns the Node in which the end of the range is located.
   2810      *
   2811      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/endContainer)
   2812      */
   2813     readonly endContainer: Node;
   2814     /**
   2815      * The **`endOffset`** property of the AbstractRange interface returns the offset into the end node of the range's end position.
   2816      *
   2817      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/endOffset)
   2818      */
   2819     readonly endOffset: number;
   2820     /**
   2821      * The read-only **`startContainer`** property of the AbstractRange interface returns the start Node for the range.
   2822      *
   2823      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/startContainer)
   2824      */
   2825     readonly startContainer: Node;
   2826     /**
   2827      * The read-only **`startOffset`** property of the AbstractRange interface returns the offset into the start node of the range's start position.
   2828      *
   2829      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/startOffset)
   2830      */
   2831     readonly startOffset: number;
   2832 }
   2833 
   2834 declare var AbstractRange: {
   2835     prototype: AbstractRange;
   2836     new(): AbstractRange;
   2837 };
   2838 
   2839 interface AbstractWorkerEventMap {
   2840     "error": ErrorEvent;
   2841 }
   2842 
   2843 interface AbstractWorker {
   2844     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/error_event) */
   2845     onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;
   2846     addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   2847     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   2848     removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   2849     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   2850 }
   2851 
   2852 /**
   2853  * The **`AnalyserNode`** interface represents a node able to provide real-time frequency and time-domain analysis information.
   2854  *
   2855  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode)
   2856  */
   2857 interface AnalyserNode extends AudioNode {
   2858     /**
   2859      * The **`fftSize`** property of the AnalyserNode interface is an unsigned long value and represents the window size in samples that is used when performing a Fast Fourier Transform (FFT) to get frequency domain data.
   2860      *
   2861      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/fftSize)
   2862      */
   2863     fftSize: number;
   2864     /**
   2865      * The **`frequencyBinCount`** read-only property of the AnalyserNode interface contains the total number of data points available to AudioContext BaseAudioContext.sampleRate.
   2866      *
   2867      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/frequencyBinCount)
   2868      */
   2869     readonly frequencyBinCount: number;
   2870     /**
   2871      * The **`maxDecibels`** property of the AnalyserNode interface is a double value representing the maximum power value in the scaling range for the FFT analysis data, for conversion to unsigned byte values — basically, this specifies the maximum value for the range of results when using `getByteFrequencyData()`.
   2872      *
   2873      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/maxDecibels)
   2874      */
   2875     maxDecibels: number;
   2876     /**
   2877      * The **`minDecibels`** property of the AnalyserNode interface is a double value representing the minimum power value in the scaling range for the FFT analysis data, for conversion to unsigned byte values — basically, this specifies the minimum value for the range of results when using `getByteFrequencyData()`.
   2878      *
   2879      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/minDecibels)
   2880      */
   2881     minDecibels: number;
   2882     /**
   2883      * The **`smoothingTimeConstant`** property of the AnalyserNode interface is a double value representing the averaging constant with the last analysis frame.
   2884      *
   2885      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/smoothingTimeConstant)
   2886      */
   2887     smoothingTimeConstant: number;
   2888     /**
   2889      * The **`getByteFrequencyData()`** method of the AnalyserNode interface copies the current frequency data into a Uint8Array (unsigned byte array) passed into it.
   2890      *
   2891      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getByteFrequencyData)
   2892      */
   2893     getByteFrequencyData(array: Uint8Array<ArrayBuffer>): void;
   2894     /**
   2895      * The **`getByteTimeDomainData()`** method of the AnalyserNode Interface copies the current waveform, or time-domain, data into a Uint8Array (unsigned byte array) passed into it.
   2896      *
   2897      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getByteTimeDomainData)
   2898      */
   2899     getByteTimeDomainData(array: Uint8Array<ArrayBuffer>): void;
   2900     /**
   2901      * The **`getFloatFrequencyData()`** method of the AnalyserNode Interface copies the current frequency data into a Float32Array array passed into it.
   2902      *
   2903      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getFloatFrequencyData)
   2904      */
   2905     getFloatFrequencyData(array: Float32Array<ArrayBuffer>): void;
   2906     /**
   2907      * The **`getFloatTimeDomainData()`** method of the AnalyserNode Interface copies the current waveform, or time-domain, data into a Float32Array array passed into it.
   2908      *
   2909      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getFloatTimeDomainData)
   2910      */
   2911     getFloatTimeDomainData(array: Float32Array<ArrayBuffer>): void;
   2912 }
   2913 
   2914 declare var AnalyserNode: {
   2915     prototype: AnalyserNode;
   2916     new(context: BaseAudioContext, options?: AnalyserOptions): AnalyserNode;
   2917 };
   2918 
   2919 interface Animatable {
   2920     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animate) */
   2921     animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;
   2922     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAnimations) */
   2923     getAnimations(options?: GetAnimationsOptions): Animation[];
   2924 }
   2925 
   2926 interface AnimationEventMap {
   2927     "cancel": AnimationPlaybackEvent;
   2928     "finish": AnimationPlaybackEvent;
   2929     "remove": AnimationPlaybackEvent;
   2930 }
   2931 
   2932 /**
   2933  * The **`Animation`** interface of the Web Animations API represents a single animation player and provides playback controls and a timeline for an animation node or source.
   2934  *
   2935  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation)
   2936  */
   2937 interface Animation extends EventTarget {
   2938     /**
   2939      * The **`Animation.currentTime`** property of the Web Animations API returns and sets the current time value of the animation in milliseconds, whether running or paused.
   2940      *
   2941      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/currentTime)
   2942      */
   2943     currentTime: CSSNumberish | null;
   2944     /**
   2945      * The **`Animation.effect`** property of the Web Animations API gets and sets the target effect of an animation.
   2946      *
   2947      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/effect)
   2948      */
   2949     effect: AnimationEffect | null;
   2950     /**
   2951      * The **`Animation.finished`** read-only property of the Web Animations API returns a Promise which resolves once the animation has finished playing.
   2952      *
   2953      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finished)
   2954      */
   2955     readonly finished: Promise<Animation>;
   2956     /**
   2957      * The **`Animation.id`** property of the Web Animations API returns or sets a string used to identify the animation.
   2958      *
   2959      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/id)
   2960      */
   2961     id: string;
   2962     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/cancel_event) */
   2963     oncancel: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;
   2964     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finish_event) */
   2965     onfinish: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;
   2966     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/remove_event) */
   2967     onremove: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;
   2968     /**
   2969      * The read-only **`Animation.pending`** property of the Web Animations API indicates whether the animation is currently waiting for an asynchronous operation such as initiating playback or pausing a running animation.
   2970      *
   2971      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/pending)
   2972      */
   2973     readonly pending: boolean;
   2974     /**
   2975      * The read-only **`Animation.playState`** property of the Web Animations API returns an enumerated value describing the playback state of an animation.
   2976      *
   2977      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/playState)
   2978      */
   2979     readonly playState: AnimationPlayState;
   2980     /**
   2981      * The **`Animation.playbackRate`** property of the Web Animations API returns or sets the playback rate of the animation.
   2982      *
   2983      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/playbackRate)
   2984      */
   2985     playbackRate: number;
   2986     /**
   2987      * The read-only **`Animation.ready`** property of the Web Animations API returns a Promise which resolves when the animation is ready to play.
   2988      *
   2989      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/ready)
   2990      */
   2991     readonly ready: Promise<Animation>;
   2992     /**
   2993      * The read-only **`Animation.replaceState`** property of the Web Animations API indicates whether the animation has been removed by the browser automatically after being replaced by another animation.
   2994      *
   2995      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/replaceState)
   2996      */
   2997     readonly replaceState: AnimationReplaceState;
   2998     /**
   2999      * The **`Animation.startTime`** property of the Animation interface is a double-precision floating-point value which indicates the scheduled time when an animation's playback should begin.
   3000      *
   3001      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/startTime)
   3002      */
   3003     startTime: CSSNumberish | null;
   3004     /**
   3005      * The **`Animation.timeline`** property of the Animation interface returns or sets the AnimationTimeline associated with this animation.
   3006      *
   3007      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/timeline)
   3008      */
   3009     timeline: AnimationTimeline | null;
   3010     /**
   3011      * The Web Animations API's **`cancel()`** method of the Animation interface clears all KeyframeEffects caused by this animation and aborts its playback.
   3012      *
   3013      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/cancel)
   3014      */
   3015     cancel(): void;
   3016     /**
   3017      * The `commitStyles()` method of the Web Animations API's Animation interface writes the computed values of the animation's current styles into its target element's `style` attribute.
   3018      *
   3019      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/commitStyles)
   3020      */
   3021     commitStyles(): void;
   3022     /**
   3023      * The **`finish()`** method of the Web Animations API's Animation Interface sets the current playback time to the end of the animation corresponding to the current playback direction.
   3024      *
   3025      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finish)
   3026      */
   3027     finish(): void;
   3028     /**
   3029      * The **`pause()`** method of the Web Animations API's Animation interface suspends playback of the animation.
   3030      *
   3031      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/pause)
   3032      */
   3033     pause(): void;
   3034     /**
   3035      * The `persist()` method of the Web Animations API's Animation interface explicitly persists an animation, preventing it from being automatically removed when it is replaced by another animation.
   3036      *
   3037      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/persist)
   3038      */
   3039     persist(): void;
   3040     /**
   3041      * The **`play()`** method of the Web Animations API's Animation Interface starts or resumes playing of an animation.
   3042      *
   3043      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/play)
   3044      */
   3045     play(): void;
   3046     /**
   3047      * The **`Animation.reverse()`** method of the Animation Interface reverses the playback direction, meaning the animation ends at its beginning.
   3048      *
   3049      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/reverse)
   3050      */
   3051     reverse(): void;
   3052     /**
   3053      * The **`updatePlaybackRate()`** method of the Web Animations API's synchronizing its playback position.
   3054      *
   3055      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/updatePlaybackRate)
   3056      */
   3057     updatePlaybackRate(playbackRate: number): void;
   3058     addEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   3059     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   3060     removeEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   3061     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   3062 }
   3063 
   3064 declare var Animation: {
   3065     prototype: Animation;
   3066     new(effect?: AnimationEffect | null, timeline?: AnimationTimeline | null): Animation;
   3067 };
   3068 
   3069 /**
   3070  * The `AnimationEffect` interface of the Web Animations API is an interface representing animation effects.
   3071  *
   3072  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect)
   3073  */
   3074 interface AnimationEffect {
   3075     /**
   3076      * The `getComputedTiming()` method of the AnimationEffect interface returns the calculated timing properties for this animation effect.
   3077      *
   3078      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/getComputedTiming)
   3079      */
   3080     getComputedTiming(): ComputedEffectTiming;
   3081     /**
   3082      * The `AnimationEffect.getTiming()` method of the AnimationEffect interface returns an object containing the timing properties for the Animation Effect.
   3083      *
   3084      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/getTiming)
   3085      */
   3086     getTiming(): EffectTiming;
   3087     /**
   3088      * The `updateTiming()` method of the AnimationEffect interface updates the specified timing properties for an animation effect.
   3089      *
   3090      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/updateTiming)
   3091      */
   3092     updateTiming(timing?: OptionalEffectTiming): void;
   3093 }
   3094 
   3095 declare var AnimationEffect: {
   3096     prototype: AnimationEffect;
   3097     new(): AnimationEffect;
   3098 };
   3099 
   3100 /**
   3101  * The **`AnimationEvent`** interface represents events providing information related to animations.
   3102  *
   3103  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent)
   3104  */
   3105 interface AnimationEvent extends Event {
   3106     /**
   3107      * The **`AnimationEvent.animationName`** read-only property is a string containing the value of the animation-name CSS property associated with the transition.
   3108      *
   3109      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/animationName)
   3110      */
   3111     readonly animationName: string;
   3112     /**
   3113      * The **`AnimationEvent.elapsedTime`** read-only property is a `float` giving the amount of time the animation has been running, in seconds, when this event fired, excluding any time the animation was paused.
   3114      *
   3115      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/elapsedTime)
   3116      */
   3117     readonly elapsedTime: number;
   3118     /**
   3119      * The **`AnimationEvent.pseudoElement`** read-only property is a string, starting with `'::'`, containing the name of the pseudo-element the animation runs on.
   3120      *
   3121      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/pseudoElement)
   3122      */
   3123     readonly pseudoElement: string;
   3124 }
   3125 
   3126 declare var AnimationEvent: {
   3127     prototype: AnimationEvent;
   3128     new(type: string, animationEventInitDict?: AnimationEventInit): AnimationEvent;
   3129 };
   3130 
   3131 interface AnimationFrameProvider {
   3132     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/cancelAnimationFrame) */
   3133     cancelAnimationFrame(handle: number): void;
   3134     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/requestAnimationFrame) */
   3135     requestAnimationFrame(callback: FrameRequestCallback): number;
   3136 }
   3137 
   3138 /**
   3139  * The AnimationPlaybackEvent interface of the Web Animations API represents animation events.
   3140  *
   3141  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent)
   3142  */
   3143 interface AnimationPlaybackEvent extends Event {
   3144     /**
   3145      * The **`currentTime`** read-only property of the AnimationPlaybackEvent interface represents the current time of the animation that generated the event at the moment the event is queued.
   3146      *
   3147      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent/currentTime)
   3148      */
   3149     readonly currentTime: CSSNumberish | null;
   3150     /**
   3151      * The **`timelineTime`** read-only property of the AnimationPlaybackEvent interface represents the time value of the animation's AnimationTimeline at the moment the event is queued.
   3152      *
   3153      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent/timelineTime)
   3154      */
   3155     readonly timelineTime: CSSNumberish | null;
   3156 }
   3157 
   3158 declare var AnimationPlaybackEvent: {
   3159     prototype: AnimationPlaybackEvent;
   3160     new(type: string, eventInitDict?: AnimationPlaybackEventInit): AnimationPlaybackEvent;
   3161 };
   3162 
   3163 /**
   3164  * The `AnimationTimeline` interface of the Web Animations API represents the timeline of an animation.
   3165  *
   3166  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationTimeline)
   3167  */
   3168 interface AnimationTimeline {
   3169     /**
   3170      * The **`currentTime`** read-only property of the Web Animations API's AnimationTimeline interface returns the timeline's current time in milliseconds, or `null` if the timeline is inactive.
   3171      *
   3172      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationTimeline/currentTime)
   3173      */
   3174     readonly currentTime: CSSNumberish | null;
   3175 }
   3176 
   3177 declare var AnimationTimeline: {
   3178     prototype: AnimationTimeline;
   3179     new(): AnimationTimeline;
   3180 };
   3181 
   3182 /**
   3183  * The **`Attr`** interface represents one of an element's attributes as an object.
   3184  *
   3185  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr)
   3186  */
   3187 interface Attr extends Node {
   3188     /**
   3189      * The read-only **`localName`** property of the Attr interface returns the _local part_ of the _qualified name_ of an attribute, that is the name of the attribute, stripped from any namespace in front of it.
   3190      *
   3191      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/localName)
   3192      */
   3193     readonly localName: string;
   3194     /**
   3195      * The read-only **`name`** property of the Attr interface returns the _qualified name_ of an attribute, that is the name of the attribute, with the namespace prefix, if any, in front of it.
   3196      *
   3197      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/name)
   3198      */
   3199     readonly name: string;
   3200     /**
   3201      * The read-only **`namespaceURI`** property of the Attr interface returns the namespace URI of the attribute, or `null` if the element is not in a namespace.
   3202      *
   3203      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/namespaceURI)
   3204      */
   3205     readonly namespaceURI: string | null;
   3206     readonly ownerDocument: Document;
   3207     /**
   3208      * The read-only **`ownerElement`** property of the Attr interface returns the Element the attribute belongs to.
   3209      *
   3210      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/ownerElement)
   3211      */
   3212     readonly ownerElement: Element | null;
   3213     /**
   3214      * The read-only **`prefix`** property of the Attr returns the namespace prefix of the attribute, or `null` if no prefix is specified.
   3215      *
   3216      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/prefix)
   3217      */
   3218     readonly prefix: string | null;
   3219     /**
   3220      * The read-only **`specified`** property of the Attr interface always returns `true`.
   3221      * @deprecated
   3222      *
   3223      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/specified)
   3224      */
   3225     readonly specified: boolean;
   3226     /**
   3227      * The **`value`** property of the Attr interface contains the value of the attribute.
   3228      *
   3229      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/value)
   3230      */
   3231     value: string;
   3232     /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) */
   3233     get textContent(): string;
   3234     set textContent(value: string | null);
   3235 }
   3236 
   3237 declare var Attr: {
   3238     prototype: Attr;
   3239     new(): Attr;
   3240 };
   3241 
   3242 /**
   3243  * The **`AudioBuffer`** interface represents a short audio asset residing in memory, created from an audio file using the BaseAudioContext/decodeAudioData method, or from raw data using BaseAudioContext/createBuffer.
   3244  *
   3245  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer)
   3246  */
   3247 interface AudioBuffer {
   3248     /**
   3249      * The **`duration`** property of the AudioBuffer interface returns a double representing the duration, in seconds, of the PCM data stored in the buffer.
   3250      *
   3251      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/duration)
   3252      */
   3253     readonly duration: number;
   3254     /**
   3255      * The **`length`** property of the AudioBuffer interface returns an integer representing the length, in sample-frames, of the PCM data stored in the buffer.
   3256      *
   3257      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/length)
   3258      */
   3259     readonly length: number;
   3260     /**
   3261      * The `numberOfChannels` property of the AudioBuffer interface returns an integer representing the number of discrete audio channels described by the PCM data stored in the buffer.
   3262      *
   3263      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/numberOfChannels)
   3264      */
   3265     readonly numberOfChannels: number;
   3266     /**
   3267      * The **`sampleRate`** property of the AudioBuffer interface returns a float representing the sample rate, in samples per second, of the PCM data stored in the buffer.
   3268      *
   3269      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/sampleRate)
   3270      */
   3271     readonly sampleRate: number;
   3272     /**
   3273      * The **`copyFromChannel()`** method of the channel of the `AudioBuffer` to a specified ```js-nolint copyFromChannel(destination, channelNumber, startInChannel) ``` - `destination` - : A Float32Array to copy the channel's samples to.
   3274      *
   3275      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/copyFromChannel)
   3276      */
   3277     copyFromChannel(destination: Float32Array<ArrayBuffer>, channelNumber: number, bufferOffset?: number): void;
   3278     /**
   3279      * The `copyToChannel()` method of the AudioBuffer interface copies the samples to the specified channel of the `AudioBuffer`, from the source array.
   3280      *
   3281      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/copyToChannel)
   3282      */
   3283     copyToChannel(source: Float32Array<ArrayBuffer>, channelNumber: number, bufferOffset?: number): void;
   3284     /**
   3285      * The **`getChannelData()`** method of the AudioBuffer Interface returns a Float32Array containing the PCM data associated with the channel, defined by the channel parameter (with 0 representing the first channel).
   3286      *
   3287      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/getChannelData)
   3288      */
   3289     getChannelData(channel: number): Float32Array<ArrayBuffer>;
   3290 }
   3291 
   3292 declare var AudioBuffer: {
   3293     prototype: AudioBuffer;
   3294     new(options: AudioBufferOptions): AudioBuffer;
   3295 };
   3296 
   3297 /**
   3298  * The **`AudioBufferSourceNode`** interface is an AudioScheduledSourceNode which represents an audio source consisting of in-memory audio data, stored in an AudioBuffer.
   3299  *
   3300  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode)
   3301  */
   3302 interface AudioBufferSourceNode extends AudioScheduledSourceNode {
   3303     /**
   3304      * The **`buffer`** property of the AudioBufferSourceNode interface provides the ability to play back audio using an AudioBuffer as the source of the sound data.
   3305      *
   3306      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/buffer)
   3307      */
   3308     buffer: AudioBuffer | null;
   3309     /**
   3310      * The **`detune`** property of the representing detuning of oscillation in cents.
   3311      *
   3312      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/detune)
   3313      */
   3314     readonly detune: AudioParam;
   3315     /**
   3316      * The `loop` property of the AudioBufferSourceNode interface is a Boolean indicating if the audio asset must be replayed when the end of the AudioBuffer is reached.
   3317      *
   3318      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loop)
   3319      */
   3320     loop: boolean;
   3321     /**
   3322      * The `loopEnd` property of the AudioBufferSourceNode interface specifies is a floating point number specifying, in seconds, at what offset into playing the AudioBuffer playback should loop back to the time indicated by the AudioBufferSourceNode.loopStart property.
   3323      *
   3324      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loopEnd)
   3325      */
   3326     loopEnd: number;
   3327     /**
   3328      * The **`loopStart`** property of the AudioBufferSourceNode interface is a floating-point value indicating, in seconds, where in the AudioBuffer the restart of the play must happen.
   3329      *
   3330      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loopStart)
   3331      */
   3332     loopStart: number;
   3333     /**
   3334      * The **`playbackRate`** property of the AudioBufferSourceNode interface Is a k-rate AudioParam that defines the speed at which the audio asset will be played.
   3335      *
   3336      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/playbackRate)
   3337      */
   3338     readonly playbackRate: AudioParam;
   3339     /**
   3340      * The `start()` method of the AudioBufferSourceNode Interface is used to schedule playback of the audio data contained in the buffer, or to begin playback immediately.
   3341      *
   3342      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/start)
   3343      */
   3344     start(when?: number, offset?: number, duration?: number): void;
   3345     addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   3346     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   3347     removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   3348     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   3349 }
   3350 
   3351 declare var AudioBufferSourceNode: {
   3352     prototype: AudioBufferSourceNode;
   3353     new(context: BaseAudioContext, options?: AudioBufferSourceOptions): AudioBufferSourceNode;
   3354 };
   3355 
   3356 /**
   3357  * The `AudioContext` interface represents an audio-processing graph built from audio modules linked together, each represented by an AudioNode.
   3358  *
   3359  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext)
   3360  */
   3361 interface AudioContext extends BaseAudioContext {
   3362     /**
   3363      * The **`baseLatency`** read-only property of the seconds of processing latency incurred by the `AudioContext` passing an audio buffer from the AudioDestinationNode — i.e., the end of the audio graph — into the host system's audio subsystem ready for playing.
   3364      *
   3365      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/baseLatency)
   3366      */
   3367     readonly baseLatency: number;
   3368     /**
   3369      * The **`outputLatency`** read-only property of the AudioContext Interface provides an estimation of the output latency of the current audio context.
   3370      *
   3371      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/outputLatency)
   3372      */
   3373     readonly outputLatency: number;
   3374     /**
   3375      * The `close()` method of the AudioContext Interface closes the audio context, releasing any system audio resources that it uses.
   3376      *
   3377      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/close)
   3378      */
   3379     close(): Promise<void>;
   3380     /**
   3381      * The `createMediaElementSource()` method of the AudioContext Interface is used to create a new MediaElementAudioSourceNode object, given an existing HTML audio or video element, the audio from which can then be played and manipulated.
   3382      *
   3383      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaElementSource)
   3384      */
   3385     createMediaElementSource(mediaElement: HTMLMediaElement): MediaElementAudioSourceNode;
   3386     /**
   3387      * The `createMediaStreamDestination()` method of the AudioContext Interface is used to create a new MediaStreamAudioDestinationNode object associated with a WebRTC MediaStream representing an audio stream, which may be stored in a local file or sent to another computer.
   3388      *
   3389      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamDestination)
   3390      */
   3391     createMediaStreamDestination(): MediaStreamAudioDestinationNode;
   3392     /**
   3393      * The `createMediaStreamSource()` method of the AudioContext Interface is used to create a new MediaStreamAudioSourceNode object, given a media stream (say, from a MediaDevices.getUserMedia instance), the audio from which can then be played and manipulated.
   3394      *
   3395      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamSource)
   3396      */
   3397     createMediaStreamSource(mediaStream: MediaStream): MediaStreamAudioSourceNode;
   3398     /**
   3399      * The **`getOutputTimestamp()`** method of the containing two audio timestamp values relating to the current audio context.
   3400      *
   3401      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/getOutputTimestamp)
   3402      */
   3403     getOutputTimestamp(): AudioTimestamp;
   3404     /**
   3405      * The **`resume()`** method of the AudioContext interface resumes the progression of time in an audio context that has previously been suspended.
   3406      *
   3407      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/resume)
   3408      */
   3409     resume(): Promise<void>;
   3410     /**
   3411      * The `suspend()` method of the AudioContext Interface suspends the progression of time in the audio context, temporarily halting audio hardware access and reducing CPU/battery usage in the process — this is useful if you want an application to power down the audio hardware when it will not be using an audio context for a while.
   3412      *
   3413      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/suspend)
   3414      */
   3415     suspend(): Promise<void>;
   3416     addEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   3417     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   3418     removeEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   3419     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   3420 }
   3421 
   3422 declare var AudioContext: {
   3423     prototype: AudioContext;
   3424     new(contextOptions?: AudioContextOptions): AudioContext;
   3425 };
   3426 
   3427 /**
   3428  * The **`AudioData`** interface of the WebCodecs API represents an audio sample.
   3429  *
   3430  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData)
   3431  */
   3432 interface AudioData {
   3433     /**
   3434      * The **`duration`** read-only property of the AudioData interface returns the duration in microseconds of this `AudioData` object.
   3435      *
   3436      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/duration)
   3437      */
   3438     readonly duration: number;
   3439     /**
   3440      * The **`format`** read-only property of the AudioData interface returns the sample format of the `AudioData` object.
   3441      *
   3442      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/format)
   3443      */
   3444     readonly format: AudioSampleFormat | null;
   3445     /**
   3446      * The **`numberOfChannels`** read-only property of the AudioData interface returns the number of channels in the `AudioData` object.
   3447      *
   3448      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfChannels)
   3449      */
   3450     readonly numberOfChannels: number;
   3451     /**
   3452      * The **`numberOfFrames`** read-only property of the AudioData interface returns the number of frames in the `AudioData` object.
   3453      *
   3454      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/numberOfFrames)
   3455      */
   3456     readonly numberOfFrames: number;
   3457     /**
   3458      * The **`sampleRate`** read-only property of the AudioData interface returns the sample rate in Hz.
   3459      *
   3460      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/sampleRate)
   3461      */
   3462     readonly sampleRate: number;
   3463     /**
   3464      * The **`timestamp`** read-only property of the AudioData interface returns the timestamp of this `AudioData` object.
   3465      *
   3466      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/timestamp)
   3467      */
   3468     readonly timestamp: number;
   3469     /**
   3470      * The **`allocationSize()`** method of the AudioData interface returns the size in bytes required to hold the current sample as filtered by options passed into the method.
   3471      *
   3472      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/allocationSize)
   3473      */
   3474     allocationSize(options: AudioDataCopyToOptions): number;
   3475     /**
   3476      * The **`clone()`** method of the AudioData interface creates a new `AudioData` object with reference to the same media resource as the original.
   3477      *
   3478      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/clone)
   3479      */
   3480     clone(): AudioData;
   3481     /**
   3482      * The **`close()`** method of the AudioData interface clears all states and releases the reference to the media resource.
   3483      *
   3484      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/close)
   3485      */
   3486     close(): void;
   3487     /**
   3488      * The **`copyTo()`** method of the AudioData interface copies a plane of an `AudioData` object to a destination buffer.
   3489      *
   3490      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioData/copyTo)
   3491      */
   3492     copyTo(destination: AllowSharedBufferSource, options: AudioDataCopyToOptions): void;
   3493 }
   3494 
   3495 declare var AudioData: {
   3496     prototype: AudioData;
   3497     new(init: AudioDataInit): AudioData;
   3498 };
   3499 
   3500 interface AudioDecoderEventMap {
   3501     "dequeue": Event;
   3502 }
   3503 
   3504 /**
   3505  * The **`AudioDecoder`** interface of the WebCodecs API decodes chunks of audio.
   3506  * Available only in secure contexts.
   3507  *
   3508  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder)
   3509  */
   3510 interface AudioDecoder extends EventTarget {
   3511     /**
   3512      * The **`decodeQueueSize`** read-only property of the AudioDecoder interface returns the number of pending decode requests in the queue.
   3513      *
   3514      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decodeQueueSize)
   3515      */
   3516     readonly decodeQueueSize: number;
   3517     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/dequeue_event) */
   3518     ondequeue: ((this: AudioDecoder, ev: Event) => any) | null;
   3519     /**
   3520      * The **`state`** read-only property of the AudioDecoder interface returns the current state of the underlying codec.
   3521      *
   3522      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/state)
   3523      */
   3524     readonly state: CodecState;
   3525     /**
   3526      * The **`close()`** method of the AudioDecoder interface ends all pending work and releases system resources.
   3527      *
   3528      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/close)
   3529      */
   3530     close(): void;
   3531     /**
   3532      * The **`configure()`** method of the AudioDecoder interface enqueues a control message to configure the audio decoder for decoding chunks.
   3533      *
   3534      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/configure)
   3535      */
   3536     configure(config: AudioDecoderConfig): void;
   3537     /**
   3538      * The **`decode()`** method of the AudioDecoder interface enqueues a control message to decode a given chunk of audio.
   3539      *
   3540      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/decode)
   3541      */
   3542     decode(chunk: EncodedAudioChunk): void;
   3543     /**
   3544      * The **`flush()`** method of the AudioDecoder interface returns a Promise that resolves once all pending messages in the queue have been completed.
   3545      *
   3546      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/flush)
   3547      */
   3548     flush(): Promise<void>;
   3549     /**
   3550      * The **`reset()`** method of the AudioDecoder interface resets all states including configuration, control messages in the control message queue, and all pending callbacks.
   3551      *
   3552      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/reset)
   3553      */
   3554     reset(): void;
   3555     addEventListener<K extends keyof AudioDecoderEventMap>(type: K, listener: (this: AudioDecoder, ev: AudioDecoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   3556     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   3557     removeEventListener<K extends keyof AudioDecoderEventMap>(type: K, listener: (this: AudioDecoder, ev: AudioDecoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   3558     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   3559 }
   3560 
   3561 declare var AudioDecoder: {
   3562     prototype: AudioDecoder;
   3563     new(init: AudioDecoderInit): AudioDecoder;
   3564     /**
   3565      * The **`isConfigSupported()`** static method of the AudioDecoder interface checks if the given config is supported (that is, if AudioDecoder objects can be successfully configured with the given config).
   3566      *
   3567      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDecoder/isConfigSupported_static)
   3568      */
   3569     isConfigSupported(config: AudioDecoderConfig): Promise<AudioDecoderSupport>;
   3570 };
   3571 
   3572 /**
   3573  * The `AudioDestinationNode` interface represents the end destination of an audio graph in a given context — usually the speakers of your device.
   3574  *
   3575  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDestinationNode)
   3576  */
   3577 interface AudioDestinationNode extends AudioNode {
   3578     /**
   3579      * The `maxChannelCount` property of the AudioDestinationNode interface is an `unsigned long` defining the maximum amount of channels that the physical device can handle.
   3580      *
   3581      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDestinationNode/maxChannelCount)
   3582      */
   3583     readonly maxChannelCount: number;
   3584 }
   3585 
   3586 declare var AudioDestinationNode: {
   3587     prototype: AudioDestinationNode;
   3588     new(): AudioDestinationNode;
   3589 };
   3590 
   3591 interface AudioEncoderEventMap {
   3592     "dequeue": Event;
   3593 }
   3594 
   3595 /**
   3596  * The **`AudioEncoder`** interface of the WebCodecs API encodes AudioData objects.
   3597  * Available only in secure contexts.
   3598  *
   3599  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder)
   3600  */
   3601 interface AudioEncoder extends EventTarget {
   3602     /**
   3603      * The **`encodeQueueSize`** read-only property of the AudioEncoder interface returns the number of pending encode requests in the queue.
   3604      *
   3605      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encodeQueueSize)
   3606      */
   3607     readonly encodeQueueSize: number;
   3608     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/dequeue_event) */
   3609     ondequeue: ((this: AudioEncoder, ev: Event) => any) | null;
   3610     /**
   3611      * The **`state`** read-only property of the AudioEncoder interface returns the current state of the underlying codec.
   3612      *
   3613      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/state)
   3614      */
   3615     readonly state: CodecState;
   3616     /**
   3617      * The **`close()`** method of the AudioEncoder interface ends all pending work and releases system resources.
   3618      *
   3619      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/close)
   3620      */
   3621     close(): void;
   3622     /**
   3623      * The **`configure()`** method of the AudioEncoder interface enqueues a control message to configure the audio encoder for encoding chunks.
   3624      *
   3625      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/configure)
   3626      */
   3627     configure(config: AudioEncoderConfig): void;
   3628     /**
   3629      * The **`encode()`** method of the AudioEncoder interface enqueues a control message to encode a given AudioData object.
   3630      *
   3631      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/encode)
   3632      */
   3633     encode(data: AudioData): void;
   3634     /**
   3635      * The **`flush()`** method of the AudioEncoder interface returns a Promise that resolves once all pending messages in the queue have been completed.
   3636      *
   3637      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/flush)
   3638      */
   3639     flush(): Promise<void>;
   3640     /**
   3641      * The **`reset()`** method of the AudioEncoder interface resets all states including configuration, control messages in the control message queue, and all pending callbacks.
   3642      *
   3643      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/reset)
   3644      */
   3645     reset(): void;
   3646     addEventListener<K extends keyof AudioEncoderEventMap>(type: K, listener: (this: AudioEncoder, ev: AudioEncoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   3647     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   3648     removeEventListener<K extends keyof AudioEncoderEventMap>(type: K, listener: (this: AudioEncoder, ev: AudioEncoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   3649     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   3650 }
   3651 
   3652 declare var AudioEncoder: {
   3653     prototype: AudioEncoder;
   3654     new(init: AudioEncoderInit): AudioEncoder;
   3655     /**
   3656      * The **`isConfigSupported()`** static method of the AudioEncoder interface checks if the given config is supported (that is, if AudioEncoder objects can be successfully configured with the given config).
   3657      *
   3658      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioEncoder/isConfigSupported_static)
   3659      */
   3660     isConfigSupported(config: AudioEncoderConfig): Promise<AudioEncoderSupport>;
   3661 };
   3662 
   3663 /**
   3664  * The `AudioListener` interface represents the position and orientation of the unique person listening to the audio scene, and is used in audio spatialization.
   3665  *
   3666  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener)
   3667  */
   3668 interface AudioListener {
   3669     /**
   3670      * The `forwardX` read-only property of the AudioListener interface is an AudioParam representing the x value of the direction vector defining the forward direction the listener is pointing in.
   3671      *
   3672      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/forwardX)
   3673      */
   3674     readonly forwardX: AudioParam;
   3675     /**
   3676      * The `forwardY` read-only property of the AudioListener interface is an AudioParam representing the y value of the direction vector defining the forward direction the listener is pointing in.
   3677      *
   3678      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/forwardY)
   3679      */
   3680     readonly forwardY: AudioParam;
   3681     /**
   3682      * The `forwardZ` read-only property of the AudioListener interface is an AudioParam representing the z value of the direction vector defining the forward direction the listener is pointing in.
   3683      *
   3684      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/forwardZ)
   3685      */
   3686     readonly forwardZ: AudioParam;
   3687     /**
   3688      * The `positionX` read-only property of the AudioListener interface is an AudioParam representing the x position of the listener in 3D cartesian space.
   3689      *
   3690      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/positionX)
   3691      */
   3692     readonly positionX: AudioParam;
   3693     /**
   3694      * The `positionY` read-only property of the AudioListener interface is an AudioParam representing the y position of the listener in 3D cartesian space.
   3695      *
   3696      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/positionY)
   3697      */
   3698     readonly positionY: AudioParam;
   3699     /**
   3700      * The `positionZ` read-only property of the AudioListener interface is an AudioParam representing the z position of the listener in 3D cartesian space.
   3701      *
   3702      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/positionZ)
   3703      */
   3704     readonly positionZ: AudioParam;
   3705     /**
   3706      * The `upX` read-only property of the AudioListener interface is an AudioParam representing the x value of the direction vector defining the up direction the listener is pointing in.
   3707      *
   3708      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/upX)
   3709      */
   3710     readonly upX: AudioParam;
   3711     /**
   3712      * The `upY` read-only property of the AudioListener interface is an AudioParam representing the y value of the direction vector defining the up direction the listener is pointing in.
   3713      *
   3714      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/upY)
   3715      */
   3716     readonly upY: AudioParam;
   3717     /**
   3718      * The `upZ` read-only property of the AudioListener interface is an AudioParam representing the z value of the direction vector defining the up direction the listener is pointing in.
   3719      *
   3720      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/upZ)
   3721      */
   3722     readonly upZ: AudioParam;
   3723     /**
   3724      * The `setOrientation()` method of the AudioListener interface defines the orientation of the listener.
   3725      * @deprecated
   3726      *
   3727      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/setOrientation)
   3728      */
   3729     setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void;
   3730     /**
   3731      * The `setPosition()` method of the AudioListener Interface defines the position of the listener.
   3732      * @deprecated
   3733      *
   3734      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/setPosition)
   3735      */
   3736     setPosition(x: number, y: number, z: number): void;
   3737 }
   3738 
   3739 declare var AudioListener: {
   3740     prototype: AudioListener;
   3741     new(): AudioListener;
   3742 };
   3743 
   3744 /**
   3745  * The **`AudioNode`** interface is a generic interface for representing an audio processing module.
   3746  *
   3747  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode)
   3748  */
   3749 interface AudioNode extends EventTarget {
   3750     /**
   3751      * The **`channelCount`** property of the AudioNode interface represents an integer used to determine how many channels are used when up-mixing and down-mixing connections to any inputs to the node.
   3752      *
   3753      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelCount)
   3754      */
   3755     channelCount: number;
   3756     /**
   3757      * The `channelCountMode` property of the AudioNode interface represents an enumerated value describing the way channels must be matched between the node's inputs and outputs.
   3758      *
   3759      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelCountMode)
   3760      */
   3761     channelCountMode: ChannelCountMode;
   3762     /**
   3763      * The **`channelInterpretation`** property of the AudioNode interface represents an enumerated value describing how input channels are mapped to output channels when the number of inputs/outputs is different.
   3764      *
   3765      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelInterpretation)
   3766      */
   3767     channelInterpretation: ChannelInterpretation;
   3768     /**
   3769      * The read-only `context` property of the the node is participating in.
   3770      *
   3771      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/context)
   3772      */
   3773     readonly context: BaseAudioContext;
   3774     /**
   3775      * The `numberOfInputs` property of the AudioNode interface returns the number of inputs feeding the node.
   3776      *
   3777      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/numberOfInputs)
   3778      */
   3779     readonly numberOfInputs: number;
   3780     /**
   3781      * The `numberOfOutputs` property of the AudioNode interface returns the number of outputs coming out of the node.
   3782      *
   3783      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/numberOfOutputs)
   3784      */
   3785     readonly numberOfOutputs: number;
   3786     /**
   3787      * The `connect()` method of the AudioNode interface lets you connect one of the node's outputs to a target, which may be either another `AudioNode` (thereby directing the sound data to the specified node) or an change the value of that parameter over time.
   3788      *
   3789      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/connect)
   3790      */
   3791     connect(destinationNode: AudioNode, output?: number, input?: number): AudioNode;
   3792     connect(destinationParam: AudioParam, output?: number): void;
   3793     /**
   3794      * The **`disconnect()`** method of the AudioNode interface lets you disconnect one or more nodes from the node on which the method is called.
   3795      *
   3796      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/disconnect)
   3797      */
   3798     disconnect(): void;
   3799     disconnect(output: number): void;
   3800     disconnect(destinationNode: AudioNode): void;
   3801     disconnect(destinationNode: AudioNode, output: number): void;
   3802     disconnect(destinationNode: AudioNode, output: number, input: number): void;
   3803     disconnect(destinationParam: AudioParam): void;
   3804     disconnect(destinationParam: AudioParam, output: number): void;
   3805 }
   3806 
   3807 declare var AudioNode: {
   3808     prototype: AudioNode;
   3809     new(): AudioNode;
   3810 };
   3811 
   3812 /**
   3813  * The Web Audio API's `AudioParam` interface represents an audio-related parameter, usually a parameter of an AudioNode (such as GainNode.gain).
   3814  *
   3815  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam)
   3816  */
   3817 interface AudioParam {
   3818     automationRate: AutomationRate;
   3819     /**
   3820      * The **`defaultValue`** read-only property of the AudioParam interface represents the initial value of the attributes as defined by the specific AudioNode creating the `AudioParam`.
   3821      *
   3822      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/defaultValue)
   3823      */
   3824     readonly defaultValue: number;
   3825     /**
   3826      * The **`maxValue`** read-only property of the AudioParam interface represents the maximum possible value for the parameter's nominal (effective) range.
   3827      *
   3828      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/maxValue)
   3829      */
   3830     readonly maxValue: number;
   3831     /**
   3832      * The **`minValue`** read-only property of the AudioParam interface represents the minimum possible value for the parameter's nominal (effective) range.
   3833      *
   3834      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/minValue)
   3835      */
   3836     readonly minValue: number;
   3837     /**
   3838      * The **`value`** property of the AudioParam interface gets or sets the value of this `AudioParam` at the current time.
   3839      *
   3840      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/value)
   3841      */
   3842     value: number;
   3843     /**
   3844      * The **`cancelAndHoldAtTime()`** method of the `AudioParam` but holds its value at a given time until further changes are made using other methods.
   3845      *
   3846      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/cancelAndHoldAtTime)
   3847      */
   3848     cancelAndHoldAtTime(cancelTime: number): AudioParam;
   3849     /**
   3850      * The `cancelScheduledValues()` method of the AudioParam Interface cancels all scheduled future changes to the `AudioParam`.
   3851      *
   3852      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/cancelScheduledValues)
   3853      */
   3854     cancelScheduledValues(cancelTime: number): AudioParam;
   3855     /**
   3856      * The **`exponentialRampToValueAtTime()`** method of the AudioParam Interface schedules a gradual exponential change in the value of the AudioParam.
   3857      *
   3858      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/exponentialRampToValueAtTime)
   3859      */
   3860     exponentialRampToValueAtTime(value: number, endTime: number): AudioParam;
   3861     /**
   3862      * The `linearRampToValueAtTime()` method of the AudioParam Interface schedules a gradual linear change in the value of the `AudioParam`.
   3863      *
   3864      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/linearRampToValueAtTime)
   3865      */
   3866     linearRampToValueAtTime(value: number, endTime: number): AudioParam;
   3867     /**
   3868      * The `setTargetAtTime()` method of the `AudioParam` value.
   3869      *
   3870      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setTargetAtTime)
   3871      */
   3872     setTargetAtTime(target: number, startTime: number, timeConstant: number): AudioParam;
   3873     /**
   3874      * The `setValueAtTime()` method of the `AudioParam` value at a precise time, as measured against ```js-nolint setValueAtTime(value, startTime) ``` - `value` - : A floating point number representing the value the AudioParam will change to at the given time.
   3875      *
   3876      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setValueAtTime)
   3877      */
   3878     setValueAtTime(value: number, startTime: number): AudioParam;
   3879     /**
   3880      * The **`setValueCurveAtTime()`** method of the following a curve defined by a list of values.
   3881      *
   3882      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setValueCurveAtTime)
   3883      */
   3884     setValueCurveAtTime(values: number[] | Float32Array, startTime: number, duration: number): AudioParam;
   3885 }
   3886 
   3887 declare var AudioParam: {
   3888     prototype: AudioParam;
   3889     new(): AudioParam;
   3890 };
   3891 
   3892 /**
   3893  * The **`AudioParamMap`** interface of the Web Audio API represents an iterable and read-only set of multiple audio parameters.
   3894  *
   3895  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParamMap)
   3896  */
   3897 interface AudioParamMap {
   3898     forEach(callbackfn: (value: AudioParam, key: string, parent: AudioParamMap) => void, thisArg?: any): void;
   3899 }
   3900 
   3901 declare var AudioParamMap: {
   3902     prototype: AudioParamMap;
   3903     new(): AudioParamMap;
   3904 };
   3905 
   3906 /**
   3907  * The `AudioProcessingEvent` interface of the Web Audio API represents events that occur when a ScriptProcessorNode input buffer is ready to be processed.
   3908  * @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.
   3909  *
   3910  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent)
   3911  */
   3912 interface AudioProcessingEvent extends Event {
   3913     /**
   3914      * The **`inputBuffer`** read-only property of the AudioProcessingEvent interface represents the input buffer of an audio processing event.
   3915      * @deprecated
   3916      *
   3917      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/inputBuffer)
   3918      */
   3919     readonly inputBuffer: AudioBuffer;
   3920     /**
   3921      * The **`outputBuffer`** read-only property of the AudioProcessingEvent interface represents the output buffer of an audio processing event.
   3922      * @deprecated
   3923      *
   3924      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/outputBuffer)
   3925      */
   3926     readonly outputBuffer: AudioBuffer;
   3927     /**
   3928      * The **`playbackTime`** read-only property of the AudioProcessingEvent interface represents the time when the audio will be played.
   3929      * @deprecated
   3930      *
   3931      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/playbackTime)
   3932      */
   3933     readonly playbackTime: number;
   3934 }
   3935 
   3936 /** @deprecated */
   3937 declare var AudioProcessingEvent: {
   3938     prototype: AudioProcessingEvent;
   3939     new(type: string, eventInitDict: AudioProcessingEventInit): AudioProcessingEvent;
   3940 };
   3941 
   3942 interface AudioScheduledSourceNodeEventMap {
   3943     "ended": Event;
   3944 }
   3945 
   3946 /**
   3947  * The `AudioScheduledSourceNode` interface—part of the Web Audio API—is a parent interface for several types of audio source node interfaces which share the ability to be started and stopped, optionally at specified times.
   3948  *
   3949  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode)
   3950  */
   3951 interface AudioScheduledSourceNode extends AudioNode {
   3952     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/ended_event) */
   3953     onended: ((this: AudioScheduledSourceNode, ev: Event) => any) | null;
   3954     /**
   3955      * The `start()` method on AudioScheduledSourceNode schedules a sound to begin playback at the specified time.
   3956      *
   3957      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/start)
   3958      */
   3959     start(when?: number): void;
   3960     /**
   3961      * The `stop()` method on AudioScheduledSourceNode schedules a sound to cease playback at the specified time.
   3962      *
   3963      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/stop)
   3964      */
   3965     stop(when?: number): void;
   3966     addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   3967     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   3968     removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   3969     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   3970 }
   3971 
   3972 declare var AudioScheduledSourceNode: {
   3973     prototype: AudioScheduledSourceNode;
   3974     new(): AudioScheduledSourceNode;
   3975 };
   3976 
   3977 /**
   3978  * The **`AudioWorklet`** interface of the Web Audio API is used to supply custom audio processing scripts that execute in a separate thread to provide very low latency audio processing.
   3979  * Available only in secure contexts.
   3980  *
   3981  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorklet)
   3982  */
   3983 interface AudioWorklet extends Worklet {
   3984 }
   3985 
   3986 declare var AudioWorklet: {
   3987     prototype: AudioWorklet;
   3988     new(): AudioWorklet;
   3989 };
   3990 
   3991 interface AudioWorkletNodeEventMap {
   3992     "processorerror": ErrorEvent;
   3993 }
   3994 
   3995 /**
   3996  * The **`AudioWorkletNode`** interface of the Web Audio API represents a base class for a user-defined AudioNode, which can be connected to an audio routing graph along with other nodes.
   3997  * Available only in secure contexts.
   3998  *
   3999  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode)
   4000  */
   4001 interface AudioWorkletNode extends AudioNode {
   4002     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/processorerror_event) */
   4003     onprocessorerror: ((this: AudioWorkletNode, ev: ErrorEvent) => any) | null;
   4004     /**
   4005      * The read-only **`parameters`** property of the underlying AudioWorkletProcessor according to its getter.
   4006      *
   4007      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/parameters)
   4008      */
   4009     readonly parameters: AudioParamMap;
   4010     /**
   4011      * The read-only **`port`** property of the associated AudioWorkletProcessor.
   4012      *
   4013      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/port)
   4014      */
   4015     readonly port: MessagePort;
   4016     addEventListener<K extends keyof AudioWorkletNodeEventMap>(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   4017     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   4018     removeEventListener<K extends keyof AudioWorkletNodeEventMap>(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   4019     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   4020 }
   4021 
   4022 declare var AudioWorkletNode: {
   4023     prototype: AudioWorkletNode;
   4024     new(context: BaseAudioContext, name: string, options?: AudioWorkletNodeOptions): AudioWorkletNode;
   4025 };
   4026 
   4027 /**
   4028  * The **`AuthenticatorAssertionResponse`** interface of the Web Authentication API contains a digital signature from the private key of a particular WebAuthn credential.
   4029  * Available only in secure contexts.
   4030  *
   4031  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse)
   4032  */
   4033 interface AuthenticatorAssertionResponse extends AuthenticatorResponse {
   4034     /**
   4035      * The **`authenticatorData`** property of the AuthenticatorAssertionResponse interface returns an ArrayBuffer containing information from the authenticator such as the Relying Party ID Hash (rpIdHash), a signature counter, test of user presence, user verification flags, and any extensions processed by the authenticator.
   4036      *
   4037      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/authenticatorData)
   4038      */
   4039     readonly authenticatorData: ArrayBuffer;
   4040     /**
   4041      * The **`signature`** read-only property of the object which is the signature of the authenticator for both the client data (AuthenticatorResponse.clientDataJSON).
   4042      *
   4043      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/signature)
   4044      */
   4045     readonly signature: ArrayBuffer;
   4046     /**
   4047      * The **`userHandle`** read-only property of the AuthenticatorAssertionResponse interface is an ArrayBuffer object providing an opaque identifier for the given user.
   4048      *
   4049      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/userHandle)
   4050      */
   4051     readonly userHandle: ArrayBuffer | null;
   4052 }
   4053 
   4054 declare var AuthenticatorAssertionResponse: {
   4055     prototype: AuthenticatorAssertionResponse;
   4056     new(): AuthenticatorAssertionResponse;
   4057 };
   4058 
   4059 /**
   4060  * The **`AuthenticatorAttestationResponse`** interface of the Web Authentication API is the result of a WebAuthn credential registration.
   4061  * Available only in secure contexts.
   4062  *
   4063  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse)
   4064  */
   4065 interface AuthenticatorAttestationResponse extends AuthenticatorResponse {
   4066     /**
   4067      * The **`attestationObject`** property of the entire `attestationObject` with a private key that is stored in the authenticator when it is manufactured.
   4068      *
   4069      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/attestationObject)
   4070      */
   4071     readonly attestationObject: ArrayBuffer;
   4072     /**
   4073      * The **`getAuthenticatorData()`** method of the AuthenticatorAttestationResponse interface returns an ArrayBuffer containing the authenticator data contained within the AuthenticatorAttestationResponse.attestationObject property.
   4074      *
   4075      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getAuthenticatorData)
   4076      */
   4077     getAuthenticatorData(): ArrayBuffer;
   4078     /**
   4079      * The **`getPublicKey()`** method of the AuthenticatorAttestationResponse interface returns an ArrayBuffer containing the DER `SubjectPublicKeyInfo` of the new credential (see Subject Public Key Info), or `null` if this is not available.
   4080      *
   4081      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getPublicKey)
   4082      */
   4083     getPublicKey(): ArrayBuffer | null;
   4084     /**
   4085      * The **`getPublicKeyAlgorithm()`** method of the AuthenticatorAttestationResponse interface returns a number that is equal to a COSE Algorithm Identifier, representing the cryptographic algorithm used for the new credential.
   4086      *
   4087      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getPublicKeyAlgorithm)
   4088      */
   4089     getPublicKeyAlgorithm(): COSEAlgorithmIdentifier;
   4090     /**
   4091      * The **`getTransports()`** method of the AuthenticatorAttestationResponse interface returns an array of strings describing the different transports which may be used by the authenticator.
   4092      *
   4093      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getTransports)
   4094      */
   4095     getTransports(): string[];
   4096 }
   4097 
   4098 declare var AuthenticatorAttestationResponse: {
   4099     prototype: AuthenticatorAttestationResponse;
   4100     new(): AuthenticatorAttestationResponse;
   4101 };
   4102 
   4103 /**
   4104  * The **`AuthenticatorResponse`** interface of the Web Authentication API is the base interface for interfaces that provide a cryptographic root of trust for a key pair.
   4105  * Available only in secure contexts.
   4106  *
   4107  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorResponse)
   4108  */
   4109 interface AuthenticatorResponse {
   4110     /**
   4111      * The **`clientDataJSON`** property of the AuthenticatorResponse interface stores a JSON string in an An ArrayBuffer.
   4112      *
   4113      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorResponse/clientDataJSON)
   4114      */
   4115     readonly clientDataJSON: ArrayBuffer;
   4116 }
   4117 
   4118 declare var AuthenticatorResponse: {
   4119     prototype: AuthenticatorResponse;
   4120     new(): AuthenticatorResponse;
   4121 };
   4122 
   4123 /**
   4124  * The **`BarProp`** interface of the Document Object Model represents the web browser user interface elements that are exposed to scripts in web pages.
   4125  *
   4126  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BarProp)
   4127  */
   4128 interface BarProp {
   4129     /**
   4130      * The **`visible`** read-only property of the BarProp interface returns `true` if the user interface element it represents is visible.
   4131      *
   4132      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BarProp/visible)
   4133      */
   4134     readonly visible: boolean;
   4135 }
   4136 
   4137 declare var BarProp: {
   4138     prototype: BarProp;
   4139     new(): BarProp;
   4140 };
   4141 
   4142 interface BaseAudioContextEventMap {
   4143     "statechange": Event;
   4144 }
   4145 
   4146 /**
   4147  * The `BaseAudioContext` interface of the Web Audio API acts as a base definition for online and offline audio-processing graphs, as represented by AudioContext and OfflineAudioContext respectively.
   4148  *
   4149  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext)
   4150  */
   4151 interface BaseAudioContext extends EventTarget {
   4152     /**
   4153      * The `audioWorklet` read-only property of the processing.
   4154      * Available only in secure contexts.
   4155      *
   4156      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/audioWorklet)
   4157      */
   4158     readonly audioWorklet: AudioWorklet;
   4159     /**
   4160      * The `currentTime` read-only property of the BaseAudioContext interface returns a double representing an ever-increasing hardware timestamp in seconds that can be used for scheduling audio playback, visualizing timelines, etc.
   4161      *
   4162      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/currentTime)
   4163      */
   4164     readonly currentTime: number;
   4165     /**
   4166      * The `destination` property of the BaseAudioContext interface returns an AudioDestinationNode representing the final destination of all audio in the context.
   4167      *
   4168      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/destination)
   4169      */
   4170     readonly destination: AudioDestinationNode;
   4171     /**
   4172      * The `listener` property of the BaseAudioContext interface returns an AudioListener object that can then be used for implementing 3D audio spatialization.
   4173      *
   4174      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/listener)
   4175      */
   4176     readonly listener: AudioListener;
   4177     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/statechange_event) */
   4178     onstatechange: ((this: BaseAudioContext, ev: Event) => any) | null;
   4179     /**
   4180      * The `sampleRate` property of the BaseAudioContext interface returns a floating point number representing the sample rate, in samples per second, used by all nodes in this audio context.
   4181      *
   4182      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/sampleRate)
   4183      */
   4184     readonly sampleRate: number;
   4185     /**
   4186      * The `state` read-only property of the BaseAudioContext interface returns the current state of the `AudioContext`.
   4187      *
   4188      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/state)
   4189      */
   4190     readonly state: AudioContextState;
   4191     /**
   4192      * The `createAnalyser()` method of the can be used to expose audio time and frequency data and create data visualizations.
   4193      *
   4194      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createAnalyser)
   4195      */
   4196     createAnalyser(): AnalyserNode;
   4197     /**
   4198      * The `createBiquadFilter()` method of the BaseAudioContext interface creates a BiquadFilterNode, which represents a second order filter configurable as several different common filter types.
   4199      *
   4200      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBiquadFilter)
   4201      */
   4202     createBiquadFilter(): BiquadFilterNode;
   4203     /**
   4204      * The `createBuffer()` method of the BaseAudioContext Interface is used to create a new, empty AudioBuffer object, which can then be populated by data, and played via an AudioBufferSourceNode.
   4205      *
   4206      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBuffer)
   4207      */
   4208     createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;
   4209     /**
   4210      * The `createBufferSource()` method of the BaseAudioContext Interface is used to create a new AudioBufferSourceNode, which can be used to play audio data contained within an AudioBuffer object.
   4211      *
   4212      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBufferSource)
   4213      */
   4214     createBufferSource(): AudioBufferSourceNode;
   4215     /**
   4216      * The `createChannelMerger()` method of the BaseAudioContext interface creates a ChannelMergerNode, which combines channels from multiple audio streams into a single audio stream.
   4217      *
   4218      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createChannelMerger)
   4219      */
   4220     createChannelMerger(numberOfInputs?: number): ChannelMergerNode;
   4221     /**
   4222      * The `createChannelSplitter()` method of the BaseAudioContext Interface is used to create a ChannelSplitterNode, which is used to access the individual channels of an audio stream and process them separately.
   4223      *
   4224      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createChannelSplitter)
   4225      */
   4226     createChannelSplitter(numberOfOutputs?: number): ChannelSplitterNode;
   4227     /**
   4228      * The **`createConstantSource()`** property of the BaseAudioContext interface creates a outputs a monaural (one-channel) sound signal whose samples all have the same value.
   4229      *
   4230      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createConstantSource)
   4231      */
   4232     createConstantSource(): ConstantSourceNode;
   4233     /**
   4234      * The `createConvolver()` method of the BaseAudioContext interface creates a ConvolverNode, which is commonly used to apply reverb effects to your audio.
   4235      *
   4236      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createConvolver)
   4237      */
   4238     createConvolver(): ConvolverNode;
   4239     /**
   4240      * The `createDelay()` method of the which is used to delay the incoming audio signal by a certain amount of time.
   4241      *
   4242      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createDelay)
   4243      */
   4244     createDelay(maxDelayTime?: number): DelayNode;
   4245     /**
   4246      * The `createDynamicsCompressor()` method of the BaseAudioContext Interface is used to create a DynamicsCompressorNode, which can be used to apply compression to an audio signal.
   4247      *
   4248      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createDynamicsCompressor)
   4249      */
   4250     createDynamicsCompressor(): DynamicsCompressorNode;
   4251     /**
   4252      * The `createGain()` method of the BaseAudioContext interface creates a GainNode, which can be used to control the overall gain (or volume) of the audio graph.
   4253      *
   4254      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createGain)
   4255      */
   4256     createGain(): GainNode;
   4257     /**
   4258      * The **`createIIRFilter()`** method of the BaseAudioContext interface creates an IIRFilterNode, which represents a general **infinite impulse response** (IIR) filter which can be configured to serve as various types of filter.
   4259      *
   4260      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createIIRFilter)
   4261      */
   4262     createIIRFilter(feedforward: number[], feedback: number[]): IIRFilterNode;
   4263     /**
   4264      * The `createOscillator()` method of the BaseAudioContext interface creates an OscillatorNode, a source representing a periodic waveform.
   4265      *
   4266      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createOscillator)
   4267      */
   4268     createOscillator(): OscillatorNode;
   4269     /**
   4270      * The `createPanner()` method of the BaseAudioContext Interface is used to create a new PannerNode, which is used to spatialize an incoming audio stream in 3D space.
   4271      *
   4272      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPanner)
   4273      */
   4274     createPanner(): PannerNode;
   4275     /**
   4276      * The `createPeriodicWave()` method of the BaseAudioContext interface is used to create a PeriodicWave.
   4277      *
   4278      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPeriodicWave)
   4279      */
   4280     createPeriodicWave(real: number[] | Float32Array, imag: number[] | Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave;
   4281     /**
   4282      * The `createScriptProcessor()` method of the BaseAudioContext interface creates a ScriptProcessorNode used for direct audio processing.
   4283      * @deprecated
   4284      *
   4285      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createScriptProcessor)
   4286      */
   4287     createScriptProcessor(bufferSize?: number, numberOfInputChannels?: number, numberOfOutputChannels?: number): ScriptProcessorNode;
   4288     /**
   4289      * The `createStereoPanner()` method of the BaseAudioContext interface creates a StereoPannerNode, which can be used to apply stereo panning to an audio source.
   4290      *
   4291      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createStereoPanner)
   4292      */
   4293     createStereoPanner(): StereoPannerNode;
   4294     /**
   4295      * The `createWaveShaper()` method of the BaseAudioContext interface creates a WaveShaperNode, which represents a non-linear distortion.
   4296      *
   4297      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createWaveShaper)
   4298      */
   4299     createWaveShaper(): WaveShaperNode;
   4300     /**
   4301      * The `decodeAudioData()` method of the BaseAudioContext Interface is used to asynchronously decode audio file data contained in an rate, then passed to a callback or promise.
   4302      *
   4303      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/decodeAudioData)
   4304      */
   4305     decodeAudioData(audioData: ArrayBuffer, successCallback?: DecodeSuccessCallback | null, errorCallback?: DecodeErrorCallback | null): Promise<AudioBuffer>;
   4306     addEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   4307     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   4308     removeEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   4309     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   4310 }
   4311 
   4312 declare var BaseAudioContext: {
   4313     prototype: BaseAudioContext;
   4314     new(): BaseAudioContext;
   4315 };
   4316 
   4317 /**
   4318  * The **`BeforeUnloadEvent`** interface represents the event object for the Window/beforeunload_event event, which is fired when the current window, contained document, and associated resources are about to be unloaded.
   4319  *
   4320  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BeforeUnloadEvent)
   4321  */
   4322 interface BeforeUnloadEvent extends Event {
   4323     /**
   4324      * The **`returnValue`** property of the `returnValue` is initialized to an empty string (`''`) value.
   4325      * @deprecated
   4326      *
   4327      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BeforeUnloadEvent/returnValue)
   4328      */
   4329     returnValue: any;
   4330 }
   4331 
   4332 declare var BeforeUnloadEvent: {
   4333     prototype: BeforeUnloadEvent;
   4334     new(): BeforeUnloadEvent;
   4335 };
   4336 
   4337 /**
   4338  * The `BiquadFilterNode` interface represents a simple low-order filter, and is created using the BaseAudioContext/createBiquadFilter method.
   4339  *
   4340  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode)
   4341  */
   4342 interface BiquadFilterNode extends AudioNode {
   4343     /**
   4344      * The `Q` property of the BiquadFilterNode interface is an a-rate AudioParam, a double representing a Q factor, or _quality factor_.
   4345      *
   4346      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/Q)
   4347      */
   4348     readonly Q: AudioParam;
   4349     /**
   4350      * The `detune` property of the BiquadFilterNode interface is an a-rate AudioParam representing detuning of the frequency in cents.
   4351      *
   4352      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/detune)
   4353      */
   4354     readonly detune: AudioParam;
   4355     /**
   4356      * The `frequency` property of the BiquadFilterNode interface is an a-rate AudioParam — a double representing a frequency in the current filtering algorithm measured in hertz (Hz).
   4357      *
   4358      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/frequency)
   4359      */
   4360     readonly frequency: AudioParam;
   4361     /**
   4362      * The `gain` property of the BiquadFilterNode interface is an a-rate AudioParam — a double representing the gain used in the current filtering algorithm.
   4363      *
   4364      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/gain)
   4365      */
   4366     readonly gain: AudioParam;
   4367     /**
   4368      * The `type` property of the BiquadFilterNode interface is a string (enum) value defining the kind of filtering algorithm the node is implementing.
   4369      *
   4370      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/type)
   4371      */
   4372     type: BiquadFilterType;
   4373     /**
   4374      * The `getFrequencyResponse()` method of the BiquadFilterNode interface takes the current filtering algorithm's settings and calculates the frequency response for frequencies specified in a specified array of frequencies.
   4375      *
   4376      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/getFrequencyResponse)
   4377      */
   4378     getFrequencyResponse(frequencyHz: Float32Array<ArrayBuffer>, magResponse: Float32Array<ArrayBuffer>, phaseResponse: Float32Array<ArrayBuffer>): void;
   4379 }
   4380 
   4381 declare var BiquadFilterNode: {
   4382     prototype: BiquadFilterNode;
   4383     new(context: BaseAudioContext, options?: BiquadFilterOptions): BiquadFilterNode;
   4384 };
   4385 
   4386 /**
   4387  * The **`Blob`** interface represents a blob, which is a file-like object of immutable, raw data; they can be read as text or binary data, or converted into a ReadableStream so its methods can be used for processing the data.
   4388  *
   4389  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob)
   4390  */
   4391 interface Blob {
   4392     /**
   4393      * The **`size`** read-only property of the Blob interface returns the size of the Blob or File in bytes.
   4394      *
   4395      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/size)
   4396      */
   4397     readonly size: number;
   4398     /**
   4399      * The **`type`** read-only property of the Blob interface returns the MIME type of the file.
   4400      *
   4401      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/type)
   4402      */
   4403     readonly type: string;
   4404     /**
   4405      * The **`arrayBuffer()`** method of the Blob interface returns a Promise that resolves with the contents of the blob as binary data contained in an ArrayBuffer.
   4406      *
   4407      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/arrayBuffer)
   4408      */
   4409     arrayBuffer(): Promise<ArrayBuffer>;
   4410     /**
   4411      * The **`bytes()`** method of the Blob interface returns a Promise that resolves with a Uint8Array containing the contents of the blob as an array of bytes.
   4412      *
   4413      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/bytes)
   4414      */
   4415     bytes(): Promise<Uint8Array<ArrayBuffer>>;
   4416     /**
   4417      * The **`slice()`** method of the Blob interface creates and returns a new `Blob` object which contains data from a subset of the blob on which it's called.
   4418      *
   4419      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/slice)
   4420      */
   4421     slice(start?: number, end?: number, contentType?: string): Blob;
   4422     /**
   4423      * The **`stream()`** method of the Blob interface returns a ReadableStream which upon reading returns the data contained within the `Blob`.
   4424      *
   4425      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/stream)
   4426      */
   4427     stream(): ReadableStream<Uint8Array<ArrayBuffer>>;
   4428     /**
   4429      * The **`text()`** method of the string containing the contents of the blob, interpreted as UTF-8.
   4430      *
   4431      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/text)
   4432      */
   4433     text(): Promise<string>;
   4434 }
   4435 
   4436 declare var Blob: {
   4437     prototype: Blob;
   4438     new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
   4439 };
   4440 
   4441 /**
   4442  * The **`BlobEvent`** interface of the MediaStream Recording API represents events associated with a Blob.
   4443  *
   4444  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BlobEvent)
   4445  */
   4446 interface BlobEvent extends Event {
   4447     /**
   4448      * The **`data`** read-only property of the BlobEvent interface represents a Blob associated with the event.
   4449      *
   4450      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BlobEvent/data)
   4451      */
   4452     readonly data: Blob;
   4453     /**
   4454      * The **`timecode`** read-only property of the BlobEvent interface indicates the difference between the timestamp of the first chunk of data, and the timestamp of the first chunk in the first `BlobEvent` produced by this recorder.
   4455      *
   4456      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BlobEvent/timecode)
   4457      */
   4458     readonly timecode: DOMHighResTimeStamp;
   4459 }
   4460 
   4461 declare var BlobEvent: {
   4462     prototype: BlobEvent;
   4463     new(type: string, eventInitDict: BlobEventInit): BlobEvent;
   4464 };
   4465 
   4466 interface Body {
   4467     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body) */
   4468     readonly body: ReadableStream<Uint8Array<ArrayBuffer>> | null;
   4469     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */
   4470     readonly bodyUsed: boolean;
   4471     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */
   4472     arrayBuffer(): Promise<ArrayBuffer>;
   4473     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */
   4474     blob(): Promise<Blob>;
   4475     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bytes) */
   4476     bytes(): Promise<Uint8Array<ArrayBuffer>>;
   4477     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/formData) */
   4478     formData(): Promise<FormData>;
   4479     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/json) */
   4480     json(): Promise<any>;
   4481     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/text) */
   4482     text(): Promise<string>;
   4483 }
   4484 
   4485 interface BroadcastChannelEventMap {
   4486     "message": MessageEvent;
   4487     "messageerror": MessageEvent;
   4488 }
   4489 
   4490 /**
   4491  * The **`BroadcastChannel`** interface represents a named channel that any browsing context of a given origin can subscribe to.
   4492  *
   4493  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel)
   4494  */
   4495 interface BroadcastChannel extends EventTarget {
   4496     /**
   4497      * The **`name`** read-only property of the BroadcastChannel interface returns a string, which uniquely identifies the given channel with its name.
   4498      *
   4499      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/name)
   4500      */
   4501     readonly name: string;
   4502     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/message_event) */
   4503     onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;
   4504     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/messageerror_event) */
   4505     onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;
   4506     /**
   4507      * The **`close()`** method of the BroadcastChannel interface terminates the connection to the underlying channel, allowing the object to be garbage collected.
   4508      *
   4509      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/close)
   4510      */
   4511     close(): void;
   4512     /**
   4513      * The **`postMessage()`** method of the BroadcastChannel interface sends a message, which can be of any kind of Object, to each listener in any browsing context with the same origin.
   4514      *
   4515      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/postMessage)
   4516      */
   4517     postMessage(message: any): void;
   4518     addEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   4519     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   4520     removeEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   4521     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   4522 }
   4523 
   4524 declare var BroadcastChannel: {
   4525     prototype: BroadcastChannel;
   4526     new(name: string): BroadcastChannel;
   4527 };
   4528 
   4529 /**
   4530  * The **`ByteLengthQueuingStrategy`** interface of the Streams API provides a built-in byte length queuing strategy that can be used when constructing streams.
   4531  *
   4532  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy)
   4533  */
   4534 interface ByteLengthQueuingStrategy extends QueuingStrategy<ArrayBufferView> {
   4535     /**
   4536      * The read-only **`ByteLengthQueuingStrategy.highWaterMark`** property returns the total number of bytes that can be contained in the internal queue before backpressure is applied.
   4537      *
   4538      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/highWaterMark)
   4539      */
   4540     readonly highWaterMark: number;
   4541     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/size) */
   4542     readonly size: QueuingStrategySize<ArrayBufferView>;
   4543 }
   4544 
   4545 declare var ByteLengthQueuingStrategy: {
   4546     prototype: ByteLengthQueuingStrategy;
   4547     new(init: QueuingStrategyInit): ByteLengthQueuingStrategy;
   4548 };
   4549 
   4550 /**
   4551  * The **`CDATASection`** interface represents a CDATA section that can be used within XML to include extended portions of unescaped text.
   4552  *
   4553  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CDATASection)
   4554  */
   4555 interface CDATASection extends Text {
   4556 }
   4557 
   4558 declare var CDATASection: {
   4559     prototype: CDATASection;
   4560     new(): CDATASection;
   4561 };
   4562 
   4563 /**
   4564  * The `CSPViolationReportBody` interface is an extension of the Reporting API that represents the body of a Content Security Policy (CSP) violation report.
   4565  *
   4566  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody)
   4567  */
   4568 interface CSPViolationReportBody extends ReportBody {
   4569     /**
   4570      * The **`blockedURL`** read-only property of the CSPViolationReportBody interface is a string value that represents the resource that was blocked because it violates a Content Security Policy (CSP).
   4571      *
   4572      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/blockedURL)
   4573      */
   4574     readonly blockedURL: string | null;
   4575     /**
   4576      * The **`columnNumber`** read-only property of the CSPViolationReportBody interface indicates the column number in the source file that triggered the Content Security Policy (CSP) violation.
   4577      *
   4578      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/columnNumber)
   4579      */
   4580     readonly columnNumber: number | null;
   4581     /**
   4582      * The **`disposition`** read-only property of the CSPViolationReportBody interface indicates whether the user agent is configured to enforce Content Security Policy (CSP) violations or only report them.
   4583      *
   4584      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/disposition)
   4585      */
   4586     readonly disposition: SecurityPolicyViolationEventDisposition;
   4587     /**
   4588      * The **`documentURL`** read-only property of the CSPViolationReportBody interface is a string that represents the URL of the document or worker that violated the Content Security Policy (CSP).
   4589      *
   4590      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/documentURL)
   4591      */
   4592     readonly documentURL: string;
   4593     /**
   4594      * The **`effectiveDirective`** read-only property of the CSPViolationReportBody interface is a string that represents the effective Content Security Policy (CSP) directive that was violated.
   4595      *
   4596      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/effectiveDirective)
   4597      */
   4598     readonly effectiveDirective: string;
   4599     /**
   4600      * The **`lineNumber`** read-only property of the CSPViolationReportBody interface indicates the line number in the source file that triggered the Content Security Policy (CSP) violation.
   4601      *
   4602      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/lineNumber)
   4603      */
   4604     readonly lineNumber: number | null;
   4605     /**
   4606      * The **`originalPolicy`** read-only property of the CSPViolationReportBody interface is a string that represents the Content Security Policy (CSP) whose enforcement uncovered the violation.
   4607      *
   4608      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/originalPolicy)
   4609      */
   4610     readonly originalPolicy: string;
   4611     /**
   4612      * The **`referrer`** read-only property of the CSPViolationReportBody interface is a string that represents the URL of the referring page of the resource who's Content Security Policy (CSP) was violated.
   4613      *
   4614      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/referrer)
   4615      */
   4616     readonly referrer: string | null;
   4617     /**
   4618      * The **`sample`** read-only property of the CSPViolationReportBody interface is a string that contains a part of the resource that violated the Content Security Policy (CSP).
   4619      *
   4620      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/sample)
   4621      */
   4622     readonly sample: string | null;
   4623     /**
   4624      * The **`sourceFile`** read-only property of the CSPViolationReportBody interface indicates the URL of the source file that violated the Content Security Policy (CSP).
   4625      *
   4626      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/sourceFile)
   4627      */
   4628     readonly sourceFile: string | null;
   4629     /**
   4630      * The **`statusCode`** read-only property of the CSPViolationReportBody interface is a number representing the HTTP status code of the response to the request that triggered a Content Security Policy (CSP) violation (when loading a window or worker).
   4631      *
   4632      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/statusCode)
   4633      */
   4634     readonly statusCode: number;
   4635     /**
   4636      * The **`toJSON()`** method of the CSPViolationReportBody interface is a _serializer_, which returns a JSON representation of the `CSPViolationReportBody` object.
   4637      *
   4638      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSPViolationReportBody/toJSON)
   4639      */
   4640     toJSON(): any;
   4641 }
   4642 
   4643 declare var CSPViolationReportBody: {
   4644     prototype: CSPViolationReportBody;
   4645     new(): CSPViolationReportBody;
   4646 };
   4647 
   4648 /**
   4649  * The **`CSSAnimation`** interface of the Web Animations API represents an Animation object.
   4650  *
   4651  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSAnimation)
   4652  */
   4653 interface CSSAnimation extends Animation {
   4654     /**
   4655      * The **`animationName`** property of the specifies one or more keyframe at-rules which describe the animation applied to the element.
   4656      *
   4657      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSAnimation/animationName)
   4658      */
   4659     readonly animationName: string;
   4660     addEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSAnimation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   4661     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   4662     removeEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSAnimation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   4663     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   4664 }
   4665 
   4666 declare var CSSAnimation: {
   4667     prototype: CSSAnimation;
   4668     new(): CSSAnimation;
   4669 };
   4670 
   4671 /**
   4672  * An object implementing the **`CSSConditionRule`** interface represents a single condition CSS at-rule, which consists of a condition and a statement block.
   4673  *
   4674  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSConditionRule)
   4675  */
   4676 interface CSSConditionRule extends CSSGroupingRule {
   4677     /**
   4678      * The read-only **`conditionText`** property of the CSSConditionRule interface returns or sets the text of the CSS rule.
   4679      *
   4680      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSConditionRule/conditionText)
   4681      */
   4682     readonly conditionText: string;
   4683 }
   4684 
   4685 declare var CSSConditionRule: {
   4686     prototype: CSSConditionRule;
   4687     new(): CSSConditionRule;
   4688 };
   4689 
   4690 /**
   4691  * The **`CSSContainerRule`** interface represents a single CSS @container rule.
   4692  *
   4693  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule)
   4694  */
   4695 interface CSSContainerRule extends CSSConditionRule {
   4696     /**
   4697      * The read-only **`containerName`** property of the CSSContainerRule interface represents the container name of the associated CSS @container at-rule.
   4698      *
   4699      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule/containerName)
   4700      */
   4701     readonly containerName: string;
   4702     /**
   4703      * The read-only **`containerQuery`** property of the CSSContainerRule interface returns a string representing the container conditions that are evaluated when the container changes size in order to determine if the styles in the associated @container are applied.
   4704      *
   4705      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule/containerQuery)
   4706      */
   4707     readonly containerQuery: string;
   4708 }
   4709 
   4710 declare var CSSContainerRule: {
   4711     prototype: CSSContainerRule;
   4712     new(): CSSContainerRule;
   4713 };
   4714 
   4715 /**
   4716  * The **`CSSCounterStyleRule`** interface represents an @counter-style at-rule.
   4717  *
   4718  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule)
   4719  */
   4720 interface CSSCounterStyleRule extends CSSRule {
   4721     /**
   4722      * The **`additiveSymbols`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/additive-symbols descriptor.
   4723      *
   4724      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/additiveSymbols)
   4725      */
   4726     additiveSymbols: string;
   4727     /**
   4728      * The **`fallback`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/fallback descriptor.
   4729      *
   4730      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/fallback)
   4731      */
   4732     fallback: string;
   4733     /**
   4734      * The **`name`** property of the CSSCounterStyleRule interface gets and sets the &lt;custom-ident&gt; defined as the `name` for the associated rule.
   4735      *
   4736      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/name)
   4737      */
   4738     name: string;
   4739     /**
   4740      * The **`negative`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/negative descriptor.
   4741      *
   4742      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/negative)
   4743      */
   4744     negative: string;
   4745     /**
   4746      * The **`pad`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/pad descriptor.
   4747      *
   4748      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/pad)
   4749      */
   4750     pad: string;
   4751     /**
   4752      * The **`prefix`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/prefix descriptor.
   4753      *
   4754      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/prefix)
   4755      */
   4756     prefix: string;
   4757     /**
   4758      * The **`range`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/range descriptor.
   4759      *
   4760      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/range)
   4761      */
   4762     range: string;
   4763     /**
   4764      * The **`speakAs`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/speak-as descriptor.
   4765      *
   4766      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/speakAs)
   4767      */
   4768     speakAs: string;
   4769     /**
   4770      * The **`suffix`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/suffix descriptor.
   4771      *
   4772      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/suffix)
   4773      */
   4774     suffix: string;
   4775     /**
   4776      * The **`symbols`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/symbols descriptor.
   4777      *
   4778      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/symbols)
   4779      */
   4780     symbols: string;
   4781     /**
   4782      * The **`system`** property of the CSSCounterStyleRule interface gets and sets the value of the @counter-style/system descriptor.
   4783      *
   4784      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/system)
   4785      */
   4786     system: string;
   4787 }
   4788 
   4789 declare var CSSCounterStyleRule: {
   4790     prototype: CSSCounterStyleRule;
   4791     new(): CSSCounterStyleRule;
   4792 };
   4793 
   4794 /**
   4795  * The **`CSSFontFaceRule`** interface represents an @font-face at-rule.
   4796  *
   4797  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFaceRule)
   4798  */
   4799 interface CSSFontFaceRule extends CSSRule {
   4800     /**
   4801      * The read-only **`style`** property of the CSSFontFaceRule interface returns the style information from the @font-face at-rule.
   4802      *
   4803      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFaceRule/style)
   4804      */
   4805     get style(): CSSStyleDeclaration;
   4806     set style(cssText: string);
   4807 }
   4808 
   4809 declare var CSSFontFaceRule: {
   4810     prototype: CSSFontFaceRule;
   4811     new(): CSSFontFaceRule;
   4812 };
   4813 
   4814 /**
   4815  * The **`CSSFontFeatureValuesRule`** interface represents an @font-feature-values at-rule, letting developers assign for each font face a common name to specify features indices to be used in font-variant-alternates.
   4816  *
   4817  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFeatureValuesRule)
   4818  */
   4819 interface CSSFontFeatureValuesRule extends CSSRule {
   4820     /**
   4821      * The **`fontFamily`** property of the CSSConditionRule interface represents the name of the font family it applies to.
   4822      *
   4823      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFeatureValuesRule/fontFamily)
   4824      */
   4825     fontFamily: string;
   4826 }
   4827 
   4828 declare var CSSFontFeatureValuesRule: {
   4829     prototype: CSSFontFeatureValuesRule;
   4830     new(): CSSFontFeatureValuesRule;
   4831 };
   4832 
   4833 /**
   4834  * The **`CSSFontPaletteValuesRule`** interface represents an @font-palette-values at-rule.
   4835  *
   4836  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule)
   4837  */
   4838 interface CSSFontPaletteValuesRule extends CSSRule {
   4839     /**
   4840      * The read-only **`basePalette`** property of the CSSFontPaletteValuesRule interface indicates the base palette associated with the rule.
   4841      *
   4842      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/basePalette)
   4843      */
   4844     readonly basePalette: string;
   4845     /**
   4846      * The read-only **`fontFamily`** property of the CSSFontPaletteValuesRule interface lists the font families the rule can be applied to.
   4847      *
   4848      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/fontFamily)
   4849      */
   4850     readonly fontFamily: string;
   4851     /**
   4852      * The read-only **`name`** property of the CSSFontPaletteValuesRule interface represents the name identifying the associated @font-palette-values at-rule.
   4853      *
   4854      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/name)
   4855      */
   4856     readonly name: string;
   4857     /**
   4858      * The read-only **`overrideColors`** property of the CSSFontPaletteValuesRule interface is a string containing a list of color index and color pair that are to be used instead.
   4859      *
   4860      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/overrideColors)
   4861      */
   4862     readonly overrideColors: string;
   4863 }
   4864 
   4865 declare var CSSFontPaletteValuesRule: {
   4866     prototype: CSSFontPaletteValuesRule;
   4867     new(): CSSFontPaletteValuesRule;
   4868 };
   4869 
   4870 /**
   4871  * The **`CSSGroupingRule`** interface of the CSS Object Model represents any CSS at-rule that contains other rules nested within it.
   4872  *
   4873  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule)
   4874  */
   4875 interface CSSGroupingRule extends CSSRule {
   4876     /**
   4877      * The **`cssRules`** property of the a collection of CSSRule objects.
   4878      *
   4879      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/cssRules)
   4880      */
   4881     readonly cssRules: CSSRuleList;
   4882     /**
   4883      * The **`deleteRule()`** method of the rules.
   4884      *
   4885      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/deleteRule)
   4886      */
   4887     deleteRule(index: number): void;
   4888     /**
   4889      * The **`insertRule()`** method of the ```js-nolint insertRule(rule) insertRule(rule, index) ``` - `rule` - : A string - `index` [MISSING: optional_inline] - : An optional index at which to insert the rule; defaults to 0.
   4890      *
   4891      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/insertRule)
   4892      */
   4893     insertRule(rule: string, index?: number): number;
   4894 }
   4895 
   4896 declare var CSSGroupingRule: {
   4897     prototype: CSSGroupingRule;
   4898     new(): CSSGroupingRule;
   4899 };
   4900 
   4901 /**
   4902  * The **`CSSImageValue`** interface of the CSS Typed Object Model API represents values for properties that take an image, for example background-image, list-style-image, or border-image-source.
   4903  *
   4904  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImageValue)
   4905  */
   4906 interface CSSImageValue extends CSSStyleValue {
   4907 }
   4908 
   4909 declare var CSSImageValue: {
   4910     prototype: CSSImageValue;
   4911     new(): CSSImageValue;
   4912 };
   4913 
   4914 /**
   4915  * The **`CSSImportRule`** interface represents an @import at-rule.
   4916  *
   4917  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule)
   4918  */
   4919 interface CSSImportRule extends CSSRule {
   4920     /**
   4921      * The read-only **`href`** property of the The resolved URL will be the `href` attribute of the associated stylesheet.
   4922      *
   4923      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/href)
   4924      */
   4925     readonly href: string;
   4926     /**
   4927      * The read-only **`layerName`** property of the CSSImportRule interface returns the name of the cascade layer created by the @import at-rule.
   4928      *
   4929      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/layerName)
   4930      */
   4931     readonly layerName: string | null;
   4932     /**
   4933      * The read-only **`media`** property of the containing the value of the `media` attribute of the associated stylesheet.
   4934      *
   4935      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/media)
   4936      */
   4937     get media(): MediaList;
   4938     set media(mediaText: string);
   4939     /**
   4940      * The read-only **`styleSheet`** property of the in the form of a CSSStyleSheet object.
   4941      *
   4942      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/styleSheet)
   4943      */
   4944     readonly styleSheet: CSSStyleSheet | null;
   4945     /**
   4946      * The read-only **`supportsText`** property of the CSSImportRule interface returns the supports condition specified by the @import at-rule.
   4947      *
   4948      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/supportsText)
   4949      */
   4950     readonly supportsText: string | null;
   4951 }
   4952 
   4953 declare var CSSImportRule: {
   4954     prototype: CSSImportRule;
   4955     new(): CSSImportRule;
   4956 };
   4957 
   4958 /**
   4959  * The **`CSSKeyframeRule`** interface describes an object representing a set of styles for a given keyframe.
   4960  *
   4961  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule)
   4962  */
   4963 interface CSSKeyframeRule extends CSSRule {
   4964     /**
   4965      * The **`keyText`** property of the CSSKeyframeRule interface represents the keyframe selector as a comma-separated list of percentage values.
   4966      *
   4967      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule/keyText)
   4968      */
   4969     keyText: string;
   4970     /**
   4971      * The read-only **`CSSKeyframeRule.style`** property is the CSSStyleDeclaration interface for the declaration block of the CSSKeyframeRule.
   4972      *
   4973      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule/style)
   4974      */
   4975     get style(): CSSStyleDeclaration;
   4976     set style(cssText: string);
   4977 }
   4978 
   4979 declare var CSSKeyframeRule: {
   4980     prototype: CSSKeyframeRule;
   4981     new(): CSSKeyframeRule;
   4982 };
   4983 
   4984 /**
   4985  * The **`CSSKeyframesRule`** interface describes an object representing a complete set of keyframes for a CSS animation.
   4986  *
   4987  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule)
   4988  */
   4989 interface CSSKeyframesRule extends CSSRule {
   4990     /**
   4991      * The read-only **`cssRules`** property of the CSSKeyframeRule interface returns a CSSRuleList containing the rules in the keyframes at-rule.
   4992      *
   4993      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/cssRules)
   4994      */
   4995     readonly cssRules: CSSRuleList;
   4996     /**
   4997      * The read-only **`length`** property of the CSSKeyframeRule interface returns the number of CSSKeyframeRule objects in its list.
   4998      *
   4999      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/length)
   5000      */
   5001     readonly length: number;
   5002     /**
   5003      * The **`name`** property of the CSSKeyframeRule interface gets and sets the name of the animation as used by the animation-name property.
   5004      *
   5005      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/name)
   5006      */
   5007     name: string;
   5008     /**
   5009      * The **`appendRule()`** method of the CSSKeyframeRule interface appends a CSSKeyFrameRule to the end of the rules.
   5010      *
   5011      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/appendRule)
   5012      */
   5013     appendRule(rule: string): void;
   5014     /**
   5015      * The **`deleteRule()`** method of the CSSKeyframeRule interface deletes the CSSKeyFrameRule that matches the specified keyframe selector.
   5016      *
   5017      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/deleteRule)
   5018      */
   5019     deleteRule(select: string): void;
   5020     /**
   5021      * The **`findRule()`** method of the CSSKeyframeRule interface finds the CSSKeyFrameRule that matches the specified keyframe selector.
   5022      *
   5023      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/findRule)
   5024      */
   5025     findRule(select: string): CSSKeyframeRule | null;
   5026     [index: number]: CSSKeyframeRule;
   5027 }
   5028 
   5029 declare var CSSKeyframesRule: {
   5030     prototype: CSSKeyframesRule;
   5031     new(): CSSKeyframesRule;
   5032 };
   5033 
   5034 /**
   5035  * The **`CSSKeywordValue`** interface of the CSS Typed Object Model API creates an object to represent CSS keywords and other identifiers.
   5036  *
   5037  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeywordValue)
   5038  */
   5039 interface CSSKeywordValue extends CSSStyleValue {
   5040     /**
   5041      * The **`value`** property of the `CSSKeywordValue`.
   5042      *
   5043      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeywordValue/value)
   5044      */
   5045     value: string;
   5046 }
   5047 
   5048 declare var CSSKeywordValue: {
   5049     prototype: CSSKeywordValue;
   5050     new(value: string): CSSKeywordValue;
   5051 };
   5052 
   5053 /**
   5054  * The **`CSSLayerBlockRule`** represents a @layer block rule.
   5055  *
   5056  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerBlockRule)
   5057  */
   5058 interface CSSLayerBlockRule extends CSSGroupingRule {
   5059     /**
   5060      * The read-only **`name`** property of the CSSLayerBlockRule interface represents the name of the associated cascade layer.
   5061      *
   5062      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerBlockRule/name)
   5063      */
   5064     readonly name: string;
   5065 }
   5066 
   5067 declare var CSSLayerBlockRule: {
   5068     prototype: CSSLayerBlockRule;
   5069     new(): CSSLayerBlockRule;
   5070 };
   5071 
   5072 /**
   5073  * The **`CSSLayerStatementRule`** represents a @layer statement rule.
   5074  *
   5075  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerStatementRule)
   5076  */
   5077 interface CSSLayerStatementRule extends CSSRule {
   5078     /**
   5079      * The read-only **`nameList`** property of the CSSLayerStatementRule interface return the list of associated cascade layer names.
   5080      *
   5081      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerStatementRule/nameList)
   5082      */
   5083     readonly nameList: ReadonlyArray<string>;
   5084 }
   5085 
   5086 declare var CSSLayerStatementRule: {
   5087     prototype: CSSLayerStatementRule;
   5088     new(): CSSLayerStatementRule;
   5089 };
   5090 
   5091 interface CSSMathClamp extends CSSMathValue {
   5092     readonly lower: CSSNumericValue;
   5093     readonly upper: CSSNumericValue;
   5094     readonly value: CSSNumericValue;
   5095 }
   5096 
   5097 declare var CSSMathClamp: {
   5098     prototype: CSSMathClamp;
   5099     new(lower: CSSNumberish, value: CSSNumberish, upper: CSSNumberish): CSSMathClamp;
   5100 };
   5101 
   5102 /**
   5103  * The **`CSSMathInvert`** interface of the CSS Typed Object Model API represents a CSS calc used as `calc(1 / <value>)`.
   5104  *
   5105  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathInvert)
   5106  */
   5107 interface CSSMathInvert extends CSSMathValue {
   5108     /**
   5109      * The CSSMathInvert.value read-only property of the A CSSNumericValue.
   5110      *
   5111      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathInvert/value)
   5112      */
   5113     readonly value: CSSNumericValue;
   5114 }
   5115 
   5116 declare var CSSMathInvert: {
   5117     prototype: CSSMathInvert;
   5118     new(arg: CSSNumberish): CSSMathInvert;
   5119 };
   5120 
   5121 /**
   5122  * The **`CSSMathMax`** interface of the CSS Typed Object Model API represents the CSS max function.
   5123  *
   5124  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMax)
   5125  */
   5126 interface CSSMathMax extends CSSMathValue {
   5127     /**
   5128      * The CSSMathMax.values read-only property of the which contains one or more CSSNumericValue objects.
   5129      *
   5130      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMax/values)
   5131      */
   5132     readonly values: CSSNumericArray;
   5133 }
   5134 
   5135 declare var CSSMathMax: {
   5136     prototype: CSSMathMax;
   5137     new(...args: CSSNumberish[]): CSSMathMax;
   5138 };
   5139 
   5140 /**
   5141  * The **`CSSMathMin`** interface of the CSS Typed Object Model API represents the CSS min function.
   5142  *
   5143  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMin)
   5144  */
   5145 interface CSSMathMin extends CSSMathValue {
   5146     /**
   5147      * The CSSMathMin.values read-only property of the which contains one or more CSSNumericValue objects.
   5148      *
   5149      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMin/values)
   5150      */
   5151     readonly values: CSSNumericArray;
   5152 }
   5153 
   5154 declare var CSSMathMin: {
   5155     prototype: CSSMathMin;
   5156     new(...args: CSSNumberish[]): CSSMathMin;
   5157 };
   5158 
   5159 /**
   5160  * The **`CSSMathNegate`** interface of the CSS Typed Object Model API negates the value passed into it.
   5161  *
   5162  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathNegate)
   5163  */
   5164 interface CSSMathNegate extends CSSMathValue {
   5165     /**
   5166      * The CSSMathNegate.value read-only property of the A CSSNumericValue.
   5167      *
   5168      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathNegate/value)
   5169      */
   5170     readonly value: CSSNumericValue;
   5171 }
   5172 
   5173 declare var CSSMathNegate: {
   5174     prototype: CSSMathNegate;
   5175     new(arg: CSSNumberish): CSSMathNegate;
   5176 };
   5177 
   5178 /**
   5179  * The **`CSSMathProduct`** interface of the CSS Typed Object Model API represents the result obtained by calling CSSNumericValue.add, CSSNumericValue.sub, or CSSNumericValue.toSum on CSSNumericValue.
   5180  *
   5181  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathProduct)
   5182  */
   5183 interface CSSMathProduct extends CSSMathValue {
   5184     /**
   5185      * The **`CSSMathProduct.values`** read-only property of the CSSMathProduct interface returns a A CSSNumericArray.
   5186      *
   5187      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathProduct/values)
   5188      */
   5189     readonly values: CSSNumericArray;
   5190 }
   5191 
   5192 declare var CSSMathProduct: {
   5193     prototype: CSSMathProduct;
   5194     new(...args: CSSNumberish[]): CSSMathProduct;
   5195 };
   5196 
   5197 /**
   5198  * The **`CSSMathSum`** interface of the CSS Typed Object Model API represents the result obtained by calling CSSNumericValue.add, CSSNumericValue.sub, or CSSNumericValue.toSum on CSSNumericValue.
   5199  *
   5200  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathSum)
   5201  */
   5202 interface CSSMathSum extends CSSMathValue {
   5203     /**
   5204      * The **`CSSMathSum.values`** read-only property of the CSSMathSum interface returns a CSSNumericArray object which contains one or more CSSNumericValue objects.
   5205      *
   5206      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathSum/values)
   5207      */
   5208     readonly values: CSSNumericArray;
   5209 }
   5210 
   5211 declare var CSSMathSum: {
   5212     prototype: CSSMathSum;
   5213     new(...args: CSSNumberish[]): CSSMathSum;
   5214 };
   5215 
   5216 /**
   5217  * The **`CSSMathValue`** interface of the CSS Typed Object Model API a base class for classes representing complex numeric values.
   5218  *
   5219  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathValue)
   5220  */
   5221 interface CSSMathValue extends CSSNumericValue {
   5222     /**
   5223      * The **`CSSMathValue.operator`** read-only property of the CSSMathValue interface indicates the operator that the current subtype represents.
   5224      *
   5225      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathValue/operator)
   5226      */
   5227     readonly operator: CSSMathOperator;
   5228 }
   5229 
   5230 declare var CSSMathValue: {
   5231     prototype: CSSMathValue;
   5232     new(): CSSMathValue;
   5233 };
   5234 
   5235 /**
   5236  * The **`CSSMatrixComponent`** interface of the CSS Typed Object Model API represents the matrix() and matrix3d() values of the individual transform property in CSS.
   5237  *
   5238  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMatrixComponent)
   5239  */
   5240 interface CSSMatrixComponent extends CSSTransformComponent {
   5241     /**
   5242      * The **`matrix`** property of the See the matrix() and matrix3d() pages for examples.
   5243      *
   5244      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMatrixComponent/matrix)
   5245      */
   5246     matrix: DOMMatrix;
   5247 }
   5248 
   5249 declare var CSSMatrixComponent: {
   5250     prototype: CSSMatrixComponent;
   5251     new(matrix: DOMMatrixReadOnly, options?: CSSMatrixComponentOptions): CSSMatrixComponent;
   5252 };
   5253 
   5254 /**
   5255  * The **`CSSMediaRule`** interface represents a single CSS @media rule.
   5256  *
   5257  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMediaRule)
   5258  */
   5259 interface CSSMediaRule extends CSSConditionRule {
   5260     /**
   5261      * The read-only **`media`** property of the destination medium for style information.
   5262      *
   5263      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMediaRule/media)
   5264      */
   5265     get media(): MediaList;
   5266     set media(mediaText: string);
   5267 }
   5268 
   5269 declare var CSSMediaRule: {
   5270     prototype: CSSMediaRule;
   5271     new(): CSSMediaRule;
   5272 };
   5273 
   5274 /**
   5275  * The **`CSSNamespaceRule`** interface describes an object representing a single CSS @namespace at-rule.
   5276  *
   5277  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule)
   5278  */
   5279 interface CSSNamespaceRule extends CSSRule {
   5280     /**
   5281      * The read-only **`namespaceURI`** property of the CSSNamespaceRule returns a string containing the text of the URI of the given namespace.
   5282      *
   5283      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule/namespaceURI)
   5284      */
   5285     readonly namespaceURI: string;
   5286     /**
   5287      * The read-only **`prefix`** property of the CSSNamespaceRule returns a string with the name of the prefix associated to this namespace.
   5288      *
   5289      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule/prefix)
   5290      */
   5291     readonly prefix: string;
   5292 }
   5293 
   5294 declare var CSSNamespaceRule: {
   5295     prototype: CSSNamespaceRule;
   5296     new(): CSSNamespaceRule;
   5297 };
   5298 
   5299 /**
   5300  * The **`CSSNestedDeclarations`** interface of the CSS Rule API is used to group nested CSSRules.
   5301  *
   5302  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNestedDeclarations)
   5303  */
   5304 interface CSSNestedDeclarations extends CSSRule {
   5305     /**
   5306      * The read-only **`style`** property of the CSSNestedDeclarations interface represents the styles associated with the nested rules.
   5307      *
   5308      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNestedDeclarations/style)
   5309      */
   5310     get style(): CSSStyleDeclaration;
   5311     set style(cssText: string);
   5312 }
   5313 
   5314 declare var CSSNestedDeclarations: {
   5315     prototype: CSSNestedDeclarations;
   5316     new(): CSSNestedDeclarations;
   5317 };
   5318 
   5319 /**
   5320  * The **`CSSNumericArray`** interface of the CSS Typed Object Model API contains a list of CSSNumericValue objects.
   5321  *
   5322  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericArray)
   5323  */
   5324 interface CSSNumericArray {
   5325     /**
   5326      * The read-only **`length`** property of the An integer representing the number of CSSNumericValue objects in the list.
   5327      *
   5328      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericArray/length)
   5329      */
   5330     readonly length: number;
   5331     forEach(callbackfn: (value: CSSNumericValue, key: number, parent: CSSNumericArray) => void, thisArg?: any): void;
   5332     [index: number]: CSSNumericValue;
   5333 }
   5334 
   5335 declare var CSSNumericArray: {
   5336     prototype: CSSNumericArray;
   5337     new(): CSSNumericArray;
   5338 };
   5339 
   5340 /**
   5341  * The **`CSSNumericValue`** interface of the CSS Typed Object Model API represents operations that all numeric values can perform.
   5342  *
   5343  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue)
   5344  */
   5345 interface CSSNumericValue extends CSSStyleValue {
   5346     /**
   5347      * The **`add()`** method of the `CSSNumericValue`.
   5348      *
   5349      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/add)
   5350      */
   5351     add(...values: CSSNumberish[]): CSSNumericValue;
   5352     /**
   5353      * The **`div()`** method of the supplied value.
   5354      *
   5355      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/div)
   5356      */
   5357     div(...values: CSSNumberish[]): CSSNumericValue;
   5358     /**
   5359      * The **`equals()`** method of the value are strictly equal.
   5360      *
   5361      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/equals)
   5362      */
   5363     equals(...value: CSSNumberish[]): boolean;
   5364     /**
   5365      * The **`max()`** method of the passed.
   5366      *
   5367      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/max)
   5368      */
   5369     max(...values: CSSNumberish[]): CSSNumericValue;
   5370     /**
   5371      * The **`min()`** method of the values passed.
   5372      *
   5373      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/min)
   5374      */
   5375     min(...values: CSSNumberish[]): CSSNumericValue;
   5376     /**
   5377      * The **`mul()`** method of the the supplied value.
   5378      *
   5379      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/mul)
   5380      */
   5381     mul(...values: CSSNumberish[]): CSSNumericValue;
   5382     /**
   5383      * The **`sub()`** method of the `CSSNumericValue`.
   5384      *
   5385      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/sub)
   5386      */
   5387     sub(...values: CSSNumberish[]): CSSNumericValue;
   5388     /**
   5389      * The **`to()`** method of the another.
   5390      *
   5391      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/to)
   5392      */
   5393     to(unit: string): CSSUnitValue;
   5394     /**
   5395      * The **`toSum()`** method of the ```js-nolint toSum(units) ``` - `units` - : The units to convert to.
   5396      *
   5397      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/toSum)
   5398      */
   5399     toSum(...units: string[]): CSSMathSum;
   5400     /**
   5401      * The **`type()`** method of the `CSSNumericValue`, one of `angle`, `flex`, `frequency`, `length`, `resolution`, `percent`, `percentHint`, or `time`.
   5402      *
   5403      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/type)
   5404      */
   5405     type(): CSSNumericType;
   5406 }
   5407 
   5408 declare var CSSNumericValue: {
   5409     prototype: CSSNumericValue;
   5410     new(): CSSNumericValue;
   5411     /**
   5412      * The **`parse()`** static method of the members are value and the units.
   5413      *
   5414      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/parse_static)
   5415      */
   5416     parse(cssText: string): CSSNumericValue;
   5417 };
   5418 
   5419 /**
   5420  * **`CSSPageRule`** represents a single CSS @page rule.
   5421  *
   5422  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule)
   5423  */
   5424 interface CSSPageRule extends CSSGroupingRule {
   5425     /**
   5426      * The **`selectorText`** property of the CSSPageRule interface gets and sets the selectors associated with the `CSSPageRule`.
   5427      *
   5428      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule/selectorText)
   5429      */
   5430     selectorText: string;
   5431     /**
   5432      * The **`style`** read-only property of the CSSPageRule interface returns a CSSPageDescriptors object.
   5433      *
   5434      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule/style)
   5435      */
   5436     get style(): CSSStyleDeclaration;
   5437     set style(cssText: string);
   5438 }
   5439 
   5440 declare var CSSPageRule: {
   5441     prototype: CSSPageRule;
   5442     new(): CSSPageRule;
   5443 };
   5444 
   5445 /**
   5446  * The **`CSSPerspective`** interface of the CSS Typed Object Model API represents the perspective() value of the individual transform property in CSS.
   5447  *
   5448  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPerspective)
   5449  */
   5450 interface CSSPerspective extends CSSTransformComponent {
   5451     /**
   5452      * The **`length`** property of the It is used to apply a perspective transform to the element and its content.
   5453      *
   5454      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPerspective/length)
   5455      */
   5456     length: CSSPerspectiveValue;
   5457 }
   5458 
   5459 declare var CSSPerspective: {
   5460     prototype: CSSPerspective;
   5461     new(length: CSSPerspectiveValue): CSSPerspective;
   5462 };
   5463 
   5464 /**
   5465  * The **`CSSPropertyRule`** interface of the CSS Properties and Values API represents a single CSS @property rule.
   5466  *
   5467  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule)
   5468  */
   5469 interface CSSPropertyRule extends CSSRule {
   5470     /**
   5471      * The read-only **`inherits`** property of the CSSPropertyRule interface returns the inherit flag of the custom property registration represented by the @property rule, a boolean describing whether or not the property inherits by default.
   5472      *
   5473      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/inherits)
   5474      */
   5475     readonly inherits: boolean;
   5476     /**
   5477      * The read-only **`initialValue`** nullable property of the CSSPropertyRule interface returns the initial value of the custom property registration represented by the @property rule, controlling the property's initial value.
   5478      *
   5479      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/initialValue)
   5480      */
   5481     readonly initialValue: string | null;
   5482     /**
   5483      * The read-only **`name`** property of the CSSPropertyRule interface represents the property name, this being the serialization of the name given to the custom property in the @property rule's prelude.
   5484      *
   5485      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/name)
   5486      */
   5487     readonly name: string;
   5488     /**
   5489      * The read-only **`syntax`** property of the CSSPropertyRule interface returns the literal syntax of the custom property registration represented by the @property rule, controlling how the property's value is parsed at computed-value time.
   5490      *
   5491      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/syntax)
   5492      */
   5493     readonly syntax: string;
   5494 }
   5495 
   5496 declare var CSSPropertyRule: {
   5497     prototype: CSSPropertyRule;
   5498     new(): CSSPropertyRule;
   5499 };
   5500 
   5501 /**
   5502  * The **`CSSRotate`** interface of the CSS Typed Object Model API represents the rotate value of the individual transform property in CSS.
   5503  *
   5504  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate)
   5505  */
   5506 interface CSSRotate extends CSSTransformComponent {
   5507     /**
   5508      * The **`angle`** property of the denotes a clockwise rotation, a negative angle a counter-clockwise one.
   5509      *
   5510      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/angle)
   5511      */
   5512     angle: CSSNumericValue;
   5513     /**
   5514      * The **`x`** property of the translating vector.
   5515      *
   5516      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/x)
   5517      */
   5518     x: CSSNumberish;
   5519     /**
   5520      * The **`y`** property of the translating vector.
   5521      *
   5522      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/y)
   5523      */
   5524     y: CSSNumberish;
   5525     /**
   5526      * The **`z`** property of the vector.
   5527      *
   5528      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/z)
   5529      */
   5530     z: CSSNumberish;
   5531 }
   5532 
   5533 declare var CSSRotate: {
   5534     prototype: CSSRotate;
   5535     new(angle: CSSNumericValue): CSSRotate;
   5536     new(x: CSSNumberish, y: CSSNumberish, z: CSSNumberish, angle: CSSNumericValue): CSSRotate;
   5537 };
   5538 
   5539 /**
   5540  * The **`CSSRule`** interface represents a single CSS rule.
   5541  *
   5542  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule)
   5543  */
   5544 interface CSSRule {
   5545     /**
   5546      * The **`cssText`** property of the CSSRule interface returns the actual text of a CSSStyleSheet style-rule.
   5547      *
   5548      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/cssText)
   5549      */
   5550     cssText: string;
   5551     /**
   5552      * The **`parentRule`** property of the CSSRule interface returns the containing rule of the current rule if this exists, or otherwise returns null.
   5553      *
   5554      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/parentRule)
   5555      */
   5556     readonly parentRule: CSSRule | null;
   5557     /**
   5558      * The **`parentStyleSheet`** property of the the current rule is defined.
   5559      *
   5560      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/parentStyleSheet)
   5561      */
   5562     readonly parentStyleSheet: CSSStyleSheet | null;
   5563     /**
   5564      * The read-only **`type`** property of the indicating which type of rule the CSSRule represents.
   5565      * @deprecated
   5566      *
   5567      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/type)
   5568      */
   5569     readonly type: number;
   5570     readonly STYLE_RULE: 1;
   5571     readonly CHARSET_RULE: 2;
   5572     readonly IMPORT_RULE: 3;
   5573     readonly MEDIA_RULE: 4;
   5574     readonly FONT_FACE_RULE: 5;
   5575     readonly PAGE_RULE: 6;
   5576     readonly NAMESPACE_RULE: 10;
   5577     readonly KEYFRAMES_RULE: 7;
   5578     readonly KEYFRAME_RULE: 8;
   5579     readonly SUPPORTS_RULE: 12;
   5580     readonly COUNTER_STYLE_RULE: 11;
   5581     readonly FONT_FEATURE_VALUES_RULE: 14;
   5582 }
   5583 
   5584 declare var CSSRule: {
   5585     prototype: CSSRule;
   5586     new(): CSSRule;
   5587     readonly STYLE_RULE: 1;
   5588     readonly CHARSET_RULE: 2;
   5589     readonly IMPORT_RULE: 3;
   5590     readonly MEDIA_RULE: 4;
   5591     readonly FONT_FACE_RULE: 5;
   5592     readonly PAGE_RULE: 6;
   5593     readonly NAMESPACE_RULE: 10;
   5594     readonly KEYFRAMES_RULE: 7;
   5595     readonly KEYFRAME_RULE: 8;
   5596     readonly SUPPORTS_RULE: 12;
   5597     readonly COUNTER_STYLE_RULE: 11;
   5598     readonly FONT_FEATURE_VALUES_RULE: 14;
   5599 };
   5600 
   5601 /**
   5602  * A `CSSRuleList` represents an ordered collection of read-only CSSRule objects.
   5603  *
   5604  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList)
   5605  */
   5606 interface CSSRuleList {
   5607     /**
   5608      * The **`length`** property of the CSSRuleList interface returns the number of CSSRule objects in the list.
   5609      *
   5610      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList/length)
   5611      */
   5612     readonly length: number;
   5613     /**
   5614      * The **`item()`** method of the CSSRuleList interface returns the CSSRule object at the specified `index` or `null` if the specified `index` doesn't exist.
   5615      *
   5616      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList/item)
   5617      */
   5618     item(index: number): CSSRule | null;
   5619     [index: number]: CSSRule;
   5620 }
   5621 
   5622 declare var CSSRuleList: {
   5623     prototype: CSSRuleList;
   5624     new(): CSSRuleList;
   5625 };
   5626 
   5627 /**
   5628  * The **`CSSScale`** interface of the CSS Typed Object Model API represents the scale() and scale3d() values of the individual transform property in CSS.
   5629  *
   5630  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale)
   5631  */
   5632 interface CSSScale extends CSSTransformComponent {
   5633     /**
   5634      * The **`x`** property of the translating vector.
   5635      *
   5636      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/x)
   5637      */
   5638     x: CSSNumberish;
   5639     /**
   5640      * The **`y`** property of the translating vector.
   5641      *
   5642      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/y)
   5643      */
   5644     y: CSSNumberish;
   5645     /**
   5646      * The **`z`** property of the vector.
   5647      *
   5648      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/z)
   5649      */
   5650     z: CSSNumberish;
   5651 }
   5652 
   5653 declare var CSSScale: {
   5654     prototype: CSSScale;
   5655     new(x: CSSNumberish, y: CSSNumberish, z?: CSSNumberish): CSSScale;
   5656 };
   5657 
   5658 /**
   5659  * The **`CSSScopeRule`** interface of the CSS Object Model represents a CSS @scope at-rule.
   5660  *
   5661  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScopeRule)
   5662  */
   5663 interface CSSScopeRule extends CSSGroupingRule {
   5664     /**
   5665      * The **`end`** property of the CSSScopeRule interface returns a string containing the value of the `@scope` at-rule's scope limit.
   5666      *
   5667      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScopeRule/end)
   5668      */
   5669     readonly end: string | null;
   5670     /**
   5671      * The **`start`** property of the CSSScopeRule interface returns a string containing the value of the `@scope` at-rule's scope root.
   5672      *
   5673      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScopeRule/start)
   5674      */
   5675     readonly start: string | null;
   5676 }
   5677 
   5678 declare var CSSScopeRule: {
   5679     prototype: CSSScopeRule;
   5680     new(): CSSScopeRule;
   5681 };
   5682 
   5683 /**
   5684  * The **`CSSSkew`** interface of the CSS Typed Object Model API is part of the CSSTransformValue interface.
   5685  *
   5686  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew)
   5687  */
   5688 interface CSSSkew extends CSSTransformComponent {
   5689     /**
   5690      * The **`ax`** property of the along the x-axis (or abscissa).
   5691      *
   5692      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew/ax)
   5693      */
   5694     ax: CSSNumericValue;
   5695     /**
   5696      * The **`ay`** property of the along the y-axis (or ordinate).
   5697      *
   5698      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew/ay)
   5699      */
   5700     ay: CSSNumericValue;
   5701 }
   5702 
   5703 declare var CSSSkew: {
   5704     prototype: CSSSkew;
   5705     new(ax: CSSNumericValue, ay: CSSNumericValue): CSSSkew;
   5706 };
   5707 
   5708 /**
   5709  * The **`CSSSkewX`** interface of the CSS Typed Object Model API represents the `skewX()` value of the individual transform property in CSS.
   5710  *
   5711  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewX)
   5712  */
   5713 interface CSSSkewX extends CSSTransformComponent {
   5714     /**
   5715      * The **`ax`** property of the along the x-axis (or abscissa).
   5716      *
   5717      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewX/ax)
   5718      */
   5719     ax: CSSNumericValue;
   5720 }
   5721 
   5722 declare var CSSSkewX: {
   5723     prototype: CSSSkewX;
   5724     new(ax: CSSNumericValue): CSSSkewX;
   5725 };
   5726 
   5727 /**
   5728  * The **`CSSSkewY`** interface of the CSS Typed Object Model API represents the `skewY()` value of the individual transform property in CSS.
   5729  *
   5730  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewY)
   5731  */
   5732 interface CSSSkewY extends CSSTransformComponent {
   5733     /**
   5734      * The **`ay`** property of the along the y-axis (or ordinate).
   5735      *
   5736      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewY/ay)
   5737      */
   5738     ay: CSSNumericValue;
   5739 }
   5740 
   5741 declare var CSSSkewY: {
   5742     prototype: CSSSkewY;
   5743     new(ay: CSSNumericValue): CSSSkewY;
   5744 };
   5745 
   5746 /**
   5747  * The **`CSSStartingStyleRule`** interface of the CSS Object Model represents a CSS @starting-style at-rule.
   5748  *
   5749  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStartingStyleRule)
   5750  */
   5751 interface CSSStartingStyleRule extends CSSGroupingRule {
   5752 }
   5753 
   5754 declare var CSSStartingStyleRule: {
   5755     prototype: CSSStartingStyleRule;
   5756     new(): CSSStartingStyleRule;
   5757 };
   5758 
   5759 /**
   5760  * The **`CSSStyleDeclaration`** interface represents an object that is a CSS declaration block, and exposes style information and various style-related methods and properties.
   5761  *
   5762  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration)
   5763  */
   5764 interface CSSStyleDeclaration {
   5765     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/accent-color) */
   5766     accentColor: string;
   5767     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-content) */
   5768     alignContent: string;
   5769     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-items) */
   5770     alignItems: string;
   5771     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-self) */
   5772     alignSelf: string;
   5773     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/alignment-baseline) */
   5774     alignmentBaseline: string;
   5775     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/all) */
   5776     all: string;
   5777     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation) */
   5778     animation: string;
   5779     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-composition) */
   5780     animationComposition: string;
   5781     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-delay) */
   5782     animationDelay: string;
   5783     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-direction) */
   5784     animationDirection: string;
   5785     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-duration) */
   5786     animationDuration: string;
   5787     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode) */
   5788     animationFillMode: string;
   5789     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count) */
   5790     animationIterationCount: string;
   5791     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-name) */
   5792     animationName: string;
   5793     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-play-state) */
   5794     animationPlayState: string;
   5795     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-timing-function) */
   5796     animationTimingFunction: string;
   5797     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/appearance) */
   5798     appearance: string;
   5799     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/aspect-ratio) */
   5800     aspectRatio: string;
   5801     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backdrop-filter) */
   5802     backdropFilter: string;
   5803     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backface-visibility) */
   5804     backfaceVisibility: string;
   5805     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background) */
   5806     background: string;
   5807     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-attachment) */
   5808     backgroundAttachment: string;
   5809     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-blend-mode) */
   5810     backgroundBlendMode: string;
   5811     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-clip) */
   5812     backgroundClip: string;
   5813     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-color) */
   5814     backgroundColor: string;
   5815     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-image) */
   5816     backgroundImage: string;
   5817     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-origin) */
   5818     backgroundOrigin: string;
   5819     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position) */
   5820     backgroundPosition: string;
   5821     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position-x) */
   5822     backgroundPositionX: string;
   5823     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position-y) */
   5824     backgroundPositionY: string;
   5825     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-repeat) */
   5826     backgroundRepeat: string;
   5827     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-size) */
   5828     backgroundSize: string;
   5829     baselineShift: string;
   5830     baselineSource: string;
   5831     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/block-size) */
   5832     blockSize: string;
   5833     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border) */
   5834     border: string;
   5835     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block) */
   5836     borderBlock: string;
   5837     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-color) */
   5838     borderBlockColor: string;
   5839     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end) */
   5840     borderBlockEnd: string;
   5841     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-color) */
   5842     borderBlockEndColor: string;
   5843     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-style) */
   5844     borderBlockEndStyle: string;
   5845     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-width) */
   5846     borderBlockEndWidth: string;
   5847     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start) */
   5848     borderBlockStart: string;
   5849     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-color) */
   5850     borderBlockStartColor: string;
   5851     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-style) */
   5852     borderBlockStartStyle: string;
   5853     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-width) */
   5854     borderBlockStartWidth: string;
   5855     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-style) */
   5856     borderBlockStyle: string;
   5857     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-width) */
   5858     borderBlockWidth: string;
   5859     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom) */
   5860     borderBottom: string;
   5861     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-color) */
   5862     borderBottomColor: string;
   5863     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius) */
   5864     borderBottomLeftRadius: string;
   5865     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius) */
   5866     borderBottomRightRadius: string;
   5867     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-style) */
   5868     borderBottomStyle: string;
   5869     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-width) */
   5870     borderBottomWidth: string;
   5871     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-collapse) */
   5872     borderCollapse: string;
   5873     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-color) */
   5874     borderColor: string;
   5875     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-end-end-radius) */
   5876     borderEndEndRadius: string;
   5877     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-end-start-radius) */
   5878     borderEndStartRadius: string;
   5879     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image) */
   5880     borderImage: string;
   5881     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-outset) */
   5882     borderImageOutset: string;
   5883     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-repeat) */
   5884     borderImageRepeat: string;
   5885     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-slice) */
   5886     borderImageSlice: string;
   5887     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-source) */
   5888     borderImageSource: string;
   5889     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-width) */
   5890     borderImageWidth: string;
   5891     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline) */
   5892     borderInline: string;
   5893     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-color) */
   5894     borderInlineColor: string;
   5895     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end) */
   5896     borderInlineEnd: string;
   5897     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-color) */
   5898     borderInlineEndColor: string;
   5899     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-style) */
   5900     borderInlineEndStyle: string;
   5901     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-width) */
   5902     borderInlineEndWidth: string;
   5903     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start) */
   5904     borderInlineStart: string;
   5905     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-color) */
   5906     borderInlineStartColor: string;
   5907     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-style) */
   5908     borderInlineStartStyle: string;
   5909     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-width) */
   5910     borderInlineStartWidth: string;
   5911     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-style) */
   5912     borderInlineStyle: string;
   5913     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-width) */
   5914     borderInlineWidth: string;
   5915     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left) */
   5916     borderLeft: string;
   5917     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-color) */
   5918     borderLeftColor: string;
   5919     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-style) */
   5920     borderLeftStyle: string;
   5921     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-width) */
   5922     borderLeftWidth: string;
   5923     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-radius) */
   5924     borderRadius: string;
   5925     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right) */
   5926     borderRight: string;
   5927     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-color) */
   5928     borderRightColor: string;
   5929     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-style) */
   5930     borderRightStyle: string;
   5931     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-width) */
   5932     borderRightWidth: string;
   5933     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-spacing) */
   5934     borderSpacing: string;
   5935     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-start-end-radius) */
   5936     borderStartEndRadius: string;
   5937     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-start-start-radius) */
   5938     borderStartStartRadius: string;
   5939     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-style) */
   5940     borderStyle: string;
   5941     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top) */
   5942     borderTop: string;
   5943     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-color) */
   5944     borderTopColor: string;
   5945     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius) */
   5946     borderTopLeftRadius: string;
   5947     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius) */
   5948     borderTopRightRadius: string;
   5949     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-style) */
   5950     borderTopStyle: string;
   5951     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-width) */
   5952     borderTopWidth: string;
   5953     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-width) */
   5954     borderWidth: string;
   5955     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/bottom) */
   5956     bottom: string;
   5957     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-decoration-break) */
   5958     boxDecorationBreak: string;
   5959     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-shadow) */
   5960     boxShadow: string;
   5961     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-sizing) */
   5962     boxSizing: string;
   5963     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-after) */
   5964     breakAfter: string;
   5965     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-before) */
   5966     breakBefore: string;
   5967     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-inside) */
   5968     breakInside: string;
   5969     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/caption-side) */
   5970     captionSide: string;
   5971     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/caret-color) */
   5972     caretColor: string;
   5973     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clear) */
   5974     clear: string;
   5975     /**
   5976      * @deprecated
   5977      *
   5978      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clip)
   5979      */
   5980     clip: string;
   5981     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clip-path) */
   5982     clipPath: string;
   5983     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clip-rule) */
   5984     clipRule: string;
   5985     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/color) */
   5986     color: string;
   5987     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/color-interpolation) */
   5988     colorInterpolation: string;
   5989     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/color-interpolation-filters) */
   5990     colorInterpolationFilters: string;
   5991     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/color-scheme) */
   5992     colorScheme: string;
   5993     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-count) */
   5994     columnCount: string;
   5995     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-fill) */
   5996     columnFill: string;
   5997     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-gap) */
   5998     columnGap: string;
   5999     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule) */
   6000     columnRule: string;
   6001     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-color) */
   6002     columnRuleColor: string;
   6003     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-style) */
   6004     columnRuleStyle: string;
   6005     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-width) */
   6006     columnRuleWidth: string;
   6007     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-span) */
   6008     columnSpan: string;
   6009     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-width) */
   6010     columnWidth: string;
   6011     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/columns) */
   6012     columns: string;
   6013     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain) */
   6014     contain: string;
   6015     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-block-size) */
   6016     containIntrinsicBlockSize: string;
   6017     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-height) */
   6018     containIntrinsicHeight: string;
   6019     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-inline-size) */
   6020     containIntrinsicInlineSize: string;
   6021     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-size) */
   6022     containIntrinsicSize: string;
   6023     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-width) */
   6024     containIntrinsicWidth: string;
   6025     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container) */
   6026     container: string;
   6027     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container-name) */
   6028     containerName: string;
   6029     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container-type) */
   6030     containerType: string;
   6031     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/content) */
   6032     content: string;
   6033     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/content-visibility) */
   6034     contentVisibility: string;
   6035     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-increment) */
   6036     counterIncrement: string;
   6037     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-reset) */
   6038     counterReset: string;
   6039     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-set) */
   6040     counterSet: string;
   6041     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/cssFloat) */
   6042     cssFloat: string;
   6043     /**
   6044      * The **`cssText`** property of the CSSStyleDeclaration interface returns or sets the text of the element's **inline** style declaration only.
   6045      *
   6046      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/cssText)
   6047      */
   6048     cssText: string;
   6049     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/cursor) */
   6050     cursor: string;
   6051     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/cx) */
   6052     cx: string;
   6053     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/cy) */
   6054     cy: string;
   6055     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/d) */
   6056     d: string;
   6057     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/direction) */
   6058     direction: string;
   6059     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/display) */
   6060     display: string;
   6061     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/dominant-baseline) */
   6062     dominantBaseline: string;
   6063     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/empty-cells) */
   6064     emptyCells: string;
   6065     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/fill) */
   6066     fill: string;
   6067     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/fill-opacity) */
   6068     fillOpacity: string;
   6069     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/fill-rule) */
   6070     fillRule: string;
   6071     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/filter) */
   6072     filter: string;
   6073     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex) */
   6074     flex: string;
   6075     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-basis) */
   6076     flexBasis: string;
   6077     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-direction) */
   6078     flexDirection: string;
   6079     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-flow) */
   6080     flexFlow: string;
   6081     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-grow) */
   6082     flexGrow: string;
   6083     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-shrink) */
   6084     flexShrink: string;
   6085     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-wrap) */
   6086     flexWrap: string;
   6087     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/float) */
   6088     float: string;
   6089     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flood-color) */
   6090     floodColor: string;
   6091     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flood-opacity) */
   6092     floodOpacity: string;
   6093     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font) */
   6094     font: string;
   6095     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-family) */
   6096     fontFamily: string;
   6097     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-feature-settings) */
   6098     fontFeatureSettings: string;
   6099     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-kerning) */
   6100     fontKerning: string;
   6101     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-optical-sizing) */
   6102     fontOpticalSizing: string;
   6103     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-palette) */
   6104     fontPalette: string;
   6105     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-size) */
   6106     fontSize: string;
   6107     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-size-adjust) */
   6108     fontSizeAdjust: string;
   6109     /**
   6110      * @deprecated
   6111      *
   6112      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-stretch)
   6113      */
   6114     fontStretch: string;
   6115     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-style) */
   6116     fontStyle: string;
   6117     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis) */
   6118     fontSynthesis: string;
   6119     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-small-caps) */
   6120     fontSynthesisSmallCaps: string;
   6121     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-style) */
   6122     fontSynthesisStyle: string;
   6123     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-weight) */
   6124     fontSynthesisWeight: string;
   6125     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant) */
   6126     fontVariant: string;
   6127     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates) */
   6128     fontVariantAlternates: string;
   6129     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-caps) */
   6130     fontVariantCaps: string;
   6131     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian) */
   6132     fontVariantEastAsian: string;
   6133     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures) */
   6134     fontVariantLigatures: string;
   6135     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric) */
   6136     fontVariantNumeric: string;
   6137     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-position) */
   6138     fontVariantPosition: string;
   6139     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variation-settings) */
   6140     fontVariationSettings: string;
   6141     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-weight) */
   6142     fontWeight: string;
   6143     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/forced-color-adjust) */
   6144     forcedColorAdjust: string;
   6145     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/gap) */
   6146     gap: string;
   6147     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid) */
   6148     grid: string;
   6149     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-area) */
   6150     gridArea: string;
   6151     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns) */
   6152     gridAutoColumns: string;
   6153     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow) */
   6154     gridAutoFlow: string;
   6155     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows) */
   6156     gridAutoRows: string;
   6157     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column) */
   6158     gridColumn: string;
   6159     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column-end) */
   6160     gridColumnEnd: string;
   6161     /** @deprecated This is a legacy alias of `columnGap`. */
   6162     gridColumnGap: string;
   6163     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column-start) */
   6164     gridColumnStart: string;
   6165     /** @deprecated This is a legacy alias of `gap`. */
   6166     gridGap: string;
   6167     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row) */
   6168     gridRow: string;
   6169     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row-end) */
   6170     gridRowEnd: string;
   6171     /** @deprecated This is a legacy alias of `rowGap`. */
   6172     gridRowGap: string;
   6173     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row-start) */
   6174     gridRowStart: string;
   6175     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template) */
   6176     gridTemplate: string;
   6177     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-areas) */
   6178     gridTemplateAreas: string;
   6179     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-columns) */
   6180     gridTemplateColumns: string;
   6181     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-rows) */
   6182     gridTemplateRows: string;
   6183     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/height) */
   6184     height: string;
   6185     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/hyphenate-character) */
   6186     hyphenateCharacter: string;
   6187     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/hyphenate-limit-chars) */
   6188     hyphenateLimitChars: string;
   6189     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/hyphens) */
   6190     hyphens: string;
   6191     /**
   6192      * @deprecated
   6193      *
   6194      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/image-orientation)
   6195      */
   6196     imageOrientation: string;
   6197     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/image-rendering) */
   6198     imageRendering: string;
   6199     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inline-size) */
   6200     inlineSize: string;
   6201     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset) */
   6202     inset: string;
   6203     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block) */
   6204     insetBlock: string;
   6205     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block-end) */
   6206     insetBlockEnd: string;
   6207     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block-start) */
   6208     insetBlockStart: string;
   6209     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline) */
   6210     insetInline: string;
   6211     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline-end) */
   6212     insetInlineEnd: string;
   6213     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline-start) */
   6214     insetInlineStart: string;
   6215     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/isolation) */
   6216     isolation: string;
   6217     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-content) */
   6218     justifyContent: string;
   6219     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-items) */
   6220     justifyItems: string;
   6221     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-self) */
   6222     justifySelf: string;
   6223     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/left) */
   6224     left: string;
   6225     /**
   6226      * The read-only property returns an integer that represents the number of style declarations in this CSS declaration block.
   6227      *
   6228      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/length)
   6229      */
   6230     readonly length: number;
   6231     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/letter-spacing) */
   6232     letterSpacing: string;
   6233     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/lighting-color) */
   6234     lightingColor: string;
   6235     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/line-break) */
   6236     lineBreak: string;
   6237     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/line-height) */
   6238     lineHeight: string;
   6239     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style) */
   6240     listStyle: string;
   6241     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-image) */
   6242     listStyleImage: string;
   6243     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-position) */
   6244     listStylePosition: string;
   6245     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-type) */
   6246     listStyleType: string;
   6247     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin) */
   6248     margin: string;
   6249     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block) */
   6250     marginBlock: string;
   6251     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block-end) */
   6252     marginBlockEnd: string;
   6253     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block-start) */
   6254     marginBlockStart: string;
   6255     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-bottom) */
   6256     marginBottom: string;
   6257     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline) */
   6258     marginInline: string;
   6259     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline-end) */
   6260     marginInlineEnd: string;
   6261     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline-start) */
   6262     marginInlineStart: string;
   6263     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-left) */
   6264     marginLeft: string;
   6265     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-right) */
   6266     marginRight: string;
   6267     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-top) */
   6268     marginTop: string;
   6269     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/marker) */
   6270     marker: string;
   6271     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/marker-end) */
   6272     markerEnd: string;
   6273     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/marker-mid) */
   6274     markerMid: string;
   6275     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/marker-start) */
   6276     markerStart: string;
   6277     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask) */
   6278     mask: string;
   6279     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-clip) */
   6280     maskClip: string;
   6281     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-composite) */
   6282     maskComposite: string;
   6283     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-image) */
   6284     maskImage: string;
   6285     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-mode) */
   6286     maskMode: string;
   6287     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-origin) */
   6288     maskOrigin: string;
   6289     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-position) */
   6290     maskPosition: string;
   6291     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-repeat) */
   6292     maskRepeat: string;
   6293     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-size) */
   6294     maskSize: string;
   6295     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-type) */
   6296     maskType: string;
   6297     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/math-depth) */
   6298     mathDepth: string;
   6299     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/math-style) */
   6300     mathStyle: string;
   6301     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-block-size) */
   6302     maxBlockSize: string;
   6303     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-height) */
   6304     maxHeight: string;
   6305     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-inline-size) */
   6306     maxInlineSize: string;
   6307     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-width) */
   6308     maxWidth: string;
   6309     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-block-size) */
   6310     minBlockSize: string;
   6311     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-height) */
   6312     minHeight: string;
   6313     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-inline-size) */
   6314     minInlineSize: string;
   6315     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-width) */
   6316     minWidth: string;
   6317     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode) */
   6318     mixBlendMode: string;
   6319     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/object-fit) */
   6320     objectFit: string;
   6321     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/object-position) */
   6322     objectPosition: string;
   6323     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset) */
   6324     offset: string;
   6325     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-anchor) */
   6326     offsetAnchor: string;
   6327     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-distance) */
   6328     offsetDistance: string;
   6329     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-path) */
   6330     offsetPath: string;
   6331     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-position) */
   6332     offsetPosition: string;
   6333     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-rotate) */
   6334     offsetRotate: string;
   6335     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/opacity) */
   6336     opacity: string;
   6337     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/order) */
   6338     order: string;
   6339     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/orphans) */
   6340     orphans: string;
   6341     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline) */
   6342     outline: string;
   6343     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-color) */
   6344     outlineColor: string;
   6345     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-offset) */
   6346     outlineOffset: string;
   6347     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-style) */
   6348     outlineStyle: string;
   6349     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-width) */
   6350     outlineWidth: string;
   6351     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow) */
   6352     overflow: string;
   6353     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-anchor) */
   6354     overflowAnchor: string;
   6355     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-block) */
   6356     overflowBlock: string;
   6357     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-clip-margin) */
   6358     overflowClipMargin: string;
   6359     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-inline) */
   6360     overflowInline: string;
   6361     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-wrap) */
   6362     overflowWrap: string;
   6363     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-x) */
   6364     overflowX: string;
   6365     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-y) */
   6366     overflowY: string;
   6367     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior) */
   6368     overscrollBehavior: string;
   6369     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-block) */
   6370     overscrollBehaviorBlock: string;
   6371     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-inline) */
   6372     overscrollBehaviorInline: string;
   6373     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-x) */
   6374     overscrollBehaviorX: string;
   6375     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-y) */
   6376     overscrollBehaviorY: string;
   6377     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding) */
   6378     padding: string;
   6379     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block) */
   6380     paddingBlock: string;
   6381     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block-end) */
   6382     paddingBlockEnd: string;
   6383     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block-start) */
   6384     paddingBlockStart: string;
   6385     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-bottom) */
   6386     paddingBottom: string;
   6387     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline) */
   6388     paddingInline: string;
   6389     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline-end) */
   6390     paddingInlineEnd: string;
   6391     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline-start) */
   6392     paddingInlineStart: string;
   6393     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-left) */
   6394     paddingLeft: string;
   6395     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-right) */
   6396     paddingRight: string;
   6397     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-top) */
   6398     paddingTop: string;
   6399     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page) */
   6400     page: string;
   6401     /**
   6402      * @deprecated
   6403      *
   6404      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-after)
   6405      */
   6406     pageBreakAfter: string;
   6407     /**
   6408      * @deprecated
   6409      *
   6410      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-before)
   6411      */
   6412     pageBreakBefore: string;
   6413     /**
   6414      * @deprecated
   6415      *
   6416      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-inside)
   6417      */
   6418     pageBreakInside: string;
   6419     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/paint-order) */
   6420     paintOrder: string;
   6421     /**
   6422      * The **CSSStyleDeclaration.parentRule** read-only property returns a CSSRule that is the parent of this style block, e.g., a CSSStyleRule representing the style for a CSS selector.
   6423      *
   6424      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/parentRule)
   6425      */
   6426     readonly parentRule: CSSRule | null;
   6427     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective) */
   6428     perspective: string;
   6429     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective-origin) */
   6430     perspectiveOrigin: string;
   6431     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-content) */
   6432     placeContent: string;
   6433     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-items) */
   6434     placeItems: string;
   6435     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-self) */
   6436     placeSelf: string;
   6437     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/pointer-events) */
   6438     pointerEvents: string;
   6439     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/position) */
   6440     position: string;
   6441     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/print-color-adjust) */
   6442     printColorAdjust: string;
   6443     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/quotes) */
   6444     quotes: string;
   6445     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/r) */
   6446     r: string;
   6447     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/resize) */
   6448     resize: string;
   6449     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/right) */
   6450     right: string;
   6451     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/rotate) */
   6452     rotate: string;
   6453     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/row-gap) */
   6454     rowGap: string;
   6455     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/ruby-align) */
   6456     rubyAlign: string;
   6457     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/ruby-position) */
   6458     rubyPosition: string;
   6459     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/rx) */
   6460     rx: string;
   6461     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/ry) */
   6462     ry: string;
   6463     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scale) */
   6464     scale: string;
   6465     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-behavior) */
   6466     scrollBehavior: string;
   6467     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin) */
   6468     scrollMargin: string;
   6469     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block) */
   6470     scrollMarginBlock: string;
   6471     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-end) */
   6472     scrollMarginBlockEnd: string;
   6473     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-start) */
   6474     scrollMarginBlockStart: string;
   6475     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-bottom) */
   6476     scrollMarginBottom: string;
   6477     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline) */
   6478     scrollMarginInline: string;
   6479     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-end) */
   6480     scrollMarginInlineEnd: string;
   6481     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-start) */
   6482     scrollMarginInlineStart: string;
   6483     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-left) */
   6484     scrollMarginLeft: string;
   6485     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-right) */
   6486     scrollMarginRight: string;
   6487     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-top) */
   6488     scrollMarginTop: string;
   6489     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding) */
   6490     scrollPadding: string;
   6491     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block) */
   6492     scrollPaddingBlock: string;
   6493     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-end) */
   6494     scrollPaddingBlockEnd: string;
   6495     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-start) */
   6496     scrollPaddingBlockStart: string;
   6497     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-bottom) */
   6498     scrollPaddingBottom: string;
   6499     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline) */
   6500     scrollPaddingInline: string;
   6501     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-end) */
   6502     scrollPaddingInlineEnd: string;
   6503     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-start) */
   6504     scrollPaddingInlineStart: string;
   6505     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-left) */
   6506     scrollPaddingLeft: string;
   6507     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-right) */
   6508     scrollPaddingRight: string;
   6509     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-top) */
   6510     scrollPaddingTop: string;
   6511     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-align) */
   6512     scrollSnapAlign: string;
   6513     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-stop) */
   6514     scrollSnapStop: string;
   6515     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type) */
   6516     scrollSnapType: string;
   6517     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-color) */
   6518     scrollbarColor: string;
   6519     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-gutter) */
   6520     scrollbarGutter: string;
   6521     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-width) */
   6522     scrollbarWidth: string;
   6523     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold) */
   6524     shapeImageThreshold: string;
   6525     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-margin) */
   6526     shapeMargin: string;
   6527     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-outside) */
   6528     shapeOutside: string;
   6529     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-rendering) */
   6530     shapeRendering: string;
   6531     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stop-color) */
   6532     stopColor: string;
   6533     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stop-opacity) */
   6534     stopOpacity: string;
   6535     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke) */
   6536     stroke: string;
   6537     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke-dasharray) */
   6538     strokeDasharray: string;
   6539     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke-dashoffset) */
   6540     strokeDashoffset: string;
   6541     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke-linecap) */
   6542     strokeLinecap: string;
   6543     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke-linejoin) */
   6544     strokeLinejoin: string;
   6545     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke-miterlimit) */
   6546     strokeMiterlimit: string;
   6547     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke-opacity) */
   6548     strokeOpacity: string;
   6549     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/stroke-width) */
   6550     strokeWidth: string;
   6551     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/tab-size) */
   6552     tabSize: string;
   6553     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/table-layout) */
   6554     tableLayout: string;
   6555     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-align) */
   6556     textAlign: string;
   6557     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-align-last) */
   6558     textAlignLast: string;
   6559     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-anchor) */
   6560     textAnchor: string;
   6561     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-box) */
   6562     textBox: string;
   6563     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-box-edge) */
   6564     textBoxEdge: string;
   6565     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-box-trim) */
   6566     textBoxTrim: string;
   6567     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-combine-upright) */
   6568     textCombineUpright: string;
   6569     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration) */
   6570     textDecoration: string;
   6571     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-color) */
   6572     textDecorationColor: string;
   6573     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-line) */
   6574     textDecorationLine: string;
   6575     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink) */
   6576     textDecorationSkipInk: string;
   6577     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-style) */
   6578     textDecorationStyle: string;
   6579     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness) */
   6580     textDecorationThickness: string;
   6581     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis) */
   6582     textEmphasis: string;
   6583     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color) */
   6584     textEmphasisColor: string;
   6585     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position) */
   6586     textEmphasisPosition: string;
   6587     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style) */
   6588     textEmphasisStyle: string;
   6589     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-indent) */
   6590     textIndent: string;
   6591     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-orientation) */
   6592     textOrientation: string;
   6593     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-overflow) */
   6594     textOverflow: string;
   6595     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-rendering) */
   6596     textRendering: string;
   6597     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-shadow) */
   6598     textShadow: string;
   6599     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-transform) */
   6600     textTransform: string;
   6601     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-underline-offset) */
   6602     textUnderlineOffset: string;
   6603     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-underline-position) */
   6604     textUnderlinePosition: string;
   6605     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-wrap) */
   6606     textWrap: string;
   6607     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-wrap-mode) */
   6608     textWrapMode: string;
   6609     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-wrap-style) */
   6610     textWrapStyle: string;
   6611     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/top) */
   6612     top: string;
   6613     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/touch-action) */
   6614     touchAction: string;
   6615     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform) */
   6616     transform: string;
   6617     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-box) */
   6618     transformBox: string;
   6619     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-origin) */
   6620     transformOrigin: string;
   6621     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-style) */
   6622     transformStyle: string;
   6623     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition) */
   6624     transition: string;
   6625     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-behavior) */
   6626     transitionBehavior: string;
   6627     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-delay) */
   6628     transitionDelay: string;
   6629     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-duration) */
   6630     transitionDuration: string;
   6631     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-property) */
   6632     transitionProperty: string;
   6633     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-timing-function) */
   6634     transitionTimingFunction: string;
   6635     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/translate) */
   6636     translate: string;
   6637     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/unicode-bidi) */
   6638     unicodeBidi: string;
   6639     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/user-select) */
   6640     userSelect: string;
   6641     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/vector-effect) */
   6642     vectorEffect: string;
   6643     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/vertical-align) */
   6644     verticalAlign: string;
   6645     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/view-transition-class) */
   6646     viewTransitionClass: string;
   6647     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/view-transition-name) */
   6648     viewTransitionName: string;
   6649     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/visibility) */
   6650     visibility: string;
   6651     /**
   6652      * @deprecated This is a legacy alias of `alignContent`.
   6653      *
   6654      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-content)
   6655      */
   6656     webkitAlignContent: string;
   6657     /**
   6658      * @deprecated This is a legacy alias of `alignItems`.
   6659      *
   6660      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-items)
   6661      */
   6662     webkitAlignItems: string;
   6663     /**
   6664      * @deprecated This is a legacy alias of `alignSelf`.
   6665      *
   6666      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-self)
   6667      */
   6668     webkitAlignSelf: string;
   6669     /**
   6670      * @deprecated This is a legacy alias of `animation`.
   6671      *
   6672      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation)
   6673      */
   6674     webkitAnimation: string;
   6675     /**
   6676      * @deprecated This is a legacy alias of `animationDelay`.
   6677      *
   6678      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-delay)
   6679      */
   6680     webkitAnimationDelay: string;
   6681     /**
   6682      * @deprecated This is a legacy alias of `animationDirection`.
   6683      *
   6684      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-direction)
   6685      */
   6686     webkitAnimationDirection: string;
   6687     /**
   6688      * @deprecated This is a legacy alias of `animationDuration`.
   6689      *
   6690      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-duration)
   6691      */
   6692     webkitAnimationDuration: string;
   6693     /**
   6694      * @deprecated This is a legacy alias of `animationFillMode`.
   6695      *
   6696      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode)
   6697      */
   6698     webkitAnimationFillMode: string;
   6699     /**
   6700      * @deprecated This is a legacy alias of `animationIterationCount`.
   6701      *
   6702      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count)
   6703      */
   6704     webkitAnimationIterationCount: string;
   6705     /**
   6706      * @deprecated This is a legacy alias of `animationName`.
   6707      *
   6708      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-name)
   6709      */
   6710     webkitAnimationName: string;
   6711     /**
   6712      * @deprecated This is a legacy alias of `animationPlayState`.
   6713      *
   6714      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-play-state)
   6715      */
   6716     webkitAnimationPlayState: string;
   6717     /**
   6718      * @deprecated This is a legacy alias of `animationTimingFunction`.
   6719      *
   6720      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-timing-function)
   6721      */
   6722     webkitAnimationTimingFunction: string;
   6723     /**
   6724      * @deprecated This is a legacy alias of `appearance`.
   6725      *
   6726      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/appearance)
   6727      */
   6728     webkitAppearance: string;
   6729     /**
   6730      * @deprecated This is a legacy alias of `backfaceVisibility`.
   6731      *
   6732      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backface-visibility)
   6733      */
   6734     webkitBackfaceVisibility: string;
   6735     /**
   6736      * @deprecated This is a legacy alias of `backgroundClip`.
   6737      *
   6738      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-clip)
   6739      */
   6740     webkitBackgroundClip: string;
   6741     /**
   6742      * @deprecated This is a legacy alias of `backgroundOrigin`.
   6743      *
   6744      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-origin)
   6745      */
   6746     webkitBackgroundOrigin: string;
   6747     /**
   6748      * @deprecated This is a legacy alias of `backgroundSize`.
   6749      *
   6750      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-size)
   6751      */
   6752     webkitBackgroundSize: string;
   6753     /**
   6754      * @deprecated This is a legacy alias of `borderBottomLeftRadius`.
   6755      *
   6756      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius)
   6757      */
   6758     webkitBorderBottomLeftRadius: string;
   6759     /**
   6760      * @deprecated This is a legacy alias of `borderBottomRightRadius`.
   6761      *
   6762      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius)
   6763      */
   6764     webkitBorderBottomRightRadius: string;
   6765     /**
   6766      * @deprecated This is a legacy alias of `borderRadius`.
   6767      *
   6768      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-radius)
   6769      */
   6770     webkitBorderRadius: string;
   6771     /**
   6772      * @deprecated This is a legacy alias of `borderTopLeftRadius`.
   6773      *
   6774      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius)
   6775      */
   6776     webkitBorderTopLeftRadius: string;
   6777     /**
   6778      * @deprecated This is a legacy alias of `borderTopRightRadius`.
   6779      *
   6780      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius)
   6781      */
   6782     webkitBorderTopRightRadius: string;
   6783     /**
   6784      * @deprecated This is a legacy alias of `boxAlign`.
   6785      *
   6786      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-align)
   6787      */
   6788     webkitBoxAlign: string;
   6789     /**
   6790      * @deprecated This is a legacy alias of `boxFlex`.
   6791      *
   6792      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-flex)
   6793      */
   6794     webkitBoxFlex: string;
   6795     /**
   6796      * @deprecated This is a legacy alias of `boxOrdinalGroup`.
   6797      *
   6798      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-ordinal-group)
   6799      */
   6800     webkitBoxOrdinalGroup: string;
   6801     /**
   6802      * @deprecated This is a legacy alias of `boxOrient`.
   6803      *
   6804      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-orient)
   6805      */
   6806     webkitBoxOrient: string;
   6807     /**
   6808      * @deprecated This is a legacy alias of `boxPack`.
   6809      *
   6810      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-pack)
   6811      */
   6812     webkitBoxPack: string;
   6813     /**
   6814      * @deprecated This is a legacy alias of `boxShadow`.
   6815      *
   6816      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-shadow)
   6817      */
   6818     webkitBoxShadow: string;
   6819     /**
   6820      * @deprecated This is a legacy alias of `boxSizing`.
   6821      *
   6822      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-sizing)
   6823      */
   6824     webkitBoxSizing: string;
   6825     /**
   6826      * @deprecated This is a legacy alias of `filter`.
   6827      *
   6828      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/filter)
   6829      */
   6830     webkitFilter: string;
   6831     /**
   6832      * @deprecated This is a legacy alias of `flex`.
   6833      *
   6834      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex)
   6835      */
   6836     webkitFlex: string;
   6837     /**
   6838      * @deprecated This is a legacy alias of `flexBasis`.
   6839      *
   6840      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-basis)
   6841      */
   6842     webkitFlexBasis: string;
   6843     /**
   6844      * @deprecated This is a legacy alias of `flexDirection`.
   6845      *
   6846      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-direction)
   6847      */
   6848     webkitFlexDirection: string;
   6849     /**
   6850      * @deprecated This is a legacy alias of `flexFlow`.
   6851      *
   6852      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-flow)
   6853      */
   6854     webkitFlexFlow: string;
   6855     /**
   6856      * @deprecated This is a legacy alias of `flexGrow`.
   6857      *
   6858      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-grow)
   6859      */
   6860     webkitFlexGrow: string;
   6861     /**
   6862      * @deprecated This is a legacy alias of `flexShrink`.
   6863      *
   6864      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-shrink)
   6865      */
   6866     webkitFlexShrink: string;
   6867     /**
   6868      * @deprecated This is a legacy alias of `flexWrap`.
   6869      *
   6870      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-wrap)
   6871      */
   6872     webkitFlexWrap: string;
   6873     /**
   6874      * @deprecated This is a legacy alias of `justifyContent`.
   6875      *
   6876      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-content)
   6877      */
   6878     webkitJustifyContent: string;
   6879     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/line-clamp) */
   6880     webkitLineClamp: string;
   6881     /**
   6882      * @deprecated This is a legacy alias of `mask`.
   6883      *
   6884      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask)
   6885      */
   6886     webkitMask: string;
   6887     /**
   6888      * @deprecated This is a legacy alias of `maskBorder`.
   6889      *
   6890      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border)
   6891      */
   6892     webkitMaskBoxImage: string;
   6893     /**
   6894      * @deprecated This is a legacy alias of `maskBorderOutset`.
   6895      *
   6896      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-outset)
   6897      */
   6898     webkitMaskBoxImageOutset: string;
   6899     /**
   6900      * @deprecated This is a legacy alias of `maskBorderRepeat`.
   6901      *
   6902      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-repeat)
   6903      */
   6904     webkitMaskBoxImageRepeat: string;
   6905     /**
   6906      * @deprecated This is a legacy alias of `maskBorderSlice`.
   6907      *
   6908      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-slice)
   6909      */
   6910     webkitMaskBoxImageSlice: string;
   6911     /**
   6912      * @deprecated This is a legacy alias of `maskBorderSource`.
   6913      *
   6914      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-source)
   6915      */
   6916     webkitMaskBoxImageSource: string;
   6917     /**
   6918      * @deprecated This is a legacy alias of `maskBorderWidth`.
   6919      *
   6920      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-width)
   6921      */
   6922     webkitMaskBoxImageWidth: string;
   6923     /**
   6924      * @deprecated This is a legacy alias of `maskClip`.
   6925      *
   6926      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-clip)
   6927      */
   6928     webkitMaskClip: string;
   6929     /**
   6930      * @deprecated This is a legacy alias of `maskComposite`.
   6931      *
   6932      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-composite)
   6933      */
   6934     webkitMaskComposite: string;
   6935     /**
   6936      * @deprecated This is a legacy alias of `maskImage`.
   6937      *
   6938      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-image)
   6939      */
   6940     webkitMaskImage: string;
   6941     /**
   6942      * @deprecated This is a legacy alias of `maskOrigin`.
   6943      *
   6944      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-origin)
   6945      */
   6946     webkitMaskOrigin: string;
   6947     /**
   6948      * @deprecated This is a legacy alias of `maskPosition`.
   6949      *
   6950      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-position)
   6951      */
   6952     webkitMaskPosition: string;
   6953     /**
   6954      * @deprecated This is a legacy alias of `maskRepeat`.
   6955      *
   6956      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-repeat)
   6957      */
   6958     webkitMaskRepeat: string;
   6959     /**
   6960      * @deprecated This is a legacy alias of `maskSize`.
   6961      *
   6962      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-size)
   6963      */
   6964     webkitMaskSize: string;
   6965     /**
   6966      * @deprecated This is a legacy alias of `order`.
   6967      *
   6968      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/order)
   6969      */
   6970     webkitOrder: string;
   6971     /**
   6972      * @deprecated This is a legacy alias of `perspective`.
   6973      *
   6974      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective)
   6975      */
   6976     webkitPerspective: string;
   6977     /**
   6978      * @deprecated This is a legacy alias of `perspectiveOrigin`.
   6979      *
   6980      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective-origin)
   6981      */
   6982     webkitPerspectiveOrigin: string;
   6983     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color) */
   6984     webkitTextFillColor: string;
   6985     /**
   6986      * @deprecated This is a legacy alias of `textSizeAdjust`.
   6987      *
   6988      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-size-adjust)
   6989      */
   6990     webkitTextSizeAdjust: string;
   6991     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke) */
   6992     webkitTextStroke: string;
   6993     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color) */
   6994     webkitTextStrokeColor: string;
   6995     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width) */
   6996     webkitTextStrokeWidth: string;
   6997     /**
   6998      * @deprecated This is a legacy alias of `transform`.
   6999      *
   7000      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform)
   7001      */
   7002     webkitTransform: string;
   7003     /**
   7004      * @deprecated This is a legacy alias of `transformOrigin`.
   7005      *
   7006      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-origin)
   7007      */
   7008     webkitTransformOrigin: string;
   7009     /**
   7010      * @deprecated This is a legacy alias of `transformStyle`.
   7011      *
   7012      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-style)
   7013      */
   7014     webkitTransformStyle: string;
   7015     /**
   7016      * @deprecated This is a legacy alias of `transition`.
   7017      *
   7018      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition)
   7019      */
   7020     webkitTransition: string;
   7021     /**
   7022      * @deprecated This is a legacy alias of `transitionDelay`.
   7023      *
   7024      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-delay)
   7025      */
   7026     webkitTransitionDelay: string;
   7027     /**
   7028      * @deprecated This is a legacy alias of `transitionDuration`.
   7029      *
   7030      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-duration)
   7031      */
   7032     webkitTransitionDuration: string;
   7033     /**
   7034      * @deprecated This is a legacy alias of `transitionProperty`.
   7035      *
   7036      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-property)
   7037      */
   7038     webkitTransitionProperty: string;
   7039     /**
   7040      * @deprecated This is a legacy alias of `transitionTimingFunction`.
   7041      *
   7042      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-timing-function)
   7043      */
   7044     webkitTransitionTimingFunction: string;
   7045     /**
   7046      * @deprecated This is a legacy alias of `userSelect`.
   7047      *
   7048      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/user-select)
   7049      */
   7050     webkitUserSelect: string;
   7051     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/white-space) */
   7052     whiteSpace: string;
   7053     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/white-space-collapse) */
   7054     whiteSpaceCollapse: string;
   7055     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/widows) */
   7056     widows: string;
   7057     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/width) */
   7058     width: string;
   7059     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/will-change) */
   7060     willChange: string;
   7061     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/word-break) */
   7062     wordBreak: string;
   7063     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/word-spacing) */
   7064     wordSpacing: string;
   7065     /**
   7066      * @deprecated
   7067      *
   7068      * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-wrap)
   7069      */
   7070     wordWrap: string;
   7071     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/writing-mode) */
   7072     writingMode: string;
   7073     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/x) */
   7074     x: string;
   7075     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/y) */
   7076     y: string;
   7077     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/z-index) */
   7078     zIndex: string;
   7079     /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/zoom) */
   7080     zoom: string;
   7081     /**
   7082      * The **CSSStyleDeclaration.getPropertyPriority()** method interface returns a string that provides all explicitly set priorities on the CSS property.
   7083      *
   7084      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/getPropertyPriority)
   7085      */
   7086     getPropertyPriority(property: string): string;
   7087     /**
   7088      * The **CSSStyleDeclaration.getPropertyValue()** method interface returns a string containing the value of a specified CSS property.
   7089      *
   7090      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/getPropertyValue)
   7091      */
   7092     getPropertyValue(property: string): string;
   7093     /**
   7094      * The `CSSStyleDeclaration.item()` method interface returns a CSS property name from a CSSStyleDeclaration by index.
   7095      *
   7096      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/item)
   7097      */
   7098     item(index: number): string;
   7099     /**
   7100      * The **`CSSStyleDeclaration.removeProperty()`** method interface removes a property from a CSS style declaration object.
   7101      *
   7102      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/removeProperty)
   7103      */
   7104     removeProperty(property: string): string;
   7105     /**
   7106      * The **`CSSStyleDeclaration.setProperty()`** method interface sets a new value for a property on a CSS style declaration object.
   7107      *
   7108      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/setProperty)
   7109      */
   7110     setProperty(property: string, value: string | null, priority?: string): void;
   7111     [index: number]: string;
   7112 }
   7113 
   7114 declare var CSSStyleDeclaration: {
   7115     prototype: CSSStyleDeclaration;
   7116     new(): CSSStyleDeclaration;
   7117 };
   7118 
   7119 /**
   7120  * The **`CSSStyleRule`** interface represents a single CSS style rule.
   7121  *
   7122  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule)
   7123  */
   7124 interface CSSStyleRule extends CSSGroupingRule {
   7125     /**
   7126      * The **`selectorText`** property of the CSSStyleRule interface gets and sets the selectors associated with the `CSSStyleRule`.
   7127      *
   7128      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule/selectorText)
   7129      */
   7130     selectorText: string;
   7131     /**
   7132      * The read-only **`style`** property is the CSSStyleDeclaration interface for the declaration block of the CSSStyleRule.
   7133      *
   7134      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule/style)
   7135      */
   7136     get style(): CSSStyleDeclaration;
   7137     set style(cssText: string);
   7138     /**
   7139      * The **`styleMap`** read-only property of the which provides access to the rule's property-value pairs.
   7140      *
   7141      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule/styleMap)
   7142      */
   7143     readonly styleMap: StylePropertyMap;
   7144 }
   7145 
   7146 declare var CSSStyleRule: {
   7147     prototype: CSSStyleRule;
   7148     new(): CSSStyleRule;
   7149 };
   7150 
   7151 /**
   7152  * The **`CSSStyleSheet`** interface represents a single CSS stylesheet, and lets you inspect and modify the list of rules contained in the stylesheet.
   7153  *
   7154  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet)
   7155  */
   7156 interface CSSStyleSheet extends StyleSheet {
   7157     /**
   7158      * The read-only CSSStyleSheet property **`cssRules`** returns a live CSSRuleList which provides a real-time, up-to-date list of every CSS rule which comprises the stylesheet.
   7159      *
   7160      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/cssRules)
   7161      */
   7162     readonly cssRules: CSSRuleList;
   7163     /**
   7164      * The read-only CSSStyleSheet property **`ownerRule`** returns the CSSImportRule corresponding to the @import at-rule which imported the stylesheet into the document.
   7165      *
   7166      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/ownerRule)
   7167      */
   7168     readonly ownerRule: CSSRule | null;
   7169     /**
   7170      * **`rules`** is a _deprecated_ _legacy property_ of the CSSStyleSheet interface.
   7171      * @deprecated
   7172      *
   7173      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/rules)
   7174      */
   7175     readonly rules: CSSRuleList;
   7176     /**
   7177      * The obsolete CSSStyleSheet interface's **`addRule()`** _legacy method_ adds a new rule to the stylesheet.
   7178      * @deprecated
   7179      *
   7180      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/addRule)
   7181      */
   7182     addRule(selector?: string, style?: string, index?: number): number;
   7183     /**
   7184      * The CSSStyleSheet method **`deleteRule()`** removes a rule from the stylesheet object.
   7185      *
   7186      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/deleteRule)
   7187      */
   7188     deleteRule(index: number): void;
   7189     /**
   7190      * The **`CSSStyleSheet.insertRule()`** method inserts a new CSS rule into the current style sheet.
   7191      *
   7192      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/insertRule)
   7193      */
   7194     insertRule(rule: string, index?: number): number;
   7195     /**
   7196      * The obsolete CSSStyleSheet method **`removeRule()`** removes a rule from the stylesheet object.
   7197      * @deprecated
   7198      *
   7199      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/removeRule)
   7200      */
   7201     removeRule(index?: number): void;
   7202     /**
   7203      * The **`replace()`** method of the CSSStyleSheet interface asynchronously replaces the content of the stylesheet with the content passed into it.
   7204      *
   7205      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/replace)
   7206      */
   7207     replace(text: string): Promise<CSSStyleSheet>;
   7208     /**
   7209      * The **`replaceSync()`** method of the CSSStyleSheet interface synchronously replaces the content of the stylesheet with the content passed into it.
   7210      *
   7211      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/replaceSync)
   7212      */
   7213     replaceSync(text: string): void;
   7214 }
   7215 
   7216 declare var CSSStyleSheet: {
   7217     prototype: CSSStyleSheet;
   7218     new(options?: CSSStyleSheetInit): CSSStyleSheet;
   7219 };
   7220 
   7221 /**
   7222  * The **`CSSStyleValue`** interface of the CSS Typed Object Model API is the base class of all CSS values accessible through the Typed OM API.
   7223  *
   7224  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue)
   7225  */
   7226 interface CSSStyleValue {
   7227     toString(): string;
   7228 }
   7229 
   7230 declare var CSSStyleValue: {
   7231     prototype: CSSStyleValue;
   7232     new(): CSSStyleValue;
   7233     /**
   7234      * The **`parse()`** static method of the CSSStyleValue interface sets a specific CSS property to the specified values and returns the first value as a CSSStyleValue object.
   7235      *
   7236      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue/parse_static)
   7237      */
   7238     parse(property: string, cssText: string): CSSStyleValue;
   7239     /**
   7240      * The **`parseAll()`** static method of the CSSStyleValue interface sets all occurrences of a specific CSS property to the specified value and returns an array of CSSStyleValue objects, each containing one of the supplied values.
   7241      *
   7242      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue/parseAll_static)
   7243      */
   7244     parseAll(property: string, cssText: string): CSSStyleValue[];
   7245 };
   7246 
   7247 /**
   7248  * The **`CSSSupportsRule`** interface represents a single CSS @supports at-rule.
   7249  *
   7250  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSupportsRule)
   7251  */
   7252 interface CSSSupportsRule extends CSSConditionRule {
   7253 }
   7254 
   7255 declare var CSSSupportsRule: {
   7256     prototype: CSSSupportsRule;
   7257     new(): CSSSupportsRule;
   7258 };
   7259 
   7260 /**
   7261  * The **`CSSTransformComponent`** interface of the CSS Typed Object Model API is part of the CSSTransformValue interface.
   7262  *
   7263  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent)
   7264  */
   7265 interface CSSTransformComponent {
   7266     /**
   7267      * The **`is2D`** read-only property of the CSSTransformComponent interface indicates where the transform is 2D or 3D.
   7268      *
   7269      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent/is2D)
   7270      */
   7271     is2D: boolean;
   7272     /**
   7273      * The **`toMatrix()`** method of the object.
   7274      *
   7275      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent/toMatrix)
   7276      */
   7277     toMatrix(): DOMMatrix;
   7278     toString(): string;
   7279 }
   7280 
   7281 declare var CSSTransformComponent: {
   7282     prototype: CSSTransformComponent;
   7283     new(): CSSTransformComponent;
   7284 };
   7285 
   7286 /**
   7287  * The **`CSSTransformValue`** interface of the CSS Typed Object Model API represents `transform-list` values as used by the CSS transform property.
   7288  *
   7289  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue)
   7290  */
   7291 interface CSSTransformValue extends CSSStyleValue {
   7292     /**
   7293      * The read-only **`is2D`** property of the In the case of the `CSSTransformValue` this property returns true unless any of the individual functions return false for `Is2D`, in which case it returns false.
   7294      *
   7295      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/is2D)
   7296      */
   7297     readonly is2D: boolean;
   7298     /**
   7299      * The read-only **`length`** property of the the list.
   7300      *
   7301      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/length)
   7302      */
   7303     readonly length: number;
   7304     /**
   7305      * The **`toMatrix()`** method of the ```js-nolint toMatrix() ``` None.
   7306      *
   7307      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/toMatrix)
   7308      */
   7309     toMatrix(): DOMMatrix;
   7310     forEach(callbackfn: (value: CSSTransformComponent, key: number, parent: CSSTransformValue) => void, thisArg?: any): void;
   7311     [index: number]: CSSTransformComponent;
   7312 }
   7313 
   7314 declare var CSSTransformValue: {
   7315     prototype: CSSTransformValue;
   7316     new(transforms: CSSTransformComponent[]): CSSTransformValue;
   7317 };
   7318 
   7319 /**
   7320  * The **`CSSTransition`** interface of the Web Animations API represents an Animation object used for a CSS Transition.
   7321  *
   7322  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransition)
   7323  */
   7324 interface CSSTransition extends Animation {
   7325     /**
   7326      * The **`transitionProperty`** property of the name** of the transition.
   7327      *
   7328      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransition/transitionProperty)
   7329      */
   7330     readonly transitionProperty: string;
   7331     addEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSTransition, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   7332     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   7333     removeEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSTransition, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   7334     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   7335 }
   7336 
   7337 declare var CSSTransition: {
   7338     prototype: CSSTransition;
   7339     new(): CSSTransition;
   7340 };
   7341 
   7342 /**
   7343  * The **`CSSTranslate`** interface of the CSS Typed Object Model API represents the translate() value of the individual transform property in CSS.
   7344  *
   7345  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate)
   7346  */
   7347 interface CSSTranslate extends CSSTransformComponent {
   7348     /**
   7349      * The **`x`** property of the translating vector.
   7350      *
   7351      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/x)
   7352      */
   7353     x: CSSNumericValue;
   7354     /**
   7355      * The **`y`** property of the translating vector.
   7356      *
   7357      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/y)
   7358      */
   7359     y: CSSNumericValue;
   7360     /**
   7361      * The **`z`** property of the vector.
   7362      *
   7363      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/z)
   7364      */
   7365     z: CSSNumericValue;
   7366 }
   7367 
   7368 declare var CSSTranslate: {
   7369     prototype: CSSTranslate;
   7370     new(x: CSSNumericValue, y: CSSNumericValue, z?: CSSNumericValue): CSSTranslate;
   7371 };
   7372 
   7373 /**
   7374  * The **`CSSUnitValue`** interface of the CSS Typed Object Model API represents values that contain a single unit type.
   7375  *
   7376  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue)
   7377  */
   7378 interface CSSUnitValue extends CSSNumericValue {
   7379     /**
   7380      * The **`CSSUnitValue.unit`** read-only property of the CSSUnitValue interface returns a string indicating the type of unit.
   7381      *
   7382      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue/unit)
   7383      */
   7384     readonly unit: string;
   7385     /**
   7386      * The **`CSSUnitValue.value`** property of the A double.
   7387      *
   7388      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue/value)
   7389      */
   7390     value: number;
   7391 }
   7392 
   7393 declare var CSSUnitValue: {
   7394     prototype: CSSUnitValue;
   7395     new(value: number, unit: string): CSSUnitValue;
   7396 };
   7397 
   7398 /**
   7399  * The **`CSSUnparsedValue`** interface of the CSS Typed Object Model API represents property values that reference custom properties.
   7400  *
   7401  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue)
   7402  */
   7403 interface CSSUnparsedValue extends CSSStyleValue {
   7404     /**
   7405      * The **`length`** read-only property of the An integer.
   7406      *
   7407      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue/length)
   7408      */
   7409     readonly length: number;
   7410     forEach(callbackfn: (value: CSSUnparsedSegment, key: number, parent: CSSUnparsedValue) => void, thisArg?: any): void;
   7411     [index: number]: CSSUnparsedSegment;
   7412 }
   7413 
   7414 declare var CSSUnparsedValue: {
   7415     prototype: CSSUnparsedValue;
   7416     new(members: CSSUnparsedSegment[]): CSSUnparsedValue;
   7417 };
   7418 
   7419 /**
   7420  * The **`CSSVariableReferenceValue`** interface of the CSS Typed Object Model API allows you to create a custom name for a built-in CSS value.
   7421  *
   7422  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue)
   7423  */
   7424 interface CSSVariableReferenceValue {
   7425     /**
   7426      * The **`fallback`** read-only property of the A CSSUnparsedValue.
   7427      *
   7428      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue/fallback)
   7429      */
   7430     readonly fallback: CSSUnparsedValue | null;
   7431     /**
   7432      * The **`variable`** property of the A string beginning with `--` (that is, a custom property name).
   7433      *
   7434      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue/variable)
   7435      */
   7436     variable: string;
   7437 }
   7438 
   7439 declare var CSSVariableReferenceValue: {
   7440     prototype: CSSVariableReferenceValue;
   7441     new(variable: string, fallback?: CSSUnparsedValue | null): CSSVariableReferenceValue;
   7442 };
   7443 
   7444 interface CSSViewTransitionRule extends CSSRule {
   7445     readonly navigation: string;
   7446     readonly types: ReadonlyArray<string>;
   7447 }
   7448 
   7449 declare var CSSViewTransitionRule: {
   7450     prototype: CSSViewTransitionRule;
   7451     new(): CSSViewTransitionRule;
   7452 };
   7453 
   7454 /**
   7455  * The **`Cache`** interface provides a persistent storage mechanism for Request / Response object pairs that are cached in long lived memory.
   7456  * Available only in secure contexts.
   7457  *
   7458  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache)
   7459  */
   7460 interface Cache {
   7461     /**
   7462      * The **`add()`** method of the Cache interface takes a URL, retrieves it, and adds the resulting response object to the given cache.
   7463      *
   7464      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/add)
   7465      */
   7466     add(request: RequestInfo | URL): Promise<void>;
   7467     /**
   7468      * The **`addAll()`** method of the Cache interface takes an array of URLs, retrieves them, and adds the resulting response objects to the given cache.
   7469      *
   7470      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/addAll)
   7471      */
   7472     addAll(requests: RequestInfo[]): Promise<void>;
   7473     /**
   7474      * The **`delete()`** method of the Cache interface finds the Cache entry whose key is the request, and if found, deletes the Cache entry and returns a Promise that resolves to `true`.
   7475      *
   7476      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/delete)
   7477      */
   7478     delete(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<boolean>;
   7479     /**
   7480      * The **`keys()`** method of the Cache interface returns a representing the keys of the Cache.
   7481      *
   7482      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/keys)
   7483      */
   7484     keys(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<ReadonlyArray<Request>>;
   7485     /**
   7486      * The **`match()`** method of the Cache interface returns a Promise that resolves to the Response associated with the first matching request in the Cache object.
   7487      *
   7488      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/match)
   7489      */
   7490     match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined>;
   7491     /**
   7492      * The **`matchAll()`** method of the Cache interface returns a Promise that resolves to an array of all matching responses in the Cache object.
   7493      *
   7494      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/matchAll)
   7495      */
   7496     matchAll(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<ReadonlyArray<Response>>;
   7497     /**
   7498      * The **`put()`** method of the Often, you will just want to Window/fetch one or more requests, then add the result straight to your cache.
   7499      *
   7500      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/put)
   7501      */
   7502     put(request: RequestInfo | URL, response: Response): Promise<void>;
   7503 }
   7504 
   7505 declare var Cache: {
   7506     prototype: Cache;
   7507     new(): Cache;
   7508 };
   7509 
   7510 /**
   7511  * The **`CacheStorage`** interface represents the storage for Cache objects.
   7512  * Available only in secure contexts.
   7513  *
   7514  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage)
   7515  */
   7516 interface CacheStorage {
   7517     /**
   7518      * The **`delete()`** method of the CacheStorage interface finds the Cache object matching the `cacheName`, and if found, deletes the Cache object and returns a Promise that resolves to `true`.
   7519      *
   7520      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/delete)
   7521      */
   7522     delete(cacheName: string): Promise<boolean>;
   7523     /**
   7524      * The **`has()`** method of the CacheStorage interface returns a Promise that resolves to `true` if a You can access `CacheStorage` through the Window.caches property in windows or through the WorkerGlobalScope.caches property in workers.
   7525      *
   7526      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/has)
   7527      */
   7528     has(cacheName: string): Promise<boolean>;
   7529     /**
   7530      * The **`keys()`** method of the CacheStorage interface returns a Promise that will resolve with an array containing strings corresponding to all of the named Cache objects tracked by the CacheStorage object in the order they were created.
   7531      *
   7532      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/keys)
   7533      */
   7534     keys(): Promise<string[]>;
   7535     /**
   7536      * The **`match()`** method of the CacheStorage interface checks if a given Request or URL string is a key for a stored Response.
   7537      *
   7538      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/match)
   7539      */
   7540     match(request: RequestInfo | URL, options?: MultiCacheQueryOptions): Promise<Response | undefined>;
   7541     /**
   7542      * The **`open()`** method of the the Cache object matching the `cacheName`.
   7543      *
   7544      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/open)
   7545      */
   7546     open(cacheName: string): Promise<Cache>;
   7547 }
   7548 
   7549 declare var CacheStorage: {
   7550     prototype: CacheStorage;
   7551     new(): CacheStorage;
   7552 };
   7553 
   7554 /**
   7555  * The **`CanvasCaptureMediaStreamTrack`** interface of the Media Capture and Streams API represents the video track contained in a MediaStream being generated from a canvas following a call to HTMLCanvasElement.captureStream().
   7556  *
   7557  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasCaptureMediaStreamTrack)
   7558  */
   7559 interface CanvasCaptureMediaStreamTrack extends MediaStreamTrack {
   7560     /**
   7561      * The **`canvas`** read-only property of the CanvasCaptureMediaStreamTrack interface returns the HTMLCanvasElement from which frames are being captured.
   7562      *
   7563      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasCaptureMediaStreamTrack/canvas)
   7564      */
   7565     readonly canvas: HTMLCanvasElement;
   7566     /**
   7567      * The **`requestFrame()`** method of the CanvasCaptureMediaStreamTrack interface requests that a frame be captured from the canvas and sent to the stream.
   7568      *
   7569      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasCaptureMediaStreamTrack/requestFrame)
   7570      */
   7571     requestFrame(): void;
   7572     addEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: CanvasCaptureMediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   7573     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   7574     removeEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: CanvasCaptureMediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   7575     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   7576 }
   7577 
   7578 declare var CanvasCaptureMediaStreamTrack: {
   7579     prototype: CanvasCaptureMediaStreamTrack;
   7580     new(): CanvasCaptureMediaStreamTrack;
   7581 };
   7582 
   7583 interface CanvasCompositing {
   7584     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalAlpha) */
   7585     globalAlpha: number;
   7586     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation) */
   7587     globalCompositeOperation: GlobalCompositeOperation;
   7588 }
   7589 
   7590 interface CanvasDrawImage {
   7591     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/drawImage) */
   7592     drawImage(image: CanvasImageSource, dx: number, dy: number): void;
   7593     drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void;
   7594     drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;
   7595 }
   7596 
   7597 interface CanvasDrawPath {
   7598     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/beginPath) */
   7599     beginPath(): void;
   7600     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clip) */
   7601     clip(fillRule?: CanvasFillRule): void;
   7602     clip(path: Path2D, fillRule?: CanvasFillRule): void;
   7603     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fill) */
   7604     fill(fillRule?: CanvasFillRule): void;
   7605     fill(path: Path2D, fillRule?: CanvasFillRule): void;
   7606     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInPath) */
   7607     isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;
   7608     isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean;
   7609     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInStroke) */
   7610     isPointInStroke(x: number, y: number): boolean;
   7611     isPointInStroke(path: Path2D, x: number, y: number): boolean;
   7612     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/stroke) */
   7613     stroke(): void;
   7614     stroke(path: Path2D): void;
   7615 }
   7616 
   7617 interface CanvasFillStrokeStyles {
   7618     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillStyle) */
   7619     fillStyle: string | CanvasGradient | CanvasPattern;
   7620     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeStyle) */
   7621     strokeStyle: string | CanvasGradient | CanvasPattern;
   7622     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createConicGradient) */
   7623     createConicGradient(startAngle: number, x: number, y: number): CanvasGradient;
   7624     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createLinearGradient) */
   7625     createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;
   7626     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createPattern) */
   7627     createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null;
   7628     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createRadialGradient) */
   7629     createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;
   7630 }
   7631 
   7632 interface CanvasFilters {
   7633     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/filter) */
   7634     filter: string;
   7635 }
   7636 
   7637 /**
   7638  * The **`CanvasGradient`** interface represents an opaque object describing a gradient.
   7639  *
   7640  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient)
   7641  */
   7642 interface CanvasGradient {
   7643     /**
   7644      * The **`CanvasGradient.addColorStop()`** method adds a new color stop, defined by an `offset` and a `color`, to a given canvas gradient.
   7645      *
   7646      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient/addColorStop)
   7647      */
   7648     addColorStop(offset: number, color: string): void;
   7649 }
   7650 
   7651 declare var CanvasGradient: {
   7652     prototype: CanvasGradient;
   7653     new(): CanvasGradient;
   7654 };
   7655 
   7656 interface CanvasImageData {
   7657     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createImageData) */
   7658     createImageData(sw: number, sh: number, settings?: ImageDataSettings): ImageData;
   7659     createImageData(imageData: ImageData): ImageData;
   7660     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getImageData) */
   7661     getImageData(sx: number, sy: number, sw: number, sh: number, settings?: ImageDataSettings): ImageData;
   7662     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/putImageData) */
   7663     putImageData(imageData: ImageData, dx: number, dy: number): void;
   7664     putImageData(imageData: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;
   7665 }
   7666 
   7667 interface CanvasImageSmoothing {
   7668     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingEnabled) */
   7669     imageSmoothingEnabled: boolean;
   7670     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingQuality) */
   7671     imageSmoothingQuality: ImageSmoothingQuality;
   7672 }
   7673 
   7674 interface CanvasPath {
   7675     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arc) */
   7676     arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
   7677     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arcTo) */
   7678     arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
   7679     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/bezierCurveTo) */
   7680     bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
   7681     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/closePath) */
   7682     closePath(): void;
   7683     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/ellipse) */
   7684     ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
   7685     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineTo) */
   7686     lineTo(x: number, y: number): void;
   7687     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/moveTo) */
   7688     moveTo(x: number, y: number): void;
   7689     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/quadraticCurveTo) */
   7690     quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
   7691     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rect) */
   7692     rect(x: number, y: number, w: number, h: number): void;
   7693     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/roundRect) */
   7694     roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | (number | DOMPointInit)[]): void;
   7695 }
   7696 
   7697 interface CanvasPathDrawingStyles {
   7698     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineCap) */
   7699     lineCap: CanvasLineCap;
   7700     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineDashOffset) */
   7701     lineDashOffset: number;
   7702     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineJoin) */
   7703     lineJoin: CanvasLineJoin;
   7704     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineWidth) */
   7705     lineWidth: number;
   7706     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/miterLimit) */
   7707     miterLimit: number;
   7708     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getLineDash) */
   7709     getLineDash(): number[];
   7710     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash) */
   7711     setLineDash(segments: number[]): void;
   7712 }
   7713 
   7714 /**
   7715  * The **`CanvasPattern`** interface represents an opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method.
   7716  *
   7717  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern)
   7718  */
   7719 interface CanvasPattern {
   7720     /**
   7721      * The **`CanvasPattern.setTransform()`** method uses a DOMMatrix object as the pattern's transformation matrix and invokes it on the pattern.
   7722      *
   7723      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern/setTransform)
   7724      */
   7725     setTransform(transform?: DOMMatrix2DInit): void;
   7726 }
   7727 
   7728 declare var CanvasPattern: {
   7729     prototype: CanvasPattern;
   7730     new(): CanvasPattern;
   7731 };
   7732 
   7733 interface CanvasRect {
   7734     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clearRect) */
   7735     clearRect(x: number, y: number, w: number, h: number): void;
   7736     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillRect) */
   7737     fillRect(x: number, y: number, w: number, h: number): void;
   7738     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeRect) */
   7739     strokeRect(x: number, y: number, w: number, h: number): void;
   7740 }
   7741 
   7742 /**
   7743  * The **`CanvasRenderingContext2D`** interface, part of the Canvas API, provides the 2D rendering context for the drawing surface of a canvas element.
   7744  *
   7745  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D)
   7746  */
   7747 interface CanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasSettings, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform, CanvasUserInterface {
   7748     /**
   7749      * The **`CanvasRenderingContext2D.canvas`** property, part of the Canvas API, is a read-only reference to the might be `null` if there is no associated canvas element.
   7750      *
   7751      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/canvas)
   7752      */
   7753     readonly canvas: HTMLCanvasElement;
   7754 }
   7755 
   7756 declare var CanvasRenderingContext2D: {
   7757     prototype: CanvasRenderingContext2D;
   7758     new(): CanvasRenderingContext2D;
   7759 };
   7760 
   7761 interface CanvasSettings {
   7762     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getContextAttributes) */
   7763     getContextAttributes(): CanvasRenderingContext2DSettings;
   7764 }
   7765 
   7766 interface CanvasShadowStyles {
   7767     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowBlur) */
   7768     shadowBlur: number;
   7769     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowColor) */
   7770     shadowColor: string;
   7771     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowOffsetX) */
   7772     shadowOffsetX: number;
   7773     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowOffsetY) */
   7774     shadowOffsetY: number;
   7775 }
   7776 
   7777 interface CanvasState {
   7778     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isContextLost) */
   7779     isContextLost(): boolean;
   7780     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/reset) */
   7781     reset(): void;
   7782     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/restore) */
   7783     restore(): void;
   7784     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/save) */
   7785     save(): void;
   7786 }
   7787 
   7788 interface CanvasText {
   7789     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillText) */
   7790     fillText(text: string, x: number, y: number, maxWidth?: number): void;
   7791     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/measureText) */
   7792     measureText(text: string): TextMetrics;
   7793     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeText) */
   7794     strokeText(text: string, x: number, y: number, maxWidth?: number): void;
   7795 }
   7796 
   7797 interface CanvasTextDrawingStyles {
   7798     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/direction) */
   7799     direction: CanvasDirection;
   7800     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/font) */
   7801     font: string;
   7802     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontKerning) */
   7803     fontKerning: CanvasFontKerning;
   7804     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontStretch) */
   7805     fontStretch: CanvasFontStretch;
   7806     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontVariantCaps) */
   7807     fontVariantCaps: CanvasFontVariantCaps;
   7808     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/letterSpacing) */
   7809     letterSpacing: string;
   7810     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textAlign) */
   7811     textAlign: CanvasTextAlign;
   7812     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textBaseline) */
   7813     textBaseline: CanvasTextBaseline;
   7814     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textRendering) */
   7815     textRendering: CanvasTextRendering;
   7816     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/wordSpacing) */
   7817     wordSpacing: string;
   7818 }
   7819 
   7820 interface CanvasTransform {
   7821     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getTransform) */
   7822     getTransform(): DOMMatrix;
   7823     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/resetTransform) */
   7824     resetTransform(): void;
   7825     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rotate) */
   7826     rotate(angle: number): void;
   7827     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/scale) */
   7828     scale(x: number, y: number): void;
   7829     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setTransform) */
   7830     setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;
   7831     setTransform(transform?: DOMMatrix2DInit): void;
   7832     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/transform) */
   7833     transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
   7834     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/translate) */
   7835     translate(x: number, y: number): void;
   7836 }
   7837 
   7838 interface CanvasUserInterface {
   7839     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/drawFocusIfNeeded) */
   7840     drawFocusIfNeeded(element: Element): void;
   7841     drawFocusIfNeeded(path: Path2D, element: Element): void;
   7842 }
   7843 
   7844 /**
   7845  * The `CaretPosition` interface represents the caret position, an indicator for the text insertion point.
   7846  *
   7847  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CaretPosition)
   7848  */
   7849 interface CaretPosition {
   7850     readonly offset: number;
   7851     readonly offsetNode: Node;
   7852     getClientRect(): DOMRect | null;
   7853 }
   7854 
   7855 declare var CaretPosition: {
   7856     prototype: CaretPosition;
   7857     new(): CaretPosition;
   7858 };
   7859 
   7860 /**
   7861  * The `ChannelMergerNode` interface, often used in conjunction with its opposite, ChannelSplitterNode, reunites different mono inputs into a single output.
   7862  *
   7863  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ChannelMergerNode)
   7864  */
   7865 interface ChannelMergerNode extends AudioNode {
   7866 }
   7867 
   7868 declare var ChannelMergerNode: {
   7869     prototype: ChannelMergerNode;
   7870     new(context: BaseAudioContext, options?: ChannelMergerOptions): ChannelMergerNode;
   7871 };
   7872 
   7873 /**
   7874  * 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.
   7875  *
   7876  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ChannelSplitterNode)
   7877  */
   7878 interface ChannelSplitterNode extends AudioNode {
   7879 }
   7880 
   7881 declare var ChannelSplitterNode: {
   7882     prototype: ChannelSplitterNode;
   7883     new(context: BaseAudioContext, options?: ChannelSplitterOptions): ChannelSplitterNode;
   7884 };
   7885 
   7886 /**
   7887  * The **`CharacterData`** abstract interface represents a Node object that contains characters.
   7888  *
   7889  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData)
   7890  */
   7891 interface CharacterData extends Node, ChildNode, NonDocumentTypeChildNode {
   7892     /**
   7893      * The **`data`** property of the CharacterData interface represent the value of the current object's data.
   7894      *
   7895      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/data)
   7896      */
   7897     data: string;
   7898     /**
   7899      * The read-only **`CharacterData.length`** property returns the number of characters in the contained data, as a positive integer.
   7900      *
   7901      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/length)
   7902      */
   7903     readonly length: number;
   7904     readonly ownerDocument: Document;
   7905     /**
   7906      * The **`appendData()`** method of the CharacterData interface adds the provided data to the end of the node's current data.
   7907      *
   7908      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/appendData)
   7909      */
   7910     appendData(data: string): void;
   7911     /**
   7912      * The **`deleteData()`** method of the CharacterData interface removes all or part of the data from this `CharacterData` node.
   7913      *
   7914      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/deleteData)
   7915      */
   7916     deleteData(offset: number, count: number): void;
   7917     /**
   7918      * The **`insertData()`** method of the CharacterData interface inserts the provided data into this `CharacterData` node's current data, at the provided offset from the start of the existing data.
   7919      *
   7920      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/insertData)
   7921      */
   7922     insertData(offset: number, data: string): void;
   7923     /**
   7924      * The **`replaceData()`** method of the CharacterData interface removes a certain number of characters of the existing text in a given `CharacterData` node and replaces those characters with the text provided.
   7925      *
   7926      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceData)
   7927      */
   7928     replaceData(offset: number, count: number, data: string): void;
   7929     /**
   7930      * The **`substringData()`** method of the CharacterData interface returns a portion of the existing data, starting at the specified index and extending for a given number of characters afterwards.
   7931      *
   7932      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/substringData)
   7933      */
   7934     substringData(offset: number, count: number): string;
   7935     /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) */
   7936     get textContent(): string;
   7937     set textContent(value: string | null);
   7938 }
   7939 
   7940 declare var CharacterData: {
   7941     prototype: CharacterData;
   7942     new(): CharacterData;
   7943 };
   7944 
   7945 interface ChildNode extends Node {
   7946     /**
   7947      * Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
   7948      *
   7949      * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
   7950      *
   7951      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
   7952      */
   7953     after(...nodes: (Node | string)[]): void;
   7954     /**
   7955      * Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
   7956      *
   7957      * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
   7958      *
   7959      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
   7960      */
   7961     before(...nodes: (Node | string)[]): void;
   7962     /**
   7963      * Removes node.
   7964      *
   7965      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
   7966      */
   7967     remove(): void;
   7968     /**
   7969      * Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
   7970      *
   7971      * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
   7972      *
   7973      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
   7974      */
   7975     replaceWith(...nodes: (Node | string)[]): void;
   7976 }
   7977 
   7978 /** @deprecated */
   7979 interface ClientRect extends DOMRect {
   7980 }
   7981 
   7982 /**
   7983  * The **`Clipboard`** interface of the Clipboard API provides read and write access to the contents of the system clipboard.
   7984  * Available only in secure contexts.
   7985  *
   7986  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard)
   7987  */
   7988 interface Clipboard extends EventTarget {
   7989     /**
   7990      * The **`read()`** method of the Clipboard interface requests a copy of the clipboard's contents, fulfilling the returned Promise with the data.
   7991      *
   7992      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/read)
   7993      */
   7994     read(): Promise<ClipboardItems>;
   7995     /**
   7996      * The **`readText()`** method of the Clipboard interface returns a Promise which fulfills with a copy of the textual contents of the system clipboard.
   7997      *
   7998      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/readText)
   7999      */
   8000     readText(): Promise<string>;
   8001     /**
   8002      * The **`write()`** method of the Clipboard interface writes arbitrary ClipboardItem data such as images and text to the clipboard, fulfilling the returned Promise on completion.
   8003      *
   8004      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/write)
   8005      */
   8006     write(data: ClipboardItems): Promise<void>;
   8007     /**
   8008      * The **`writeText()`** method of the Clipboard interface writes the specified text to the system clipboard, returning a Promise that is resolved once the system clipboard has been updated.
   8009      *
   8010      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/writeText)
   8011      */
   8012     writeText(data: string): Promise<void>;
   8013 }
   8014 
   8015 declare var Clipboard: {
   8016     prototype: Clipboard;
   8017     new(): Clipboard;
   8018 };
   8019 
   8020 /**
   8021  * The **`ClipboardEvent`** interface of the Clipboard API represents events providing information related to modification of the clipboard, that is Element/cut_event, Element/copy_event, and Element/paste_event events.
   8022  *
   8023  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardEvent)
   8024  */
   8025 interface ClipboardEvent extends Event {
   8026     /**
   8027      * The **`clipboardData`** property of the ClipboardEvent interface holds a DataTransfer object, which can be used to: - specify what data should be put into the clipboard from the Element/cut_event and Element/copy_event event handlers, typically with a DataTransfer.setData call; - obtain the data to be pasted from the Element/paste_event event handler, typically with a DataTransfer.getData call.
   8028      *
   8029      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardEvent/clipboardData)
   8030      */
   8031     readonly clipboardData: DataTransfer | null;
   8032 }
   8033 
   8034 declare var ClipboardEvent: {
   8035     prototype: ClipboardEvent;
   8036     new(type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent;
   8037 };
   8038 
   8039 /**
   8040  * The **`ClipboardItem`** interface of the Clipboard API represents a single item format, used when reading or writing clipboard data using Clipboard.read() and Clipboard.write() respectively.
   8041  * Available only in secure contexts.
   8042  *
   8043  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem)
   8044  */
   8045 interface ClipboardItem {
   8046     /**
   8047      * The read-only **`presentationStyle`** property of the ClipboardItem interface returns a string indicating how an item should be presented.
   8048      *
   8049      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem/presentationStyle)
   8050      */
   8051     readonly presentationStyle: PresentationStyle;
   8052     /**
   8053      * The read-only **`types`** property of the ClipboardItem interface returns an Array of MIME type available within the ClipboardItem.
   8054      *
   8055      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem/types)
   8056      */
   8057     readonly types: ReadonlyArray<string>;
   8058     /**
   8059      * The **`getType()`** method of the ClipboardItem interface returns a Promise that resolves with a Blob of the requested MIME type or an error if the MIME type is not found.
   8060      *
   8061      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem/getType)
   8062      */
   8063     getType(type: string): Promise<Blob>;
   8064 }
   8065 
   8066 declare var ClipboardItem: {
   8067     prototype: ClipboardItem;
   8068     new(items: Record<string, string | Blob | PromiseLike<string | Blob>>, options?: ClipboardItemOptions): ClipboardItem;
   8069     /**
   8070      * The **`supports()`** static method of the ClipboardItem interface returns `true` if the given MIME type is supported by the clipboard, and `false` otherwise.
   8071      *
   8072      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem/supports_static)
   8073      */
   8074     supports(type: string): boolean;
   8075 };
   8076 
   8077 /**
   8078  * A `CloseEvent` is sent to clients using WebSockets when the connection is closed.
   8079  *
   8080  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent)
   8081  */
   8082 interface CloseEvent extends Event {
   8083     /**
   8084      * The **`code`** read-only property of the CloseEvent interface returns a WebSocket connection close code indicating the reason the connection was closed.
   8085      *
   8086      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/code)
   8087      */
   8088     readonly code: number;
   8089     /**
   8090      * The **`reason`** read-only property of the CloseEvent interface returns the WebSocket connection close reason the server gave for closing the connection; that is, a concise human-readable prose explanation for the closure.
   8091      *
   8092      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/reason)
   8093      */
   8094     readonly reason: string;
   8095     /**
   8096      * The **`wasClean`** read-only property of the CloseEvent interface returns `true` if the connection closed cleanly.
   8097      *
   8098      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/wasClean)
   8099      */
   8100     readonly wasClean: boolean;
   8101 }
   8102 
   8103 declare var CloseEvent: {
   8104     prototype: CloseEvent;
   8105     new(type: string, eventInitDict?: CloseEventInit): CloseEvent;
   8106 };
   8107 
   8108 /**
   8109  * The **`Comment`** interface represents textual notations within markup; although it is generally not visually shown, such comments are available to be read in the source view.
   8110  *
   8111  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Comment)
   8112  */
   8113 interface Comment extends CharacterData {
   8114 }
   8115 
   8116 declare var Comment: {
   8117     prototype: Comment;
   8118     new(data?: string): Comment;
   8119 };
   8120 
   8121 /**
   8122  * The DOM **`CompositionEvent`** represents events that occur due to the user indirectly entering text.
   8123  *
   8124  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompositionEvent)
   8125  */
   8126 interface CompositionEvent extends UIEvent {
   8127     /**
   8128      * The **`data`** read-only property of the method that raised the event; its exact nature varies depending on the type of event that generated the `CompositionEvent` object.
   8129      *
   8130      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompositionEvent/data)
   8131      */
   8132     readonly data: string;
   8133     /**
   8134      * The **`initCompositionEvent()`** method of the CompositionEvent interface initializes the attributes of a `CompositionEvent` object instance.
   8135      * @deprecated
   8136      *
   8137      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompositionEvent/initCompositionEvent)
   8138      */
   8139     initCompositionEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, viewArg?: WindowProxy | null, dataArg?: string): void;
   8140 }
   8141 
   8142 declare var CompositionEvent: {
   8143     prototype: CompositionEvent;
   8144     new(type: string, eventInitDict?: CompositionEventInit): CompositionEvent;
   8145 };
   8146 
   8147 /**
   8148  * The **`CompressionStream`** interface of the Compression Streams API is an API for compressing a stream of data.
   8149  *
   8150  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream)
   8151  */
   8152 interface CompressionStream extends GenericTransformStream {
   8153     readonly readable: ReadableStream<Uint8Array<ArrayBuffer>>;
   8154     readonly writable: WritableStream<BufferSource>;
   8155 }
   8156 
   8157 declare var CompressionStream: {
   8158     prototype: CompressionStream;
   8159     new(format: CompressionFormat): CompressionStream;
   8160 };
   8161 
   8162 /**
   8163  * The `ConstantSourceNode` interface—part of the Web Audio API—represents an audio source (based upon AudioScheduledSourceNode) whose output is single unchanging value.
   8164  *
   8165  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConstantSourceNode)
   8166  */
   8167 interface ConstantSourceNode extends AudioScheduledSourceNode {
   8168     /**
   8169      * The read-only `offset` property of the ConstantSourceNode interface returns a AudioParam object indicating the numeric a-rate value which is always returned by the source when asked for the next sample.
   8170      *
   8171      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConstantSourceNode/offset)
   8172      */
   8173     readonly offset: AudioParam;
   8174     addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   8175     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   8176     removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   8177     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   8178 }
   8179 
   8180 declare var ConstantSourceNode: {
   8181     prototype: ConstantSourceNode;
   8182     new(context: BaseAudioContext, options?: ConstantSourceOptions): ConstantSourceNode;
   8183 };
   8184 
   8185 /**
   8186  * The **`ContentVisibilityAutoStateChangeEvent`** interface is the event object for the element/contentvisibilityautostatechange_event event, which fires on any element with content-visibility set on it when it starts or stops being relevant to the user and skipping its contents.
   8187  *
   8188  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContentVisibilityAutoStateChangeEvent)
   8189  */
   8190 interface ContentVisibilityAutoStateChangeEvent extends Event {
   8191     /**
   8192      * The `skipped` read-only property of the ContentVisibilityAutoStateChangeEvent interface returns `true` if the user agent skips the element's contents, or `false` otherwise.
   8193      *
   8194      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContentVisibilityAutoStateChangeEvent/skipped)
   8195      */
   8196     readonly skipped: boolean;
   8197 }
   8198 
   8199 declare var ContentVisibilityAutoStateChangeEvent: {
   8200     prototype: ContentVisibilityAutoStateChangeEvent;
   8201     new(type: string, eventInitDict?: ContentVisibilityAutoStateChangeEventInit): ContentVisibilityAutoStateChangeEvent;
   8202 };
   8203 
   8204 /**
   8205  * The `ConvolverNode` interface is an AudioNode that performs a Linear Convolution on a given AudioBuffer, often used to achieve a reverb effect.
   8206  *
   8207  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConvolverNode)
   8208  */
   8209 interface ConvolverNode extends AudioNode {
   8210     /**
   8211      * The **`buffer`** property of the ConvolverNode interface represents a mono, stereo, or 4-channel AudioBuffer containing the (possibly multichannel) impulse response used by the `ConvolverNode` to create the reverb effect.
   8212      *
   8213      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConvolverNode/buffer)
   8214      */
   8215     buffer: AudioBuffer | null;
   8216     /**
   8217      * The `normalize` property of the ConvolverNode interface is a boolean that controls whether the impulse response from the buffer will be scaled by an equal-power normalization when the `buffer` attribute is set, or not.
   8218      *
   8219      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConvolverNode/normalize)
   8220      */
   8221     normalize: boolean;
   8222 }
   8223 
   8224 declare var ConvolverNode: {
   8225     prototype: ConvolverNode;
   8226     new(context: BaseAudioContext, options?: ConvolverOptions): ConvolverNode;
   8227 };
   8228 
   8229 /**
   8230  * The **`CookieChangeEvent`** interface of the Cookie Store API is the event type of the CookieStore/change_event event fired at a CookieStore when any cookies are created or deleted.
   8231  * Available only in secure contexts.
   8232  *
   8233  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieChangeEvent)
   8234  */
   8235 interface CookieChangeEvent extends Event {
   8236     /**
   8237      * The **`changed`** read-only property of the CookieChangeEvent interface returns an array of the cookies that have been changed.
   8238      *
   8239      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieChangeEvent/changed)
   8240      */
   8241     readonly changed: ReadonlyArray<CookieListItem>;
   8242     /**
   8243      * The **`deleted`** read-only property of the CookieChangeEvent interface returns an array of the cookies that have been deleted by the given `CookieChangeEvent` instance.
   8244      *
   8245      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieChangeEvent/deleted)
   8246      */
   8247     readonly deleted: ReadonlyArray<CookieListItem>;
   8248 }
   8249 
   8250 declare var CookieChangeEvent: {
   8251     prototype: CookieChangeEvent;
   8252     new(type: string, eventInitDict?: CookieChangeEventInit): CookieChangeEvent;
   8253 };
   8254 
   8255 interface CookieStoreEventMap {
   8256     "change": CookieChangeEvent;
   8257 }
   8258 
   8259 /**
   8260  * The **`CookieStore`** interface of the Cookie Store API provides methods for getting and setting cookies asynchronously from either a page or a service worker.
   8261  * Available only in secure contexts.
   8262  *
   8263  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore)
   8264  */
   8265 interface CookieStore extends EventTarget {
   8266     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/change_event) */
   8267     onchange: ((this: CookieStore, ev: CookieChangeEvent) => any) | null;
   8268     /**
   8269      * The **`delete()`** method of the CookieStore interface deletes a cookie that matches the given `name` or `options` object.
   8270      *
   8271      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/delete)
   8272      */
   8273     delete(name: string): Promise<void>;
   8274     delete(options: CookieStoreDeleteOptions): Promise<void>;
   8275     /**
   8276      * The **`get()`** method of the CookieStore interface returns a Promise that resolves to a single cookie matching the given `name` or `options` object.
   8277      *
   8278      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/get)
   8279      */
   8280     get(name: string): Promise<CookieListItem | null>;
   8281     get(options?: CookieStoreGetOptions): Promise<CookieListItem | null>;
   8282     /**
   8283      * The **`getAll()`** method of the CookieStore interface returns a Promise that resolves as an array of cookies that match the `name` or `options` passed to it.
   8284      *
   8285      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/getAll)
   8286      */
   8287     getAll(name: string): Promise<CookieList>;
   8288     getAll(options?: CookieStoreGetOptions): Promise<CookieList>;
   8289     /**
   8290      * The **`set()`** method of the CookieStore interface sets a cookie with the given `name` and `value` or `options` object.
   8291      *
   8292      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStore/set)
   8293      */
   8294     set(name: string, value: string): Promise<void>;
   8295     set(options: CookieInit): Promise<void>;
   8296     addEventListener<K extends keyof CookieStoreEventMap>(type: K, listener: (this: CookieStore, ev: CookieStoreEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
   8297     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
   8298     removeEventListener<K extends keyof CookieStoreEventMap>(type: K, listener: (this: CookieStore, ev: CookieStoreEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
   8299     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
   8300 }
   8301 
   8302 declare var CookieStore: {
   8303     prototype: CookieStore;
   8304     new(): CookieStore;
   8305 };
   8306 
   8307 /**
   8308  * The **`CookieStoreManager`** interface of the Cookie Store API allows service workers to subscribe to cookie change events.
   8309  * Available only in secure contexts.
   8310  *
   8311  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager)
   8312  */
   8313 interface CookieStoreManager {
   8314     /**
   8315      * The **`getSubscriptions()`** method of the CookieStoreManager interface returns a list of all the cookie change subscriptions for this ServiceWorkerRegistration.
   8316      *
   8317      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/getSubscriptions)
   8318      */
   8319     getSubscriptions(): Promise<CookieStoreGetOptions[]>;
   8320     /**
   8321      * The **`subscribe()`** method of the CookieStoreManager interface subscribes a ServiceWorkerRegistration to cookie change events.
   8322      *
   8323      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/subscribe)
   8324      */
   8325     subscribe(subscriptions: CookieStoreGetOptions[]): Promise<void>;
   8326     /**
   8327      * The **`unsubscribe()`** method of the CookieStoreManager interface stops the ServiceWorkerRegistration from receiving previously subscribed events.
   8328      *
   8329      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CookieStoreManager/unsubscribe)
   8330      */
   8331     unsubscribe(subscriptions: CookieStoreGetOptions[]): Promise<void>;
   8332 }
   8333 
   8334 declare var CookieStoreManager: {
   8335     prototype: CookieStoreManager;
   8336     new(): CookieStoreManager;
   8337 };
   8338 
   8339 /**
   8340  * The **`CountQueuingStrategy`** interface of the Streams API provides a built-in chunk counting queuing strategy that can be used when constructing streams.
   8341  *
   8342  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy)
   8343  */
   8344 interface CountQueuingStrategy extends QueuingStrategy {
   8345     /**
   8346      * The read-only **`CountQueuingStrategy.highWaterMark`** property returns the total number of chunks that can be contained in the internal queue before backpressure is applied.
   8347      *
   8348      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/highWaterMark)
   8349      */
   8350     readonly highWaterMark: number;
   8351     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/size) */
   8352     readonly size: QueuingStrategySize;
   8353 }
   8354 
   8355 declare var CountQueuingStrategy: {
   8356     prototype: CountQueuingStrategy;
   8357     new(init: QueuingStrategyInit): CountQueuingStrategy;
   8358 };
   8359 
   8360 /**
   8361  * The **`Credential`** interface of the Credential Management API provides information about an entity (usually a user) normally as a prerequisite to a trust decision.
   8362  * Available only in secure contexts.
   8363  *
   8364  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Credential)
   8365  */
   8366 interface Credential {
   8367     /**
   8368      * The **`id`** read-only property of the Credential interface returns a string containing the credential's identifier.
   8369      *
   8370      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Credential/id)
   8371      */
   8372     readonly id: string;
   8373     /**
   8374      * The **`type`** read-only property of the Credential interface returns a string containing the credential's type.
   8375      *
   8376      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Credential/type)
   8377      */
   8378     readonly type: string;
   8379 }
   8380 
   8381 declare var Credential: {
   8382     prototype: Credential;
   8383     new(): Credential;
   8384 };
   8385 
   8386 /**
   8387  * The **`CredentialsContainer`** interface of the Credential Management API exposes methods to request credentials and notify the user agent when events such as successful sign in or sign out happen.
   8388  * Available only in secure contexts.
   8389  *
   8390  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer)
   8391  */
   8392 interface CredentialsContainer {
   8393     /**
   8394      * The **`create()`** method of the CredentialsContainer interface creates a new credential, which can then be stored and later retrieved using the CredentialsContainer.get method.
   8395      *
   8396      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/create)
   8397      */
   8398     create(options?: CredentialCreationOptions): Promise<Credential | null>;
   8399     /**
   8400      * The **`get()`** method of the CredentialsContainer interface returns a Promise that fulfills with a single credential, which can then be used to authenticate a user to a website.
   8401      *
   8402      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/get)
   8403      */
   8404     get(options?: CredentialRequestOptions): Promise<Credential | null>;
   8405     /**
   8406      * The **`preventSilentAccess()`** method of the CredentialsContainer interface sets a flag that specifies whether automatic log in is allowed for future visits to the current origin, then returns a Promise that resolves to `undefined`.
   8407      *
   8408      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/preventSilentAccess)
   8409      */
   8410     preventSilentAccess(): Promise<void>;
   8411     /**
   8412      * The **`store()`** method of the ```js-nolint store(credentials) ``` - `credentials` - : A valid Credential instance.
   8413      *
   8414      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/store)
   8415      */
   8416     store(credential: Credential): Promise<void>;
   8417 }
   8418 
   8419 declare var CredentialsContainer: {
   8420     prototype: CredentialsContainer;
   8421     new(): CredentialsContainer;
   8422 };
   8423 
   8424 /**
   8425  * The **`Crypto`** interface represents basic cryptography features available in the current context.
   8426  *
   8427  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto)
   8428  */
   8429 interface Crypto {
   8430     /**
   8431      * The **`Crypto.subtle`** read-only property returns a cryptographic operations.
   8432      * Available only in secure contexts.
   8433      *
   8434      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/subtle)
   8435      */
   8436     readonly subtle: SubtleCrypto;
   8437     /**
   8438      * The **`Crypto.getRandomValues()`** method lets you get cryptographically strong random values.
   8439      *
   8440      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/getRandomValues)
   8441      */
   8442     getRandomValues<T extends ArrayBufferView>(array: T): T;
   8443     /**
   8444      * The **`randomUUID()`** method of the Crypto interface is used to generate a v4 UUID using a cryptographically secure random number generator.
   8445      * Available only in secure contexts.
   8446      *
   8447      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/randomUUID)
   8448      */
   8449     randomUUID(): `${string}-${string}-${string}-${string}-${string}`;
   8450 }
   8451 
   8452 declare var Crypto: {
   8453     prototype: Crypto;
   8454     new(): Crypto;
   8455 };
   8456 
   8457 /**
   8458  * The **`CryptoKey`** interface of the Web Crypto API represents a cryptographic key obtained from one of the SubtleCrypto methods SubtleCrypto.generateKey, SubtleCrypto.deriveKey, SubtleCrypto.importKey, or SubtleCrypto.unwrapKey.
   8459  * Available only in secure contexts.
   8460  *
   8461  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey)
   8462  */
   8463 interface CryptoKey {
   8464     /**
   8465      * The read-only **`algorithm`** property of the CryptoKey interface returns an object describing the algorithm for which this key can be used, and any associated extra parameters.
   8466      *
   8467      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/algorithm)
   8468      */
   8469     readonly algorithm: KeyAlgorithm;
   8470     /**
   8471      * The read-only **`extractable`** property of the CryptoKey interface indicates whether or not the key may be extracted using `SubtleCrypto.exportKey()` or `SubtleCrypto.wrapKey()`.
   8472      *
   8473      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/extractable)
   8474      */
   8475     readonly extractable: boolean;
   8476     /**
   8477      * The read-only **`type`** property of the CryptoKey interface indicates which kind of key is represented by the object.
   8478      *
   8479      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/type)
   8480      */
   8481     readonly type: KeyType;
   8482     /**
   8483      * The read-only **`usages`** property of the CryptoKey interface indicates what can be done with the key.
   8484      *
   8485      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/usages)
   8486      */
   8487     readonly usages: KeyUsage[];
   8488 }
   8489 
   8490 declare var CryptoKey: {
   8491     prototype: CryptoKey;
   8492     new(): CryptoKey;
   8493 };
   8494 
   8495 /**
   8496  * The **`CustomElementRegistry`** interface provides methods for registering custom elements and querying registered elements.
   8497  *
   8498  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry)
   8499  */
   8500 interface CustomElementRegistry {
   8501     /**
   8502      * The **`define()`** method of the CustomElementRegistry interface adds a definition for a custom element to the custom element registry, mapping its name to the constructor which will be used to create it.
   8503      *
   8504      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/define)
   8505      */
   8506     define(name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions): void;
   8507     /**
   8508      * The **`get()`** method of the previously-defined custom element.
   8509      *
   8510      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/get)
   8511      */
   8512     get(name: string): CustomElementConstructor | undefined;
   8513     /**
   8514      * The **`getName()`** method of the previously-defined custom element.
   8515      *
   8516      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/getName)
   8517      */
   8518     getName(constructor: CustomElementConstructor): string | null;
   8519     /**
   8520      * The **`upgrade()`** method of the elements in a Node subtree, even before they are connected to the main document.
   8521      *
   8522      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/upgrade)
   8523      */
   8524     upgrade(root: Node): void;
   8525     /**
   8526      * The **`whenDefined()`** method of the resolves when the named element is defined.
   8527      *
   8528      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/whenDefined)
   8529      */
   8530     whenDefined(name: string): Promise<CustomElementConstructor>;
   8531 }
   8532 
   8533 declare var CustomElementRegistry: {
   8534     prototype: CustomElementRegistry;
   8535     new(): CustomElementRegistry;
   8536 };
   8537 
   8538 /**
   8539  * The **`CustomEvent`** interface represents events initialized by an application for any purpose.
   8540  *
   8541  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent)
   8542  */
   8543 interface CustomEvent<T = any> extends Event {
   8544     /**
   8545      * The read-only **`detail`** property of the CustomEvent interface returns any data passed when initializing the event.
   8546      *
   8547      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/detail)
   8548      */
   8549     readonly detail: T;
   8550     /**
   8551      * The **`CustomEvent.initCustomEvent()`** method initializes a CustomEvent object.
   8552      * @deprecated
   8553      *
   8554      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/initCustomEvent)
   8555      */
   8556     initCustomEvent(type: string, bubbles?: boolean, cancelable?: boolean, detail?: T): void;
   8557 }
   8558 
   8559 declare var CustomEvent: {
   8560     prototype: CustomEvent;
   8561     new<T>(type: string, eventInitDict?: CustomEventInit<T>): CustomEvent<T>;
   8562 };
   8563 
   8564 /**
   8565  * The **`CustomStateSet`** interface of the Document Object Model stores a list of states for an autonomous custom element, and allows states to be added and removed from the set.
   8566  *
   8567  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomStateSet)
   8568  */
   8569 interface CustomStateSet {
   8570     forEach(callbackfn: (value: string, key: string, parent: CustomStateSet) => void, thisArg?: any): void;
   8571 }
   8572 
   8573 declare var CustomStateSet: {
   8574     prototype: CustomStateSet;
   8575     new(): CustomStateSet;
   8576 };
   8577 
   8578 /**
   8579  * The **`DOMException`** interface represents an abnormal event (called an **exception**) that occurs as a result of calling a method or accessing a property of a web API.
   8580  *
   8581  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException)
   8582  */
   8583 interface DOMException extends Error {
   8584     /**
   8585      * The **`code`** read-only property of the DOMException interface returns one of the legacy error code constants, or `0` if none match.
   8586      * @deprecated
   8587      *
   8588      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/code)
   8589      */
   8590     readonly code: number;
   8591     /**
   8592      * The **`message`** read-only property of the a message or description associated with the given error name.
   8593      *
   8594      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/message)
   8595      */
   8596     readonly message: string;
   8597     /**
   8598      * The **`name`** read-only property of the one of the strings associated with an error name.
   8599      *
   8600      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/name)
   8601      */
   8602     readonly name: string;
   8603     readonly INDEX_SIZE_ERR: 1;
   8604     readonly DOMSTRING_SIZE_ERR: 2;
   8605     readonly HIERARCHY_REQUEST_ERR: 3;
   8606     readonly WRONG_DOCUMENT_ERR: 4;
   8607     readonly INVALID_CHARACTER_ERR: 5;
   8608     readonly NO_DATA_ALLOWED_ERR: 6;
   8609     readonly NO_MODIFICATION_ALLOWED_ERR: 7;
   8610     readonly NOT_FOUND_ERR: 8;
   8611     readonly NOT_SUPPORTED_ERR: 9;
   8612     readonly INUSE_ATTRIBUTE_ERR: 10;
   8613     readonly INVALID_STATE_ERR: 11;
   8614     readonly SYNTAX_ERR: 12;
   8615     readonly INVALID_MODIFICATION_ERR: 13;
   8616     readonly NAMESPACE_ERR: 14;
   8617     readonly INVALID_ACCESS_ERR: 15;
   8618     readonly VALIDATION_ERR: 16;
   8619     readonly TYPE_MISMATCH_ERR: 17;
   8620     readonly SECURITY_ERR: 18;
   8621     readonly NETWORK_ERR: 19;
   8622     readonly ABORT_ERR: 20;
   8623     readonly URL_MISMATCH_ERR: 21;
   8624     readonly QUOTA_EXCEEDED_ERR: 22;
   8625     readonly TIMEOUT_ERR: 23;
   8626     readonly INVALID_NODE_TYPE_ERR: 24;
   8627     readonly DATA_CLONE_ERR: 25;
   8628 }
   8629 
   8630 declare var DOMException: {
   8631     prototype: DOMException;
   8632     new(message?: string, name?: string): DOMException;
   8633     readonly INDEX_SIZE_ERR: 1;
   8634     readonly DOMSTRING_SIZE_ERR: 2;
   8635     readonly HIERARCHY_REQUEST_ERR: 3;
   8636     readonly WRONG_DOCUMENT_ERR: 4;
   8637     readonly INVALID_CHARACTER_ERR: 5;
   8638     readonly NO_DATA_ALLOWED_ERR: 6;
   8639     readonly NO_MODIFICATION_ALLOWED_ERR: 7;
   8640     readonly NOT_FOUND_ERR: 8;
   8641     readonly NOT_SUPPORTED_ERR: 9;
   8642     readonly INUSE_ATTRIBUTE_ERR: 10;
   8643     readonly INVALID_STATE_ERR: 11;
   8644     readonly SYNTAX_ERR: 12;
   8645     readonly INVALID_MODIFICATION_ERR: 13;
   8646     readonly NAMESPACE_ERR: 14;
   8647     readonly INVALID_ACCESS_ERR: 15;
   8648     readonly VALIDATION_ERR: 16;
   8649     readonly TYPE_MISMATCH_ERR: 17;
   8650     readonly SECURITY_ERR: 18;
   8651     readonly NETWORK_ERR: 19;
   8652     readonly ABORT_ERR: 20;
   8653     readonly URL_MISMATCH_ERR: 21;
   8654     readonly QUOTA_EXCEEDED_ERR: 22;
   8655     readonly TIMEOUT_ERR: 23;
   8656     readonly INVALID_NODE_TYPE_ERR: 24;
   8657     readonly DATA_CLONE_ERR: 25;
   8658 };
   8659 
   8660 /**
   8661  * The **`DOMImplementation`** interface represents an object providing methods which are not dependent on any particular document.
   8662  *
   8663  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation)
   8664  */
   8665 interface DOMImplementation {
   8666     /**
   8667      * The **`DOMImplementation.createDocument()`** method creates and returns an XMLDocument.
   8668      *
   8669      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createDocument)
   8670      */
   8671     createDocument(namespace: string | null, qualifiedName: string | null, doctype?: DocumentType | null): XMLDocument;
   8672     /**
   8673      * The **`DOMImplementation.createDocumentType()`** method returns a DocumentType object which can either be used with into the document via methods like Node.insertBefore() or ```js-nolint createDocumentType(qualifiedNameStr, publicId, systemId) ``` - `qualifiedNameStr` - : A string containing the qualified name, like `svg:svg`.
   8674      *
   8675      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createDocumentType)
   8676      */
   8677     createDocumentType(name: string, publicId: string, systemId: string): DocumentType;
   8678     /**
   8679      * The **`DOMImplementation.createHTMLDocument()`** method creates a new HTML Document.
   8680      *
   8681      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createHTMLDocument)
   8682      */
   8683     createHTMLDocument(title?: string): Document;
   8684     /**
   8685      * The **`DOMImplementation.hasFeature()`** method returns a boolean flag indicating if a given feature is supported.
   8686      * @deprecated
   8687      *
   8688      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/hasFeature)
   8689      */
   8690     hasFeature(...args: any[]): true;
   8691 }
   8692 
   8693 declare var DOMImplementation: {
   8694     prototype: DOMImplementation;
   8695     new(): DOMImplementation;
   8696 };
   8697 
   8698 /**
   8699  * The **`DOMMatrix`** interface represents 4×4 matrices, suitable for 2D and 3D operations including rotation and translation.
   8700  *
   8701  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix)
   8702  */
   8703 interface DOMMatrix extends DOMMatrixReadOnly {
   8704     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8705     a: number;
   8706     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8707     b: number;
   8708     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8709     c: number;
   8710     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8711     d: number;
   8712     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8713     e: number;
   8714     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8715     f: number;
   8716     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8717     m11: number;
   8718     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8719     m12: number;
   8720     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8721     m13: number;
   8722     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8723     m14: number;
   8724     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8725     m21: number;
   8726     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8727     m22: number;
   8728     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8729     m23: number;
   8730     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8731     m24: number;
   8732     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8733     m31: number;
   8734     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8735     m32: number;
   8736     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8737     m33: number;
   8738     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8739     m34: number;
   8740     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8741     m41: number;
   8742     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8743     m42: number;
   8744     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8745     m43: number;
   8746     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix#instance_properties) */
   8747     m44: number;
   8748     /**
   8749      * The **`invertSelf()`** method of the DOMMatrix interface inverts the original matrix.
   8750      *
   8751      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/invertSelf)
   8752      */
   8753     invertSelf(): DOMMatrix;
   8754     /**
   8755      * The **`multiplySelf()`** method of the DOMMatrix interface multiplies a matrix by the `otherMatrix` parameter, computing the dot product of the original matrix and the specified matrix: `A⋅B`.
   8756      *
   8757      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/multiplySelf)
   8758      */
   8759     multiplySelf(other?: DOMMatrixInit): DOMMatrix;
   8760     /**
   8761      * The **`preMultiplySelf()`** method of the DOMMatrix interface modifies the matrix by pre-multiplying it with the specified `DOMMatrix`.
   8762      *
   8763      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/preMultiplySelf)
   8764      */
   8765     preMultiplySelf(other?: DOMMatrixInit): DOMMatrix;
   8766     /**
   8767      * The `rotateAxisAngleSelf()` method of the DOMMatrix interface is a transformation method that rotates the source matrix by the given vector and angle, returning the altered matrix.
   8768      *
   8769      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/rotateAxisAngleSelf)
   8770      */
   8771     rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;
   8772     /**
   8773      * The `rotateFromVectorSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix by rotating the matrix by the angle between the specified vector and `(1, 0)`.
   8774      *
   8775      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/rotateFromVectorSelf)
   8776      */
   8777     rotateFromVectorSelf(x?: number, y?: number): DOMMatrix;
   8778     /**
   8779      * The `rotateSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix.
   8780      *
   8781      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/rotateSelf)
   8782      */
   8783     rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;
   8784     /**
   8785      * The **`scale3dSelf()`** method of the DOMMatrix interface is a mutable transformation method that modifies a matrix by applying a specified scaling factor to all three axes, centered on the given origin, with a default origin of `(0, 0, 0)`, returning the 3D-scaled matrix.
   8786      *
   8787      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/scale3dSelf)
   8788      */
   8789     scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
   8790     /**
   8791      * The **`scaleSelf()`** method of the DOMMatrix interface is a mutable transformation method that modifies a matrix by applying a specified scaling factor, centered on the given origin, with a default origin of `(0, 0)`, returning the scaled matrix.
   8792      *
   8793      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/scaleSelf)
   8794      */
   8795     scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
   8796     /**
   8797      * The **`setMatrixValue()`** method of the DOMMatrix interface replaces the contents of the matrix with the matrix described by the specified transform or transforms, returning itself.
   8798      *
   8799      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/setMatrixValue)
   8800      */
   8801     setMatrixValue(transformList: string): DOMMatrix;
   8802     /**
   8803      * The `skewXSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix.
   8804      *
   8805      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/skewXSelf)
   8806      */
   8807     skewXSelf(sx?: number): DOMMatrix;
   8808     /**
   8809      * The `skewYSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix.
   8810      *
   8811      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/skewYSelf)
   8812      */
   8813     skewYSelf(sy?: number): DOMMatrix;
   8814     /**
   8815      * The `translateSelf()` method of the DOMMatrix interface is a mutable transformation method that modifies a matrix.
   8816      *
   8817      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/translateSelf)
   8818      */
   8819     translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix;
   8820 }
   8821 
   8822 declare var DOMMatrix: {
   8823     prototype: DOMMatrix;
   8824     new(init?: string | number[]): DOMMatrix;
   8825     fromFloat32Array(array32: Float32Array<ArrayBuffer>): DOMMatrix;
   8826     fromFloat64Array(array64: Float64Array<ArrayBuffer>): DOMMatrix;
   8827     fromMatrix(other?: DOMMatrixInit): DOMMatrix;
   8828 };
   8829 
   8830 type SVGMatrix = DOMMatrix;
   8831 declare var SVGMatrix: typeof DOMMatrix;
   8832 
   8833 type WebKitCSSMatrix = DOMMatrix;
   8834 declare var WebKitCSSMatrix: typeof DOMMatrix;
   8835 
   8836 /**
   8837  * The **`DOMMatrixReadOnly`** interface represents a read-only 4×4 matrix, suitable for 2D and 3D operations.
   8838  *
   8839  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly)
   8840  */
   8841 interface DOMMatrixReadOnly {
   8842     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8843     readonly a: number;
   8844     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8845     readonly b: number;
   8846     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8847     readonly c: number;
   8848     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8849     readonly d: number;
   8850     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8851     readonly e: number;
   8852     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8853     readonly f: number;
   8854     /**
   8855      * The readonly **`is2D`** property of the DOMMatrixReadOnly interface is a Boolean flag that is `true` when the matrix is 2D.
   8856      *
   8857      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/is2D)
   8858      */
   8859     readonly is2D: boolean;
   8860     /**
   8861      * The readonly **`isIdentity`** property of the DOMMatrixReadOnly interface is a Boolean whose value is `true` if the matrix is the identity matrix.
   8862      *
   8863      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/isIdentity)
   8864      */
   8865     readonly isIdentity: boolean;
   8866     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8867     readonly m11: number;
   8868     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8869     readonly m12: number;
   8870     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8871     readonly m13: number;
   8872     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8873     readonly m14: number;
   8874     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8875     readonly m21: number;
   8876     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8877     readonly m22: number;
   8878     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8879     readonly m23: number;
   8880     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8881     readonly m24: number;
   8882     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8883     readonly m31: number;
   8884     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8885     readonly m32: number;
   8886     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8887     readonly m33: number;
   8888     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8889     readonly m34: number;
   8890     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8891     readonly m41: number;
   8892     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8893     readonly m42: number;
   8894     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8895     readonly m43: number;
   8896     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly#instance_properties) */
   8897     readonly m44: number;
   8898     /**
   8899      * The **`flipX()`** method of the DOMMatrixReadOnly interface creates a new matrix being the result of the original matrix flipped about the x-axis.
   8900      *
   8901      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/flipX)
   8902      */
   8903     flipX(): DOMMatrix;
   8904     /**
   8905      * The **`flipY()`** method of the DOMMatrixReadOnly interface creates a new matrix being the result of the original matrix flipped about the y-axis.
   8906      *
   8907      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/flipY)
   8908      */
   8909     flipY(): DOMMatrix;
   8910     /**
   8911      * The **`inverse()`** method of the DOMMatrixReadOnly interface creates a new matrix which is the inverse of the original matrix.
   8912      *
   8913      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/inverse)
   8914      */
   8915     inverse(): DOMMatrix;
   8916     /**
   8917      * The **`multiply()`** method of the DOMMatrixReadOnly interface creates and returns a new matrix which is the dot product of the matrix and the `otherMatrix` parameter.
   8918      *
   8919      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/multiply)
   8920      */
   8921     multiply(other?: DOMMatrixInit): DOMMatrix;
   8922     /**
   8923      * The `rotate()` method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by rotating the source matrix around each of its axes by the specified number of degrees.
   8924      *
   8925      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotate)
   8926      */
   8927     rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;
   8928     /**
   8929      * The `rotateAxisAngle()` method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by rotating the source matrix by the given vector and angle.
   8930      *
   8931      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotateAxisAngle)
   8932      */
   8933     rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;
   8934     /**
   8935      * The `rotateFromVector()` method of the DOMMatrixReadOnly interface is returns a new DOMMatrix created by rotating the source matrix by the angle between the specified vector and `(1, 0)`.
   8936      *
   8937      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotateFromVector)
   8938      */
   8939     rotateFromVector(x?: number, y?: number): DOMMatrix;
   8940     /**
   8941      * The **`scale()`** method of the original matrix with a scale transform applied.
   8942      *
   8943      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scale)
   8944      */
   8945     scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
   8946     /**
   8947      * The **`scale3d()`** method of the DOMMatrixReadOnly interface creates a new matrix which is the result of a 3D scale transform being applied to the matrix.
   8948      *
   8949      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scale3d)
   8950      */
   8951     scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
   8952     /** @deprecated */
   8953     scaleNonUniform(scaleX?: number, scaleY?: number): DOMMatrix;
   8954     /**
   8955      * The `skewX()` method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by applying the specified skew transformation to the source matrix along its x-axis.
   8956      *
   8957      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/skewX)
   8958      */
   8959     skewX(sx?: number): DOMMatrix;
   8960     /**
   8961      * The `skewY()` method of the DOMMatrixReadOnly interface returns a new DOMMatrix created by applying the specified skew transformation to the source matrix along its y-axis.
   8962      *
   8963      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/skewY)
   8964      */
   8965     skewY(sy?: number): DOMMatrix;
   8966     /**
   8967      * The **`toFloat32Array()`** method of the DOMMatrixReadOnly interface returns a new Float32Array containing all 16 elements (`m11`, `m12`, `m13`, `m14`, `m21`, `m22`, `m23`, `m24`, `m31`, `m32`, `m33`, `m34`, `m41`, `m42`, `m43`, `m44`) which comprise the matrix.
   8968      *
   8969      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toFloat32Array)
   8970      */
   8971     toFloat32Array(): Float32Array<ArrayBuffer>;
   8972     /**
   8973      * The **`toFloat64Array()`** method of the DOMMatrixReadOnly interface returns a new Float64Array containing all 16 elements (`m11`, `m12`, `m13`, `m14`, `m21`, `m22`, `m23`, `m24`, `m31`, `m32`, `m33`, `m34`, `m41`, `m42`, `m43`, `m44`) which comprise the matrix.
   8974      *
   8975      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toFloat64Array)
   8976      */
   8977     toFloat64Array(): Float64Array<ArrayBuffer>;
   8978     /**
   8979      * The **`toJSON()`** method of the DOMMatrixReadOnly interface creates and returns a JSON object.
   8980      *
   8981      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toJSON)
   8982      */
   8983     toJSON(): any;
   8984     /**
   8985      * The **`transformPoint`** method of the You can also create a new `DOMPoint` by applying a matrix to a point with the DOMPointReadOnly.matrixTransform() method.
   8986      *
   8987      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/transformPoint)
   8988      */
   8989     transformPoint(point?: DOMPointInit): DOMPoint;
   8990     /**
   8991      * The `translate()` method of the DOMMatrixReadOnly interface creates a new matrix being the result of the original matrix with a translation applied.
   8992      *
   8993      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/translate)
   8994      */
   8995     translate(tx?: number, ty?: number, tz?: number): DOMMatrix;
   8996     toString(): string;
   8997 }
   8998 
   8999 declare var DOMMatrixReadOnly: {
   9000     prototype: DOMMatrixReadOnly;
   9001     new(init?: string | number[]): DOMMatrixReadOnly;
   9002     fromFloat32Array(array32: Float32Array<ArrayBuffer>): DOMMatrixReadOnly;
   9003     fromFloat64Array(array64: Float64Array<ArrayBuffer>): DOMMatrixReadOnly;
   9004     fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;
   9005 };
   9006 
   9007 /**
   9008  * The **`DOMParser`** interface provides the ability to parse XML or HTML source code from a string into a DOM Document.
   9009  *
   9010  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMParser)
   9011  */
   9012 interface DOMParser {
   9013     /**
   9014      * The **`parseFromString()`** method of the DOMParser interface parses a string containing either HTML or XML, returning an HTMLDocument or an XMLDocument.
   9015      *
   9016      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMParser/parseFromString)
   9017      */
   9018     parseFromString(string: string, type: DOMParserSupportedType): Document;
   9019 }
   9020 
   9021 declare var DOMParser: {
   9022     prototype: DOMParser;
   9023     new(): DOMParser;
   9024 };
   9025 
   9026 /**
   9027  * A **`DOMPoint`** object represents a 2D or 3D point in a coordinate system; it includes values for the coordinates in up to three dimensions, as well as an optional perspective value.
   9028  *
   9029  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint)
   9030  */
   9031 interface DOMPoint extends DOMPointReadOnly {
   9032     /**
   9033      * The **`DOMPoint`** interface's **`w`** property holds the point's perspective value, w, for a point in space.
   9034      *
   9035      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/w)
   9036      */
   9037     w: number;
   9038     /**
   9039      * The **`DOMPoint`** interface's **`x`** property holds the horizontal coordinate, x, for a point in space.
   9040      *
   9041      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/x)
   9042      */
   9043     x: number;
   9044     /**
   9045      * The **`DOMPoint`** interface's **`y`** property holds the vertical coordinate, _y_, for a point in space.
   9046      *
   9047      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/y)
   9048      */
   9049     y: number;
   9050     /**
   9051      * The **`DOMPoint`** interface's **`z`** property specifies the depth coordinate of a point in space.
   9052      *
   9053      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/z)
   9054      */
   9055     z: number;
   9056 }
   9057 
   9058 declare var DOMPoint: {
   9059     prototype: DOMPoint;
   9060     new(x?: number, y?: number, z?: number, w?: number): DOMPoint;
   9061     /**
   9062      * The **`fromPoint()`** static method of the DOMPoint interface creates and returns a new mutable `DOMPoint` object given a source point.
   9063      *
   9064      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/fromPoint_static)
   9065      */
   9066     fromPoint(other?: DOMPointInit): DOMPoint;
   9067 };
   9068 
   9069 type SVGPoint = DOMPoint;
   9070 declare var SVGPoint: typeof DOMPoint;
   9071 
   9072 /**
   9073  * The **`DOMPointReadOnly`** interface specifies the coordinate and perspective fields used by DOMPoint to define a 2D or 3D point in a coordinate system.
   9074  *
   9075  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly)
   9076  */
   9077 interface DOMPointReadOnly {
   9078     /**
   9079      * The **`DOMPointReadOnly`** interface's **`w`** property holds the point's perspective value, `w`, for a read-only point in space.
   9080      *
   9081      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/w)
   9082      */
   9083     readonly w: number;
   9084     /**
   9085      * The **`DOMPointReadOnly`** interface's **`x`** property holds the horizontal coordinate, x, for a read-only point in space.
   9086      *
   9087      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/x)
   9088      */
   9089     readonly x: number;
   9090     /**
   9091      * The **`DOMPointReadOnly`** interface's **`y`** property holds the vertical coordinate, y, for a read-only point in space.
   9092      *
   9093      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/y)
   9094      */
   9095     readonly y: number;
   9096     /**
   9097      * The **`DOMPointReadOnly`** interface's **`z`** property holds the depth coordinate, z, for a read-only point in space.
   9098      *
   9099      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/z)
   9100      */
   9101     readonly z: number;
   9102     /**
   9103      * The **`matrixTransform()`** method of the DOMPointReadOnly interface applies a matrix transform specified as an object to the DOMPointReadOnly object, creating and returning a new `DOMPointReadOnly` object.
   9104      *
   9105      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/matrixTransform)
   9106      */
   9107     matrixTransform(matrix?: DOMMatrixInit): DOMPoint;
   9108     /**
   9109      * The DOMPointReadOnly method `toJSON()` returns an object giving the ```js-nolint toJSON() ``` None.
   9110      *
   9111      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/toJSON)
   9112      */
   9113     toJSON(): any;
   9114 }
   9115 
   9116 declare var DOMPointReadOnly: {
   9117     prototype: DOMPointReadOnly;
   9118     new(x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;
   9119     /**
   9120      * The static **DOMPointReadOnly** method `fromPoint()` creates and returns a new `DOMPointReadOnly` object given a source point.
   9121      *
   9122      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/fromPoint_static)
   9123      */
   9124     fromPoint(other?: DOMPointInit): DOMPointReadOnly;
   9125 };
   9126 
   9127 /**
   9128  * A `DOMQuad` is a collection of four `DOMPoint`s defining the corners of an arbitrary quadrilateral.
   9129  *
   9130  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad)
   9131  */
   9132 interface DOMQuad {
   9133     /**
   9134      * The **`DOMQuad`** interface's **`p1`** property holds the DOMPoint object that represents one of the four corners of the `DOMQuad`.
   9135      *
   9136      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p1)
   9137      */
   9138     readonly p1: DOMPoint;
   9139     /**
   9140      * The **`DOMQuad`** interface's **`p2`** property holds the DOMPoint object that represents one of the four corners of the `DOMQuad`.
   9141      *
   9142      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p2)
   9143      */
   9144     readonly p2: DOMPoint;
   9145     /**
   9146      * The **`DOMQuad`** interface's **`p3`** property holds the DOMPoint object that represents one of the four corners of the `DOMQuad`.
   9147      *
   9148      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p3)
   9149      */
   9150     readonly p3: DOMPoint;
   9151     /**
   9152      * The **`DOMQuad`** interface's **`p4`** property holds the DOMPoint object that represents one of the four corners of the `DOMQuad`.
   9153      *
   9154      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p4)
   9155      */
   9156     readonly p4: DOMPoint;
   9157     /**
   9158      * The DOMQuad method `getBounds()` returns a DOMRect object representing the smallest rectangle that fully contains the `DOMQuad` object.
   9159      *
   9160      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/getBounds)
   9161      */
   9162     getBounds(): DOMRect;
   9163     /**
   9164      * The DOMQuad method `toJSON()` returns a ```js-nolint toJSON() ``` None.
   9165      *
   9166      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/toJSON)
   9167      */
   9168     toJSON(): any;
   9169 }
   9170 
   9171 declare var DOMQuad: {
   9172     prototype: DOMQuad;
   9173     new(p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;
   9174     fromQuad(other?: DOMQuadInit): DOMQuad;
   9175     fromRect(other?: DOMRectInit): DOMQuad;
   9176 };
   9177 
   9178 /**
   9179  * A **`DOMRect`** describes the size and position of a rectangle.
   9180  *
   9181  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect)
   9182  */
   9183 interface DOMRect extends DOMRectReadOnly {
   9184     /**
   9185      * The **`height`** property of the DOMRect interface represents the height of the rectangle.
   9186      *
   9187      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/height)
   9188      */
   9189     height: number;
   9190     /**
   9191      * The **`width`** property of the DOMRect interface represents the width of the rectangle.
   9192      *
   9193      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/width)
   9194      */
   9195     width: number;
   9196     /**
   9197      * The **`x`** property of the DOMRect interface represents the x-coordinate of the rectangle, which is the horizontal distance between the viewport's left edge and the rectangle's origin.
   9198      *
   9199      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/x)
   9200      */
   9201     x: number;
   9202     /**
   9203      * The **`y`** property of the DOMRect interface represents the y-coordinate of the rectangle, which is the vertical distance between the viewport's top edge and the rectangle's origin.
   9204      *
   9205      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/y)
   9206      */
   9207     y: number;
   9208 }
   9209 
   9210 declare var DOMRect: {
   9211     prototype: DOMRect;
   9212     new(x?: number, y?: number, width?: number, height?: number): DOMRect;
   9213     /**
   9214      * The **`fromRect()`** static method of the object with a given location and dimensions.
   9215      *
   9216      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect/fromRect_static)
   9217      */
   9218     fromRect(other?: DOMRectInit): DOMRect;
   9219 };
   9220 
   9221 type SVGRect = DOMRect;
   9222 declare var SVGRect: typeof DOMRect;
   9223 
   9224 /**
   9225  * The **`DOMRectList`** interface represents a collection of DOMRect objects, typically used to hold the rectangles associated with a particular element, like bounding boxes returned by methods such as Element.getClientRects.
   9226  *
   9227  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectList)
   9228  */
   9229 interface DOMRectList {
   9230     /**
   9231      * The read-only **`length`** property of the DOMRectList interface returns the number of DOMRect objects in the list.
   9232      *
   9233      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectList/length)
   9234      */
   9235     readonly length: number;
   9236     /**
   9237      * The DOMRectList method `item()` returns the DOMRect at the specified index within the list, or `null` if the index is out of range.
   9238      *
   9239      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectList/item)
   9240      */
   9241     item(index: number): DOMRect | null;
   9242     [index: number]: DOMRect;
   9243 }
   9244 
   9245 declare var DOMRectList: {
   9246     prototype: DOMRectList;
   9247     new(): DOMRectList;
   9248 };
   9249 
   9250 /**
   9251  * The **`DOMRectReadOnly`** interface specifies the standard properties (also used by DOMRect) to define a rectangle whose properties are immutable.
   9252  *
   9253  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly)
   9254  */
   9255 interface DOMRectReadOnly {
   9256     /**
   9257      * The **`bottom`** read-only property of the **`DOMRectReadOnly`** interface returns the bottom coordinate value of the `DOMRect`.
   9258      *
   9259      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/bottom)
   9260      */
   9261     readonly bottom: number;
   9262     /**
   9263      * The **`height`** read-only property of the **`DOMRectReadOnly`** interface represents the height of the `DOMRect`.
   9264      *
   9265      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/height)
   9266      */
   9267     readonly height: number;
   9268     /**
   9269      * The **`left`** read-only property of the **`DOMRectReadOnly`** interface returns the left coordinate value of the `DOMRect`.
   9270      *
   9271      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/left)
   9272      */
   9273     readonly left: number;
   9274     /**
   9275      * The **`right`** read-only property of the **`DOMRectReadOnly`** interface returns the right coordinate value of the `DOMRect`.
   9276      *
   9277      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/right)
   9278      */
   9279     readonly right: number;
   9280     /**
   9281      * The **`top`** read-only property of the **`DOMRectReadOnly`** interface returns the top coordinate value of the `DOMRect`.
   9282      *
   9283      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/top)
   9284      */
   9285     readonly top: number;
   9286     /**
   9287      * The **`width`** read-only property of the **`DOMRectReadOnly`** interface represents the width of the `DOMRect`.
   9288      *
   9289      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/width)
   9290      */
   9291     readonly width: number;
   9292     /**
   9293      * The **`x`** read-only property of the **`DOMRectReadOnly`** interface represents the x coordinate of the `DOMRect`'s origin.
   9294      *
   9295      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/x)
   9296      */
   9297     readonly x: number;
   9298     /**
   9299      * The **`y`** read-only property of the **`DOMRectReadOnly`** interface represents the y coordinate of the `DOMRect`'s origin.
   9300      *
   9301      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/y)
   9302      */
   9303     readonly y: number;
   9304     /**
   9305      * The DOMRectReadOnly method `toJSON()` returns a JSON representation of the `DOMRectReadOnly` object.
   9306      *
   9307      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/toJSON)
   9308      */
   9309     toJSON(): any;
   9310 }
   9311 
   9312 declare var DOMRectReadOnly: {
   9313     prototype: DOMRectReadOnly;
   9314     new(x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;
   9315     /**
   9316      * The **`fromRect()`** static method of the object with a given location and dimensions.
   9317      *
   9318      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/fromRect_static)
   9319      */
   9320     fromRect(other?: DOMRectInit): DOMRectReadOnly;
   9321 };
   9322 
   9323 /**
   9324  * The **`DOMStringList`** interface is a legacy type returned by some APIs and represents a non-modifiable list of strings (`DOMString`).
   9325  *
   9326  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList)
   9327  */
   9328 interface DOMStringList {
   9329     /**
   9330      * The read-only **`length`** property indicates the number of strings in the DOMStringList.
   9331      *
   9332      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/length)
   9333      */
   9334     readonly length: number;
   9335     /**
   9336      * The **`contains()`** method returns a boolean indicating whether the given string is in the list.
   9337      *
   9338      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/contains)
   9339      */
   9340     contains(string: string): boolean;
   9341     /**
   9342      * The **`item()`** method returns a string from a `DOMStringList` by index.
   9343      *
   9344      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/item)
   9345      */
   9346     item(index: number): string | null;
   9347     [index: number]: string;
   9348 }
   9349 
   9350 declare var DOMStringList: {
   9351     prototype: DOMStringList;
   9352     new(): DOMStringList;
   9353 };
   9354 
   9355 /**
   9356  * The **`DOMStringMap`** interface is used for the HTMLElement.dataset attribute, to represent data for custom attributes added to elements.
   9357  *
   9358  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringMap)
   9359  */
   9360 interface DOMStringMap {
   9361     [name: string]: string | undefined;
   9362 }
   9363 
   9364 declare var DOMStringMap: {
   9365     prototype: DOMStringMap;
   9366     new(): DOMStringMap;
   9367 };
   9368 
   9369 /**
   9370  * The **`DOMTokenList`** interface represents a set of space-separated tokens.
   9371  *
   9372  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList)
   9373  */
   9374 interface DOMTokenList {
   9375     /**
   9376      * The read-only **`length`** property of the DOMTokenList interface is an `integer` representing the number of objects stored in the object.
   9377      *
   9378      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/length)
   9379      */
   9380     readonly length: number;
   9381     /**
   9382      * The **`value`** property of the DOMTokenList interface is a stringifier that returns the value of the list serialized as a string, or clears and sets the list to the given value.
   9383      *
   9384      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/value)
   9385      */
   9386     value: string;
   9387     toString(): string;
   9388     /**
   9389      * The **`add()`** method of the DOMTokenList interface adds the given tokens to the list, omitting any that are already present.
   9390      *
   9391      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/add)
   9392      */
   9393     add(...tokens: string[]): void;
   9394     /**
   9395      * The **`contains()`** method of the DOMTokenList interface returns a boolean value — `true` if the underlying list contains the given token, otherwise `false`.
   9396      *
   9397      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/contains)
   9398      */
   9399     contains(token: string): boolean;
   9400     /**
   9401      * The **`item()`** method of the DOMTokenList interface returns an item in the list, determined by its position in the list, its index.
   9402      *
   9403      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/item)
   9404      */
   9405     item(index: number): string | null;
   9406     /**
   9407      * The **`remove()`** method of the DOMTokenList interface removes the specified _tokens_ from the list.
   9408      *
   9409      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/remove)
   9410      */
   9411     remove(...tokens: string[]): void;
   9412     /**
   9413      * The **`replace()`** method of the DOMTokenList interface replaces an existing token with a new token.
   9414      *
   9415      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/replace)
   9416      */
   9417     replace(token: string, newToken: string): boolean;
   9418     /**
   9419      * The **`supports()`** method of the DOMTokenList interface returns `true` if a given `token` is in the associated attribute's supported tokens.
   9420      *
   9421      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/supports)
   9422      */
   9423     supports(token: string): boolean;
   9424     /**
   9425      * The **`toggle()`** method of the DOMTokenList interface removes an existing token from the list and returns `false`.
   9426      *
   9427      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/toggle)
   9428      */
   9429     toggle(token: string, force?: boolean): boolean;
   9430     forEach(callbackfn: (value: string, key: number, parent: DOMTokenList) => void, thisArg?: any): void;
   9431     [index: number]: string;
   9432 }
   9433 
   9434 declare var DOMTokenList: {
   9435     prototype: DOMTokenList;
   9436     new(): DOMTokenList;
   9437 };
   9438 
   9439 /**
   9440  * The **`DataTransfer`** object is used to hold any data transferred between contexts, such as a drag and drop operation, or clipboard read/write.
   9441  *
   9442  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer)
   9443  */
   9444 interface DataTransfer {
   9445     /**
   9446      * The **`DataTransfer.dropEffect`** property controls the feedback (typically visual) the user is given during a drag and drop operation.
   9447      *
   9448      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/dropEffect)
   9449      */
   9450     dropEffect: "none" | "copy" | "link" | "move";
   9451     /**
   9452      * The **`DataTransfer.effectAllowed`** property specifies the effect that is allowed for a drag operation.
   9453      *
   9454      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/effectAllowed)
   9455      */
   9456     effectAllowed: "none" | "copy" | "copyLink" | "copyMove" | "link" | "linkMove" | "move" | "all" | "uninitialized";
   9457     /**
   9458      * The **`files`** read-only property of `DataTransfer` objects is a list of the files in the drag operation.
   9459      *
   9460      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/files)
   9461      */
   9462     readonly files: FileList;
   9463     /**
   9464      * The read-only `items` property of the DataTransfer interface is a A DataTransferItemList object containing DataTransferItem objects representing the items being dragged in a drag operation, one list item for each object being dragged.
   9465      *
   9466      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/items)
   9467      */
   9468     readonly items: DataTransferItemList;
   9469     /**
   9470      * The **`DataTransfer.types`** read-only property returns the available types that exist in the DataTransfer.items.
   9471      *
   9472      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/types)
   9473      */
   9474     readonly types: ReadonlyArray<string>;
   9475     /**
   9476      * The **`DataTransfer.clearData()`** method removes the drag operation's drag data for the given type.
   9477      *
   9478      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/clearData)
   9479      */
   9480     clearData(format?: string): void;
   9481     /**
   9482      * The **`DataTransfer.getData()`** method retrieves drag data (as a string) for the specified type.
   9483      *
   9484      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/getData)
   9485      */
   9486     getData(format: string): string;
   9487     /**
   9488      * The **`DataTransfer.setData()`** method sets the drag operation's drag data to the specified data and type.
   9489      *
   9490      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/setData)
   9491      */
   9492     setData(format: string, data: string): void;
   9493     /**
   9494      * When a drag occurs, a translucent image is generated from the drag target (the element the HTMLElement/dragstart_event event is fired at), and follows the mouse pointer during the drag.
   9495      *
   9496      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/setDragImage)
   9497      */
   9498     setDragImage(image: Element, x: number, y: number): void;
   9499 }
   9500 
   9501 declare var DataTransfer: {
   9502     prototype: DataTransfer;
   9503     new(): DataTransfer;
   9504 };
   9505 
   9506 /**
   9507  * The **`DataTransferItem`** object represents one drag data item.
   9508  *
   9509  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem)
   9510  */
   9511 interface DataTransferItem {
   9512     /**
   9513      * The read-only **`DataTransferItem.kind`** property returns the kind–a string or a file–of the DataTransferItem object representing the _drag data item_.
   9514      *
   9515      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/kind)
   9516      */
   9517     readonly kind: string;
   9518     /**
   9519      * The read-only **`DataTransferItem.type`** property returns the type (format) of the DataTransferItem object representing the drag data item.
   9520      *
   9521      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/type)
   9522      */
   9523     readonly type: string;
   9524     /**
   9525      * If the item is a file, the **`DataTransferItem.getAsFile()`** method returns the drag data item's File object.
   9526      *
   9527      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/getAsFile)
   9528      */
   9529     getAsFile(): File | null;
   9530     /**
   9531      * The **`DataTransferItem.getAsString()`** method invokes the given callback with the drag data item's string data as the argument if the item's DataTransferItem.kind is a _Plain unicode string_ (i.e., `kind` is `string`).
   9532      *
   9533      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/getAsString)
   9534      */
   9535     getAsString(callback: FunctionStringCallback | null): void;
   9536     /**
   9537      * If the item described by the DataTransferItem is a file, `webkitGetAsEntry()` returns a FileSystemFileEntry or FileSystemDirectoryEntry representing it.
   9538      *
   9539      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/webkitGetAsEntry)
   9540      */
   9541     webkitGetAsEntry(): FileSystemEntry | null;
   9542 }
   9543 
   9544 declare var DataTransferItem: {
   9545     prototype: DataTransferItem;
   9546     new(): DataTransferItem;
   9547 };
   9548 
   9549 /**
   9550  * The **`DataTransferItemList`** object is a list of DataTransferItem objects representing items being dragged.
   9551  *
   9552  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList)
   9553  */
   9554 interface DataTransferItemList {
   9555     /**
   9556      * The read-only **`length`** property of the the drag item list.
   9557      *
   9558      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/length)
   9559      */
   9560     readonly length: number;
   9561     /**
   9562      * The **`DataTransferItemList.add()`** method creates a new list.
   9563      *
   9564      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/add)
   9565      */
   9566     add(data: string, type: string): DataTransferItem | null;
   9567     add(data: File): DataTransferItem | null;
   9568     /**
   9569      * The DataTransferItemList method **`clear()`** removes all DataTransferItem objects from the drag data items list, leaving the list empty.
   9570      *
   9571      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/clear)
   9572      */
   9573     clear(): void;
   9574     /**
   9575      * The **`DataTransferItemList.remove()`** method removes the less than zero or greater than one less than the length of the list, the list will not be changed.
   9576      *
   9577      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/remove)
   9578      */
   9579     remove(index: number): void;
   9580     [index: number]: DataTransferItem;
   9581 }
   9582 
   9583 declare var DataTransferItemList: {
   9584     prototype: DataTransferItemList;
   9585     new(): DataTransferItemList;
   9586 };
   9587 
   9588 /**
   9589  * The **`DecompressionStream`** interface of the Compression Streams API is an API for decompressing a stream of data.
   9590  *
   9591  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DecompressionStream)
   9592  */
   9593 interface DecompressionStream extends GenericTransformStream {
   9594     readonly readable: ReadableStream<Uint8Array<ArrayBuffer>>;
   9595     readonly writable: WritableStream<BufferSource>;
   9596 }
   9597 
   9598 declare var DecompressionStream: {
   9599     prototype: DecompressionStream;
   9600     new(format: CompressionFormat): DecompressionStream;
   9601 };
   9602 
   9603 /**
   9604  * The **`DelayNode`** interface represents 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.
   9605  *
   9606  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DelayNode)
   9607  */
   9608 interface DelayNode extends AudioNode {
   9609     /**
   9610      * The `delayTime` property of the DelayNode interface is an a-rate AudioParam representing the amount of delay to apply.
   9611      *
   9612      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DelayNode/delayTime)
   9613      */
   9614     readonly delayTime: AudioParam;
   9615 }
   9616 
   9617 declare var DelayNode: {
   9618     prototype: DelayNode;
   9619     new(context: BaseAudioContext, options?: DelayOptions): DelayNode;
   9620 };
   9621 
   9622 /**
   9623  * The **`DeviceMotionEvent`** interface of the Device Orientation Events provides web developers with information about the speed of changes for the device's position and orientation.
   9624  * Available only in secure contexts.
   9625  *
   9626  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent)
   9627  */
   9628 interface DeviceMotionEvent extends Event {
   9629     /**
   9630      * The **`acceleration`** read-only property of the DeviceMotionEvent interface returns the acceleration recorded by the device, in meters per second squared (m/s²).
   9631      *
   9632      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/acceleration)
   9633      */
   9634     readonly acceleration: DeviceMotionEventAcceleration | null;
   9635     /**
   9636      * The **`accelerationIncludingGravity`** read-only property of the DeviceMotionEvent interface returns the amount of acceleration recorded by the device, in meters per second squared (m/s²).
   9637      *
   9638      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/accelerationIncludingGravity)
   9639      */
   9640     readonly accelerationIncludingGravity: DeviceMotionEventAcceleration | null;
   9641     /**
   9642      * The **`interval`** read-only property of the DeviceMotionEvent interface returns the interval, in milliseconds, at which data is obtained from the underlying hardware.
   9643      *
   9644      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/interval)
   9645      */
   9646     readonly interval: number;
   9647     /**
   9648      * The **`rotationRate`** read-only property of the DeviceMotionEvent interface returns the rate at which the device is rotating around each of its axes in degrees per second.
   9649      *
   9650      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/rotationRate)
   9651      */
   9652     readonly rotationRate: DeviceMotionEventRotationRate | null;
   9653 }
   9654 
   9655 declare var DeviceMotionEvent: {
   9656     prototype: DeviceMotionEvent;
   9657     new(type: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent;
   9658 };
   9659 
   9660 /**
   9661  * The **`DeviceMotionEventAcceleration`** interface of the Device Orientation Events provides information about the amount of acceleration the device is experiencing along all three axes.
   9662  * Available only in secure contexts.
   9663  *
   9664  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventAcceleration)
   9665  */
   9666 interface DeviceMotionEventAcceleration {
   9667     /**
   9668      * The **`x`** read-only property of the DeviceMotionEventAcceleration interface indicates the amount of acceleration that occurred along the X axis in a `DeviceMotionEventAcceleration` object.
   9669      *
   9670      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventAcceleration/x)
   9671      */
   9672     readonly x: number | null;
   9673     /**
   9674      * The **`y`** read-only property of the DeviceMotionEventAcceleration interface indicates the amount of acceleration that occurred along the Y axis in a `DeviceMotionEventAcceleration` object.
   9675      *
   9676      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventAcceleration/y)
   9677      */
   9678     readonly y: number | null;
   9679     /**
   9680      * The **`z`** read-only property of the DeviceMotionEventAcceleration interface indicates the amount of acceleration that occurred along the Z axis in a `DeviceMotionEventAcceleration` object.
   9681      *
   9682      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventAcceleration/z)
   9683      */
   9684     readonly z: number | null;
   9685 }
   9686 
   9687 /**
   9688  * A **`DeviceMotionEventRotationRate`** interface of the Device Orientation Events provides information about the rate at which the device is rotating around all three axes.
   9689  * Available only in secure contexts.
   9690  *
   9691  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventRotationRate)
   9692  */
   9693 interface DeviceMotionEventRotationRate {
   9694     /**
   9695      * The **`alpha`** read-only property of the DeviceMotionEventRotationRate interface indicates the rate of rotation around the Z axis, in degrees per second.
   9696      *
   9697      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventRotationRate/alpha)
   9698      */
   9699     readonly alpha: number | null;
   9700     /**
   9701      * The **`beta`** read-only property of the DeviceMotionEventRotationRate interface indicates the rate of rotation around the X axis, in degrees per second.
   9702      *
   9703      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventRotationRate/beta)
   9704      */
   9705     readonly beta: number | null;
   9706     /**
   9707      * The **`gamma`** read-only property of the DeviceMotionEventRotationRate interface indicates the rate of rotation around the Y axis, in degrees per second.
   9708      *
   9709      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEventRotationRate/gamma)
   9710      */
   9711     readonly gamma: number | null;
   9712 }
   9713 
   9714 /**
   9715  * The **`DeviceOrientationEvent`** interface of the Device Orientation Events provides web developers with information from the physical orientation of the device running the web page.
   9716  * Available only in secure contexts.
   9717  *
   9718  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent)
   9719  */
   9720 interface DeviceOrientationEvent extends Event {
   9721     /**
   9722      * The **`absolute`** read-only property of the DeviceOrientationEvent interface indicates whether or not the device is providing orientation data absolutely (that is, in reference to the Earth's coordinate frame) or using some arbitrary frame determined by the device.
   9723      *
   9724      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/absolute)
   9725      */
   9726     readonly absolute: boolean;
   9727     /**
   9728      * The **`alpha`** read-only property of the DeviceOrientationEvent interface returns the rotation of the device around the Z axis; that is, the number of degrees by which the device is being twisted around the center of the screen.
   9729      *
   9730      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/alpha)
   9731      */
   9732     readonly alpha: number | null;
   9733     /**
   9734      * The **`beta`** read-only property of the DeviceOrientationEvent interface returns the rotation of the device around the X axis; that is, the number of degrees, ranged between -180 and 180, by which the device is tipped forward or backward.
   9735      *
   9736      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/beta)
   9737      */
   9738     readonly beta: number | null;
   9739     /**
   9740      * The **`gamma`** read-only property of the DeviceOrientationEvent interface returns the rotation of the device around the Y axis; that is, the number of degrees, ranged between `-90` and `90`, by which the device is tilted left or right.
   9741      *
   9742      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/gamma)
   9743      */
   9744     readonly gamma: number | null;
   9745 }
   9746 
   9747 declare var DeviceOrientationEvent: {
   9748     prototype: DeviceOrientationEvent;
   9749     new(type: string, eventInitDict?: DeviceOrientationEventInit): DeviceOrientationEvent;
   9750 };
   9751 
   9752 interface DocumentEventMap extends GlobalEventHandlersEventMap {
   9753     "DOMContentLoaded": Event;
   9754     "fullscreenchange": Event;
   9755     "fullscreenerror": Event;
   9756     "pointerlockchange": Event;
   9757     "pointerlockerror": Event;
   9758     "readystatechange": Event;
   9759     "visibilitychange": Event;
   9760 }
   9761 
   9762 /**
   9763  * The **`Document`** interface represents any web page loaded in the browser and serves as an entry point into the web page's content, which is the DOM tree.
   9764  *
   9765  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document)
   9766  */
   9767 interface Document extends Node, DocumentOrShadowRoot, FontFaceSource, GlobalEventHandlers, NonElementParentNode, ParentNode, XPathEvaluatorBase {
   9768     /**
   9769      * The **`URL`** read-only property of the Document interface returns the document location as a string.
   9770      *
   9771      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/URL)
   9772      */
   9773     readonly URL: string;
   9774     /**
   9775      * Returns or sets the color of an active link in the document body.
   9776      * @deprecated
   9777      *
   9778      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/alinkColor)
   9779      */
   9780     alinkColor: string;
   9781     /**
   9782      * The Document interface's read-only **`all`** property returns an HTMLAllCollection rooted at the document node.
   9783      * @deprecated
   9784      *
   9785      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/all)
   9786      */
   9787     readonly all: HTMLAllCollection;
   9788     /**
   9789      * The **`anchors`** read-only property of the An HTMLCollection.
   9790      * @deprecated
   9791      *
   9792      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/anchors)
   9793      */
   9794     readonly anchors: HTMLCollectionOf<HTMLAnchorElement>;
   9795     /**
   9796      * The **`applets`** property of the Document returns an empty HTMLCollection.
   9797      * @deprecated
   9798      *
   9799      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/applets)
   9800      */
   9801     readonly applets: HTMLCollection;
   9802     /**
   9803      * The deprecated `bgColor` property gets or sets the background color of the current document.
   9804      * @deprecated
   9805      *
   9806      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/bgColor)
   9807      */
   9808     bgColor: string;
   9809     /**
   9810      * The **`Document.body`** property represents the `null` if no such element exists.
   9811      *
   9812      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/body)
   9813      */
   9814     body: HTMLElement;
   9815     /**
   9816      * The **`Document.characterSet`** read-only property returns the character encoding of the document that it's currently rendered with.
   9817      *
   9818      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/characterSet)
   9819      */
   9820     readonly characterSet: string;
   9821     /**
   9822      * @deprecated This is a legacy alias of `characterSet`.
   9823      *
   9824      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/characterSet)
   9825      */
   9826     readonly charset: string;
   9827     /**
   9828      * The **`Document.compatMode`** read-only property indicates whether the document is rendered in Quirks mode or Standards mode.
   9829      *
   9830      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/compatMode)
   9831      */
   9832     readonly compatMode: string;
   9833     /**
   9834      * The **`Document.contentType`** read-only property returns the MIME type that the document is being rendered as.
   9835      *
   9836      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/contentType)
   9837      */
   9838     readonly contentType: string;
   9839     /**
   9840      * The Document property `cookie` lets you read and write cookies associated with the document.
   9841      *
   9842      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/cookie)
   9843      */
   9844     cookie: string;
   9845     /**
   9846      * The **`Document.currentScript`** property returns the script element whose script is currently being processed and isn't a JavaScript module.
   9847      *
   9848      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/currentScript)
   9849      */
   9850     readonly currentScript: HTMLOrSVGScriptElement | null;
   9851     /**
   9852      * In browsers, **`document.defaultView`** returns the This property is read-only.
   9853      *
   9854      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/defaultView)
   9855      */
   9856     readonly defaultView: (WindowProxy & typeof globalThis) | null;
   9857     /**
   9858      * **`document.designMode`** controls whether the entire document is editable.
   9859      *
   9860      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/designMode)
   9861      */
   9862     designMode: string;
   9863     /**
   9864      * The **`Document.dir`** property is a string representing the directionality of the text of the document, whether left to right (default) or right to left.
   9865      *
   9866      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/dir)
   9867      */
   9868     dir: string;
   9869     /**
   9870      * The **`doctype`** read-only property of the Document interface is a DocumentType object representing the Doctype associated with the current document.
   9871      *
   9872      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/doctype)
   9873      */
   9874     readonly doctype: DocumentType | null;
   9875     /**
   9876      * The **`documentElement`** read-only property of the Document interface returns the example, the html element for HTML documents).
   9877      *
   9878      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/documentElement)
   9879      */
   9880     readonly documentElement: HTMLElement;
   9881     /**
   9882      * The **`documentURI`** read-only property of the A string.
   9883      *
   9884      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/documentURI)
   9885      */
   9886     readonly documentURI: string;
   9887     /**
   9888      * The **`domain`** property of the Document interface gets/sets the domain portion of the origin of the current document, as used by the same-origin policy.
   9889      * @deprecated
   9890      *
   9891      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/domain)
   9892      */
   9893     domain: string;
   9894     /**
   9895      * The **`embeds`** read-only property of the An HTMLCollection.
   9896      *
   9897      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/embeds)
   9898      */
   9899     readonly embeds: HTMLCollectionOf<HTMLEmbedElement>;
   9900     /**
   9901      * **`fgColor`** gets/sets the foreground color, or text color, of the current document.
   9902      * @deprecated
   9903      *
   9904      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fgColor)
   9905      */
   9906     fgColor: string;
   9907     /**
   9908      * The **`forms`** read-only property of the Document interface returns an HTMLCollection listing all the form elements contained in the document.
   9909      *
   9910      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/forms)
   9911      */
   9912     readonly forms: HTMLCollectionOf<HTMLFormElement>;
   9913     /**
   9914      * The **`fragmentDirective`** read-only property of the Document interface returns the FragmentDirective for the current document.
   9915      *
   9916      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fragmentDirective)
   9917      */
   9918     readonly fragmentDirective: FragmentDirective;
   9919     /**
   9920      * The obsolete Document interface's **`fullscreen`** read-only property reports whether or not the document is currently displaying content in fullscreen mode.
   9921      * @deprecated
   9922      *
   9923      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreen)
   9924      */
   9925     readonly fullscreen: boolean;
   9926     /**
   9927      * The read-only **`fullscreenEnabled`** property on the Document interface indicates whether or not fullscreen mode is available.
   9928      *
   9929      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenEnabled)
   9930      */
   9931     readonly fullscreenEnabled: boolean;
   9932     /**
   9933      * The **`head`** read-only property of the Document interface returns the head element of the current document.
   9934      *
   9935      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/head)
   9936      */
   9937     readonly head: HTMLHeadElement;
   9938     /**
   9939      * The **`Document.hidden`** read-only property returns a Boolean value indicating if the page is considered hidden or not.
   9940      *
   9941      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/hidden)
   9942      */
   9943     readonly hidden: boolean;
   9944     /**
   9945      * The **`images`** read-only property of the Document interface returns a collection of the images in the current HTML document.
   9946      *
   9947      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/images)
   9948      */
   9949     readonly images: HTMLCollectionOf<HTMLImageElement>;
   9950     /**
   9951      * The **`Document.implementation`** property returns a A DOMImplementation object.
   9952      *
   9953      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/implementation)
   9954      */
   9955     readonly implementation: DOMImplementation;
   9956     /**
   9957      * @deprecated This is a legacy alias of `characterSet`.
   9958      *
   9959      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/characterSet)
   9960      */
   9961     readonly inputEncoding: string;
   9962     /**
   9963      * The **`lastModified`** property of the Document interface returns a string containing the date and local time on which the current document was last modified.
   9964      *
   9965      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/lastModified)
   9966      */
   9967     readonly lastModified: string;
   9968     /**
   9969      * The **`Document.linkColor`** property gets/sets the color of links within the document.
   9970      * @deprecated
   9971      *
   9972      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/linkColor)
   9973      */
   9974     linkColor: string;
   9975     /**
   9976      * The **`links`** read-only property of the Document interface returns a collection of all area elements and a elements in a document with a value for the href attribute.
   9977      *
   9978      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/links)
   9979      */
   9980     readonly links: HTMLCollectionOf<HTMLAnchorElement | HTMLAreaElement>;
   9981     /**
   9982      * The **`Document.location`** read-only property returns a and provides methods for changing that URL and loading another URL.
   9983      *
   9984      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/location)
   9985      */
   9986     get location(): Location;
   9987     set location(href: string);
   9988     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenchange_event) */
   9989     onfullscreenchange: ((this: Document, ev: Event) => any) | null;
   9990     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenerror_event) */
   9991     onfullscreenerror: ((this: Document, ev: Event) => any) | null;
   9992     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pointerlockchange_event) */
   9993     onpointerlockchange: ((this: Document, ev: Event) => any) | null;
   9994     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pointerlockerror_event) */
   9995     onpointerlockerror: ((this: Document, ev: Event) => any) | null;
   9996     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/readystatechange_event) */
   9997     onreadystatechange: ((this: Document, ev: Event) => any) | null;
   9998     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/visibilitychange_event) */
   9999     onvisibilitychange: ((this: Document, ev: Event) => any) | null;
  10000     readonly ownerDocument: null;
  10001     /**
  10002      * The read-only **`pictureInPictureEnabled`** property of the available.
  10003      *
  10004      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pictureInPictureEnabled)
  10005      */
  10006     readonly pictureInPictureEnabled: boolean;
  10007     /**
  10008      * The **`plugins`** read-only property of the containing one or more HTMLEmbedElements representing the An HTMLCollection.
  10009      *
  10010      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/plugins)
  10011      */
  10012     readonly plugins: HTMLCollectionOf<HTMLEmbedElement>;
  10013     /**
  10014      * The **`Document.readyState`** property describes the loading state of the document.
  10015      *
  10016      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/readyState)
  10017      */
  10018     readonly readyState: DocumentReadyState;
  10019     /**
  10020      * The **`Document.referrer`** property returns the URI of the page that linked to this page.
  10021      *
  10022      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/referrer)
  10023      */
  10024     readonly referrer: string;
  10025     /**
  10026      * **`Document.rootElement`** returns the Element that is the root element of the document if it is an documents.
  10027      * @deprecated
  10028      *
  10029      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/rootElement)
  10030      */
  10031     readonly rootElement: SVGSVGElement | null;
  10032     /**
  10033      * The **`scripts`** property of the Document interface returns a list of the script elements in the document.
  10034      *
  10035      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scripts)
  10036      */
  10037     readonly scripts: HTMLCollectionOf<HTMLScriptElement>;
  10038     /**
  10039      * The **`scrollingElement`** read-only property of the scrolls the document.
  10040      *
  10041      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scrollingElement)
  10042      */
  10043     readonly scrollingElement: Element | null;
  10044     /**
  10045      * The `timeline` readonly property of the Document interface represents the default timeline of the current document.
  10046      *
  10047      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/timeline)
  10048      */
  10049     readonly timeline: DocumentTimeline;
  10050     /**
  10051      * The **`document.title`** property gets or sets the current title of the document.
  10052      *
  10053      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/title)
  10054      */
  10055     title: string;
  10056     /**
  10057      * The **`Document.visibilityState`** read-only property returns the visibility of the document.
  10058      *
  10059      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/visibilityState)
  10060      */
  10061     readonly visibilityState: DocumentVisibilityState;
  10062     /**
  10063      * The **`Document.vlinkColor`** property gets/sets the color of links that the user has visited in the document.
  10064      * @deprecated
  10065      *
  10066      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/vlinkColor)
  10067      */
  10068     vlinkColor: string;
  10069     /**
  10070      * **`Document.adoptNode()`** transfers a node/dom from another Document into the method's document.
  10071      *
  10072      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/adoptNode)
  10073      */
  10074     adoptNode<T extends Node>(node: T): T;
  10075     /** @deprecated */
  10076     captureEvents(): void;
  10077     /**
  10078      * The **`caretPositionFromPoint()`** method of the Document interface returns a CaretPosition object, containing the DOM node, along with the caret and caret's character offset within that node.
  10079      *
  10080      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/caretPositionFromPoint)
  10081      */
  10082     caretPositionFromPoint(x: number, y: number, options?: CaretPositionFromPointOptions): CaretPosition | null;
  10083     /** @deprecated */
  10084     caretRangeFromPoint(x: number, y: number): Range | null;
  10085     /**
  10086      * The **`Document.clear()`** method does nothing, but doesn't raise any error.
  10087      * @deprecated
  10088      *
  10089      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/clear)
  10090      */
  10091     clear(): void;
  10092     /**
  10093      * The **`Document.close()`** method finishes writing to a document, opened with Document.open().
  10094      *
  10095      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/close)
  10096      */
  10097     close(): void;
  10098     /**
  10099      * The **`Document.createAttribute()`** method creates a new attribute node, and returns it.
  10100      *
  10101      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createAttribute)
  10102      */
  10103     createAttribute(localName: string): Attr;
  10104     /**
  10105      * The **`Document.createAttributeNS()`** method creates a new attribute node with the specified namespace URI and qualified name, and returns it.
  10106      *
  10107      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createAttributeNS)
  10108      */
  10109     createAttributeNS(namespace: string | null, qualifiedName: string): Attr;
  10110     /**
  10111      * **`createCDATASection()`** creates a new CDATA section node, and returns it.
  10112      *
  10113      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createCDATASection)
  10114      */
  10115     createCDATASection(data: string): CDATASection;
  10116     /**
  10117      * **`createComment()`** creates a new comment node, and returns it.
  10118      *
  10119      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createComment)
  10120      */
  10121     createComment(data: string): Comment;
  10122     /**
  10123      * Creates a new empty DocumentFragment into which DOM nodes can be added to build an offscreen DOM tree.
  10124      *
  10125      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createDocumentFragment)
  10126      */
  10127     createDocumentFragment(): DocumentFragment;
  10128     /**
  10129      * In an HTML document, the **`document.createElement()`** method creates the HTML element specified by `localName`, or an HTMLUnknownElement if `localName` isn't recognized.
  10130      *
  10131      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createElement)
  10132      */
  10133     createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K];
  10134     /** @deprecated */
  10135     createElement<K extends keyof HTMLElementDeprecatedTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K];
  10136     createElement(tagName: string, options?: ElementCreationOptions): HTMLElement;
  10137     /**
  10138      * Creates an element with the specified namespace URI and qualified name.
  10139      *
  10140      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createElementNS)
  10141      */
  10142     createElementNS(namespaceURI: "http://www.w3.org/1999/xhtml", qualifiedName: string): HTMLElement;
  10143     createElementNS<K extends keyof SVGElementTagNameMap>(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: K): SVGElementTagNameMap[K];
  10144     createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: string): SVGElement;
  10145     createElementNS<K extends keyof MathMLElementTagNameMap>(namespaceURI: "http://www.w3.org/1998/Math/MathML", qualifiedName: K): MathMLElementTagNameMap[K];
  10146     createElementNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", qualifiedName: string): MathMLElement;
  10147     createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element;
  10148     createElementNS(namespace: string | null, qualifiedName: string, options?: string | ElementCreationOptions): Element;
  10149     /**
  10150      * Creates an event of the type specified.
  10151      * @deprecated
  10152      *
  10153      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createEvent)
  10154      */
  10155     createEvent(eventInterface: "AnimationEvent"): AnimationEvent;
  10156     createEvent(eventInterface: "AnimationPlaybackEvent"): AnimationPlaybackEvent;
  10157     createEvent(eventInterface: "AudioProcessingEvent"): AudioProcessingEvent;
  10158     createEvent(eventInterface: "BeforeUnloadEvent"): BeforeUnloadEvent;
  10159     createEvent(eventInterface: "BlobEvent"): BlobEvent;
  10160     createEvent(eventInterface: "ClipboardEvent"): ClipboardEvent;
  10161     createEvent(eventInterface: "CloseEvent"): CloseEvent;
  10162     createEvent(eventInterface: "CompositionEvent"): CompositionEvent;
  10163     createEvent(eventInterface: "ContentVisibilityAutoStateChangeEvent"): ContentVisibilityAutoStateChangeEvent;
  10164     createEvent(eventInterface: "CookieChangeEvent"): CookieChangeEvent;
  10165     createEvent(eventInterface: "CustomEvent"): CustomEvent;
  10166     createEvent(eventInterface: "DeviceMotionEvent"): DeviceMotionEvent;
  10167     createEvent(eventInterface: "DeviceOrientationEvent"): DeviceOrientationEvent;
  10168     createEvent(eventInterface: "DragEvent"): DragEvent;
  10169     createEvent(eventInterface: "ErrorEvent"): ErrorEvent;
  10170     createEvent(eventInterface: "Event"): Event;
  10171     createEvent(eventInterface: "Events"): Event;
  10172     createEvent(eventInterface: "FocusEvent"): FocusEvent;
  10173     createEvent(eventInterface: "FontFaceSetLoadEvent"): FontFaceSetLoadEvent;
  10174     createEvent(eventInterface: "FormDataEvent"): FormDataEvent;
  10175     createEvent(eventInterface: "GamepadEvent"): GamepadEvent;
  10176     createEvent(eventInterface: "HashChangeEvent"): HashChangeEvent;
  10177     createEvent(eventInterface: "IDBVersionChangeEvent"): IDBVersionChangeEvent;
  10178     createEvent(eventInterface: "InputEvent"): InputEvent;
  10179     createEvent(eventInterface: "KeyboardEvent"): KeyboardEvent;
  10180     createEvent(eventInterface: "MIDIConnectionEvent"): MIDIConnectionEvent;
  10181     createEvent(eventInterface: "MIDIMessageEvent"): MIDIMessageEvent;
  10182     createEvent(eventInterface: "MediaEncryptedEvent"): MediaEncryptedEvent;
  10183     createEvent(eventInterface: "MediaKeyMessageEvent"): MediaKeyMessageEvent;
  10184     createEvent(eventInterface: "MediaQueryListEvent"): MediaQueryListEvent;
  10185     createEvent(eventInterface: "MediaStreamTrackEvent"): MediaStreamTrackEvent;
  10186     createEvent(eventInterface: "MessageEvent"): MessageEvent;
  10187     createEvent(eventInterface: "MouseEvent"): MouseEvent;
  10188     createEvent(eventInterface: "MouseEvents"): MouseEvent;
  10189     createEvent(eventInterface: "OfflineAudioCompletionEvent"): OfflineAudioCompletionEvent;
  10190     createEvent(eventInterface: "PageRevealEvent"): PageRevealEvent;
  10191     createEvent(eventInterface: "PageSwapEvent"): PageSwapEvent;
  10192     createEvent(eventInterface: "PageTransitionEvent"): PageTransitionEvent;
  10193     createEvent(eventInterface: "PaymentMethodChangeEvent"): PaymentMethodChangeEvent;
  10194     createEvent(eventInterface: "PaymentRequestUpdateEvent"): PaymentRequestUpdateEvent;
  10195     createEvent(eventInterface: "PictureInPictureEvent"): PictureInPictureEvent;
  10196     createEvent(eventInterface: "PointerEvent"): PointerEvent;
  10197     createEvent(eventInterface: "PopStateEvent"): PopStateEvent;
  10198     createEvent(eventInterface: "ProgressEvent"): ProgressEvent;
  10199     createEvent(eventInterface: "PromiseRejectionEvent"): PromiseRejectionEvent;
  10200     createEvent(eventInterface: "RTCDTMFToneChangeEvent"): RTCDTMFToneChangeEvent;
  10201     createEvent(eventInterface: "RTCDataChannelEvent"): RTCDataChannelEvent;
  10202     createEvent(eventInterface: "RTCErrorEvent"): RTCErrorEvent;
  10203     createEvent(eventInterface: "RTCPeerConnectionIceErrorEvent"): RTCPeerConnectionIceErrorEvent;
  10204     createEvent(eventInterface: "RTCPeerConnectionIceEvent"): RTCPeerConnectionIceEvent;
  10205     createEvent(eventInterface: "RTCTrackEvent"): RTCTrackEvent;
  10206     createEvent(eventInterface: "SecurityPolicyViolationEvent"): SecurityPolicyViolationEvent;
  10207     createEvent(eventInterface: "SpeechSynthesisErrorEvent"): SpeechSynthesisErrorEvent;
  10208     createEvent(eventInterface: "SpeechSynthesisEvent"): SpeechSynthesisEvent;
  10209     createEvent(eventInterface: "StorageEvent"): StorageEvent;
  10210     createEvent(eventInterface: "SubmitEvent"): SubmitEvent;
  10211     createEvent(eventInterface: "TextEvent"): TextEvent;
  10212     createEvent(eventInterface: "ToggleEvent"): ToggleEvent;
  10213     createEvent(eventInterface: "TouchEvent"): TouchEvent;
  10214     createEvent(eventInterface: "TrackEvent"): TrackEvent;
  10215     createEvent(eventInterface: "TransitionEvent"): TransitionEvent;
  10216     createEvent(eventInterface: "UIEvent"): UIEvent;
  10217     createEvent(eventInterface: "UIEvents"): UIEvent;
  10218     createEvent(eventInterface: "WebGLContextEvent"): WebGLContextEvent;
  10219     createEvent(eventInterface: "WheelEvent"): WheelEvent;
  10220     createEvent(eventInterface: string): Event;
  10221     /**
  10222      * The **`Document.createNodeIterator()`** method returns a new `NodeIterator` object.
  10223      *
  10224      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createNodeIterator)
  10225      */
  10226     createNodeIterator(root: Node, whatToShow?: number, filter?: NodeFilter | null): NodeIterator;
  10227     /**
  10228      * `createProcessingInstruction()` generates a new processing instruction node and returns it.
  10229      *
  10230      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createProcessingInstruction)
  10231      */
  10232     createProcessingInstruction(target: string, data: string): ProcessingInstruction;
  10233     /**
  10234      * The **`Document.createRange()`** method returns a new ```js-nolint createRange() ``` None.
  10235      *
  10236      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createRange)
  10237      */
  10238     createRange(): Range;
  10239     /**
  10240      * Creates a new Text node.
  10241      *
  10242      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createTextNode)
  10243      */
  10244     createTextNode(data: string): Text;
  10245     /**
  10246      * The **`Document.createTreeWalker()`** creator method returns a newly created TreeWalker object.
  10247      *
  10248      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createTreeWalker)
  10249      */
  10250     createTreeWalker(root: Node, whatToShow?: number, filter?: NodeFilter | null): TreeWalker;
  10251     /**
  10252      * The **`execCommand`** method implements multiple different commands.
  10253      * @deprecated
  10254      *
  10255      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/execCommand)
  10256      */
  10257     execCommand(commandId: string, showUI?: boolean, value?: string): boolean;
  10258     /**
  10259      * The Document method **`exitFullscreen()`** requests that the element on this document which is currently being presented in fullscreen mode be taken out of fullscreen mode, restoring the previous state of the screen.
  10260      *
  10261      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitFullscreen)
  10262      */
  10263     exitFullscreen(): Promise<void>;
  10264     /**
  10265      * The **`exitPictureInPicture()`** method of the Document interface requests that a video contained in this document, which is currently floating, be taken out of picture-in-picture mode, restoring the previous state of the screen.
  10266      *
  10267      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitPictureInPicture)
  10268      */
  10269     exitPictureInPicture(): Promise<void>;
  10270     /**
  10271      * The **`exitPointerLock()`** method of the Document interface asynchronously releases a pointer lock previously requested through Element.requestPointerLock.
  10272      *
  10273      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitPointerLock)
  10274      */
  10275     exitPointerLock(): void;
  10276     getElementById(elementId: string): HTMLElement | null;
  10277     /**
  10278      * The **`getElementsByClassName`** method of of all child elements which have all of the given class name(s).
  10279      *
  10280      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByClassName)
  10281      */
  10282     getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
  10283     /**
  10284      * The **`getElementsByName()`** method of the Document object returns a NodeList Collection of elements with a given `name` attribute in the document.
  10285      *
  10286      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByName)
  10287      */
  10288     getElementsByName(elementName: string): NodeListOf<HTMLElement>;
  10289     /**
  10290      * The **`getElementsByTagName`** method of The complete document is searched, including the root node.
  10291      *
  10292      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByTagName)
  10293      */
  10294     getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
  10295     getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
  10296     getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
  10297     /** @deprecated */
  10298     getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
  10299     getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
  10300     /**
  10301      * Returns a list of elements with the given tag name belonging to the given namespace.
  10302      *
  10303      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByTagNameNS)
  10304      */
  10305     getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
  10306     getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
  10307     getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;
  10308     getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
  10309     /**
  10310      * The **`getSelection()`** method of the Document interface returns the Selection object associated with this document, representing the range of text selected by the user, or the current position of the caret.
  10311      *
  10312      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getSelection)
  10313      */
  10314     getSelection(): Selection | null;
  10315     /**
  10316      * The **`hasFocus()`** method of the Document interface returns a boolean value indicating whether the document or any element inside the document has focus.
  10317      *
  10318      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/hasFocus)
  10319      */
  10320     hasFocus(): boolean;
  10321     /**
  10322      * The **`hasStorageAccess()`** method of the Document interface returns a Promise that resolves with a boolean value indicating whether the document has access to third-party, unpartitioned cookies.
  10323      *
  10324      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/hasStorageAccess)
  10325      */
  10326     hasStorageAccess(): Promise<boolean>;
  10327     /**
  10328      * The Document object's **`importNode()`** method creates a copy of a inserted into the current document later.
  10329      *
  10330      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/importNode)
  10331      */
  10332     importNode<T extends Node>(node: T, options?: boolean | ImportNodeOptions): T;
  10333     /**
  10334      * The **`Document.open()`** method opens a document for This does come with some side effects.
  10335      *
  10336      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/open)
  10337      */
  10338     open(unused1?: string, unused2?: string): Document;
  10339     open(url: string | URL, name: string, features: string): WindowProxy | null;
  10340     /**
  10341      * The **`Document.queryCommandEnabled()`** method reports whether or not the specified editor command is enabled by the browser.
  10342      * @deprecated
  10343      *
  10344      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandEnabled)
  10345      */
  10346     queryCommandEnabled(commandId: string): boolean;
  10347     /** @deprecated */
  10348     queryCommandIndeterm(commandId: string): boolean;
  10349     /**
  10350      * The **`queryCommandState()`** method will tell you if the current selection has a certain Document.execCommand() command applied.
  10351      * @deprecated
  10352      *
  10353      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandState)
  10354      */
  10355     queryCommandState(commandId: string): boolean;
  10356     /**
  10357      * The **`Document.queryCommandSupported()`** method reports whether or not the specified editor command is supported by the browser.
  10358      * @deprecated
  10359      *
  10360      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandSupported)
  10361      */
  10362     queryCommandSupported(commandId: string): boolean;
  10363     /** @deprecated */
  10364     queryCommandValue(commandId: string): string;
  10365     /** @deprecated */
  10366     releaseEvents(): void;
  10367     /**
  10368      * The **`requestStorageAccess()`** method of the Document interface allows content loaded in a third-party context (i.e., embedded in an iframe) to request access to third-party cookies and unpartitioned state.
  10369      *
  10370      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/requestStorageAccess)
  10371      */
  10372     requestStorageAccess(): Promise<void>;
  10373     /**
  10374      * The **`startViewTransition()`** method of the Document interface starts a new same-document (SPA) view transition and returns a ViewTransition object to represent it.
  10375      *
  10376      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/startViewTransition)
  10377      */
  10378     startViewTransition(callbackOptions?: ViewTransitionUpdateCallback | StartViewTransitionOptions): ViewTransition;
  10379     /**
  10380      * The **`write()`** method of the Document interface writes text in one or more TrustedHTML or string parameters to a document stream opened by document.open().
  10381      * @deprecated
  10382      *
  10383      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/write)
  10384      */
  10385     write(...text: string[]): void;
  10386     /**
  10387      * The **`writeln()`** method of the Document interface writes text in one or more TrustedHTML or string parameters to a document stream opened by document.open(), followed by a newline character.
  10388      *
  10389      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/writeln)
  10390      */
  10391     writeln(...text: string[]): void;
  10392     /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) */
  10393     get textContent(): null;
  10394     addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  10395     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  10396     removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  10397     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  10398 }
  10399 
  10400 declare var Document: {
  10401     prototype: Document;
  10402     new(): Document;
  10403     /**
  10404      * The **`parseHTMLUnsafe()`** static method of the Document object is used to parse an HTML input, optionally filtering unwanted HTML elements and attributes, in order to create a new Document instance.
  10405      *
  10406      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/parseHTMLUnsafe_static)
  10407      */
  10408     parseHTMLUnsafe(html: string): Document;
  10409 };
  10410 
  10411 /**
  10412  * The **`DocumentFragment`** interface represents a minimal document object that has no parent.
  10413  *
  10414  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentFragment)
  10415  */
  10416 interface DocumentFragment extends Node, NonElementParentNode, ParentNode {
  10417     readonly ownerDocument: Document;
  10418     getElementById(elementId: string): HTMLElement | null;
  10419     /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) */
  10420     get textContent(): string;
  10421     set textContent(value: string | null);
  10422 }
  10423 
  10424 declare var DocumentFragment: {
  10425     prototype: DocumentFragment;
  10426     new(): DocumentFragment;
  10427 };
  10428 
  10429 interface DocumentOrShadowRoot {
  10430     /**
  10431      * 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.
  10432      *
  10433      * 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.
  10434      *
  10435      * 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.
  10436      *
  10437      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/activeElement)
  10438      */
  10439     readonly activeElement: Element | null;
  10440     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/adoptedStyleSheets) */
  10441     adoptedStyleSheets: CSSStyleSheet[];
  10442     /**
  10443      * Returns document's fullscreen element.
  10444      *
  10445      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenElement)
  10446      */
  10447     readonly fullscreenElement: Element | null;
  10448     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pictureInPictureElement) */
  10449     readonly pictureInPictureElement: Element | null;
  10450     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pointerLockElement) */
  10451     readonly pointerLockElement: Element | null;
  10452     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/styleSheets) */
  10453     readonly styleSheets: StyleSheetList;
  10454     elementFromPoint(x: number, y: number): Element | null;
  10455     elementsFromPoint(x: number, y: number): Element[];
  10456     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getAnimations) */
  10457     getAnimations(): Animation[];
  10458 }
  10459 
  10460 /**
  10461  * The **`DocumentTimeline`** interface of the Web Animations API represents animation timelines, including the default document timeline (accessed via Document.timeline).
  10462  *
  10463  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentTimeline)
  10464  */
  10465 interface DocumentTimeline extends AnimationTimeline {
  10466 }
  10467 
  10468 declare var DocumentTimeline: {
  10469     prototype: DocumentTimeline;
  10470     new(options?: DocumentTimelineOptions): DocumentTimeline;
  10471 };
  10472 
  10473 /**
  10474  * The **`DocumentType`** interface represents a Node containing a doctype.
  10475  *
  10476  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType)
  10477  */
  10478 interface DocumentType extends Node, ChildNode {
  10479     /**
  10480      * The read-only **`name`** property of the DocumentType returns the type of the document.
  10481      *
  10482      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType/name)
  10483      */
  10484     readonly name: string;
  10485     readonly ownerDocument: Document;
  10486     /**
  10487      * The read-only **`publicId`** property of the DocumentType returns a formal identifier of the document.
  10488      *
  10489      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType/publicId)
  10490      */
  10491     readonly publicId: string;
  10492     /**
  10493      * The read-only **`systemId`** property of the DocumentType returns the URL of the associated DTD.
  10494      *
  10495      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType/systemId)
  10496      */
  10497     readonly systemId: string;
  10498     /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) */
  10499     get textContent(): null;
  10500 }
  10501 
  10502 declare var DocumentType: {
  10503     prototype: DocumentType;
  10504     new(): DocumentType;
  10505 };
  10506 
  10507 /**
  10508  * The **`DragEvent`** interface is a DOM event that represents a drag and drop interaction.
  10509  *
  10510  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DragEvent)
  10511  */
  10512 interface DragEvent extends MouseEvent {
  10513     /**
  10514      * The **`DragEvent.dataTransfer`** read-only property holds the drag operation's data (as a DataTransfer object).
  10515      *
  10516      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DragEvent/dataTransfer)
  10517      */
  10518     readonly dataTransfer: DataTransfer | null;
  10519 }
  10520 
  10521 declare var DragEvent: {
  10522     prototype: DragEvent;
  10523     new(type: string, eventInitDict?: DragEventInit): DragEvent;
  10524 };
  10525 
  10526 /**
  10527  * The `DynamicsCompressorNode` interface provides a compression effect, which lowers the volume of the loudest parts of the signal in order to help prevent clipping and distortion that can occur when multiple sounds are played and multiplexed together at once.
  10528  *
  10529  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode)
  10530  */
  10531 interface DynamicsCompressorNode extends AudioNode {
  10532     /**
  10533      * The `attack` property of the DynamicsCompressorNode interface is a k-rate AudioParam representing the amount of time, in seconds, required to reduce the gain by 10 dB.
  10534      *
  10535      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/attack)
  10536      */
  10537     readonly attack: AudioParam;
  10538     /**
  10539      * The `knee` property of the DynamicsCompressorNode interface is a k-rate AudioParam containing a decibel value representing the range above the threshold where the curve smoothly transitions to the compressed portion.
  10540      *
  10541      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/knee)
  10542      */
  10543     readonly knee: AudioParam;
  10544     /**
  10545      * The `ratio` property of the DynamicsCompressorNode interface Is a k-rate AudioParam representing the amount of change, in dB, needed in the input for a 1 dB change in the output.
  10546      *
  10547      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/ratio)
  10548      */
  10549     readonly ratio: AudioParam;
  10550     /**
  10551      * The **`reduction`** read-only property of the DynamicsCompressorNode interface is a float representing the amount of gain reduction currently applied by the compressor to the signal.
  10552      *
  10553      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/reduction)
  10554      */
  10555     readonly reduction: number;
  10556     /**
  10557      * The `release` property of the DynamicsCompressorNode interface Is a k-rate AudioParam representing the amount of time, in seconds, required to increase the gain by 10 dB.
  10558      *
  10559      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/release)
  10560      */
  10561     readonly release: AudioParam;
  10562     /**
  10563      * The `threshold` property of the DynamicsCompressorNode interface is a k-rate AudioParam representing the decibel value above which the compression will start taking effect.
  10564      *
  10565      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/threshold)
  10566      */
  10567     readonly threshold: AudioParam;
  10568 }
  10569 
  10570 declare var DynamicsCompressorNode: {
  10571     prototype: DynamicsCompressorNode;
  10572     new(context: BaseAudioContext, options?: DynamicsCompressorOptions): DynamicsCompressorNode;
  10573 };
  10574 
  10575 /**
  10576  * The **`EXT_blend_minmax`** extension is part of the WebGL API and extends blending capabilities by adding two new blend equations: the minimum or maximum color components of the source and destination colors.
  10577  *
  10578  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_blend_minmax)
  10579  */
  10580 interface EXT_blend_minmax {
  10581     readonly MIN_EXT: 0x8007;
  10582     readonly MAX_EXT: 0x8008;
  10583 }
  10584 
  10585 /**
  10586  * The **`EXT_color_buffer_float`** extension is part of WebGL and adds the ability to render a variety of floating point formats.
  10587  *
  10588  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_color_buffer_float)
  10589  */
  10590 interface EXT_color_buffer_float {
  10591 }
  10592 
  10593 /**
  10594  * The **`EXT_color_buffer_half_float`** extension is part of the WebGL API and adds the ability to render to 16-bit floating-point color buffers.
  10595  *
  10596  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_color_buffer_half_float)
  10597  */
  10598 interface EXT_color_buffer_half_float {
  10599     readonly RGBA16F_EXT: 0x881A;
  10600     readonly RGB16F_EXT: 0x881B;
  10601     readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;
  10602     readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;
  10603 }
  10604 
  10605 /**
  10606  * The WebGL API's `EXT_float_blend` extension allows blending and draw buffers with 32-bit floating-point components.
  10607  *
  10608  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_float_blend)
  10609  */
  10610 interface EXT_float_blend {
  10611 }
  10612 
  10613 /**
  10614  * 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.
  10615  *
  10616  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_frag_depth)
  10617  */
  10618 interface EXT_frag_depth {
  10619 }
  10620 
  10621 /**
  10622  * The **`EXT_sRGB`** extension is part of the WebGL API and adds sRGB support to textures and framebuffer objects.
  10623  *
  10624  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_sRGB)
  10625  */
  10626 interface EXT_sRGB {
  10627     readonly SRGB_EXT: 0x8C40;
  10628     readonly SRGB_ALPHA_EXT: 0x8C42;
  10629     readonly SRGB8_ALPHA8_EXT: 0x8C43;
  10630     readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: 0x8210;
  10631 }
  10632 
  10633 /**
  10634  * The **`EXT_shader_texture_lod`** extension is part of the WebGL API and adds additional texture functions to the OpenGL ES Shading Language which provide the shader writer with explicit control of LOD (Level of detail).
  10635  *
  10636  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_shader_texture_lod)
  10637  */
  10638 interface EXT_shader_texture_lod {
  10639 }
  10640 
  10641 /**
  10642  * The `EXT_texture_compression_bptc` extension is part of the WebGL API and exposes 4 BPTC compressed texture formats.
  10643  *
  10644  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_compression_bptc)
  10645  */
  10646 interface EXT_texture_compression_bptc {
  10647     readonly COMPRESSED_RGBA_BPTC_UNORM_EXT: 0x8E8C;
  10648     readonly COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT: 0x8E8D;
  10649     readonly COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT: 0x8E8E;
  10650     readonly COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT: 0x8E8F;
  10651 }
  10652 
  10653 /**
  10654  * The `EXT_texture_compression_rgtc` extension is part of the WebGL API and exposes 4 RGTC compressed texture formats.
  10655  *
  10656  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_compression_rgtc)
  10657  */
  10658 interface EXT_texture_compression_rgtc {
  10659     readonly COMPRESSED_RED_RGTC1_EXT: 0x8DBB;
  10660     readonly COMPRESSED_SIGNED_RED_RGTC1_EXT: 0x8DBC;
  10661     readonly COMPRESSED_RED_GREEN_RGTC2_EXT: 0x8DBD;
  10662     readonly COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 0x8DBE;
  10663 }
  10664 
  10665 /**
  10666  * The **`EXT_texture_filter_anisotropic`** extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF).
  10667  *
  10668  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_filter_anisotropic)
  10669  */
  10670 interface EXT_texture_filter_anisotropic {
  10671     readonly TEXTURE_MAX_ANISOTROPY_EXT: 0x84FE;
  10672     readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: 0x84FF;
  10673 }
  10674 
  10675 /**
  10676  * The **`EXT_texture_norm16`** extension is part of the WebGL API and provides a set of new 16-bit signed normalized and unsigned normalized formats (fixed-point texture, renderbuffer and texture buffer).
  10677  *
  10678  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_norm16)
  10679  */
  10680 interface EXT_texture_norm16 {
  10681     readonly R16_EXT: 0x822A;
  10682     readonly RG16_EXT: 0x822C;
  10683     readonly RGB16_EXT: 0x8054;
  10684     readonly RGBA16_EXT: 0x805B;
  10685     readonly R16_SNORM_EXT: 0x8F98;
  10686     readonly RG16_SNORM_EXT: 0x8F99;
  10687     readonly RGB16_SNORM_EXT: 0x8F9A;
  10688     readonly RGBA16_SNORM_EXT: 0x8F9B;
  10689 }
  10690 
  10691 interface ElementEventMap {
  10692     "fullscreenchange": Event;
  10693     "fullscreenerror": Event;
  10694 }
  10695 
  10696 /**
  10697  * **`Element`** is the most general base class from which all element objects (i.e., objects that represent elements) in a Document inherit.
  10698  *
  10699  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element)
  10700  */
  10701 interface Element extends Node, ARIAMixin, Animatable, ChildNode, NonDocumentTypeChildNode, ParentNode, Slottable {
  10702     /**
  10703      * The **`Element.attributes`** property returns a live collection of all attribute nodes registered to the specified node.
  10704      *
  10705      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/attributes)
  10706      */
  10707     readonly attributes: NamedNodeMap;
  10708     /**
  10709      * The **`Element.classList`** is a read-only property that returns a live DOMTokenList collection of the `class` attributes of the element.
  10710      *
  10711      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/classList)
  10712      */
  10713     get classList(): DOMTokenList;
  10714     set classList(value: string);
  10715     /**
  10716      * The **`className`** property of the of the specified element.
  10717      *
  10718      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/className)
  10719      */
  10720     className: string;
  10721     /**
  10722      * The **`clientHeight`** read-only property of the Element interface is zero for elements with no CSS or inline layout boxes; otherwise, it's the inner height of an element in pixels.
  10723      *
  10724      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientHeight)
  10725      */
  10726     readonly clientHeight: number;
  10727     /**
  10728      * The **`clientLeft`** read-only property of the Element interface returns the width of the left border of an element in pixels.
  10729      *
  10730      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientLeft)
  10731      */
  10732     readonly clientLeft: number;
  10733     /**
  10734      * The **`clientTop`** read-only property of the Element interface returns the width of the top border of an element in pixels.
  10735      *
  10736      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientTop)
  10737      */
  10738     readonly clientTop: number;
  10739     /**
  10740      * The **`clientWidth`** read-only property of the Element interface is zero for inline elements and elements with no CSS; otherwise, it's the inner width of an element in pixels.
  10741      *
  10742      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientWidth)
  10743      */
  10744     readonly clientWidth: number;
  10745     /**
  10746      * The **`currentCSSZoom`** read-only property of the Element interface provides the 'effective' CSS `zoom` of an element, taking into account the zoom applied to the element and all its parent elements.
  10747      *
  10748      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/currentCSSZoom)
  10749      */
  10750     readonly currentCSSZoom: number;
  10751     /**
  10752      * The **`id`** property of the Element interface represents the element's identifier, reflecting the **`id`** global attribute.
  10753      *
  10754      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/id)
  10755      */
  10756     id: string;
  10757     /**
  10758      * The **`innerHTML`** property of the Element interface gets or sets the HTML or XML markup contained within the element.
  10759      *
  10760      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/innerHTML)
  10761      */
  10762     innerHTML: string;
  10763     /**
  10764      * The **`Element.localName`** read-only property returns the local part of the qualified name of an element.
  10765      *
  10766      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/localName)
  10767      */
  10768     readonly localName: string;
  10769     /**
  10770      * The **`Element.namespaceURI`** read-only property returns the namespace URI of the element, or `null` if the element is not in a namespace.
  10771      *
  10772      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/namespaceURI)
  10773      */
  10774     readonly namespaceURI: string | null;
  10775     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/fullscreenchange_event) */
  10776     onfullscreenchange: ((this: Element, ev: Event) => any) | null;
  10777     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/fullscreenerror_event) */
  10778     onfullscreenerror: ((this: Element, ev: Event) => any) | null;
  10779     /**
  10780      * The **`outerHTML`** attribute of the Element DOM interface gets the serialized HTML fragment describing the element including its descendants.
  10781      *
  10782      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/outerHTML)
  10783      */
  10784     outerHTML: string;
  10785     readonly ownerDocument: Document;
  10786     /**
  10787      * The **`part`** property of the Element interface represents the part identifier(s) of the element (i.e., set using the `part` attribute), returned as a DOMTokenList.
  10788      *
  10789      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/part)
  10790      */
  10791     get part(): DOMTokenList;
  10792     set part(value: string);
  10793     /**
  10794      * The **`Element.prefix`** read-only property returns the namespace prefix of the specified element, or `null` if no prefix is specified.
  10795      *
  10796      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/prefix)
  10797      */
  10798     readonly prefix: string | null;
  10799     /**
  10800      * The **`scrollHeight`** read-only property of the Element interface is a measurement of the height of an element's content, including content not visible on the screen due to overflow.
  10801      *
  10802      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollHeight)
  10803      */
  10804     readonly scrollHeight: number;
  10805     /**
  10806      * The **`scrollLeft`** property of the Element interface gets or sets the number of pixels by which an element's content is scrolled from its left edge.
  10807      *
  10808      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollLeft)
  10809      */
  10810     scrollLeft: number;
  10811     /**
  10812      * The **`scrollTop`** property of the Element interface gets or sets the number of pixels by which an element's content is scrolled from its top edge.
  10813      *
  10814      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollTop)
  10815      */
  10816     scrollTop: number;
  10817     /**
  10818      * The **`scrollWidth`** read-only property of the Element interface is a measurement of the width of an element's content, including content not visible on the screen due to overflow.
  10819      *
  10820      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollWidth)
  10821      */
  10822     readonly scrollWidth: number;
  10823     /**
  10824      * The `Element.shadowRoot` read-only property represents the shadow root hosted by the element.
  10825      *
  10826      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/shadowRoot)
  10827      */
  10828     readonly shadowRoot: ShadowRoot | null;
  10829     /**
  10830      * The **`slot`** property of the Element interface returns the name of the shadow DOM slot the element is inserted in.
  10831      *
  10832      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/slot)
  10833      */
  10834     slot: string;
  10835     /**
  10836      * The **`tagName`** read-only property of the Element interface returns the tag name of the element on which it's called.
  10837      *
  10838      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/tagName)
  10839      */
  10840     readonly tagName: string;
  10841     /**
  10842      * The **`Element.attachShadow()`** method attaches a shadow DOM tree to the specified element and returns a reference to its ShadowRoot.
  10843      *
  10844      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/attachShadow)
  10845      */
  10846     attachShadow(init: ShadowRootInit): ShadowRoot;
  10847     /**
  10848      * The **`checkVisibility()`** method of the Element interface checks whether the element is visible.
  10849      *
  10850      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility)
  10851      */
  10852     checkVisibility(options?: CheckVisibilityOptions): boolean;
  10853     /**
  10854      * The **`closest()`** method of the Element interface traverses the element and its parents (heading toward the document root) until it finds a node that matches the specified CSS selector.
  10855      *
  10856      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/closest)
  10857      */
  10858     closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
  10859     closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;
  10860     closest<K extends keyof MathMLElementTagNameMap>(selector: K): MathMLElementTagNameMap[K] | null;
  10861     closest<E extends Element = Element>(selectors: string): E | null;
  10862     /**
  10863      * The **`computedStyleMap()`** method of the Element interface returns a StylePropertyMapReadOnly interface which provides a read-only representation of a CSS declaration block that is an alternative to CSSStyleDeclaration.
  10864      *
  10865      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/computedStyleMap)
  10866      */
  10867     computedStyleMap(): StylePropertyMapReadOnly;
  10868     /**
  10869      * The **`getAttribute()`** method of the element.
  10870      *
  10871      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttribute)
  10872      */
  10873     getAttribute(qualifiedName: string): string | null;
  10874     /**
  10875      * The **`getAttributeNS()`** method of the Element interface returns the string value of the attribute with the specified namespace and name.
  10876      *
  10877      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS)
  10878      */
  10879     getAttributeNS(namespace: string | null, localName: string): string | null;
  10880     /**
  10881      * The **`getAttributeNames()`** method of the array.
  10882      *
  10883      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames)
  10884      */
  10885     getAttributeNames(): string[];
  10886     /**
  10887      * Returns the specified attribute of the specified element, as an Attr node.
  10888      *
  10889      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode)
  10890      */
  10891     getAttributeNode(qualifiedName: string): Attr | null;
  10892     /**
  10893      * The **`getAttributeNodeNS()`** method of the Element interface returns the namespaced Attr node of an element.
  10894      *
  10895      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS)
  10896      */
  10897     getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;
  10898     /**
  10899      * The **`Element.getBoundingClientRect()`** method returns a position relative to the viewport.
  10900      *
  10901      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect)
  10902      */
  10903     getBoundingClientRect(): DOMRect;
  10904     /**
  10905      * The **`getClientRects()`** method of the Element interface returns a collection of DOMRect objects that indicate the bounding rectangles for each CSS border box in a client.
  10906      *
  10907      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getClientRects)
  10908      */
  10909     getClientRects(): DOMRectList;
  10910     /**
  10911      * The Element method **`getElementsByClassName()`** returns a live specified class name or names.
  10912      *
  10913      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName)
  10914      */
  10915     getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
  10916     /**
  10917      * The **`Element.getElementsByTagName()`** method returns a live All descendants of the specified element are searched, but not the element itself.
  10918      *
  10919      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName)
  10920      */
  10921     getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
  10922     getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
  10923     getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
  10924     /** @deprecated */
  10925     getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
  10926     getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
  10927     /**
  10928      * The **`Element.getElementsByTagNameNS()`** method returns a live HTMLCollection of elements with the given tag name belonging to the given namespace.
  10929      *
  10930      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS)
  10931      */
  10932     getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
  10933     getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
  10934     getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;
  10935     getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
  10936     /**
  10937      * The **`getHTML()`** method of the Element interface is used to serialize an element's DOM to an HTML string.
  10938      *
  10939      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getHTML)
  10940      */
  10941     getHTML(options?: GetHTMLOptions): string;
  10942     /**
  10943      * The **`Element.hasAttribute()`** method returns a **Boolean** value indicating whether the specified element has the specified attribute or not.
  10944      *
  10945      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute)
  10946      */
  10947     hasAttribute(qualifiedName: string): boolean;
  10948     /**
  10949      * The **`hasAttributeNS()`** method of the Element interface returns a boolean value indicating whether the current element has the specified attribute with the specified namespace.
  10950      *
  10951      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS)
  10952      */
  10953     hasAttributeNS(namespace: string | null, localName: string): boolean;
  10954     /**
  10955      * The **`hasAttributes()`** method of the Element interface returns a boolean value indicating whether the current element has any attributes or not.
  10956      *
  10957      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes)
  10958      */
  10959     hasAttributes(): boolean;
  10960     /**
  10961      * The **`hasPointerCapture()`** method of the pointer capture for the pointer identified by the given pointer ID.
  10962      *
  10963      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture)
  10964      */
  10965     hasPointerCapture(pointerId: number): boolean;
  10966     /**
  10967      * The **`insertAdjacentElement()`** method of the relative to the element it is invoked upon.
  10968      *
  10969      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement)
  10970      */
  10971     insertAdjacentElement(where: InsertPosition, element: Element): Element | null;
  10972     /**
  10973      * The **`insertAdjacentHTML()`** method of the the resulting nodes into the DOM tree at a specified position.
  10974      *
  10975      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML)
  10976      */
  10977     insertAdjacentHTML(position: InsertPosition, string: string): void;
  10978     /**
  10979      * The **`insertAdjacentText()`** method of the Element interface, given a relative position and a string, inserts a new text node at the given position relative to the element it is called from.
  10980      *
  10981      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText)
  10982      */
  10983     insertAdjacentText(where: InsertPosition, data: string): void;
  10984     /**
  10985      * The **`matches()`** method of the Element interface tests whether the element would be selected by the specified CSS selector.
  10986      *
  10987      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/matches)
  10988      */
  10989     matches(selectors: string): boolean;
  10990     /**
  10991      * The **`releasePointerCapture()`** method of the previously set for a specific (PointerEvent) _pointer_.
  10992      *
  10993      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture)
  10994      */
  10995     releasePointerCapture(pointerId: number): void;
  10996     /**
  10997      * The Element method **`removeAttribute()`** removes the attribute with the specified name from the element.
  10998      *
  10999      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute)
  11000      */
  11001     removeAttribute(qualifiedName: string): void;
  11002     /**
  11003      * The **`removeAttributeNS()`** method of the If you are working with HTML and you don't need to specify the requested attribute as being part of a specific namespace, use the Element.removeAttribute() method instead.
  11004      *
  11005      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS)
  11006      */
  11007     removeAttributeNS(namespace: string | null, localName: string): void;
  11008     /**
  11009      * The **`removeAttributeNode()`** method of the Element interface removes the specified Attr node from the element.
  11010      *
  11011      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode)
  11012      */
  11013     removeAttributeNode(attr: Attr): Attr;
  11014     /**
  11015      * The **`Element.requestFullscreen()`** method issues an asynchronous request to make the element be displayed in fullscreen mode.
  11016      *
  11017      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
  11018      */
  11019     requestFullscreen(options?: FullscreenOptions): Promise<void>;
  11020     /**
  11021      * The **`requestPointerLock()`** method of the Element interface lets you asynchronously ask for the pointer to be locked on the given element.
  11022      *
  11023      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock)
  11024      */
  11025     requestPointerLock(options?: PointerLockOptions): Promise<void>;
  11026     /**
  11027      * The **`scroll()`** method of the Element interface scrolls the element to a particular set of coordinates inside a given element.
  11028      *
  11029      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scroll)
  11030      */
  11031     scroll(options?: ScrollToOptions): void;
  11032     scroll(x: number, y: number): void;
  11033     /**
  11034      * The **`scrollBy()`** method of the Element interface scrolls an element by the given amount.
  11035      *
  11036      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollBy)
  11037      */
  11038     scrollBy(options?: ScrollToOptions): void;
  11039     scrollBy(x: number, y: number): void;
  11040     /**
  11041      * The Element interface's **`scrollIntoView()`** method scrolls the element's ancestor containers such that the element on which `scrollIntoView()` is called is visible to the user.
  11042      *
  11043      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView)
  11044      */
  11045     scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
  11046     /**
  11047      * The **`scrollTo()`** method of the Element interface scrolls to a particular set of coordinates inside a given element.
  11048      *
  11049      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollTo)
  11050      */
  11051     scrollTo(options?: ScrollToOptions): void;
  11052     scrollTo(x: number, y: number): void;
  11053     /**
  11054      * The **`setAttribute()`** method of the Element interface sets the value of an attribute on the specified element.
  11055      *
  11056      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttribute)
  11057      */
  11058     setAttribute(qualifiedName: string, value: string): void;
  11059     /**
  11060      * `setAttributeNS` adds a new attribute or changes the value of an attribute with the given namespace and name.
  11061      *
  11062      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS)
  11063      */
  11064     setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
  11065     /**
  11066      * The **`setAttributeNode()`** method of the Element interface adds a new Attr node to the specified element.
  11067      *
  11068      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode)
  11069      */
  11070     setAttributeNode(attr: Attr): Attr | null;
  11071     /**
  11072      * The **`setAttributeNodeNS()`** method of the Element interface adds a new namespaced Attr node to an element.
  11073      *
  11074      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS)
  11075      */
  11076     setAttributeNodeNS(attr: Attr): Attr | null;
  11077     /**
  11078      * The **`setHTMLUnsafe()`** method of the Element interface is used to parse a string of HTML into a DocumentFragment, optionally filtering out unwanted elements and attributes, and those that don't belong in the context, and then using it to replace the element's subtree in the DOM.
  11079      *
  11080      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setHTMLUnsafe)
  11081      */
  11082     setHTMLUnsafe(html: string): void;
  11083     /**
  11084      * The **`setPointerCapture()`** method of the _capture target_ of future pointer events.
  11085      *
  11086      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture)
  11087      */
  11088     setPointerCapture(pointerId: number): void;
  11089     /**
  11090      * The **`toggleAttribute()`** method of the present and adding it if it is not present) on the given element.
  11091      *
  11092      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute)
  11093      */
  11094     toggleAttribute(qualifiedName: string, force?: boolean): boolean;
  11095     /**
  11096      * @deprecated This is a legacy alias of `matches`.
  11097      *
  11098      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/matches)
  11099      */
  11100     webkitMatchesSelector(selectors: string): boolean;
  11101     /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) */
  11102     get textContent(): string;
  11103     set textContent(value: string | null);
  11104     addEventListener<K extends keyof ElementEventMap>(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  11105     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  11106     removeEventListener<K extends keyof ElementEventMap>(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  11107     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  11108 }
  11109 
  11110 declare var Element: {
  11111     prototype: Element;
  11112     new(): Element;
  11113 };
  11114 
  11115 interface ElementCSSInlineStyle {
  11116     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/attributeStyleMap) */
  11117     readonly attributeStyleMap: StylePropertyMap;
  11118     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/style) */
  11119     get style(): CSSStyleDeclaration;
  11120     set style(cssText: string);
  11121 }
  11122 
  11123 interface ElementContentEditable {
  11124     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/contentEditable) */
  11125     contentEditable: string;
  11126     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/enterKeyHint) */
  11127     enterKeyHint: string;
  11128     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/inputMode) */
  11129     inputMode: string;
  11130     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/isContentEditable) */
  11131     readonly isContentEditable: boolean;
  11132 }
  11133 
  11134 /**
  11135  * The **`ElementInternals`** interface of the Document Object Model gives web developers a way to allow custom elements to fully participate in HTML forms.
  11136  *
  11137  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals)
  11138  */
  11139 interface ElementInternals extends ARIAMixin {
  11140     /**
  11141      * The **`form`** read-only property of the ElementInternals interface returns the HTMLFormElement associated with this element.
  11142      *
  11143      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/form)
  11144      */
  11145     readonly form: HTMLFormElement | null;
  11146     /**
  11147      * The **`labels`** read-only property of the ElementInternals interface returns the labels associated with the element.
  11148      *
  11149      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/labels)
  11150      */
  11151     readonly labels: NodeList;
  11152     /**
  11153      * The **`shadowRoot`** read-only property of the ElementInternals interface returns the ShadowRoot for this element.
  11154      *
  11155      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/shadowRoot)
  11156      */
  11157     readonly shadowRoot: ShadowRoot | null;
  11158     /**
  11159      * The **`states`** read-only property of the ElementInternals interface returns a CustomStateSet representing the possible states of the custom element.
  11160      *
  11161      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/states)
  11162      */
  11163     readonly states: CustomStateSet;
  11164     /**
  11165      * The **`validationMessage`** read-only property of the ElementInternals interface returns the validation message for the element.
  11166      *
  11167      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/validationMessage)
  11168      */
  11169     readonly validationMessage: string;
  11170     /**
  11171      * The **`validity`** read-only property of the ElementInternals interface returns a ValidityState object which represents the different validity states the element can be in, with respect to constraint validation.
  11172      *
  11173      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/validity)
  11174      */
  11175     readonly validity: ValidityState;
  11176     /**
  11177      * The **`willValidate`** read-only property of the ElementInternals interface returns `true` if the element is a submittable element that is a candidate for constraint validation.
  11178      *
  11179      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/willValidate)
  11180      */
  11181     readonly willValidate: boolean;
  11182     /**
  11183      * The **`checkValidity()`** method of the ElementInternals interface checks if the element meets any constraint validation rules applied to it.
  11184      *
  11185      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/checkValidity)
  11186      */
  11187     checkValidity(): boolean;
  11188     /**
  11189      * The **`reportValidity()`** method of the ElementInternals interface checks if the element meets any constraint validation rules applied to it.
  11190      *
  11191      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/reportValidity)
  11192      */
  11193     reportValidity(): boolean;
  11194     /**
  11195      * The **`setFormValue()`** method of the ElementInternals interface sets the element's submission value and state, communicating these to the user agent.
  11196      *
  11197      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/setFormValue)
  11198      */
  11199     setFormValue(value: File | string | FormData | null, state?: File | string | FormData | null): void;
  11200     /**
  11201      * The **`setValidity()`** method of the ElementInternals interface sets the validity of the element.
  11202      *
  11203      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/setValidity)
  11204      */
  11205     setValidity(flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement): void;
  11206 }
  11207 
  11208 declare var ElementInternals: {
  11209     prototype: ElementInternals;
  11210     new(): ElementInternals;
  11211 };
  11212 
  11213 /**
  11214  * The **`EncodedAudioChunk`** interface of the WebCodecs API represents a chunk of encoded audio data.
  11215  *
  11216  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk)
  11217  */
  11218 interface EncodedAudioChunk {
  11219     /**
  11220      * The **`byteLength`** read-only property of the EncodedAudioChunk interface returns the length in bytes of the encoded audio data.
  11221      *
  11222      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/byteLength)
  11223      */
  11224     readonly byteLength: number;
  11225     /**
  11226      * The **`duration`** read-only property of the EncodedAudioChunk interface returns an integer indicating the duration of the audio in microseconds.
  11227      *
  11228      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/duration)
  11229      */
  11230     readonly duration: number | null;
  11231     /**
  11232      * The **`timestamp`** read-only property of the EncodedAudioChunk interface returns an integer indicating the timestamp of the audio in microseconds.
  11233      *
  11234      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/timestamp)
  11235      */
  11236     readonly timestamp: number;
  11237     /**
  11238      * The **`type`** read-only property of the EncodedAudioChunk interface returns a value indicating whether the audio chunk is a key chunk, which does not relying on other frames for decoding.
  11239      *
  11240      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/type)
  11241      */
  11242     readonly type: EncodedAudioChunkType;
  11243     /**
  11244      * The **`copyTo()`** method of the EncodedAudioChunk interface copies the encoded chunk of audio data.
  11245      *
  11246      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedAudioChunk/copyTo)
  11247      */
  11248     copyTo(destination: AllowSharedBufferSource): void;
  11249 }
  11250 
  11251 declare var EncodedAudioChunk: {
  11252     prototype: EncodedAudioChunk;
  11253     new(init: EncodedAudioChunkInit): EncodedAudioChunk;
  11254 };
  11255 
  11256 /**
  11257  * The **`EncodedVideoChunk`** interface of the WebCodecs API represents a chunk of encoded video data.
  11258  *
  11259  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk)
  11260  */
  11261 interface EncodedVideoChunk {
  11262     /**
  11263      * The **`byteLength`** read-only property of the EncodedVideoChunk interface returns the length in bytes of the encoded video data.
  11264      *
  11265      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/byteLength)
  11266      */
  11267     readonly byteLength: number;
  11268     /**
  11269      * The **`duration`** read-only property of the EncodedVideoChunk interface returns an integer indicating the duration of the video in microseconds.
  11270      *
  11271      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/duration)
  11272      */
  11273     readonly duration: number | null;
  11274     /**
  11275      * The **`timestamp`** read-only property of the EncodedVideoChunk interface returns an integer indicating the timestamp of the video in microseconds.
  11276      *
  11277      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/timestamp)
  11278      */
  11279     readonly timestamp: number;
  11280     /**
  11281      * The **`type`** read-only property of the EncodedVideoChunk interface returns a value indicating whether the video chunk is a key chunk, which does not rely on other frames for decoding.
  11282      *
  11283      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/type)
  11284      */
  11285     readonly type: EncodedVideoChunkType;
  11286     /**
  11287      * The **`copyTo()`** method of the EncodedVideoChunk interface copies the encoded chunk of video data.
  11288      *
  11289      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/copyTo)
  11290      */
  11291     copyTo(destination: AllowSharedBufferSource): void;
  11292 }
  11293 
  11294 declare var EncodedVideoChunk: {
  11295     prototype: EncodedVideoChunk;
  11296     new(init: EncodedVideoChunkInit): EncodedVideoChunk;
  11297 };
  11298 
  11299 /**
  11300  * The **`ErrorEvent`** interface represents events providing information related to errors in scripts or in files.
  11301  *
  11302  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent)
  11303  */
  11304 interface ErrorEvent extends Event {
  11305     /**
  11306      * The **`colno`** read-only property of the ErrorEvent interface returns an integer containing the column number of the script file on which the error occurred.
  11307      *
  11308      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/colno)
  11309      */
  11310     readonly colno: number;
  11311     /**
  11312      * The **`error`** read-only property of the ErrorEvent interface returns a JavaScript value, such as an Error or DOMException, representing the error associated with this event.
  11313      *
  11314      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/error)
  11315      */
  11316     readonly error: any;
  11317     /**
  11318      * The **`filename`** read-only property of the ErrorEvent interface returns a string containing the name of the script file in which the error occurred.
  11319      *
  11320      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/filename)
  11321      */
  11322     readonly filename: string;
  11323     /**
  11324      * The **`lineno`** read-only property of the ErrorEvent interface returns an integer containing the line number of the script file on which the error occurred.
  11325      *
  11326      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/lineno)
  11327      */
  11328     readonly lineno: number;
  11329     /**
  11330      * The **`message`** read-only property of the ErrorEvent interface returns a string containing a human-readable error message describing the problem.
  11331      *
  11332      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/message)
  11333      */
  11334     readonly message: string;
  11335 }
  11336 
  11337 declare var ErrorEvent: {
  11338     prototype: ErrorEvent;
  11339     new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent;
  11340 };
  11341 
  11342 /**
  11343  * The **`Event`** interface represents an event which takes place on an `EventTarget`.
  11344  *
  11345  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event)
  11346  */
  11347 interface Event {
  11348     /**
  11349      * The **`bubbles`** read-only property of the Event interface indicates whether the event bubbles up through the DOM tree or not.
  11350      *
  11351      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/bubbles)
  11352      */
  11353     readonly bubbles: boolean;
  11354     /**
  11355      * The **`cancelBubble`** property of the Event interface is deprecated.
  11356      * @deprecated
  11357      *
  11358      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelBubble)
  11359      */
  11360     cancelBubble: boolean;
  11361     /**
  11362      * The **`cancelable`** read-only property of the Event interface indicates whether the event can be canceled, and therefore prevented as if the event never happened.
  11363      *
  11364      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelable)
  11365      */
  11366     readonly cancelable: boolean;
  11367     /**
  11368      * The read-only **`composed`** property of the or not the event will propagate across the shadow DOM boundary into the standard DOM.
  11369      *
  11370      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composed)
  11371      */
  11372     readonly composed: boolean;
  11373     /**
  11374      * The **`currentTarget`** read-only property of the Event interface identifies the element to which the event handler has been attached.
  11375      *
  11376      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
  11377      */
  11378     readonly currentTarget: EventTarget | null;
  11379     /**
  11380      * The **`defaultPrevented`** read-only property of the Event interface returns a boolean value indicating whether or not the call to Event.preventDefault() canceled the event.
  11381      *
  11382      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/defaultPrevented)
  11383      */
  11384     readonly defaultPrevented: boolean;
  11385     /**
  11386      * The **`eventPhase`** read-only property of the being evaluated.
  11387      *
  11388      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/eventPhase)
  11389      */
  11390     readonly eventPhase: number;
  11391     /**
  11392      * The **`isTrusted`** read-only property of the when the event was generated by the user agent (including via user actions and programmatic methods such as HTMLElement.focus()), and `false` when the event was dispatched via The only exception is the `click` event, which initializes the `isTrusted` property to `false` in user agents.
  11393      *
  11394      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/isTrusted)
  11395      */
  11396     readonly isTrusted: boolean;
  11397     /**
  11398      * The Event property **`returnValue`** indicates whether the default action for this event has been prevented or not.
  11399      * @deprecated
  11400      *
  11401      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/returnValue)
  11402      */
  11403     returnValue: boolean;
  11404     /**
  11405      * The deprecated **`Event.srcElement`** is an alias for the Event.target property.
  11406      * @deprecated
  11407      *
  11408      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/srcElement)
  11409      */
  11410     readonly srcElement: EventTarget | null;
  11411     /**
  11412      * The read-only **`target`** property of the dispatched.
  11413      *
  11414      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
  11415      */
  11416     readonly target: EventTarget | null;
  11417     /**
  11418      * The **`timeStamp`** read-only property of the Event interface returns the time (in milliseconds) at which the event was created.
  11419      *
  11420      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/timeStamp)
  11421      */
  11422     readonly timeStamp: DOMHighResTimeStamp;
  11423     /**
  11424      * The **`type`** read-only property of the Event interface returns a string containing the event's type.
  11425      *
  11426      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/type)
  11427      */
  11428     readonly type: string;
  11429     /**
  11430      * The **`composedPath()`** method of the Event interface returns the event's path which is an array of the objects on which listeners will be invoked.
  11431      *
  11432      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composedPath)
  11433      */
  11434     composedPath(): EventTarget[];
  11435     /**
  11436      * The **`Event.initEvent()`** method is used to initialize the value of an event created using Document.createEvent().
  11437      * @deprecated
  11438      *
  11439      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/initEvent)
  11440      */
  11441     initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;
  11442     /**
  11443      * The **`preventDefault()`** method of the Event interface tells the user agent that if the event does not get explicitly handled, its default action should not be taken as it normally would be.
  11444      *
  11445      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/preventDefault)
  11446      */
  11447     preventDefault(): void;
  11448     /**
  11449      * The **`stopImmediatePropagation()`** method of the If several listeners are attached to the same element for the same event type, they are called in the order in which they were added.
  11450      *
  11451      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopImmediatePropagation)
  11452      */
  11453     stopImmediatePropagation(): void;
  11454     /**
  11455      * The **`stopPropagation()`** method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases.
  11456      *
  11457      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopPropagation)
  11458      */
  11459     stopPropagation(): void;
  11460     readonly NONE: 0;
  11461     readonly CAPTURING_PHASE: 1;
  11462     readonly AT_TARGET: 2;
  11463     readonly BUBBLING_PHASE: 3;
  11464 }
  11465 
  11466 declare var Event: {
  11467     prototype: Event;
  11468     new(type: string, eventInitDict?: EventInit): Event;
  11469     readonly NONE: 0;
  11470     readonly CAPTURING_PHASE: 1;
  11471     readonly AT_TARGET: 2;
  11472     readonly BUBBLING_PHASE: 3;
  11473 };
  11474 
  11475 /**
  11476  * The **`EventCounts`** interface of the Performance API provides the number of events that have been dispatched for each event type.
  11477  *
  11478  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventCounts)
  11479  */
  11480 interface EventCounts {
  11481     forEach(callbackfn: (value: number, key: string, parent: EventCounts) => void, thisArg?: any): void;
  11482 }
  11483 
  11484 declare var EventCounts: {
  11485     prototype: EventCounts;
  11486     new(): EventCounts;
  11487 };
  11488 
  11489 interface EventListener {
  11490     (evt: Event): void;
  11491 }
  11492 
  11493 interface EventListenerObject {
  11494     handleEvent(object: Event): void;
  11495 }
  11496 
  11497 interface EventSourceEventMap {
  11498     "error": Event;
  11499     "message": MessageEvent;
  11500     "open": Event;
  11501 }
  11502 
  11503 /**
  11504  * The **`EventSource`** interface is web content's interface to server-sent events.
  11505  *
  11506  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource)
  11507  */
  11508 interface EventSource extends EventTarget {
  11509     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/error_event) */
  11510     onerror: ((this: EventSource, ev: Event) => any) | null;
  11511     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/message_event) */
  11512     onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;
  11513     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/open_event) */
  11514     onopen: ((this: EventSource, ev: Event) => any) | null;
  11515     /**
  11516      * The **`readyState`** read-only property of the connection.
  11517      *
  11518      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/readyState)
  11519      */
  11520     readonly readyState: number;
  11521     /**
  11522      * The **`url`** read-only property of the URL of the source.
  11523      *
  11524      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/url)
  11525      */
  11526     readonly url: string;
  11527     /**
  11528      * The **`withCredentials`** read-only property of the the `EventSource` object was instantiated with CORS credentials set.
  11529      *
  11530      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/withCredentials)
  11531      */
  11532     readonly withCredentials: boolean;
  11533     /**
  11534      * The **`close()`** method of the EventSource interface closes the connection, if one is made, and sets the ```js-nolint close() ``` None.
  11535      *
  11536      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/close)
  11537      */
  11538     close(): void;
  11539     readonly CONNECTING: 0;
  11540     readonly OPEN: 1;
  11541     readonly CLOSED: 2;
  11542     addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  11543     addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void;
  11544     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  11545     removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  11546     removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void;
  11547     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  11548 }
  11549 
  11550 declare var EventSource: {
  11551     prototype: EventSource;
  11552     new(url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource;
  11553     readonly CONNECTING: 0;
  11554     readonly OPEN: 1;
  11555     readonly CLOSED: 2;
  11556 };
  11557 
  11558 /**
  11559  * The **`EventTarget`** interface is implemented by objects that can receive events and may have listeners for them.
  11560  *
  11561  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget)
  11562  */
  11563 interface EventTarget {
  11564     /**
  11565      * The **`addEventListener()`** method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.
  11566      *
  11567      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
  11568      */
  11569     addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void;
  11570     /**
  11571      * The **`dispatchEvent()`** method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order.
  11572      *
  11573      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
  11574      */
  11575     dispatchEvent(event: Event): boolean;
  11576     /**
  11577      * The **`removeEventListener()`** method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from the target.
  11578      *
  11579      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
  11580      */
  11581     removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;
  11582 }
  11583 
  11584 declare var EventTarget: {
  11585     prototype: EventTarget;
  11586     new(): EventTarget;
  11587 };
  11588 
  11589 /** @deprecated */
  11590 interface External {
  11591     /** @deprecated */
  11592     AddSearchProvider(): void;
  11593     /** @deprecated */
  11594     IsSearchProviderInstalled(): void;
  11595 }
  11596 
  11597 /** @deprecated */
  11598 declare var External: {
  11599     prototype: External;
  11600     new(): External;
  11601 };
  11602 
  11603 /**
  11604  * The **`File`** interface provides information about files and allows JavaScript in a web page to access their content.
  11605  *
  11606  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File)
  11607  */
  11608 interface File extends Blob {
  11609     /**
  11610      * The **`lastModified`** read-only property of the File interface provides the last modified date of the file as the number of milliseconds since the Unix epoch (January 1, 1970 at midnight).
  11611      *
  11612      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/lastModified)
  11613      */
  11614     readonly lastModified: number;
  11615     /**
  11616      * The **`name`** read-only property of the File interface returns the name of the file represented by a File object.
  11617      *
  11618      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/name)
  11619      */
  11620     readonly name: string;
  11621     /**
  11622      * The **`webkitRelativePath`** read-only property of the File interface contains a string which specifies the file's path relative to the directory selected by the user in an input element with its `webkitdirectory` attribute set.
  11623      *
  11624      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/webkitRelativePath)
  11625      */
  11626     readonly webkitRelativePath: string;
  11627 }
  11628 
  11629 declare var File: {
  11630     prototype: File;
  11631     new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
  11632 };
  11633 
  11634 /**
  11635  * The **`FileList`** interface represents an object of this type 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.
  11636  *
  11637  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList)
  11638  */
  11639 interface FileList {
  11640     /**
  11641      * The **`length`** read-only property of the FileList interface returns the number of files in the `FileList`.
  11642      *
  11643      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList/length)
  11644      */
  11645     readonly length: number;
  11646     /**
  11647      * The **`item()`** method of the FileList interface returns a File object representing the file at the specified index in the file list.
  11648      *
  11649      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList/item)
  11650      */
  11651     item(index: number): File | null;
  11652     [index: number]: File;
  11653 }
  11654 
  11655 declare var FileList: {
  11656     prototype: FileList;
  11657     new(): FileList;
  11658 };
  11659 
  11660 interface FileReaderEventMap {
  11661     "abort": ProgressEvent<FileReader>;
  11662     "error": ProgressEvent<FileReader>;
  11663     "load": ProgressEvent<FileReader>;
  11664     "loadend": ProgressEvent<FileReader>;
  11665     "loadstart": ProgressEvent<FileReader>;
  11666     "progress": ProgressEvent<FileReader>;
  11667 }
  11668 
  11669 /**
  11670  * The **`FileReader`** interface 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.
  11671  *
  11672  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader)
  11673  */
  11674 interface FileReader extends EventTarget {
  11675     /**
  11676      * The **`error`** read-only property of the FileReader interface returns the error that occurred while reading the file.
  11677      *
  11678      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/error)
  11679      */
  11680     readonly error: DOMException | null;
  11681     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/abort_event) */
  11682     onabort: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
  11683     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/error_event) */
  11684     onerror: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
  11685     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/load_event) */
  11686     onload: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
  11687     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/loadend_event) */
  11688     onloadend: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
  11689     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/loadstart_event) */
  11690     onloadstart: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
  11691     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/progress_event) */
  11692     onprogress: ((this: FileReader, ev: ProgressEvent<FileReader>) => any) | null;
  11693     /**
  11694      * The **`readyState`** read-only property of the FileReader interface provides the current state of the reading operation.
  11695      *
  11696      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readyState)
  11697      */
  11698     readonly readyState: typeof FileReader.EMPTY | typeof FileReader.LOADING | typeof FileReader.DONE;
  11699     /**
  11700      * The **`result`** read-only property of the FileReader interface returns the file's contents.
  11701      *
  11702      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/result)
  11703      */
  11704     readonly result: string | ArrayBuffer | null;
  11705     /**
  11706      * The **`abort()`** method of the FileReader interface aborts the read operation.
  11707      *
  11708      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/abort)
  11709      */
  11710     abort(): void;
  11711     /**
  11712      * The **`readAsArrayBuffer()`** method of the FileReader interface is used to start reading the contents of a specified Blob or File.
  11713      *
  11714      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsArrayBuffer)
  11715      */
  11716     readAsArrayBuffer(blob: Blob): void;
  11717     /**
  11718      * The **`readAsBinaryString()`** method of the FileReader interface is used to start reading the contents of the specified Blob or File.
  11719      * @deprecated
  11720      *
  11721      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsBinaryString)
  11722      */
  11723     readAsBinaryString(blob: Blob): void;
  11724     /**
  11725      * The **`readAsDataURL()`** method of the FileReader interface is used to read the contents of the specified file's data as a base64 encoded string.
  11726      *
  11727      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsDataURL)
  11728      */
  11729     readAsDataURL(blob: Blob): void;
  11730     /**
  11731      * The **`readAsText()`** method of the FileReader interface is used to read the contents of the specified Blob or File.
  11732      *
  11733      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsText)
  11734      */
  11735     readAsText(blob: Blob, encoding?: string): void;
  11736     readonly EMPTY: 0;
  11737     readonly LOADING: 1;
  11738     readonly DONE: 2;
  11739     addEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  11740     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  11741     removeEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  11742     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  11743 }
  11744 
  11745 declare var FileReader: {
  11746     prototype: FileReader;
  11747     new(): FileReader;
  11748     readonly EMPTY: 0;
  11749     readonly LOADING: 1;
  11750     readonly DONE: 2;
  11751 };
  11752 
  11753 /**
  11754  * The File and Directory Entries API interface **`FileSystem`** is used to represent a file system.
  11755  *
  11756  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystem)
  11757  */
  11758 interface FileSystem {
  11759     /**
  11760      * The read-only **`name`** property of the string is unique among all file systems currently exposed by the File and Directory Entries API.
  11761      *
  11762      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystem/name)
  11763      */
  11764     readonly name: string;
  11765     /**
  11766      * The read-only **`root`** property of the object representing the root directory of the file system, for use with the File and Directory Entries API.
  11767      *
  11768      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystem/root)
  11769      */
  11770     readonly root: FileSystemDirectoryEntry;
  11771 }
  11772 
  11773 declare var FileSystem: {
  11774     prototype: FileSystem;
  11775     new(): FileSystem;
  11776 };
  11777 
  11778 /**
  11779  * The **`FileSystemDirectoryEntry`** interface of the File and Directory Entries API represents a directory in a file system.
  11780  *
  11781  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry)
  11782  */
  11783 interface FileSystemDirectoryEntry extends FileSystemEntry {
  11784     /**
  11785      * The FileSystemDirectoryEntry interface's method **`createReader()`** returns a the directory.
  11786      *
  11787      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry/createReader)
  11788      */
  11789     createReader(): FileSystemDirectoryReader;
  11790     /**
  11791      * The FileSystemDirectoryEntry interface's method **`getDirectory()`** returns a somewhere within the directory subtree rooted at the directory on which it's called.
  11792      *
  11793      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry/getDirectory)
  11794      */
  11795     getDirectory(path?: string | null, options?: FileSystemFlags, successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;
  11796     /**
  11797      * The FileSystemDirectoryEntry interface's method **`getFile()`** returns a within the directory subtree rooted at the directory on which it's called.
  11798      *
  11799      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry/getFile)
  11800      */
  11801     getFile(path?: string | null, options?: FileSystemFlags, successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;
  11802 }
  11803 
  11804 declare var FileSystemDirectoryEntry: {
  11805     prototype: FileSystemDirectoryEntry;
  11806     new(): FileSystemDirectoryEntry;
  11807 };
  11808 
  11809 /**
  11810  * The **`FileSystemDirectoryHandle`** interface of the File System API provides a handle to a file system directory.
  11811  * Available only in secure contexts.
  11812  *
  11813  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle)
  11814  */
  11815 interface FileSystemDirectoryHandle extends FileSystemHandle {
  11816     readonly kind: "directory";
  11817     /**
  11818      * The **`getDirectoryHandle()`** method of the within the directory handle on which the method is called.
  11819      *
  11820      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/getDirectoryHandle)
  11821      */
  11822     getDirectoryHandle(name: string, options?: FileSystemGetDirectoryOptions): Promise<FileSystemDirectoryHandle>;
  11823     /**
  11824      * The **`getFileHandle()`** method of the directory the method is called.
  11825      *
  11826      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/getFileHandle)
  11827      */
  11828     getFileHandle(name: string, options?: FileSystemGetFileOptions): Promise<FileSystemFileHandle>;
  11829     /**
  11830      * The **`removeEntry()`** method of the directory handle contains a file or directory called the name specified.
  11831      *
  11832      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/removeEntry)
  11833      */
  11834     removeEntry(name: string, options?: FileSystemRemoveOptions): Promise<void>;
  11835     /**
  11836      * The **`resolve()`** method of the directory names from the parent handle to the specified child entry, with the name of the child entry as the last array item.
  11837      *
  11838      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/resolve)
  11839      */
  11840     resolve(possibleDescendant: FileSystemHandle): Promise<string[] | null>;
  11841 }
  11842 
  11843 declare var FileSystemDirectoryHandle: {
  11844     prototype: FileSystemDirectoryHandle;
  11845     new(): FileSystemDirectoryHandle;
  11846 };
  11847 
  11848 /**
  11849  * The `FileSystemDirectoryReader` interface of the File and Directory Entries API lets you access the FileSystemFileEntry-based objects (generally FileSystemFileEntry or FileSystemDirectoryEntry) representing each entry in a directory.
  11850  *
  11851  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryReader)
  11852  */
  11853 interface FileSystemDirectoryReader {
  11854     /**
  11855      * The FileSystemDirectoryReader interface's **`readEntries()`** method retrieves the directory entries within the directory being read and delivers them in an array to a provided callback function.
  11856      *
  11857      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryReader/readEntries)
  11858      */
  11859     readEntries(successCallback: FileSystemEntriesCallback, errorCallback?: ErrorCallback): void;
  11860 }
  11861 
  11862 declare var FileSystemDirectoryReader: {
  11863     prototype: FileSystemDirectoryReader;
  11864     new(): FileSystemDirectoryReader;
  11865 };
  11866 
  11867 /**
  11868  * The **`FileSystemEntry`** interface of the File and Directory Entries API represents a single entry in a file system.
  11869  *
  11870  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry)
  11871  */
  11872 interface FileSystemEntry {
  11873     /**
  11874      * The read-only **`filesystem`** property of the FileSystemEntry interface contains a resides.
  11875      *
  11876      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/filesystem)
  11877      */
  11878     readonly filesystem: FileSystem;
  11879     /**
  11880      * The read-only **`fullPath`** property of the FileSystemEntry interface returns a string specifying the full, absolute path from the file system's root to the file represented by the entry.
  11881      *
  11882      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/fullPath)
  11883      */
  11884     readonly fullPath: string;
  11885     /**
  11886      * The read-only **`isDirectory`** property of the FileSystemEntry interface is `true` if the entry represents a directory (meaning it's a FileSystemDirectoryEntry) and `false` if it's not.
  11887      *
  11888      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/isDirectory)
  11889      */
  11890     readonly isDirectory: boolean;
  11891     /**
  11892      * The read-only **`isFile`** property of the FileSystemEntry interface is `true` if the entry represents a file (meaning it's a FileSystemFileEntry) and `false` if it's not.
  11893      *
  11894      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/isFile)
  11895      */
  11896     readonly isFile: boolean;
  11897     /**
  11898      * The read-only **`name`** property of the FileSystemEntry interface returns a string specifying the entry's name; this is the entry within its parent directory (the last component of the path as indicated by the FileSystemEntry.fullPath property).
  11899      *
  11900      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/name)
  11901      */
  11902     readonly name: string;
  11903     /**
  11904      * The FileSystemEntry interface's method **`getParent()`** obtains a ```js-nolint getParent(successCallback, errorCallback) getParent(successCallback) ``` - `successCallback` - : A function which is called when the parent directory entry has been retrieved.
  11905      *
  11906      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/getParent)
  11907      */
  11908     getParent(successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;
  11909 }
  11910 
  11911 declare var FileSystemEntry: {
  11912     prototype: FileSystemEntry;
  11913     new(): FileSystemEntry;
  11914 };
  11915 
  11916 /**
  11917  * The **`FileSystemFileEntry`** interface of the File and Directory Entries API represents a file in a file system.
  11918  *
  11919  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileEntry)
  11920  */
  11921 interface FileSystemFileEntry extends FileSystemEntry {
  11922     /**
  11923      * The FileSystemFileEntry interface's method **`file()`** returns a the directory entry.
  11924      *
  11925      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileEntry/file)
  11926      */
  11927     file(successCallback: FileCallback, errorCallback?: ErrorCallback): void;
  11928 }
  11929 
  11930 declare var FileSystemFileEntry: {
  11931     prototype: FileSystemFileEntry;
  11932     new(): FileSystemFileEntry;
  11933 };
  11934 
  11935 /**
  11936  * The **`FileSystemFileHandle`** interface of the File System API represents a handle to a file system entry.
  11937  * Available only in secure contexts.
  11938  *
  11939  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle)
  11940  */
  11941 interface FileSystemFileHandle extends FileSystemHandle {
  11942     readonly kind: "file";
  11943     /**
  11944      * The **`createWritable()`** method of the FileSystemFileHandle interface creates a FileSystemWritableFileStream that can be used to write to a file.
  11945      *
  11946      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/createWritable)
  11947      */
  11948     createWritable(options?: FileSystemCreateWritableOptions): Promise<FileSystemWritableFileStream>;
  11949     /**
  11950      * The **`getFile()`** method of the If the file on disk changes or is removed after this method is called, the returned ```js-nolint getFile() ``` None.
  11951      *
  11952      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/getFile)
  11953      */
  11954     getFile(): Promise<File>;
  11955 }
  11956 
  11957 declare var FileSystemFileHandle: {
  11958     prototype: FileSystemFileHandle;
  11959     new(): FileSystemFileHandle;
  11960 };
  11961 
  11962 /**
  11963  * The **`FileSystemHandle`** interface of the File System API is an object which represents a file or directory entry.
  11964  * Available only in secure contexts.
  11965  *
  11966  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle)
  11967  */
  11968 interface FileSystemHandle {
  11969     /**
  11970      * The **`kind`** read-only property of the `'file'` if the associated entry is a file or `'directory'`.
  11971      *
  11972      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/kind)
  11973      */
  11974     readonly kind: FileSystemHandleKind;
  11975     /**
  11976      * The **`name`** read-only property of the handle.
  11977      *
  11978      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/name)
  11979      */
  11980     readonly name: string;
  11981     /**
  11982      * The **`isSameEntry()`** method of the ```js-nolint isSameEntry(fileSystemHandle) ``` - FileSystemHandle - : The `FileSystemHandle` to match against the handle on which the method is invoked.
  11983      *
  11984      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/isSameEntry)
  11985      */
  11986     isSameEntry(other: FileSystemHandle): Promise<boolean>;
  11987 }
  11988 
  11989 declare var FileSystemHandle: {
  11990     prototype: FileSystemHandle;
  11991     new(): FileSystemHandle;
  11992 };
  11993 
  11994 /**
  11995  * The **`FileSystemWritableFileStream`** interface of the File System API is a WritableStream object with additional convenience methods, which operates on a single file on disk.
  11996  * Available only in secure contexts.
  11997  *
  11998  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream)
  11999  */
  12000 interface FileSystemWritableFileStream extends WritableStream {
  12001     /**
  12002      * The **`seek()`** method of the FileSystemWritableFileStream interface updates the current file cursor offset to the position (in bytes) specified when calling the method.
  12003      *
  12004      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/seek)
  12005      */
  12006     seek(position: number): Promise<void>;
  12007     /**
  12008      * The **`truncate()`** method of the FileSystemWritableFileStream interface resizes the file associated with the stream to the specified size in bytes.
  12009      *
  12010      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/truncate)
  12011      */
  12012     truncate(size: number): Promise<void>;
  12013     /**
  12014      * The **`write()`** method of the FileSystemWritableFileStream interface writes content into the file the method is called on, at the current file cursor offset.
  12015      *
  12016      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/write)
  12017      */
  12018     write(data: FileSystemWriteChunkType): Promise<void>;
  12019 }
  12020 
  12021 declare var FileSystemWritableFileStream: {
  12022     prototype: FileSystemWritableFileStream;
  12023     new(): FileSystemWritableFileStream;
  12024 };
  12025 
  12026 /**
  12027  * The **`FocusEvent`** interface represents focus-related events, including Element/focus_event, Element/blur_event, Element/focusin_event, and Element/focusout_event.
  12028  *
  12029  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FocusEvent)
  12030  */
  12031 interface FocusEvent extends UIEvent {
  12032     /**
  12033      * The **`relatedTarget`** read-only property of the FocusEvent interface is the secondary target, depending on the type of event: <table class='no-markdown'> <thead> <tr> <th scope='col'>Event name</th> <th scope='col'><code>target</code></th> <th scope='col'><code>relatedTarget</code></th> </tr> </thead> <tbody> <tr> <td>Element/blur_event</td> <td>The EventTarget losing focus</td> <td>The EventTarget receiving focus (if any).</td> </tr> <tr> <td>Element/focus_event</td> <td>The EventTarget receiving focus</td> <td>The EventTarget losing focus (if any)</td> </tr> <tr> <td>Element/focusin_event</td> <td>The EventTarget receiving focus</td> <td>The EventTarget losing focus (if any)</td> </tr> <tr> <td>Element/focusout_event</td> <td>The EventTarget losing focus</td> <td>The EventTarget receiving focus (if any)</td> </tr> </tbody> </table> Note that many elements can't have focus, which is a common reason for `relatedTarget` to be `null`.
  12034      *
  12035      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FocusEvent/relatedTarget)
  12036      */
  12037     readonly relatedTarget: EventTarget | null;
  12038 }
  12039 
  12040 declare var FocusEvent: {
  12041     prototype: FocusEvent;
  12042     new(type: string, eventInitDict?: FocusEventInit): FocusEvent;
  12043 };
  12044 
  12045 /**
  12046  * The **`FontFace`** interface of the CSS Font Loading API represents a single usable font face.
  12047  *
  12048  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace)
  12049  */
  12050 interface FontFace {
  12051     /**
  12052      * The **`ascentOverride`** property of the FontFace interface returns and sets the ascent metric for the font, the height above the baseline that CSS uses to lay out line boxes in an inline formatting context.
  12053      *
  12054      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/ascentOverride)
  12055      */
  12056     ascentOverride: string;
  12057     /**
  12058      * The **`descentOverride`** property of the FontFace interface returns and sets the value of the @font-face/descent-override descriptor.
  12059      *
  12060      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/descentOverride)
  12061      */
  12062     descentOverride: string;
  12063     /**
  12064      * The **`display`** property of the FontFace interface determines how a font face is displayed based on whether and when it is downloaded and ready to use.
  12065      *
  12066      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/display)
  12067      */
  12068     display: FontDisplay;
  12069     /**
  12070      * The **`FontFace.family`** property allows the author to get or set the font family of a FontFace object.
  12071      *
  12072      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/family)
  12073      */
  12074     family: string;
  12075     /**
  12076      * The **`featureSettings`** property of the FontFace interface retrieves or sets infrequently used font features that are not available from a font's variant properties.
  12077      *
  12078      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/featureSettings)
  12079      */
  12080     featureSettings: string;
  12081     /**
  12082      * The **`lineGapOverride`** property of the FontFace interface returns and sets the value of the @font-face/line-gap-override descriptor.
  12083      *
  12084      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/lineGapOverride)
  12085      */
  12086     lineGapOverride: string;
  12087     /**
  12088      * The **`loaded`** read-only property of the FontFace interface returns a Promise that resolves with the current `FontFace` object when the font specified in the object's constructor is done loading or rejects with a `SyntaxError`.
  12089      *
  12090      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/loaded)
  12091      */
  12092     readonly loaded: Promise<FontFace>;
  12093     /**
  12094      * The **`status`** read-only property of the FontFace interface returns an enumerated value indicating the status of the font, one of `'unloaded'`, `'loading'`, `'loaded'`, or `'error'`.
  12095      *
  12096      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/status)
  12097      */
  12098     readonly status: FontFaceLoadStatus;
  12099     /**
  12100      * The **`stretch`** property of the FontFace interface retrieves or sets how the font stretches.
  12101      *
  12102      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/stretch)
  12103      */
  12104     stretch: string;
  12105     /**
  12106      * The **`style`** property of the FontFace interface retrieves or sets the font's style.
  12107      *
  12108      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/style)
  12109      */
  12110     style: string;
  12111     /**
  12112      * The **`unicodeRange`** property of the FontFace interface retrieves or sets the range of unicode code points encompassing the font.
  12113      *
  12114      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/unicodeRange)
  12115      */
  12116     unicodeRange: string;
  12117     /**
  12118      * The **`weight`** property of the FontFace interface retrieves or sets the weight of the font.
  12119      *
  12120      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/weight)
  12121      */
  12122     weight: string;
  12123     /**
  12124      * The **`load()`** method of the FontFace interface requests and loads a font whose `source` was specified as a URL.
  12125      *
  12126      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/load)
  12127      */
  12128     load(): Promise<FontFace>;
  12129 }
  12130 
  12131 declare var FontFace: {
  12132     prototype: FontFace;
  12133     new(family: string, source: string | BufferSource, descriptors?: FontFaceDescriptors): FontFace;
  12134 };
  12135 
  12136 interface FontFaceSetEventMap {
  12137     "loading": FontFaceSetLoadEvent;
  12138     "loadingdone": FontFaceSetLoadEvent;
  12139     "loadingerror": FontFaceSetLoadEvent;
  12140 }
  12141 
  12142 /**
  12143  * The **`FontFaceSet`** interface of the CSS Font Loading API manages the loading of font-faces and querying of their download status.
  12144  *
  12145  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet)
  12146  */
  12147 interface FontFaceSet extends EventTarget {
  12148     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loading_event) */
  12149     onloading: ((this: FontFaceSet, ev: FontFaceSetLoadEvent) => any) | null;
  12150     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loadingdone_event) */
  12151     onloadingdone: ((this: FontFaceSet, ev: FontFaceSetLoadEvent) => any) | null;
  12152     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loadingerror_event) */
  12153     onloadingerror: ((this: FontFaceSet, ev: FontFaceSetLoadEvent) => any) | null;
  12154     /**
  12155      * The `ready` read-only property of the FontFaceSet interface returns a Promise that resolves to the given FontFaceSet.
  12156      *
  12157      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/ready)
  12158      */
  12159     readonly ready: Promise<FontFaceSet>;
  12160     /**
  12161      * The **`status`** read-only property of the FontFaceSet interface returns the loading state of the fonts in the set.
  12162      *
  12163      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/status)
  12164      */
  12165     readonly status: FontFaceSetLoadStatus;
  12166     /**
  12167      * The `check()` method of the FontFaceSet returns `true` if you can render some text using the given font specification without attempting to use any fonts in this `FontFaceSet` that are not yet fully loaded.
  12168      *
  12169      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/check)
  12170      */
  12171     check(font: string, text?: string): boolean;
  12172     /**
  12173      * The `load()` method of the FontFaceSet forces all the fonts given in parameters to be loaded.
  12174      *
  12175      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/load)
  12176      */
  12177     load(font: string, text?: string): Promise<FontFace[]>;
  12178     forEach(callbackfn: (value: FontFace, key: FontFace, parent: FontFaceSet) => void, thisArg?: any): void;
  12179     addEventListener<K extends keyof FontFaceSetEventMap>(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  12180     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  12181     removeEventListener<K extends keyof FontFaceSetEventMap>(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  12182     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  12183 }
  12184 
  12185 declare var FontFaceSet: {
  12186     prototype: FontFaceSet;
  12187     new(): FontFaceSet;
  12188 };
  12189 
  12190 /**
  12191  * The **`FontFaceSetLoadEvent`** interface of the CSS Font Loading API represents events fired at a FontFaceSet after it starts loading font faces.
  12192  *
  12193  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSetLoadEvent)
  12194  */
  12195 interface FontFaceSetLoadEvent extends Event {
  12196     /**
  12197      * The **`fontfaces`** read-only property of the An array of FontFace instance.
  12198      *
  12199      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSetLoadEvent/fontfaces)
  12200      */
  12201     readonly fontfaces: ReadonlyArray<FontFace>;
  12202 }
  12203 
  12204 declare var FontFaceSetLoadEvent: {
  12205     prototype: FontFaceSetLoadEvent;
  12206     new(type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent;
  12207 };
  12208 
  12209 interface FontFaceSource {
  12210     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fonts) */
  12211     readonly fonts: FontFaceSet;
  12212 }
  12213 
  12214 /**
  12215  * The **`FormData`** interface provides a way to construct a set of key/value pairs representing form fields and their values, which can be sent using the Window/fetch, XMLHttpRequest.send() or navigator.sendBeacon() methods.
  12216  *
  12217  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData)
  12218  */
  12219 interface FormData {
  12220     /**
  12221      * The **`append()`** method of the FormData interface appends a new value onto an existing key inside a `FormData` object, or adds the key if it does not already exist.
  12222      *
  12223      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/append)
  12224      */
  12225     append(name: string, value: string | Blob): void;
  12226     append(name: string, value: string): void;
  12227     append(name: string, blobValue: Blob, filename?: string): void;
  12228     /**
  12229      * The **`delete()`** method of the FormData interface deletes a key and its value(s) from a `FormData` object.
  12230      *
  12231      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/delete)
  12232      */
  12233     delete(name: string): void;
  12234     /**
  12235      * The **`get()`** method of the FormData interface returns the first value associated with a given key from within a `FormData` object.
  12236      *
  12237      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/get)
  12238      */
  12239     get(name: string): FormDataEntryValue | null;
  12240     /**
  12241      * The **`getAll()`** method of the FormData interface returns all the values associated with a given key from within a `FormData` object.
  12242      *
  12243      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/getAll)
  12244      */
  12245     getAll(name: string): FormDataEntryValue[];
  12246     /**
  12247      * The **`has()`** method of the FormData interface returns whether a `FormData` object contains a certain key.
  12248      *
  12249      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/has)
  12250      */
  12251     has(name: string): boolean;
  12252     /**
  12253      * The **`set()`** method of the FormData interface sets a new value for an existing key inside a `FormData` object, or adds the key/value if it does not already exist.
  12254      *
  12255      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/set)
  12256      */
  12257     set(name: string, value: string | Blob): void;
  12258     set(name: string, value: string): void;
  12259     set(name: string, blobValue: Blob, filename?: string): void;
  12260     forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any): void;
  12261 }
  12262 
  12263 declare var FormData: {
  12264     prototype: FormData;
  12265     new(form?: HTMLFormElement, submitter?: HTMLElement | null): FormData;
  12266 };
  12267 
  12268 /**
  12269  * The **`FormDataEvent`** interface represents a `formdata` event — such an event is fired on an HTMLFormElement object after the entry list representing the form's data is constructed.
  12270  *
  12271  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormDataEvent)
  12272  */
  12273 interface FormDataEvent extends Event {
  12274     /**
  12275      * The `formData` read-only property of the FormDataEvent interface contains the FormData object representing the data contained in the form when the event was fired.
  12276      *
  12277      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormDataEvent/formData)
  12278      */
  12279     readonly formData: FormData;
  12280 }
  12281 
  12282 declare var FormDataEvent: {
  12283     prototype: FormDataEvent;
  12284     new(type: string, eventInitDict: FormDataEventInit): FormDataEvent;
  12285 };
  12286 
  12287 /**
  12288  * The **`FragmentDirective`** interface is an object exposed to allow code to check whether or not a browser supports text fragments.
  12289  *
  12290  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FragmentDirective)
  12291  */
  12292 interface FragmentDirective {
  12293 }
  12294 
  12295 declare var FragmentDirective: {
  12296     prototype: FragmentDirective;
  12297     new(): FragmentDirective;
  12298 };
  12299 
  12300 /**
  12301  * The **`GPUError`** interface of the WebGPU API is the base interface for errors surfaced by GPUDevice.popErrorScope and the GPUDevice.uncapturederror_event event.
  12302  * Available only in secure contexts.
  12303  *
  12304  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUError)
  12305  */
  12306 interface GPUError {
  12307     /**
  12308      * The **`message`** read-only property of the A string.
  12309      *
  12310      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUError/message)
  12311      */
  12312     readonly message: string;
  12313 }
  12314 
  12315 /**
  12316  * The `GainNode` interface represents a change in volume.
  12317  *
  12318  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GainNode)
  12319  */
  12320 interface GainNode extends AudioNode {
  12321     /**
  12322      * The `gain` property of the GainNode interface is an a-rate AudioParam representing the amount of gain to apply.
  12323      *
  12324      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GainNode/gain)
  12325      */
  12326     readonly gain: AudioParam;
  12327 }
  12328 
  12329 declare var GainNode: {
  12330     prototype: GainNode;
  12331     new(context: BaseAudioContext, options?: GainOptions): GainNode;
  12332 };
  12333 
  12334 /**
  12335  * The **`Gamepad`** interface of the Gamepad API defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id.
  12336  *
  12337  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad)
  12338  */
  12339 interface Gamepad {
  12340     /**
  12341      * The **`Gamepad.axes`** property of the Gamepad interface returns an array representing the controls with axes present on the device (e.g., analog thumb sticks).
  12342      *
  12343      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/axes)
  12344      */
  12345     readonly axes: ReadonlyArray<number>;
  12346     /**
  12347      * The **`buttons`** property of the Gamepad interface returns an array of GamepadButton objects representing the buttons present on the device.
  12348      *
  12349      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/buttons)
  12350      */
  12351     readonly buttons: ReadonlyArray<GamepadButton>;
  12352     /**
  12353      * The **`Gamepad.connected`** property of the still connected to the system.
  12354      *
  12355      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/connected)
  12356      */
  12357     readonly connected: boolean;
  12358     /**
  12359      * The **`Gamepad.id`** property of the Gamepad interface returns a string containing some information about the controller.
  12360      *
  12361      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/id)
  12362      */
  12363     readonly id: string;
  12364     /**
  12365      * The **`Gamepad.index`** property of the Gamepad interface returns an integer that is auto-incremented to be unique for each device currently connected to the system.
  12366      *
  12367      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/index)
  12368      */
  12369     readonly index: number;
  12370     /**
  12371      * The **`Gamepad.mapping`** property of the remapped the controls on the device to a known layout.
  12372      *
  12373      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/mapping)
  12374      */
  12375     readonly mapping: GamepadMappingType;
  12376     /**
  12377      * The **`Gamepad.timestamp`** property of the representing the last time the data for this gamepad was updated.
  12378      *
  12379      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/timestamp)
  12380      */
  12381     readonly timestamp: DOMHighResTimeStamp;
  12382     /**
  12383      * The **`vibrationActuator`** read-only property of the Gamepad interface returns a GamepadHapticActuator object, which represents haptic feedback hardware available on the controller.
  12384      *
  12385      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/vibrationActuator)
  12386      */
  12387     readonly vibrationActuator: GamepadHapticActuator;
  12388 }
  12389 
  12390 declare var Gamepad: {
  12391     prototype: Gamepad;
  12392     new(): Gamepad;
  12393 };
  12394 
  12395 /**
  12396  * The **`GamepadButton`** interface defines 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.
  12397  *
  12398  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton)
  12399  */
  12400 interface GamepadButton {
  12401     /**
  12402      * The **`GamepadButton.pressed`** property of the the button is currently pressed (`true`) or unpressed (`false`).
  12403      *
  12404      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton/pressed)
  12405      */
  12406     readonly pressed: boolean;
  12407     /**
  12408      * The **`touched`** property of the a button capable of detecting touch is currently touched (`true`) or not touched (`false`).
  12409      *
  12410      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton/touched)
  12411      */
  12412     readonly touched: boolean;
  12413     /**
  12414      * The **`GamepadButton.value`** property of the current state of analog buttons on many modern gamepads, such as the triggers.
  12415      *
  12416      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton/value)
  12417      */
  12418     readonly value: number;
  12419 }
  12420 
  12421 declare var GamepadButton: {
  12422     prototype: GamepadButton;
  12423     new(): GamepadButton;
  12424 };
  12425 
  12426 /**
  12427  * The GamepadEvent interface of the Gamepad API contains references to gamepads connected to the system, which is what the gamepad events Window.gamepadconnected_event and Window.gamepaddisconnected_event are fired in response to.
  12428  *
  12429  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadEvent)
  12430  */
  12431 interface GamepadEvent extends Event {
  12432     /**
  12433      * The **`GamepadEvent.gamepad`** property of the **GamepadEvent interface** returns a Gamepad object, providing access to the associated gamepad data for fired A Gamepad object.
  12434      *
  12435      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadEvent/gamepad)
  12436      */
  12437     readonly gamepad: Gamepad;
  12438 }
  12439 
  12440 declare var GamepadEvent: {
  12441     prototype: GamepadEvent;
  12442     new(type: string, eventInitDict: GamepadEventInit): GamepadEvent;
  12443 };
  12444 
  12445 /**
  12446  * The **`GamepadHapticActuator`** interface of the Gamepad API represents hardware in the controller designed to provide haptic feedback to the user (if available), most commonly vibration hardware.
  12447  *
  12448  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadHapticActuator)
  12449  */
  12450 interface GamepadHapticActuator {
  12451     /**
  12452      * The **`playEffect()`** method of the GamepadHapticActuator interface causes the hardware to play a specific vibration effect.
  12453      *
  12454      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadHapticActuator/playEffect)
  12455      */
  12456     playEffect(type: GamepadHapticEffectType, params?: GamepadEffectParameters): Promise<GamepadHapticsResult>;
  12457     /**
  12458      * The **`reset()`** method of the GamepadHapticActuator interface stops the hardware from playing an active vibration effect.
  12459      *
  12460      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadHapticActuator/reset)
  12461      */
  12462     reset(): Promise<GamepadHapticsResult>;
  12463 }
  12464 
  12465 declare var GamepadHapticActuator: {
  12466     prototype: GamepadHapticActuator;
  12467     new(): GamepadHapticActuator;
  12468 };
  12469 
  12470 interface GenericTransformStream {
  12471     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream/readable) */
  12472     readonly readable: ReadableStream;
  12473     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream/writable) */
  12474     readonly writable: WritableStream;
  12475 }
  12476 
  12477 /**
  12478  * The **`Geolocation`** interface represents an object able to obtain the position of the device programmatically.
  12479  *
  12480  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation)
  12481  */
  12482 interface Geolocation {
  12483     /**
  12484      * The **`clearWatch()`** method of the Geolocation interface is used to unregister location/error monitoring handlers previously installed using Geolocation.watchPosition().
  12485      *
  12486      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation/clearWatch)
  12487      */
  12488     clearWatch(watchId: number): void;
  12489     /**
  12490      * The **`getCurrentPosition()`** method of the Geolocation interface is used to get the current position of the device.
  12491      *
  12492      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation/getCurrentPosition)
  12493      */
  12494     getCurrentPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions): void;
  12495     /**
  12496      * The **`watchPosition()`** method of the Geolocation interface is used to register a handler function that will be called automatically each time the position of the device changes.
  12497      *
  12498      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation/watchPosition)
  12499      */
  12500     watchPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions): number;
  12501 }
  12502 
  12503 declare var Geolocation: {
  12504     prototype: Geolocation;
  12505     new(): Geolocation;
  12506 };
  12507 
  12508 /**
  12509  * The **`GeolocationCoordinates`** interface represents the position and altitude of the device on Earth, as well as the accuracy with which these properties are calculated.
  12510  * Available only in secure contexts.
  12511  *
  12512  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates)
  12513  */
  12514 interface GeolocationCoordinates {
  12515     /**
  12516      * The **`accuracy`** read-only property of the GeolocationCoordinates interface is a strictly positive `double` representing the accuracy, with a 95% confidence level, of the GeolocationCoordinates.latitude and GeolocationCoordinates.longitude properties expressed in meters.
  12517      *
  12518      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/accuracy)
  12519      */
  12520     readonly accuracy: number;
  12521     /**
  12522      * The **`altitude`** read-only property of the GeolocationCoordinates interface is a `double` representing the altitude of the position in meters above the WGS84 ellipsoid (which defines the nominal sea level surface).
  12523      *
  12524      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/altitude)
  12525      */
  12526     readonly altitude: number | null;
  12527     /**
  12528      * The **`altitudeAccuracy`** read-only property of the GeolocationCoordinates interface is a strictly positive `double` representing the accuracy, with a 95% confidence level, of the `altitude` expressed in meters.
  12529      *
  12530      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/altitudeAccuracy)
  12531      */
  12532     readonly altitudeAccuracy: number | null;
  12533     /**
  12534      * The **`heading`** read-only property of the GeolocationCoordinates interface is a `double` representing the direction in which the device is traveling.
  12535      *
  12536      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/heading)
  12537      */
  12538     readonly heading: number | null;
  12539     /**
  12540      * The **`latitude`** read-only property of the GeolocationCoordinates interface is a `double` representing the latitude of the position in decimal degrees.
  12541      *
  12542      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/latitude)
  12543      */
  12544     readonly latitude: number;
  12545     /**
  12546      * The **`longitude`** read-only property of the GeolocationCoordinates interface is a number which represents the longitude of a geographical position, specified in decimal degrees.
  12547      *
  12548      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/longitude)
  12549      */
  12550     readonly longitude: number;
  12551     /**
  12552      * The **`speed`** read-only property of the GeolocationCoordinates interface is a `double` representing the velocity of the device in meters per second.
  12553      *
  12554      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/speed)
  12555      */
  12556     readonly speed: number | null;
  12557     /**
  12558      * The **`toJSON()`** method of the GeolocationCoordinates interface is a Serialization; it returns a JSON representation of the GeolocationCoordinates object.
  12559      *
  12560      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/toJSON)
  12561      */
  12562     toJSON(): any;
  12563 }
  12564 
  12565 declare var GeolocationCoordinates: {
  12566     prototype: GeolocationCoordinates;
  12567     new(): GeolocationCoordinates;
  12568 };
  12569 
  12570 /**
  12571  * The **`GeolocationPosition`** interface represents the position of the concerned device at a given time.
  12572  * Available only in secure contexts.
  12573  *
  12574  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPosition)
  12575  */
  12576 interface GeolocationPosition {
  12577     /**
  12578      * The **`coords`** read-only property of the GeolocationPosition interface returns a GeolocationCoordinates object representing a geographic position.
  12579      *
  12580      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPosition/coords)
  12581      */
  12582     readonly coords: GeolocationCoordinates;
  12583     /**
  12584      * The **`timestamp`** read-only property of the GeolocationPosition interface represents the date and time that the position was acquired by the device.
  12585      *
  12586      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPosition/timestamp)
  12587      */
  12588     readonly timestamp: EpochTimeStamp;
  12589     /**
  12590      * The **`toJSON()`** method of the GeolocationPosition interface is a Serialization; it returns a JSON representation of the GeolocationPosition object.
  12591      *
  12592      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPosition/toJSON)
  12593      */
  12594     toJSON(): any;
  12595 }
  12596 
  12597 declare var GeolocationPosition: {
  12598     prototype: GeolocationPosition;
  12599     new(): GeolocationPosition;
  12600 };
  12601 
  12602 /**
  12603  * The **`GeolocationPositionError`** interface represents the reason of an error occurring when using the geolocating device.
  12604  *
  12605  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPositionError)
  12606  */
  12607 interface GeolocationPositionError {
  12608     /**
  12609      * The **`code`** read-only property of the GeolocationPositionError interface is an `unsigned short` representing the error code.
  12610      *
  12611      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPositionError/code)
  12612      */
  12613     readonly code: number;
  12614     /**
  12615      * The **`message`** read-only property of the GeolocationPositionError interface returns a human-readable string describing the details of the error.
  12616      *
  12617      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPositionError/message)
  12618      */
  12619     readonly message: string;
  12620     readonly PERMISSION_DENIED: 1;
  12621     readonly POSITION_UNAVAILABLE: 2;
  12622     readonly TIMEOUT: 3;
  12623 }
  12624 
  12625 declare var GeolocationPositionError: {
  12626     prototype: GeolocationPositionError;
  12627     new(): GeolocationPositionError;
  12628     readonly PERMISSION_DENIED: 1;
  12629     readonly POSITION_UNAVAILABLE: 2;
  12630     readonly TIMEOUT: 3;
  12631 };
  12632 
  12633 interface GlobalEventHandlersEventMap {
  12634     "abort": UIEvent;
  12635     "animationcancel": AnimationEvent;
  12636     "animationend": AnimationEvent;
  12637     "animationiteration": AnimationEvent;
  12638     "animationstart": AnimationEvent;
  12639     "auxclick": PointerEvent;
  12640     "beforeinput": InputEvent;
  12641     "beforematch": Event;
  12642     "beforetoggle": ToggleEvent;
  12643     "blur": FocusEvent;
  12644     "cancel": Event;
  12645     "canplay": Event;
  12646     "canplaythrough": Event;
  12647     "change": Event;
  12648     "click": PointerEvent;
  12649     "close": Event;
  12650     "compositionend": CompositionEvent;
  12651     "compositionstart": CompositionEvent;
  12652     "compositionupdate": CompositionEvent;
  12653     "contextlost": Event;
  12654     "contextmenu": PointerEvent;
  12655     "contextrestored": Event;
  12656     "copy": ClipboardEvent;
  12657     "cuechange": Event;
  12658     "cut": ClipboardEvent;
  12659     "dblclick": MouseEvent;
  12660     "drag": DragEvent;
  12661     "dragend": DragEvent;
  12662     "dragenter": DragEvent;
  12663     "dragleave": DragEvent;
  12664     "dragover": DragEvent;
  12665     "dragstart": DragEvent;
  12666     "drop": DragEvent;
  12667     "durationchange": Event;
  12668     "emptied": Event;
  12669     "ended": Event;
  12670     "error": ErrorEvent;
  12671     "focus": FocusEvent;
  12672     "focusin": FocusEvent;
  12673     "focusout": FocusEvent;
  12674     "formdata": FormDataEvent;
  12675     "gotpointercapture": PointerEvent;
  12676     "input": Event;
  12677     "invalid": Event;
  12678     "keydown": KeyboardEvent;
  12679     "keypress": KeyboardEvent;
  12680     "keyup": KeyboardEvent;
  12681     "load": Event;
  12682     "loadeddata": Event;
  12683     "loadedmetadata": Event;
  12684     "loadstart": Event;
  12685     "lostpointercapture": PointerEvent;
  12686     "mousedown": MouseEvent;
  12687     "mouseenter": MouseEvent;
  12688     "mouseleave": MouseEvent;
  12689     "mousemove": MouseEvent;
  12690     "mouseout": MouseEvent;
  12691     "mouseover": MouseEvent;
  12692     "mouseup": MouseEvent;
  12693     "paste": ClipboardEvent;
  12694     "pause": Event;
  12695     "play": Event;
  12696     "playing": Event;
  12697     "pointercancel": PointerEvent;
  12698     "pointerdown": PointerEvent;
  12699     "pointerenter": PointerEvent;
  12700     "pointerleave": PointerEvent;
  12701     "pointermove": PointerEvent;
  12702     "pointerout": PointerEvent;
  12703     "pointerover": PointerEvent;
  12704     "pointerrawupdate": Event;
  12705     "pointerup": PointerEvent;
  12706     "progress": ProgressEvent;
  12707     "ratechange": Event;
  12708     "reset": Event;
  12709     "resize": UIEvent;
  12710     "scroll": Event;
  12711     "scrollend": Event;
  12712     "securitypolicyviolation": SecurityPolicyViolationEvent;
  12713     "seeked": Event;
  12714     "seeking": Event;
  12715     "select": Event;
  12716     "selectionchange": Event;
  12717     "selectstart": Event;
  12718     "slotchange": Event;
  12719     "stalled": Event;
  12720     "submit": SubmitEvent;
  12721     "suspend": Event;
  12722     "timeupdate": Event;
  12723     "toggle": ToggleEvent;
  12724     "touchcancel": TouchEvent;
  12725     "touchend": TouchEvent;
  12726     "touchmove": TouchEvent;
  12727     "touchstart": TouchEvent;
  12728     "transitioncancel": TransitionEvent;
  12729     "transitionend": TransitionEvent;
  12730     "transitionrun": TransitionEvent;
  12731     "transitionstart": TransitionEvent;
  12732     "volumechange": Event;
  12733     "waiting": Event;
  12734     "webkitanimationend": Event;
  12735     "webkitanimationiteration": Event;
  12736     "webkitanimationstart": Event;
  12737     "webkittransitionend": Event;
  12738     "wheel": WheelEvent;
  12739 }
  12740 
  12741 interface GlobalEventHandlers {
  12742     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/abort_event) */
  12743     onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
  12744     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationcancel_event) */
  12745     onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
  12746     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationend_event) */
  12747     onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
  12748     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationiteration_event) */
  12749     onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
  12750     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationstart_event) */
  12751     onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
  12752     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/auxclick_event) */
  12753     onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
  12754     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/beforeinput_event) */
  12755     onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
  12756     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/beforematch_event) */
  12757     onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12758     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/beforetoggle_event) */
  12759     onbeforetoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null;
  12760     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/blur_event) */
  12761     onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
  12762     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/cancel_event) */
  12763     oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12764     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplay_event) */
  12765     oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12766     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplaythrough_event) */
  12767     oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12768     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/change_event) */
  12769     onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12770     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/click_event) */
  12771     onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
  12772     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/close_event) */
  12773     onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12774     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/contextlost_event) */
  12775     oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12776     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/contextmenu_event) */
  12777     oncontextmenu: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
  12778     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/contextrestored_event) */
  12779     oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12780     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/copy_event) */
  12781     oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
  12782     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/cuechange_event) */
  12783     oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12784     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/cut_event) */
  12785     oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
  12786     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/dblclick_event) */
  12787     ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
  12788     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drag_event) */
  12789     ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
  12790     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragend_event) */
  12791     ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
  12792     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragenter_event) */
  12793     ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
  12794     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragleave_event) */
  12795     ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
  12796     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragover_event) */
  12797     ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
  12798     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragstart_event) */
  12799     ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
  12800     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drop_event) */
  12801     ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
  12802     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/durationchange_event) */
  12803     ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12804     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/emptied_event) */
  12805     onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12806     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */
  12807     onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12808     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */
  12809     onerror: OnErrorEventHandler;
  12810     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */
  12811     onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
  12812     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */
  12813     onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;
  12814     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/gotpointercapture_event) */
  12815     ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
  12816     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/input_event) */
  12817     oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12818     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/invalid_event) */
  12819     oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12820     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keydown_event) */
  12821     onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
  12822     /**
  12823      * @deprecated
  12824      *
  12825      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keypress_event)
  12826      */
  12827     onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
  12828     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keyup_event) */
  12829     onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
  12830     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/load_event) */
  12831     onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12832     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadeddata_event) */
  12833     onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12834     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadedmetadata_event) */
  12835     onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12836     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadstart_event) */
  12837     onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12838     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/lostpointercapture_event) */
  12839     onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
  12840     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousedown_event) */
  12841     onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
  12842     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseenter_event) */
  12843     onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
  12844     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseleave_event) */
  12845     onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
  12846     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousemove_event) */
  12847     onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
  12848     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseout_event) */
  12849     onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
  12850     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseover_event) */
  12851     onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
  12852     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseup_event) */
  12853     onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
  12854     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/paste_event) */
  12855     onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
  12856     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause_event) */
  12857     onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12858     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play_event) */
  12859     onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12860     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/playing_event) */
  12861     onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12862     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointercancel_event) */
  12863     onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
  12864     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerdown_event) */
  12865     onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
  12866     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerenter_event) */
  12867     onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
  12868     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerleave_event) */
  12869     onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
  12870     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointermove_event) */
  12871     onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
  12872     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerout_event) */
  12873     onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
  12874     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerover_event) */
  12875     onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
  12876     /**
  12877      * Available only in secure contexts.
  12878      *
  12879      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerrawupdate_event)
  12880      */
  12881     onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12882     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerup_event) */
  12883     onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
  12884     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/progress_event) */
  12885     onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
  12886     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ratechange_event) */
  12887     onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12888     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/reset_event) */
  12889     onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12890     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/resize_event) */
  12891     onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
  12892     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scroll_event) */
  12893     onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12894     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scrollend_event) */
  12895     onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12896     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/securitypolicyviolation_event) */
  12897     onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;
  12898     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeked_event) */
  12899     onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12900     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeking_event) */
  12901     onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12902     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/select_event) */
  12903     onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12904     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/selectionchange_event) */
  12905     onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12906     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/selectstart_event) */
  12907     onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12908     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/slotchange_event) */
  12909     onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12910     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/stalled_event) */
  12911     onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12912     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/submit_event) */
  12913     onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
  12914     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/suspend_event) */
  12915     onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12916     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/timeupdate_event) */
  12917     ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12918     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/toggle_event) */
  12919     ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null;
  12920     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchcancel_event) */
  12921     ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
  12922     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchend_event) */
  12923     ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
  12924     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchmove_event) */
  12925     ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
  12926     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchstart_event) */
  12927     ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
  12928     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitioncancel_event) */
  12929     ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
  12930     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionend_event) */
  12931     ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
  12932     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionrun_event) */
  12933     ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
  12934     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionstart_event) */
  12935     ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
  12936     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/volumechange_event) */
  12937     onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12938     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/waiting_event) */
  12939     onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12940     /**
  12941      * @deprecated This is a legacy alias of `onanimationend`.
  12942      *
  12943      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationend_event)
  12944      */
  12945     onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12946     /**
  12947      * @deprecated This is a legacy alias of `onanimationiteration`.
  12948      *
  12949      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationiteration_event)
  12950      */
  12951     onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12952     /**
  12953      * @deprecated This is a legacy alias of `onanimationstart`.
  12954      *
  12955      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationstart_event)
  12956      */
  12957     onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12958     /**
  12959      * @deprecated This is a legacy alias of `ontransitionend`.
  12960      *
  12961      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionend_event)
  12962      */
  12963     onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
  12964     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/wheel_event) */
  12965     onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
  12966     addEventListener<K extends keyof GlobalEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  12967     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  12968     removeEventListener<K extends keyof GlobalEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  12969     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  12970 }
  12971 
  12972 /**
  12973  * The **`HTMLAllCollection`** interface represents a collection of _all_ of the document's elements, accessible by index (like an array) and by the element's `id`.
  12974  *
  12975  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection)
  12976  */
  12977 interface HTMLAllCollection {
  12978     /**
  12979      * The **`HTMLAllCollection.length`** property returns the number of items in this HTMLAllCollection.
  12980      *
  12981      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection/length)
  12982      */
  12983     readonly length: number;
  12984     /**
  12985      * The **`item()`** method of the HTMLAllCollection interface returns the element located at the specified offset into the collection, or the element with the specified value for its `id` or `name` attribute.
  12986      *
  12987      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection/item)
  12988      */
  12989     item(nameOrIndex?: string): HTMLCollection | Element | null;
  12990     /**
  12991      * The **`namedItem()`** method of the HTMLAllCollection interface returns the first Element in the collection whose `id` or `name` attribute matches the specified name, or `null` if no element matches.
  12992      *
  12993      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection/namedItem)
  12994      */
  12995     namedItem(name: string): HTMLCollection | Element | null;
  12996     [index: number]: Element;
  12997 }
  12998 
  12999 declare var HTMLAllCollection: {
  13000     prototype: HTMLAllCollection;
  13001     new(): HTMLAllCollection;
  13002 };
  13003 
  13004 /**
  13005  * The **`HTMLAnchorElement`** interface represents 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.
  13006  *
  13007  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement)
  13008  */
  13009 interface HTMLAnchorElement extends HTMLElement, HTMLHyperlinkElementUtils {
  13010     /** @deprecated */
  13011     charset: string;
  13012     /** @deprecated */
  13013     coords: string;
  13014     /**
  13015      * The **`HTMLAnchorElement.download`** property is a string indicating that the linked resource is intended to be downloaded rather than displayed in the browser.
  13016      *
  13017      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/download)
  13018      */
  13019     download: string;
  13020     /**
  13021      * The **`hreflang`** property of the HTMLAnchorElement interface is a string that is the language of the linked resource.
  13022      *
  13023      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/hreflang)
  13024      */
  13025     hreflang: string;
  13026     /** @deprecated */
  13027     name: string;
  13028     /**
  13029      * The **`ping`** property of the HTMLAnchorElement interface is a space-separated list of URLs.
  13030      *
  13031      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/ping)
  13032      */
  13033     ping: string;
  13034     /**
  13035      * The **`HTMLAnchorElement.referrerPolicy`** property reflect the HTML `referrerpolicy` attribute of the A string; one of the following: - `no-referrer` - : The Referer header will be omitted entirely.
  13036      *
  13037      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/referrerPolicy)
  13038      */
  13039     referrerPolicy: string;
  13040     /**
  13041      * The **`HTMLAnchorElement.rel`** property reflects the `rel` attribute.
  13042      *
  13043      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/rel)
  13044      */
  13045     rel: string;
  13046     /**
  13047      * The **`HTMLAnchorElement.relList`** read-only property reflects the `rel` attribute.
  13048      *
  13049      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/relList)
  13050      */
  13051     get relList(): DOMTokenList;
  13052     set relList(value: string);
  13053     /** @deprecated */
  13054     rev: string;
  13055     /** @deprecated */
  13056     shape: string;
  13057     /**
  13058      * The **`target`** property of the HTMLAnchorElement interface is a string that indicates where to display the linked resource.
  13059      *
  13060      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/target)
  13061      */
  13062     target: string;
  13063     /**
  13064      * The **`text`** property of the HTMLAnchorElement represents the text inside the element.
  13065      *
  13066      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/text)
  13067      */
  13068     text: string;
  13069     /**
  13070      * The **`type`** property of the HTMLAnchorElement interface is a string that indicates the MIME type of the linked resource.
  13071      *
  13072      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/type)
  13073      */
  13074     type: string;
  13075     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13076     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13077     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13078     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13079 }
  13080 
  13081 declare var HTMLAnchorElement: {
  13082     prototype: HTMLAnchorElement;
  13083     new(): HTMLAnchorElement;
  13084 };
  13085 
  13086 /**
  13087  * The **`HTMLAreaElement`** interface 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.
  13088  *
  13089  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement)
  13090  */
  13091 interface HTMLAreaElement extends HTMLElement, HTMLHyperlinkElementUtils {
  13092     /**
  13093      * The **`alt`** property of the HTMLAreaElement interface specifies the text of the hyperlink, defining the textual label for an image map's link.
  13094      *
  13095      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/alt)
  13096      */
  13097     alt: string;
  13098     /**
  13099      * The **`coords`** property of the HTMLAreaElement interface specifies the coordinates of the element's shape as a list of floating-point numbers.
  13100      *
  13101      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/coords)
  13102      */
  13103     coords: string;
  13104     /**
  13105      * The **`download`** property of the HTMLAreaElement interface is a string indicating that the linked resource is intended to be downloaded rather than displayed in the browser.
  13106      *
  13107      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/download)
  13108      */
  13109     download: string;
  13110     /** @deprecated */
  13111     noHref: boolean;
  13112     /**
  13113      * The **`ping`** property of the HTMLAreaElement interface is a space-separated list of URLs.
  13114      *
  13115      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/ping)
  13116      */
  13117     ping: string;
  13118     /**
  13119      * The **`HTMLAreaElement.referrerPolicy`** property reflect the HTML `referrerpolicy` attribute of the resource.
  13120      *
  13121      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/referrerPolicy)
  13122      */
  13123     referrerPolicy: string;
  13124     /**
  13125      * The **`HTMLAreaElement.rel`** property reflects the `rel` attribute.
  13126      *
  13127      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/rel)
  13128      */
  13129     rel: string;
  13130     /**
  13131      * The **`HTMLAreaElement.relList`** read-only property reflects the `rel` attribute.
  13132      *
  13133      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/relList)
  13134      */
  13135     get relList(): DOMTokenList;
  13136     set relList(value: string);
  13137     /**
  13138      * The **`shape`** property of the HTMLAreaElement interface specifies the shape of an image map area.
  13139      *
  13140      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/shape)
  13141      */
  13142     shape: string;
  13143     /**
  13144      * The **`target`** property of the HTMLAreaElement interface is a string that indicates where to display the linked resource.
  13145      *
  13146      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/target)
  13147      */
  13148     target: string;
  13149     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13150     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13151     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13152     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13153 }
  13154 
  13155 declare var HTMLAreaElement: {
  13156     prototype: HTMLAreaElement;
  13157     new(): HTMLAreaElement;
  13158 };
  13159 
  13160 /**
  13161  * The **`HTMLAudioElement`** interface provides access to the properties of audio elements, as well as methods to manipulate them.
  13162  *
  13163  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAudioElement)
  13164  */
  13165 interface HTMLAudioElement extends HTMLMediaElement {
  13166     addEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13167     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13168     removeEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13169     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13170 }
  13171 
  13172 declare var HTMLAudioElement: {
  13173     prototype: HTMLAudioElement;
  13174     new(): HTMLAudioElement;
  13175 };
  13176 
  13177 /**
  13178  * The **`HTMLBRElement`** interface represents an HTML line break element (br).
  13179  *
  13180  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBRElement)
  13181  */
  13182 interface HTMLBRElement extends HTMLElement {
  13183     /** @deprecated */
  13184     clear: string;
  13185     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13186     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13187     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13188     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13189 }
  13190 
  13191 declare var HTMLBRElement: {
  13192     prototype: HTMLBRElement;
  13193     new(): HTMLBRElement;
  13194 };
  13195 
  13196 /**
  13197  * The **`HTMLBaseElement`** interface contains the base URI for a document.
  13198  *
  13199  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBaseElement)
  13200  */
  13201 interface HTMLBaseElement extends HTMLElement {
  13202     /**
  13203      * The **`href`** property of the HTMLBaseElement interface contains a string that is the URL to use as the base for relative URLs.
  13204      *
  13205      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBaseElement/href)
  13206      */
  13207     href: string;
  13208     /**
  13209      * The `target` property of the HTMLBaseElement interface is a string that represents the default target tab to show the resulting output for hyperlinks and form elements.
  13210      *
  13211      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBaseElement/target)
  13212      */
  13213     target: string;
  13214     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13215     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13216     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13217     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13218 }
  13219 
  13220 declare var HTMLBaseElement: {
  13221     prototype: HTMLBaseElement;
  13222     new(): HTMLBaseElement;
  13223 };
  13224 
  13225 interface HTMLBodyElementEventMap extends HTMLElementEventMap, WindowEventHandlersEventMap {
  13226 }
  13227 
  13228 /**
  13229  * The **`HTMLBodyElement`** interface provides special properties (beyond those inherited from the regular HTMLElement interface) for manipulating body elements.
  13230  *
  13231  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement)
  13232  */
  13233 interface HTMLBodyElement extends HTMLElement, WindowEventHandlers {
  13234     /** @deprecated */
  13235     aLink: string;
  13236     /** @deprecated */
  13237     background: string;
  13238     /** @deprecated */
  13239     bgColor: string;
  13240     /** @deprecated */
  13241     link: string;
  13242     /** @deprecated */
  13243     text: string;
  13244     /** @deprecated */
  13245     vLink: string;
  13246     addEventListener<K extends keyof HTMLBodyElementEventMap>(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13247     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13248     removeEventListener<K extends keyof HTMLBodyElementEventMap>(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13249     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13250 }
  13251 
  13252 declare var HTMLBodyElement: {
  13253     prototype: HTMLBodyElement;
  13254     new(): HTMLBodyElement;
  13255 };
  13256 
  13257 /**
  13258  * The **`HTMLButtonElement`** interface provides properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating button elements.
  13259  *
  13260  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement)
  13261  */
  13262 interface HTMLButtonElement extends HTMLElement, PopoverInvokerElement {
  13263     /**
  13264      * The **`HTMLButtonElement.disabled`** property indicates whether the control is disabled, meaning that it does not accept any clicks.
  13265      *
  13266      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/disabled)
  13267      */
  13268     disabled: boolean;
  13269     /**
  13270      * The **`form`** read-only property of the HTMLButtonElement interface returns an HTMLFormElement object that owns this button, or `null` if this button is not owned by any form.
  13271      *
  13272      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/form)
  13273      */
  13274     readonly form: HTMLFormElement | null;
  13275     /**
  13276      * The **`formAction`** property of the HTMLButtonElement interface is the URL of the program that is executed on the server when the form that owns this control is submitted.
  13277      *
  13278      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formAction)
  13279      */
  13280     formAction: string;
  13281     /**
  13282      * The **`formEnctype`** property of the HTMLButtonElement interface is the MIME_type of the content sent to the server when the form is submitted.
  13283      *
  13284      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formEnctype)
  13285      */
  13286     formEnctype: string;
  13287     /**
  13288      * The **`formMethod`** property of the HTMLButtonElement interface is the HTTP method used to submit the form if the button element is the control that submits the form.
  13289      *
  13290      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formMethod)
  13291      */
  13292     formMethod: string;
  13293     /**
  13294      * The **`formNoValidate`** property of the HTMLButtonElement interface is a boolean value indicating if the form will bypass constraint validation when submitted via the button.
  13295      *
  13296      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formNoValidate)
  13297      */
  13298     formNoValidate: boolean;
  13299     /**
  13300      * The **`formTarget`** property of the HTMLButtonElement interface is the tab, window, or iframe where the response of the submitted form is to be displayed.
  13301      *
  13302      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formTarget)
  13303      */
  13304     formTarget: string;
  13305     /**
  13306      * The **`HTMLButtonElement.labels`** read-only property returns a A NodeList containing the `<label>` elements associated with the `<button>` element.
  13307      *
  13308      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/labels)
  13309      */
  13310     readonly labels: NodeListOf<HTMLLabelElement>;
  13311     /**
  13312      * The **`name`** property of the HTMLButtonElement interface indicates the name of the button element or the empty string if the element has no name.
  13313      *
  13314      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/name)
  13315      */
  13316     name: string;
  13317     /**
  13318      * The **`type`** property of the HTMLButtonElement interface is a string that indicates the behavior type of the button element.
  13319      *
  13320      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/type)
  13321      */
  13322     type: "submit" | "reset" | "button";
  13323     /**
  13324      * The **`validationMessage`** read-only property of the HTMLButtonElement interface returns a string representing a localized message that describes the validation constraints that the button control does not satisfy (if any).
  13325      *
  13326      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/validationMessage)
  13327      */
  13328     readonly validationMessage: string;
  13329     /**
  13330      * The **`validity`** read-only property of the HTMLButtonElement interface returns a ValidityState object that represents the validity states this element is in.
  13331      *
  13332      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/validity)
  13333      */
  13334     readonly validity: ValidityState;
  13335     /**
  13336      * The **`value`** property of the HTMLButtonElement interface represents the value of the button element as a string, or the empty string if no value is set.
  13337      *
  13338      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/value)
  13339      */
  13340     value: string;
  13341     /**
  13342      * The **`willValidate`** read-only property of the HTMLButtonElement interface indicates whether the button element is a candidate for constraint validation.
  13343      *
  13344      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/willValidate)
  13345      */
  13346     readonly willValidate: boolean;
  13347     /**
  13348      * The **`checkValidity()`** method of the HTMLButtonElement interface returns a boolean value which indicates if the element meets any constraint validation rules applied to it.
  13349      *
  13350      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/checkValidity)
  13351      */
  13352     checkValidity(): boolean;
  13353     /**
  13354      * The **`reportValidity()`** method of the HTMLButtonElement interface performs the same validity checking steps as the HTMLButtonElement.checkValidity method.
  13355      *
  13356      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/reportValidity)
  13357      */
  13358     reportValidity(): boolean;
  13359     /**
  13360      * The **`setCustomValidity()`** method of the HTMLButtonElement interface sets the custom validity message for the button element.
  13361      *
  13362      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/setCustomValidity)
  13363      */
  13364     setCustomValidity(error: string): void;
  13365     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLButtonElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13366     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13367     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLButtonElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13368     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13369 }
  13370 
  13371 declare var HTMLButtonElement: {
  13372     prototype: HTMLButtonElement;
  13373     new(): HTMLButtonElement;
  13374 };
  13375 
  13376 /**
  13377  * The **`HTMLCanvasElement`** interface provides properties and methods for manipulating the layout and presentation of canvas elements.
  13378  *
  13379  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement)
  13380  */
  13381 interface HTMLCanvasElement extends HTMLElement {
  13382     /**
  13383      * The **`HTMLCanvasElement.height`** property is a positive `integer` reflecting the `height` HTML attribute of the canvas element interpreted in CSS pixels.
  13384      *
  13385      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/height)
  13386      */
  13387     height: number;
  13388     /**
  13389      * The **`HTMLCanvasElement.width`** property is a positive `integer` reflecting the `width` HTML attribute of the canvas element interpreted in CSS pixels.
  13390      *
  13391      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/width)
  13392      */
  13393     width: number;
  13394     /**
  13395      * The **`captureStream()`** method of the HTMLCanvasElement interface returns a MediaStream which includes a CanvasCaptureMediaStreamTrack containing a real-time video capture of the canvas's contents.
  13396      *
  13397      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/captureStream)
  13398      */
  13399     captureStream(frameRequestRate?: number): MediaStream;
  13400     /**
  13401      * The **`HTMLCanvasElement.getContext()`** method returns a drawing context on the canvas, or `null` if the context identifier is not supported, or the canvas has already been set to a different context mode.
  13402      *
  13403      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/getContext)
  13404      */
  13405     getContext(contextId: "2d", options?: CanvasRenderingContext2DSettings): CanvasRenderingContext2D | null;
  13406     getContext(contextId: "bitmaprenderer", options?: ImageBitmapRenderingContextSettings): ImageBitmapRenderingContext | null;
  13407     getContext(contextId: "webgl", options?: WebGLContextAttributes): WebGLRenderingContext | null;
  13408     getContext(contextId: "webgl2", options?: WebGLContextAttributes): WebGL2RenderingContext | null;
  13409     getContext(contextId: string, options?: any): RenderingContext | null;
  13410     /**
  13411      * The **`HTMLCanvasElement.toBlob()`** method creates a Blob object representing the image contained in the canvas.
  13412      *
  13413      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/toBlob)
  13414      */
  13415     toBlob(callback: BlobCallback, type?: string, quality?: number): void;
  13416     /**
  13417      * The **`HTMLCanvasElement.toDataURL()`** method returns a data URL containing a representation of the image in the format specified by the `type` parameter.
  13418      *
  13419      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/toDataURL)
  13420      */
  13421     toDataURL(type?: string, quality?: number): string;
  13422     /**
  13423      * The **`HTMLCanvasElement.transferControlToOffscreen()`** method transfers control to an OffscreenCanvas object, either on the main thread or on a worker.
  13424      *
  13425      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/transferControlToOffscreen)
  13426      */
  13427     transferControlToOffscreen(): OffscreenCanvas;
  13428     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLCanvasElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13429     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13430     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLCanvasElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13431     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13432 }
  13433 
  13434 declare var HTMLCanvasElement: {
  13435     prototype: HTMLCanvasElement;
  13436     new(): HTMLCanvasElement;
  13437 };
  13438 
  13439 /**
  13440  * The **`HTMLCollection`** interface represents a generic collection (array-like object similar to Functions/arguments) of elements (in document order) and offers methods and properties for selecting from the list.
  13441  *
  13442  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection)
  13443  */
  13444 interface HTMLCollectionBase {
  13445     /**
  13446      * The **`HTMLCollection.length`** property returns the number of items in a HTMLCollection.
  13447      *
  13448      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/length)
  13449      */
  13450     readonly length: number;
  13451     /**
  13452      * The HTMLCollection method `item()` returns the element located at the specified offset into the collection.
  13453      *
  13454      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/item)
  13455      */
  13456     item(index: number): Element | null;
  13457     [index: number]: Element;
  13458 }
  13459 
  13460 interface HTMLCollection extends HTMLCollectionBase {
  13461     /**
  13462      * The **`namedItem()`** method of the HTMLCollection interface returns the first Element in the collection whose `id` or `name` attribute match the specified name, or `null` if no element matches.
  13463      *
  13464      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/namedItem)
  13465      */
  13466     namedItem(name: string): Element | null;
  13467 }
  13468 
  13469 declare var HTMLCollection: {
  13470     prototype: HTMLCollection;
  13471     new(): HTMLCollection;
  13472 };
  13473 
  13474 interface HTMLCollectionOf<T extends Element> extends HTMLCollectionBase {
  13475     item(index: number): T | null;
  13476     namedItem(name: string): T | null;
  13477     [index: number]: T;
  13478 }
  13479 
  13480 /**
  13481  * The **`HTMLDListElement`** interface provides special properties (beyond those of the regular HTMLElement interface it also has available to it by inheritance) for manipulating definition list (dl) elements.
  13482  *
  13483  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDListElement)
  13484  */
  13485 interface HTMLDListElement extends HTMLElement {
  13486     /** @deprecated */
  13487     compact: boolean;
  13488     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13489     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13490     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13491     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13492 }
  13493 
  13494 declare var HTMLDListElement: {
  13495     prototype: HTMLDListElement;
  13496     new(): HTMLDListElement;
  13497 };
  13498 
  13499 /**
  13500  * The **`HTMLDataElement`** interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating data elements.
  13501  *
  13502  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDataElement)
  13503  */
  13504 interface HTMLDataElement extends HTMLElement {
  13505     /**
  13506      * The **`value`** property of the HTMLDataElement interface returns a string reflecting the `value` HTML attribute.
  13507      *
  13508      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDataElement/value)
  13509      */
  13510     value: string;
  13511     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13512     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13513     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13514     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13515 }
  13516 
  13517 declare var HTMLDataElement: {
  13518     prototype: HTMLDataElement;
  13519     new(): HTMLDataElement;
  13520 };
  13521 
  13522 /**
  13523  * The **`HTMLDataListElement`** interface provides special properties (beyond the HTMLElement object interface it also has available to it by inheritance) to manipulate datalist elements and their content.
  13524  *
  13525  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDataListElement)
  13526  */
  13527 interface HTMLDataListElement extends HTMLElement {
  13528     /**
  13529      * The **`options`** read-only property of the HTMLDataListElement interface returns an HTMLCollection of HTMLOptionElement elements contained in a datalist.
  13530      *
  13531      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDataListElement/options)
  13532      */
  13533     readonly options: HTMLCollectionOf<HTMLOptionElement>;
  13534     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13535     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13536     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13537     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13538 }
  13539 
  13540 declare var HTMLDataListElement: {
  13541     prototype: HTMLDataListElement;
  13542     new(): HTMLDataListElement;
  13543 };
  13544 
  13545 /**
  13546  * The **`HTMLDetailsElement`** interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating details elements.
  13547  *
  13548  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement)
  13549  */
  13550 interface HTMLDetailsElement extends HTMLElement {
  13551     /**
  13552      * The **`name`** property of the HTMLDetailsElement interface reflects the `name` attribute of details elements.
  13553      *
  13554      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement/name)
  13555      */
  13556     name: string;
  13557     /**
  13558      * The **`open`** property of the `open` HTML attribute, indicating whether the details's contents (not counting the summary) is to be shown to the user.
  13559      *
  13560      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement/open)
  13561      */
  13562     open: boolean;
  13563     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDetailsElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13564     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13565     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDetailsElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13566     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13567 }
  13568 
  13569 declare var HTMLDetailsElement: {
  13570     prototype: HTMLDetailsElement;
  13571     new(): HTMLDetailsElement;
  13572 };
  13573 
  13574 /**
  13575  * The **`HTMLDialogElement`** interface provides methods to manipulate dialog elements.
  13576  *
  13577  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement)
  13578  */
  13579 interface HTMLDialogElement extends HTMLElement {
  13580     /**
  13581      * The **`open`** property of the `open` HTML attribute, indicating whether the dialog is available for interaction.
  13582      *
  13583      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/open)
  13584      */
  13585     open: boolean;
  13586     /**
  13587      * The **`returnValue`** property of the HTMLDialogElement interface is a string representing the return value for a dialog element when it's closed.
  13588      *
  13589      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/returnValue)
  13590      */
  13591     returnValue: string;
  13592     /**
  13593      * The **`close()`** method of the HTMLDialogElement interface closes the dialog.
  13594      *
  13595      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/close)
  13596      */
  13597     close(returnValue?: string): void;
  13598     /**
  13599      * The **`requestClose()`** method of the HTMLDialogElement interface requests to close the dialog.
  13600      *
  13601      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/requestClose)
  13602      */
  13603     requestClose(returnValue?: string): void;
  13604     /**
  13605      * The **`show()`** method of the HTMLDialogElement interface displays the dialog modelessly, i.e., still allowing interaction with content outside of the dialog.
  13606      *
  13607      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/show)
  13608      */
  13609     show(): void;
  13610     /**
  13611      * The **`showModal()`** method of the of any other dialogs that might be present.
  13612      *
  13613      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/showModal)
  13614      */
  13615     showModal(): void;
  13616     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDialogElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13617     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13618     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDialogElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13619     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13620 }
  13621 
  13622 declare var HTMLDialogElement: {
  13623     prototype: HTMLDialogElement;
  13624     new(): HTMLDialogElement;
  13625 };
  13626 
  13627 /** @deprecated */
  13628 interface HTMLDirectoryElement extends HTMLElement {
  13629     /** @deprecated */
  13630     compact: boolean;
  13631     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDirectoryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13632     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13633     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDirectoryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13634     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13635 }
  13636 
  13637 /** @deprecated */
  13638 declare var HTMLDirectoryElement: {
  13639     prototype: HTMLDirectoryElement;
  13640     new(): HTMLDirectoryElement;
  13641 };
  13642 
  13643 /**
  13644  * The **`HTMLDivElement`** interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating div elements.
  13645  *
  13646  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDivElement)
  13647  */
  13648 interface HTMLDivElement extends HTMLElement {
  13649     /** @deprecated */
  13650     align: string;
  13651     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13652     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13653     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13654     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13655 }
  13656 
  13657 declare var HTMLDivElement: {
  13658     prototype: HTMLDivElement;
  13659     new(): HTMLDivElement;
  13660 };
  13661 
  13662 interface HTMLDocument extends Document {
  13663     addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: HTMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13664     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13665     removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: HTMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13666     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13667 }
  13668 
  13669 declare var HTMLDocument: {
  13670     prototype: HTMLDocument;
  13671     new(): HTMLDocument;
  13672 };
  13673 
  13674 interface HTMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {
  13675 }
  13676 
  13677 /**
  13678  * The **`HTMLElement`** interface represents any HTML element.
  13679  *
  13680  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement)
  13681  */
  13682 interface HTMLElement extends Element, ElementCSSInlineStyle, ElementContentEditable, GlobalEventHandlers, HTMLOrSVGElement {
  13683     /**
  13684      * The **`HTMLElement.accessKey`** property sets the keystroke which a user can press to jump to a given element.
  13685      *
  13686      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/accessKey)
  13687      */
  13688     accessKey: string;
  13689     /**
  13690      * The **`HTMLElement.accessKeyLabel`** read-only property returns a string containing the element's browser-assigned access key (if any); otherwise it returns an empty string.
  13691      *
  13692      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/accessKeyLabel)
  13693      */
  13694     readonly accessKeyLabel: string;
  13695     /**
  13696      * The **`autocapitalize`** property of the HTMLElement interface represents the element's capitalization behavior for user input.
  13697      *
  13698      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/autocapitalize)
  13699      */
  13700     autocapitalize: string;
  13701     /**
  13702      * The **`autocorrect`** property of the HTMLElement interface controls whether or not autocorrection of editable text is enabled for spelling and/or punctuation errors.
  13703      *
  13704      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/autocorrect)
  13705      */
  13706     autocorrect: boolean;
  13707     /**
  13708      * The **`HTMLElement.dir`** property indicates the text writing directionality of the content of the current element.
  13709      *
  13710      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dir)
  13711      */
  13712     dir: string;
  13713     /**
  13714      * The **`draggable`** property of the HTMLElement interface gets and sets a Boolean primitive indicating if the element is draggable.
  13715      *
  13716      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/draggable)
  13717      */
  13718     draggable: boolean;
  13719     /**
  13720      * The HTMLElement property **`hidden`** reflects the value of the element's `hidden` attribute.
  13721      *
  13722      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidden)
  13723      */
  13724     hidden: boolean;
  13725     /**
  13726      * The HTMLElement property **`inert`** reflects the value of the element's `inert` attribute.
  13727      *
  13728      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/inert)
  13729      */
  13730     inert: boolean;
  13731     /**
  13732      * The **`innerText`** property of the HTMLElement interface represents the rendered text content of a node and its descendants.
  13733      *
  13734      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/innerText)
  13735      */
  13736     innerText: string;
  13737     /**
  13738      * The **`lang`** property of the HTMLElement interface indicates the base language of an element's attribute values and text content, in the form of a MISSING: RFC(5646, 'BCP 47 language identifier tag')].
  13739      *
  13740      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/lang)
  13741      */
  13742     lang: string;
  13743     /**
  13744      * The **`offsetHeight`** read-only property of the HTMLElement interface returns the height of an element, including vertical padding and borders, as an integer.
  13745      *
  13746      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetHeight)
  13747      */
  13748     readonly offsetHeight: number;
  13749     /**
  13750      * The **`offsetLeft`** read-only property of the HTMLElement interface returns the number of pixels that the _upper left corner_ of the current element is offset to the left within the HTMLElement.offsetParent node.
  13751      *
  13752      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetLeft)
  13753      */
  13754     readonly offsetLeft: number;
  13755     /**
  13756      * The **`HTMLElement.offsetParent`** read-only property returns a reference to the element which is the closest (nearest in the containment hierarchy) positioned ancestor element.
  13757      *
  13758      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetParent)
  13759      */
  13760     readonly offsetParent: Element | null;
  13761     /**
  13762      * The **`offsetTop`** read-only property of the HTMLElement interface returns the distance from the outer border of the current element (including its margin) to the top padding edge of the HTMLelement.offsetParent, the _closest positioned_ ancestor element.
  13763      *
  13764      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetTop)
  13765      */
  13766     readonly offsetTop: number;
  13767     /**
  13768      * The **`offsetWidth`** read-only property of the HTMLElement interface returns the layout width of an element as an integer.
  13769      *
  13770      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetWidth)
  13771      */
  13772     readonly offsetWidth: number;
  13773     /**
  13774      * The **`outerText`** property of the HTMLElement interface returns the same value as HTMLElement.innerText.
  13775      *
  13776      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/outerText)
  13777      */
  13778     outerText: string;
  13779     /**
  13780      * The **`popover`** property of the HTMLElement interface gets and sets an element's popover state via JavaScript (`'auto'`, `'hint'`, or `'manual'`), and can be used for feature detection.
  13781      *
  13782      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/popover)
  13783      */
  13784     popover: string | null;
  13785     /**
  13786      * The **`spellcheck`** property of the HTMLElement interface represents a boolean value that controls the spell-checking hint.
  13787      *
  13788      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/spellcheck)
  13789      */
  13790     spellcheck: boolean;
  13791     /**
  13792      * The **`HTMLElement.title`** property represents the title of the element: the text usually displayed in a 'tooltip' popup when the mouse is over the node.
  13793      *
  13794      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/title)
  13795      */
  13796     title: string;
  13797     /**
  13798      * The **`translate`** property of the HTMLElement interface indicates whether an element's attribute values and the values of its Text node children are to be translated when the page is localized, or whether to leave them unchanged.
  13799      *
  13800      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/translate)
  13801      */
  13802     translate: boolean;
  13803     /**
  13804      * The **`writingSuggestions`** property of the HTMLElement interface is a string indicating if browser-provided writing suggestions should be enabled under the scope of the element or not.
  13805      *
  13806      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/writingSuggestions)
  13807      */
  13808     writingSuggestions: string;
  13809     /**
  13810      * The **`HTMLElement.attachInternals()`** method returns an ElementInternals object.
  13811      *
  13812      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals)
  13813      */
  13814     attachInternals(): ElementInternals;
  13815     /**
  13816      * The **`HTMLElement.click()`** method simulates a mouse click on an element.
  13817      *
  13818      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/click)
  13819      */
  13820     click(): void;
  13821     /**
  13822      * The **`hidePopover()`** method of the HTMLElement interface hides a popover element (i.e., one that has a valid `popover` attribute) by removing it from the top layer and styling it with `display: none`.
  13823      *
  13824      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover)
  13825      */
  13826     hidePopover(): void;
  13827     /**
  13828      * The **`showPopover()`** method of the HTMLElement interface shows a Popover_API element (i.e., one that has a valid `popover` attribute) by adding it to the top layer.
  13829      *
  13830      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover)
  13831      */
  13832     showPopover(): void;
  13833     /**
  13834      * The **`togglePopover()`** method of the HTMLElement interface toggles a Popover_API element (i.e., one that has a valid `popover` attribute) between the hidden and showing states.
  13835      *
  13836      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover)
  13837      */
  13838     togglePopover(options?: boolean): boolean;
  13839     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13840     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13841     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13842     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13843 }
  13844 
  13845 declare var HTMLElement: {
  13846     prototype: HTMLElement;
  13847     new(): HTMLElement;
  13848 };
  13849 
  13850 /**
  13851  * The **`HTMLEmbedElement`** interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating embed elements.
  13852  *
  13853  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLEmbedElement)
  13854  */
  13855 interface HTMLEmbedElement extends HTMLElement {
  13856     /** @deprecated */
  13857     align: string;
  13858     /**
  13859      * The **`height`** property of the HTMLEmbedElement interface returns a string that reflects the `height` attribute of the embed element, indicating the displayed height of the resource in CSS pixels.
  13860      *
  13861      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLEmbedElement/height)
  13862      */
  13863     height: string;
  13864     /** @deprecated */
  13865     name: string;
  13866     /**
  13867      * The **`src`** property of the HTMLEmbedElement interface returns a string that indicates the URL of the resource being embedded.
  13868      *
  13869      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLEmbedElement/src)
  13870      */
  13871     src: string;
  13872     /**
  13873      * The **`type`** property of the HTMLEmbedElement interface returns a string that reflects the `type` attribute of the embed element, indicating the MIME type of the resource.
  13874      *
  13875      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLEmbedElement/type)
  13876      */
  13877     type: string;
  13878     /**
  13879      * The **`width`** property of the HTMLEmbedElement interface returns a string that reflects the `width` attribute of the embed element, indicating the displayed width of the resource in CSS pixels.
  13880      *
  13881      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLEmbedElement/width)
  13882      */
  13883     width: string;
  13884     /**
  13885      * The **`getSVGDocument()`** method of the HTMLEmbedElement interface returns the Document object of the embedded SVG.
  13886      *
  13887      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLEmbedElement/getSVGDocument)
  13888      */
  13889     getSVGDocument(): Document | null;
  13890     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13891     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13892     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13893     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13894 }
  13895 
  13896 declare var HTMLEmbedElement: {
  13897     prototype: HTMLEmbedElement;
  13898     new(): HTMLEmbedElement;
  13899 };
  13900 
  13901 /**
  13902  * The **`HTMLFieldSetElement`** interface 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.
  13903  *
  13904  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement)
  13905  */
  13906 interface HTMLFieldSetElement extends HTMLElement {
  13907     /**
  13908      * The **`disabled`** property of the HTMLFieldSetElement interface is a boolean value that reflects the fieldset element's `disabled` attribute, which indicates whether the control is disabled.
  13909      *
  13910      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/disabled)
  13911      */
  13912     disabled: boolean;
  13913     /**
  13914      * The **`elements`** read-only property of the HTMLFieldSetElement interface returns an HTMLCollection object containing all form control elements (button, fieldset, input, object, output, select, and textarea) that are descendants of this field set.
  13915      *
  13916      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/elements)
  13917      */
  13918     readonly elements: HTMLCollection;
  13919     /**
  13920      * The **`form`** read-only property of the HTMLFieldSetElement interface returns an HTMLFormElement object that owns this fieldset, or `null` if this fieldset is not owned by any form.
  13921      *
  13922      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/form)
  13923      */
  13924     readonly form: HTMLFormElement | null;
  13925     /**
  13926      * The **`name`** property of the HTMLFieldSetElement interface indicates the name of the fieldset element.
  13927      *
  13928      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/name)
  13929      */
  13930     name: string;
  13931     /**
  13932      * The **`type`** read-only property of the HTMLFieldSetElement interface returns the string `'fieldset'`.
  13933      *
  13934      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/type)
  13935      */
  13936     readonly type: string;
  13937     /**
  13938      * The **`validationMessage`** read-only property of the HTMLFieldSetElement interface returns a string representing a localized message that describes the validation constraints that the fieldset control does not satisfy (if any).
  13939      *
  13940      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/validationMessage)
  13941      */
  13942     readonly validationMessage: string;
  13943     /**
  13944      * The **`validity`** read-only property of the HTMLFieldSetElement interface returns a ValidityState object that represents the validity states this element is in.
  13945      *
  13946      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/validity)
  13947      */
  13948     readonly validity: ValidityState;
  13949     /**
  13950      * The **`willValidate`** read-only property of the HTMLFieldSetElement interface returns `false`, because fieldset elements are not candidates for constraint validation.
  13951      *
  13952      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/willValidate)
  13953      */
  13954     readonly willValidate: boolean;
  13955     /**
  13956      * The **`checkValidity()`** method of the HTMLFieldSetElement interface checks if the element is valid, but always returns true because fieldset elements are never candidates for constraint validation.
  13957      *
  13958      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/checkValidity)
  13959      */
  13960     checkValidity(): boolean;
  13961     /**
  13962      * The **`reportValidity()`** method of the HTMLFieldSetElement interface performs the same validity checking steps as the HTMLFieldSetElement.checkValidity method.
  13963      *
  13964      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/reportValidity)
  13965      */
  13966     reportValidity(): boolean;
  13967     /**
  13968      * The **`setCustomValidity()`** method of the HTMLFieldSetElement interface sets the custom validity message for the fieldset element.
  13969      *
  13970      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/setCustomValidity)
  13971      */
  13972     setCustomValidity(error: string): void;
  13973     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFieldSetElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  13974     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  13975     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFieldSetElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  13976     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  13977 }
  13978 
  13979 declare var HTMLFieldSetElement: {
  13980     prototype: HTMLFieldSetElement;
  13981     new(): HTMLFieldSetElement;
  13982 };
  13983 
  13984 /**
  13985  * Implements the document object model (DOM) representation of the font element.
  13986  * @deprecated
  13987  *
  13988  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFontElement)
  13989  */
  13990 interface HTMLFontElement extends HTMLElement {
  13991     /**
  13992      * The obsolete **`HTMLFontElement.color`** property is a string that reflects the `color` HTML attribute, containing either a named color or a color specified in the hexadecimal #RRGGBB format.
  13993      * @deprecated
  13994      *
  13995      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFontElement/color)
  13996      */
  13997     color: string;
  13998     /**
  13999      * The obsolete **`HTMLFontElement.face`** property is a string that reflects the `face` HTML attribute, containing a comma-separated list of one or more font names.
  14000      * @deprecated
  14001      *
  14002      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFontElement/face)
  14003      */
  14004     face: string;
  14005     /**
  14006      * The obsolete **`HTMLFontElement.size`** property is a string that reflects the `size` HTML attribute.
  14007      * @deprecated
  14008      *
  14009      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFontElement/size)
  14010      */
  14011     size: string;
  14012     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  14013     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  14014     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  14015     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  14016 }
  14017 
  14018 /** @deprecated */
  14019 declare var HTMLFontElement: {
  14020     prototype: HTMLFontElement;
  14021     new(): HTMLFontElement;
  14022 };
  14023 
  14024 /**
  14025  * The **`HTMLFormControlsCollection`** interface represents a _collection_ of HTML _form control elements_, returned by the HTMLFormElement interface's HTMLFormElement.elements property.
  14026  *
  14027  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormControlsCollection)
  14028  */
  14029 interface HTMLFormControlsCollection extends HTMLCollectionBase {
  14030     /**
  14031      * The **`HTMLFormControlsCollection.namedItem()`** method returns the RadioNodeList or the Element in the collection whose `name` or `id` match the specified name, or `null` if no node matches.
  14032      *
  14033      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormControlsCollection/namedItem)
  14034      */
  14035     namedItem(name: string): RadioNodeList | Element | null;
  14036 }
  14037 
  14038 declare var HTMLFormControlsCollection: {
  14039     prototype: HTMLFormControlsCollection;
  14040     new(): HTMLFormControlsCollection;
  14041 };
  14042 
  14043 /**
  14044  * The **`HTMLFormElement`** interface represents a form element in the DOM.
  14045  *
  14046  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement)
  14047  */
  14048 interface HTMLFormElement extends HTMLElement {
  14049     /**
  14050      * The **`HTMLFormElement.acceptCharset`** property represents the character encoding for the given form element.
  14051      *
  14052      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/acceptCharset)
  14053      */
  14054     acceptCharset: string;
  14055     /**
  14056      * The **`HTMLFormElement.action`** property represents the action of the form element.
  14057      *
  14058      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/action)
  14059      */
  14060     action: string;
  14061     /**
  14062      * The **`autocomplete`** property of the HTMLFormElement interface indicates whether the value of the form's controls can be automatically completed by the browser.
  14063      *
  14064      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/autocomplete)
  14065      */
  14066     autocomplete: AutoFillBase;
  14067     /**
  14068      * The HTMLFormElement property **`elements`** returns an the form element.
  14069      *
  14070      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/elements)
  14071      */
  14072     readonly elements: HTMLFormControlsCollection;
  14073     /**
  14074      * The **`HTMLFormElement.encoding`** property is an alternative name for the HTMLFormElement.enctype element on the DOM HTMLFormElement object.
  14075      *
  14076      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/encoding)
  14077      */
  14078     encoding: string;
  14079     /**
  14080      * The **`HTMLFormElement.enctype`** property is the MIME_type of content that is used to submit the form to the server.
  14081      *
  14082      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/enctype)
  14083      */
  14084     enctype: string;
  14085     /**
  14086      * The **`HTMLFormElement.length`** read-only property returns the number of controls in the form element.
  14087      *
  14088      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/length)
  14089      */
  14090     readonly length: number;
  14091     /**
  14092      * The **`HTMLFormElement.method`** property represents the Unless explicitly specified, the default method is 'get'.
  14093      *
  14094      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/method)
  14095      */
  14096     method: string;
  14097     /**
  14098      * The **`HTMLFormElement.name`** property represents the name of the current form element as a string.
  14099      *
  14100      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/name)
  14101      */
  14102     name: string;
  14103     /**
  14104      * The **`noValidate`** property of the HTMLFormElement interface is a boolean value indicating if the form will bypass constraint validation when submitted.
  14105      *
  14106      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/noValidate)
  14107      */
  14108     noValidate: boolean;
  14109     /**
  14110      * The **`rel`** property of the HTMLFormElement interface reflects the `rel` attribute.
  14111      *
  14112      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/rel)
  14113      */
  14114     rel: string;
  14115     /**
  14116      * The **`relList`** read-only property of the HTMLFormElement interface reflects the `rel` attribute.
  14117      *
  14118      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/relList)
  14119      */
  14120     get relList(): DOMTokenList;
  14121     set relList(value: string);
  14122     /**
  14123      * The **`target`** property of the HTMLFormElement interface represents the target of the form's action (i.e., the frame in which to render its output).
  14124      *
  14125      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/target)
  14126      */
  14127     target: string;
  14128     /**
  14129      * The **`checkValidity()`** method of the HTMLFormElement interface returns a boolean value which indicates if all associated controls meet any constraint validation rules applied to them.
  14130      *
  14131      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/checkValidity)
  14132      */
  14133     checkValidity(): boolean;
  14134     /**
  14135      * The **`reportValidity()`** method of the HTMLFormElement interface performs the same validity checking steps as the HTMLFormElement.checkValidity method.
  14136      *
  14137      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/reportValidity)
  14138      */
  14139     reportValidity(): boolean;
  14140     /**
  14141      * The HTMLFormElement method **`requestSubmit()`** requests that the form be submitted using a specific submit button.
  14142      *
  14143      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/requestSubmit)
  14144      */
  14145     requestSubmit(submitter?: HTMLElement | null): void;
  14146     /**
  14147      * The **`HTMLFormElement.reset()`** method restores a form element's default values.
  14148      *
  14149      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/reset)
  14150      */
  14151     reset(): void;
  14152     /**
  14153      * The **`HTMLFormElement.submit()`** method submits a given This method is similar, but not identical to, activating a form's submit - No HTMLFormElement/submit_event event is raised.
  14154      *
  14155      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/submit)
  14156      */
  14157     submit(): void;
  14158     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFormElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  14159     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  14160     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFormElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  14161     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  14162     [index: number]: Element;
  14163     [name: string]: any;
  14164 }
  14165 
  14166 declare var HTMLFormElement: {
  14167     prototype: HTMLFormElement;
  14168     new(): HTMLFormElement;
  14169 };
  14170 
  14171 /** @deprecated */
  14172 interface HTMLFrameElement extends HTMLElement {
  14173     /** @deprecated */
  14174     readonly contentDocument: Document | null;
  14175     /** @deprecated */
  14176     readonly contentWindow: WindowProxy | null;
  14177     /** @deprecated */
  14178     frameBorder: string;
  14179     /** @deprecated */
  14180     longDesc: string;
  14181     /** @deprecated */
  14182     marginHeight: string;
  14183     /** @deprecated */
  14184     marginWidth: string;
  14185     /** @deprecated */
  14186     name: string;
  14187     /** @deprecated */
  14188     noResize: boolean;
  14189     /** @deprecated */
  14190     scrolling: string;
  14191     /** @deprecated */
  14192     src: string;
  14193     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  14194     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  14195     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  14196     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  14197 }
  14198 
  14199 /** @deprecated */
  14200 declare var HTMLFrameElement: {
  14201     prototype: HTMLFrameElement;
  14202     new(): HTMLFrameElement;
  14203 };
  14204 
  14205 interface HTMLFrameSetElementEventMap extends HTMLElementEventMap, WindowEventHandlersEventMap {
  14206 }
  14207 
  14208 /**
  14209  * The **`HTMLFrameSetElement`** interface provides special properties (beyond those of the regular HTMLElement interface they also inherit) for manipulating frameset elements.
  14210  * @deprecated
  14211  *
  14212  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameSetElement)
  14213  */
  14214 interface HTMLFrameSetElement extends HTMLElement, WindowEventHandlers {
  14215     /** @deprecated */
  14216     cols: string;
  14217     /** @deprecated */
  14218     rows: string;
  14219     addEventListener<K extends keyof HTMLFrameSetElementEventMap>(type: K, listener: (this: HTMLFrameSetElement, ev: HTMLFrameSetElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  14220     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  14221     removeEventListener<K extends keyof HTMLFrameSetElementEventMap>(type: K, listener: (this: HTMLFrameSetElement, ev: HTMLFrameSetElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  14222     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  14223 }
  14224 
  14225 /** @deprecated */
  14226 declare var HTMLFrameSetElement: {
  14227     prototype: HTMLFrameSetElement;
  14228     new(): HTMLFrameSetElement;
  14229 };
  14230 
  14231 /**
  14232  * The **`HTMLHRElement`** interface provides special properties (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating hr elements.
  14233  *
  14234  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHRElement)
  14235  */
  14236 interface HTMLHRElement extends HTMLElement {
  14237     /** @deprecated */
  14238     align: string;
  14239     /** @deprecated */
  14240     color: string;
  14241     /** @deprecated */
  14242     noShade: boolean;
  14243     /** @deprecated */
  14244     size: string;
  14245     /** @deprecated */
  14246     width: string;
  14247     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  14248     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  14249     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  14250     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  14251 }
  14252 
  14253 declare var HTMLHRElement: {
  14254     prototype: HTMLHRElement;
  14255     new(): HTMLHRElement;
  14256 };
  14257 
  14258 /**
  14259  * The **`HTMLHeadElement`** interface contains the descriptive information, or metadata, for a document.
  14260  *
  14261  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHeadElement)
  14262  */
  14263 interface HTMLHeadElement extends HTMLElement {
  14264     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  14265     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  14266     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  14267     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  14268 }
  14269 
  14270 declare var HTMLHeadElement: {
  14271     prototype: HTMLHeadElement;
  14272     new(): HTMLHeadElement;
  14273 };
  14274 
  14275 /**
  14276  * The **`HTMLHeadingElement`** interface represents the different heading elements, `<h1>` through `<h6>`.
  14277  *
  14278  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHeadingElement)
  14279  */
  14280 interface HTMLHeadingElement extends HTMLElement {
  14281     /** @deprecated */
  14282     align: string;
  14283     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadingElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  14284     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  14285     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadingElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  14286     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  14287 }
  14288 
  14289 declare var HTMLHeadingElement: {
  14290     prototype: HTMLHeadingElement;
  14291     new(): HTMLHeadingElement;
  14292 };
  14293 
  14294 /**
  14295  * The **`HTMLHtmlElement`** interface serves as the root node for a given HTML document.
  14296  *
  14297  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHtmlElement)
  14298  */
  14299 interface HTMLHtmlElement extends HTMLElement {
  14300     /**
  14301      * Returns version information about the document type definition (DTD) of a document.
  14302      * @deprecated
  14303      *
  14304      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHtmlElement/version)
  14305      */
  14306     version: string;
  14307     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHtmlElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  14308     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  14309     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHtmlElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  14310     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  14311 }
  14312 
  14313 declare var HTMLHtmlElement: {
  14314     prototype: HTMLHtmlElement;
  14315     new(): HTMLHtmlElement;
  14316 };
  14317 
  14318 interface HTMLHyperlinkElementUtils {
  14319     /**
  14320      * Returns the hyperlink's URL's fragment (includes leading "#" if non-empty).
  14321      *
  14322      * Can be set, to change the URL's fragment (ignores leading "#").
  14323      *
  14324      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/hash)
  14325      */
  14326     hash: string;
  14327     /**
  14328      * Returns the hyperlink's URL's host and port (if different from the default port for the scheme).
  14329      *
  14330      * Can be set, to change the URL's host and port.
  14331      *
  14332      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/host)
  14333      */
  14334     host: string;
  14335     /**
  14336      * Returns the hyperlink's URL's host.
  14337      *
  14338      * Can be set, to change the URL's host.
  14339      *
  14340      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/hostname)
  14341      */
  14342     hostname: string;
  14343     /**
  14344      * Returns the hyperlink's URL.
  14345      *
  14346      * Can be set, to change the URL.
  14347      *
  14348      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/href)
  14349      */
  14350     href: string;
  14351     toString(): string;
  14352     /**
  14353      * Returns the hyperlink's URL's origin.
  14354      *
  14355      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/origin)
  14356      */
  14357     readonly origin: string;
  14358     /**
  14359      * Returns the hyperlink's URL's password.
  14360      *
  14361      * Can be set, to change the URL's password.
  14362      *
  14363      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/password)
  14364      */
  14365     password: string;
  14366     /**
  14367      * Returns the hyperlink's URL's path.
  14368      *
  14369      * Can be set, to change the URL's path.
  14370      *
  14371      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/pathname)
  14372      */
  14373     pathname: string;
  14374     /**
  14375      * Returns the hyperlink's URL's port.
  14376      *
  14377      * Can be set, to change the URL's port.
  14378      *
  14379      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/port)
  14380      */
  14381     port: string;
  14382     /**
  14383      * Returns the hyperlink's URL's scheme.
  14384      *
  14385      * Can be set, to change the URL's scheme.
  14386      *
  14387      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/protocol)
  14388      */
  14389     protocol: string;
  14390     /**
  14391      * Returns the hyperlink's URL's query (includes leading "?" if non-empty).
  14392      *
  14393      * Can be set, to change the URL's query (ignores leading "?").
  14394      *
  14395      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/search)
  14396      */
  14397     search: string;
  14398     /**
  14399      * Returns the hyperlink's URL's username.
  14400      *
  14401      * Can be set, to change the URL's username.
  14402      *
  14403      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/username)
  14404      */
  14405     username: string;
  14406 }
  14407 
  14408 /**
  14409  * The **`HTMLIFrameElement`** interface 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.
  14410  *
  14411  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement)
  14412  */
  14413 interface HTMLIFrameElement extends HTMLElement {
  14414     /** @deprecated */
  14415     align: string;
  14416     /**
  14417      * The **`allow`** property of the HTMLIFrameElement interface indicates the Permissions Policy specified for this `<iframe>` element.
  14418      *
  14419      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/allow)
  14420      */
  14421     allow: string;
  14422     /**
  14423      * The **`allowFullscreen`** property of the HTMLIFrameElement interface is a boolean value that reflects the `allowfullscreen` attribute of the iframe element, indicating whether to allow the iframe's contents to use Element.requestFullscreen.
  14424      *
  14425      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/allowFullscreen)
  14426      */
  14427     allowFullscreen: boolean;
  14428     /**
  14429      * If the iframe and the iframe's parent document are Same Origin, returns a `Document` (that is, the active document in the inline frame's nested browsing context), else returns `null`.
  14430      *
  14431      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/contentDocument)
  14432      */
  14433     readonly contentDocument: Document | null;
  14434     /**
  14435      * The **`contentWindow`** property returns the Window object of an HTMLIFrameElement.
  14436      *
  14437      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/contentWindow)
  14438      */
  14439     readonly contentWindow: WindowProxy | null;
  14440     /** @deprecated */
  14441     frameBorder: string;
  14442     /**
  14443      * The **`height`** property of the HTMLIFrameElement interface returns a string that reflects the `height` attribute of the iframe element, indicating the height of the frame in CSS pixels.
  14444      *
  14445      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/height)
  14446      */
  14447     height: string;
  14448     /**
  14449      * The **`loading`** property of the HTMLIFrameElement interface is a string that provides a hint to the user agent indicating whether the iframe should be loaded immediately on page load, or only when it is needed.
  14450      *
  14451      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/loading)
  14452      */
  14453     loading: "eager" | "lazy";
  14454     /** @deprecated */
  14455     longDesc: string;
  14456     /** @deprecated */
  14457     marginHeight: string;
  14458     /** @deprecated */
  14459     marginWidth: string;
  14460     /**
  14461      * The **`name`** property of the HTMLIFrameElement interface is a string value that reflects the `name` attribute of the iframe element, indicating the specific name of the `<iframe>` element.
  14462      *
  14463      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/name)
  14464      */
  14465     name: string;
  14466     /**
  14467      * The **`HTMLIFrameElement.referrerPolicy`** property reflects the HTML `referrerpolicy` attribute of the resource.
  14468      *
  14469      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/referrerPolicy)
  14470      */
  14471     referrerPolicy: ReferrerPolicy;
  14472     /**
  14473      * The **`sandbox`** read-only property of the HTMLIFrameElement interface returns a DOMTokenList indicating extra restrictions on the behavior of the nested content.
  14474      *
  14475      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/sandbox)
  14476      */
  14477     get sandbox(): DOMTokenList;
  14478     set sandbox(value: string);
  14479     /** @deprecated */
  14480     scrolling: string;
  14481     /**
  14482      * The **`HTMLIFrameElement.src`** A string that reflects the `src` HTML attribute, containing the address of the content to be embedded.
  14483      *
  14484      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/src)
  14485      */
  14486     src: string;
  14487     /**
  14488      * The **`srcdoc`** property of the HTMLIFrameElement specifies the content of the page.
  14489      *
  14490      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/srcdoc)
  14491      */
  14492     srcdoc: string;
  14493     /**
  14494      * The **`width`** property of the HTMLIFrameElement interface returns a string that reflects the `width` attribute of the iframe element, indicating the width of the frame in CSS pixels.
  14495      *
  14496      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/width)
  14497      */
  14498     width: string;
  14499     /**
  14500      * The **`getSVGDocument()`** method of the HTMLIFrameElement interface returns the Document object of the embedded SVG.
  14501      *
  14502      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/getSVGDocument)
  14503      */
  14504     getSVGDocument(): Document | null;
  14505     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLIFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  14506     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  14507     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLIFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  14508     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  14509 }
  14510 
  14511 declare var HTMLIFrameElement: {
  14512     prototype: HTMLIFrameElement;
  14513     new(): HTMLIFrameElement;
  14514 };
  14515 
  14516 /**
  14517  * The **`HTMLImageElement`** interface represents an HTML img element, providing the properties and methods used to manipulate image elements.
  14518  *
  14519  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement)
  14520  */
  14521 interface HTMLImageElement extends HTMLElement {
  14522     /**
  14523      * The _obsolete_ **`align`** property of the HTMLImageElement interface is a string which indicates how to position the image relative to its container.
  14524      * @deprecated
  14525      *
  14526      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/align)
  14527      */
  14528     align: string;
  14529     /**
  14530      * The HTMLImageElement property **`alt`** provides fallback (alternate) text to display when the image specified by the img element is not loaded.
  14531      *
  14532      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/alt)
  14533      */
  14534     alt: string;
  14535     /**
  14536      * The obsolete HTMLImageElement property **`border`** specifies the number of pixels thick the border surrounding the image should be.
  14537      * @deprecated
  14538      *
  14539      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/border)
  14540      */
  14541     border: string;
  14542     /**
  14543      * The read-only HTMLImageElement interface's **`complete`** attribute is a Boolean value which indicates whether or not the image has completely loaded.
  14544      *
  14545      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/complete)
  14546      */
  14547     readonly complete: boolean;
  14548     /**
  14549      * The HTMLImageElement interface's **`crossOrigin`** attribute is a string which specifies the Cross-Origin Resource Sharing (CORS) setting to use when retrieving the image.
  14550      *
  14551      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/crossOrigin)
  14552      */
  14553     crossOrigin: string | null;
  14554     /**
  14555      * The read-only HTMLImageElement property **`currentSrc`** indicates the URL of the image which is currently presented in the img element it represents.
  14556      *
  14557      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/currentSrc)
  14558      */
  14559     readonly currentSrc: string;
  14560     /**
  14561      * The **`decoding`** property of the HTMLImageElement interface provides a hint to the browser as to how it should decode the image.
  14562      *
  14563      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/decoding)
  14564      */
  14565     decoding: "async" | "sync" | "auto";
  14566     /**
  14567      * The **`fetchPriority`** property of the HTMLImageElement interface represents a hint to the browser indicating how it should prioritize fetching a particular image relative to other images.
  14568      *
  14569      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/fetchPriority)
  14570      */
  14571     fetchPriority: "high" | "low" | "auto";
  14572     /**
  14573      * The **`height`** property of the drawn, in CSS pixel if the image is being drawn or rendered to any visual medium such as the screen or a printer; otherwise, it's the natural, pixel density corrected height of the image.
  14574      *
  14575      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/height)
  14576      */
  14577     height: number;
  14578     /**
  14579      * The _obsolete_ **`hspace`** property of the space to leave empty on the left and right sides of the img element when laying out the page.
  14580      * @deprecated
  14581      *
  14582      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/hspace)
  14583      */
  14584     hspace: number;
  14585     /**
  14586      * The HTMLImageElement property **`isMap`** is a Boolean value which indicates that the image is to be used by a server-side image map.
  14587      *
  14588      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/isMap)
  14589      */
  14590     isMap: boolean;
  14591     /**
  14592      * The HTMLImageElement property **`loading`** is a string whose value provides a hint to the user agent on how to handle the loading of the image which is currently outside the window's visual viewport.
  14593      *
  14594      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/loading)
  14595      */
  14596     loading: "eager" | "lazy";
  14597     /**
  14598      * The _deprecated_ property **`longDesc`** on the HTMLImageElement interface specifies the URL of a text or HTML file which contains a long-form description of the image.
  14599      * @deprecated
  14600      *
  14601      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/longDesc)
  14602      */
  14603     longDesc: string;
  14604     /** @deprecated */
  14605     lowsrc: string;
  14606     /**
  14607      * The HTMLImageElement interface's _deprecated_ **`name`** property specifies a name for the element.
  14608      * @deprecated
  14609      *
  14610      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/name)
  14611      */
  14612     name: string;
  14613     /**
  14614      * The HTMLImageElement interface's **`naturalHeight`** property is a read-only value which returns the intrinsic (natural), density-corrected height of the image in This is the height the image is if drawn with nothing constraining its height; if you don't specify a height for the image, or place the image inside a container that either limits or expressly specifies the image height, it will be rendered this tall.
  14615      *
  14616      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/naturalHeight)
  14617      */
  14618     readonly naturalHeight: number;
  14619     /**
  14620      * The HTMLImageElement interface's read-only **`naturalWidth`** property returns the intrinsic (natural), density-corrected width of the image in CSS pixel.
  14621      *
  14622      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/naturalWidth)
  14623      */
  14624     readonly naturalWidth: number;
  14625     /**
  14626      * The **`HTMLImageElement.referrerPolicy`** property reflects the HTML `referrerpolicy` attribute of the resource.
  14627      *
  14628      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/referrerPolicy)
  14629      */
  14630     referrerPolicy: string;
  14631     /**
  14632      * The HTMLImageElement property **`sizes`** allows you to specify the layout width of the image for each of a list of media conditions.
  14633      *
  14634      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/sizes)
  14635      */
  14636     sizes: string;
  14637     /**
  14638      * The HTMLImageElement property **`src`**, which reflects the HTML `src` attribute, specifies the image to display in the img element.
  14639      *
  14640      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/src)
  14641      */
  14642     src: string;
  14643     /**
  14644      * The HTMLImageElement property **`srcset`** is a string which identifies one or more **image candidate strings**, separated using commas (`,`) each specifying image resources to use under given circumstances.
  14645      *
  14646      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/srcset)
  14647      */
  14648     srcset: string;
  14649     /**
  14650      * The **`useMap`** property on the providing the name of the client-side image map to apply to the image.
  14651      *
  14652      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/useMap)
  14653      */
  14654     useMap: string;
  14655     /**
  14656      * The _obsolete_ **`vspace`** property of the to leave empty on the top and bottom of the img element when laying out the page.
  14657      * @deprecated
  14658      *
  14659      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/vspace)
  14660      */
  14661     vspace: number;
  14662     /**
  14663      * The **`width`** property of the drawn in CSS pixel if it's being drawn or rendered to any visual medium such as a screen or printer.
  14664      *
  14665      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/width)
  14666      */
  14667     width: number;
  14668     /**
  14669      * The read-only HTMLImageElement property **`x`** indicates the x-coordinate of the origin.
  14670      *
  14671      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/x)
  14672      */
  14673     readonly x: number;
  14674     /**
  14675      * The read-only HTMLImageElement property **`y`** indicates the y-coordinate of the origin.
  14676      *
  14677      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/y)
  14678      */
  14679     readonly y: number;
  14680     /**
  14681      * The **`decode()`** method of the HTMLImageElement interface returns a it to the DOM.
  14682      *
  14683      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/decode)
  14684      */
  14685     decode(): Promise<void>;
  14686     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLImageElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  14687     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  14688     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLImageElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  14689     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  14690 }
  14691 
  14692 declare var HTMLImageElement: {
  14693     prototype: HTMLImageElement;
  14694     new(): HTMLImageElement;
  14695 };
  14696 
  14697 /**
  14698  * The **`HTMLInputElement`** interface provides special properties and methods for manipulating the options, layout, and presentation of input elements.
  14699  *
  14700  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement)
  14701  */
  14702 interface HTMLInputElement extends HTMLElement, PopoverInvokerElement {
  14703     /**
  14704      * The **`accept`** property of the HTMLInputElement interface reflects the input element's `accept` attribute, generally a comma-separated list of unique file type specifiers providing a hint for the expected file type for an `<input>` of type `file`.
  14705      *
  14706      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/accept)
  14707      */
  14708     accept: string;
  14709     /** @deprecated */
  14710     align: string;
  14711     /**
  14712      * The **`alt`** property of the HTMLInputElement interface defines the textual label for the button for users and user agents who cannot use the image.
  14713      *
  14714      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/alt)
  14715      */
  14716     alt: string;
  14717     /**
  14718      * The **`autocomplete`** property of the HTMLInputElement interface indicates whether the value of the control can be automatically completed by the browser.
  14719      *
  14720      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/autocomplete)
  14721      */
  14722     autocomplete: AutoFill;
  14723     /**
  14724      * The **`capture`** property of the HTMLInputElement interface reflects the input element's `capture` attribute.
  14725      *
  14726      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/capture)
  14727      */
  14728     capture: string;
  14729     /**
  14730      * The **`checked`** property of the HTMLInputElement interface specifies the current checkedness of the element; that is, whether the form control is checked or not.
  14731      *
  14732      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/checked)
  14733      */
  14734     checked: boolean;
  14735     /**
  14736      * The **`defaultChecked`** property of the HTMLInputElement interface specifies the default checkedness state of the element.
  14737      *
  14738      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/defaultChecked)
  14739      */
  14740     defaultChecked: boolean;
  14741     /**
  14742      * The **`defaultValue`** property of the HTMLInputElement interface indicates the original (or default) value of the input element.
  14743      *
  14744      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/defaultValue)
  14745      */
  14746     defaultValue: string;
  14747     /**
  14748      * The **`dirName`** property of the HTMLInputElement interface is the directionality of the element and enables the submission of that value.
  14749      *
  14750      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/dirName)
  14751      */
  14752     dirName: string;
  14753     /**
  14754      * The **`HTMLInputElement.disabled`** property is a boolean value that reflects the `disabled` HTML attribute, which indicates whether the control is disabled.
  14755      *
  14756      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/disabled)
  14757      */
  14758     disabled: boolean;
  14759     /**
  14760      * The **`HTMLInputElement.files`** property allows you to access the FileList selected with the `<input type='file'>` element.
  14761      *
  14762      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/files)
  14763      */
  14764     files: FileList | null;
  14765     /**
  14766      * The **`form`** read-only property of the HTMLInputElement interface returns an HTMLFormElement object that owns this input, or `null` if this input is not owned by any form.
  14767      *
  14768      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/form)
  14769      */
  14770     readonly form: HTMLFormElement | null;
  14771     /**
  14772      * The **`formAction`** property of the HTMLInputElement interface is the URL of the program that is executed on the server when the form that owns this control is submitted.
  14773      *
  14774      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formAction)
  14775      */
  14776     formAction: string;
  14777     /**
  14778      * The **`formEnctype`** property of the HTMLInputElement interface is the MIME_type of the content sent to the server when the `<input>` with the `formEnctype` is the method of form submission.
  14779      *
  14780      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formEnctype)
  14781      */
  14782     formEnctype: string;
  14783     /**
  14784      * The **`formMethod`** property of the HTMLInputElement interface is the HTTP method used to submit the form if the input element is the control that submits the form.
  14785      *
  14786      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formMethod)
  14787      */
  14788     formMethod: string;
  14789     /**
  14790      * The **`formNoValidate`** property of the HTMLInputElement interface is a boolean value indicating if the form will bypass constraint validation when submitted via the input.
  14791      *
  14792      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formNoValidate)
  14793      */
  14794     formNoValidate: boolean;
  14795     /**
  14796      * The **`formTarget`** property of the HTMLInputElement interface is the tab, window, or iframe where the response of the submitted form is to be displayed.
  14797      *
  14798      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formTarget)
  14799      */
  14800     formTarget: string;
  14801     /**
  14802      * The **`height`** property of the HTMLInputElement interface specifies the height of a control.
  14803      *
  14804      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/height)
  14805      */
  14806     height: number;
  14807     /**
  14808      * The **`indeterminate`** property of the HTMLInputElement interface returns a boolean value that indicates whether the checkbox is in the _indeterminate_ state.
  14809      *
  14810      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/indeterminate)
  14811      */
  14812     indeterminate: boolean;
  14813     /**
  14814      * The **`HTMLInputElement.labels`** read-only property returns a type `hidden`, the property returns `null`.
  14815      *
  14816      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/labels)
  14817      */
  14818     readonly labels: NodeListOf<HTMLLabelElement> | null;
  14819     /**
  14820      * The **`list`** read-only property of the HTMLInputElement interface returns the HTMLDataListElement pointed to by the `list` attribute of the element, or `null` if the `list` attribute is not defined or the `list` attribute's value is not associated with any `<datalist>` in the same tree.
  14821      *
  14822      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/list)
  14823      */
  14824     readonly list: HTMLDataListElement | null;
  14825     /**
  14826      * The **`max`** property of the HTMLInputElement interface reflects the input element's `max` attribute, which generally defines the maximum valid value for a numeric or date-time input.
  14827      *
  14828      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/max)
  14829      */
  14830     max: string;
  14831     /**
  14832      * The **`maxLength`** property of the HTMLInputElement interface indicates the maximum number of characters (in UTF-16 code units) allowed to be entered for the value of the input element, and the maximum number of characters allowed for the value to be valid.
  14833      *
  14834      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/maxLength)
  14835      */
  14836     maxLength: number;
  14837     /**
  14838      * The **`min`** property of the HTMLInputElement interface reflects the input element's `min` attribute, which generally defines the minimum valid value for a numeric or date-time input.
  14839      *
  14840      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/min)
  14841      */
  14842     min: string;
  14843     /**
  14844      * The **`minLength`** property of the HTMLInputElement interface indicates the minimum number of characters (in UTF-16 code units) required for the value of the input element to be valid.
  14845      *
  14846      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/minLength)
  14847      */
  14848     minLength: number;
  14849     /**
  14850      * The **`HTMLInputElement.multiple`** property indicates if an input can have more than one value.
  14851      *
  14852      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/multiple)
  14853      */
  14854     multiple: boolean;
  14855     /**
  14856      * The **`name`** property of the HTMLInputElement interface indicates the name of the input element.
  14857      *
  14858      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/name)
  14859      */
  14860     name: string;
  14861     /**
  14862      * The **`pattern`** property of the HTMLInputElement interface represents a regular expression a non-null input value should match.
  14863      *
  14864      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/pattern)
  14865      */
  14866     pattern: string;
  14867     /**
  14868      * The **`placeholder`** property of the HTMLInputElement interface represents a hint to the user of what can be entered in the control.
  14869      *
  14870      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/placeholder)
  14871      */
  14872     placeholder: string;
  14873     /**
  14874      * The **`readOnly`** property of the HTMLInputElement interface indicates that the user cannot modify the value of the input.
  14875      *
  14876      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/readOnly)
  14877      */
  14878     readOnly: boolean;
  14879     /**
  14880      * The **`required`** property of the HTMLInputElement interface specifies that the user must fill in a value before submitting a form.
  14881      *
  14882      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/required)
  14883      */
  14884     required: boolean;
  14885     /**
  14886      * The **`selectionDirection`** property of the HTMLInputElement interface is a string that indicates the direction in which the user is selecting the text.
  14887      *
  14888      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/selectionDirection)
  14889      */
  14890     selectionDirection: "forward" | "backward" | "none" | null;
  14891     /**
  14892      * The **`selectionEnd`** property of the HTMLInputElement interface is a number that represents the end index of the selected text.
  14893      *
  14894      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/selectionEnd)
  14895      */
  14896     selectionEnd: number | null;
  14897     /**
  14898      * The **`selectionStart`** property of the HTMLInputElement interface is a number that represents the beginning index of the selected text.
  14899      *
  14900      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/selectionStart)
  14901      */
  14902     selectionStart: number | null;
  14903     /**
  14904      * The **`size`** property of the HTMLInputElement interface defines the number of visible characters displayed.
  14905      *
  14906      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/size)
  14907      */
  14908     size: number;
  14909     /**
  14910      * The **`src`** property of the HTMLInputElement interface specifies the source of an image to display as the graphical submit button.
  14911      *
  14912      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/src)
  14913      */
  14914     src: string;
  14915     /**
  14916      * The **`step`** property of the HTMLInputElement interface indicates the step by which numeric or date-time input elements can change.
  14917      *
  14918      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/step)
  14919      */
  14920     step: string;
  14921     /**
  14922      * The **`type`** property of the HTMLInputElement interface indicates the kind of data allowed in the input element, for example a number, a date, or an email.
  14923      *
  14924      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/type)
  14925      */
  14926     type: string;
  14927     /** @deprecated */
  14928     useMap: string;
  14929     /**
  14930      * The **`validationMessage`** read-only property of the HTMLInputElement interface returns a string representing a localized message that describes the validation constraints that the input control does not satisfy (if any).
  14931      *
  14932      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/validationMessage)
  14933      */
  14934     readonly validationMessage: string;
  14935     /**
  14936      * The **`validity`** read-only property of the HTMLInputElement interface returns a ValidityState object that represents the validity states this element is in.
  14937      *
  14938      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/validity)
  14939      */
  14940     readonly validity: ValidityState;
  14941     /**
  14942      * The **`value`** property of the HTMLInputElement interface represents the current value of the input element as a string.
  14943      *
  14944      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/value)
  14945      */
  14946     value: string;
  14947     /**
  14948      * The **`valueAsDate`** property of the HTMLInputElement interface represents the current value of the input element as a Date, or `null` if conversion is not possible.
  14949      *
  14950      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/valueAsDate)
  14951      */
  14952     valueAsDate: Date | null;
  14953     /**
  14954      * The **`valueAsNumber`** property of the HTMLInputElement interface represents the current value of the input element as a number or `NaN` if converting to a numeric value is not possible.
  14955      *
  14956      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/valueAsNumber)
  14957      */
  14958     valueAsNumber: number;
  14959     /**
  14960      * The read-only **`webkitEntries`** property of the HTMLInputElement interface contains an array of file system entries (as objects based on FileSystemEntry) representing files and/or directories selected by the user using an input element of type `file`, but only if that selection was made using drag-and-drop: selecting a file in the dialog will leave the property empty.
  14961      *
  14962      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/webkitEntries)
  14963      */
  14964     readonly webkitEntries: ReadonlyArray<FileSystemEntry>;
  14965     /**
  14966      * The **`HTMLInputElement.webkitdirectory`** is a property that reflects the `webkitdirectory` HTML attribute and indicates that the input element should let the user select directories instead of files.
  14967      *
  14968      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/webkitdirectory)
  14969      */
  14970     webkitdirectory: boolean;
  14971     /**
  14972      * The **`width`** property of the HTMLInputElement interface specifies the width of a control.
  14973      *
  14974      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/width)
  14975      */
  14976     width: number;
  14977     /**
  14978      * The **`willValidate`** read-only property of the HTMLInputElement interface indicates whether the input element is a candidate for constraint validation.
  14979      *
  14980      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/willValidate)
  14981      */
  14982     readonly willValidate: boolean;
  14983     /**
  14984      * The **`checkValidity()`** method of the HTMLInputElement interface returns a boolean value which indicates if the element meets any constraint validation rules applied to it.
  14985      *
  14986      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/checkValidity)
  14987      */
  14988     checkValidity(): boolean;
  14989     /**
  14990      * The **`reportValidity()`** method of the HTMLInputElement interface performs the same validity checking steps as the HTMLInputElement.checkValidity method.
  14991      *
  14992      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/reportValidity)
  14993      */
  14994     reportValidity(): boolean;
  14995     /**
  14996      * The **`HTMLInputElement.select()`** method selects all the text in a textarea element or in an input element that includes a text field.
  14997      *
  14998      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/select)
  14999      */
  15000     select(): void;
  15001     /**
  15002      * The **`HTMLInputElement.setCustomValidity()`** method sets a custom validity message for the element.
  15003      *
  15004      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setCustomValidity)
  15005      */
  15006     setCustomValidity(error: string): void;
  15007     /**
  15008      * The **`HTMLInputElement.setRangeText()`** method replaces a range of text in an input or textarea element with a new string.
  15009      *
  15010      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setRangeText)
  15011      */
  15012     setRangeText(replacement: string): void;
  15013     setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;
  15014     /**
  15015      * The **`HTMLInputElement.setSelectionRange()`** method sets the start and end positions of the current text selection in an input or textarea element.
  15016      *
  15017      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setSelectionRange)
  15018      */
  15019     setSelectionRange(start: number | null, end: number | null, direction?: "forward" | "backward" | "none"): void;
  15020     /**
  15021      * The **`HTMLInputElement.showPicker()`** method displays the browser picker for an `input` element.
  15022      *
  15023      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/showPicker)
  15024      */
  15025     showPicker(): void;
  15026     /**
  15027      * The **`HTMLInputElement.stepDown()`** method decrements the value of a numeric type of input element by the value of the `step` attribute or up to `n` multiples of the step attribute if a number is passed as the parameter.
  15028      *
  15029      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/stepDown)
  15030      */
  15031     stepDown(n?: number): void;
  15032     /**
  15033      * The **`HTMLInputElement.stepUp()`** method increments the value of a numeric type of input element by the value of the `step` attribute, or the default `step` value if the step attribute is not explicitly set.
  15034      *
  15035      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/stepUp)
  15036      */
  15037     stepUp(n?: number): void;
  15038     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLInputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15039     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15040     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLInputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15041     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15042 }
  15043 
  15044 declare var HTMLInputElement: {
  15045     prototype: HTMLInputElement;
  15046     new(): HTMLInputElement;
  15047 };
  15048 
  15049 /**
  15050  * The **`HTMLLIElement`** interface exposes specific properties and methods (beyond those defined by regular HTMLElement interface it also has available to it by inheritance) for manipulating list elements.
  15051  *
  15052  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLIElement)
  15053  */
  15054 interface HTMLLIElement extends HTMLElement {
  15055     /** @deprecated */
  15056     type: string;
  15057     /**
  15058      * The **`value`** property of the HTMLLIElement interface indicates the ordinal position of the _list element_ inside a given ol.
  15059      *
  15060      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLIElement/value)
  15061      */
  15062     value: number;
  15063     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLIElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15064     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15065     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLIElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15066     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15067 }
  15068 
  15069 declare var HTMLLIElement: {
  15070     prototype: HTMLLIElement;
  15071     new(): HTMLLIElement;
  15072 };
  15073 
  15074 /**
  15075  * The **`HTMLLabelElement`** interface gives access to properties specific to label elements.
  15076  *
  15077  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLabelElement)
  15078  */
  15079 interface HTMLLabelElement extends HTMLElement {
  15080     /**
  15081      * The read-only **`HTMLLabelElement.control`** property returns a reference to the control (in the form of an object of type HTMLElement or one of its derivatives) with which the label element is associated, or `null` if the label isn't associated with a control.
  15082      *
  15083      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLabelElement/control)
  15084      */
  15085     readonly control: HTMLElement | null;
  15086     /**
  15087      * The **`form`** read-only property of the HTMLLabelElement interface returns an HTMLFormElement object that owns the HTMLLabelElement.control associated with this label, or `null` if this label is not associated with a control owned by a form.
  15088      *
  15089      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLabelElement/form)
  15090      */
  15091     readonly form: HTMLFormElement | null;
  15092     /**
  15093      * The **`HTMLLabelElement.htmlFor`** property reflects the value of the `for` content property.
  15094      *
  15095      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLabelElement/htmlFor)
  15096      */
  15097     htmlFor: string;
  15098     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLabelElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15099     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15100     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLabelElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15101     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15102 }
  15103 
  15104 declare var HTMLLabelElement: {
  15105     prototype: HTMLLabelElement;
  15106     new(): HTMLLabelElement;
  15107 };
  15108 
  15109 /**
  15110  * The **`HTMLLegendElement`** is an interface allowing to access properties of the legend elements.
  15111  *
  15112  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLegendElement)
  15113  */
  15114 interface HTMLLegendElement extends HTMLElement {
  15115     /** @deprecated */
  15116     align: string;
  15117     /**
  15118      * The **`form`** read-only property of the HTMLLegendElement interface returns an HTMLFormElement object that owns the HTMLFieldSetElement associated with this legend, or `null` if this legend is not associated with a fieldset owned by a form.
  15119      *
  15120      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLegendElement/form)
  15121      */
  15122     readonly form: HTMLFormElement | null;
  15123     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLegendElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15124     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15125     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLegendElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15126     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15127 }
  15128 
  15129 declare var HTMLLegendElement: {
  15130     prototype: HTMLLegendElement;
  15131     new(): HTMLLegendElement;
  15132 };
  15133 
  15134 /**
  15135  * The **`HTMLLinkElement`** interface represents reference information for external resources and the relationship of those resources to a document and vice versa (corresponds to `<link>` element; not to be confused with `<a>`, which is represented by `HTMLAnchorElement`).
  15136  *
  15137  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement)
  15138  */
  15139 interface HTMLLinkElement extends HTMLElement, LinkStyle {
  15140     /**
  15141      * The **`as`** property of the HTMLLinkElement interface returns a string representing the type of content to be preloaded by a link element.
  15142      *
  15143      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/as)
  15144      */
  15145     as: string;
  15146     /**
  15147      * The **`blocking`** property of the HTMLLinkElement interface is a string indicating that certain operations should be blocked on the fetching of an external resource.
  15148      *
  15149      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/blocking)
  15150      */
  15151     get blocking(): DOMTokenList;
  15152     set blocking(value: string);
  15153     /** @deprecated */
  15154     charset: string;
  15155     /**
  15156      * The **`crossOrigin`** property of the HTMLLinkElement interface specifies the Cross-Origin Resource Sharing (CORS) setting to use when retrieving the resource.
  15157      *
  15158      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/crossOrigin)
  15159      */
  15160     crossOrigin: string | null;
  15161     /**
  15162      * The **`disabled`** property of the HTMLLinkElement interface is a boolean value that represents whether the link is disabled.
  15163      *
  15164      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/disabled)
  15165      */
  15166     disabled: boolean;
  15167     /**
  15168      * The **`fetchPriority`** property of the HTMLLinkElement interface represents a hint to the browser indicating how it should prioritize fetching a particular resource relative to other resources of the same type.
  15169      *
  15170      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/fetchPriority)
  15171      */
  15172     fetchPriority: "high" | "low" | "auto";
  15173     /**
  15174      * The **`href`** property of the HTMLLinkElement interface contains a string that is the URL associated with the link.
  15175      *
  15176      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/href)
  15177      */
  15178     href: string;
  15179     /**
  15180      * The **`hreflang`** property of the HTMLLinkElement interface is used to indicate the language and the geographical targeting of a page.
  15181      *
  15182      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/hreflang)
  15183      */
  15184     hreflang: string;
  15185     /**
  15186      * The **`imageSizes`** property of the HTMLLinkElement interface indicates the size and conditions for the preloaded images defined by the HTMLLinkElement.imageSrcset property.
  15187      *
  15188      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/imageSizes)
  15189      */
  15190     imageSizes: string;
  15191     /**
  15192      * The **`imageSrcset`** property of the HTMLLinkElement interface is a string which identifies one or more comma-separated **image candidate strings**.
  15193      *
  15194      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/imageSrcset)
  15195      */
  15196     imageSrcset: string;
  15197     /**
  15198      * The **`integrity`** property of the HTMLLinkElement interface is a string containing inline metadata that a browser can use to verify that a fetched resource has been delivered without unexpected manipulation.
  15199      *
  15200      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/integrity)
  15201      */
  15202     integrity: string;
  15203     /**
  15204      * The **`media`** property of the HTMLLinkElement interface is a string representing a list of one or more media formats to which the resource applies.
  15205      *
  15206      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/media)
  15207      */
  15208     media: string;
  15209     /**
  15210      * The **`referrerPolicy`** property of the HTMLLinkElement interface reflects the HTML `referrerpolicy` attribute of the resource.
  15211      *
  15212      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/referrerPolicy)
  15213      */
  15214     referrerPolicy: string;
  15215     /**
  15216      * The **`rel`** property of the HTMLLinkElement interface reflects the `rel` attribute.
  15217      *
  15218      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/rel)
  15219      */
  15220     rel: string;
  15221     /**
  15222      * The **`relList`** read-only property of the HTMLLinkElement interface reflects the `rel` attribute.
  15223      *
  15224      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/relList)
  15225      */
  15226     get relList(): DOMTokenList;
  15227     set relList(value: string);
  15228     /** @deprecated */
  15229     rev: string;
  15230     /**
  15231      * The **`sizes`** read-only property of the HTMLLinkElement interfaces defines the sizes of the icons for visual media contained in the resource.
  15232      *
  15233      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/sizes)
  15234      */
  15235     get sizes(): DOMTokenList;
  15236     set sizes(value: string);
  15237     /** @deprecated */
  15238     target: string;
  15239     /**
  15240      * The **`type`** property of the HTMLLinkElement interface is a string that reflects the MIME type of the linked resource.
  15241      *
  15242      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/type)
  15243      */
  15244     type: string;
  15245     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLinkElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15246     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15247     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLinkElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15248     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15249 }
  15250 
  15251 declare var HTMLLinkElement: {
  15252     prototype: HTMLLinkElement;
  15253     new(): HTMLLinkElement;
  15254 };
  15255 
  15256 /**
  15257  * The **`HTMLMapElement`** interface 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.
  15258  *
  15259  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMapElement)
  15260  */
  15261 interface HTMLMapElement extends HTMLElement {
  15262     /**
  15263      * The **`areas`** read-only property of the HTMLMapElement interface returns a collection of area elements associated with the map element.
  15264      *
  15265      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMapElement/areas)
  15266      */
  15267     readonly areas: HTMLCollection;
  15268     /**
  15269      * The **`name`** property of the HTMLMapElement represents the unique name `<map>` element.
  15270      *
  15271      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMapElement/name)
  15272      */
  15273     name: string;
  15274     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMapElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15275     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15276     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMapElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15277     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15278 }
  15279 
  15280 declare var HTMLMapElement: {
  15281     prototype: HTMLMapElement;
  15282     new(): HTMLMapElement;
  15283 };
  15284 
  15285 /**
  15286  * The **`HTMLMarqueeElement`** interface provides methods to manipulate marquee elements.
  15287  * @deprecated
  15288  *
  15289  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMarqueeElement)
  15290  */
  15291 interface HTMLMarqueeElement extends HTMLElement {
  15292     /** @deprecated */
  15293     behavior: string;
  15294     /** @deprecated */
  15295     bgColor: string;
  15296     /** @deprecated */
  15297     direction: string;
  15298     /** @deprecated */
  15299     height: string;
  15300     /** @deprecated */
  15301     hspace: number;
  15302     /** @deprecated */
  15303     loop: number;
  15304     /** @deprecated */
  15305     scrollAmount: number;
  15306     /** @deprecated */
  15307     scrollDelay: number;
  15308     /** @deprecated */
  15309     trueSpeed: boolean;
  15310     /** @deprecated */
  15311     vspace: number;
  15312     /** @deprecated */
  15313     width: string;
  15314     /** @deprecated */
  15315     start(): void;
  15316     /** @deprecated */
  15317     stop(): void;
  15318     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMarqueeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15319     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15320     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMarqueeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15321     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15322 }
  15323 
  15324 /** @deprecated */
  15325 declare var HTMLMarqueeElement: {
  15326     prototype: HTMLMarqueeElement;
  15327     new(): HTMLMarqueeElement;
  15328 };
  15329 
  15330 interface HTMLMediaElementEventMap extends HTMLElementEventMap {
  15331     "encrypted": MediaEncryptedEvent;
  15332     "waitingforkey": Event;
  15333 }
  15334 
  15335 /**
  15336  * The **`HTMLMediaElement`** interface adds to HTMLElement the properties and methods needed to support basic media-related capabilities that are common to audio and video.
  15337  *
  15338  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement)
  15339  */
  15340 interface HTMLMediaElement extends HTMLElement {
  15341     /**
  15342      * The **`HTMLMediaElement.autoplay`** property reflects the `autoplay` HTML attribute, indicating whether playback should automatically begin as soon as enough media is available to do so without interruption.
  15343      *
  15344      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/autoplay)
  15345      */
  15346     autoplay: boolean;
  15347     /**
  15348      * The **`buffered`** read-only property of HTMLMediaElement objects returns a new static normalized `TimeRanges` object that represents the ranges of the media resource, if any, that the user agent has buffered at the moment the `buffered` property is accessed.
  15349      *
  15350      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/buffered)
  15351      */
  15352     readonly buffered: TimeRanges;
  15353     /**
  15354      * The **`HTMLMediaElement.controls`** property reflects the `controls` HTML attribute, which controls whether user interface controls for playing the media item will be displayed.
  15355      *
  15356      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/controls)
  15357      */
  15358     controls: boolean;
  15359     /**
  15360      * The **`HTMLMediaElement.crossOrigin`** property is the CORS setting for this media element.
  15361      *
  15362      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/crossOrigin)
  15363      */
  15364     crossOrigin: string | null;
  15365     /**
  15366      * The **`HTMLMediaElement.currentSrc`** property contains the absolute URL of the chosen media resource.
  15367      *
  15368      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/currentSrc)
  15369      */
  15370     readonly currentSrc: string;
  15371     /**
  15372      * The HTMLMediaElement interface's **`currentTime`** property specifies the current playback time in seconds.
  15373      *
  15374      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/currentTime)
  15375      */
  15376     currentTime: number;
  15377     /**
  15378      * The **`HTMLMediaElement.defaultMuted`** property reflects the `muted` HTML attribute, which indicates whether the media element's audio output should be muted by default.
  15379      *
  15380      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/defaultMuted)
  15381      */
  15382     defaultMuted: boolean;
  15383     /**
  15384      * The **`HTMLMediaElement.defaultPlaybackRate`** property indicates the default playback rate for the media.
  15385      *
  15386      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/defaultPlaybackRate)
  15387      */
  15388     defaultPlaybackRate: number;
  15389     /**
  15390      * The **`disableRemotePlayback`** property of the HTMLMediaElement interface determines whether the media element is allowed to have a remote playback UI.
  15391      *
  15392      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/disableRemotePlayback)
  15393      */
  15394     disableRemotePlayback: boolean;
  15395     /**
  15396      * The _read-only_ HTMLMediaElement property **`duration`** indicates the length of the element's media in seconds.
  15397      *
  15398      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/duration)
  15399      */
  15400     readonly duration: number;
  15401     /**
  15402      * The **`HTMLMediaElement.ended`** property indicates whether the media element has ended playback.
  15403      *
  15404      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended)
  15405      */
  15406     readonly ended: boolean;
  15407     /**
  15408      * The **`HTMLMediaElement.error`** property is the there has not been an error.
  15409      *
  15410      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/error)
  15411      */
  15412     readonly error: MediaError | null;
  15413     /**
  15414      * The **`HTMLMediaElement.loop`** property reflects the `loop` HTML attribute, which controls whether the media element should start over when it reaches the end.
  15415      *
  15416      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loop)
  15417      */
  15418     loop: boolean;
  15419     /**
  15420      * The read-only **`HTMLMediaElement.mediaKeys`** property returns a MediaKeys object, that is a set of keys that the element can use for decryption of media data during playback.
  15421      * Available only in secure contexts.
  15422      *
  15423      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/mediaKeys)
  15424      */
  15425     readonly mediaKeys: MediaKeys | null;
  15426     /**
  15427      * The **`HTMLMediaElement.muted`** property indicates whether the media element is muted.
  15428      *
  15429      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/muted)
  15430      */
  15431     muted: boolean;
  15432     /**
  15433      * The **`HTMLMediaElement.networkState`** property indicates the current state of the fetching of media over the network.
  15434      *
  15435      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/networkState)
  15436      */
  15437     readonly networkState: number;
  15438     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/encrypted_event) */
  15439     onencrypted: ((this: HTMLMediaElement, ev: MediaEncryptedEvent) => any) | null;
  15440     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/waitingforkey_event) */
  15441     onwaitingforkey: ((this: HTMLMediaElement, ev: Event) => any) | null;
  15442     /**
  15443      * The read-only **`HTMLMediaElement.paused`** property tells whether the media element is paused.
  15444      *
  15445      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/paused)
  15446      */
  15447     readonly paused: boolean;
  15448     /**
  15449      * The **`HTMLMediaElement.playbackRate`** property sets the rate at which the media is being played back.
  15450      *
  15451      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/playbackRate)
  15452      */
  15453     playbackRate: number;
  15454     /**
  15455      * The **`played`** read-only property of the HTMLMediaElement interface indicates the time ranges the resource, an audio or video media file, has played.
  15456      *
  15457      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/played)
  15458      */
  15459     readonly played: TimeRanges;
  15460     /**
  15461      * The **`preload`** property of the HTMLMediaElement interface is a string that provides a hint to the browser about what the author thinks will lead to the best user experience.
  15462      *
  15463      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/preload)
  15464      */
  15465     preload: "none" | "metadata" | "auto" | "";
  15466     /**
  15467      * The **`HTMLMediaElement.preservesPitch`** property determines whether or not the browser should adjust the pitch of the audio to compensate for changes to the playback rate made by setting HTMLMediaElement.playbackRate.
  15468      *
  15469      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/preservesPitch)
  15470      */
  15471     preservesPitch: boolean;
  15472     /**
  15473      * The **`HTMLMediaElement.readyState`** property indicates the readiness state of the media.
  15474      *
  15475      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/readyState)
  15476      */
  15477     readonly readyState: number;
  15478     /**
  15479      * The **`remote`** read-only property of the HTMLMediaElement interface returns the RemotePlayback object associated with the media element.
  15480      *
  15481      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/remote)
  15482      */
  15483     readonly remote: RemotePlayback;
  15484     /**
  15485      * The **`seekable`** read-only property of HTMLMediaElement objects returns a new static normalized `TimeRanges` object that represents the ranges of the media resource, if any, that the user agent is able to seek to at the time `seekable` property is accessed.
  15486      *
  15487      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seekable)
  15488      */
  15489     readonly seekable: TimeRanges;
  15490     /**
  15491      * The **`seeking`** read-only property of the HTMLMediaElement interface is a Boolean indicating whether the resource, the audio or video, is in the process of seeking to a new position.
  15492      *
  15493      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeking)
  15494      */
  15495     readonly seeking: boolean;
  15496     /**
  15497      * The **`sinkId`** read-only property of the HTMLMediaElement interface returns a string that is the unique ID of the device to be used for playing audio output.
  15498      * Available only in secure contexts.
  15499      *
  15500      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/sinkId)
  15501      */
  15502     readonly sinkId: string;
  15503     /**
  15504      * The **`HTMLMediaElement.src`** property reflects the value of the HTML media element's `src` attribute, which indicates the URL of a media resource to use in the element.
  15505      *
  15506      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/src)
  15507      */
  15508     src: string;
  15509     /**
  15510      * The **`srcObject`** property of the the source of the media associated with the HTMLMediaElement, or `null` if not assigned.
  15511      *
  15512      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/srcObject)
  15513      */
  15514     srcObject: MediaProvider | null;
  15515     /**
  15516      * The read-only **`textTracks`** property on HTMLMediaElement objects returns a objects representing the media element's text tracks, in the same order as in the list of text tracks.
  15517      *
  15518      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/textTracks)
  15519      */
  15520     readonly textTracks: TextTrackList;
  15521     /**
  15522      * The **`HTMLMediaElement.volume`** property sets the volume at which the media will be played.
  15523      *
  15524      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/volume)
  15525      */
  15526     volume: number;
  15527     /**
  15528      * The **`addTextTrack()`** method of the HTMLMediaElement interface creates a new TextTrack object and adds it to the media element.
  15529      *
  15530      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/addTextTrack)
  15531      */
  15532     addTextTrack(kind: TextTrackKind, label?: string, language?: string): TextTrack;
  15533     /**
  15534      * The HTMLMediaElement method **`canPlayType()`** reports how likely it is that the current browser will be able to play media of a given MIME type.
  15535      *
  15536      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canPlayType)
  15537      */
  15538     canPlayType(type: string): CanPlayTypeResult;
  15539     /**
  15540      * The **`HTMLMediaElement.fastSeek()`** method quickly seeks the media to the new time with precision tradeoff.
  15541      *
  15542      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/fastSeek)
  15543      */
  15544     fastSeek(time: number): void;
  15545     /**
  15546      * The HTMLMediaElement method **`load()`** resets the media element to its initial state and begins the process of selecting a media source and loading the media in preparation for playback to begin at the beginning.
  15547      *
  15548      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/load)
  15549      */
  15550     load(): void;
  15551     /**
  15552      * The **`HTMLMediaElement.pause()`** method will pause playback of the media, if the media is already in a paused state this method will have no effect.
  15553      *
  15554      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause)
  15555      */
  15556     pause(): void;
  15557     /**
  15558      * The HTMLMediaElement **`play()`** method attempts to begin playback of the media.
  15559      *
  15560      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play)
  15561      */
  15562     play(): Promise<void>;
  15563     /**
  15564      * The **`setMediaKeys()`** method of the HTMLMediaElement interface sets the MediaKeys that will be used to decrypt media during playback.
  15565      * Available only in secure contexts.
  15566      *
  15567      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/setMediaKeys)
  15568      */
  15569     setMediaKeys(mediaKeys: MediaKeys | null): Promise<void>;
  15570     /**
  15571      * The **`setSinkId()`** method of the HTMLMediaElement interface sets the ID of the audio device to use for output and returns a Promise.
  15572      * Available only in secure contexts.
  15573      *
  15574      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/setSinkId)
  15575      */
  15576     setSinkId(sinkId: string): Promise<void>;
  15577     readonly NETWORK_EMPTY: 0;
  15578     readonly NETWORK_IDLE: 1;
  15579     readonly NETWORK_LOADING: 2;
  15580     readonly NETWORK_NO_SOURCE: 3;
  15581     readonly HAVE_NOTHING: 0;
  15582     readonly HAVE_METADATA: 1;
  15583     readonly HAVE_CURRENT_DATA: 2;
  15584     readonly HAVE_FUTURE_DATA: 3;
  15585     readonly HAVE_ENOUGH_DATA: 4;
  15586     addEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15587     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15588     removeEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15589     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15590 }
  15591 
  15592 declare var HTMLMediaElement: {
  15593     prototype: HTMLMediaElement;
  15594     new(): HTMLMediaElement;
  15595     readonly NETWORK_EMPTY: 0;
  15596     readonly NETWORK_IDLE: 1;
  15597     readonly NETWORK_LOADING: 2;
  15598     readonly NETWORK_NO_SOURCE: 3;
  15599     readonly HAVE_NOTHING: 0;
  15600     readonly HAVE_METADATA: 1;
  15601     readonly HAVE_CURRENT_DATA: 2;
  15602     readonly HAVE_FUTURE_DATA: 3;
  15603     readonly HAVE_ENOUGH_DATA: 4;
  15604 };
  15605 
  15606 /**
  15607  * The **`HTMLMenuElement`** interface provides additional properties (beyond those inherited from the HTMLElement interface) for manipulating a menu element.
  15608  *
  15609  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMenuElement)
  15610  */
  15611 interface HTMLMenuElement extends HTMLElement {
  15612     /** @deprecated */
  15613     compact: boolean;
  15614     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMenuElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15615     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15616     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMenuElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15617     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15618 }
  15619 
  15620 declare var HTMLMenuElement: {
  15621     prototype: HTMLMenuElement;
  15622     new(): HTMLMenuElement;
  15623 };
  15624 
  15625 /**
  15626  * The **`HTMLMetaElement`** interface contains descriptive metadata about a document provided in HTML as `<meta>` elements.
  15627  *
  15628  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMetaElement)
  15629  */
  15630 interface HTMLMetaElement extends HTMLElement {
  15631     /**
  15632      * The **`HTMLMetaElement.content`** property gets or sets the `content` attribute of pragma directives and named meta data in conjunction with HTMLMetaElement.name or HTMLMetaElement.httpEquiv.
  15633      *
  15634      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMetaElement/content)
  15635      */
  15636     content: string;
  15637     /**
  15638      * The **`HTMLMetaElement.httpEquiv`** property gets or sets the pragma directive or an HTTP response header name for the HTMLMetaElement.content attribute.
  15639      *
  15640      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMetaElement/httpEquiv)
  15641      */
  15642     httpEquiv: string;
  15643     /**
  15644      * The **`HTMLMetaElement.media`** property enables specifying the media for `theme-color` metadata.
  15645      *
  15646      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMetaElement/media)
  15647      */
  15648     media: string;
  15649     /**
  15650      * The **`HTMLMetaElement.name`** property is used in combination with HTMLMetaElement.content to define the name-value pairs for the metadata of a document.
  15651      *
  15652      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMetaElement/name)
  15653      */
  15654     name: string;
  15655     /**
  15656      * The **`HTMLMetaElement.scheme`** property defines the scheme of the value in the HTMLMetaElement.content attribute.
  15657      * @deprecated
  15658      *
  15659      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMetaElement/scheme)
  15660      */
  15661     scheme: string;
  15662     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMetaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15663     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15664     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMetaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15665     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15666 }
  15667 
  15668 declare var HTMLMetaElement: {
  15669     prototype: HTMLMetaElement;
  15670     new(): HTMLMetaElement;
  15671 };
  15672 
  15673 /**
  15674  * 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.
  15675  *
  15676  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement)
  15677  */
  15678 interface HTMLMeterElement extends HTMLElement {
  15679     /**
  15680      * The **`high`** property of the HTMLMeterElement interface represents the high boundary of the meter element as a floating-point number.
  15681      *
  15682      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/high)
  15683      */
  15684     high: number;
  15685     /**
  15686      * The **`HTMLMeterElement.labels`** read-only property returns a A NodeList containing the `<label>` elements associated with the `<meter>` element.
  15687      *
  15688      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/labels)
  15689      */
  15690     readonly labels: NodeListOf<HTMLLabelElement>;
  15691     /**
  15692      * The **`low`** property of the HTMLMeterElement interface represents the low boundary of the meter element as a floating-point number.
  15693      *
  15694      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/low)
  15695      */
  15696     low: number;
  15697     /**
  15698      * The **`max`** property of the HTMLMeterElement interface represents the maximum value of the meter element as a floating-point number.
  15699      *
  15700      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/max)
  15701      */
  15702     max: number;
  15703     /**
  15704      * The **`min`** property of the HTMLMeterElement interface represents the minimum value of the meter element as a floating-point number.
  15705      *
  15706      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/min)
  15707      */
  15708     min: number;
  15709     /**
  15710      * The **`optimum`** property of the HTMLMeterElement interface represents the optimum boundary of the meter element as a floating-point number.
  15711      *
  15712      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/optimum)
  15713      */
  15714     optimum: number;
  15715     /**
  15716      * The **`value`** property of the HTMLMeterElement interface represents the current value of the meter element as a floating-point number.
  15717      *
  15718      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/value)
  15719      */
  15720     value: number;
  15721     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMeterElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15722     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15723     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMeterElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15724     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15725 }
  15726 
  15727 declare var HTMLMeterElement: {
  15728     prototype: HTMLMeterElement;
  15729     new(): HTMLMeterElement;
  15730 };
  15731 
  15732 /**
  15733  * The **`HTMLModElement`** interface 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.
  15734  *
  15735  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLModElement)
  15736  */
  15737 interface HTMLModElement extends HTMLElement {
  15738     /**
  15739      * The **`cite`** property of the HTMLModElement interface indicates the URL of the resource explaining the modification.
  15740      *
  15741      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLModElement/cite)
  15742      */
  15743     cite: string;
  15744     /**
  15745      * The **`dateTime`** property of the HTMLModElement interface is a string containing a machine-readable date with an optional time value.
  15746      *
  15747      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLModElement/dateTime)
  15748      */
  15749     dateTime: string;
  15750     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLModElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15751     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15752     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLModElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15753     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15754 }
  15755 
  15756 declare var HTMLModElement: {
  15757     prototype: HTMLModElement;
  15758     new(): HTMLModElement;
  15759 };
  15760 
  15761 /**
  15762  * The **`HTMLOListElement`** interface provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating ordered list elements.
  15763  *
  15764  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOListElement)
  15765  */
  15766 interface HTMLOListElement extends HTMLElement {
  15767     /** @deprecated */
  15768     compact: boolean;
  15769     /**
  15770      * The **`reversed`** property of the HTMLOListElement interface indicates order of a list.
  15771      *
  15772      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOListElement/reversed)
  15773      */
  15774     reversed: boolean;
  15775     /**
  15776      * The **`start`** property of the HTMLOListElement interface indicates starting value of the ordered list, with default value of 1.
  15777      *
  15778      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOListElement/start)
  15779      */
  15780     start: number;
  15781     /**
  15782      * The **`type`** property of the HTMLOListElement interface indicates the kind of marker to be used to display ordered list.
  15783      *
  15784      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOListElement/type)
  15785      */
  15786     type: string;
  15787     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15788     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15789     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15790     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15791 }
  15792 
  15793 declare var HTMLOListElement: {
  15794     prototype: HTMLOListElement;
  15795     new(): HTMLOListElement;
  15796 };
  15797 
  15798 /**
  15799  * The **`HTMLObjectElement`** interface 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.
  15800  *
  15801  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement)
  15802  */
  15803 interface HTMLObjectElement extends HTMLElement {
  15804     /** @deprecated */
  15805     align: string;
  15806     /** @deprecated */
  15807     archive: string;
  15808     /** @deprecated */
  15809     border: string;
  15810     /** @deprecated */
  15811     code: string;
  15812     /** @deprecated */
  15813     codeBase: string;
  15814     /** @deprecated */
  15815     codeType: string;
  15816     /**
  15817      * The **`contentDocument`** read-only property of the HTMLObjectElement interface Returns a Document representing the active document of the object element's nested browsing context, if any; otherwise null.
  15818      *
  15819      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/contentDocument)
  15820      */
  15821     readonly contentDocument: Document | null;
  15822     /**
  15823      * The **`contentWindow`** read-only property of the HTMLObjectElement interface returns a WindowProxy representing the window proxy of the object element's nested browsing context, if any; otherwise null.
  15824      *
  15825      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/contentWindow)
  15826      */
  15827     readonly contentWindow: WindowProxy | null;
  15828     /**
  15829      * The **`data`** property of the reflects the `data` HTML attribute, specifying the address of a resource's data.
  15830      *
  15831      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/data)
  15832      */
  15833     data: string;
  15834     /** @deprecated */
  15835     declare: boolean;
  15836     /**
  15837      * The **`form`** read-only property of the HTMLObjectElement interface returns an HTMLFormElement object that owns this object, or `null` if this object element is not owned by any form.
  15838      *
  15839      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/form)
  15840      */
  15841     readonly form: HTMLFormElement | null;
  15842     /**
  15843      * The **`height`** property of the reflects the `height` HTML attribute, specifying the displayed height of the resource in CSS pixels.
  15844      *
  15845      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/height)
  15846      */
  15847     height: string;
  15848     /** @deprecated */
  15849     hspace: number;
  15850     /**
  15851      * The **`name`** property of the reflects the `name` HTML attribute, specifying the name of the browsing context.
  15852      *
  15853      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/name)
  15854      */
  15855     name: string;
  15856     /** @deprecated */
  15857     standby: string;
  15858     /**
  15859      * The **`type`** property of the reflects the `type` HTML attribute, specifying the MIME type of the resource.
  15860      *
  15861      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/type)
  15862      */
  15863     type: string;
  15864     /**
  15865      * The **`useMap`** property of the reflects the `usemap` HTML attribute, specifying a A string.
  15866      * @deprecated
  15867      *
  15868      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/useMap)
  15869      */
  15870     useMap: string;
  15871     /**
  15872      * The **`validationMessage`** read-only property of the HTMLObjectElement interface returns a string representing a localized message that describes the validation constraints that the control does not satisfy (if any).
  15873      *
  15874      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/validationMessage)
  15875      */
  15876     readonly validationMessage: string;
  15877     /**
  15878      * The **`validity`** read-only property of the HTMLObjectElement interface returns a ValidityState object that represents the validity states this element is in.
  15879      *
  15880      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/validity)
  15881      */
  15882     readonly validity: ValidityState;
  15883     /** @deprecated */
  15884     vspace: number;
  15885     /**
  15886      * The **`width`** property of the reflects the `width` HTML attribute, specifying the displayed width of the resource in CSS pixels.
  15887      *
  15888      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/width)
  15889      */
  15890     width: string;
  15891     /**
  15892      * The **`willValidate`** read-only property of the HTMLObjectElement interface returns `false`, because object elements are not candidates for constraint validation.
  15893      *
  15894      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/willValidate)
  15895      */
  15896     readonly willValidate: boolean;
  15897     /**
  15898      * The **`checkValidity()`** method of the HTMLObjectElement interface checks if the element is valid, but always returns true because object elements are never candidates for constraint validation.
  15899      *
  15900      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/checkValidity)
  15901      */
  15902     checkValidity(): boolean;
  15903     /**
  15904      * The **`getSVGDocument()`** method of the HTMLObjectElement interface returns the Document object of the embedded SVG.
  15905      *
  15906      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/getSVGDocument)
  15907      */
  15908     getSVGDocument(): Document | null;
  15909     /**
  15910      * The **`reportValidity()`** method of the HTMLObjectElement interface performs the same validity checking steps as the HTMLObjectElement.checkValidity method.
  15911      *
  15912      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/reportValidity)
  15913      */
  15914     reportValidity(): boolean;
  15915     /**
  15916      * The **`setCustomValidity()`** method of the element.
  15917      *
  15918      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/setCustomValidity)
  15919      */
  15920     setCustomValidity(error: string): void;
  15921     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLObjectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15922     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15923     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLObjectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15924     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15925 }
  15926 
  15927 declare var HTMLObjectElement: {
  15928     prototype: HTMLObjectElement;
  15929     new(): HTMLObjectElement;
  15930 };
  15931 
  15932 /**
  15933  * The **`HTMLOptGroupElement`** interface 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.
  15934  *
  15935  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptGroupElement)
  15936  */
  15937 interface HTMLOptGroupElement extends HTMLElement {
  15938     /**
  15939      * The **`disabled`** property of the HTMLOptGroupElement interface is a boolean value that reflects the optgroup element's `disabled` attribute, which indicates whether the control is disabled.
  15940      *
  15941      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptGroupElement/disabled)
  15942      */
  15943     disabled: boolean;
  15944     /**
  15945      * The **`label`** property of the HTMLOptGroupElement interface is a string value that reflects the optgroup element's `label` attribute, which provides a textual label to the group of options.
  15946      *
  15947      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptGroupElement/label)
  15948      */
  15949     label: string;
  15950     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptGroupElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  15951     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  15952     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptGroupElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  15953     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  15954 }
  15955 
  15956 declare var HTMLOptGroupElement: {
  15957     prototype: HTMLOptGroupElement;
  15958     new(): HTMLOptGroupElement;
  15959 };
  15960 
  15961 /**
  15962  * The **`HTMLOptionElement`** interface represents option elements and inherits all properties and methods of the HTMLElement interface.
  15963  *
  15964  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement)
  15965  */
  15966 interface HTMLOptionElement extends HTMLElement {
  15967     /**
  15968      * The **`defaultSelected`** property of the HTMLOptionElement interface specifies the default selected state of the element.
  15969      *
  15970      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/defaultSelected)
  15971      */
  15972     defaultSelected: boolean;
  15973     /**
  15974      * The **`disabled`** property of the HTMLOptionElement is a boolean value that indicates whether the option element is unavailable to be selected.
  15975      *
  15976      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/disabled)
  15977      */
  15978     disabled: boolean;
  15979     /**
  15980      * The **`form`** read-only property of the HTMLOptionElement interface returns an HTMLFormElement object that owns the HTMLSelectElement associated with this option, or `null` if this option is not associated with a select owned by a form.
  15981      *
  15982      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/form)
  15983      */
  15984     readonly form: HTMLFormElement | null;
  15985     /**
  15986      * The read-only **`index`** property of the HTMLOptionElement interface specifies the 0-based index of the element; that is, the position of the option within the list of options it belongs to, in tree-order, as an integer.
  15987      *
  15988      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/index)
  15989      */
  15990     readonly index: number;
  15991     /**
  15992      * The **`label`** property of the HTMLOptionElement represents the text displayed for an option in a select element or as part of a list of suggestions in a datalist element.
  15993      *
  15994      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/label)
  15995      */
  15996     label: string;
  15997     /**
  15998      * The **`selected`** property of the HTMLOptionElement interface specifies the current selectedness of the element; that is, whether the option is selected or not.
  15999      *
  16000      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/selected)
  16001      */
  16002     selected: boolean;
  16003     /**
  16004      * The **`text`** property of the HTMLOptionElement represents the text inside the option element.
  16005      *
  16006      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/text)
  16007      */
  16008     text: string;
  16009     /**
  16010      * The **`value`** property of the HTMLOptionElement interface represents the value of the option element as a string, or the empty string if no value is set.
  16011      *
  16012      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/value)
  16013      */
  16014     value: string;
  16015     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16016     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16017     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16018     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16019 }
  16020 
  16021 declare var HTMLOptionElement: {
  16022     prototype: HTMLOptionElement;
  16023     new(): HTMLOptionElement;
  16024 };
  16025 
  16026 /**
  16027  * The **`HTMLOptionsCollection`** interface represents a collection of `<option>` HTML elements (in document order) and offers methods and properties for selecting from the list as well as optionally altering its items.
  16028  *
  16029  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection)
  16030  */
  16031 interface HTMLOptionsCollection extends HTMLCollectionOf<HTMLOptionElement> {
  16032     /**
  16033      * The **`length`** property of the HTMLOptionsCollection interface returns the number of option elements in the collection.
  16034      *
  16035      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection/length)
  16036      */
  16037     length: number;
  16038     /**
  16039      * The **`selectedIndex`** property of the HTMLOptionsCollection interface is the numeric index of the first selected option element, if any, or `−1` if no `<option>` is selected.
  16040      *
  16041      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection/selectedIndex)
  16042      */
  16043     selectedIndex: number;
  16044     /**
  16045      * The **`add()`** method of the HTMLOptionsCollection interface adds an HTMLOptionElement or HTMLOptGroupElement to this `HTMLOptionsCollection`.
  16046      *
  16047      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection/add)
  16048      */
  16049     add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number | null): void;
  16050     /**
  16051      * The **`remove()`** method of the HTMLOptionsCollection interface removes the option element specified by the index from this collection.
  16052      *
  16053      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection/remove)
  16054      */
  16055     remove(index: number): void;
  16056 }
  16057 
  16058 declare var HTMLOptionsCollection: {
  16059     prototype: HTMLOptionsCollection;
  16060     new(): HTMLOptionsCollection;
  16061 };
  16062 
  16063 interface HTMLOrSVGElement {
  16064     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/autofocus) */
  16065     autofocus: boolean;
  16066     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dataset) */
  16067     readonly dataset: DOMStringMap;
  16068     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/nonce) */
  16069     nonce?: string;
  16070     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/tabIndex) */
  16071     tabIndex: number;
  16072     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/blur) */
  16073     blur(): void;
  16074     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/focus) */
  16075     focus(options?: FocusOptions): void;
  16076 }
  16077 
  16078 /**
  16079  * The **`HTMLOutputElement`** interface provides properties and methods (beyond those inherited from HTMLElement) for manipulating the layout and presentation of output elements.
  16080  *
  16081  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement)
  16082  */
  16083 interface HTMLOutputElement extends HTMLElement {
  16084     /**
  16085      * The **`defaultValue`** property of the HTMLOutputElement interface represents the default text content of this output element.
  16086      *
  16087      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/defaultValue)
  16088      */
  16089     defaultValue: string;
  16090     /**
  16091      * The **`form`** read-only property of the HTMLOutputElement interface returns an HTMLFormElement object that owns this output, or `null` if this output is not owned by any form.
  16092      *
  16093      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/form)
  16094      */
  16095     readonly form: HTMLFormElement | null;
  16096     /**
  16097      * The **`htmlFor`** property of the HTMLOutputElement interface is a string containing a space-separated list of other elements' `id`s, indicating that those elements contributed input values to (or otherwise affected) the calculation.
  16098      *
  16099      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/htmlFor)
  16100      */
  16101     get htmlFor(): DOMTokenList;
  16102     set htmlFor(value: string);
  16103     /**
  16104      * The **`HTMLOutputElement.labels`** read-only property returns a A NodeList containing the `<label>` elements associated with the `<output>` element.
  16105      *
  16106      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/labels)
  16107      */
  16108     readonly labels: NodeListOf<HTMLLabelElement>;
  16109     /**
  16110      * The **`name`** property of the HTMLOutputElement interface indicates the name of the output element.
  16111      *
  16112      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/name)
  16113      */
  16114     name: string;
  16115     /**
  16116      * The **`type`** read-only property of the HTMLOutputElement interface returns the string `'output'`.
  16117      *
  16118      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/type)
  16119      */
  16120     readonly type: string;
  16121     /**
  16122      * The **`validationMessage`** read-only property of the HTMLOutputElement interface returns a string representing a localized message that describes the validation constraints that the output control does not satisfy (if any).
  16123      *
  16124      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/validationMessage)
  16125      */
  16126     readonly validationMessage: string;
  16127     /**
  16128      * The **`validity`** read-only property of the HTMLOutputElement interface returns a ValidityState object that represents the validity states this element is in.
  16129      *
  16130      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/validity)
  16131      */
  16132     readonly validity: ValidityState;
  16133     /**
  16134      * The **`value`** property of the HTMLOutputElement interface represents the value of the output element as a string, or the empty string if no value is set.
  16135      *
  16136      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/value)
  16137      */
  16138     value: string;
  16139     /**
  16140      * The **`willValidate`** read-only property of the HTMLOutputElement interface returns `false`, because output elements are not candidates for constraint validation.
  16141      *
  16142      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/willValidate)
  16143      */
  16144     readonly willValidate: boolean;
  16145     /**
  16146      * The **`checkValidity()`** method of the HTMLOutputElement interface checks if the element is valid, but always returns true because output elements are never candidates for constraint validation.
  16147      *
  16148      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/checkValidity)
  16149      */
  16150     checkValidity(): boolean;
  16151     /**
  16152      * The **`reportValidity()`** method of the HTMLOutputElement interface performs the same validity checking steps as the HTMLOutputElement.checkValidity method.
  16153      *
  16154      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/reportValidity)
  16155      */
  16156     reportValidity(): boolean;
  16157     /**
  16158      * The **`setCustomValidity()`** method of the HTMLOutputElement interface sets the custom validity message for the output element.
  16159      *
  16160      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/setCustomValidity)
  16161      */
  16162     setCustomValidity(error: string): void;
  16163     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOutputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16164     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16165     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOutputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16166     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16167 }
  16168 
  16169 declare var HTMLOutputElement: {
  16170     prototype: HTMLOutputElement;
  16171     new(): HTMLOutputElement;
  16172 };
  16173 
  16174 /**
  16175  * The **`HTMLParagraphElement`** interface provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating p elements.
  16176  *
  16177  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParagraphElement)
  16178  */
  16179 interface HTMLParagraphElement extends HTMLElement {
  16180     /** @deprecated */
  16181     align: string;
  16182     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParagraphElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16183     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16184     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParagraphElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16185     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16186 }
  16187 
  16188 declare var HTMLParagraphElement: {
  16189     prototype: HTMLParagraphElement;
  16190     new(): HTMLParagraphElement;
  16191 };
  16192 
  16193 /**
  16194  * The **`HTMLParamElement`** interface 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.
  16195  * @deprecated
  16196  *
  16197  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParamElement)
  16198  */
  16199 interface HTMLParamElement extends HTMLElement {
  16200     /** @deprecated */
  16201     name: string;
  16202     /** @deprecated */
  16203     type: string;
  16204     /** @deprecated */
  16205     value: string;
  16206     /** @deprecated */
  16207     valueType: string;
  16208     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParamElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16209     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16210     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParamElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16211     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16212 }
  16213 
  16214 /** @deprecated */
  16215 declare var HTMLParamElement: {
  16216     prototype: HTMLParamElement;
  16217     new(): HTMLParamElement;
  16218 };
  16219 
  16220 /**
  16221  * The **`HTMLPictureElement`** interface represents a picture HTML element.
  16222  *
  16223  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLPictureElement)
  16224  */
  16225 interface HTMLPictureElement extends HTMLElement {
  16226     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16227     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16228     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16229     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16230 }
  16231 
  16232 declare var HTMLPictureElement: {
  16233     prototype: HTMLPictureElement;
  16234     new(): HTMLPictureElement;
  16235 };
  16236 
  16237 /**
  16238  * The **`HTMLPreElement`** interface 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).
  16239  *
  16240  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLPreElement)
  16241  */
  16242 interface HTMLPreElement extends HTMLElement {
  16243     /** @deprecated */
  16244     width: number;
  16245     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPreElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16246     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16247     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPreElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16248     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16249 }
  16250 
  16251 declare var HTMLPreElement: {
  16252     prototype: HTMLPreElement;
  16253     new(): HTMLPreElement;
  16254 };
  16255 
  16256 /**
  16257  * The **`HTMLProgressElement`** interface 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.
  16258  *
  16259  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement)
  16260  */
  16261 interface HTMLProgressElement extends HTMLElement {
  16262     /**
  16263      * The **`HTMLProgressElement.labels`** read-only property returns a NodeList of the label elements associated with the A NodeList containing the `<label>` elements associated with the `<progress>` element.
  16264      *
  16265      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement/labels)
  16266      */
  16267     readonly labels: NodeListOf<HTMLLabelElement>;
  16268     /**
  16269      * The **`max`** property of the HTMLProgressElement interface represents the upper bound of the progress element's range.
  16270      *
  16271      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement/max)
  16272      */
  16273     max: number;
  16274     /**
  16275      * The **`position`** read-only property of the HTMLProgressElement interface returns current progress of the progress element.
  16276      *
  16277      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement/position)
  16278      */
  16279     readonly position: number;
  16280     /**
  16281      * The **`value`** property of the HTMLProgressElement interface represents the current progress of the progress element.
  16282      *
  16283      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement/value)
  16284      */
  16285     value: number;
  16286     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLProgressElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16287     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16288     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLProgressElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16289     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16290 }
  16291 
  16292 declare var HTMLProgressElement: {
  16293     prototype: HTMLProgressElement;
  16294     new(): HTMLProgressElement;
  16295 };
  16296 
  16297 /**
  16298  * The **`HTMLQuoteElement`** interface 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.
  16299  *
  16300  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLQuoteElement)
  16301  */
  16302 interface HTMLQuoteElement extends HTMLElement {
  16303     /**
  16304      * The **`cite`** property of the HTMLQuoteElement interface indicates the URL for the source of the quotation.
  16305      *
  16306      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLQuoteElement/cite)
  16307      */
  16308     cite: string;
  16309     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLQuoteElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16310     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16311     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLQuoteElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16312     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16313 }
  16314 
  16315 declare var HTMLQuoteElement: {
  16316     prototype: HTMLQuoteElement;
  16317     new(): HTMLQuoteElement;
  16318 };
  16319 
  16320 /**
  16321  * 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).
  16322  *
  16323  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement)
  16324  */
  16325 interface HTMLScriptElement extends HTMLElement {
  16326     /**
  16327      * The **`async`** property of the HTMLScriptElement interface is a boolean value that controls how the script should be executed.
  16328      *
  16329      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/async)
  16330      */
  16331     async: boolean;
  16332     /**
  16333      * The **`blocking`** property of the HTMLScriptElement interface is a string indicating that certain operations should be blocked on the fetching of the script.
  16334      *
  16335      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/blocking)
  16336      */
  16337     get blocking(): DOMTokenList;
  16338     set blocking(value: string);
  16339     /** @deprecated */
  16340     charset: string;
  16341     /**
  16342      * The **`crossOrigin`** property of the HTMLScriptElement interface reflects the CORS settings for the script element.
  16343      *
  16344      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/crossOrigin)
  16345      */
  16346     crossOrigin: string | null;
  16347     /**
  16348      * The **`defer`** property of the HTMLScriptElement interface is a boolean value that controls how the script should be executed.
  16349      *
  16350      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/defer)
  16351      */
  16352     defer: boolean;
  16353     /** @deprecated */
  16354     event: string;
  16355     /**
  16356      * The **`fetchPriority`** property of the HTMLScriptElement interface represents a hint to the browser indicating how it should prioritize fetching an external script relative to other external scripts.
  16357      *
  16358      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/fetchPriority)
  16359      */
  16360     fetchPriority: "high" | "low" | "auto";
  16361     /** @deprecated */
  16362     htmlFor: string;
  16363     /**
  16364      * The **`integrity`** property of the HTMLScriptElement interface is a string that contains inline metadata that a browser can use to verify that a fetched resource has been delivered without unexpected manipulation.
  16365      *
  16366      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/integrity)
  16367      */
  16368     integrity: string;
  16369     /**
  16370      * The **`noModule`** property of the HTMLScriptElement interface is a boolean value that indicates whether the script should be executed in browsers that support ES modules.
  16371      *
  16372      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/noModule)
  16373      */
  16374     noModule: boolean;
  16375     /**
  16376      * The **`referrerPolicy`** property of the `referrerpolicy` of the script element, which defines how the referrer is set when fetching the script and any scripts it imports.
  16377      *
  16378      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/referrerPolicy)
  16379      */
  16380     referrerPolicy: string;
  16381     /**
  16382      * The **`src`** property of the HTMLScriptElement interface is a string representing the URL of an external script; this can be used as an alternative to embedding a script directly within a document.
  16383      *
  16384      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/src)
  16385      */
  16386     src: string;
  16387     /**
  16388      * The **`text`** property of the HTMLScriptElement interface is a string that reflects the text content inside the script element.
  16389      *
  16390      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/text)
  16391      */
  16392     text: string;
  16393     /**
  16394      * The **`type`** property of the HTMLScriptElement interface is a string that reflects the type of the script.
  16395      *
  16396      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/type)
  16397      */
  16398     type: string;
  16399     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLScriptElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16400     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16401     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLScriptElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16402     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16403 }
  16404 
  16405 declare var HTMLScriptElement: {
  16406     prototype: HTMLScriptElement;
  16407     new(): HTMLScriptElement;
  16408     /**
  16409      * The **`supports()`** static method of the HTMLScriptElement interface provides a simple and consistent method to feature-detect what types of scripts are supported by the user agent.
  16410      *
  16411      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/supports_static)
  16412      */
  16413     supports(type: string): boolean;
  16414 };
  16415 
  16416 /**
  16417  * The **`HTMLSelectElement`** interface represents a select HTML Element.
  16418  *
  16419  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement)
  16420  */
  16421 interface HTMLSelectElement extends HTMLElement {
  16422     /**
  16423      * The **`autocomplete`** property of the HTMLSelectElement interface indicates whether the value of the control can be automatically completed by the browser.
  16424      *
  16425      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/autocomplete)
  16426      */
  16427     autocomplete: AutoFill;
  16428     /**
  16429      * The **`HTMLSelectElement.disabled`** property is a boolean value that reflects the `disabled` HTML attribute, which indicates whether the control is disabled.
  16430      *
  16431      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/disabled)
  16432      */
  16433     disabled: boolean;
  16434     /**
  16435      * The **`form`** read-only property of the HTMLSelectElement interface returns an HTMLFormElement object that owns this select, or `null` if this select is not owned by any form.
  16436      *
  16437      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/form)
  16438      */
  16439     readonly form: HTMLFormElement | null;
  16440     /**
  16441      * The **`HTMLSelectElement.labels`** read-only property returns a A NodeList containing the `<label>` elements associated with the `<select>` element.
  16442      *
  16443      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/labels)
  16444      */
  16445     readonly labels: NodeListOf<HTMLLabelElement>;
  16446     /**
  16447      * The **`length`** property of the HTMLSelectElement interface specifies the number of option elements in the select element.
  16448      *
  16449      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/length)
  16450      */
  16451     length: number;
  16452     /**
  16453      * The **`multiple`** property of the HTMLSelectElement interface specifies that the user may select more than one option from the list of options.
  16454      *
  16455      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/multiple)
  16456      */
  16457     multiple: boolean;
  16458     /**
  16459      * The **`name`** property of the HTMLSelectElement interface indicates the name of the select element.
  16460      *
  16461      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/name)
  16462      */
  16463     name: string;
  16464     /**
  16465      * The **`HTMLSelectElement.options`** read-only property returns a HTMLOptionsCollection of the option elements contained by the select element.
  16466      *
  16467      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/options)
  16468      */
  16469     readonly options: HTMLOptionsCollection;
  16470     /**
  16471      * The **`required`** property of the HTMLSelectElement interface specifies that the user must select an option with a non-empty string value before submitting a form.
  16472      *
  16473      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/required)
  16474      */
  16475     required: boolean;
  16476     /**
  16477      * The **`selectedIndex`** property of the HTMLSelectElement interface is the numeric index of the first selected option element in a select element, if any, or `−1` if no `<option>` is selected.
  16478      *
  16479      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/selectedIndex)
  16480      */
  16481     selectedIndex: number;
  16482     /**
  16483      * The **read-only** HTMLSelectElement property **`selectedOptions`** contains a list of the element that are currently selected.
  16484      *
  16485      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/selectedOptions)
  16486      */
  16487     readonly selectedOptions: HTMLCollectionOf<HTMLOptionElement>;
  16488     /**
  16489      * The **`size`** property of the HTMLSelectElement interface specifies the number of options, or rows, that should be visible at one time.
  16490      *
  16491      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/size)
  16492      */
  16493     size: number;
  16494     /**
  16495      * The **`HTMLSelectElement.type`** read-only property returns the form control's `type`.
  16496      *
  16497      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/type)
  16498      */
  16499     readonly type: "select-one" | "select-multiple";
  16500     /**
  16501      * The **`validationMessage`** read-only property of the HTMLSelectElement interface returns a string representing a localized message that describes the validation constraints that the select control does not satisfy (if any).
  16502      *
  16503      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/validationMessage)
  16504      */
  16505     readonly validationMessage: string;
  16506     /**
  16507      * The **`validity`** read-only property of the HTMLSelectElement interface returns a ValidityState object that represents the validity states this element is in.
  16508      *
  16509      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/validity)
  16510      */
  16511     readonly validity: ValidityState;
  16512     /**
  16513      * The **`HTMLSelectElement.value`** property contains the value of the first selected option element associated with this select element.
  16514      *
  16515      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/value)
  16516      */
  16517     value: string;
  16518     /**
  16519      * The **`willValidate`** read-only property of the HTMLSelectElement interface indicates whether the select element is a candidate for constraint validation.
  16520      *
  16521      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/willValidate)
  16522      */
  16523     readonly willValidate: boolean;
  16524     /**
  16525      * The **`HTMLSelectElement.add()`** method adds an element to the collection of `option` elements for this `select` element.
  16526      *
  16527      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/add)
  16528      */
  16529     add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number | null): void;
  16530     /**
  16531      * The **`checkValidity()`** method of the HTMLSelectElement interface returns a boolean value which indicates if the element meets any constraint validation rules applied to it.
  16532      *
  16533      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/checkValidity)
  16534      */
  16535     checkValidity(): boolean;
  16536     /**
  16537      * The **`HTMLSelectElement.item()`** method returns the position in the options list corresponds to the index given in the parameter, or `null` if there are none.
  16538      *
  16539      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/item)
  16540      */
  16541     item(index: number): HTMLOptionElement | null;
  16542     /**
  16543      * The **`HTMLSelectElement.namedItem()`** method returns the whose `name` or `id` match the specified name, or `null` if no option matches.
  16544      *
  16545      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/namedItem)
  16546      */
  16547     namedItem(name: string): HTMLOptionElement | null;
  16548     /**
  16549      * The **`HTMLSelectElement.remove()`** method removes the element at the specified index from the options collection for this select element.
  16550      *
  16551      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/remove)
  16552      */
  16553     remove(): void;
  16554     remove(index: number): void;
  16555     /**
  16556      * The **`reportValidity()`** method of the HTMLSelectElement interface performs the same validity checking steps as the HTMLSelectElement.checkValidity method.
  16557      *
  16558      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/reportValidity)
  16559      */
  16560     reportValidity(): boolean;
  16561     /**
  16562      * The **`HTMLSelectElement.setCustomValidity()`** method sets the custom validity message for the selection element to the specified message.
  16563      *
  16564      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/setCustomValidity)
  16565      */
  16566     setCustomValidity(error: string): void;
  16567     /**
  16568      * The **`HTMLSelectElement.showPicker()`** method displays the browser picker for a `select` element.
  16569      *
  16570      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/showPicker)
  16571      */
  16572     showPicker(): void;
  16573     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSelectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16574     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16575     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSelectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16576     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16577     [name: number]: HTMLOptionElement | HTMLOptGroupElement;
  16578 }
  16579 
  16580 declare var HTMLSelectElement: {
  16581     prototype: HTMLSelectElement;
  16582     new(): HTMLSelectElement;
  16583 };
  16584 
  16585 /**
  16586  * The **`HTMLSlotElement`** interface of the Shadow DOM API enables access to the name and assigned nodes of an HTML slot element.
  16587  *
  16588  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement)
  16589  */
  16590 interface HTMLSlotElement extends HTMLElement {
  16591     /**
  16592      * The **`name`** property of the HTMLSlotElement interface returns or sets the slot name.
  16593      *
  16594      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/name)
  16595      */
  16596     name: string;
  16597     /**
  16598      * The **`assign()`** method of the HTMLSlotElement interface sets the slot's _manually assigned nodes_ to an ordered set of slottables.
  16599      *
  16600      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/assign)
  16601      */
  16602     assign(...nodes: (Element | Text)[]): void;
  16603     /**
  16604      * The **`assignedElements()`** method of the HTMLSlotElement interface returns a sequence of the elements assigned to this slot (and no other nodes).
  16605      *
  16606      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/assignedElements)
  16607      */
  16608     assignedElements(options?: AssignedNodesOptions): Element[];
  16609     /**
  16610      * The **`assignedNodes()`** method of the HTMLSlotElement interface returns a sequence of the nodes assigned to this slot.
  16611      *
  16612      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/assignedNodes)
  16613      */
  16614     assignedNodes(options?: AssignedNodesOptions): Node[];
  16615     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16616     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16617     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16618     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16619 }
  16620 
  16621 declare var HTMLSlotElement: {
  16622     prototype: HTMLSlotElement;
  16623     new(): HTMLSlotElement;
  16624 };
  16625 
  16626 /**
  16627  * The **`HTMLSourceElement`** interface provides special properties (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating source elements.
  16628  *
  16629  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement)
  16630  */
  16631 interface HTMLSourceElement extends HTMLElement {
  16632     /**
  16633      * The **`height`** property of the HTMLSourceElement interface is a non-negative number indicating the height of the image resource in CSS pixels.
  16634      *
  16635      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/height)
  16636      */
  16637     height: number;
  16638     /**
  16639      * The **`media`** property of the HTMLSourceElement interface is a string representing the intended destination medium for the resource.
  16640      *
  16641      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/media)
  16642      */
  16643     media: string;
  16644     /**
  16645      * The **`sizes`** property of the HTMLSourceElement interface is a string representing a list of one or more sizes, representing sizes between breakpoints, to which the resource applies.
  16646      *
  16647      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/sizes)
  16648      */
  16649     sizes: string;
  16650     /**
  16651      * The **`src`** property of the HTMLSourceElement interface is a string indicating the URL of a media resource to use as the source for the element.
  16652      *
  16653      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/src)
  16654      */
  16655     src: string;
  16656     /**
  16657      * The **`srcset`** property of the HTMLSourceElement interface is a string containing a comma-separated list of candidate images.
  16658      *
  16659      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/srcset)
  16660      */
  16661     srcset: string;
  16662     /**
  16663      * The **`type`** property of the HTMLSourceElement interface is a string representing the MIME type of the media resource.
  16664      *
  16665      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/type)
  16666      */
  16667     type: string;
  16668     /**
  16669      * The **`width`** property of the HTMLSourceElement interface is a non-negative number indicating the width of the image resource in CSS pixels.
  16670      *
  16671      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/width)
  16672      */
  16673     width: number;
  16674     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16675     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16676     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16677     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16678 }
  16679 
  16680 declare var HTMLSourceElement: {
  16681     prototype: HTMLSourceElement;
  16682     new(): HTMLSourceElement;
  16683 };
  16684 
  16685 /**
  16686  * The **`HTMLSpanElement`** interface represents a span element and derives from the HTMLElement interface, but without implementing any additional properties or methods.
  16687  *
  16688  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSpanElement)
  16689  */
  16690 interface HTMLSpanElement extends HTMLElement {
  16691     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSpanElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16692     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16693     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSpanElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16694     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16695 }
  16696 
  16697 declare var HTMLSpanElement: {
  16698     prototype: HTMLSpanElement;
  16699     new(): HTMLSpanElement;
  16700 };
  16701 
  16702 /**
  16703  * The **`HTMLStyleElement`** interface represents a style element.
  16704  *
  16705  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLStyleElement)
  16706  */
  16707 interface HTMLStyleElement extends HTMLElement, LinkStyle {
  16708     /**
  16709      * The **`blocking`** property of the HTMLStyleElement interface is a string indicating that certain operations should be blocked on the fetching of critical subresources.
  16710      *
  16711      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLStyleElement/blocking)
  16712      */
  16713     get blocking(): DOMTokenList;
  16714     set blocking(value: string);
  16715     /**
  16716      * The **`HTMLStyleElement.disabled`** property can be used to get and set whether the stylesheet is disabled (`true`) or not (`false`).
  16717      *
  16718      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLStyleElement/disabled)
  16719      */
  16720     disabled: boolean;
  16721     /**
  16722      * The **`HTMLStyleElement.media`** property specifies the intended destination medium for style information.
  16723      *
  16724      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLStyleElement/media)
  16725      */
  16726     media: string;
  16727     /**
  16728      * The **`HTMLStyleElement.type`** property returns the type of the current style.
  16729      * @deprecated
  16730      *
  16731      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLStyleElement/type)
  16732      */
  16733     type: string;
  16734     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLStyleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16735     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16736     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLStyleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16737     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16738 }
  16739 
  16740 declare var HTMLStyleElement: {
  16741     prototype: HTMLStyleElement;
  16742     new(): HTMLStyleElement;
  16743 };
  16744 
  16745 /**
  16746  * The **`HTMLTableCaptionElement`** interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating table caption elements.
  16747  *
  16748  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCaptionElement)
  16749  */
  16750 interface HTMLTableCaptionElement extends HTMLElement {
  16751     /**
  16752      * The **`align`** property of the HTMLTableCaptionElement interface is a string indicating how to horizontally align text in the caption table element.
  16753      * @deprecated
  16754      *
  16755      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCaptionElement/align)
  16756      */
  16757     align: string;
  16758     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCaptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16759     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16760     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCaptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16761     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16762 }
  16763 
  16764 declare var HTMLTableCaptionElement: {
  16765     prototype: HTMLTableCaptionElement;
  16766     new(): HTMLTableCaptionElement;
  16767 };
  16768 
  16769 /**
  16770  * The **`HTMLTableCellElement`** interface 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 cells (th) or data cells (td), in an HTML document.
  16771  *
  16772  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement)
  16773  */
  16774 interface HTMLTableCellElement extends HTMLElement {
  16775     /**
  16776      * The **`abbr`** property of the HTMLTableCellElement interface indicates an abbreviation associated with the cell.
  16777      *
  16778      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/abbr)
  16779      */
  16780     abbr: string;
  16781     /**
  16782      * The **`align`** property of the HTMLTableCellElement interface is a string indicating how to horizontally align text in the th or td table cell.
  16783      * @deprecated
  16784      *
  16785      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/align)
  16786      */
  16787     align: string;
  16788     /** @deprecated */
  16789     axis: string;
  16790     /**
  16791      * The **`HTMLTableCellElement.bgColor`** property is used to set the background color of a cell or get the value of the obsolete `bgColor` attribute, if present.
  16792      * @deprecated
  16793      *
  16794      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/bgColor)
  16795      */
  16796     bgColor: string;
  16797     /**
  16798      * The **`cellIndex`** read-only property of the HTMLTableCellElement interface represents the position of a cell within its row (tr).
  16799      *
  16800      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/cellIndex)
  16801      */
  16802     readonly cellIndex: number;
  16803     /**
  16804      * The **`ch`** property of the HTMLTableCellElement interface does nothing.
  16805      * @deprecated
  16806      *
  16807      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/ch)
  16808      */
  16809     ch: string;
  16810     /**
  16811      * The **`chOff`** property of the HTMLTableCellElement interface does nothing.
  16812      * @deprecated
  16813      *
  16814      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/chOff)
  16815      */
  16816     chOff: string;
  16817     /**
  16818      * The **`colSpan`** read-only property of the HTMLTableCellElement interface represents the number of columns this cell must span; this lets the cell occupy space across multiple columns of the table.
  16819      *
  16820      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/colSpan)
  16821      */
  16822     colSpan: number;
  16823     /**
  16824      * The **`headers`** property of the HTMLTableCellElement interface contains a list of IDs of th elements that are _headers_ for this specific cell.
  16825      *
  16826      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/headers)
  16827      */
  16828     headers: string;
  16829     /** @deprecated */
  16830     height: string;
  16831     /**
  16832      * The **`noWrap`** property of the HTMLTableCellElement interface returns a Boolean value indicating if the text of the cell may be wrapped on several lines or not.
  16833      * @deprecated
  16834      *
  16835      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/noWrap)
  16836      */
  16837     noWrap: boolean;
  16838     /**
  16839      * The **`rowSpan`** read-only property of the HTMLTableCellElement interface represents the number of rows this cell must span; this lets the cell occupy space across multiple rows of the table.
  16840      *
  16841      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/rowSpan)
  16842      */
  16843     rowSpan: number;
  16844     /**
  16845      * The **`scope`** property of the HTMLTableCellElement interface indicates the scope of a th cell.
  16846      *
  16847      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/scope)
  16848      */
  16849     scope: string;
  16850     /**
  16851      * The **`vAlign`** property of the HTMLTableCellElement interface is a string indicating how to vertically align text in a th or td table cell.
  16852      * @deprecated
  16853      *
  16854      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/vAlign)
  16855      */
  16856     vAlign: string;
  16857     /** @deprecated */
  16858     width: string;
  16859     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16860     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16861     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16862     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16863 }
  16864 
  16865 declare var HTMLTableCellElement: {
  16866     prototype: HTMLTableCellElement;
  16867     new(): HTMLTableCellElement;
  16868 };
  16869 
  16870 /**
  16871  * The **`HTMLTableColElement`** interface provides properties for manipulating single or grouped table column elements.
  16872  *
  16873  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement)
  16874  */
  16875 interface HTMLTableColElement extends HTMLElement {
  16876     /**
  16877      * The **`align`** property of the HTMLTableColElement interface is a string indicating how to horizontally align text in a table col column element.
  16878      * @deprecated
  16879      *
  16880      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/align)
  16881      */
  16882     align: string;
  16883     /**
  16884      * The **`ch`** property of the HTMLTableColElement interface does nothing.
  16885      * @deprecated
  16886      *
  16887      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/ch)
  16888      */
  16889     ch: string;
  16890     /**
  16891      * The **`chOff`** property of the HTMLTableColElement interface does nothing.
  16892      * @deprecated
  16893      *
  16894      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/chOff)
  16895      */
  16896     chOff: string;
  16897     /**
  16898      * The **`span`** read-only property of the HTMLTableColElement interface represents the number of columns this col or colgroup must span; this lets the column occupy space across multiple columns of the table.
  16899      *
  16900      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/span)
  16901      */
  16902     span: number;
  16903     /**
  16904      * The **`vAlign`** property of the HTMLTableColElement interface is a string indicating how to vertically align text in a table col column element.
  16905      * @deprecated
  16906      *
  16907      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/vAlign)
  16908      */
  16909     vAlign: string;
  16910     /** @deprecated */
  16911     width: string;
  16912     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableColElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16913     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16914     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableColElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16915     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16916 }
  16917 
  16918 declare var HTMLTableColElement: {
  16919     prototype: HTMLTableColElement;
  16920     new(): HTMLTableColElement;
  16921 };
  16922 
  16923 /** @deprecated prefer HTMLTableCellElement */
  16924 interface HTMLTableDataCellElement extends HTMLTableCellElement {
  16925     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableDataCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  16926     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  16927     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableDataCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  16928     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  16929 }
  16930 
  16931 /**
  16932  * The **`HTMLTableElement`** interface 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.
  16933  *
  16934  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement)
  16935  */
  16936 interface HTMLTableElement extends HTMLElement {
  16937     /**
  16938      * The **`HTMLTableElement.align`** property represents the alignment of the table.
  16939      * @deprecated
  16940      *
  16941      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/align)
  16942      */
  16943     align: string;
  16944     /**
  16945      * The **`bgcolor`** property of the HTMLTableElement represents the background color of the table.
  16946      * @deprecated
  16947      *
  16948      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/bgColor)
  16949      */
  16950     bgColor: string;
  16951     /**
  16952      * The **`HTMLTableElement.border`** property represents the border width of the table element.
  16953      * @deprecated
  16954      *
  16955      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/border)
  16956      */
  16957     border: string;
  16958     /**
  16959      * The **`HTMLTableElement.caption`** property represents the table caption.
  16960      *
  16961      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/caption)
  16962      */
  16963     caption: HTMLTableCaptionElement | null;
  16964     /**
  16965      * The **`HTMLTableElement.cellPadding`** property represents the padding around the individual cells of the table.
  16966      * @deprecated
  16967      *
  16968      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/cellPadding)
  16969      */
  16970     cellPadding: string;
  16971     /**
  16972      * While you should instead use the CSS interface's **`cellSpacing`** property represents the spacing around the individual th and td elements representing a table's cells.
  16973      * @deprecated
  16974      *
  16975      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/cellSpacing)
  16976      */
  16977     cellSpacing: string;
  16978     /**
  16979      * The HTMLTableElement interface's **`frame`** property is a string that indicates which of the table's exterior borders should be drawn.
  16980      * @deprecated
  16981      *
  16982      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/frame)
  16983      */
  16984     frame: string;
  16985     /**
  16986      * The read-only HTMLTableElement property **`rows`** returns a live contained within any thead, tfoot, and Although the property itself is read-only, the returned object is live and allows the modification of its content.
  16987      *
  16988      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/rows)
  16989      */
  16990     readonly rows: HTMLCollectionOf<HTMLTableRowElement>;
  16991     /**
  16992      * The **`HTMLTableElement.rules`** property indicates which cell borders to render in the table.
  16993      * @deprecated
  16994      *
  16995      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/rules)
  16996      */
  16997     rules: string;
  16998     /**
  16999      * The **`HTMLTableElement.summary`** property represents the table description.
  17000      * @deprecated
  17001      *
  17002      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/summary)
  17003      */
  17004     summary: string;
  17005     /**
  17006      * The **`HTMLTableElement.tBodies`** read-only property returns a live HTMLCollection of the bodies in a table.
  17007      *
  17008      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/tBodies)
  17009      */
  17010     readonly tBodies: HTMLCollectionOf<HTMLTableSectionElement>;
  17011     /**
  17012      * The **`HTMLTableElement.tFoot`** property represents the `null` if there is no such element.
  17013      *
  17014      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/tFoot)
  17015      */
  17016     tFoot: HTMLTableSectionElement | null;
  17017     /**
  17018      * The **`HTMLTableElement.tHead`** represents the `null` if there is no such element.
  17019      *
  17020      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/tHead)
  17021      */
  17022     tHead: HTMLTableSectionElement | null;
  17023     /**
  17024      * The **`HTMLTableElement.width`** property represents the desired width of the table.
  17025      * @deprecated
  17026      *
  17027      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/width)
  17028      */
  17029     width: string;
  17030     /**
  17031      * The **`HTMLTableElement.createCaption()`** method returns the If no `<caption>` element exists on the table, this method creates it, and then returns it.
  17032      *
  17033      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/createCaption)
  17034      */
  17035     createCaption(): HTMLTableCaptionElement;
  17036     /**
  17037      * The **`createTBody()`** method of ```js-nolint createTBody() ``` None.
  17038      *
  17039      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/createTBody)
  17040      */
  17041     createTBody(): HTMLTableSectionElement;
  17042     /**
  17043      * The **`createTFoot()`** method of associated with a given table.
  17044      *
  17045      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/createTFoot)
  17046      */
  17047     createTFoot(): HTMLTableSectionElement;
  17048     /**
  17049      * The **`createTHead()`** method of associated with a given table.
  17050      *
  17051      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/createTHead)
  17052      */
  17053     createTHead(): HTMLTableSectionElement;
  17054     /**
  17055      * The **`HTMLTableElement.deleteCaption()`** method removes the `<caption>` element associated with the table, this method does nothing.
  17056      *
  17057      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/deleteCaption)
  17058      */
  17059     deleteCaption(): void;
  17060     /**
  17061      * The **`HTMLTableElement.deleteRow()`** method removes a specific row (tr) from a given table.
  17062      *
  17063      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/deleteRow)
  17064      */
  17065     deleteRow(index: number): void;
  17066     /**
  17067      * The **`HTMLTableElement.deleteTFoot()`** method removes the ```js-nolint deleteTFoot() ``` None.
  17068      *
  17069      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/deleteTFoot)
  17070      */
  17071     deleteTFoot(): void;
  17072     /**
  17073      * The **`HTMLTableElement.deleteTHead()`** removes the ```js-nolint deleteTHead() ``` None.
  17074      *
  17075      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/deleteTHead)
  17076      */
  17077     deleteTHead(): void;
  17078     /**
  17079      * The **`insertRow()`** method of the HTMLTableElement interface inserts a new row (tr) in a given table, and returns a reference to the new row.
  17080      *
  17081      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/insertRow)
  17082      */
  17083     insertRow(index?: number): HTMLTableRowElement;
  17084     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  17085     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  17086     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  17087     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  17088 }
  17089 
  17090 declare var HTMLTableElement: {
  17091     prototype: HTMLTableElement;
  17092     new(): HTMLTableElement;
  17093 };
  17094 
  17095 /** @deprecated prefer HTMLTableCellElement */
  17096 interface HTMLTableHeaderCellElement extends HTMLTableCellElement {
  17097     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableHeaderCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  17098     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  17099     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableHeaderCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  17100     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  17101 }
  17102 
  17103 /**
  17104  * The **`HTMLTableRowElement`** interface 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.
  17105  *
  17106  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement)
  17107  */
  17108 interface HTMLTableRowElement extends HTMLElement {
  17109     /**
  17110      * The **`align`** property of the HTMLTableRowElement interface is a string indicating how to horizontally align text in the tr table row.
  17111      * @deprecated
  17112      *
  17113      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/align)
  17114      */
  17115     align: string;
  17116     /**
  17117      * The **`HTMLTableRowElement.bgColor`** property is used to set the background color of a row or retrieve the value of the obsolete `bgColor` attribute, if present.
  17118      * @deprecated
  17119      *
  17120      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/bgColor)
  17121      */
  17122     bgColor: string;
  17123     /**
  17124      * The **`cells`** read-only property of the HTMLTableRowElement interface returns a live HTMLCollection containing the cells in the row.
  17125      *
  17126      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/cells)
  17127      */
  17128     readonly cells: HTMLCollectionOf<HTMLTableCellElement>;
  17129     /**
  17130      * The **`ch`** property of the HTMLTableRowElement interface does nothing.
  17131      * @deprecated
  17132      *
  17133      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/ch)
  17134      */
  17135     ch: string;
  17136     /**
  17137      * The **`chOff`** property of the HTMLTableRowElement interface does nothing.
  17138      * @deprecated
  17139      *
  17140      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/chOff)
  17141      */
  17142     chOff: string;
  17143     /**
  17144      * The **`rowIndex`** read-only property of the HTMLTableRowElement interface represents the position of a row within the whole table.
  17145      *
  17146      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/rowIndex)
  17147      */
  17148     readonly rowIndex: number;
  17149     /**
  17150      * The **`sectionRowIndex`** read-only property of the HTMLTableRowElement interface represents the position of a row within the current section (thead, tbody, or tfoot).
  17151      *
  17152      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/sectionRowIndex)
  17153      */
  17154     readonly sectionRowIndex: number;
  17155     /**
  17156      * The **`vAlign`** property of the HTMLTableRowElement interface is a string indicating how to vertically align text in a tr table row.
  17157      * @deprecated
  17158      *
  17159      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/vAlign)
  17160      */
  17161     vAlign: string;
  17162     /**
  17163      * The **`deleteCell()`** method of the HTMLTableRowElement interface removes a specific row cell from a given tr.
  17164      *
  17165      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/deleteCell)
  17166      */
  17167     deleteCell(index: number): void;
  17168     /**
  17169      * The **`insertCell()`** method of the HTMLTableRowElement interface inserts a new cell (td) into a table row (tr) and returns a reference to the cell.
  17170      *
  17171      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/insertCell)
  17172      */
  17173     insertCell(index?: number): HTMLTableCellElement;
  17174     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableRowElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  17175     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  17176     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableRowElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  17177     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  17178 }
  17179 
  17180 declare var HTMLTableRowElement: {
  17181     prototype: HTMLTableRowElement;
  17182     new(): HTMLTableRowElement;
  17183 };
  17184 
  17185 /**
  17186  * The **`HTMLTableSectionElement`** interface 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 (thead, tfoot, and tbody, respectively) in an HTML table.
  17187  *
  17188  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement)
  17189  */
  17190 interface HTMLTableSectionElement extends HTMLElement {
  17191     /**
  17192      * The **`align`** property of the HTMLTableSectionElement interface is a string indicating how to horizontally align text in a thead, tbody or tfoot table section.
  17193      * @deprecated
  17194      *
  17195      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/align)
  17196      */
  17197     align: string;
  17198     /**
  17199      * The **`ch`** property of the HTMLTableSectionElement interface does nothing.
  17200      * @deprecated
  17201      *
  17202      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/ch)
  17203      */
  17204     ch: string;
  17205     /**
  17206      * The **`chOff`** property of the HTMLTableSectionElement interface does nothing.
  17207      * @deprecated
  17208      *
  17209      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/chOff)
  17210      */
  17211     chOff: string;
  17212     /**
  17213      * The **`rows`** read-only property of the HTMLTableSectionElement interface returns a live HTMLCollection containing the rows in the section.
  17214      *
  17215      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/rows)
  17216      */
  17217     readonly rows: HTMLCollectionOf<HTMLTableRowElement>;
  17218     /**
  17219      * The **`vAlign`** property of the HTMLTableSectionElement interface is a string indicating how to vertically align text in a thead, tbody or tfoot table section.
  17220      * @deprecated
  17221      *
  17222      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/vAlign)
  17223      */
  17224     vAlign: string;
  17225     /**
  17226      * The **`deleteRow()`** method of the HTMLTableSectionElement interface removes a specific row (tr) from a given section.
  17227      *
  17228      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/deleteRow)
  17229      */
  17230     deleteRow(index: number): void;
  17231     /**
  17232      * The **`insertRow()`** method of the HTMLTableSectionElement interface inserts a new row (tr) in the given table sectioning element (thead, tfoot, or ```js-nolint insertRow() insertRow(index) ``` - `index` [MISSING: optional_inline] - : The row index of the new row.
  17233      *
  17234      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/insertRow)
  17235      */
  17236     insertRow(index?: number): HTMLTableRowElement;
  17237     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableSectionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  17238     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  17239     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableSectionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  17240     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  17241 }
  17242 
  17243 declare var HTMLTableSectionElement: {
  17244     prototype: HTMLTableSectionElement;
  17245     new(): HTMLTableSectionElement;
  17246 };
  17247 
  17248 /**
  17249  * The **`HTMLTemplateElement`** interface enables access to the contents of an HTML template element.
  17250  *
  17251  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTemplateElement)
  17252  */
  17253 interface HTMLTemplateElement extends HTMLElement {
  17254     /**
  17255      * The **`HTMLTemplateElement.content`** property returns a `<template>` element's template contents (a A DocumentFragment.
  17256      *
  17257      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTemplateElement/content)
  17258      */
  17259     readonly content: DocumentFragment;
  17260     /**
  17261      * The **`shadowRootClonable`** property reflects the value of the `shadowrootclonable` attribute of the associated `<template>` element.
  17262      *
  17263      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTemplateElement/shadowRootClonable)
  17264      */
  17265     shadowRootClonable: boolean;
  17266     /**
  17267      * The **`shadowRootDelegatesFocus`** property of the HTMLTemplateElement interface reflects the value of the `shadowrootdelegatesfocus` attribute of the associated `<template>` element.
  17268      *
  17269      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTemplateElement/shadowRootDelegatesFocus)
  17270      */
  17271     shadowRootDelegatesFocus: boolean;
  17272     /**
  17273      * The **`shadowRootMode`** property of the HTMLTemplateElement interface reflects the value of the `shadowrootmode` attribute of the associated `<template>` element.
  17274      *
  17275      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTemplateElement/shadowRootMode)
  17276      */
  17277     shadowRootMode: string;
  17278     /**
  17279      * The **`shadowRootSerializable`** property reflects the value of the `shadowrootserializable` attribute of the associated `<template>` element.
  17280      *
  17281      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTemplateElement/shadowRootSerializable)
  17282      */
  17283     shadowRootSerializable: boolean;
  17284     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTemplateElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  17285     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  17286     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTemplateElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  17287     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  17288 }
  17289 
  17290 declare var HTMLTemplateElement: {
  17291     prototype: HTMLTemplateElement;
  17292     new(): HTMLTemplateElement;
  17293 };
  17294 
  17295 /**
  17296  * The **`HTMLTextAreaElement`** interface provides properties and methods for manipulating the layout and presentation of textarea elements.
  17297  *
  17298  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement)
  17299  */
  17300 interface HTMLTextAreaElement extends HTMLElement {
  17301     /**
  17302      * The **`autocomplete`** property of the HTMLTextAreaElement interface indicates whether the value of the control can be automatically completed by the browser.
  17303      *
  17304      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/autocomplete)
  17305      */
  17306     autocomplete: AutoFill;
  17307     /**
  17308      * The **`cols`** property of the HTMLTextAreaElement interface is a positive integer representing the visible width of the multi-line text control, in average character widths.
  17309      *
  17310      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/cols)
  17311      */
  17312     cols: number;
  17313     /**
  17314      * The **`defaultValue`** property of the HTMLTextAreaElement interface represents the default text content of this text area.
  17315      *
  17316      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/defaultValue)
  17317      */
  17318     defaultValue: string;
  17319     /**
  17320      * The **`dirName`** property of the HTMLTextAreaElement interface is the directionality of the element.
  17321      *
  17322      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/dirName)
  17323      */
  17324     dirName: string;
  17325     /**
  17326      * The **`disabled`** property of the HTMLTextAreaElement interface indicates whether this multi-line text control is disabled and cannot be interacted with.
  17327      *
  17328      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/disabled)
  17329      */
  17330     disabled: boolean;
  17331     /**
  17332      * The **`form`** read-only property of the HTMLTextAreaElement interface returns an HTMLFormElement object that owns this textarea, or `null` if this textarea is not owned by any form.
  17333      *
  17334      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/form)
  17335      */
  17336     readonly form: HTMLFormElement | null;
  17337     /**
  17338      * The **`HTMLTextAreaElement.labels`** read-only property returns a NodeList of the label elements associated with the A NodeList containing the `<label>` elements associated with the `<textArea>` element.
  17339      *
  17340      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/labels)
  17341      */
  17342     readonly labels: NodeListOf<HTMLLabelElement>;
  17343     /**
  17344      * The **`maxLength`** property of the HTMLTextAreaElement interface indicates the maximum number of characters (in UTF-16 code units) allowed to be entered for the value of the textarea element, and the maximum number of characters allowed for the value to be valid.
  17345      *
  17346      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/maxLength)
  17347      */
  17348     maxLength: number;
  17349     /**
  17350      * The **`minLength`** property of the HTMLTextAreaElement interface indicates the minimum number of characters (in UTF-16 code units) required for the value of the textarea element to be valid.
  17351      *
  17352      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/minLength)
  17353      */
  17354     minLength: number;
  17355     /**
  17356      * The **`name`** property of the HTMLTextAreaElement interface indicates the name of the textarea element.
  17357      *
  17358      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/name)
  17359      */
  17360     name: string;
  17361     /**
  17362      * The **`placeholder`** property of the HTMLTextAreaElement interface represents a hint to the user of what can be entered in the control.
  17363      *
  17364      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/placeholder)
  17365      */
  17366     placeholder: string;
  17367     /**
  17368      * The **`readOnly`** property of the HTMLTextAreaElement interface indicates that the user cannot modify the value of the control.
  17369      *
  17370      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/readOnly)
  17371      */
  17372     readOnly: boolean;
  17373     /**
  17374      * The **`required`** property of the HTMLTextAreaElement interface specifies that the user must fill in a value before submitting a form.
  17375      *
  17376      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/required)
  17377      */
  17378     required: boolean;
  17379     /**
  17380      * The **`rows`** property of the HTMLTextAreaElement interface is a positive integer representing the visible text lines of the text control.
  17381      *
  17382      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/rows)
  17383      */
  17384     rows: number;
  17385     /**
  17386      * <!-- --> The **`selectionDirection`** property of the HTMLTextAreaElement interface specifies the current direction of the selection.
  17387      *
  17388      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/selectionDirection)
  17389      */
  17390     selectionDirection: "forward" | "backward" | "none";
  17391     /**
  17392      * The **`selectionEnd`** property of the HTMLTextAreaElement interface specifies the end position of the current text selection in a textarea element.
  17393      *
  17394      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/selectionEnd)
  17395      */
  17396     selectionEnd: number;
  17397     /**
  17398      * The **`selectionStart`** property of the HTMLTextAreaElement interface specifies the start position of the current text selection in a textarea element.
  17399      *
  17400      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/selectionStart)
  17401      */
  17402     selectionStart: number;
  17403     /**
  17404      * The **`textLength`** read-only property of the HTMLTextAreaElement interface is a non-negative integer representing the number of characters, in UTF-16 code units, of the textarea element's value.
  17405      *
  17406      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/textLength)
  17407      */
  17408     readonly textLength: number;
  17409     /**
  17410      * The **`type`** read-only property of the HTMLTextAreaElement interface returns the string `'textarea'`.
  17411      *
  17412      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/type)
  17413      */
  17414     readonly type: string;
  17415     /**
  17416      * The **`validationMessage`** read-only property of the HTMLTextAreaElement interface returns a string representing a localized message that describes the validation constraints that the textarea control does not satisfy (if any).
  17417      *
  17418      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/validationMessage)
  17419      */
  17420     readonly validationMessage: string;
  17421     /**
  17422      * The **`validity`** read-only property of the HTMLTextAreaElement interface returns a ValidityState object that represents the validity states this element is in.
  17423      *
  17424      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/validity)
  17425      */
  17426     readonly validity: ValidityState;
  17427     /**
  17428      * The **`value`** property of the HTMLTextAreaElement interface represents the value of the textarea element as a string, which is an empty string if the widget contains no content.
  17429      *
  17430      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/value)
  17431      */
  17432     value: string;
  17433     /**
  17434      * The **`willValidate`** read-only property of the HTMLTextAreaElement interface indicates whether the textarea element is a candidate for constraint validation.
  17435      *
  17436      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/willValidate)
  17437      */
  17438     readonly willValidate: boolean;
  17439     /**
  17440      * The **`wrap`** property of the HTMLTextAreaElement interface indicates how the control should wrap the value for form submission.
  17441      *
  17442      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/wrap)
  17443      */
  17444     wrap: string;
  17445     /**
  17446      * The **`checkValidity()`** method of the HTMLTextAreaElement interface returns a boolean value which indicates if the element meets any constraint validation rules applied to it.
  17447      *
  17448      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/checkValidity)
  17449      */
  17450     checkValidity(): boolean;
  17451     /**
  17452      * The **`reportValidity()`** method of the HTMLTextAreaElement interface performs the same validity checking steps as the HTMLTextAreaElement.checkValidity method.
  17453      *
  17454      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/reportValidity)
  17455      */
  17456     reportValidity(): boolean;
  17457     /**
  17458      * The **`select()`** method of the HTMLTextAreaElement interface selects the entire contents of the textarea element.
  17459      *
  17460      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/select)
  17461      */
  17462     select(): void;
  17463     /**
  17464      * The **`setCustomValidity()`** method of the HTMLTextAreaElement interface sets the custom validity message for the textarea element.
  17465      *
  17466      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/setCustomValidity)
  17467      */
  17468     setCustomValidity(error: string): void;
  17469     /**
  17470      * The **`setRangeText()`** method of the HTMLTextAreaElement interface replaces a range of text in a textarea element with new text passed as the argument.
  17471      *
  17472      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/setRangeText)
  17473      */
  17474     setRangeText(replacement: string): void;
  17475     setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;
  17476     /**
  17477      * The **`setSelectionRange()`** method of the HTMLTextAreaElement interface sets the start and end positions of the current text selection, and optionally the direction, in a textarea element.
  17478      *
  17479      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/setSelectionRange)
  17480      */
  17481     setSelectionRange(start: number | null, end: number | null, direction?: "forward" | "backward" | "none"): void;
  17482     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTextAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  17483     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  17484     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTextAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  17485     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  17486 }
  17487 
  17488 declare var HTMLTextAreaElement: {
  17489     prototype: HTMLTextAreaElement;
  17490     new(): HTMLTextAreaElement;
  17491 };
  17492 
  17493 /**
  17494  * The **`HTMLTimeElement`** interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating time elements.
  17495  *
  17496  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTimeElement)
  17497  */
  17498 interface HTMLTimeElement extends HTMLElement {
  17499     /**
  17500      * The **`dateTime`** property of the HTMLTimeElement interface is a string that reflects the `datetime` HTML attribute, containing a machine-readable form of the element's date and time value.
  17501      *
  17502      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTimeElement/dateTime)
  17503      */
  17504     dateTime: string;
  17505     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTimeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  17506     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  17507     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTimeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  17508     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  17509 }
  17510 
  17511 declare var HTMLTimeElement: {
  17512     prototype: HTMLTimeElement;
  17513     new(): HTMLTimeElement;
  17514 };
  17515 
  17516 /**
  17517  * The **`HTMLTitleElement`** interface is implemented by a document's title.
  17518  *
  17519  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTitleElement)
  17520  */
  17521 interface HTMLTitleElement extends HTMLElement {
  17522     /**
  17523      * The **`text`** property of the HTMLTitleElement interface represents the child text content of the document's title as a string.
  17524      *
  17525      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTitleElement/text)
  17526      */
  17527     text: string;
  17528     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTitleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  17529     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  17530     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTitleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  17531     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  17532 }
  17533 
  17534 declare var HTMLTitleElement: {
  17535     prototype: HTMLTitleElement;
  17536     new(): HTMLTitleElement;
  17537 };
  17538 
  17539 /**
  17540  * The **`HTMLTrackElement`** interface represents an HTML track element within the DOM.
  17541  *
  17542  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement)
  17543  */
  17544 interface HTMLTrackElement extends HTMLElement {
  17545     /**
  17546      * The **`default`** property of the HTMLTrackElement interface represents whether the track will be enabled if the user's preferences do not indicate that another track would be more appropriate.
  17547      *
  17548      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/default)
  17549      */
  17550     default: boolean;
  17551     /**
  17552      * The **`kind`** property of the HTMLTrackElement interface represents the type of track, or how the text track is meant to be used.
  17553      *
  17554      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/kind)
  17555      */
  17556     kind: string;
  17557     /**
  17558      * The **`label`** property of the HTMLTrackElement represents the user-readable title displayed when listing subtitle, caption, and audio descriptions for a track.
  17559      *
  17560      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/label)
  17561      */
  17562     label: string;
  17563     /**
  17564      * The **`readyState`** read-only property of the HTMLTrackElement interface returns a number representing the track element's text track readiness state: 0.
  17565      *
  17566      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/readyState)
  17567      */
  17568     readonly readyState: number;
  17569     /**
  17570      * The **`src`** property of the HTMLTrackElement interface reflects the value of the track element's `src` attribute, which indicates the URL of the text track's data.
  17571      *
  17572      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/src)
  17573      */
  17574     src: string;
  17575     /**
  17576      * The **`srclang`** property of the HTMLTrackElement interface reflects the value of the track element's `srclang` attribute or the empty string if not defined.
  17577      *
  17578      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/srclang)
  17579      */
  17580     srclang: string;
  17581     /**
  17582      * The **`track`** read-only property of the HTMLTrackElement interface returns a TextTrack object corresponding to the text track of the track element.
  17583      *
  17584      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/track)
  17585      */
  17586     readonly track: TextTrack;
  17587     readonly NONE: 0;
  17588     readonly LOADING: 1;
  17589     readonly LOADED: 2;
  17590     readonly ERROR: 3;
  17591     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTrackElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  17592     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  17593     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTrackElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  17594     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  17595 }
  17596 
  17597 declare var HTMLTrackElement: {
  17598     prototype: HTMLTrackElement;
  17599     new(): HTMLTrackElement;
  17600     readonly NONE: 0;
  17601     readonly LOADING: 1;
  17602     readonly LOADED: 2;
  17603     readonly ERROR: 3;
  17604 };
  17605 
  17606 /**
  17607  * The **`HTMLUListElement`** interface provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating unordered list (ul) elements.
  17608  *
  17609  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLUListElement)
  17610  */
  17611 interface HTMLUListElement extends HTMLElement {
  17612     /** @deprecated */
  17613     compact: boolean;
  17614     /** @deprecated */
  17615     type: string;
  17616     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  17617     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  17618     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  17619     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  17620 }
  17621 
  17622 declare var HTMLUListElement: {
  17623     prototype: HTMLUListElement;
  17624     new(): HTMLUListElement;
  17625 };
  17626 
  17627 /**
  17628  * The **`HTMLUnknownElement`** interface represents an invalid HTML element and derives from the HTMLElement interface, but without implementing any additional properties or methods.
  17629  *
  17630  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLUnknownElement)
  17631  */
  17632 interface HTMLUnknownElement extends HTMLElement {
  17633     addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUnknownElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  17634     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  17635     removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUnknownElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  17636     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  17637 }
  17638 
  17639 declare var HTMLUnknownElement: {
  17640     prototype: HTMLUnknownElement;
  17641     new(): HTMLUnknownElement;
  17642 };
  17643 
  17644 interface HTMLVideoElementEventMap extends HTMLMediaElementEventMap {
  17645     "enterpictureinpicture": PictureInPictureEvent;
  17646     "leavepictureinpicture": PictureInPictureEvent;
  17647 }
  17648 
  17649 /**
  17650  * Implemented by the video element, the **`HTMLVideoElement`** interface provides special properties and methods for manipulating video objects.
  17651  *
  17652  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement)
  17653  */
  17654 interface HTMLVideoElement extends HTMLMediaElement {
  17655     /**
  17656      * The HTMLVideoElement **`disablePictureInPicture`** property reflects the HTML attribute indicating whether the picture-in-picture feature is disabled for the current element.
  17657      *
  17658      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/disablePictureInPicture)
  17659      */
  17660     disablePictureInPicture: boolean;
  17661     /**
  17662      * The **`height`** property of the HTMLVideoElement interface returns an integer that reflects the `height` attribute of the video element, specifying the displayed height of the resource in CSS pixels.
  17663      *
  17664      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/height)
  17665      */
  17666     height: number;
  17667     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/enterpictureinpicture_event) */
  17668     onenterpictureinpicture: ((this: HTMLVideoElement, ev: PictureInPictureEvent) => any) | null;
  17669     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/leavepictureinpicture_event) */
  17670     onleavepictureinpicture: ((this: HTMLVideoElement, ev: PictureInPictureEvent) => any) | null;
  17671     playsInline: boolean;
  17672     /**
  17673      * The **`poster`** property of the HTMLVideoElement interface is a string that reflects the URL for an image to be shown while no video data is available.
  17674      *
  17675      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/poster)
  17676      */
  17677     poster: string;
  17678     /**
  17679      * The HTMLVideoElement interface's read-only **`videoHeight`** property indicates the intrinsic height of the video, expressed in CSS pixels.
  17680      *
  17681      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/videoHeight)
  17682      */
  17683     readonly videoHeight: number;
  17684     /**
  17685      * The HTMLVideoElement interface's read-only **`videoWidth`** property indicates the intrinsic width of the video, expressed in CSS pixels.
  17686      *
  17687      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/videoWidth)
  17688      */
  17689     readonly videoWidth: number;
  17690     /**
  17691      * The **`width`** property of the HTMLVideoElement interface returns an integer that reflects the `width` attribute of the video element, specifying the displayed width of the resource in CSS pixels.
  17692      *
  17693      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/width)
  17694      */
  17695     width: number;
  17696     /**
  17697      * The **`cancelVideoFrameCallback()`** method of the HTMLVideoElement interface cancels a previously-registered video frame callback.
  17698      *
  17699      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/cancelVideoFrameCallback)
  17700      */
  17701     cancelVideoFrameCallback(handle: number): void;
  17702     /**
  17703      * The **HTMLVideoElement** method **`getVideoPlaybackQuality()`** creates and returns a frames have been lost.
  17704      *
  17705      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/getVideoPlaybackQuality)
  17706      */
  17707     getVideoPlaybackQuality(): VideoPlaybackQuality;
  17708     /**
  17709      * The **HTMLVideoElement** method **`requestPictureInPicture()`** issues an asynchronous request to display the video in picture-in-picture mode.
  17710      *
  17711      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/requestPictureInPicture)
  17712      */
  17713     requestPictureInPicture(): Promise<PictureInPictureWindow>;
  17714     /**
  17715      * The **`requestVideoFrameCallback()`** method of the HTMLVideoElement interface registers a callback function that runs when a new video frame is sent to the compositor.
  17716      *
  17717      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/requestVideoFrameCallback)
  17718      */
  17719     requestVideoFrameCallback(callback: VideoFrameRequestCallback): number;
  17720     addEventListener<K extends keyof HTMLVideoElementEventMap>(type: K, listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  17721     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  17722     removeEventListener<K extends keyof HTMLVideoElementEventMap>(type: K, listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  17723     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  17724 }
  17725 
  17726 declare var HTMLVideoElement: {
  17727     prototype: HTMLVideoElement;
  17728     new(): HTMLVideoElement;
  17729 };
  17730 
  17731 /**
  17732  * The **`HashChangeEvent`** interface represents events that fire when the fragment identifier of the URL has changed.
  17733  *
  17734  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HashChangeEvent)
  17735  */
  17736 interface HashChangeEvent extends Event {
  17737     /**
  17738      * The **`newURL`** read-only property of the navigating.
  17739      *
  17740      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HashChangeEvent/newURL)
  17741      */
  17742     readonly newURL: string;
  17743     /**
  17744      * The **`oldURL`** read-only property of the was navigated.
  17745      *
  17746      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HashChangeEvent/oldURL)
  17747      */
  17748     readonly oldURL: string;
  17749 }
  17750 
  17751 declare var HashChangeEvent: {
  17752     prototype: HashChangeEvent;
  17753     new(type: string, eventInitDict?: HashChangeEventInit): HashChangeEvent;
  17754 };
  17755 
  17756 /**
  17757  * The **`Headers`** interface of the Fetch API allows you to perform various actions on HTTP request and response headers.
  17758  *
  17759  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers)
  17760  */
  17761 interface Headers {
  17762     /**
  17763      * The **`append()`** method of the Headers interface appends a new value onto an existing header inside a `Headers` object, or adds the header if it does not already exist.
  17764      *
  17765      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/append)
  17766      */
  17767     append(name: string, value: string): void;
  17768     /**
  17769      * The **`delete()`** method of the Headers interface deletes a header from the current `Headers` object.
  17770      *
  17771      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/delete)
  17772      */
  17773     delete(name: string): void;
  17774     /**
  17775      * The **`get()`** method of the Headers interface returns a byte string of all the values of a header within a `Headers` object with a given name.
  17776      *
  17777      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/get)
  17778      */
  17779     get(name: string): string | null;
  17780     /**
  17781      * The **`getSetCookie()`** method of the Headers interface returns an array containing the values of all Set-Cookie headers associated with a response.
  17782      *
  17783      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/getSetCookie)
  17784      */
  17785     getSetCookie(): string[];
  17786     /**
  17787      * The **`has()`** method of the Headers interface returns a boolean stating whether a `Headers` object contains a certain header.
  17788      *
  17789      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/has)
  17790      */
  17791     has(name: string): boolean;
  17792     /**
  17793      * The **`set()`** method of the Headers interface sets a new value for an existing header inside a `Headers` object, or adds the header if it does not already exist.
  17794      *
  17795      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/set)
  17796      */
  17797     set(name: string, value: string): void;
  17798     forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void;
  17799 }
  17800 
  17801 declare var Headers: {
  17802     prototype: Headers;
  17803     new(init?: HeadersInit): Headers;
  17804 };
  17805 
  17806 /**
  17807  * The **`Highlight`** interface of the CSS Custom Highlight API is used to represent a collection of Range instances to be styled using the API.
  17808  *
  17809  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Highlight)
  17810  */
  17811 interface Highlight {
  17812     /**
  17813      * It is possible to create Range objects that overlap in a document.
  17814      *
  17815      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Highlight/priority)
  17816      */
  17817     priority: number;
  17818     /**
  17819      * The `type` property of the Highlight interface is an enumerated String used to specify the meaning of the highlight.
  17820      *
  17821      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Highlight/type)
  17822      */
  17823     type: HighlightType;
  17824     forEach(callbackfn: (value: AbstractRange, key: AbstractRange, parent: Highlight) => void, thisArg?: any): void;
  17825 }
  17826 
  17827 declare var Highlight: {
  17828     prototype: Highlight;
  17829     new(...initialRanges: AbstractRange[]): Highlight;
  17830 };
  17831 
  17832 /**
  17833  * The **`HighlightRegistry`** interface of the CSS Custom Highlight API is used to register Highlight objects to be styled using the API.
  17834  *
  17835  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HighlightRegistry)
  17836  */
  17837 interface HighlightRegistry {
  17838     forEach(callbackfn: (value: Highlight, key: string, parent: HighlightRegistry) => void, thisArg?: any): void;
  17839 }
  17840 
  17841 declare var HighlightRegistry: {
  17842     prototype: HighlightRegistry;
  17843     new(): HighlightRegistry;
  17844 };
  17845 
  17846 /**
  17847  * The **`History`** interface of the History API allows manipulation of the browser _session history_, that is the pages visited in the tab or frame that the current page is loaded in.
  17848  *
  17849  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/History)
  17850  */
  17851 interface History {
  17852     /**
  17853      * The **`length`** read-only property of the History interface returns an integer representing the number of entries in the session history, including the currently loaded page.
  17854      *
  17855      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/length)
  17856      */
  17857     readonly length: number;
  17858     /**
  17859      * The **`scrollRestoration`** property of the History interface allows web applications to explicitly set default scroll restoration behavior on history navigation.
  17860      *
  17861      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/scrollRestoration)
  17862      */
  17863     scrollRestoration: ScrollRestoration;
  17864     /**
  17865      * The **`state`** read-only property of the History interface returns a value representing the state at the top of the history stack.
  17866      *
  17867      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/state)
  17868      */
  17869     readonly state: any;
  17870     /**
  17871      * The **`back()`** method of the History interface causes the browser to move back one page in the session history.
  17872      *
  17873      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/back)
  17874      */
  17875     back(): void;
  17876     /**
  17877      * The **`forward()`** method of the History interface causes the browser to move forward one page in the session history.
  17878      *
  17879      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/forward)
  17880      */
  17881     forward(): void;
  17882     /**
  17883      * The **`go()`** method of the History interface loads a specific page from the session history.
  17884      *
  17885      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/go)
  17886      */
  17887     go(delta?: number): void;
  17888     /**
  17889      * The **`pushState()`** method of the History interface adds an entry to the browser's session history stack.
  17890      *
  17891      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/pushState)
  17892      */
  17893     pushState(data: any, unused: string, url?: string | URL | null): void;
  17894     /**
  17895      * The **`replaceState()`** method of the History interface modifies the current history entry, replacing it with the state object and URL passed in the method parameters.
  17896      *
  17897      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/replaceState)
  17898      */
  17899     replaceState(data: any, unused: string, url?: string | URL | null): void;
  17900 }
  17901 
  17902 declare var History: {
  17903     prototype: History;
  17904     new(): History;
  17905 };
  17906 
  17907 /**
  17908  * The **`IDBCursor`** interface of the IndexedDB API represents a cursor for traversing or iterating over multiple records in a database.
  17909  *
  17910  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor)
  17911  */
  17912 interface IDBCursor {
  17913     /**
  17914      * The **`direction`** read-only property of the direction of traversal of the cursor (set using section below for possible values.
  17915      *
  17916      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/direction)
  17917      */
  17918     readonly direction: IDBCursorDirection;
  17919     /**
  17920      * The **`key`** read-only property of the position.
  17921      *
  17922      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/key)
  17923      */
  17924     readonly key: IDBValidKey;
  17925     /**
  17926      * The **`primaryKey`** read-only property of the cursor is currently being iterated or has iterated outside its range, this is set to undefined.
  17927      *
  17928      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/primaryKey)
  17929      */
  17930     readonly primaryKey: IDBValidKey;
  17931     /**
  17932      * The **`request`** read-only property of the IDBCursor interface returns the IDBRequest used to obtain the cursor.
  17933      *
  17934      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/request)
  17935      */
  17936     readonly request: IDBRequest;
  17937     /**
  17938      * The **`source`** read-only property of the null or throws an exception, even if the cursor is currently being iterated, has iterated past its end, or its transaction is not active.
  17939      *
  17940      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/source)
  17941      */
  17942     readonly source: IDBObjectStore | IDBIndex;
  17943     /**
  17944      * The **`advance()`** method of the IDBCursor interface sets the number of times a cursor should move its position forward.
  17945      *
  17946      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/advance)
  17947      */
  17948     advance(count: number): void;
  17949     /**
  17950      * The **`continue()`** method of the IDBCursor interface advances the cursor to the next position along its direction, to the item whose key matches the optional key parameter.
  17951      *
  17952      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/continue)
  17953      */
  17954     continue(key?: IDBValidKey): void;
  17955     /**
  17956      * The **`continuePrimaryKey()`** method of the matches the key parameter as well as whose primary key matches the primary key parameter.
  17957      *
  17958      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/continuePrimaryKey)
  17959      */
  17960     continuePrimaryKey(key: IDBValidKey, primaryKey: IDBValidKey): void;
  17961     /**
  17962      * The **`delete()`** method of the IDBCursor interface returns an IDBRequest object, and, in a separate thread, deletes the record at the cursor's position, without changing the cursor's position.
  17963      *
  17964      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/delete)
  17965      */
  17966     delete(): IDBRequest<undefined>;
  17967     /**
  17968      * The **`update()`** method of the IDBCursor interface returns an IDBRequest object, and, in a separate thread, updates the value at the current position of the cursor in the object store.
  17969      *
  17970      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/update)
  17971      */
  17972     update(value: any): IDBRequest<IDBValidKey>;
  17973 }
  17974 
  17975 declare var IDBCursor: {
  17976     prototype: IDBCursor;
  17977     new(): IDBCursor;
  17978 };
  17979 
  17980 /**
  17981  * The **`IDBCursorWithValue`** interface of the IndexedDB API represents a cursor for traversing or iterating over multiple records in a database.
  17982  *
  17983  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursorWithValue)
  17984  */
  17985 interface IDBCursorWithValue extends IDBCursor {
  17986     /**
  17987      * The **`value`** read-only property of the whatever that is.
  17988      *
  17989      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursorWithValue/value)
  17990      */
  17991     readonly value: any;
  17992 }
  17993 
  17994 declare var IDBCursorWithValue: {
  17995     prototype: IDBCursorWithValue;
  17996     new(): IDBCursorWithValue;
  17997 };
  17998 
  17999 interface IDBDatabaseEventMap {
  18000     "abort": Event;
  18001     "close": Event;
  18002     "error": Event;
  18003     "versionchange": IDBVersionChangeEvent;
  18004 }
  18005 
  18006 /**
  18007  * The **`IDBDatabase`** interface of the IndexedDB API 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.
  18008  *
  18009  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase)
  18010  */
  18011 interface IDBDatabase extends EventTarget {
  18012     /**
  18013      * The **`name`** read-only property of the `IDBDatabase` interface is a string that contains the name of the connected database.
  18014      *
  18015      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/name)
  18016      */
  18017     readonly name: string;
  18018     /**
  18019      * The **`objectStoreNames`** read-only property of the list of the names of the object stores currently in the connected database.
  18020      *
  18021      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/objectStoreNames)
  18022      */
  18023     readonly objectStoreNames: DOMStringList;
  18024     onabort: ((this: IDBDatabase, ev: Event) => any) | null;
  18025     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/close_event) */
  18026     onclose: ((this: IDBDatabase, ev: Event) => any) | null;
  18027     onerror: ((this: IDBDatabase, ev: Event) => any) | null;
  18028     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/versionchange_event) */
  18029     onversionchange: ((this: IDBDatabase, ev: IDBVersionChangeEvent) => any) | null;
  18030     /**
  18031      * The **`version`** property of the IDBDatabase interface is a 64-bit integer that contains the version of the connected database.
  18032      *
  18033      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/version)
  18034      */
  18035     readonly version: number;
  18036     /**
  18037      * The **`close()`** method of the IDBDatabase interface returns immediately and closes the connection in a separate thread.
  18038      *
  18039      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/close)
  18040      */
  18041     close(): void;
  18042     /**
  18043      * The **`createObjectStore()`** method of the The method takes the name of the store as well as a parameter object that lets you define important optional properties.
  18044      *
  18045      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/createObjectStore)
  18046      */
  18047     createObjectStore(name: string, options?: IDBObjectStoreParameters): IDBObjectStore;
  18048     /**
  18049      * The **`deleteObjectStore()`** method of the the connected database, along with any indexes that reference it.
  18050      *
  18051      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/deleteObjectStore)
  18052      */
  18053     deleteObjectStore(name: string): void;
  18054     /**
  18055      * The **`transaction`** method of the IDBDatabase interface immediately returns a transaction object (IDBTransaction) containing the IDBTransaction.objectStore method, which you can use to access your object store.
  18056      *
  18057      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/transaction)
  18058      */
  18059     transaction(storeNames: string | string[], mode?: IDBTransactionMode, options?: IDBTransactionOptions): IDBTransaction;
  18060     addEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  18061     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  18062     removeEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  18063     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  18064 }
  18065 
  18066 declare var IDBDatabase: {
  18067     prototype: IDBDatabase;
  18068     new(): IDBDatabase;
  18069 };
  18070 
  18071 /**
  18072  * The **`IDBFactory`** interface of the IndexedDB API lets applications asynchronously access the indexed databases.
  18073  *
  18074  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory)
  18075  */
  18076 interface IDBFactory {
  18077     /**
  18078      * The **`cmp()`** method of the IDBFactory interface compares two values as keys to determine equality and ordering for IndexedDB operations, such as storing and iterating.
  18079      *
  18080      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/cmp)
  18081      */
  18082     cmp(first: any, second: any): number;
  18083     /**
  18084      * The **`databases`** method of the IDBFactory interface returns a Promise that fulfills with an array of objects containing the name and version of all the available databases.
  18085      *
  18086      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/databases)
  18087      */
  18088     databases(): Promise<IDBDatabaseInfo[]>;
  18089     /**
  18090      * The **`deleteDatabase()`** method of the returns an IDBOpenDBRequest object immediately, and performs the deletion operation asynchronously.
  18091      *
  18092      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/deleteDatabase)
  18093      */
  18094     deleteDatabase(name: string): IDBOpenDBRequest;
  18095     /**
  18096      * The **`open()`** method of the IDBFactory interface requests opening a connection to a database.
  18097      *
  18098      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/open)
  18099      */
  18100     open(name: string, version?: number): IDBOpenDBRequest;
  18101 }
  18102 
  18103 declare var IDBFactory: {
  18104     prototype: IDBFactory;
  18105     new(): IDBFactory;
  18106 };
  18107 
  18108 /**
  18109  * `IDBIndex` interface of the IndexedDB API provides asynchronous access to an index in a database.
  18110  *
  18111  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex)
  18112  */
  18113 interface IDBIndex {
  18114     /**
  18115      * The **`keyPath`** property of the IDBIndex interface returns the key path of the current index.
  18116      *
  18117      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/keyPath)
  18118      */
  18119     readonly keyPath: string | string[];
  18120     /**
  18121      * The **`multiEntry`** read-only property of the behaves when the result of evaluating the index's key path yields an array.
  18122      *
  18123      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/multiEntry)
  18124      */
  18125     readonly multiEntry: boolean;
  18126     /**
  18127      * The **`name`** property of the IDBIndex interface contains a string which names the index.
  18128      *
  18129      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/name)
  18130      */
  18131     name: string;
  18132     /**
  18133      * The **`objectStore`** property of the IDBIndex interface returns the object store referenced by the current index.
  18134      *
  18135      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/objectStore)
  18136      */
  18137     readonly objectStore: IDBObjectStore;
  18138     /**
  18139      * The **`unique`** read-only property returns a boolean that states whether the index allows duplicate keys.
  18140      *
  18141      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/unique)
  18142      */
  18143     readonly unique: boolean;
  18144     /**
  18145      * The **`count()`** method of the IDBIndex interface returns an IDBRequest object, and in a separate thread, returns the number of records within a key range.
  18146      *
  18147      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/count)
  18148      */
  18149     count(query?: IDBValidKey | IDBKeyRange): IDBRequest<number>;
  18150     /**
  18151      * The **`get()`** method of the IDBIndex interface returns an IDBRequest object, and, in a separate thread, finds either the value in the referenced object store that corresponds to the given key or the first corresponding value, if `key` is set to an If a value is found, then a structured clone of it is created and set as the `result` of the request object: this returns the record the key is associated with.
  18152      *
  18153      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/get)
  18154      */
  18155     get(query: IDBValidKey | IDBKeyRange): IDBRequest<any>;
  18156     /**
  18157      * The **`getAll()`** method of the IDBIndex interface retrieves all objects that are inside the index.
  18158      *
  18159      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getAll)
  18160      */
  18161     getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;
  18162     /**
  18163      * The **`getAllKeys()`** method of the IDBIndex interface asynchronously retrieves the primary keys of all objects inside the index, setting them as the `result` of the request object.
  18164      *
  18165      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getAllKeys)
  18166      */
  18167     getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;
  18168     /**
  18169      * The **`getKey()`** method of the IDBIndex interface returns an IDBRequest object, and, in a separate thread, finds either the primary key that corresponds to the given key in this index or the first corresponding primary key, if `key` is set to an If a primary key is found, it is set as the `result` of the request object.
  18170      *
  18171      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getKey)
  18172      */
  18173     getKey(query: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;
  18174     /**
  18175      * The **`openCursor()`** method of the IDBIndex interface returns an IDBRequest object, and, in a separate thread, creates a cursor over the specified key range.
  18176      *
  18177      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/openCursor)
  18178      */
  18179     openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;
  18180     /**
  18181      * The **`openKeyCursor()`** method of the a separate thread, creates a cursor over the specified key range, as arranged by this index.
  18182      *
  18183      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/openKeyCursor)
  18184      */
  18185     openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;
  18186 }
  18187 
  18188 declare var IDBIndex: {
  18189     prototype: IDBIndex;
  18190     new(): IDBIndex;
  18191 };
  18192 
  18193 /**
  18194  * The **`IDBKeyRange`** interface of the IndexedDB API represents a continuous interval over some data type that is used for keys.
  18195  *
  18196  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange)
  18197  */
  18198 interface IDBKeyRange {
  18199     /**
  18200      * The **`lower`** read-only property of the The lower bound of the key range (can be any type.) The following example illustrates how you'd use a key range.
  18201      *
  18202      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lower)
  18203      */
  18204     readonly lower: any;
  18205     /**
  18206      * The **`lowerOpen`** read-only property of the lower-bound value is included in the key range.
  18207      *
  18208      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lowerOpen)
  18209      */
  18210     readonly lowerOpen: boolean;
  18211     /**
  18212      * The **`upper`** read-only property of the The upper bound of the key range (can be any type.) The following example illustrates how you'd use a key range.
  18213      *
  18214      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upper)
  18215      */
  18216     readonly upper: any;
  18217     /**
  18218      * The **`upperOpen`** read-only property of the upper-bound value is included in the key range.
  18219      *
  18220      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upperOpen)
  18221      */
  18222     readonly upperOpen: boolean;
  18223     /**
  18224      * The `includes()` method of the IDBKeyRange interface returns a boolean indicating whether a specified key is inside the key range.
  18225      *
  18226      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/includes)
  18227      */
  18228     includes(key: any): boolean;
  18229 }
  18230 
  18231 declare var IDBKeyRange: {
  18232     prototype: IDBKeyRange;
  18233     new(): IDBKeyRange;
  18234     /**
  18235      * The **`bound()`** static method of the IDBKeyRange interface creates a new key range with the specified upper and lower bounds.
  18236      *
  18237      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/bound_static)
  18238      */
  18239     bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;
  18240     /**
  18241      * The **`lowerBound()`** static method of the By default, it includes the lower endpoint value and is closed.
  18242      *
  18243      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lowerBound_static)
  18244      */
  18245     lowerBound(lower: any, open?: boolean): IDBKeyRange;
  18246     /**
  18247      * The **`only()`** static method of the IDBKeyRange interface creates a new key range containing a single value.
  18248      *
  18249      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/only_static)
  18250      */
  18251     only(value: any): IDBKeyRange;
  18252     /**
  18253      * The **`upperBound()`** static method of the it includes the upper endpoint value and is closed.
  18254      *
  18255      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upperBound_static)
  18256      */
  18257     upperBound(upper: any, open?: boolean): IDBKeyRange;
  18258 };
  18259 
  18260 /**
  18261  * The **`IDBObjectStore`** interface of the IndexedDB API represents an object store in a database.
  18262  *
  18263  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore)
  18264  */
  18265 interface IDBObjectStore {
  18266     /**
  18267      * The **`autoIncrement`** read-only property of the for this object store.
  18268      *
  18269      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/autoIncrement)
  18270      */
  18271     readonly autoIncrement: boolean;
  18272     /**
  18273      * The **`indexNames`** read-only property of the in this object store.
  18274      *
  18275      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/indexNames)
  18276      */
  18277     readonly indexNames: DOMStringList;
  18278     /**
  18279      * The **`keyPath`** read-only property of the If this property is null, the application must provide a key for each modification operation.
  18280      *
  18281      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/keyPath)
  18282      */
  18283     readonly keyPath: string | string[] | null;
  18284     /**
  18285      * The **`name`** property of the IDBObjectStore interface indicates the name of this object store.
  18286      *
  18287      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/name)
  18288      */
  18289     name: string;
  18290     /**
  18291      * The **`transaction`** read-only property of the object store belongs.
  18292      *
  18293      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/transaction)
  18294      */
  18295     readonly transaction: IDBTransaction;
  18296     /**
  18297      * The **`add()`** method of the IDBObjectStore interface returns an IDBRequest object, and, in a separate thread, creates a structured clone of the value, and stores the cloned value in the object store.
  18298      *
  18299      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/add)
  18300      */
  18301     add(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;
  18302     /**
  18303      * The **`clear()`** method of the IDBObjectStore interface creates and immediately returns an IDBRequest object, and clears this object store in a separate thread.
  18304      *
  18305      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/clear)
  18306      */
  18307     clear(): IDBRequest<undefined>;
  18308     /**
  18309      * The **`count()`** method of the IDBObjectStore interface returns an IDBRequest object, and, in a separate thread, returns the total number of records that match the provided key or of records in the store.
  18310      *
  18311      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/count)
  18312      */
  18313     count(query?: IDBValidKey | IDBKeyRange): IDBRequest<number>;
  18314     /**
  18315      * The **`createIndex()`** method of the field/column defining a new data point for each database record to contain.
  18316      *
  18317      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/createIndex)
  18318      */
  18319     createIndex(name: string, keyPath: string | string[], options?: IDBIndexParameters): IDBIndex;
  18320     /**
  18321      * The **`delete()`** method of the and, in a separate thread, deletes the specified record or records.
  18322      *
  18323      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/delete)
  18324      */
  18325     delete(query: IDBValidKey | IDBKeyRange): IDBRequest<undefined>;
  18326     /**
  18327      * The **`deleteIndex()`** method of the the connected database, used during a version upgrade.
  18328      *
  18329      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/deleteIndex)
  18330      */
  18331     deleteIndex(name: string): void;
  18332     /**
  18333      * The **`get()`** method of the IDBObjectStore interface returns an IDBRequest object, and, in a separate thread, returns the object selected by the specified key.
  18334      *
  18335      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/get)
  18336      */
  18337     get(query: IDBValidKey | IDBKeyRange): IDBRequest<any>;
  18338     /**
  18339      * The **`getAll()`** method of the containing all objects in the object store matching the specified parameter or all objects in the store if no parameters are given.
  18340      *
  18341      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getAll)
  18342      */
  18343     getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<any[]>;
  18344     /**
  18345      * The `getAllKeys()` method of the IDBObjectStore interface returns an IDBRequest object retrieves record keys for all objects in the object store matching the specified parameter or all objects in the store if no parameters are given.
  18346      *
  18347      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getAllKeys)
  18348      */
  18349     getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number): IDBRequest<IDBValidKey[]>;
  18350     /**
  18351      * The **`getKey()`** method of the and, in a separate thread, returns the key selected by the specified query.
  18352      *
  18353      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getKey)
  18354      */
  18355     getKey(query: IDBValidKey | IDBKeyRange): IDBRequest<IDBValidKey | undefined>;
  18356     /**
  18357      * The **`index()`** method of the IDBObjectStore interface opens a named index in the current object store, after which it can be used to, for example, return a series of records sorted by that index using a cursor.
  18358      *
  18359      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/index)
  18360      */
  18361     index(name: string): IDBIndex;
  18362     /**
  18363      * The **`openCursor()`** method of the and, in a separate thread, returns a new IDBCursorWithValue object.
  18364      *
  18365      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/openCursor)
  18366      */
  18367     openCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursorWithValue | null>;
  18368     /**
  18369      * The **`openKeyCursor()`** method of the whose result will be set to an IDBCursor that can be used to iterate through matching results.
  18370      *
  18371      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/openKeyCursor)
  18372      */
  18373     openKeyCursor(query?: IDBValidKey | IDBKeyRange | null, direction?: IDBCursorDirection): IDBRequest<IDBCursor | null>;
  18374     /**
  18375      * The **`put()`** method of the IDBObjectStore interface updates a given record in a database, or inserts a new record if the given item does not already exist.
  18376      *
  18377      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/put)
  18378      */
  18379     put(value: any, key?: IDBValidKey): IDBRequest<IDBValidKey>;
  18380 }
  18381 
  18382 declare var IDBObjectStore: {
  18383     prototype: IDBObjectStore;
  18384     new(): IDBObjectStore;
  18385 };
  18386 
  18387 interface IDBOpenDBRequestEventMap extends IDBRequestEventMap {
  18388     "blocked": IDBVersionChangeEvent;
  18389     "upgradeneeded": IDBVersionChangeEvent;
  18390 }
  18391 
  18392 /**
  18393  * The **`IDBOpenDBRequest`** interface of the IndexedDB API provides access to the results of requests to open or delete databases (performed using IDBFactory.open and IDBFactory.deleteDatabase), using specific event handler attributes.
  18394  *
  18395  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest)
  18396  */
  18397 interface IDBOpenDBRequest extends IDBRequest<IDBDatabase> {
  18398     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest/blocked_event) */
  18399     onblocked: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;
  18400     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest/upgradeneeded_event) */
  18401     onupgradeneeded: ((this: IDBOpenDBRequest, ev: IDBVersionChangeEvent) => any) | null;
  18402     addEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  18403     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  18404     removeEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  18405     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  18406 }
  18407 
  18408 declare var IDBOpenDBRequest: {
  18409     prototype: IDBOpenDBRequest;
  18410     new(): IDBOpenDBRequest;
  18411 };
  18412 
  18413 interface IDBRequestEventMap {
  18414     "error": Event;
  18415     "success": Event;
  18416 }
  18417 
  18418 /**
  18419  * The **`IDBRequest`** interface of the IndexedDB API provides access to results of asynchronous requests to databases and database objects using event handler attributes.
  18420  *
  18421  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest)
  18422  */
  18423 interface IDBRequest<T = any> extends EventTarget {
  18424     /**
  18425      * The **`error`** read-only property of the request.
  18426      *
  18427      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/error)
  18428      */
  18429     readonly error: DOMException | null;
  18430     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/error_event) */
  18431     onerror: ((this: IDBRequest<T>, ev: Event) => any) | null;
  18432     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/success_event) */
  18433     onsuccess: ((this: IDBRequest<T>, ev: Event) => any) | null;
  18434     /**
  18435      * The **`readyState`** read-only property of the Every request starts in the `pending` state.
  18436      *
  18437      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/readyState)
  18438      */
  18439     readonly readyState: IDBRequestReadyState;
  18440     /**
  18441      * The **`result`** read-only property of the any - `InvalidStateError` DOMException - : Thrown when attempting to access the property if the request is not completed, and therefore the result is not available.
  18442      *
  18443      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/result)
  18444      */
  18445     readonly result: T;
  18446     /**
  18447      * The **`source`** read-only property of the Index or an object store.
  18448      *
  18449      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/source)
  18450      */
  18451     readonly source: IDBObjectStore | IDBIndex | IDBCursor;
  18452     /**
  18453      * The **`transaction`** read-only property of the IDBRequest interface returns the transaction for the request, that is, the transaction the request is being made inside.
  18454      *
  18455      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/transaction)
  18456      */
  18457     readonly transaction: IDBTransaction | null;
  18458     addEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  18459     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  18460     removeEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest<T>, ev: IDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  18461     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  18462 }
  18463 
  18464 declare var IDBRequest: {
  18465     prototype: IDBRequest;
  18466     new(): IDBRequest;
  18467 };
  18468 
  18469 interface IDBTransactionEventMap {
  18470     "abort": Event;
  18471     "complete": Event;
  18472     "error": Event;
  18473 }
  18474 
  18475 /**
  18476  * The **`IDBTransaction`** interface of the IndexedDB API provides a static, asynchronous transaction on a database using event handler attributes.
  18477  *
  18478  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction)
  18479  */
  18480 interface IDBTransaction extends EventTarget {
  18481     /**
  18482      * The **`db`** read-only property of the IDBTransaction interface returns the database connection with which this transaction is associated.
  18483      *
  18484      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/db)
  18485      */
  18486     readonly db: IDBDatabase;
  18487     /**
  18488      * The **`durability`** read-only property of the IDBTransaction interface returns the durability hint the transaction was created with.
  18489      *
  18490      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/durability)
  18491      */
  18492     readonly durability: IDBTransactionDurability;
  18493     /**
  18494      * The **`IDBTransaction.error`** property of the IDBTransaction interface returns the type of error when there is an unsuccessful transaction.
  18495      *
  18496      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/error)
  18497      */
  18498     readonly error: DOMException | null;
  18499     /**
  18500      * The **`mode`** read-only property of the data in the object stores in the scope of the transaction (i.e., is the mode to be read-only, or do you want to write to the object stores?) The default value is `readonly`.
  18501      *
  18502      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/mode)
  18503      */
  18504     readonly mode: IDBTransactionMode;
  18505     /**
  18506      * The **`objectStoreNames`** read-only property of the of IDBObjectStore objects.
  18507      *
  18508      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/objectStoreNames)
  18509      */
  18510     readonly objectStoreNames: DOMStringList;
  18511     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/abort_event) */
  18512     onabort: ((this: IDBTransaction, ev: Event) => any) | null;
  18513     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/complete_event) */
  18514     oncomplete: ((this: IDBTransaction, ev: Event) => any) | null;
  18515     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/error_event) */
  18516     onerror: ((this: IDBTransaction, ev: Event) => any) | null;
  18517     /**
  18518      * The **`abort()`** method of the IDBTransaction interface rolls back all the changes to objects in the database associated with this transaction.
  18519      *
  18520      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/abort)
  18521      */
  18522     abort(): void;
  18523     /**
  18524      * The **`commit()`** method of the IDBTransaction interface commits the transaction if it is called on an active transaction.
  18525      *
  18526      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/commit)
  18527      */
  18528     commit(): void;
  18529     /**
  18530      * The **`objectStore()`** method of the added to the scope of this transaction.
  18531      *
  18532      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/objectStore)
  18533      */
  18534     objectStore(name: string): IDBObjectStore;
  18535     addEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  18536     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  18537     removeEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  18538     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  18539 }
  18540 
  18541 declare var IDBTransaction: {
  18542     prototype: IDBTransaction;
  18543     new(): IDBTransaction;
  18544 };
  18545 
  18546 /**
  18547  * The **`IDBVersionChangeEvent`** interface of the IndexedDB API indicates that the version of the database has changed, as the result of an IDBOpenDBRequest.upgradeneeded_event event handler function.
  18548  *
  18549  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent)
  18550  */
  18551 interface IDBVersionChangeEvent extends Event {
  18552     /**
  18553      * The **`newVersion`** read-only property of the database.
  18554      *
  18555      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent/newVersion)
  18556      */
  18557     readonly newVersion: number | null;
  18558     /**
  18559      * The **`oldVersion`** read-only property of the database.
  18560      *
  18561      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent/oldVersion)
  18562      */
  18563     readonly oldVersion: number;
  18564 }
  18565 
  18566 declare var IDBVersionChangeEvent: {
  18567     prototype: IDBVersionChangeEvent;
  18568     new(type: string, eventInitDict?: IDBVersionChangeEventInit): IDBVersionChangeEvent;
  18569 };
  18570 
  18571 /**
  18572  * 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.
  18573  *
  18574  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IIRFilterNode)
  18575  */
  18576 interface IIRFilterNode extends AudioNode {
  18577     /**
  18578      * The `getFrequencyResponse()` method of the IIRFilterNode interface takes the current filtering algorithm's settings and calculates the frequency response for frequencies specified in a specified array of frequencies.
  18579      *
  18580      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IIRFilterNode/getFrequencyResponse)
  18581      */
  18582     getFrequencyResponse(frequencyHz: Float32Array<ArrayBuffer>, magResponse: Float32Array<ArrayBuffer>, phaseResponse: Float32Array<ArrayBuffer>): void;
  18583 }
  18584 
  18585 declare var IIRFilterNode: {
  18586     prototype: IIRFilterNode;
  18587     new(context: BaseAudioContext, options: IIRFilterOptions): IIRFilterNode;
  18588 };
  18589 
  18590 /**
  18591  * The `IdleDeadline` interface is used as the data type of the input parameter to idle callbacks established by calling Window.requestIdleCallback().
  18592  *
  18593  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IdleDeadline)
  18594  */
  18595 interface IdleDeadline {
  18596     /**
  18597      * The read-only **`didTimeout`** property on the **IdleDeadline** interface is a Boolean value which indicates whether or not the idle callback is being invoked because the timeout interval specified when Window.requestIdleCallback() was called has expired.
  18598      *
  18599      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IdleDeadline/didTimeout)
  18600      */
  18601     readonly didTimeout: boolean;
  18602     /**
  18603      * The **`timeRemaining()`** method on the IdleDeadline interface returns the estimated number of milliseconds remaining in the current idle period.
  18604      *
  18605      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IdleDeadline/timeRemaining)
  18606      */
  18607     timeRemaining(): DOMHighResTimeStamp;
  18608 }
  18609 
  18610 declare var IdleDeadline: {
  18611     prototype: IdleDeadline;
  18612     new(): IdleDeadline;
  18613 };
  18614 
  18615 /**
  18616  * The **`ImageBitmap`** interface represents a bitmap image which can be drawn to a canvas without undue latency.
  18617  *
  18618  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap)
  18619  */
  18620 interface ImageBitmap {
  18621     /**
  18622      * The **`ImageBitmap.height`** read-only property returns the ImageBitmap object's height in CSS pixels.
  18623      *
  18624      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/height)
  18625      */
  18626     readonly height: number;
  18627     /**
  18628      * The **`ImageBitmap.width`** read-only property returns the ImageBitmap object's width in CSS pixels.
  18629      *
  18630      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/width)
  18631      */
  18632     readonly width: number;
  18633     /**
  18634      * The **`ImageBitmap.close()`** method disposes of all graphical resources associated with an `ImageBitmap`.
  18635      *
  18636      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/close)
  18637      */
  18638     close(): void;
  18639 }
  18640 
  18641 declare var ImageBitmap: {
  18642     prototype: ImageBitmap;
  18643     new(): ImageBitmap;
  18644 };
  18645 
  18646 /**
  18647  * The **`ImageBitmapRenderingContext`** interface is a canvas rendering context that provides the functionality to replace the canvas's contents with the given ImageBitmap.
  18648  *
  18649  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmapRenderingContext)
  18650  */
  18651 interface ImageBitmapRenderingContext {
  18652     /**
  18653      * The **`ImageBitmapRenderingContext.canvas`** property, part of the Canvas API, is a read-only reference to the A HTMLCanvasElement or OffscreenCanvas object.
  18654      *
  18655      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmapRenderingContext/canvas)
  18656      */
  18657     readonly canvas: HTMLCanvasElement | OffscreenCanvas;
  18658     /**
  18659      * The **`ImageBitmapRenderingContext.transferFromImageBitmap()`** method displays the given ImageBitmap in the canvas associated with this rendering context.
  18660      *
  18661      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmapRenderingContext/transferFromImageBitmap)
  18662      */
  18663     transferFromImageBitmap(bitmap: ImageBitmap | null): void;
  18664 }
  18665 
  18666 declare var ImageBitmapRenderingContext: {
  18667     prototype: ImageBitmapRenderingContext;
  18668     new(): ImageBitmapRenderingContext;
  18669 };
  18670 
  18671 /**
  18672  * The **`ImageCapture`** interface of the MediaStream Image Capture API provides methods to enable the capture of images or photos from a camera or other photographic device.
  18673  * Available only in secure contexts.
  18674  *
  18675  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageCapture)
  18676  */
  18677 interface ImageCapture {
  18678     /**
  18679      * The **`track`** read-only property of the A MediaStreamTrack object.
  18680      *
  18681      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageCapture/track)
  18682      */
  18683     readonly track: MediaStreamTrack;
  18684     /**
  18685      * The **`getPhotoCapabilities()`** method of the ImageCapture interface returns a Promise that resolves with an object containing the ranges of available configuration options.
  18686      *
  18687      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageCapture/getPhotoCapabilities)
  18688      */
  18689     getPhotoCapabilities(): Promise<PhotoCapabilities>;
  18690     /**
  18691      * The **`getPhotoSettings()`** method of the ImageCapture interface returns a Promise that resolves with an object containing the current photo configuration settings.
  18692      *
  18693      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageCapture/getPhotoSettings)
  18694      */
  18695     getPhotoSettings(): Promise<PhotoSettings>;
  18696     /**
  18697      * The **`takePhoto()`** method of the device sourcing a MediaStreamTrack and returns a Promise that resolves with a Blob containing the data.
  18698      *
  18699      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageCapture/takePhoto)
  18700      */
  18701     takePhoto(photoSettings?: PhotoSettings): Promise<Blob>;
  18702 }
  18703 
  18704 declare var ImageCapture: {
  18705     prototype: ImageCapture;
  18706     new(videoTrack: MediaStreamTrack): ImageCapture;
  18707 };
  18708 
  18709 /**
  18710  * The **`ImageData`** interface represents the underlying pixel data of an area of a canvas element.
  18711  *
  18712  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData)
  18713  */
  18714 interface ImageData {
  18715     /**
  18716      * The read-only **`ImageData.colorSpace`** property is a string indicating the color space of the image data.
  18717      *
  18718      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/colorSpace)
  18719      */
  18720     readonly colorSpace: PredefinedColorSpace;
  18721     /**
  18722      * The readonly **`ImageData.data`** property returns a pixel data.
  18723      *
  18724      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/data)
  18725      */
  18726     readonly data: ImageDataArray;
  18727     /**
  18728      * The readonly **`ImageData.height`** property returns the number of rows in the ImageData object.
  18729      *
  18730      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/height)
  18731      */
  18732     readonly height: number;
  18733     /**
  18734      * The readonly **`ImageData.width`** property returns the number of pixels per row in the ImageData object.
  18735      *
  18736      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/width)
  18737      */
  18738     readonly width: number;
  18739 }
  18740 
  18741 declare var ImageData: {
  18742     prototype: ImageData;
  18743     new(sw: number, sh: number, settings?: ImageDataSettings): ImageData;
  18744     new(data: ImageDataArray, sw: number, sh?: number, settings?: ImageDataSettings): ImageData;
  18745 };
  18746 
  18747 /**
  18748  * The **`ImageDecoder`** interface of the WebCodecs API provides a way to unpack and decode encoded image data.
  18749  * Available only in secure contexts.
  18750  *
  18751  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder)
  18752  */
  18753 interface ImageDecoder {
  18754     /**
  18755      * The **`complete`** read-only property of the ImageDecoder interface returns true if encoded data has completed buffering.
  18756      *
  18757      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/complete)
  18758      */
  18759     readonly complete: boolean;
  18760     /**
  18761      * The **`completed`** read-only property of the ImageDecoder interface returns a promise that resolves once encoded data has finished buffering.
  18762      *
  18763      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/completed)
  18764      */
  18765     readonly completed: Promise<void>;
  18766     /**
  18767      * The **`tracks`** read-only property of the ImageDecoder interface returns a list of the tracks in the encoded image data.
  18768      *
  18769      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/tracks)
  18770      */
  18771     readonly tracks: ImageTrackList;
  18772     /**
  18773      * The **`type`** read-only property of the ImageDecoder interface reflects the MIME type configured during construction.
  18774      *
  18775      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/type)
  18776      */
  18777     readonly type: string;
  18778     /**
  18779      * The **`close()`** method of the ImageDecoder interface ends all pending work and releases system resources.
  18780      *
  18781      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/close)
  18782      */
  18783     close(): void;
  18784     /**
  18785      * The **`decode()`** method of the ImageDecoder interface enqueues a control message to decode the frame of an image.
  18786      *
  18787      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/decode)
  18788      */
  18789     decode(options?: ImageDecodeOptions): Promise<ImageDecodeResult>;
  18790     /**
  18791      * The **`reset()`** method of the ImageDecoder interface aborts all pending `decode()` operations; rejecting all pending promises.
  18792      *
  18793      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/reset)
  18794      */
  18795     reset(): void;
  18796 }
  18797 
  18798 declare var ImageDecoder: {
  18799     prototype: ImageDecoder;
  18800     new(init: ImageDecoderInit): ImageDecoder;
  18801     /**
  18802      * The **`ImageDecoder.isTypeSupported()`** static method checks if a given MIME type can be decoded by the user agent.
  18803      *
  18804      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageDecoder/isTypeSupported_static)
  18805      */
  18806     isTypeSupported(type: string): Promise<boolean>;
  18807 };
  18808 
  18809 /**
  18810  * The **`ImageTrack`** interface of the WebCodecs API represents an individual image track.
  18811  *
  18812  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrack)
  18813  */
  18814 interface ImageTrack {
  18815     /**
  18816      * The **`animated`** property of the ImageTrack interface returns `true` if the track is animated and therefore has multiple frames.
  18817      *
  18818      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrack/animated)
  18819      */
  18820     readonly animated: boolean;
  18821     /**
  18822      * The **`frameCount`** property of the ImageTrack interface returns the number of frames in the track.
  18823      *
  18824      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrack/frameCount)
  18825      */
  18826     readonly frameCount: number;
  18827     /**
  18828      * The **`repetitionCount`** property of the ImageTrack interface returns the number of repetitions of this track.
  18829      *
  18830      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrack/repetitionCount)
  18831      */
  18832     readonly repetitionCount: number;
  18833     /**
  18834      * The **`selected`** property of the ImageTrack interface returns `true` if the track is selected for decoding.
  18835      *
  18836      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrack/selected)
  18837      */
  18838     selected: boolean;
  18839 }
  18840 
  18841 declare var ImageTrack: {
  18842     prototype: ImageTrack;
  18843     new(): ImageTrack;
  18844 };
  18845 
  18846 /**
  18847  * The **`ImageTrackList`** interface of the WebCodecs API represents a list of image tracks.
  18848  *
  18849  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrackList)
  18850  */
  18851 interface ImageTrackList {
  18852     /**
  18853      * The **`length`** property of the ImageTrackList interface returns the length of the `ImageTrackList`.
  18854      *
  18855      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrackList/length)
  18856      */
  18857     readonly length: number;
  18858     /**
  18859      * The **`ready`** property of the ImageTrackList interface returns a Promise that resolves when the `ImageTrackList` is populated with ImageTrack.
  18860      *
  18861      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrackList/ready)
  18862      */
  18863     readonly ready: Promise<void>;
  18864     /**
  18865      * The **`selectedIndex`** property of the ImageTrackList interface returns the `index` of the selected track.
  18866      *
  18867      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrackList/selectedIndex)
  18868      */
  18869     readonly selectedIndex: number;
  18870     /**
  18871      * The **`selectedTrack`** property of the ImageTrackList interface returns an ImageTrack object representing the currently selected track.
  18872      *
  18873      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageTrackList/selectedTrack)
  18874      */
  18875     readonly selectedTrack: ImageTrack | null;
  18876     [index: number]: ImageTrack;
  18877 }
  18878 
  18879 declare var ImageTrackList: {
  18880     prototype: ImageTrackList;
  18881     new(): ImageTrackList;
  18882 };
  18883 
  18884 interface ImportMeta {
  18885     url: string;
  18886     resolve(specifier: string): string;
  18887 }
  18888 
  18889 /**
  18890  * The **`InputDeviceInfo`** interface of the Media Capture and Streams API gives access to the capabilities of the input device that it represents.
  18891  * Available only in secure contexts.
  18892  *
  18893  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputDeviceInfo)
  18894  */
  18895 interface InputDeviceInfo extends MediaDeviceInfo {
  18896     /**
  18897      * The **`getCapabilities()`** method of the InputDeviceInfo interface returns a `MediaTrackCapabilities` object describing the primary audio or video track of the device's MediaStream.
  18898      *
  18899      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputDeviceInfo/getCapabilities)
  18900      */
  18901     getCapabilities(): MediaTrackCapabilities;
  18902 }
  18903 
  18904 declare var InputDeviceInfo: {
  18905     prototype: InputDeviceInfo;
  18906     new(): InputDeviceInfo;
  18907 };
  18908 
  18909 /**
  18910  * The **`InputEvent`** interface represents an event notifying the user of editable content changes.
  18911  *
  18912  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent)
  18913  */
  18914 interface InputEvent extends UIEvent {
  18915     /**
  18916      * The **`data`** read-only property of the characters.
  18917      *
  18918      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/data)
  18919      */
  18920     readonly data: string | null;
  18921     /**
  18922      * The **`dataTransfer`** read-only property of the containing information about richtext or plaintext data being added to or removed from editable content.
  18923      *
  18924      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/dataTransfer)
  18925      */
  18926     readonly dataTransfer: DataTransfer | null;
  18927     /**
  18928      * The **`inputType`** read-only property of the Possible changes include for example inserting, deleting, and formatting text.
  18929      *
  18930      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/inputType)
  18931      */
  18932     readonly inputType: string;
  18933     /**
  18934      * The **`InputEvent.isComposing`** read-only property returns a boolean value indicating if the event is fired after A boolean.
  18935      *
  18936      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/isComposing)
  18937      */
  18938     readonly isComposing: boolean;
  18939     /**
  18940      * The **`getTargetRanges()`** method of the InputEvent interface returns an array of StaticRange objects that will be affected by a change to the DOM if the input event is not canceled.
  18941      *
  18942      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/getTargetRanges)
  18943      */
  18944     getTargetRanges(): StaticRange[];
  18945 }
  18946 
  18947 declare var InputEvent: {
  18948     prototype: InputEvent;
  18949     new(type: string, eventInitDict?: InputEventInit): InputEvent;
  18950 };
  18951 
  18952 /**
  18953  * The **`IntersectionObserver`** interface of the Intersection Observer API 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.
  18954  *
  18955  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver)
  18956  */
  18957 interface IntersectionObserver {
  18958     /**
  18959      * The IntersectionObserver interface's read-only **`root`** property identifies the Element or of the viewport for the element which is the observer's target.
  18960      *
  18961      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/root)
  18962      */
  18963     readonly root: Element | Document | null;
  18964     /**
  18965      * The IntersectionObserver interface's read-only **`rootMargin`** property is a string with syntax similar to that of the CSS margin property.
  18966      *
  18967      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/rootMargin)
  18968      */
  18969     readonly rootMargin: string;
  18970     /**
  18971      * The IntersectionObserver interface's read-only **`thresholds`** property returns the list of intersection thresholds that was specified when the observer was instantiated with only one threshold ratio was provided when instantiating the object, this will be an array containing that single value.
  18972      *
  18973      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/thresholds)
  18974      */
  18975     readonly thresholds: ReadonlyArray<number>;
  18976     /**
  18977      * The IntersectionObserver method **`disconnect()`** stops watching all of its target elements for visibility changes.
  18978      *
  18979      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/disconnect)
  18980      */
  18981     disconnect(): void;
  18982     /**
  18983      * The IntersectionObserver method **`observe()`** adds an element to the set of target elements being watched by the `IntersectionObserver`.
  18984      *
  18985      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/observe)
  18986      */
  18987     observe(target: Element): void;
  18988     /**
  18989      * The IntersectionObserver method **`takeRecords()`** returns an array of has experienced an intersection change since the last time the intersections were checked, either explicitly through a call to this method or implicitly by an automatic call to the observer's callback.
  18990      *
  18991      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/takeRecords)
  18992      */
  18993     takeRecords(): IntersectionObserverEntry[];
  18994     /**
  18995      * The IntersectionObserver method **`unobserve()`** instructs the `IntersectionObserver` to stop observing the specified target element.
  18996      *
  18997      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/unobserve)
  18998      */
  18999     unobserve(target: Element): void;
  19000 }
  19001 
  19002 declare var IntersectionObserver: {
  19003     prototype: IntersectionObserver;
  19004     new(callback: IntersectionObserverCallback, options?: IntersectionObserverInit): IntersectionObserver;
  19005 };
  19006 
  19007 /**
  19008  * The **`IntersectionObserverEntry`** interface of the Intersection Observer API describes the intersection between the target element and its root container at a specific moment of transition.
  19009  *
  19010  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry)
  19011  */
  19012 interface IntersectionObserverEntry {
  19013     /**
  19014      * The IntersectionObserverEntry interface's read-only **`boundingClientRect`** property returns a smallest rectangle that contains the entire target element.
  19015      *
  19016      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/boundingClientRect)
  19017      */
  19018     readonly boundingClientRect: DOMRectReadOnly;
  19019     /**
  19020      * The IntersectionObserverEntry interface's read-only **`intersectionRatio`** property tells you how much of the target element is currently visible within the root's intersection ratio, as a value between 0.0 and 1.0.
  19021      *
  19022      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/intersectionRatio)
  19023      */
  19024     readonly intersectionRatio: number;
  19025     /**
  19026      * The IntersectionObserverEntry interface's read-only **`intersectionRect`** property is a contains the entire portion of the target element which is currently visible within the intersection root.
  19027      *
  19028      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/intersectionRect)
  19029      */
  19030     readonly intersectionRect: DOMRectReadOnly;
  19031     /**
  19032      * The IntersectionObserverEntry interface's read-only **`isIntersecting`** property is a Boolean value which is `true` if the target element intersects with the intersection observer's root.
  19033      *
  19034      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/isIntersecting)
  19035      */
  19036     readonly isIntersecting: boolean;
  19037     /**
  19038      * The IntersectionObserverEntry interface's read-only **`rootBounds`** property is a rectangle, offset by the IntersectionObserver.rootMargin if one is specified.
  19039      *
  19040      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/rootBounds)
  19041      */
  19042     readonly rootBounds: DOMRectReadOnly | null;
  19043     /**
  19044      * The IntersectionObserverEntry interface's read-only **`target`** property indicates which targeted root.
  19045      *
  19046      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/target)
  19047      */
  19048     readonly target: Element;
  19049     /**
  19050      * The IntersectionObserverEntry interface's read-only **`time`** property is a change occurred relative to the time at which the document was created.
  19051      *
  19052      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/time)
  19053      */
  19054     readonly time: DOMHighResTimeStamp;
  19055 }
  19056 
  19057 declare var IntersectionObserverEntry: {
  19058     prototype: IntersectionObserverEntry;
  19059     new(): IntersectionObserverEntry;
  19060 };
  19061 
  19062 /**
  19063  * The **`KHR_parallel_shader_compile`** extension is part of the WebGL API and enables a non-blocking poll operation, so that compile/link status availability (`COMPLETION_STATUS_KHR`) can be queried without potentially incurring stalls.
  19064  *
  19065  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KHR_parallel_shader_compile)
  19066  */
  19067 interface KHR_parallel_shader_compile {
  19068     readonly COMPLETION_STATUS_KHR: 0x91B1;
  19069 }
  19070 
  19071 /**
  19072  * **`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.
  19073  *
  19074  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent)
  19075  */
  19076 interface KeyboardEvent extends UIEvent {
  19077     /**
  19078      * The **`KeyboardEvent.altKey`** read-only property is a boolean value that indicates if the <kbd>alt</kbd> key (<kbd>Option</kbd> or <kbd>⌥</kbd> on macOS) was pressed (`true`) or not (`false`) when the event occurred.
  19079      *
  19080      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/altKey)
  19081      */
  19082     readonly altKey: boolean;
  19083     /**
  19084      * The **`charCode`** read-only property of the pressed during a Element/keypress_event event.
  19085      * @deprecated
  19086      *
  19087      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/charCode)
  19088      */
  19089     readonly charCode: number;
  19090     /**
  19091      * The `KeyboardEvent.code` property represents a physical key on the keyboard (as opposed to the character generated by pressing the key).
  19092      *
  19093      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/code)
  19094      */
  19095     readonly code: string;
  19096     /**
  19097      * The **`KeyboardEvent.ctrlKey`** read-only property returns a boolean value that indicates if the <kbd>control</kbd> key was pressed (`true`) or not (`false`) when the event occurred.
  19098      *
  19099      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/ctrlKey)
  19100      */
  19101     readonly ctrlKey: boolean;
  19102     /**
  19103      * The **`KeyboardEvent.isComposing`** read-only property returns a boolean value indicating if the event is fired within a composition session, i.e., after Element/compositionstart_event and before Element/compositionend_event.
  19104      *
  19105      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/isComposing)
  19106      */
  19107     readonly isComposing: boolean;
  19108     /**
  19109      * The KeyboardEvent interface's **`key`** read-only property returns the value of the key pressed by the user, taking into consideration the state of modifier keys such as <kbd>Shift</kbd> as well as the keyboard locale and layout.
  19110      *
  19111      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/key)
  19112      */
  19113     readonly key: string;
  19114     /**
  19115      * The deprecated **`KeyboardEvent.keyCode`** read-only property represents a system and implementation dependent numerical code identifying the unmodified value of the pressed key.
  19116      * @deprecated
  19117      *
  19118      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/keyCode)
  19119      */
  19120     readonly keyCode: number;
  19121     /**
  19122      * The **`KeyboardEvent.location`** read-only property returns an `unsigned long` representing the location of the key on the keyboard or other input device.
  19123      *
  19124      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/location)
  19125      */
  19126     readonly location: number;
  19127     /**
  19128      * The **`KeyboardEvent.metaKey`** read-only property returning a boolean value that indicates if the <kbd>Meta</kbd> key was pressed (`true`) or not (`false`) when the event occurred.
  19129      *
  19130      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/metaKey)
  19131      */
  19132     readonly metaKey: boolean;
  19133     /**
  19134      * The **`repeat`** read-only property of the `true` if the given key is being held down such that it is automatically repeating.
  19135      *
  19136      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/repeat)
  19137      */
  19138     readonly repeat: boolean;
  19139     /**
  19140      * The **`KeyboardEvent.shiftKey`** read-only property is a boolean value that indicates if the <kbd>shift</kbd> key was pressed (`true`) or not (`false`) when the event occurred.
  19141      *
  19142      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/shiftKey)
  19143      */
  19144     readonly shiftKey: boolean;
  19145     /**
  19146      * The **`KeyboardEvent.getModifierState()`** method returns the current state of the specified modifier key: `true` if the modifier is active (that is the modifier key is pressed or locked), otherwise, `false`.
  19147      *
  19148      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/getModifierState)
  19149      */
  19150     getModifierState(keyArg: string): boolean;
  19151     /**
  19152      * The **`KeyboardEvent.initKeyboardEvent()`** method initializes the attributes of a keyboard event object.
  19153      * @deprecated
  19154      *
  19155      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/initKeyboardEvent)
  19156      */
  19157     initKeyboardEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, viewArg?: Window | null, keyArg?: string, locationArg?: number, ctrlKey?: boolean, altKey?: boolean, shiftKey?: boolean, metaKey?: boolean): void;
  19158     readonly DOM_KEY_LOCATION_STANDARD: 0x00;
  19159     readonly DOM_KEY_LOCATION_LEFT: 0x01;
  19160     readonly DOM_KEY_LOCATION_RIGHT: 0x02;
  19161     readonly DOM_KEY_LOCATION_NUMPAD: 0x03;
  19162 }
  19163 
  19164 declare var KeyboardEvent: {
  19165     prototype: KeyboardEvent;
  19166     new(type: string, eventInitDict?: KeyboardEventInit): KeyboardEvent;
  19167     readonly DOM_KEY_LOCATION_STANDARD: 0x00;
  19168     readonly DOM_KEY_LOCATION_LEFT: 0x01;
  19169     readonly DOM_KEY_LOCATION_RIGHT: 0x02;
  19170     readonly DOM_KEY_LOCATION_NUMPAD: 0x03;
  19171 };
  19172 
  19173 /**
  19174  * The **`KeyframeEffect`** interface of the Web Animations API lets us create sets of animatable properties and values, called **keyframes.** These can then be played using the Animation.Animation constructor.
  19175  *
  19176  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect)
  19177  */
  19178 interface KeyframeEffect extends AnimationEffect {
  19179     /**
  19180      * The **`composite`** property of a KeyframeEffect resolves how an element's animation impacts its underlying property values.
  19181      *
  19182      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/composite)
  19183      */
  19184     composite: CompositeOperation;
  19185     /**
  19186      * The **`iterationComposite`** property of a KeyframeEffect resolves how the animation's property value changes accumulate or override each other upon each of the animation's iterations.
  19187      *
  19188      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/iterationComposite)
  19189      */
  19190     iterationComposite: IterationCompositeOperation;
  19191     /**
  19192      * The **`pseudoElement`** property of a KeyframeEffect interface is a string representing the pseudo-element being animated.
  19193      *
  19194      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/pseudoElement)
  19195      */
  19196     pseudoElement: string | null;
  19197     /**
  19198      * The **`target`** property of a KeyframeEffect interface represents the element or pseudo-element being animated.
  19199      *
  19200      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/target)
  19201      */
  19202     target: Element | null;
  19203     /**
  19204      * The **`getKeyframes()`** method of a KeyframeEffect returns an Array of the computed keyframes that make up this animation along with their computed offsets.
  19205      *
  19206      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/getKeyframes)
  19207      */
  19208     getKeyframes(): ComputedKeyframe[];
  19209     /**
  19210      * The **`setKeyframes()`** method of the KeyframeEffect interface replaces the keyframes that make up the affected `KeyframeEffect` with a new set of keyframes.
  19211      *
  19212      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/setKeyframes)
  19213      */
  19214     setKeyframes(keyframes: Keyframe[] | PropertyIndexedKeyframes | null): void;
  19215 }
  19216 
  19217 declare var KeyframeEffect: {
  19218     prototype: KeyframeEffect;
  19219     new(target: Element | null, keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeEffectOptions): KeyframeEffect;
  19220     new(source: KeyframeEffect): KeyframeEffect;
  19221 };
  19222 
  19223 /**
  19224  * The `LargestContentfulPaint` interface provides timing information about the largest image or text paint before user input on a web page.
  19225  *
  19226  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint)
  19227  */
  19228 interface LargestContentfulPaint extends PerformanceEntry {
  19229     /**
  19230      * The **`element`** read-only property of the LargestContentfulPaint interface returns an object representing the Element that is the largest contentful paint.
  19231      *
  19232      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/element)
  19233      */
  19234     readonly element: Element | null;
  19235     /**
  19236      * The **`id`** read-only property of the LargestContentfulPaint interface returns the ID of the element that is the largest contentful paint.
  19237      *
  19238      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/id)
  19239      */
  19240     readonly id: string;
  19241     /**
  19242      * The **`loadTime`** read-only property of the LargestContentfulPaint interface returns the time that the element was loaded.
  19243      *
  19244      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/loadTime)
  19245      */
  19246     readonly loadTime: DOMHighResTimeStamp;
  19247     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/renderTime) */
  19248     readonly renderTime: DOMHighResTimeStamp;
  19249     /**
  19250      * The **`size`** read-only property of the LargestContentfulPaint interface returns the intrinsic size of the element that is the largest contentful paint.
  19251      *
  19252      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/size)
  19253      */
  19254     readonly size: number;
  19255     /**
  19256      * The **`url`** read-only property of the LargestContentfulPaint interface returns the request URL of the element, if the element is an image.
  19257      *
  19258      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/url)
  19259      */
  19260     readonly url: string;
  19261     /**
  19262      * The **`toJSON()`** method of the LargestContentfulPaint interface is a Serialization; it returns a JSON representation of the LargestContentfulPaint object.
  19263      *
  19264      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/toJSON)
  19265      */
  19266     toJSON(): any;
  19267 }
  19268 
  19269 declare var LargestContentfulPaint: {
  19270     prototype: LargestContentfulPaint;
  19271     new(): LargestContentfulPaint;
  19272 };
  19273 
  19274 interface LinkStyle {
  19275     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/sheet) */
  19276     readonly sheet: CSSStyleSheet | null;
  19277 }
  19278 
  19279 /**
  19280  * The **`Location`** interface represents the location (URL) of the object it is linked to.
  19281  *
  19282  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location)
  19283  */
  19284 interface Location {
  19285     /**
  19286      * The **`ancestorOrigins`** read-only property of the Location interface is a static browsing contexts of the document associated with the given Location object.
  19287      *
  19288      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/ancestorOrigins)
  19289      */
  19290     readonly ancestorOrigins: DOMStringList;
  19291     /**
  19292      * The **`hash`** property of the Location interface is a string containing a `'#'` followed by the fragment identifier of the location URL.
  19293      *
  19294      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/hash)
  19295      */
  19296     hash: string;
  19297     /**
  19298      * The **`host`** property of the Location interface is a string containing the host, which is the Location.hostname, and then, if the port of the URL is nonempty, a `':'`, followed by the Location.port of the URL.
  19299      *
  19300      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/host)
  19301      */
  19302     host: string;
  19303     /**
  19304      * The **`hostname`** property of the Location interface is a string containing either the domain name or IP address of the location URL.
  19305      *
  19306      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/hostname)
  19307      */
  19308     hostname: string;
  19309     /**
  19310      * The **`href`** property of the Location interface is a stringifier that returns a string containing the whole URL, and allows the href to be updated.
  19311      *
  19312      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/href)
  19313      */
  19314     href: string;
  19315     toString(): string;
  19316     /**
  19317      * The **`origin`** read-only property of the Location interface returns a string containing the Unicode serialization of the origin of the location's URL.
  19318      *
  19319      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/origin)
  19320      */
  19321     readonly origin: string;
  19322     /**
  19323      * The **`pathname`** property of the Location interface is a string containing the path of the URL for the location.
  19324      *
  19325      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/pathname)
  19326      */
  19327     pathname: string;
  19328     /**
  19329      * The **`port`** property of the Location interface is a string containing the port number of the location's URL.
  19330      *
  19331      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/port)
  19332      */
  19333     port: string;
  19334     /**
  19335      * The **`protocol`** property of the Location interface is a string containing the protocol or scheme of the location's URL, including the final `':'`.
  19336      *
  19337      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/protocol)
  19338      */
  19339     protocol: string;
  19340     /**
  19341      * The **`search`** property of the Location interface is a search string, also called a _query string_, that is a string containing a `'?'` followed by the parameters of the location's URL.
  19342      *
  19343      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/search)
  19344      */
  19345     search: string;
  19346     /**
  19347      * The **`assign()`** method of the Location interface causes the window to load and display the document at the URL specified.
  19348      *
  19349      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/assign)
  19350      */
  19351     assign(url: string | URL): void;
  19352     /**
  19353      * The **`reload()`** method of the Location interface reloads the current URL, like the Refresh button.
  19354      *
  19355      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/reload)
  19356      */
  19357     reload(): void;
  19358     /**
  19359      * The **`replace()`** method of the Location interface replaces the current resource with the one at the provided URL.
  19360      *
  19361      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/replace)
  19362      */
  19363     replace(url: string | URL): void;
  19364 }
  19365 
  19366 declare var Location: {
  19367     prototype: Location;
  19368     new(): Location;
  19369 };
  19370 
  19371 /**
  19372  * The **`Lock`** interface of the Web Locks API provides the name and mode of a lock.
  19373  * Available only in secure contexts.
  19374  *
  19375  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock)
  19376  */
  19377 interface Lock {
  19378     /**
  19379      * The **`mode`** read-only property of the Lock interface returns the access mode passed to LockManager.request() when the lock was requested.
  19380      *
  19381      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock/mode)
  19382      */
  19383     readonly mode: LockMode;
  19384     /**
  19385      * The **`name`** read-only property of the Lock interface returns the _name_ passed to The name of a lock is passed by script when the lock is requested.
  19386      *
  19387      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock/name)
  19388      */
  19389     readonly name: string;
  19390 }
  19391 
  19392 declare var Lock: {
  19393     prototype: Lock;
  19394     new(): Lock;
  19395 };
  19396 
  19397 /**
  19398  * The **`LockManager`** interface of the Web Locks API provides methods for requesting a new Lock object and querying for an existing `Lock` object.
  19399  * Available only in secure contexts.
  19400  *
  19401  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager)
  19402  */
  19403 interface LockManager {
  19404     /**
  19405      * The **`query()`** method of the LockManager interface returns a Promise that resolves with an object containing information about held and pending locks.
  19406      *
  19407      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/query)
  19408      */
  19409     query(): Promise<LockManagerSnapshot>;
  19410     /**
  19411      * The **`request()`** method of the LockManager interface requests a Lock object with parameters specifying its name and characteristics.
  19412      *
  19413      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/request)
  19414      */
  19415     request<T>(name: string, callback: LockGrantedCallback<T>): Promise<T>;
  19416     request<T>(name: string, options: LockOptions, callback: LockGrantedCallback<T>): Promise<T>;
  19417 }
  19418 
  19419 declare var LockManager: {
  19420     prototype: LockManager;
  19421     new(): LockManager;
  19422 };
  19423 
  19424 interface MIDIAccessEventMap {
  19425     "statechange": MIDIConnectionEvent;
  19426 }
  19427 
  19428 /**
  19429  * The **`MIDIAccess`** interface of the Web MIDI API provides methods for listing MIDI input and output devices, and obtaining access to those devices.
  19430  * Available only in secure contexts.
  19431  *
  19432  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess)
  19433  */
  19434 interface MIDIAccess extends EventTarget {
  19435     /**
  19436      * The **`inputs`** read-only property of the MIDIAccess interface provides access to any available MIDI input ports.
  19437      *
  19438      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess/inputs)
  19439      */
  19440     readonly inputs: MIDIInputMap;
  19441     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess/statechange_event) */
  19442     onstatechange: ((this: MIDIAccess, ev: MIDIConnectionEvent) => any) | null;
  19443     /**
  19444      * The **`outputs`** read-only property of the MIDIAccess interface provides access to any available MIDI output ports.
  19445      *
  19446      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess/outputs)
  19447      */
  19448     readonly outputs: MIDIOutputMap;
  19449     /**
  19450      * The **`sysexEnabled`** read-only property of the MIDIAccess interface indicates whether system exclusive support is enabled on the current MIDIAccess instance.
  19451      *
  19452      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess/sysexEnabled)
  19453      */
  19454     readonly sysexEnabled: boolean;
  19455     addEventListener<K extends keyof MIDIAccessEventMap>(type: K, listener: (this: MIDIAccess, ev: MIDIAccessEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  19456     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  19457     removeEventListener<K extends keyof MIDIAccessEventMap>(type: K, listener: (this: MIDIAccess, ev: MIDIAccessEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  19458     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  19459 }
  19460 
  19461 declare var MIDIAccess: {
  19462     prototype: MIDIAccess;
  19463     new(): MIDIAccess;
  19464 };
  19465 
  19466 /**
  19467  * The **`MIDIConnectionEvent`** interface of the Web MIDI API is the event passed to the MIDIAccess.statechange_event event of the MIDIAccess interface and the MIDIPort.statechange_event event of the MIDIPort interface.
  19468  * Available only in secure contexts.
  19469  *
  19470  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIConnectionEvent)
  19471  */
  19472 interface MIDIConnectionEvent extends Event {
  19473     /**
  19474      * The **`port`** read-only property of the MIDIConnectionEvent interface returns the port that has been disconnected or connected.
  19475      *
  19476      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIConnectionEvent/port)
  19477      */
  19478     readonly port: MIDIPort | null;
  19479 }
  19480 
  19481 declare var MIDIConnectionEvent: {
  19482     prototype: MIDIConnectionEvent;
  19483     new(type: string, eventInitDict?: MIDIConnectionEventInit): MIDIConnectionEvent;
  19484 };
  19485 
  19486 interface MIDIInputEventMap extends MIDIPortEventMap {
  19487     "midimessage": MIDIMessageEvent;
  19488 }
  19489 
  19490 /**
  19491  * The **`MIDIInput`** interface of the Web MIDI API receives messages from a MIDI input port.
  19492  * Available only in secure contexts.
  19493  *
  19494  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIInput)
  19495  */
  19496 interface MIDIInput extends MIDIPort {
  19497     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIInput/midimessage_event) */
  19498     onmidimessage: ((this: MIDIInput, ev: MIDIMessageEvent) => any) | null;
  19499     addEventListener<K extends keyof MIDIInputEventMap>(type: K, listener: (this: MIDIInput, ev: MIDIInputEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  19500     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  19501     removeEventListener<K extends keyof MIDIInputEventMap>(type: K, listener: (this: MIDIInput, ev: MIDIInputEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  19502     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  19503 }
  19504 
  19505 declare var MIDIInput: {
  19506     prototype: MIDIInput;
  19507     new(): MIDIInput;
  19508 };
  19509 
  19510 /**
  19511  * The **`MIDIInputMap`** read-only interface of the Web MIDI API provides the set of MIDI input ports that are currently available.
  19512  * Available only in secure contexts.
  19513  *
  19514  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIInputMap)
  19515  */
  19516 interface MIDIInputMap {
  19517     forEach(callbackfn: (value: MIDIInput, key: string, parent: MIDIInputMap) => void, thisArg?: any): void;
  19518 }
  19519 
  19520 declare var MIDIInputMap: {
  19521     prototype: MIDIInputMap;
  19522     new(): MIDIInputMap;
  19523 };
  19524 
  19525 /**
  19526  * The **`MIDIMessageEvent`** interface of the Web MIDI API represents the event passed to the MIDIInput.midimessage_event event of the MIDIInput interface.
  19527  * Available only in secure contexts.
  19528  *
  19529  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIMessageEvent)
  19530  */
  19531 interface MIDIMessageEvent extends Event {
  19532     /**
  19533      * The **`data`** read-only property of the MIDIMessageEvent interface returns the MIDI data bytes of a single MIDI message.
  19534      *
  19535      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIMessageEvent/data)
  19536      */
  19537     readonly data: Uint8Array<ArrayBuffer> | null;
  19538 }
  19539 
  19540 declare var MIDIMessageEvent: {
  19541     prototype: MIDIMessageEvent;
  19542     new(type: string, eventInitDict?: MIDIMessageEventInit): MIDIMessageEvent;
  19543 };
  19544 
  19545 /**
  19546  * The **`MIDIOutput`** interface of the Web MIDI API provides methods to add messages to the queue of an output device, and to clear the queue of messages.
  19547  * Available only in secure contexts.
  19548  *
  19549  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIOutput)
  19550  */
  19551 interface MIDIOutput extends MIDIPort {
  19552     /**
  19553      * The **`send()`** method of the MIDIOutput interface queues messages for the corresponding MIDI port.
  19554      *
  19555      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIOutput/send)
  19556      */
  19557     send(data: number[], timestamp?: DOMHighResTimeStamp): void;
  19558     addEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIOutput, ev: MIDIPortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  19559     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  19560     removeEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIOutput, ev: MIDIPortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  19561     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  19562 }
  19563 
  19564 declare var MIDIOutput: {
  19565     prototype: MIDIOutput;
  19566     new(): MIDIOutput;
  19567 };
  19568 
  19569 /**
  19570  * The **`MIDIOutputMap`** read-only interface of the Web MIDI API provides the set of MIDI output ports that are currently available.
  19571  * Available only in secure contexts.
  19572  *
  19573  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIOutputMap)
  19574  */
  19575 interface MIDIOutputMap {
  19576     forEach(callbackfn: (value: MIDIOutput, key: string, parent: MIDIOutputMap) => void, thisArg?: any): void;
  19577 }
  19578 
  19579 declare var MIDIOutputMap: {
  19580     prototype: MIDIOutputMap;
  19581     new(): MIDIOutputMap;
  19582 };
  19583 
  19584 interface MIDIPortEventMap {
  19585     "statechange": MIDIConnectionEvent;
  19586 }
  19587 
  19588 /**
  19589  * The **`MIDIPort`** interface of the Web MIDI API represents a MIDI input or output port.
  19590  * Available only in secure contexts.
  19591  *
  19592  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort)
  19593  */
  19594 interface MIDIPort extends EventTarget {
  19595     /**
  19596      * The **`connection`** read-only property of the MIDIPort interface returns the connection state of the port.
  19597      *
  19598      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/connection)
  19599      */
  19600     readonly connection: MIDIPortConnectionState;
  19601     /**
  19602      * The **`id`** read-only property of the MIDIPort interface returns the unique ID of the port.
  19603      *
  19604      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/id)
  19605      */
  19606     readonly id: string;
  19607     /**
  19608      * The **`manufacturer`** read-only property of the MIDIPort interface returns the manufacturer of the port.
  19609      *
  19610      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/manufacturer)
  19611      */
  19612     readonly manufacturer: string | null;
  19613     /**
  19614      * The **`name`** read-only property of the MIDIPort interface returns the system name of the port.
  19615      *
  19616      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/name)
  19617      */
  19618     readonly name: string | null;
  19619     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/statechange_event) */
  19620     onstatechange: ((this: MIDIPort, ev: MIDIConnectionEvent) => any) | null;
  19621     /**
  19622      * The **`state`** read-only property of the MIDIPort interface returns the state of the port.
  19623      *
  19624      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/state)
  19625      */
  19626     readonly state: MIDIPortDeviceState;
  19627     /**
  19628      * The **`type`** read-only property of the MIDIPort interface returns the type of the port, indicating whether this is an input or output MIDI port.
  19629      *
  19630      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/type)
  19631      */
  19632     readonly type: MIDIPortType;
  19633     /**
  19634      * The **`version`** read-only property of the MIDIPort interface returns the version of the port.
  19635      *
  19636      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/version)
  19637      */
  19638     readonly version: string | null;
  19639     /**
  19640      * The **`close()`** method of the MIDIPort interface makes the access to the MIDI device connected to this `MIDIPort` unavailable.
  19641      *
  19642      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/close)
  19643      */
  19644     close(): Promise<MIDIPort>;
  19645     /**
  19646      * The **`open()`** method of the MIDIPort interface makes the MIDI device connected to this `MIDIPort` explicitly available.
  19647      *
  19648      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/open)
  19649      */
  19650     open(): Promise<MIDIPort>;
  19651     addEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIPort, ev: MIDIPortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  19652     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  19653     removeEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIPort, ev: MIDIPortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  19654     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  19655 }
  19656 
  19657 declare var MIDIPort: {
  19658     prototype: MIDIPort;
  19659     new(): MIDIPort;
  19660 };
  19661 
  19662 interface MathMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {
  19663 }
  19664 
  19665 /**
  19666  * The **`MathMLElement`** interface represents any MathML element.
  19667  *
  19668  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MathMLElement)
  19669  */
  19670 interface MathMLElement extends Element, ElementCSSInlineStyle, GlobalEventHandlers, HTMLOrSVGElement {
  19671     addEventListener<K extends keyof MathMLElementEventMap>(type: K, listener: (this: MathMLElement, ev: MathMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  19672     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  19673     removeEventListener<K extends keyof MathMLElementEventMap>(type: K, listener: (this: MathMLElement, ev: MathMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  19674     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  19675 }
  19676 
  19677 declare var MathMLElement: {
  19678     prototype: MathMLElement;
  19679     new(): MathMLElement;
  19680 };
  19681 
  19682 /**
  19683  * The **`MediaCapabilities`** interface of the Media Capabilities API provides information about the decoding abilities of the device, system and browser.
  19684  *
  19685  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities)
  19686  */
  19687 interface MediaCapabilities {
  19688     /**
  19689      * The **`decodingInfo()`** method of the MediaCapabilities interface returns a promise that fulfils with information about how well the user agent can decode/display media with a given configuration.
  19690      *
  19691      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities/decodingInfo)
  19692      */
  19693     decodingInfo(configuration: MediaDecodingConfiguration): Promise<MediaCapabilitiesDecodingInfo>;
  19694     /**
  19695      * The **`encodingInfo()`** method of the MediaCapabilities interface returns a promise that fulfills with the tested media configuration's capabilities for encoding media.
  19696      *
  19697      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities/encodingInfo)
  19698      */
  19699     encodingInfo(configuration: MediaEncodingConfiguration): Promise<MediaCapabilitiesEncodingInfo>;
  19700 }
  19701 
  19702 declare var MediaCapabilities: {
  19703     prototype: MediaCapabilities;
  19704     new(): MediaCapabilities;
  19705 };
  19706 
  19707 /**
  19708  * The **`MediaDeviceInfo`** interface of the Media Capture and Streams API contains information that describes a single media input or output device.
  19709  * Available only in secure contexts.
  19710  *
  19711  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo)
  19712  */
  19713 interface MediaDeviceInfo {
  19714     /**
  19715      * The **`deviceId`** read-only property of the MediaDeviceInfo interface returns a string that is an identifier for the represented device and is persisted across sessions.
  19716      *
  19717      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/deviceId)
  19718      */
  19719     readonly deviceId: string;
  19720     /**
  19721      * The **`groupId`** read-only property of the MediaDeviceInfo interface returns a string that is a group identifier.
  19722      *
  19723      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/groupId)
  19724      */
  19725     readonly groupId: string;
  19726     /**
  19727      * The **`kind`** read-only property of the MediaDeviceInfo interface returns an enumerated value, that is either `'videoinput'`, `'audioinput'` or `'audiooutput'`.
  19728      *
  19729      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/kind)
  19730      */
  19731     readonly kind: MediaDeviceKind;
  19732     /**
  19733      * The **`label`** read-only property of the MediaDeviceInfo interface returns a string describing this device (for example 'External USB Webcam').
  19734      *
  19735      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/label)
  19736      */
  19737     readonly label: string;
  19738     /**
  19739      * The **`toJSON()`** method of the MediaDeviceInfo interface is a Serialization; it returns a JSON representation of the MediaDeviceInfo object.
  19740      *
  19741      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/toJSON)
  19742      */
  19743     toJSON(): any;
  19744 }
  19745 
  19746 declare var MediaDeviceInfo: {
  19747     prototype: MediaDeviceInfo;
  19748     new(): MediaDeviceInfo;
  19749 };
  19750 
  19751 interface MediaDevicesEventMap {
  19752     "devicechange": Event;
  19753 }
  19754 
  19755 /**
  19756  * The **`MediaDevices`** interface of the Media Capture and Streams API provides access to connected media input devices like cameras and microphones, as well as screen sharing.
  19757  * Available only in secure contexts.
  19758  *
  19759  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices)
  19760  */
  19761 interface MediaDevices extends EventTarget {
  19762     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/devicechange_event) */
  19763     ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;
  19764     /**
  19765      * The **`enumerateDevices()`** method of the MediaDevices interface requests a list of the currently available media input and output devices, such as microphones, cameras, headsets, and so forth.
  19766      *
  19767      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/enumerateDevices)
  19768      */
  19769     enumerateDevices(): Promise<MediaDeviceInfo[]>;
  19770     /**
  19771      * The **`getDisplayMedia()`** method of the MediaDevices interface prompts the user to select and grant permission to capture the contents of a display or portion thereof (such as a window) as a MediaStream.
  19772      *
  19773      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/getDisplayMedia)
  19774      */
  19775     getDisplayMedia(options?: DisplayMediaStreamOptions): Promise<MediaStream>;
  19776     /**
  19777      * The **`getSupportedConstraints()`** method of the MediaDevices interface returns an object based on the MediaTrackSupportedConstraints dictionary, whose member fields each specify one of the constrainable properties the user agent understands.
  19778      *
  19779      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/getSupportedConstraints)
  19780      */
  19781     getSupportedConstraints(): MediaTrackSupportedConstraints;
  19782     /**
  19783      * The **`getUserMedia()`** method of the MediaDevices interface prompts the user for permission to use a media input which produces a MediaStream with tracks containing the requested types of media.
  19784      *
  19785      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/getUserMedia)
  19786      */
  19787     getUserMedia(constraints?: MediaStreamConstraints): Promise<MediaStream>;
  19788     addEventListener<K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  19789     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  19790     removeEventListener<K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  19791     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  19792 }
  19793 
  19794 declare var MediaDevices: {
  19795     prototype: MediaDevices;
  19796     new(): MediaDevices;
  19797 };
  19798 
  19799 /**
  19800  * The `MediaElementAudioSourceNode` interface represents an audio source consisting of an HTML audio or video element.
  19801  *
  19802  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaElementAudioSourceNode)
  19803  */
  19804 interface MediaElementAudioSourceNode extends AudioNode {
  19805     /**
  19806      * The MediaElementAudioSourceNode interface's read-only **`mediaElement`** property indicates the receiving audio.
  19807      *
  19808      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaElementAudioSourceNode/mediaElement)
  19809      */
  19810     readonly mediaElement: HTMLMediaElement;
  19811 }
  19812 
  19813 declare var MediaElementAudioSourceNode: {
  19814     prototype: MediaElementAudioSourceNode;
  19815     new(context: AudioContext, options: MediaElementAudioSourceOptions): MediaElementAudioSourceNode;
  19816 };
  19817 
  19818 /**
  19819  * The **`MediaEncryptedEvent`** interface of the Encrypted Media Extensions API contains the information associated with an HTMLMediaElement/encrypted_event event sent to a HTMLMediaElement when some initialization data is encountered in the media.
  19820  *
  19821  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaEncryptedEvent)
  19822  */
  19823 interface MediaEncryptedEvent extends Event {
  19824     /**
  19825      * The read-only **`initData`** property of the MediaKeyMessageEvent returns the initialization data contained in this event, if any.
  19826      *
  19827      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaEncryptedEvent/initData)
  19828      */
  19829     readonly initData: ArrayBuffer | null;
  19830     /**
  19831      * The read-only **`initDataType`** property of the MediaKeyMessageEvent returns a case-sensitive string describing the type of the initialization data associated with this event.
  19832      *
  19833      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaEncryptedEvent/initDataType)
  19834      */
  19835     readonly initDataType: string;
  19836 }
  19837 
  19838 declare var MediaEncryptedEvent: {
  19839     prototype: MediaEncryptedEvent;
  19840     new(type: string, eventInitDict?: MediaEncryptedEventInit): MediaEncryptedEvent;
  19841 };
  19842 
  19843 /**
  19844  * The **`MediaError`** interface represents an error which occurred while handling media in an HTML media element based on HTMLMediaElement, such as audio or video.
  19845  *
  19846  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaError)
  19847  */
  19848 interface MediaError {
  19849     /**
  19850      * The read-only property **`MediaError.code`** returns a numeric value which represents the kind of error that occurred on a media element.
  19851      *
  19852      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaError/code)
  19853      */
  19854     readonly code: number;
  19855     /**
  19856      * The read-only property **`MediaError.message`** returns a human-readable string offering specific diagnostic details related to the error described by the `MediaError` object, or an empty string (`''`) if no diagnostic information can be determined or provided.
  19857      *
  19858      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaError/message)
  19859      */
  19860     readonly message: string;
  19861     readonly MEDIA_ERR_ABORTED: 1;
  19862     readonly MEDIA_ERR_NETWORK: 2;
  19863     readonly MEDIA_ERR_DECODE: 3;
  19864     readonly MEDIA_ERR_SRC_NOT_SUPPORTED: 4;
  19865 }
  19866 
  19867 declare var MediaError: {
  19868     prototype: MediaError;
  19869     new(): MediaError;
  19870     readonly MEDIA_ERR_ABORTED: 1;
  19871     readonly MEDIA_ERR_NETWORK: 2;
  19872     readonly MEDIA_ERR_DECODE: 3;
  19873     readonly MEDIA_ERR_SRC_NOT_SUPPORTED: 4;
  19874 };
  19875 
  19876 /**
  19877  * The **`MediaKeyMessageEvent`** interface of the Encrypted Media Extensions API contains the content and related data when the content decryption module generates a message for the session.
  19878  * Available only in secure contexts.
  19879  *
  19880  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyMessageEvent)
  19881  */
  19882 interface MediaKeyMessageEvent extends Event {
  19883     /**
  19884      * The **`MediaKeyMessageEvent.message`** read-only property returns an ArrayBuffer with a message from the content decryption module.
  19885      *
  19886      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyMessageEvent/message)
  19887      */
  19888     readonly message: ArrayBuffer;
  19889     /**
  19890      * The **`MediaKeyMessageEvent.messageType`** read-only property indicates the type of message.
  19891      *
  19892      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyMessageEvent/messageType)
  19893      */
  19894     readonly messageType: MediaKeyMessageType;
  19895 }
  19896 
  19897 declare var MediaKeyMessageEvent: {
  19898     prototype: MediaKeyMessageEvent;
  19899     new(type: string, eventInitDict: MediaKeyMessageEventInit): MediaKeyMessageEvent;
  19900 };
  19901 
  19902 interface MediaKeySessionEventMap {
  19903     "keystatuseschange": Event;
  19904     "message": MediaKeyMessageEvent;
  19905 }
  19906 
  19907 /**
  19908  * The **`MediaKeySession`** interface of the Encrypted Media Extensions API represents a context for message exchange with a content decryption module (CDM).
  19909  * Available only in secure contexts.
  19910  *
  19911  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession)
  19912  */
  19913 interface MediaKeySession extends EventTarget {
  19914     /**
  19915      * The **`closed`** read-only property of the MediaKeySession interface returns a Promise signaling when a MediaKeySession closes.
  19916      *
  19917      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/closed)
  19918      */
  19919     readonly closed: Promise<MediaKeySessionClosedReason>;
  19920     /**
  19921      * The **`expiration`** read-only property of the MediaKeySession interface returns the time after which the keys in the current session can no longer be used to decrypt media data, or NaN if no such time exists.
  19922      *
  19923      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/expiration)
  19924      */
  19925     readonly expiration: number;
  19926     /**
  19927      * The **`keyStatuses`** read-only property of the MediaKeySession interface returns a reference to a read-only MediaKeyStatusMap of the current session's keys and their statuses.
  19928      *
  19929      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/keyStatuses)
  19930      */
  19931     readonly keyStatuses: MediaKeyStatusMap;
  19932     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/keystatuseschange_event) */
  19933     onkeystatuseschange: ((this: MediaKeySession, ev: Event) => any) | null;
  19934     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/message_event) */
  19935     onmessage: ((this: MediaKeySession, ev: MediaKeyMessageEvent) => any) | null;
  19936     /**
  19937      * The **`sessionId`** read-only property of the MediaKeySession interface contains a unique string generated by the content decryption module (CDM) for the current media object and its associated keys or licenses.
  19938      *
  19939      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/sessionId)
  19940      */
  19941     readonly sessionId: string;
  19942     /**
  19943      * The `close()` method of the MediaKeySession interface notifies that the current media session is no longer needed, and that the content decryption module should release any resources associated with this object and close it.
  19944      *
  19945      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/close)
  19946      */
  19947     close(): Promise<void>;
  19948     /**
  19949      * The `generateRequest()` method of the MediaKeySession interface returns a Promise after generating a license request based on initialization data.
  19950      *
  19951      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/generateRequest)
  19952      */
  19953     generateRequest(initDataType: string, initData: BufferSource): Promise<void>;
  19954     /**
  19955      * The `load()` method of the MediaKeySession interface returns a Promise that resolves to a boolean value after loading data for a specified session object.
  19956      *
  19957      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/load)
  19958      */
  19959     load(sessionId: string): Promise<boolean>;
  19960     /**
  19961      * The `remove()` method of the MediaKeySession interface returns a Promise after removing any session data associated with the current object.
  19962      *
  19963      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/remove)
  19964      */
  19965     remove(): Promise<void>;
  19966     /**
  19967      * The `update()` method of the MediaKeySession interface loads messages and licenses to the CDM, and then returns a Promise.
  19968      *
  19969      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/update)
  19970      */
  19971     update(response: BufferSource): Promise<void>;
  19972     addEventListener<K extends keyof MediaKeySessionEventMap>(type: K, listener: (this: MediaKeySession, ev: MediaKeySessionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  19973     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  19974     removeEventListener<K extends keyof MediaKeySessionEventMap>(type: K, listener: (this: MediaKeySession, ev: MediaKeySessionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  19975     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  19976 }
  19977 
  19978 declare var MediaKeySession: {
  19979     prototype: MediaKeySession;
  19980     new(): MediaKeySession;
  19981 };
  19982 
  19983 /**
  19984  * The **`MediaKeyStatusMap`** interface of the Encrypted Media Extensions API is a read-only map of media key statuses by key IDs.
  19985  * Available only in secure contexts.
  19986  *
  19987  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap)
  19988  */
  19989 interface MediaKeyStatusMap {
  19990     /**
  19991      * The **`size`** read-only property of the MediaKeyStatusMap interface returns the number of key/value paIrs in the status map.
  19992      *
  19993      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/size)
  19994      */
  19995     readonly size: number;
  19996     /**
  19997      * The **`get()`** method of the MediaKeyStatusMap interface returns the status value associated with the given key, or `undefined` if there is none.
  19998      *
  19999      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/get)
  20000      */
  20001     get(keyId: BufferSource): MediaKeyStatus | undefined;
  20002     /**
  20003      * The **`has()`** method of the whether a value has been associated with the given key.
  20004      *
  20005      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/has)
  20006      */
  20007     has(keyId: BufferSource): boolean;
  20008     forEach(callbackfn: (value: MediaKeyStatus, key: BufferSource, parent: MediaKeyStatusMap) => void, thisArg?: any): void;
  20009 }
  20010 
  20011 declare var MediaKeyStatusMap: {
  20012     prototype: MediaKeyStatusMap;
  20013     new(): MediaKeyStatusMap;
  20014 };
  20015 
  20016 /**
  20017  * The **`MediaKeySystemAccess`** interface of the Encrypted Media Extensions API provides access to a Key System for decryption and/or a content protection provider.
  20018  * Available only in secure contexts.
  20019  *
  20020  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySystemAccess)
  20021  */
  20022 interface MediaKeySystemAccess {
  20023     /**
  20024      * The **`keySystem`** read-only property of the MediaKeySystemAccess interface returns a string identifying the key system being used.
  20025      *
  20026      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySystemAccess/keySystem)
  20027      */
  20028     readonly keySystem: string;
  20029     /**
  20030      * The `MediaKeySystemAccess.createMediaKeys()` method returns a ```js-nolint createMediaKeys() ``` None.
  20031      *
  20032      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySystemAccess/createMediaKeys)
  20033      */
  20034     createMediaKeys(): Promise<MediaKeys>;
  20035     /**
  20036      * The **`getConfiguration()`** method of the MediaKeySystemAccess interface returns an object with the supported combination of the following configuration options: - `initDataTypes` [MISSING: ReadOnlyInline] - : Returns a list of supported initialization data type names.
  20037      *
  20038      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySystemAccess/getConfiguration)
  20039      */
  20040     getConfiguration(): MediaKeySystemConfiguration;
  20041 }
  20042 
  20043 declare var MediaKeySystemAccess: {
  20044     prototype: MediaKeySystemAccess;
  20045     new(): MediaKeySystemAccess;
  20046 };
  20047 
  20048 /**
  20049  * The **`MediaKeys`** interface of Encrypted Media Extensions API represents a set of keys that an associated HTMLMediaElement can use for decryption of media data during playback.
  20050  * Available only in secure contexts.
  20051  *
  20052  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeys)
  20053  */
  20054 interface MediaKeys {
  20055     /**
  20056      * The `createSession()` method of the MediaKeys interface returns a new MediaKeySession object, which represents a context for message exchange with a content decryption module (CDM).
  20057      *
  20058      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeys/createSession)
  20059      */
  20060     createSession(sessionType?: MediaKeySessionType): MediaKeySession;
  20061     /**
  20062      * The `getStatusForPolicy()` method of the MediaKeys interface is used to check whether the Content Decryption Module (CDM) would allow the presentation of encrypted media data using the keys, based on the specified policy requirements.
  20063      *
  20064      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeys/getStatusForPolicy)
  20065      */
  20066     getStatusForPolicy(policy?: MediaKeysPolicy): Promise<MediaKeyStatus>;
  20067     /**
  20068      * The **`setServerCertificate()`** method of the MediaKeys interface provides a server certificate to be used to encrypt messages to the license server.
  20069      *
  20070      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeys/setServerCertificate)
  20071      */
  20072     setServerCertificate(serverCertificate: BufferSource): Promise<boolean>;
  20073 }
  20074 
  20075 declare var MediaKeys: {
  20076     prototype: MediaKeys;
  20077     new(): MediaKeys;
  20078 };
  20079 
  20080 /**
  20081  * The **`MediaList`** interface represents the media queries of a stylesheet, e.g., those set using a link element's `media` attribute.
  20082  *
  20083  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList)
  20084  */
  20085 interface MediaList {
  20086     /**
  20087      * The read-only **`length`** property of the MediaList interface returns the number of media queries in the list.
  20088      *
  20089      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/length)
  20090      */
  20091     readonly length: number;
  20092     /**
  20093      * The **`mediaText`** property of the MediaList interface is a stringifier that returns a string representing the `MediaList` as text, and also allows you to set a new `MediaList`.
  20094      *
  20095      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/mediaText)
  20096      */
  20097     mediaText: string;
  20098     toString(): string;
  20099     /**
  20100      * The `appendMedium()` method of the MediaList interface adds a media query to the list.
  20101      *
  20102      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/appendMedium)
  20103      */
  20104     appendMedium(medium: string): void;
  20105     /**
  20106      * The `deleteMedium()` method of the MediaList interface removes from this `MediaList` the given media query.
  20107      *
  20108      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/deleteMedium)
  20109      */
  20110     deleteMedium(medium: string): void;
  20111     /**
  20112      * The **`item()`** method of the MediaList interface returns the media query at the specified `index`, or `null` if the specified `index` doesn't exist.
  20113      *
  20114      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/item)
  20115      */
  20116     item(index: number): string | null;
  20117     [index: number]: string;
  20118 }
  20119 
  20120 declare var MediaList: {
  20121     prototype: MediaList;
  20122     new(): MediaList;
  20123 };
  20124 
  20125 /**
  20126  * The **`MediaMetadata`** interface of the Media Session API allows a web page to provide rich media metadata for display in a platform UI.
  20127  *
  20128  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata)
  20129  */
  20130 interface MediaMetadata {
  20131     /**
  20132      * The **`album`** property of the collection containing the media to be played.
  20133      *
  20134      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata/album)
  20135      */
  20136     album: string;
  20137     /**
  20138      * The **`artist`** property of the creator, etc., of the media to be played.
  20139      *
  20140      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata/artist)
  20141      */
  20142     artist: string;
  20143     /**
  20144      * The **`artwork`** property of the objects representing images associated with playing media.
  20145      *
  20146      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata/artwork)
  20147      */
  20148     artwork: ReadonlyArray<MediaImage>;
  20149     /**
  20150      * The **`title`** property of the played.
  20151      *
  20152      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata/title)
  20153      */
  20154     title: string;
  20155 }
  20156 
  20157 declare var MediaMetadata: {
  20158     prototype: MediaMetadata;
  20159     new(init?: MediaMetadataInit): MediaMetadata;
  20160 };
  20161 
  20162 interface MediaQueryListEventMap {
  20163     "change": MediaQueryListEvent;
  20164 }
  20165 
  20166 /**
  20167  * A **`MediaQueryList`** object stores information on a media query applied to a document, with support for both immediate and event-driven matching against the state of the document.
  20168  *
  20169  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList)
  20170  */
  20171 interface MediaQueryList extends EventTarget {
  20172     /**
  20173      * The **`matches`** read-only property of the `true` if the document currently matches the media query list, or `false` if not.
  20174      *
  20175      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/matches)
  20176      */
  20177     readonly matches: boolean;
  20178     /**
  20179      * The **`media`** read-only property of the serialized media query.
  20180      *
  20181      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/media)
  20182      */
  20183     readonly media: string;
  20184     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/change_event) */
  20185     onchange: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null;
  20186     /**
  20187      * The deprecated **`addListener()`** method of the `MediaQueryListener` that will run a custom callback function in response to the media query status changing.
  20188      * @deprecated
  20189      *
  20190      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/addListener)
  20191      */
  20192     addListener(callback: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null): void;
  20193     /**
  20194      * The **`removeListener()`** method of the `MediaQueryListener`.
  20195      * @deprecated
  20196      *
  20197      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/removeListener)
  20198      */
  20199     removeListener(callback: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | null): void;
  20200     addEventListener<K extends keyof MediaQueryListEventMap>(type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  20201     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  20202     removeEventListener<K extends keyof MediaQueryListEventMap>(type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  20203     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  20204 }
  20205 
  20206 declare var MediaQueryList: {
  20207     prototype: MediaQueryList;
  20208     new(): MediaQueryList;
  20209 };
  20210 
  20211 /**
  20212  * The `MediaQueryListEvent` object stores information on the changes that have happened to a MediaQueryList object — instances are available as the event object on a function referenced by a MediaQueryList.change_event event.
  20213  *
  20214  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryListEvent)
  20215  */
  20216 interface MediaQueryListEvent extends Event {
  20217     /**
  20218      * The **`matches`** read-only property of the `true` if the document currently matches the media query list, or `false` if not.
  20219      *
  20220      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryListEvent/matches)
  20221      */
  20222     readonly matches: boolean;
  20223     /**
  20224      * The **`media`** read-only property of the a serialized media query.
  20225      *
  20226      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryListEvent/media)
  20227      */
  20228     readonly media: string;
  20229 }
  20230 
  20231 declare var MediaQueryListEvent: {
  20232     prototype: MediaQueryListEvent;
  20233     new(type: string, eventInitDict?: MediaQueryListEventInit): MediaQueryListEvent;
  20234 };
  20235 
  20236 interface MediaRecorderEventMap {
  20237     "dataavailable": BlobEvent;
  20238     "error": ErrorEvent;
  20239     "pause": Event;
  20240     "resume": Event;
  20241     "start": Event;
  20242     "stop": Event;
  20243 }
  20244 
  20245 /**
  20246  * The **`MediaRecorder`** interface of the MediaStream Recording API provides functionality to easily record media.
  20247  *
  20248  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder)
  20249  */
  20250 interface MediaRecorder extends EventTarget {
  20251     /**
  20252      * The **`audioBitsPerSecond`** read-only property of the MediaRecorder interface returns the audio encoding bit rate in use.
  20253      *
  20254      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/audioBitsPerSecond)
  20255      */
  20256     readonly audioBitsPerSecond: number;
  20257     /**
  20258      * The **`mimeType`** read-only property of the MediaRecorder interface returns the MIME media type that was specified when creating the MediaRecorder object, or, if none was specified, which was chosen by the browser.
  20259      *
  20260      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/mimeType)
  20261      */
  20262     readonly mimeType: string;
  20263     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/dataavailable_event) */
  20264     ondataavailable: ((this: MediaRecorder, ev: BlobEvent) => any) | null;
  20265     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/error_event) */
  20266     onerror: ((this: MediaRecorder, ev: ErrorEvent) => any) | null;
  20267     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/pause_event) */
  20268     onpause: ((this: MediaRecorder, ev: Event) => any) | null;
  20269     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/resume_event) */
  20270     onresume: ((this: MediaRecorder, ev: Event) => any) | null;
  20271     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/start_event) */
  20272     onstart: ((this: MediaRecorder, ev: Event) => any) | null;
  20273     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/stop_event) */
  20274     onstop: ((this: MediaRecorder, ev: Event) => any) | null;
  20275     /**
  20276      * The **`state`** read-only property of the MediaRecorder interface returns the current state of the current `MediaRecorder` object.
  20277      *
  20278      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/state)
  20279      */
  20280     readonly state: RecordingState;
  20281     /**
  20282      * The **`stream`** read-only property of the MediaRecorder interface returns the stream that was passed into the MediaRecorder.MediaRecorder constructor when the `MediaRecorder` was created.
  20283      *
  20284      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/stream)
  20285      */
  20286     readonly stream: MediaStream;
  20287     /**
  20288      * The **`videoBitsPerSecond`** read-only property of the MediaRecorder interface returns the video encoding bit rate in use.
  20289      *
  20290      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/videoBitsPerSecond)
  20291      */
  20292     readonly videoBitsPerSecond: number;
  20293     /**
  20294      * The **`pause()`** method of the MediaRecorder interface is used to pause recording of media streams.
  20295      *
  20296      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/pause)
  20297      */
  20298     pause(): void;
  20299     /**
  20300      * The **`requestData()`** method of the MediaRecorder interface is used to raise a MediaRecorder.dataavailable_event event containing a called.
  20301      *
  20302      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/requestData)
  20303      */
  20304     requestData(): void;
  20305     /**
  20306      * The **`resume()`** method of the MediaRecorder interface is used to resume media recording when it has been previously paused.
  20307      *
  20308      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/resume)
  20309      */
  20310     resume(): void;
  20311     /**
  20312      * The **`start()`** method of the MediaRecorder interface begins recording media into one or more Blob objects.
  20313      *
  20314      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/start)
  20315      */
  20316     start(timeslice?: number): void;
  20317     /**
  20318      * The **`stop()`** method of the MediaRecorder interface is used to stop media capture.
  20319      *
  20320      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/stop)
  20321      */
  20322     stop(): void;
  20323     addEventListener<K extends keyof MediaRecorderEventMap>(type: K, listener: (this: MediaRecorder, ev: MediaRecorderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  20324     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  20325     removeEventListener<K extends keyof MediaRecorderEventMap>(type: K, listener: (this: MediaRecorder, ev: MediaRecorderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  20326     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  20327 }
  20328 
  20329 declare var MediaRecorder: {
  20330     prototype: MediaRecorder;
  20331     new(stream: MediaStream, options?: MediaRecorderOptions): MediaRecorder;
  20332     /**
  20333      * The **`isTypeSupported()`** static method of the MediaRecorder interface returns a Boolean which is `true` if the MIME media type specified is one the user agent should be able to successfully record.
  20334      *
  20335      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/isTypeSupported_static)
  20336      */
  20337     isTypeSupported(type: string): boolean;
  20338 };
  20339 
  20340 /**
  20341  * The **`MediaSession`** interface of the Media Session API allows a web page to provide custom behaviors for standard media playback interactions, and to report metadata that can be sent by the user agent to the device or operating system for presentation in standardized user interface elements.
  20342  *
  20343  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession)
  20344  */
  20345 interface MediaSession {
  20346     /**
  20347      * The **`metadata`** property of the MediaSession interface contains a MediaMetadata object providing descriptive information about the currently playing media, or `null` if the metadata has not been set.
  20348      *
  20349      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession/metadata)
  20350      */
  20351     metadata: MediaMetadata | null;
  20352     /**
  20353      * The **`playbackState`** property of the playing or paused.
  20354      *
  20355      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession/playbackState)
  20356      */
  20357     playbackState: MediaSessionPlaybackState;
  20358     /**
  20359      * The **`setActionHandler()`** method of the MediaSession interface sets a handler for a media session action.
  20360      *
  20361      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession/setActionHandler)
  20362      */
  20363     setActionHandler(action: MediaSessionAction, handler: MediaSessionActionHandler | null): void;
  20364     /**
  20365      * The **`setCameraActive()`** method of the MediaSession interface is used to indicate to the user agent whether the user's camera is considered to be active.
  20366      *
  20367      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession/setCameraActive)
  20368      */
  20369     setCameraActive(active: boolean): Promise<void>;
  20370     /**
  20371      * The **`setMicrophoneActive()`** method of the MediaSession interface is used to indicate to the user agent whether the user's microphone is considered to be currently muted.
  20372      *
  20373      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession/setMicrophoneActive)
  20374      */
  20375     setMicrophoneActive(active: boolean): Promise<void>;
  20376     /**
  20377      * The **`setPositionState()`** method of the document's media playback position and speed for presentation by user's device in any kind of interface that provides details about ongoing media.
  20378      *
  20379      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession/setPositionState)
  20380      */
  20381     setPositionState(state?: MediaPositionState): void;
  20382 }
  20383 
  20384 declare var MediaSession: {
  20385     prototype: MediaSession;
  20386     new(): MediaSession;
  20387 };
  20388 
  20389 interface MediaSourceEventMap {
  20390     "sourceclose": Event;
  20391     "sourceended": Event;
  20392     "sourceopen": Event;
  20393 }
  20394 
  20395 /**
  20396  * The **`MediaSource`** interface of the Media Source Extensions API represents a source of media data for an HTMLMediaElement object.
  20397  *
  20398  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource)
  20399  */
  20400 interface MediaSource extends EventTarget {
  20401     /**
  20402      * The **`activeSourceBuffers`** read-only property of the containing a subset of the SourceBuffer objects contained within providing the selected video track, enabled audio tracks, and shown/hidden text tracks.
  20403      *
  20404      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/activeSourceBuffers)
  20405      */
  20406     readonly activeSourceBuffers: SourceBufferList;
  20407     /**
  20408      * The **`duration`** property of the MediaSource interface gets and sets the duration of the current media being presented.
  20409      *
  20410      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/duration)
  20411      */
  20412     duration: number;
  20413     onsourceclose: ((this: MediaSource, ev: Event) => any) | null;
  20414     onsourceended: ((this: MediaSource, ev: Event) => any) | null;
  20415     onsourceopen: ((this: MediaSource, ev: Event) => any) | null;
  20416     /**
  20417      * The **`readyState`** read-only property of the current `MediaSource`.
  20418      *
  20419      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/readyState)
  20420      */
  20421     readonly readyState: ReadyState;
  20422     /**
  20423      * The **`sourceBuffers`** read-only property of the containing the list of SourceBuffer objects associated with this `MediaSource`.
  20424      *
  20425      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/sourceBuffers)
  20426      */
  20427     readonly sourceBuffers: SourceBufferList;
  20428     /**
  20429      * The **`addSourceBuffer()`** method of the given MIME type and adds it to the `MediaSource`'s `SourceBuffer` is also returned.
  20430      *
  20431      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/addSourceBuffer)
  20432      */
  20433     addSourceBuffer(type: string): SourceBuffer;
  20434     /**
  20435      * The **`clearLiveSeekableRange()`** method of the to MediaSource.setLiveSeekableRange().
  20436      *
  20437      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/clearLiveSeekableRange)
  20438      */
  20439     clearLiveSeekableRange(): void;
  20440     /**
  20441      * The **`endOfStream()`** method of the ```js-nolint endOfStream() endOfStream(endOfStreamError) ``` - `endOfStreamError` MISSING: optional_inline] - : A string representing an error to throw when the end of the stream is reached.
  20442      *
  20443      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/endOfStream)
  20444      */
  20445     endOfStream(error?: EndOfStreamError): void;
  20446     /**
  20447      * The **`removeSourceBuffer()`** method of the MediaSource interface removes the given SourceBuffer from the SourceBufferList associated with this `MediaSource` object.
  20448      *
  20449      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/removeSourceBuffer)
  20450      */
  20451     removeSourceBuffer(sourceBuffer: SourceBuffer): void;
  20452     /**
  20453      * The **`setLiveSeekableRange()`** method of the media element.
  20454      *
  20455      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/setLiveSeekableRange)
  20456      */
  20457     setLiveSeekableRange(start: number, end: number): void;
  20458     addEventListener<K extends keyof MediaSourceEventMap>(type: K, listener: (this: MediaSource, ev: MediaSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  20459     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  20460     removeEventListener<K extends keyof MediaSourceEventMap>(type: K, listener: (this: MediaSource, ev: MediaSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  20461     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  20462 }
  20463 
  20464 declare var MediaSource: {
  20465     prototype: MediaSource;
  20466     new(): MediaSource;
  20467     /**
  20468      * The **`canConstructInDedicatedWorker`** static property of the MediaSource interface returns `true` if `MediaSource` worker support is implemented, providing a low-latency feature detection mechanism.
  20469      *
  20470      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/canConstructInDedicatedWorker_static)
  20471      */
  20472     readonly canConstructInDedicatedWorker: boolean;
  20473     /**
  20474      * The **`MediaSource.isTypeSupported()`** static method returns a boolean value which is `true` if the given MIME type and (optional) codec are _likely_ to be supported by the current user agent.
  20475      *
  20476      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/isTypeSupported_static)
  20477      */
  20478     isTypeSupported(type: string): boolean;
  20479 };
  20480 
  20481 /**
  20482  * The **`MediaSourceHandle`** interface of the Media Source Extensions API is a proxy for a MediaSource that can be transferred from a dedicated worker back to the main thread and attached to a media element via its HTMLMediaElement.srcObject property.
  20483  *
  20484  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSourceHandle)
  20485  */
  20486 interface MediaSourceHandle {
  20487 }
  20488 
  20489 declare var MediaSourceHandle: {
  20490     prototype: MediaSourceHandle;
  20491     new(): MediaSourceHandle;
  20492 };
  20493 
  20494 interface MediaStreamEventMap {
  20495     "addtrack": MediaStreamTrackEvent;
  20496     "removetrack": MediaStreamTrackEvent;
  20497 }
  20498 
  20499 /**
  20500  * The **`MediaStream`** interface of the Media Capture and Streams API represents a stream of media content.
  20501  *
  20502  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream)
  20503  */
  20504 interface MediaStream extends EventTarget {
  20505     /**
  20506      * The **`active`** read-only property of the `true` if the stream is currently active; otherwise, it returns `false`.
  20507      *
  20508      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/active)
  20509      */
  20510     readonly active: boolean;
  20511     /**
  20512      * The **`id`** read-only property of the MediaStream interface is a string containing 36 characters denoting a unique identifier (GUID) for the object.
  20513      *
  20514      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/id)
  20515      */
  20516     readonly id: string;
  20517     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/addtrack_event) */
  20518     onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
  20519     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/removetrack_event) */
  20520     onremovetrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null;
  20521     /**
  20522      * The **`addTrack()`** method of the MediaStream interface adds a new track to the stream.
  20523      *
  20524      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/addTrack)
  20525      */
  20526     addTrack(track: MediaStreamTrack): void;
  20527     /**
  20528      * The **`clone()`** method of the MediaStream interface creates a duplicate of the `MediaStream`.
  20529      *
  20530      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/clone)
  20531      */
  20532     clone(): MediaStream;
  20533     /**
  20534      * The **`getAudioTracks()`** method of the stream's track set where MediaStreamTrack.kind is `audio`.
  20535      *
  20536      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/getAudioTracks)
  20537      */
  20538     getAudioTracks(): MediaStreamTrack[];
  20539     /**
  20540      * The **`getTrackById()`** method of the MediaStream interface returns a MediaStreamTrack object representing the track with the specified ID string.
  20541      *
  20542      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/getTrackById)
  20543      */
  20544     getTrackById(trackId: string): MediaStreamTrack | null;
  20545     /**
  20546      * The **`getTracks()`** method of the stream's track set, regardless of MediaStreamTrack.kind.
  20547      *
  20548      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/getTracks)
  20549      */
  20550     getTracks(): MediaStreamTrack[];
  20551     /**
  20552      * The **`getVideoTracks()`** method of the ```js-nolint getVideoTracks() ``` None.
  20553      *
  20554      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/getVideoTracks)
  20555      */
  20556     getVideoTracks(): MediaStreamTrack[];
  20557     /**
  20558      * The **`removeTrack()`** method of the MediaStream interface removes a ```js-nolint removeTrack(track) ``` - `track` - : A MediaStreamTrack that will be removed from the stream.
  20559      *
  20560      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/removeTrack)
  20561      */
  20562     removeTrack(track: MediaStreamTrack): void;
  20563     addEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  20564     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  20565     removeEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  20566     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  20567 }
  20568 
  20569 declare var MediaStream: {
  20570     prototype: MediaStream;
  20571     new(): MediaStream;
  20572     new(stream: MediaStream): MediaStream;
  20573     new(tracks: MediaStreamTrack[]): MediaStream;
  20574 };
  20575 
  20576 /**
  20577  * The `MediaStreamAudioDestinationNode` interface represents an audio destination consisting of a WebRTC MediaStream with a single `AudioMediaStreamTrack`, which can be used in a similar way to a `MediaStream` obtained from MediaDevices.getUserMedia.
  20578  *
  20579  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamAudioDestinationNode)
  20580  */
  20581 interface MediaStreamAudioDestinationNode extends AudioNode {
  20582     /**
  20583      * The `stream` property of the AudioContext interface represents a MediaStream containing a single audio MediaStreamTrack with the same number of channels as the node itself.
  20584      *
  20585      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamAudioDestinationNode/stream)
  20586      */
  20587     readonly stream: MediaStream;
  20588 }
  20589 
  20590 declare var MediaStreamAudioDestinationNode: {
  20591     prototype: MediaStreamAudioDestinationNode;
  20592     new(context: AudioContext, options?: AudioNodeOptions): MediaStreamAudioDestinationNode;
  20593 };
  20594 
  20595 /**
  20596  * The **`MediaStreamAudioSourceNode`** interface is 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.
  20597  *
  20598  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamAudioSourceNode)
  20599  */
  20600 interface MediaStreamAudioSourceNode extends AudioNode {
  20601     /**
  20602      * The MediaStreamAudioSourceNode interface's read-only **`mediaStream`** property indicates the receiving audio.
  20603      *
  20604      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamAudioSourceNode/mediaStream)
  20605      */
  20606     readonly mediaStream: MediaStream;
  20607 }
  20608 
  20609 declare var MediaStreamAudioSourceNode: {
  20610     prototype: MediaStreamAudioSourceNode;
  20611     new(context: AudioContext, options: MediaStreamAudioSourceOptions): MediaStreamAudioSourceNode;
  20612 };
  20613 
  20614 interface MediaStreamTrackEventMap {
  20615     "ended": Event;
  20616     "mute": Event;
  20617     "unmute": Event;
  20618 }
  20619 
  20620 /**
  20621  * The **`MediaStreamTrack`** interface of the Media Capture and Streams API represents a single media track within a stream; typically, these are audio or video tracks, but other track types may exist as well.
  20622  *
  20623  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack)
  20624  */
  20625 interface MediaStreamTrack extends EventTarget {
  20626     /**
  20627      * The **`contentHint`** property of the MediaStreamTrack interface is a string that hints at the type of content the track contains.
  20628      *
  20629      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/contentHint)
  20630      */
  20631     contentHint: string;
  20632     /**
  20633      * The **`enabled`** property of the `true` if the track is allowed to render the source stream or `false` if it is not.
  20634      *
  20635      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/enabled)
  20636      */
  20637     enabled: boolean;
  20638     /**
  20639      * The **`id`** read-only property of the MediaStreamTrack interface returns a string containing a unique identifier (GUID) for the track, which is generated by the user agent.
  20640      *
  20641      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/id)
  20642      */
  20643     readonly id: string;
  20644     /**
  20645      * The **`kind`** read-only property of the MediaStreamTrack interface returns a string set to `'audio'` if the track is an audio track and to `'video'` if it is a video track.
  20646      *
  20647      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/kind)
  20648      */
  20649     readonly kind: string;
  20650     /**
  20651      * The **`label`** read-only property of the MediaStreamTrack interface returns a string containing a user agent-assigned label that identifies the track source, as in `'internal microphone'`.
  20652      *
  20653      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/label)
  20654      */
  20655     readonly label: string;
  20656     /**
  20657      * The **`muted`** read-only property of the indicating whether or not the track is currently unable to provide media output.
  20658      *
  20659      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/muted)
  20660      */
  20661     readonly muted: boolean;
  20662     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/ended_event) */
  20663     onended: ((this: MediaStreamTrack, ev: Event) => any) | null;
  20664     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/mute_event) */
  20665     onmute: ((this: MediaStreamTrack, ev: Event) => any) | null;
  20666     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/unmute_event) */
  20667     onunmute: ((this: MediaStreamTrack, ev: Event) => any) | null;
  20668     /**
  20669      * The **`readyState`** read-only property of the MediaStreamTrack interface returns an enumerated value giving the status of the track.
  20670      *
  20671      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/readyState)
  20672      */
  20673     readonly readyState: MediaStreamTrackState;
  20674     /**
  20675      * The **`applyConstraints()`** method of the MediaStreamTrack interface applies a set of constraints to the track; these constraints let the website or app establish ideal values and acceptable ranges of values for the constrainable properties of the track, such as frame rate, dimensions, echo cancellation, and so forth.
  20676      *
  20677      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/applyConstraints)
  20678      */
  20679     applyConstraints(constraints?: MediaTrackConstraints): Promise<void>;
  20680     /**
  20681      * The **`clone()`** method of the MediaStreamTrack interface creates a duplicate of the `MediaStreamTrack`.
  20682      *
  20683      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/clone)
  20684      */
  20685     clone(): MediaStreamTrack;
  20686     /**
  20687      * The **`getCapabilities()`** method of the MediaStreamTrack interface returns an object detailing the accepted values or value range for each constrainable property of the associated `MediaStreamTrack`, based upon the platform and user agent.
  20688      *
  20689      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/getCapabilities)
  20690      */
  20691     getCapabilities(): MediaTrackCapabilities;
  20692     /**
  20693      * The **`getConstraints()`** method of the MediaStreamTrack interface returns a recently established for the track using a prior call to constraints indicate values and ranges of values that the website or application has specified are required or acceptable for the included constrainable properties.
  20694      *
  20695      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/getConstraints)
  20696      */
  20697     getConstraints(): MediaTrackConstraints;
  20698     /**
  20699      * The **`getSettings()`** method of the object containing the current values of each of the constrainable properties for the current `MediaStreamTrack`.
  20700      *
  20701      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/getSettings)
  20702      */
  20703     getSettings(): MediaTrackSettings;
  20704     /**
  20705      * The **`stop()`** method of the MediaStreamTrack interface stops the track.
  20706      *
  20707      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/stop)
  20708      */
  20709     stop(): void;
  20710     addEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  20711     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  20712     removeEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  20713     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  20714 }
  20715 
  20716 declare var MediaStreamTrack: {
  20717     prototype: MediaStreamTrack;
  20718     new(): MediaStreamTrack;
  20719 };
  20720 
  20721 /**
  20722  * The **`MediaStreamTrackEvent`** interface of the Media Capture and Streams API represents events which indicate that a MediaStream has had tracks added to or removed from the stream through calls to Media Capture and Streams API methods.
  20723  *
  20724  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrackEvent)
  20725  */
  20726 interface MediaStreamTrackEvent extends Event {
  20727     /**
  20728      * The **`track`** read-only property of the MediaStreamTrackEvent interface returns the MediaStreamTrack associated with this event.
  20729      *
  20730      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrackEvent/track)
  20731      */
  20732     readonly track: MediaStreamTrack;
  20733 }
  20734 
  20735 declare var MediaStreamTrackEvent: {
  20736     prototype: MediaStreamTrackEvent;
  20737     new(type: string, eventInitDict: MediaStreamTrackEventInit): MediaStreamTrackEvent;
  20738 };
  20739 
  20740 /**
  20741  * The **`MessageChannel`** interface of the Channel Messaging API allows us to create a new message channel and send data through it via its two MessagePort properties.
  20742  *
  20743  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel)
  20744  */
  20745 interface MessageChannel {
  20746     /**
  20747      * The **`port1`** read-only property of the the port attached to the context that originated the channel.
  20748      *
  20749      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel/port1)
  20750      */
  20751     readonly port1: MessagePort;
  20752     /**
  20753      * The **`port2`** read-only property of the the port attached to the context at the other end of the channel, which the message is initially sent to.
  20754      *
  20755      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel/port2)
  20756      */
  20757     readonly port2: MessagePort;
  20758 }
  20759 
  20760 declare var MessageChannel: {
  20761     prototype: MessageChannel;
  20762     new(): MessageChannel;
  20763 };
  20764 
  20765 /**
  20766  * The **`MessageEvent`** interface represents a message received by a target object.
  20767  *
  20768  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent)
  20769  */
  20770 interface MessageEvent<T = any> extends Event {
  20771     /**
  20772      * The **`data`** read-only property of the The data sent by the message emitter; this can be any data type, depending on what originated this event.
  20773      *
  20774      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/data)
  20775      */
  20776     readonly data: T;
  20777     /**
  20778      * The **`lastEventId`** read-only property of the unique ID for the event.
  20779      *
  20780      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/lastEventId)
  20781      */
  20782     readonly lastEventId: string;
  20783     /**
  20784      * The **`origin`** read-only property of the origin of the message emitter.
  20785      *
  20786      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/origin)
  20787      */
  20788     readonly origin: string;
  20789     /**
  20790      * The **`ports`** read-only property of the containing all MessagePort objects sent with the message, in order.
  20791      *
  20792      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/ports)
  20793      */
  20794     readonly ports: ReadonlyArray<MessagePort>;
  20795     /**
  20796      * The **`source`** read-only property of the a WindowProxy, MessagePort, or a `MessageEventSource` (which can be a WindowProxy, message emitter.
  20797      *
  20798      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/source)
  20799      */
  20800     readonly source: MessageEventSource | null;
  20801     /** @deprecated */
  20802     initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: MessagePort[]): void;
  20803 }
  20804 
  20805 declare var MessageEvent: {
  20806     prototype: MessageEvent;
  20807     new<T>(type: string, eventInitDict?: MessageEventInit<T>): MessageEvent<T>;
  20808 };
  20809 
  20810 interface MessageEventTargetEventMap {
  20811     "message": MessageEvent;
  20812     "messageerror": MessageEvent;
  20813 }
  20814 
  20815 interface MessageEventTarget<T> {
  20816     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/message_event) */
  20817     onmessage: ((this: T, ev: MessageEvent) => any) | null;
  20818     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/messageerror_event) */
  20819     onmessageerror: ((this: T, ev: MessageEvent) => any) | null;
  20820     addEventListener<K extends keyof MessageEventTargetEventMap>(type: K, listener: (this: T, ev: MessageEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  20821     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  20822     removeEventListener<K extends keyof MessageEventTargetEventMap>(type: K, listener: (this: T, ev: MessageEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  20823     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  20824 }
  20825 
  20826 interface MessagePortEventMap extends MessageEventTargetEventMap {
  20827     "message": MessageEvent;
  20828     "messageerror": MessageEvent;
  20829 }
  20830 
  20831 /**
  20832  * The **`MessagePort`** interface of the Channel Messaging API 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.
  20833  *
  20834  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort)
  20835  */
  20836 interface MessagePort extends EventTarget, MessageEventTarget<MessagePort> {
  20837     /**
  20838      * The **`close()`** method of the MessagePort interface disconnects the port, so it is no longer active.
  20839      *
  20840      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/close)
  20841      */
  20842     close(): void;
  20843     /**
  20844      * The **`postMessage()`** method of the transfers ownership of objects to other browsing contexts.
  20845      *
  20846      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/postMessage)
  20847      */
  20848     postMessage(message: any, transfer: Transferable[]): void;
  20849     postMessage(message: any, options?: StructuredSerializeOptions): void;
  20850     /**
  20851      * The **`start()`** method of the MessagePort interface starts the sending of messages queued on the port.
  20852      *
  20853      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/start)
  20854      */
  20855     start(): void;
  20856     addEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  20857     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  20858     removeEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  20859     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  20860 }
  20861 
  20862 declare var MessagePort: {
  20863     prototype: MessagePort;
  20864     new(): MessagePort;
  20865 };
  20866 
  20867 /**
  20868  * The **`MimeType`** interface provides contains information about a MIME type associated with a particular plugin.
  20869  * @deprecated
  20870  *
  20871  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeType)
  20872  */
  20873 interface MimeType {
  20874     /**
  20875      * Returns the MIME type's description.
  20876      * @deprecated
  20877      */
  20878     readonly description: string;
  20879     /**
  20880      * Returns the Plugin object that implements this MIME type.
  20881      * @deprecated
  20882      */
  20883     readonly enabledPlugin: Plugin;
  20884     /**
  20885      * Returns the MIME type's typical file extensions, in a comma-separated list.
  20886      * @deprecated
  20887      */
  20888     readonly suffixes: string;
  20889     /**
  20890      * Returns the MIME type.
  20891      * @deprecated
  20892      */
  20893     readonly type: string;
  20894 }
  20895 
  20896 /** @deprecated */
  20897 declare var MimeType: {
  20898     prototype: MimeType;
  20899     new(): MimeType;
  20900 };
  20901 
  20902 /**
  20903  * The **`MimeTypeArray`** interface returns an array of MimeType instances, each of which contains information about a supported browser plugins.
  20904  * @deprecated
  20905  *
  20906  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeTypeArray)
  20907  */
  20908 interface MimeTypeArray {
  20909     /** @deprecated */
  20910     readonly length: number;
  20911     /** @deprecated */
  20912     item(index: number): MimeType | null;
  20913     /** @deprecated */
  20914     namedItem(name: string): MimeType | null;
  20915     [index: number]: MimeType;
  20916 }
  20917 
  20918 /** @deprecated */
  20919 declare var MimeTypeArray: {
  20920     prototype: MimeTypeArray;
  20921     new(): MimeTypeArray;
  20922 };
  20923 
  20924 /**
  20925  * The **`MouseEvent`** interface represents events that occur due to the user interacting with a pointing device (such as a mouse).
  20926  *
  20927  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent)
  20928  */
  20929 interface MouseEvent extends UIEvent {
  20930     /**
  20931      * The **`MouseEvent.altKey`** read-only property is a boolean value that indicates whether the <kbd>alt</kbd> key was pressed or not when a given mouse event occurs.
  20932      *
  20933      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/altKey)
  20934      */
  20935     readonly altKey: boolean;
  20936     /**
  20937      * The **`MouseEvent.button`** read-only property indicates which button was pressed or released on the mouse to trigger the event.
  20938      *
  20939      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/button)
  20940      */
  20941     readonly button: number;
  20942     /**
  20943      * The **`MouseEvent.buttons`** read-only property indicates which buttons are pressed on the mouse (or other input device) when a mouse event is triggered.
  20944      *
  20945      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/buttons)
  20946      */
  20947     readonly buttons: number;
  20948     /**
  20949      * The **`clientX`** read-only property of the MouseEvent interface provides the horizontal coordinate within the application's viewport at which the event occurred (as opposed to the coordinate within the page).
  20950      *
  20951      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/clientX)
  20952      */
  20953     readonly clientX: number;
  20954     /**
  20955      * The **`clientY`** read-only property of the MouseEvent interface provides the vertical coordinate within the application's viewport at which the event occurred (as opposed to the coordinate within the page).
  20956      *
  20957      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/clientY)
  20958      */
  20959     readonly clientY: number;
  20960     /**
  20961      * The **`MouseEvent.ctrlKey`** read-only property is a boolean value that indicates whether the <kbd>ctrl</kbd> key was pressed or not when a given mouse event occurs.
  20962      *
  20963      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/ctrlKey)
  20964      */
  20965     readonly ctrlKey: boolean;
  20966     /**
  20967      * The **`MouseEvent.layerX`** read-only property returns the horizontal coordinate of the event relative to the current layer.
  20968      *
  20969      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/layerX)
  20970      */
  20971     readonly layerX: number;
  20972     /**
  20973      * The **`MouseEvent.layerY`** read-only property returns the vertical coordinate of the event relative to the current layer.
  20974      *
  20975      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/layerY)
  20976      */
  20977     readonly layerY: number;
  20978     /**
  20979      * The **`MouseEvent.metaKey`** read-only property is a boolean value that indicates whether the <kbd>meta</kbd> key was pressed or not when a given mouse event occurs.
  20980      *
  20981      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/metaKey)
  20982      */
  20983     readonly metaKey: boolean;
  20984     /**
  20985      * The **`movementX`** read-only property of the MouseEvent interface provides the difference in the X coordinate of the mouse pointer between the given event and the previous Element/mousemove_event event.
  20986      *
  20987      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/movementX)
  20988      */
  20989     readonly movementX: number;
  20990     /**
  20991      * The **`movementY`** read-only property of the MouseEvent interface provides the difference in the Y coordinate of the mouse pointer between the given event and the previous Element/mousemove_event event.
  20992      *
  20993      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/movementY)
  20994      */
  20995     readonly movementY: number;
  20996     /**
  20997      * The **`offsetX`** read-only property of the MouseEvent interface provides the offset in the X coordinate of the mouse pointer between that event and the padding edge of the target node.
  20998      *
  20999      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/offsetX)
  21000      */
  21001     readonly offsetX: number;
  21002     /**
  21003      * The **`offsetY`** read-only property of the MouseEvent interface provides the offset in the Y coordinate of the mouse pointer between that event and the padding edge of the target node.
  21004      *
  21005      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/offsetY)
  21006      */
  21007     readonly offsetY: number;
  21008     /**
  21009      * The **`pageX`** read-only property of the MouseEvent interface returns the X (horizontal) coordinate (in pixels) at which the mouse was clicked, relative to the left edge of the entire document.
  21010      *
  21011      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/pageX)
  21012      */
  21013     readonly pageX: number;
  21014     /**
  21015      * The **`pageY`** read-only property of the MouseEvent interface returns the Y (vertical) coordinate (in pixels) at which the mouse was clicked, relative to the top edge of the entire document.
  21016      *
  21017      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/pageY)
  21018      */
  21019     readonly pageY: number;
  21020     /**
  21021      * The **`MouseEvent.relatedTarget`** read-only property is the secondary target for the mouse event, if there is one.
  21022      *
  21023      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/relatedTarget)
  21024      */
  21025     readonly relatedTarget: EventTarget | null;
  21026     /**
  21027      * The **`screenX`** read-only property of the MouseEvent interface provides the horizontal coordinate (offset) of the mouse pointer in screen coordinates.
  21028      *
  21029      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/screenX)
  21030      */
  21031     readonly screenX: number;
  21032     /**
  21033      * The **`screenY`** read-only property of the MouseEvent interface provides the vertical coordinate (offset) of the mouse pointer in screen coordinates.
  21034      *
  21035      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/screenY)
  21036      */
  21037     readonly screenY: number;
  21038     /**
  21039      * The **`MouseEvent.shiftKey`** read-only property is a boolean value that indicates whether the <kbd>shift</kbd> key was pressed or not when a given mouse event occurs.
  21040      *
  21041      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/shiftKey)
  21042      */
  21043     readonly shiftKey: boolean;
  21044     /**
  21045      * The **`MouseEvent.x`** property is an alias for the MouseEvent.clientX property.
  21046      *
  21047      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/x)
  21048      */
  21049     readonly x: number;
  21050     /**
  21051      * The **`MouseEvent.y`** property is an alias for the MouseEvent.clientY property.
  21052      *
  21053      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/y)
  21054      */
  21055     readonly y: number;
  21056     /**
  21057      * The **`MouseEvent.getModifierState()`** method returns the current state of the specified modifier key: `true` if the modifier is active (i.e., the modifier key is pressed or locked), otherwise, `false`.
  21058      *
  21059      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/getModifierState)
  21060      */
  21061     getModifierState(keyArg: string): boolean;
  21062     /**
  21063      * The **`MouseEvent.initMouseEvent()`** method initializes the value of a mouse event once it's been created (normally using the Document.createEvent() method).
  21064      * @deprecated
  21065      *
  21066      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/initMouseEvent)
  21067      */
  21068     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;
  21069 }
  21070 
  21071 declare var MouseEvent: {
  21072     prototype: MouseEvent;
  21073     new(type: string, eventInitDict?: MouseEventInit): MouseEvent;
  21074 };
  21075 
  21076 /**
  21077  * The **`MutationObserver`** interface provides the ability to watch for changes being made to the DOM tree.
  21078  *
  21079  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationObserver)
  21080  */
  21081 interface MutationObserver {
  21082     /**
  21083      * The MutationObserver method **`disconnect()`** tells the observer to stop watching for mutations.
  21084      *
  21085      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationObserver/disconnect)
  21086      */
  21087     disconnect(): void;
  21088     /**
  21089      * The MutationObserver method **`observe()`** configures the `MutationObserver` callback to begin receiving notifications of changes to the DOM that match the given options.
  21090      *
  21091      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationObserver/observe)
  21092      */
  21093     observe(target: Node, options?: MutationObserverInit): void;
  21094     /**
  21095      * The MutationObserver method **`takeRecords()`** returns a list of all matching DOM changes that have been detected but not yet processed by the observer's callback function, leaving the mutation queue empty.
  21096      *
  21097      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationObserver/takeRecords)
  21098      */
  21099     takeRecords(): MutationRecord[];
  21100 }
  21101 
  21102 declare var MutationObserver: {
  21103     prototype: MutationObserver;
  21104     new(callback: MutationCallback): MutationObserver;
  21105 };
  21106 
  21107 /**
  21108  * The **`MutationRecord`** is a read-only interface that represents an individual DOM mutation observed by a MutationObserver.
  21109  *
  21110  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord)
  21111  */
  21112 interface MutationRecord {
  21113     /**
  21114      * The MutationRecord read-only property **`addedNodes`** is a NodeList of nodes added to a target node by a mutation observed with a MutationObserver.
  21115      *
  21116      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/addedNodes)
  21117      */
  21118     readonly addedNodes: NodeList;
  21119     /**
  21120      * The MutationRecord read-only property **`attributeName`** contains the name of a changed attribute belonging to a node that is observed by a MutationObserver.
  21121      *
  21122      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/attributeName)
  21123      */
  21124     readonly attributeName: string | null;
  21125     /**
  21126      * The MutationRecord read-only property **`attributeNamespace`** is the namespace of the mutated attribute in the MutationRecord observed by a MutationObserver.
  21127      *
  21128      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/attributeNamespace)
  21129      */
  21130     readonly attributeNamespace: string | null;
  21131     /**
  21132      * The MutationRecord read-only property **`nextSibling`** is the next sibling of an added or removed child node of the `target` of a MutationObserver.
  21133      *
  21134      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/nextSibling)
  21135      */
  21136     readonly nextSibling: Node | null;
  21137     /**
  21138      * The MutationRecord read-only property **`oldValue`** contains the character data or attribute value of an observed node before it was changed.
  21139      *
  21140      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/oldValue)
  21141      */
  21142     readonly oldValue: string | null;
  21143     /**
  21144      * The MutationRecord read-only property **`previousSibling`** is the previous sibling of an added or removed child node of the `target` of a MutationObserver.
  21145      *
  21146      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/previousSibling)
  21147      */
  21148     readonly previousSibling: Node | null;
  21149     /**
  21150      * The MutationRecord read-only property **`removedNodes`** is a NodeList of nodes removed from a target node by a mutation observed with a MutationObserver.
  21151      *
  21152      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/removedNodes)
  21153      */
  21154     readonly removedNodes: NodeList;
  21155     /**
  21156      * The MutationRecord read-only property **`target`** is the target (i.e., the mutated/changed node) of a mutation observed with a MutationObserver.
  21157      *
  21158      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/target)
  21159      */
  21160     readonly target: Node;
  21161     /**
  21162      * The MutationRecord read-only property **`type`** is the type of the MutationRecord observed by a MutationObserver.
  21163      *
  21164      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/type)
  21165      */
  21166     readonly type: MutationRecordType;
  21167 }
  21168 
  21169 declare var MutationRecord: {
  21170     prototype: MutationRecord;
  21171     new(): MutationRecord;
  21172 };
  21173 
  21174 /**
  21175  * The **`NamedNodeMap`** interface represents a collection of Attr objects.
  21176  *
  21177  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap)
  21178  */
  21179 interface NamedNodeMap {
  21180     /**
  21181      * The read-only **`length`** property of the NamedNodeMap interface is the number of objects stored in the map.
  21182      *
  21183      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/length)
  21184      */
  21185     readonly length: number;
  21186     /**
  21187      * The **`getNamedItem()`** method of the NamedNodeMap interface returns the Attr corresponding to the given name, or `null` if there is no corresponding attribute.
  21188      *
  21189      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/getNamedItem)
  21190      */
  21191     getNamedItem(qualifiedName: string): Attr | null;
  21192     /**
  21193      * The **`getNamedItemNS()`** method of the NamedNodeMap interface returns the Attr corresponding to the given local name in the given namespace, or `null` if there is no corresponding attribute.
  21194      *
  21195      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/getNamedItemNS)
  21196      */
  21197     getNamedItemNS(namespace: string | null, localName: string): Attr | null;
  21198     /**
  21199      * The **`item()`** method of the NamedNodeMap interface returns the item in the map matching the index.
  21200      *
  21201      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/item)
  21202      */
  21203     item(index: number): Attr | null;
  21204     /**
  21205      * The **`removeNamedItem()`** method of the NamedNodeMap interface removes the Attr corresponding to the given name from the map.
  21206      *
  21207      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/removeNamedItem)
  21208      */
  21209     removeNamedItem(qualifiedName: string): Attr;
  21210     /**
  21211      * The **`removeNamedItemNS()`** method of the NamedNodeMap interface removes the Attr corresponding to the given namespace and local name from the map.
  21212      *
  21213      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/removeNamedItemNS)
  21214      */
  21215     removeNamedItemNS(namespace: string | null, localName: string): Attr;
  21216     /**
  21217      * The **`setNamedItem()`** method of the NamedNodeMap interface puts the Attr identified by its name in the map.
  21218      *
  21219      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/setNamedItem)
  21220      */
  21221     setNamedItem(attr: Attr): Attr | null;
  21222     /**
  21223      * The **`setNamedItemNS()`** method of the NamedNodeMap interface puts the Attr identified by its name in the map.
  21224      *
  21225      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/setNamedItemNS)
  21226      */
  21227     setNamedItemNS(attr: Attr): Attr | null;
  21228     [index: number]: Attr;
  21229 }
  21230 
  21231 declare var NamedNodeMap: {
  21232     prototype: NamedNodeMap;
  21233     new(): NamedNodeMap;
  21234 };
  21235 
  21236 /**
  21237  * The **`NavigationActivation`** interface of the Navigation API represents a recent cross-document navigation.
  21238  *
  21239  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationActivation)
  21240  */
  21241 interface NavigationActivation {
  21242     /**
  21243      * The **`entry`** read-only property of the NavigationActivation interface contains a NavigationHistoryEntry object representing the history entry for the inbound ('to') document in the navigation.
  21244      *
  21245      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationActivation/entry)
  21246      */
  21247     readonly entry: NavigationHistoryEntry;
  21248     /**
  21249      * The **`from`** read-only property of the NavigationActivation interface contains a NavigationHistoryEntry object representing the history entry for the outgoing ('from') document in the navigation.
  21250      *
  21251      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationActivation/from)
  21252      */
  21253     readonly from: NavigationHistoryEntry | null;
  21254     /**
  21255      * The **`navigationType`** read-only property of the NavigationActivation interface contains a string indicating the type of navigation.
  21256      *
  21257      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationActivation/navigationType)
  21258      */
  21259     readonly navigationType: NavigationType;
  21260 }
  21261 
  21262 declare var NavigationActivation: {
  21263     prototype: NavigationActivation;
  21264     new(): NavigationActivation;
  21265 };
  21266 
  21267 interface NavigationHistoryEntryEventMap {
  21268     "dispose": Event;
  21269 }
  21270 
  21271 /**
  21272  * The **`NavigationHistoryEntry`** interface of the Navigation API represents a single navigation history entry.
  21273  *
  21274  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationHistoryEntry)
  21275  */
  21276 interface NavigationHistoryEntry extends EventTarget {
  21277     /**
  21278      * The **`id`** read-only property of the NavigationHistoryEntry interface returns the `id` of the history entry, or an empty string if current document is not fully active.
  21279      *
  21280      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationHistoryEntry/id)
  21281      */
  21282     readonly id: string;
  21283     /**
  21284      * The **`index`** read-only property of the NavigationHistoryEntry interface returns the index of the history entry in the history entries list (that is, the list returned by Navigation.entries()), or `-1` if the entry does not appear in the list or if current document is not fully active.
  21285      *
  21286      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationHistoryEntry/index)
  21287      */
  21288     readonly index: number;
  21289     /**
  21290      * The **`key`** read-only property of the NavigationHistoryEntry interface returns the `key` of the history entry, or an empty string if current document is not fully active.
  21291      *
  21292      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationHistoryEntry/key)
  21293      */
  21294     readonly key: string;
  21295     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationHistoryEntry/dispose_event) */
  21296     ondispose: ((this: NavigationHistoryEntry, ev: Event) => any) | null;
  21297     /**
  21298      * The **`sameDocument`** read-only property of the NavigationHistoryEntry interface returns `true` if this history entry is for the same `document` as the current Document value and current document is fully active, or `false` otherwise.
  21299      *
  21300      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationHistoryEntry/sameDocument)
  21301      */
  21302     readonly sameDocument: boolean;
  21303     /**
  21304      * The **`url`** read-only property of the NavigationHistoryEntry interface returns the absolute URL of this history entry.
  21305      *
  21306      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationHistoryEntry/url)
  21307      */
  21308     readonly url: string | null;
  21309     /**
  21310      * The **`getState()`** method of the NavigationHistoryEntry interface returns a clone of the developer-supplied state associated with this history entry.
  21311      *
  21312      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationHistoryEntry/getState)
  21313      */
  21314     getState(): any;
  21315     addEventListener<K extends keyof NavigationHistoryEntryEventMap>(type: K, listener: (this: NavigationHistoryEntry, ev: NavigationHistoryEntryEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  21316     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  21317     removeEventListener<K extends keyof NavigationHistoryEntryEventMap>(type: K, listener: (this: NavigationHistoryEntry, ev: NavigationHistoryEntryEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  21318     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  21319 }
  21320 
  21321 declare var NavigationHistoryEntry: {
  21322     prototype: NavigationHistoryEntry;
  21323     new(): NavigationHistoryEntry;
  21324 };
  21325 
  21326 /**
  21327  * The **`NavigationPreloadManager`** interface of the Service Worker API provides methods for managing the preloading of resources in parallel with service worker bootup.
  21328  * Available only in secure contexts.
  21329  *
  21330  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager)
  21331  */
  21332 interface NavigationPreloadManager {
  21333     /**
  21334      * The **`disable()`** method of the NavigationPreloadManager interface halts the automatic preloading of service-worker-managed resources previously started using NavigationPreloadManager.enable() It returns a promise that resolves with `undefined`.
  21335      *
  21336      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/disable)
  21337      */
  21338     disable(): Promise<void>;
  21339     /**
  21340      * The **`enable()`** method of the NavigationPreloadManager interface is used to enable preloading of resources managed by the service worker.
  21341      *
  21342      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/enable)
  21343      */
  21344     enable(): Promise<void>;
  21345     /**
  21346      * The **`getState()`** method of the NavigationPreloadManager interface returns a Promise that resolves to an object with properties that indicate whether preload is enabled and what value will be sent in the Service-Worker-Navigation-Preload HTTP header.
  21347      *
  21348      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/getState)
  21349      */
  21350     getState(): Promise<NavigationPreloadState>;
  21351     /**
  21352      * The **`setHeaderValue()`** method of the NavigationPreloadManager interface sets the value of the Service-Worker-Navigation-Preload header that will be sent with requests resulting from a Window/fetch operation made during service worker navigation preloading.
  21353      *
  21354      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/setHeaderValue)
  21355      */
  21356     setHeaderValue(value: string): Promise<void>;
  21357 }
  21358 
  21359 declare var NavigationPreloadManager: {
  21360     prototype: NavigationPreloadManager;
  21361     new(): NavigationPreloadManager;
  21362 };
  21363 
  21364 /**
  21365  * The **`Navigator`** interface represents the state and the identity of the user agent.
  21366  *
  21367  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator)
  21368  */
  21369 interface Navigator extends NavigatorAutomationInformation, NavigatorBadge, NavigatorConcurrentHardware, NavigatorContentUtils, NavigatorCookies, NavigatorID, NavigatorLanguage, NavigatorLocks, NavigatorOnLine, NavigatorPlugins, NavigatorStorage {
  21370     /**
  21371      * The **`clipboard`** read-only property of the Navigator interface returns a Clipboard object used to read and write the clipboard's contents.
  21372      * Available only in secure contexts.
  21373      *
  21374      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/clipboard)
  21375      */
  21376     readonly clipboard: Clipboard;
  21377     /**
  21378      * The **`credentials`** read-only property of the Navigator interface returns the CredentialsContainer object associated with the current document, which exposes methods to request credentials.
  21379      * Available only in secure contexts.
  21380      *
  21381      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/credentials)
  21382      */
  21383     readonly credentials: CredentialsContainer;
  21384     readonly doNotTrack: string | null;
  21385     /**
  21386      * The **`Navigator.geolocation`** read-only property returns a device.
  21387      *
  21388      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/geolocation)
  21389      */
  21390     readonly geolocation: Geolocation;
  21391     /**
  21392      * The **`login`** read-only property of the Navigator interface provides access to the browser's NavigatorLogin object, which a federated identity provider (IdP) can use to set its login status when a user signs into or out of the IdP.
  21393      * Available only in secure contexts.
  21394      *
  21395      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/login)
  21396      */
  21397     readonly login: NavigatorLogin;
  21398     /**
  21399      * The **`maxTouchPoints`** read-only property of the contact points that are supported by the current device.
  21400      *
  21401      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/maxTouchPoints)
  21402      */
  21403     readonly maxTouchPoints: number;
  21404     /**
  21405      * The **`mediaCapabilities`** read-only property of the Navigator interface references a MediaCapabilities object that can expose information about the decoding and encoding capabilities for a given media format and output capabilities.
  21406      *
  21407      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/mediaCapabilities)
  21408      */
  21409     readonly mediaCapabilities: MediaCapabilities;
  21410     /**
  21411      * The **`mediaDevices`** read-only property of the Navigator interface returns a MediaDevices object, which provides access to connected media input devices like cameras and microphones, as well as screen sharing.
  21412      * Available only in secure contexts.
  21413      *
  21414      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/mediaDevices)
  21415      */
  21416     readonly mediaDevices: MediaDevices;
  21417     /**
  21418      * The **`mediaSession`** read-only property of the Navigator interface returns a MediaSession object that can be used to share with the browser metadata and other information about the current playback state of media being handled by a document.
  21419      *
  21420      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/mediaSession)
  21421      */
  21422     readonly mediaSession: MediaSession;
  21423     /**
  21424      * The **`permissions`** read-only property of the Navigator interface returns a status of APIs covered by the Permissions API.
  21425      *
  21426      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/permissions)
  21427      */
  21428     readonly permissions: Permissions;
  21429     /**
  21430      * The **`serviceWorker`** read-only property of the Navigator interface returns the ServiceWorkerContainer object for the associated document, which provides access to registration, removal, upgrade, and communication with the ServiceWorker.
  21431      * Available only in secure contexts.
  21432      *
  21433      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/serviceWorker)
  21434      */
  21435     readonly serviceWorker: ServiceWorkerContainer;
  21436     /**
  21437      * The read-only **`userActivation`** property of the Navigator interface returns a UserActivation object which contains information about the current window's user activation state.
  21438      *
  21439      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/userActivation)
  21440      */
  21441     readonly userActivation: UserActivation;
  21442     /**
  21443      * The **`wakeLock`** read-only property of the Navigator interface returns a WakeLock interface that allows a document to acquire a screen wake lock.
  21444      *
  21445      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/wakeLock)
  21446      */
  21447     readonly wakeLock: WakeLock;
  21448     /**
  21449      * The **`canShare()`** method of the Navigator interface returns `true` if the equivalent call to navigator.share() would succeed.
  21450      * Available only in secure contexts.
  21451      *
  21452      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/canShare)
  21453      */
  21454     canShare(data?: ShareData): boolean;
  21455     /**
  21456      * The **`Navigator.getGamepads()`** method returns an array of Elements in the array may be `null` if a gamepad disconnects during a session, so that the remaining gamepads retain the same index.
  21457      *
  21458      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/getGamepads)
  21459      */
  21460     getGamepads(): (Gamepad | null)[];
  21461     /**
  21462      * The **`requestMIDIAccess()`** method of the Navigator interface returns a Promise representing a request for access to MIDI devices on a user's system.
  21463      * Available only in secure contexts.
  21464      *
  21465      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/requestMIDIAccess)
  21466      */
  21467     requestMIDIAccess(options?: MIDIOptions): Promise<MIDIAccess>;
  21468     /**
  21469      * The **`requestMediaKeySystemAccess()`** method of the Navigator interface returns a Promise which delivers a MediaKeySystemAccess object that can be used to access a particular media key system, which can in turn be used to create keys for decrypting a media stream.
  21470      * Available only in secure contexts.
  21471      *
  21472      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/requestMediaKeySystemAccess)
  21473      */
  21474     requestMediaKeySystemAccess(keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]): Promise<MediaKeySystemAccess>;
  21475     /**
  21476      * The **`navigator.sendBeacon()`** method Asynchronous sends an HTTP POST request containing a small amount of data to a web server.
  21477      *
  21478      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/sendBeacon)
  21479      */
  21480     sendBeacon(url: string | URL, data?: BodyInit | null): boolean;
  21481     /**
  21482      * The **`share()`** method of the Navigator interface invokes the native sharing mechanism of the device to share data such as text, URLs, or files.
  21483      * Available only in secure contexts.
  21484      *
  21485      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/share)
  21486      */
  21487     share(data?: ShareData): Promise<void>;
  21488     /**
  21489      * The **`vibrate()`** method of the Navigator interface pulses the vibration hardware on the device, if such hardware exists.
  21490      *
  21491      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/vibrate)
  21492      */
  21493     vibrate(pattern: VibratePattern): boolean;
  21494 }
  21495 
  21496 declare var Navigator: {
  21497     prototype: Navigator;
  21498     new(): Navigator;
  21499 };
  21500 
  21501 interface NavigatorAutomationInformation {
  21502     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/webdriver) */
  21503     readonly webdriver: boolean;
  21504 }
  21505 
  21506 /** Available only in secure contexts. */
  21507 interface NavigatorBadge {
  21508     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/clearAppBadge) */
  21509     clearAppBadge(): Promise<void>;
  21510     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/setAppBadge) */
  21511     setAppBadge(contents?: number): Promise<void>;
  21512 }
  21513 
  21514 interface NavigatorConcurrentHardware {
  21515     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/hardwareConcurrency) */
  21516     readonly hardwareConcurrency: number;
  21517 }
  21518 
  21519 interface NavigatorContentUtils {
  21520     /**
  21521      * Available only in secure contexts.
  21522      *
  21523      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/registerProtocolHandler)
  21524      */
  21525     registerProtocolHandler(scheme: string, url: string | URL): void;
  21526 }
  21527 
  21528 interface NavigatorCookies {
  21529     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/cookieEnabled) */
  21530     readonly cookieEnabled: boolean;
  21531 }
  21532 
  21533 interface NavigatorID {
  21534     /**
  21535      * @deprecated
  21536      *
  21537      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appCodeName)
  21538      */
  21539     readonly appCodeName: string;
  21540     /**
  21541      * @deprecated
  21542      *
  21543      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appName)
  21544      */
  21545     readonly appName: string;
  21546     /**
  21547      * @deprecated
  21548      *
  21549      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appVersion)
  21550      */
  21551     readonly appVersion: string;
  21552     /**
  21553      * @deprecated
  21554      *
  21555      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/platform)
  21556      */
  21557     readonly platform: string;
  21558     /**
  21559      * @deprecated
  21560      *
  21561      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/product)
  21562      */
  21563     readonly product: string;
  21564     /**
  21565      * @deprecated
  21566      *
  21567      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/productSub)
  21568      */
  21569     readonly productSub: string;
  21570     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/userAgent) */
  21571     readonly userAgent: string;
  21572     /**
  21573      * @deprecated
  21574      *
  21575      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/vendor)
  21576      */
  21577     readonly vendor: string;
  21578     /**
  21579      * @deprecated
  21580      *
  21581      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/vendorSub)
  21582      */
  21583     readonly vendorSub: string;
  21584 }
  21585 
  21586 interface NavigatorLanguage {
  21587     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/language) */
  21588     readonly language: string;
  21589     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/languages) */
  21590     readonly languages: ReadonlyArray<string>;
  21591 }
  21592 
  21593 /** Available only in secure contexts. */
  21594 interface NavigatorLocks {
  21595     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/locks) */
  21596     readonly locks: LockManager;
  21597 }
  21598 
  21599 /**
  21600  * The **`NavigatorLogin`** interface of the Federated Credential Management (FedCM) API defines login functionality for federated identity providers (IdPs).
  21601  * Available only in secure contexts.
  21602  *
  21603  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigatorLogin)
  21604  */
  21605 interface NavigatorLogin {
  21606     /**
  21607      * The **`setStatus()`** method of the NavigatorLogin interface sets the login status of a federated identity provider (IdP), when called from the IdP's origin.
  21608      *
  21609      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigatorLogin/setStatus)
  21610      */
  21611     setStatus(status: LoginStatus): Promise<void>;
  21612 }
  21613 
  21614 declare var NavigatorLogin: {
  21615     prototype: NavigatorLogin;
  21616     new(): NavigatorLogin;
  21617 };
  21618 
  21619 interface NavigatorOnLine {
  21620     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/onLine) */
  21621     readonly onLine: boolean;
  21622 }
  21623 
  21624 interface NavigatorPlugins {
  21625     /**
  21626      * @deprecated
  21627      *
  21628      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/mimeTypes)
  21629      */
  21630     readonly mimeTypes: MimeTypeArray;
  21631     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/pdfViewerEnabled) */
  21632     readonly pdfViewerEnabled: boolean;
  21633     /**
  21634      * @deprecated
  21635      *
  21636      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/plugins)
  21637      */
  21638     readonly plugins: PluginArray;
  21639     /**
  21640      * @deprecated
  21641      *
  21642      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/javaEnabled)
  21643      */
  21644     javaEnabled(): boolean;
  21645 }
  21646 
  21647 /** Available only in secure contexts. */
  21648 interface NavigatorStorage {
  21649     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/storage) */
  21650     readonly storage: StorageManager;
  21651 }
  21652 
  21653 /**
  21654  * The DOM **`Node`** interface is an abstract base class upon which many other DOM API objects are based, thus letting those object types to be used similarly and often interchangeably.
  21655  *
  21656  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node)
  21657  */
  21658 interface Node extends EventTarget {
  21659     /**
  21660      * The read-only **`baseURI`** property of the Node interface returns the absolute base URL of the document containing the node.
  21661      *
  21662      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/baseURI)
  21663      */
  21664     readonly baseURI: string;
  21665     /**
  21666      * The read-only **`childNodes`** property of the Node interface returns a live the first child node is assigned index `0`.
  21667      *
  21668      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/childNodes)
  21669      */
  21670     readonly childNodes: NodeListOf<ChildNode>;
  21671     /**
  21672      * The read-only **`firstChild`** property of the Node interface returns the node's first child in the tree, or `null` if the node has no children.
  21673      *
  21674      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/firstChild)
  21675      */
  21676     readonly firstChild: ChildNode | null;
  21677     /**
  21678      * The read-only **`isConnected`** property of the Node interface returns a boolean indicating whether the node is connected (directly or indirectly) to a Document object.
  21679      *
  21680      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/isConnected)
  21681      */
  21682     readonly isConnected: boolean;
  21683     /**
  21684      * The read-only **`lastChild`** property of the Node interface returns the last child of the node, or `null` if there are no child nodes.
  21685      *
  21686      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/lastChild)
  21687      */
  21688     readonly lastChild: ChildNode | null;
  21689     /**
  21690      * The read-only **`nextSibling`** property of the Node interface returns the node immediately following the specified one in their parent's Node.childNodes, or returns `null` if the specified node is the last child in the parent element.
  21691      *
  21692      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/nextSibling)
  21693      */
  21694     readonly nextSibling: ChildNode | null;
  21695     /**
  21696      * The read-only **`nodeName`** property of Node returns the name of the current node as a string.
  21697      *
  21698      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/nodeName)
  21699      */
  21700     readonly nodeName: string;
  21701     /**
  21702      * The read-only **`nodeType`** property of a Node interface is an integer that identifies what the node is.
  21703      *
  21704      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/nodeType)
  21705      */
  21706     readonly nodeType: number;
  21707     /**
  21708      * The **`nodeValue`** property of the Node interface returns or sets the value of the current node.
  21709      *
  21710      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/nodeValue)
  21711      */
  21712     nodeValue: string | null;
  21713     /**
  21714      * The read-only **`ownerDocument`** property of the Node interface returns the top-level document object of the node.
  21715      *
  21716      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/ownerDocument)
  21717      */
  21718     readonly ownerDocument: Document | null;
  21719     /**
  21720      * The read-only **`parentElement`** property of Node interface returns the DOM node's parent Element, or `null` if the node either has no parent, or its parent isn't a DOM Element.
  21721      *
  21722      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/parentElement)
  21723      */
  21724     readonly parentElement: HTMLElement | null;
  21725     /**
  21726      * The read-only **`parentNode`** property of the Node interface returns the parent of the specified node in the DOM tree.
  21727      *
  21728      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/parentNode)
  21729      */
  21730     readonly parentNode: ParentNode | null;
  21731     /**
  21732      * The read-only **`previousSibling`** property of the Node interface returns the node immediately preceding the specified one in its parent's or `null` if the specified node is the first in that list.
  21733      *
  21734      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/previousSibling)
  21735      */
  21736     readonly previousSibling: ChildNode | null;
  21737     /**
  21738      * The **`textContent`** property of the Node interface represents the text content of the node and its descendants.
  21739      *
  21740      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/textContent)
  21741      */
  21742     textContent: string | null;
  21743     /**
  21744      * The **`appendChild()`** method of the Node interface adds a node to the end of the list of children of a specified parent node.
  21745      *
  21746      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/appendChild)
  21747      */
  21748     appendChild<T extends Node>(node: T): T;
  21749     /**
  21750      * The **`cloneNode()`** method of the Node interface returns a duplicate of the node on which this method was called.
  21751      *
  21752      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/cloneNode)
  21753      */
  21754     cloneNode(subtree?: boolean): Node;
  21755     /**
  21756      * The **`compareDocumentPosition()`** method of the Node interface reports the position of its argument node relative to the node on which it is called.
  21757      *
  21758      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition)
  21759      */
  21760     compareDocumentPosition(other: Node): number;
  21761     /**
  21762      * The **`contains()`** method of the Node interface returns a boolean value indicating whether a node is a descendant of a given node, that is the node itself, one of its direct children (Node.childNodes), one of the children's direct children, and so on.
  21763      *
  21764      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/contains)
  21765      */
  21766     contains(other: Node | null): boolean;
  21767     /**
  21768      * The **`getRootNode()`** method of the Node interface returns the context object's root, which optionally includes the shadow root if it is available.
  21769      *
  21770      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
  21771      */
  21772     getRootNode(options?: GetRootNodeOptions): Node;
  21773     /**
  21774      * The **`hasChildNodes()`** method of the Node interface returns a boolean value indicating whether the given Node has child nodes or not.
  21775      *
  21776      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes)
  21777      */
  21778     hasChildNodes(): boolean;
  21779     /**
  21780      * The **`insertBefore()`** method of the Node interface inserts a node before a _reference node_ as a child of a specified _parent node_.
  21781      *
  21782      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/insertBefore)
  21783      */
  21784     insertBefore<T extends Node>(node: T, child: Node | null): T;
  21785     /**
  21786      * The **`isDefaultNamespace()`** method of the Node interface accepts a namespace URI as an argument.
  21787      *
  21788      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace)
  21789      */
  21790     isDefaultNamespace(namespace: string | null): boolean;
  21791     /**
  21792      * The **`isEqualNode()`** method of the Node interface tests whether two nodes are equal.
  21793      *
  21794      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode)
  21795      */
  21796     isEqualNode(otherNode: Node | null): boolean;
  21797     /**
  21798      * The **`isSameNode()`** method of the Node interface is a legacy alias the for the `===` strict equality operator.
  21799      *
  21800      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/isSameNode)
  21801      */
  21802     isSameNode(otherNode: Node | null): boolean;
  21803     /**
  21804      * The **`lookupNamespaceURI()`** method of the Node interface takes a prefix as parameter and returns the namespace URI associated with it on the given node if found (and `null` if not).
  21805      *
  21806      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI)
  21807      */
  21808     lookupNamespaceURI(prefix: string | null): string | null;
  21809     /**
  21810      * The **`lookupPrefix()`** method of the Node interface returns a string containing the prefix for a given namespace URI, if present, and `null` if not.
  21811      *
  21812      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix)
  21813      */
  21814     lookupPrefix(namespace: string | null): string | null;
  21815     /**
  21816      * The **`normalize()`** method of the Node interface puts the specified node and all of its sub-tree into a _normalized_ form.
  21817      *
  21818      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/normalize)
  21819      */
  21820     normalize(): void;
  21821     /**
  21822      * The **`removeChild()`** method of the Node interface removes a child node from the DOM and returns the removed node.
  21823      *
  21824      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/removeChild)
  21825      */
  21826     removeChild<T extends Node>(child: T): T;
  21827     /**
  21828      * The **`replaceChild()`** method of the Node interface replaces a child node within the given (parent) node.
  21829      *
  21830      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/replaceChild)
  21831      */
  21832     replaceChild<T extends Node>(node: Node, child: T): T;
  21833     /** node is an element. */
  21834     readonly ELEMENT_NODE: 1;
  21835     readonly ATTRIBUTE_NODE: 2;
  21836     /** node is a Text node. */
  21837     readonly TEXT_NODE: 3;
  21838     /** node is a CDATASection node. */
  21839     readonly CDATA_SECTION_NODE: 4;
  21840     readonly ENTITY_REFERENCE_NODE: 5;
  21841     readonly ENTITY_NODE: 6;
  21842     /** node is a ProcessingInstruction node. */
  21843     readonly PROCESSING_INSTRUCTION_NODE: 7;
  21844     /** node is a Comment node. */
  21845     readonly COMMENT_NODE: 8;
  21846     /** node is a document. */
  21847     readonly DOCUMENT_NODE: 9;
  21848     /** node is a doctype. */
  21849     readonly DOCUMENT_TYPE_NODE: 10;
  21850     /** node is a DocumentFragment node. */
  21851     readonly DOCUMENT_FRAGMENT_NODE: 11;
  21852     readonly NOTATION_NODE: 12;
  21853     /** Set when node and other are not in the same tree. */
  21854     readonly DOCUMENT_POSITION_DISCONNECTED: 0x01;
  21855     /** Set when other is preceding node. */
  21856     readonly DOCUMENT_POSITION_PRECEDING: 0x02;
  21857     /** Set when other is following node. */
  21858     readonly DOCUMENT_POSITION_FOLLOWING: 0x04;
  21859     /** Set when other is an ancestor of node. */
  21860     readonly DOCUMENT_POSITION_CONTAINS: 0x08;
  21861     /** Set when other is a descendant of node. */
  21862     readonly DOCUMENT_POSITION_CONTAINED_BY: 0x10;
  21863     readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20;
  21864 }
  21865 
  21866 declare var Node: {
  21867     prototype: Node;
  21868     new(): Node;
  21869     /** node is an element. */
  21870     readonly ELEMENT_NODE: 1;
  21871     readonly ATTRIBUTE_NODE: 2;
  21872     /** node is a Text node. */
  21873     readonly TEXT_NODE: 3;
  21874     /** node is a CDATASection node. */
  21875     readonly CDATA_SECTION_NODE: 4;
  21876     readonly ENTITY_REFERENCE_NODE: 5;
  21877     readonly ENTITY_NODE: 6;
  21878     /** node is a ProcessingInstruction node. */
  21879     readonly PROCESSING_INSTRUCTION_NODE: 7;
  21880     /** node is a Comment node. */
  21881     readonly COMMENT_NODE: 8;
  21882     /** node is a document. */
  21883     readonly DOCUMENT_NODE: 9;
  21884     /** node is a doctype. */
  21885     readonly DOCUMENT_TYPE_NODE: 10;
  21886     /** node is a DocumentFragment node. */
  21887     readonly DOCUMENT_FRAGMENT_NODE: 11;
  21888     readonly NOTATION_NODE: 12;
  21889     /** Set when node and other are not in the same tree. */
  21890     readonly DOCUMENT_POSITION_DISCONNECTED: 0x01;
  21891     /** Set when other is preceding node. */
  21892     readonly DOCUMENT_POSITION_PRECEDING: 0x02;
  21893     /** Set when other is following node. */
  21894     readonly DOCUMENT_POSITION_FOLLOWING: 0x04;
  21895     /** Set when other is an ancestor of node. */
  21896     readonly DOCUMENT_POSITION_CONTAINS: 0x08;
  21897     /** Set when other is a descendant of node. */
  21898     readonly DOCUMENT_POSITION_CONTAINED_BY: 0x10;
  21899     readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20;
  21900 };
  21901 
  21902 /**
  21903  * The **`NodeIterator`** interface represents an iterator to traverse nodes of a DOM subtree in document order.
  21904  *
  21905  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator)
  21906  */
  21907 interface NodeIterator {
  21908     /**
  21909      * The **`NodeIterator.filter`** read-only property returns a `NodeFilter` object, that is an object which implements an `acceptNode(node)` method, used to screen nodes.
  21910      *
  21911      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/filter)
  21912      */
  21913     readonly filter: NodeFilter | null;
  21914     /**
  21915      * The **`NodeIterator.pointerBeforeReferenceNode`** read-only property returns a boolean flag that indicates whether the `NodeFilter` is anchored before (if this value is `true`) or after (if this value is `false`) the anchor node indicated by the A boolean.
  21916      *
  21917      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/pointerBeforeReferenceNode)
  21918      */
  21919     readonly pointerBeforeReferenceNode: boolean;
  21920     /**
  21921      * The **`NodeIterator.referenceNode`** read-only property returns the iterator remains anchored to the reference node as specified by this property.
  21922      *
  21923      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/referenceNode)
  21924      */
  21925     readonly referenceNode: Node;
  21926     /**
  21927      * The **`NodeIterator.root`** read-only property represents the traverses.
  21928      *
  21929      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/root)
  21930      */
  21931     readonly root: Node;
  21932     /**
  21933      * The **`NodeIterator.whatToShow`** read-only property represents an `unsigned integer` representing a bitmask signifying what types of nodes should be returned by the NodeIterator.
  21934      *
  21935      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/whatToShow)
  21936      */
  21937     readonly whatToShow: number;
  21938     /**
  21939      * The **`NodeIterator.detach()`** method is a no-op, kept for backward compatibility only.
  21940      * @deprecated
  21941      *
  21942      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/detach)
  21943      */
  21944     detach(): void;
  21945     /**
  21946      * The **`NodeIterator.nextNode()`** method returns the next node in the set represented by the NodeIterator and advances the position of the iterator within the set.
  21947      *
  21948      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/nextNode)
  21949      */
  21950     nextNode(): Node | null;
  21951     /**
  21952      * The **`NodeIterator.previousNode()`** method returns the previous node in the set represented by the NodeIterator and moves the position of the iterator backwards within the set.
  21953      *
  21954      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/previousNode)
  21955      */
  21956     previousNode(): Node | null;
  21957 }
  21958 
  21959 declare var NodeIterator: {
  21960     prototype: NodeIterator;
  21961     new(): NodeIterator;
  21962 };
  21963 
  21964 /**
  21965  * **`NodeList`** objects are collections of nodes, usually returned by properties such as Node.childNodes and methods such as document.querySelectorAll().
  21966  *
  21967  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList)
  21968  */
  21969 interface NodeList {
  21970     /**
  21971      * The **`NodeList.length`** property returns the number of items in a NodeList.
  21972      *
  21973      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/length)
  21974      */
  21975     readonly length: number;
  21976     /**
  21977      * Returns a node from a `NodeList` by index.
  21978      *
  21979      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/item)
  21980      */
  21981     item(index: number): Node | null;
  21982     forEach(callbackfn: (value: Node, key: number, parent: NodeList) => void, thisArg?: any): void;
  21983     [index: number]: Node;
  21984 }
  21985 
  21986 declare var NodeList: {
  21987     prototype: NodeList;
  21988     new(): NodeList;
  21989 };
  21990 
  21991 interface NodeListOf<TNode extends Node> extends NodeList {
  21992     item(index: number): TNode;
  21993     forEach(callbackfn: (value: TNode, key: number, parent: NodeListOf<TNode>) => void, thisArg?: any): void;
  21994     [index: number]: TNode;
  21995 }
  21996 
  21997 interface NonDocumentTypeChildNode {
  21998     /**
  21999      * Returns the first following sibling that is an element, and null otherwise.
  22000      *
  22001      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/nextElementSibling)
  22002      */
  22003     readonly nextElementSibling: Element | null;
  22004     /**
  22005      * Returns the first preceding sibling that is an element, and null otherwise.
  22006      *
  22007      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/previousElementSibling)
  22008      */
  22009     readonly previousElementSibling: Element | null;
  22010 }
  22011 
  22012 interface NonElementParentNode {
  22013     /**
  22014      * Returns the first element within node's descendants whose ID is elementId.
  22015      *
  22016      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementById)
  22017      */
  22018     getElementById(elementId: string): Element | null;
  22019 }
  22020 
  22021 interface NotificationEventMap {
  22022     "click": Event;
  22023     "close": Event;
  22024     "error": Event;
  22025     "show": Event;
  22026 }
  22027 
  22028 /**
  22029  * The **`Notification`** interface of the Notifications API is used to configure and display desktop notifications to the user.
  22030  *
  22031  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification)
  22032  */
  22033 interface Notification extends EventTarget {
  22034     /**
  22035      * The **`badge`** read-only property of the Notification interface returns a string containing the URL of an image to represent the notification when there is not enough space to display the notification itself such as for example, the Android Notification Bar.
  22036      *
  22037      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/badge)
  22038      */
  22039     readonly badge: string;
  22040     /**
  22041      * The **`body`** read-only property of the specified in the `body` option of the A string.
  22042      *
  22043      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/body)
  22044      */
  22045     readonly body: string;
  22046     /**
  22047      * The **`data`** read-only property of the data, as specified in the `data` option of the The notification's data can be any arbitrary data that you want associated with the notification.
  22048      *
  22049      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/data)
  22050      */
  22051     readonly data: any;
  22052     /**
  22053      * The **`dir`** read-only property of the Notification interface indicates the text direction of the notification, as specified in the `dir` option of the Notification.Notification constructor.
  22054      *
  22055      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/dir)
  22056      */
  22057     readonly dir: NotificationDirection;
  22058     /**
  22059      * The **`icon`** read-only property of the part of the notification, as specified in the `icon` option of the A string.
  22060      *
  22061      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/icon)
  22062      */
  22063     readonly icon: string;
  22064     /**
  22065      * The **`lang`** read-only property of the as specified in the `lang` option of the The language itself is specified using a string representing a language tag according to MISSING: RFC(5646, 'Tags for Identifying Languages (also known as BCP 47)')].
  22066      *
  22067      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/lang)
  22068      */
  22069     readonly lang: string;
  22070     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/click_event) */
  22071     onclick: ((this: Notification, ev: Event) => any) | null;
  22072     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/close_event) */
  22073     onclose: ((this: Notification, ev: Event) => any) | null;
  22074     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/error_event) */
  22075     onerror: ((this: Notification, ev: Event) => any) | null;
  22076     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/show_event) */
  22077     onshow: ((this: Notification, ev: Event) => any) | null;
  22078     /**
  22079      * The **`requireInteraction`** read-only property of the Notification interface returns a boolean value indicating that a notification should remain active until the user clicks or dismisses it, rather than closing automatically.
  22080      *
  22081      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/requireInteraction)
  22082      */
  22083     readonly requireInteraction: boolean;
  22084     /**
  22085      * The **`silent`** read-only property of the silent, i.e., no sounds or vibrations should be issued regardless of the device settings.
  22086      *
  22087      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/silent)
  22088      */
  22089     readonly silent: boolean | null;
  22090     /**
  22091      * The **`tag`** read-only property of the as specified in the `tag` option of the The idea of notification tags is that more than one notification can share the same tag, linking them together.
  22092      *
  22093      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/tag)
  22094      */
  22095     readonly tag: string;
  22096     /**
  22097      * The **`title`** read-only property of the specified in the `title` parameter of the A string.
  22098      *
  22099      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/title)
  22100      */
  22101     readonly title: string;
  22102     /**
  22103      * The **`close()`** method of the Notification interface is used to close/remove a previously displayed notification.
  22104      *
  22105      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/close)
  22106      */
  22107     close(): void;
  22108     addEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  22109     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  22110     removeEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  22111     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  22112 }
  22113 
  22114 declare var Notification: {
  22115     prototype: Notification;
  22116     new(title: string, options?: NotificationOptions): Notification;
  22117     /**
  22118      * The **`permission`** read-only static property of the Notification interface indicates the current permission granted by the user for the current origin to display web notifications.
  22119      *
  22120      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/permission_static)
  22121      */
  22122     readonly permission: NotificationPermission;
  22123     /**
  22124      * The **`requestPermission()`** static method of the Notification interface requests permission from the user for the current origin to display notifications.
  22125      *
  22126      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/requestPermission_static)
  22127      */
  22128     requestPermission(deprecatedCallback?: NotificationPermissionCallback): Promise<NotificationPermission>;
  22129 };
  22130 
  22131 /**
  22132  * The **`OES_draw_buffers_indexed`** extension is part of the WebGL API and enables the use of different blend options when writing to multiple color buffers simultaneously.
  22133  *
  22134  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed)
  22135  */
  22136 interface OES_draw_buffers_indexed {
  22137     /**
  22138      * The `blendEquationSeparateiOES()` method of the OES_draw_buffers_indexed WebGL extension sets the RGB and alpha blend equations separately for a particular draw buffer.
  22139      *
  22140      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendEquationSeparateiOES)
  22141      */
  22142     blendEquationSeparateiOES(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum): void;
  22143     /**
  22144      * The `blendEquationiOES()` method of the `OES_draw_buffers_indexed` WebGL extension sets both the RGB blend and alpha blend equations for a particular draw buffer.
  22145      *
  22146      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendEquationiOES)
  22147      */
  22148     blendEquationiOES(buf: GLuint, mode: GLenum): void;
  22149     /**
  22150      * The `blendFuncSeparateiOES()` method of the OES_draw_buffers_indexed WebGL extension defines which function is used when blending pixels for RGB and alpha components separately for a particular draw buffer.
  22151      *
  22152      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendFuncSeparateiOES)
  22153      */
  22154     blendFuncSeparateiOES(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;
  22155     /**
  22156      * The `blendFunciOES()` method of the OES_draw_buffers_indexed WebGL extension defines which function is used when blending pixels for a particular draw buffer.
  22157      *
  22158      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendFunciOES)
  22159      */
  22160     blendFunciOES(buf: GLuint, src: GLenum, dst: GLenum): void;
  22161     /**
  22162      * The `colorMaskiOES()` method of the OES_draw_buffers_indexed WebGL extension sets which color components to enable or to disable when drawing or rendering for a particular draw buffer.
  22163      *
  22164      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/colorMaskiOES)
  22165      */
  22166     colorMaskiOES(buf: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean): void;
  22167     /**
  22168      * The `disableiOES()` method of the OES_draw_buffers_indexed WebGL extension enables blending for a particular draw buffer.
  22169      *
  22170      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/disableiOES)
  22171      */
  22172     disableiOES(target: GLenum, index: GLuint): void;
  22173     /**
  22174      * The `enableiOES()` method of the OES_draw_buffers_indexed WebGL extension enables blending for a particular draw buffer.
  22175      *
  22176      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/enableiOES)
  22177      */
  22178     enableiOES(target: GLenum, index: GLuint): void;
  22179 }
  22180 
  22181 /**
  22182  * The **`OES_element_index_uint`** extension is part of the WebGL API and adds support for `gl.UNSIGNED_INT` types to WebGLRenderingContext.drawElements().
  22183  *
  22184  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_element_index_uint)
  22185  */
  22186 interface OES_element_index_uint {
  22187 }
  22188 
  22189 /**
  22190  * The `OES_fbo_render_mipmap` extension is part of the WebGL API and makes it possible to attach any level of a texture to a framebuffer object.
  22191  *
  22192  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_fbo_render_mipmap)
  22193  */
  22194 interface OES_fbo_render_mipmap {
  22195 }
  22196 
  22197 /**
  22198  * The **`OES_standard_derivatives`** extension is part of the WebGL API and adds the GLSL derivative functions `dFdx`, `dFdy`, and `fwidth`.
  22199  *
  22200  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_standard_derivatives)
  22201  */
  22202 interface OES_standard_derivatives {
  22203     readonly FRAGMENT_SHADER_DERIVATIVE_HINT_OES: 0x8B8B;
  22204 }
  22205 
  22206 /**
  22207  * The **`OES_texture_float`** extension is part of the WebGL API and exposes floating-point pixel types for textures.
  22208  *
  22209  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_float)
  22210  */
  22211 interface OES_texture_float {
  22212 }
  22213 
  22214 /**
  22215  * The **`OES_texture_float_linear`** extension is part of the WebGL API and allows linear filtering with floating-point pixel types for textures.
  22216  *
  22217  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_float_linear)
  22218  */
  22219 interface OES_texture_float_linear {
  22220 }
  22221 
  22222 /**
  22223  * 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.
  22224  *
  22225  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_half_float)
  22226  */
  22227 interface OES_texture_half_float {
  22228     readonly HALF_FLOAT_OES: 0x8D61;
  22229 }
  22230 
  22231 /**
  22232  * 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.
  22233  *
  22234  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_half_float_linear)
  22235  */
  22236 interface OES_texture_half_float_linear {
  22237 }
  22238 
  22239 /**
  22240  * The **OES_vertex_array_object** extension is part of the WebGL API and provides vertex array objects (VAOs) which encapsulate vertex array states.
  22241  *
  22242  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object)
  22243  */
  22244 interface OES_vertex_array_object {
  22245     /**
  22246      * The **`OES_vertex_array_object.bindVertexArrayOES()`** method of the WebGL API binds a passed WebGLVertexArrayObject object to the buffer.
  22247      *
  22248      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/bindVertexArrayOES)
  22249      */
  22250     bindVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;
  22251     /**
  22252      * The **`OES_vertex_array_object.createVertexArrayOES()`** method of the WebGL API creates and initializes a pointing to vertex array data and which provides names for different sets of vertex data.
  22253      *
  22254      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/createVertexArrayOES)
  22255      */
  22256     createVertexArrayOES(): WebGLVertexArrayObjectOES;
  22257     /**
  22258      * The **`OES_vertex_array_object.deleteVertexArrayOES()`** method of the WebGL API deletes a given ```js-nolint deleteVertexArrayOES(arrayObject) ``` - `arrayObject` - : A WebGLVertexArrayObject (VAO) object to delete.
  22259      *
  22260      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/deleteVertexArrayOES)
  22261      */
  22262     deleteVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): void;
  22263     /**
  22264      * The **`OES_vertex_array_object.isVertexArrayOES()`** method of the WebGL API returns `true` if the passed object is a WebGLVertexArrayObject object.
  22265      *
  22266      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/isVertexArrayOES)
  22267      */
  22268     isVertexArrayOES(arrayObject: WebGLVertexArrayObjectOES | null): GLboolean;
  22269     readonly VERTEX_ARRAY_BINDING_OES: 0x85B5;
  22270 }
  22271 
  22272 /**
  22273  * The `OVR_multiview2` extension is part of the WebGL API and adds support for rendering into multiple views simultaneously.
  22274  *
  22275  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OVR_multiview2)
  22276  */
  22277 interface OVR_multiview2 {
  22278     /**
  22279      * The **`OVR_multiview2.framebufferTextureMultiviewOVR()`** method of the WebGL API attaches a multiview texture to a WebGLFramebuffer.
  22280      *
  22281      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OVR_multiview2/framebufferTextureMultiviewOVR)
  22282      */
  22283     framebufferTextureMultiviewOVR(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, baseViewIndex: GLint, numViews: GLsizei): void;
  22284     readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR: 0x9630;
  22285     readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR: 0x9632;
  22286     readonly MAX_VIEWS_OVR: 0x9631;
  22287     readonly FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: 0x9633;
  22288 }
  22289 
  22290 /**
  22291  * The Web Audio API `OfflineAudioCompletionEvent` interface represents events that occur when the processing of an OfflineAudioContext is terminated.
  22292  *
  22293  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioCompletionEvent)
  22294  */
  22295 interface OfflineAudioCompletionEvent extends Event {
  22296     /**
  22297      * The **`renderedBuffer`** read-only property of the containing the result of processing an OfflineAudioContext.
  22298      *
  22299      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioCompletionEvent/renderedBuffer)
  22300      */
  22301     readonly renderedBuffer: AudioBuffer;
  22302 }
  22303 
  22304 declare var OfflineAudioCompletionEvent: {
  22305     prototype: OfflineAudioCompletionEvent;
  22306     new(type: string, eventInitDict: OfflineAudioCompletionEventInit): OfflineAudioCompletionEvent;
  22307 };
  22308 
  22309 interface OfflineAudioContextEventMap extends BaseAudioContextEventMap {
  22310     "complete": OfflineAudioCompletionEvent;
  22311 }
  22312 
  22313 /**
  22314  * The `OfflineAudioContext` interface is an AudioContext interface representing an audio-processing graph built from linked together AudioNodes.
  22315  *
  22316  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext)
  22317  */
  22318 interface OfflineAudioContext extends BaseAudioContext {
  22319     /**
  22320      * The **`length`** property of the the buffer in sample-frames.
  22321      *
  22322      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/length)
  22323      */
  22324     readonly length: number;
  22325     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/complete_event) */
  22326     oncomplete: ((this: OfflineAudioContext, ev: OfflineAudioCompletionEvent) => any) | null;
  22327     /**
  22328      * The **`resume()`** method of the context that has been suspended.
  22329      *
  22330      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/resume)
  22331      */
  22332     resume(): Promise<void>;
  22333     /**
  22334      * The `startRendering()` method of the OfflineAudioContext Interface starts rendering the audio graph, taking into account the current connections and the current scheduled changes.
  22335      *
  22336      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/startRendering)
  22337      */
  22338     startRendering(): Promise<AudioBuffer>;
  22339     /**
  22340      * The **`suspend()`** method of the OfflineAudioContext interface schedules a suspension of the time progression in the audio context at the specified time and returns a promise.
  22341      *
  22342      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/suspend)
  22343      */
  22344     suspend(suspendTime: number): Promise<void>;
  22345     addEventListener<K extends keyof OfflineAudioContextEventMap>(type: K, listener: (this: OfflineAudioContext, ev: OfflineAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  22346     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  22347     removeEventListener<K extends keyof OfflineAudioContextEventMap>(type: K, listener: (this: OfflineAudioContext, ev: OfflineAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  22348     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  22349 }
  22350 
  22351 declare var OfflineAudioContext: {
  22352     prototype: OfflineAudioContext;
  22353     new(contextOptions: OfflineAudioContextOptions): OfflineAudioContext;
  22354     new(numberOfChannels: number, length: number, sampleRate: number): OfflineAudioContext;
  22355 };
  22356 
  22357 interface OffscreenCanvasEventMap {
  22358     "contextlost": Event;
  22359     "contextrestored": Event;
  22360 }
  22361 
  22362 /**
  22363  * When using the canvas element or the Canvas API, rendering, animation, and user interaction usually happen on the main execution thread of a web application.
  22364  *
  22365  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas)
  22366  */
  22367 interface OffscreenCanvas extends EventTarget {
  22368     /**
  22369      * The **`height`** property returns and sets the height of an OffscreenCanvas object.
  22370      *
  22371      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/height)
  22372      */
  22373     height: number;
  22374     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/contextlost_event) */
  22375     oncontextlost: ((this: OffscreenCanvas, ev: Event) => any) | null;
  22376     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/contextrestored_event) */
  22377     oncontextrestored: ((this: OffscreenCanvas, ev: Event) => any) | null;
  22378     /**
  22379      * The **`width`** property returns and sets the width of an OffscreenCanvas object.
  22380      *
  22381      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/width)
  22382      */
  22383     width: number;
  22384     /**
  22385      * The **`OffscreenCanvas.convertToBlob()`** method creates a Blob object representing the image contained in the canvas.
  22386      *
  22387      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/convertToBlob)
  22388      */
  22389     convertToBlob(options?: ImageEncodeOptions): Promise<Blob>;
  22390     /**
  22391      * The **`OffscreenCanvas.getContext()`** method returns a drawing context for an offscreen canvas, or `null` if the context identifier is not supported, or the offscreen canvas has already been set to a different context mode.
  22392      *
  22393      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/getContext)
  22394      */
  22395     getContext(contextId: "2d", options?: any): OffscreenCanvasRenderingContext2D | null;
  22396     getContext(contextId: "bitmaprenderer", options?: any): ImageBitmapRenderingContext | null;
  22397     getContext(contextId: "webgl", options?: any): WebGLRenderingContext | null;
  22398     getContext(contextId: "webgl2", options?: any): WebGL2RenderingContext | null;
  22399     getContext(contextId: OffscreenRenderingContextId, options?: any): OffscreenRenderingContext | null;
  22400     /**
  22401      * The **`OffscreenCanvas.transferToImageBitmap()`** method creates an ImageBitmap object from the most recently rendered image of the `OffscreenCanvas`.
  22402      *
  22403      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/transferToImageBitmap)
  22404      */
  22405     transferToImageBitmap(): ImageBitmap;
  22406     addEventListener<K extends keyof OffscreenCanvasEventMap>(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  22407     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  22408     removeEventListener<K extends keyof OffscreenCanvasEventMap>(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  22409     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  22410 }
  22411 
  22412 declare var OffscreenCanvas: {
  22413     prototype: OffscreenCanvas;
  22414     new(width: number, height: number): OffscreenCanvas;
  22415 };
  22416 
  22417 /**
  22418  * The **`OffscreenCanvasRenderingContext2D`** interface is a CanvasRenderingContext2D rendering context for drawing to the bitmap of an `OffscreenCanvas` object.
  22419  *
  22420  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvasRenderingContext2D)
  22421  */
  22422 interface OffscreenCanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform {
  22423     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/canvas) */
  22424     readonly canvas: OffscreenCanvas;
  22425 }
  22426 
  22427 declare var OffscreenCanvasRenderingContext2D: {
  22428     prototype: OffscreenCanvasRenderingContext2D;
  22429     new(): OffscreenCanvasRenderingContext2D;
  22430 };
  22431 
  22432 /**
  22433  * The **`OscillatorNode`** interface represents a periodic waveform, such as a sine wave.
  22434  *
  22435  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode)
  22436  */
  22437 interface OscillatorNode extends AudioScheduledSourceNode {
  22438     /**
  22439      * The `detune` property of the OscillatorNode interface is an a-rate AudioParam representing detuning of oscillation in cents.
  22440      *
  22441      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode/detune)
  22442      */
  22443     readonly detune: AudioParam;
  22444     /**
  22445      * The **`frequency`** property of the OscillatorNode interface is an a-rate AudioParam representing the frequency of oscillation in hertz.
  22446      *
  22447      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode/frequency)
  22448      */
  22449     readonly frequency: AudioParam;
  22450     /**
  22451      * The **`type`** property of the OscillatorNode interface specifies what shape of waveform the oscillator will output.
  22452      *
  22453      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode/type)
  22454      */
  22455     type: OscillatorType;
  22456     /**
  22457      * The **`setPeriodicWave()`** method of the OscillatorNode interface is used to point to a PeriodicWave defining a periodic waveform that can be used to shape the oscillator's output, when ```js-nolint setPeriodicWave(wave) ``` - `wave` - : A PeriodicWave object representing the waveform to use as the shape of the oscillator's output.
  22458      *
  22459      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode/setPeriodicWave)
  22460      */
  22461     setPeriodicWave(periodicWave: PeriodicWave): void;
  22462     addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: OscillatorNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  22463     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  22464     removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: OscillatorNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  22465     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  22466 }
  22467 
  22468 declare var OscillatorNode: {
  22469     prototype: OscillatorNode;
  22470     new(context: BaseAudioContext, options?: OscillatorOptions): OscillatorNode;
  22471 };
  22472 
  22473 /**
  22474  * The **`OverconstrainedError`** interface of the Media Capture and Streams API indicates that the set of desired capabilities for the current MediaStreamTrack cannot currently be met.
  22475  *
  22476  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OverconstrainedError)
  22477  */
  22478 interface OverconstrainedError extends DOMException {
  22479     /**
  22480      * The **`constraint`** read-only property of the in the constructor, meaning the constraint that was not satisfied.
  22481      *
  22482      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OverconstrainedError/constraint)
  22483      */
  22484     readonly constraint: string;
  22485 }
  22486 
  22487 declare var OverconstrainedError: {
  22488     prototype: OverconstrainedError;
  22489     new(constraint: string, message?: string): OverconstrainedError;
  22490 };
  22491 
  22492 /**
  22493  * The **`PageRevealEvent`** event object is made available inside handler functions for the Window.pagereveal_event event.
  22494  *
  22495  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PageRevealEvent)
  22496  */
  22497 interface PageRevealEvent extends Event {
  22498     /**
  22499      * The **`viewTransition`** read-only property of the PageRevealEvent interface contains a ViewTransition object representing the active view transition for the cross-document navigation.
  22500      *
  22501      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PageRevealEvent/viewTransition)
  22502      */
  22503     readonly viewTransition: ViewTransition | null;
  22504 }
  22505 
  22506 declare var PageRevealEvent: {
  22507     prototype: PageRevealEvent;
  22508     new(type: string, eventInitDict?: PageRevealEventInit): PageRevealEvent;
  22509 };
  22510 
  22511 /**
  22512  * The **`PageSwapEvent`** event object is made available inside handler functions for the Window.pageswap_event event.
  22513  *
  22514  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PageSwapEvent)
  22515  */
  22516 interface PageSwapEvent extends Event {
  22517     /**
  22518      * The **`activation`** read-only property of the PageSwapEvent interface contains a NavigationActivation object containing the navigation type and current and destination document history entries for a same-origin navigation.
  22519      *
  22520      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PageSwapEvent/activation)
  22521      */
  22522     readonly activation: NavigationActivation | null;
  22523     /**
  22524      * The **`viewTransition`** read-only property of the PageRevealEvent interface contains a ViewTransition object representing the active view transition for the cross-document navigation.
  22525      *
  22526      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PageSwapEvent/viewTransition)
  22527      */
  22528     readonly viewTransition: ViewTransition | null;
  22529 }
  22530 
  22531 declare var PageSwapEvent: {
  22532     prototype: PageSwapEvent;
  22533     new(type: string, eventInitDict?: PageSwapEventInit): PageSwapEvent;
  22534 };
  22535 
  22536 /**
  22537  * The **`PageTransitionEvent`** event object is available inside handler functions for the `pageshow` and `pagehide` events, fired when a document is being loaded or unloaded.
  22538  *
  22539  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PageTransitionEvent)
  22540  */
  22541 interface PageTransitionEvent extends Event {
  22542     /**
  22543      * The **`persisted`** read-only property indicates if a webpage is loading from a cache.
  22544      *
  22545      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PageTransitionEvent/persisted)
  22546      */
  22547     readonly persisted: boolean;
  22548 }
  22549 
  22550 declare var PageTransitionEvent: {
  22551     prototype: PageTransitionEvent;
  22552     new(type: string, eventInitDict?: PageTransitionEventInit): PageTransitionEvent;
  22553 };
  22554 
  22555 /**
  22556  * The `PannerNode` interface defines an audio-processing object that represents the location, direction, and behavior of an audio source signal in a simulated physical space.
  22557  *
  22558  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode)
  22559  */
  22560 interface PannerNode extends AudioNode {
  22561     /**
  22562      * The `coneInnerAngle` property of the PannerNode interface is a double value describing the angle, in degrees, of a cone inside of which there will be no volume reduction.
  22563      *
  22564      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/coneInnerAngle)
  22565      */
  22566     coneInnerAngle: number;
  22567     /**
  22568      * The `coneOuterAngle` property of the PannerNode interface is a double value describing the angle, in degrees, of a cone outside of which the volume will be reduced by a constant value, defined by the PannerNode.coneOuterGain property.
  22569      *
  22570      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/coneOuterAngle)
  22571      */
  22572     coneOuterAngle: number;
  22573     /**
  22574      * The `coneOuterGain` property of the PannerNode interface is a double value, describing the amount of volume reduction outside the cone, defined by the PannerNode.coneOuterAngle attribute.
  22575      *
  22576      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/coneOuterGain)
  22577      */
  22578     coneOuterGain: number;
  22579     /**
  22580      * The `distanceModel` property of the PannerNode interface is an enumerated value determining which algorithm to use to reduce the volume of the audio source as it moves away from the listener.
  22581      *
  22582      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/distanceModel)
  22583      */
  22584     distanceModel: DistanceModelType;
  22585     /**
  22586      * The `maxDistance` property of the PannerNode interface is a double value representing the maximum distance between the audio source and the listener, after which the volume is not reduced any further.
  22587      *
  22588      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/maxDistance)
  22589      */
  22590     maxDistance: number;
  22591     /**
  22592      * The **`orientationX`** property of the PannerNode interface indicates the X (horizontal) component of the direction in which the audio source is facing, in a 3D Cartesian coordinate space.
  22593      *
  22594      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/orientationX)
  22595      */
  22596     readonly orientationX: AudioParam;
  22597     /**
  22598      * The **`orientationY`** property of the PannerNode interface indicates the Y (vertical) component of the direction the audio source is facing, in 3D Cartesian coordinate space.
  22599      *
  22600      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/orientationY)
  22601      */
  22602     readonly orientationY: AudioParam;
  22603     /**
  22604      * The **`orientationZ`** property of the PannerNode interface indicates the Z (depth) component of the direction the audio source is facing, in 3D Cartesian coordinate space.
  22605      *
  22606      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/orientationZ)
  22607      */
  22608     readonly orientationZ: AudioParam;
  22609     /**
  22610      * The `panningModel` property of the PannerNode interface is an enumerated value determining which spatialization algorithm to use to position the audio in 3D space.
  22611      *
  22612      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/panningModel)
  22613      */
  22614     panningModel: PanningModelType;
  22615     /**
  22616      * The **`positionX`** property of the PannerNode interface specifies the X coordinate of the audio source's position in 3D Cartesian coordinates, corresponding to the _horizontal_ axis (left-right).
  22617      *
  22618      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/positionX)
  22619      */
  22620     readonly positionX: AudioParam;
  22621     /**
  22622      * The **`positionY`** property of the PannerNode interface specifies the Y coordinate of the audio source's position in 3D Cartesian coordinates, corresponding to the _vertical_ axis (top-bottom).
  22623      *
  22624      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/positionY)
  22625      */
  22626     readonly positionY: AudioParam;
  22627     /**
  22628      * The **`positionZ`** property of the PannerNode interface specifies the Z coordinate of the audio source's position in 3D Cartesian coordinates, corresponding to the _depth_ axis (behind-in front of the listener).
  22629      *
  22630      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/positionZ)
  22631      */
  22632     readonly positionZ: AudioParam;
  22633     /**
  22634      * The `refDistance` property of the PannerNode interface is a double value representing the reference distance for reducing volume as the audio source moves further from the listener – i.e., the distance at which the volume reduction starts taking effect.
  22635      *
  22636      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/refDistance)
  22637      */
  22638     refDistance: number;
  22639     /**
  22640      * The `rolloffFactor` property of the PannerNode interface is a double value describing how quickly the volume is reduced as the source moves away from the listener.
  22641      *
  22642      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/rolloffFactor)
  22643      */
  22644     rolloffFactor: number;
  22645     /**
  22646      * The `setOrientation()` method of the PannerNode Interface defines the direction the audio source is playing in.
  22647      * @deprecated
  22648      *
  22649      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/setOrientation)
  22650      */
  22651     setOrientation(x: number, y: number, z: number): void;
  22652     /**
  22653      * The `setPosition()` method of the PannerNode Interface defines the position of the audio source relative to the listener (represented by an AudioListener object stored in the BaseAudioContext.listener attribute.) The three parameters `x`, `y` and `z` are unitless and describe the source's position in 3D space using the right-hand Cartesian coordinate system.
  22654      * @deprecated
  22655      *
  22656      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/setPosition)
  22657      */
  22658     setPosition(x: number, y: number, z: number): void;
  22659 }
  22660 
  22661 declare var PannerNode: {
  22662     prototype: PannerNode;
  22663     new(context: BaseAudioContext, options?: PannerOptions): PannerNode;
  22664 };
  22665 
  22666 interface ParentNode extends Node {
  22667     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/childElementCount) */
  22668     readonly childElementCount: number;
  22669     /**
  22670      * Returns the child elements.
  22671      *
  22672      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/children)
  22673      */
  22674     readonly children: HTMLCollection;
  22675     /**
  22676      * Returns the first child that is an element, and null otherwise.
  22677      *
  22678      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/firstElementChild)
  22679      */
  22680     readonly firstElementChild: Element | null;
  22681     /**
  22682      * Returns the last child that is an element, and null otherwise.
  22683      *
  22684      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/lastElementChild)
  22685      */
  22686     readonly lastElementChild: Element | null;
  22687     /**
  22688      * Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.
  22689      *
  22690      * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
  22691      *
  22692      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/append)
  22693      */
  22694     append(...nodes: (Node | string)[]): void;
  22695     /**
  22696      * Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.
  22697      *
  22698      * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
  22699      *
  22700      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/prepend)
  22701      */
  22702     prepend(...nodes: (Node | string)[]): void;
  22703     /**
  22704      * Returns the first element that is a descendant of node that matches selectors.
  22705      *
  22706      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/querySelector)
  22707      */
  22708     querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
  22709     querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
  22710     querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;
  22711     /** @deprecated */
  22712     querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): HTMLElementDeprecatedTagNameMap[K] | null;
  22713     querySelector<E extends Element = Element>(selectors: string): E | null;
  22714     /**
  22715      * Returns all element descendants of node that match selectors.
  22716      *
  22717      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)
  22718      */
  22719     querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
  22720     querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
  22721     querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
  22722     /** @deprecated */
  22723     querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;
  22724     querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
  22725     /**
  22726      * Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.
  22727      *
  22728      * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
  22729      *
  22730      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)
  22731      */
  22732     replaceChildren(...nodes: (Node | string)[]): void;
  22733 }
  22734 
  22735 /**
  22736  * The **`Path2D`** interface of the Canvas 2D API is used to declare a path that can then be used on a CanvasRenderingContext2D object.
  22737  *
  22738  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Path2D)
  22739  */
  22740 interface Path2D extends CanvasPath {
  22741     /**
  22742      * The **`Path2D.addPath()`** method of the Canvas 2D API adds one Path2D object to another `Path2D` object.
  22743      *
  22744      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Path2D/addPath)
  22745      */
  22746     addPath(path: Path2D, transform?: DOMMatrix2DInit): void;
  22747 }
  22748 
  22749 declare var Path2D: {
  22750     prototype: Path2D;
  22751     new(path?: Path2D | string): Path2D;
  22752 };
  22753 
  22754 /**
  22755  * The **`ContactAddress`** interface of the Contact Picker API represents a physical address.
  22756  *
  22757  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContactAddress)
  22758  */
  22759 interface PaymentAddress {
  22760     /**
  22761      * The **`addressLine`** read-only property of the ContactAddress interface is an array of strings, each specifying a line of the address that is not covered by one of the other properties of `ContactAddress`.
  22762      *
  22763      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContactAddress/addressLine)
  22764      */
  22765     readonly addressLine: ReadonlyArray<string>;
  22766     /**
  22767      * The **`city`** read-only property of the ContactAddress interface returns a string containing the city or town portion of the address.
  22768      *
  22769      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContactAddress/city)
  22770      */
  22771     readonly city: string;
  22772     /**
  22773      * The **`country`** read-only property of the ContactAddress interface is a string identifying the address's country using the ISO 3166-1 alpha-2 standard.
  22774      *
  22775      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContactAddress/country)
  22776      */
  22777     readonly country: string;
  22778     /**
  22779      * The read-only **`dependentLocality`** property of the ContactAddress interface is a string containing a locality or sublocality designation within a city, such as a neighborhood, borough, district, or, in the United Kingdom, a dependent locality.
  22780      *
  22781      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContactAddress/dependentLocality)
  22782      */
  22783     readonly dependentLocality: string;
  22784     /**
  22785      * The **`organization`** read-only property of the ContactAddress interface returns a string containing the name of the organization, firm, company, or institution at the address.
  22786      *
  22787      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContactAddress/organization)
  22788      */
  22789     readonly organization: string;
  22790     /**
  22791      * The read-only **`phone`** property of the ContactAddress interface returns a string containing the telephone number of the recipient or contact person at the address.
  22792      *
  22793      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContactAddress/phone)
  22794      */
  22795     readonly phone: string;
  22796     /**
  22797      * The **`postalCode`** read-only property of the ContactAddress interface returns a string containing a code used by a jurisdiction for mail routing, for example, the ZIP Code in the United States or the Postal Index Number (PIN code) in India.
  22798      *
  22799      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContactAddress/postalCode)
  22800      */
  22801     readonly postalCode: string;
  22802     /**
  22803      * The read-only **`recipient`** property of the ContactAddress interface returns a string containing the name of the recipient, purchaser, or contact person at the address.
  22804      *
  22805      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContactAddress/recipient)
  22806      */
  22807     readonly recipient: string;
  22808     /**
  22809      * The read-only **`region`** property of the ContactAddress interface returns a string containing the top-level administrative subdivision of the country in which the address is located.
  22810      *
  22811      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContactAddress/region)
  22812      */
  22813     readonly region: string;
  22814     /**
  22815      * The **`sortingCode`** read-only property of the ContactAddress interface returns a string containing a postal sorting code such as is used in France.
  22816      *
  22817      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContactAddress/sortingCode)
  22818      */
  22819     readonly sortingCode: string;
  22820     /**
  22821      * The **`toJSON()`** method of the ContactAddress interface is a standard serializer that returns a JSON representation of the `ContactAddress` object's properties.
  22822      *
  22823      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContactAddress/toJSON)
  22824      */
  22825     toJSON(): any;
  22826 }
  22827 
  22828 declare var PaymentAddress: {
  22829     prototype: PaymentAddress;
  22830     new(): PaymentAddress;
  22831 };
  22832 
  22833 /**
  22834  * The **`PaymentMethodChangeEvent`** interface of the Payment Request API describes the PaymentRequest/paymentmethodchange_event event which is fired by some payment handlers when the user switches payment instruments (e.g., a user selects a 'store' card to make a purchase while using Apple Pay).
  22835  * Available only in secure contexts.
  22836  *
  22837  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentMethodChangeEvent)
  22838  */
  22839 interface PaymentMethodChangeEvent extends PaymentRequestUpdateEvent {
  22840     /**
  22841      * The read-only **`methodDetails`** property of the PaymentMethodChangeEvent interface is an object containing any data the payment handler may provide to describe the change the user has made to their payment method.
  22842      *
  22843      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentMethodChangeEvent/methodDetails)
  22844      */
  22845     readonly methodDetails: any;
  22846     /**
  22847      * The read-only **`methodName`** property of the PaymentMethodChangeEvent interface is a string which uniquely identifies the payment handler currently selected by the user.
  22848      *
  22849      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentMethodChangeEvent/methodName)
  22850      */
  22851     readonly methodName: string;
  22852 }
  22853 
  22854 declare var PaymentMethodChangeEvent: {
  22855     prototype: PaymentMethodChangeEvent;
  22856     new(type: string, eventInitDict?: PaymentMethodChangeEventInit): PaymentMethodChangeEvent;
  22857 };
  22858 
  22859 interface PaymentRequestEventMap {
  22860     "paymentmethodchange": PaymentMethodChangeEvent;
  22861     "shippingaddresschange": PaymentRequestUpdateEvent;
  22862     "shippingoptionchange": PaymentRequestUpdateEvent;
  22863 }
  22864 
  22865 /**
  22866  * The Payment Request API's **`PaymentRequest`** interface is the primary access point into the API, and lets web content and apps accept payments from the end user on behalf of the operator of the site or the publisher of the app.
  22867  * Available only in secure contexts.
  22868  *
  22869  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest)
  22870  */
  22871 interface PaymentRequest extends EventTarget {
  22872     /**
  22873      * The **`id`** read-only attribute of the When constructing an instance of the PaymentRequest, you are able to supply an custom id.
  22874      *
  22875      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/id)
  22876      */
  22877     readonly id: string;
  22878     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/paymentmethodchange_event) */
  22879     onpaymentmethodchange: ((this: PaymentRequest, ev: PaymentMethodChangeEvent) => any) | null;
  22880     /**
  22881      * @deprecated
  22882      *
  22883      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/shippingaddresschange_event)
  22884      */
  22885     onshippingaddresschange: ((this: PaymentRequest, ev: PaymentRequestUpdateEvent) => any) | null;
  22886     /**
  22887      * @deprecated
  22888      *
  22889      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/shippingoptionchange_event)
  22890      */
  22891     onshippingoptionchange: ((this: PaymentRequest, ev: PaymentRequestUpdateEvent) => any) | null;
  22892     /**
  22893      * The **`shippingAddress`** read-only property of the PaymentRequest interface returns the shipping address provided by the user.
  22894      * @deprecated
  22895      *
  22896      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/shippingAddress)
  22897      */
  22898     readonly shippingAddress: PaymentAddress | null;
  22899     /**
  22900      * The **`shippingOption`** read-only attribute of the PaymentRequest interface returns either the id of a selected shipping option, null (if no shipping option was set to be selected) or a shipping option selected by the user.
  22901      * @deprecated
  22902      *
  22903      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/shippingOption)
  22904      */
  22905     readonly shippingOption: string | null;
  22906     /**
  22907      * The **`shippingType`** read-only property of the `'delivery'`, `'pickup'`, or `null` if one was not provided by the constructor.
  22908      * @deprecated
  22909      *
  22910      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/shippingType)
  22911      */
  22912     readonly shippingType: PaymentShippingType | null;
  22913     /**
  22914      * The `PaymentRequest.abort()` method of the PaymentRequest interface causes the user agent to end the payment request and to remove any user interface that might be shown.
  22915      *
  22916      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/abort)
  22917      */
  22918     abort(): Promise<void>;
  22919     /**
  22920      * The PaymentRequest method **`canMakePayment()`** determines whether or not the request is configured in a way that is compatible with at least one payment method supported by the user agent.
  22921      *
  22922      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/canMakePayment)
  22923      */
  22924     canMakePayment(): Promise<boolean>;
  22925     /**
  22926      * The **PaymentRequest** interface's **`show()`** method instructs the user agent to begin the process of showing and handling the user interface for the payment request to the user.
  22927      *
  22928      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/show)
  22929      */
  22930     show(detailsPromise?: PaymentDetailsUpdate | PromiseLike<PaymentDetailsUpdate>): Promise<PaymentResponse>;
  22931     addEventListener<K extends keyof PaymentRequestEventMap>(type: K, listener: (this: PaymentRequest, ev: PaymentRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  22932     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  22933     removeEventListener<K extends keyof PaymentRequestEventMap>(type: K, listener: (this: PaymentRequest, ev: PaymentRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  22934     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  22935 }
  22936 
  22937 declare var PaymentRequest: {
  22938     prototype: PaymentRequest;
  22939     new(methodData: PaymentMethodData[], details: PaymentDetailsInit, options?: PaymentOptions): PaymentRequest;
  22940 };
  22941 
  22942 /**
  22943  * The **`PaymentRequestUpdateEvent`** interface is used for events sent to a PaymentRequest instance when changes are made to shipping-related information for a pending PaymentRequest.
  22944  * Available only in secure contexts.
  22945  *
  22946  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequestUpdateEvent)
  22947  */
  22948 interface PaymentRequestUpdateEvent extends Event {
  22949     /**
  22950      * The **`updateWith()`** method of the ```js-nolint updateWith(details) ``` - `details` - : Either an object or a Promise that resolves to an object, specifying the changes applied to the payment request: - `displayItems` MISSING: optional_inline] - : An array of objects, each describing one line item for the payment request.
  22951      *
  22952      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequestUpdateEvent/updateWith)
  22953      */
  22954     updateWith(detailsPromise: PaymentDetailsUpdate | PromiseLike<PaymentDetailsUpdate>): void;
  22955 }
  22956 
  22957 declare var PaymentRequestUpdateEvent: {
  22958     prototype: PaymentRequestUpdateEvent;
  22959     new(type: string, eventInitDict?: PaymentRequestUpdateEventInit): PaymentRequestUpdateEvent;
  22960 };
  22961 
  22962 interface PaymentResponseEventMap {
  22963     "payerdetailchange": PaymentRequestUpdateEvent;
  22964 }
  22965 
  22966 /**
  22967  * The **`PaymentResponse`** interface of the Payment Request API is returned after a user selects a payment method and approves a payment request.
  22968  * Available only in secure contexts.
  22969  *
  22970  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse)
  22971  */
  22972 interface PaymentResponse extends EventTarget {
  22973     /**
  22974      * The **`details`** read-only property of the provides a payment method specific message used by the merchant to process the transaction and determine a successful funds transfer.
  22975      *
  22976      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/details)
  22977      */
  22978     readonly details: any;
  22979     /**
  22980      * The **`methodName`** read-only property of the PaymentResponse interface returns a string uniquely identifying the payment handler selected by the user.
  22981      *
  22982      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/methodName)
  22983      */
  22984     readonly methodName: string;
  22985     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/payerdetailchange_event) */
  22986     onpayerdetailchange: ((this: PaymentResponse, ev: PaymentRequestUpdateEvent) => any) | null;
  22987     /**
  22988      * The `payerEmail` read-only property of the PaymentResponse interface returns the email address supplied by the user.
  22989      *
  22990      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/payerEmail)
  22991      */
  22992     readonly payerEmail: string | null;
  22993     /**
  22994      * The **`payerName`** read-only property of the option is only present when the `requestPayerName` option is set to `true` in the options parameter of the A string containing the payer name.
  22995      *
  22996      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/payerName)
  22997      */
  22998     readonly payerName: string | null;
  22999     /**
  23000      * The `payerPhone` read-only property of the PaymentResponse interface returns the phone number supplied by the user.
  23001      *
  23002      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/payerPhone)
  23003      */
  23004     readonly payerPhone: string | null;
  23005     /**
  23006      * The **`requestId`** read-only property of the the `PaymentResponse()` constructor by details.id.
  23007      *
  23008      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/requestId)
  23009      */
  23010     readonly requestId: string;
  23011     /**
  23012      * The **`shippingAddress`** read-only property of the `PaymentRequest` interface returns a PaymentAddress object containing the shipping address provided by the user.
  23013      *
  23014      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/shippingAddress)
  23015      */
  23016     readonly shippingAddress: PaymentAddress | null;
  23017     /**
  23018      * The **`shippingOption`** read-only property of the `PaymentRequest` interface returns the ID attribute of the shipping option selected by the user.
  23019      *
  23020      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/shippingOption)
  23021      */
  23022     readonly shippingOption: string | null;
  23023     /**
  23024      * The PaymentRequest method **`complete()`** of the Payment Request API notifies the user interface to be closed.
  23025      *
  23026      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/complete)
  23027      */
  23028     complete(result?: PaymentComplete): Promise<void>;
  23029     /**
  23030      * The PaymentResponse interface's **`retry()`** method makes it possible to ask the user to retry a payment after an error occurs during processing.
  23031      *
  23032      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/retry)
  23033      */
  23034     retry(errorFields?: PaymentValidationErrors): Promise<void>;
  23035     /**
  23036      * The **`toJSON()`** method of the PaymentResponse interface is a Serialization; it returns a JSON representation of the PaymentResponse object.
  23037      *
  23038      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/toJSON)
  23039      */
  23040     toJSON(): any;
  23041     addEventListener<K extends keyof PaymentResponseEventMap>(type: K, listener: (this: PaymentResponse, ev: PaymentResponseEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  23042     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  23043     removeEventListener<K extends keyof PaymentResponseEventMap>(type: K, listener: (this: PaymentResponse, ev: PaymentResponseEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  23044     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  23045 }
  23046 
  23047 declare var PaymentResponse: {
  23048     prototype: PaymentResponse;
  23049     new(): PaymentResponse;
  23050 };
  23051 
  23052 interface PerformanceEventMap {
  23053     "resourcetimingbufferfull": Event;
  23054 }
  23055 
  23056 /**
  23057  * The **`Performance`** interface provides access to performance-related information for the current page.
  23058  *
  23059  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance)
  23060  */
  23061 interface Performance extends EventTarget {
  23062     /**
  23063      * The read-only `performance.eventCounts` property is an EventCounts map containing the number of events which have been dispatched per event type.
  23064      *
  23065      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/eventCounts)
  23066      */
  23067     readonly eventCounts: EventCounts;
  23068     /**
  23069      * The legacy **`Performance.navigation`** read-only property returns a PerformanceNavigation object representing the type of navigation that occurs in the given browsing context, such as the number of redirections needed to fetch the resource.
  23070      * @deprecated
  23071      *
  23072      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/navigation)
  23073      */
  23074     readonly navigation: PerformanceNavigation;
  23075     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/resourcetimingbufferfull_event) */
  23076     onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;
  23077     /**
  23078      * The **`timeOrigin`** read-only property of the Performance interface returns the high resolution timestamp that is used as the baseline for performance-related timestamps.
  23079      *
  23080      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/timeOrigin)
  23081      */
  23082     readonly timeOrigin: DOMHighResTimeStamp;
  23083     /**
  23084      * The legacy **`Performance.timing`** read-only property returns a PerformanceTiming object containing latency-related performance information.
  23085      * @deprecated
  23086      *
  23087      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/timing)
  23088      */
  23089     readonly timing: PerformanceTiming;
  23090     /**
  23091      * The **`clearMarks()`** method removes all or specific PerformanceMark objects from the browser's performance timeline.
  23092      *
  23093      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearMarks)
  23094      */
  23095     clearMarks(markName?: string): void;
  23096     /**
  23097      * The **`clearMeasures()`** method removes all or specific PerformanceMeasure objects from the browser's performance timeline.
  23098      *
  23099      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearMeasures)
  23100      */
  23101     clearMeasures(measureName?: string): void;
  23102     /**
  23103      * The **`clearResourceTimings()`** method removes all performance entries with an PerformanceEntry.entryType of `'resource'` from the browser's performance timeline and sets the size of the performance resource data buffer to zero.
  23104      *
  23105      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearResourceTimings)
  23106      */
  23107     clearResourceTimings(): void;
  23108     /**
  23109      * The **`getEntries()`** method returns an array of all PerformanceEntry objects currently present in the performance timeline.
  23110      *
  23111      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntries)
  23112      */
  23113     getEntries(): PerformanceEntryList;
  23114     /**
  23115      * The **`getEntriesByName()`** method returns an array of PerformanceEntry objects currently present in the performance timeline with the given _name_ and _type_.
  23116      *
  23117      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntriesByName)
  23118      */
  23119     getEntriesByName(name: string, type?: string): PerformanceEntryList;
  23120     /**
  23121      * The **`getEntriesByType()`** method returns an array of PerformanceEntry objects currently present in the performance timeline for a given _type_.
  23122      *
  23123      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntriesByType)
  23124      */
  23125     getEntriesByType(type: string): PerformanceEntryList;
  23126     /**
  23127      * The **`mark()`** method creates a named PerformanceMark object representing a high resolution timestamp marker in the browser's performance timeline.
  23128      *
  23129      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/mark)
  23130      */
  23131     mark(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;
  23132     /**
  23133      * The **`measure()`** method creates a named PerformanceMeasure object representing a time measurement between two marks in the browser's performance timeline.
  23134      *
  23135      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/measure)
  23136      */
  23137     measure(measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string): PerformanceMeasure;
  23138     /**
  23139      * The **`performance.now()`** method returns a high resolution timestamp in milliseconds.
  23140      *
  23141      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/now)
  23142      */
  23143     now(): DOMHighResTimeStamp;
  23144     /**
  23145      * The **`setResourceTimingBufferSize()`** method sets the desired size of the browser's resource timing buffer which stores the `'resource'` performance entries.
  23146      *
  23147      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/setResourceTimingBufferSize)
  23148      */
  23149     setResourceTimingBufferSize(maxSize: number): void;
  23150     /**
  23151      * The **`toJSON()`** method of the Performance interface is a Serialization; it returns a JSON representation of the Performance object.
  23152      *
  23153      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/toJSON)
  23154      */
  23155     toJSON(): any;
  23156     addEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  23157     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  23158     removeEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  23159     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  23160 }
  23161 
  23162 declare var Performance: {
  23163     prototype: Performance;
  23164     new(): Performance;
  23165 };
  23166 
  23167 /**
  23168  * The **`PerformanceEntry`** object encapsulates a single performance metric that is part of the browser's performance timeline.
  23169  *
  23170  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry)
  23171  */
  23172 interface PerformanceEntry {
  23173     /**
  23174      * The read-only **`duration`** property returns a DOMHighResTimeStamp that is the duration of the PerformanceEntry.
  23175      *
  23176      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/duration)
  23177      */
  23178     readonly duration: DOMHighResTimeStamp;
  23179     /**
  23180      * The read-only **`entryType`** property returns a string representing the type of performance metric that this entry represents.
  23181      *
  23182      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/entryType)
  23183      */
  23184     readonly entryType: string;
  23185     /**
  23186      * The read-only **`name`** property of the PerformanceEntry interface is a string representing the name for a performance entry.
  23187      *
  23188      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/name)
  23189      */
  23190     readonly name: string;
  23191     /**
  23192      * The read-only **`startTime`** property returns the first DOMHighResTimeStamp recorded for this PerformanceEntry.
  23193      *
  23194      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/startTime)
  23195      */
  23196     readonly startTime: DOMHighResTimeStamp;
  23197     /**
  23198      * The **`toJSON()`** method is a Serialization; it returns a JSON representation of the PerformanceEntry object.
  23199      *
  23200      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/toJSON)
  23201      */
  23202     toJSON(): any;
  23203 }
  23204 
  23205 declare var PerformanceEntry: {
  23206     prototype: PerformanceEntry;
  23207     new(): PerformanceEntry;
  23208 };
  23209 
  23210 /**
  23211  * The `PerformanceEventTiming` interface of the Event Timing API provides insights into the latency of certain event types triggered by user interaction.
  23212  *
  23213  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming)
  23214  */
  23215 interface PerformanceEventTiming extends PerformanceEntry {
  23216     /**
  23217      * The read-only **`cancelable`** property returns the associated event's `cancelable` property, indicating whether the event can be canceled.
  23218      *
  23219      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/cancelable)
  23220      */
  23221     readonly cancelable: boolean;
  23222     /**
  23223      * The read-only **`processingEnd`** property returns the time the last event handler finished executing.
  23224      *
  23225      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/processingEnd)
  23226      */
  23227     readonly processingEnd: DOMHighResTimeStamp;
  23228     /**
  23229      * The read-only **`processingStart`** property returns the time at which event dispatch started.
  23230      *
  23231      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/processingStart)
  23232      */
  23233     readonly processingStart: DOMHighResTimeStamp;
  23234     /**
  23235      * The read-only **`target`** property returns the associated event's last `target` which is the node onto which the event was last dispatched.
  23236      *
  23237      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/target)
  23238      */
  23239     readonly target: Node | null;
  23240     /**
  23241      * The **`toJSON()`** method of the PerformanceEventTiming interface is a Serialization; it returns a JSON representation of the PerformanceEventTiming object.
  23242      *
  23243      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/toJSON)
  23244      */
  23245     toJSON(): any;
  23246 }
  23247 
  23248 declare var PerformanceEventTiming: {
  23249     prototype: PerformanceEventTiming;
  23250     new(): PerformanceEventTiming;
  23251 };
  23252 
  23253 /**
  23254  * **`PerformanceMark`** is an interface for PerformanceEntry objects with an PerformanceEntry.entryType of `'mark'`.
  23255  *
  23256  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMark)
  23257  */
  23258 interface PerformanceMark extends PerformanceEntry {
  23259     /**
  23260      * The read-only **`detail`** property returns arbitrary metadata that was included in the mark upon construction (either when using Performance.mark or the PerformanceMark.PerformanceMark constructor).
  23261      *
  23262      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMark/detail)
  23263      */
  23264     readonly detail: any;
  23265 }
  23266 
  23267 declare var PerformanceMark: {
  23268     prototype: PerformanceMark;
  23269     new(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;
  23270 };
  23271 
  23272 /**
  23273  * **`PerformanceMeasure`** is an _abstract_ interface for PerformanceEntry objects with an PerformanceEntry.entryType of `'measure'`.
  23274  *
  23275  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMeasure)
  23276  */
  23277 interface PerformanceMeasure extends PerformanceEntry {
  23278     /**
  23279      * The read-only **`detail`** property returns arbitrary metadata that was included in the mark upon construction (when using Performance.measure.
  23280      *
  23281      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMeasure/detail)
  23282      */
  23283     readonly detail: any;
  23284 }
  23285 
  23286 declare var PerformanceMeasure: {
  23287     prototype: PerformanceMeasure;
  23288     new(): PerformanceMeasure;
  23289 };
  23290 
  23291 /**
  23292  * The legacy **`PerformanceNavigation`** interface represents information about how the navigation to the current document was done.
  23293  * @deprecated This interface is deprecated in the Navigation Timing Level 2 specification. Please use the PerformanceNavigationTiming interface instead.
  23294  *
  23295  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigation)
  23296  */
  23297 interface PerformanceNavigation {
  23298     /**
  23299      * The legacy **`PerformanceNavigation.redirectCount`** read-only property returns an `unsigned short` representing the number of REDIRECTs done before reaching the page.
  23300      * @deprecated
  23301      *
  23302      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigation/redirectCount)
  23303      */
  23304     readonly redirectCount: number;
  23305     /**
  23306      * The legacy **`PerformanceNavigation.type`** read-only property returns an `unsigned short` containing a constant describing how the navigation to this page was done.
  23307      * @deprecated
  23308      *
  23309      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigation/type)
  23310      */
  23311     readonly type: number;
  23312     /**
  23313      * The **`toJSON()`** method of the PerformanceNavigation interface is a Serialization; it returns a JSON representation of the PerformanceNavigation object.
  23314      * @deprecated
  23315      *
  23316      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigation/toJSON)
  23317      */
  23318     toJSON(): any;
  23319     readonly TYPE_NAVIGATE: 0;
  23320     readonly TYPE_RELOAD: 1;
  23321     readonly TYPE_BACK_FORWARD: 2;
  23322     readonly TYPE_RESERVED: 255;
  23323 }
  23324 
  23325 /** @deprecated */
  23326 declare var PerformanceNavigation: {
  23327     prototype: PerformanceNavigation;
  23328     new(): PerformanceNavigation;
  23329     readonly TYPE_NAVIGATE: 0;
  23330     readonly TYPE_RELOAD: 1;
  23331     readonly TYPE_BACK_FORWARD: 2;
  23332     readonly TYPE_RESERVED: 255;
  23333 };
  23334 
  23335 /**
  23336  * The **`PerformanceNavigationTiming`** interface provides methods and properties to store and retrieve metrics regarding the browser's document navigation events.
  23337  *
  23338  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming)
  23339  */
  23340 interface PerformanceNavigationTiming extends PerformanceResourceTiming {
  23341     /**
  23342      * The **`domComplete`** read-only property returns a DOMHighResTimeStamp representing the time immediately before the user agent sets the document's `readyState` to `'complete'`.
  23343      *
  23344      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/domComplete)
  23345      */
  23346     readonly domComplete: DOMHighResTimeStamp;
  23347     /**
  23348      * The **`domContentLoadedEventEnd`** read-only property returns a DOMHighResTimeStamp representing the time immediately after the current document's `DOMContentLoaded` event handler completes.
  23349      *
  23350      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/domContentLoadedEventEnd)
  23351      */
  23352     readonly domContentLoadedEventEnd: DOMHighResTimeStamp;
  23353     /**
  23354      * The **`domContentLoadedEventStart`** read-only property returns a DOMHighResTimeStamp representing the time immediately before the current document's `DOMContentLoaded` event handler starts.
  23355      *
  23356      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/domContentLoadedEventStart)
  23357      */
  23358     readonly domContentLoadedEventStart: DOMHighResTimeStamp;
  23359     /**
  23360      * The **`domInteractive`** read-only property returns a DOMHighResTimeStamp representing the time immediately before the user agent sets the document's `readyState` to `'interactive'`.
  23361      *
  23362      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/domInteractive)
  23363      */
  23364     readonly domInteractive: DOMHighResTimeStamp;
  23365     /**
  23366      * The **`loadEventEnd`** read-only property returns a DOMHighResTimeStamp representing the time immediately after the current document's `load` event handler completes.
  23367      *
  23368      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/loadEventEnd)
  23369      */
  23370     readonly loadEventEnd: DOMHighResTimeStamp;
  23371     /**
  23372      * The **`loadEventStart`** read-only property returns a DOMHighResTimeStamp representing the time immediately before the current document's `load` event handler starts.
  23373      *
  23374      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/loadEventStart)
  23375      */
  23376     readonly loadEventStart: DOMHighResTimeStamp;
  23377     /**
  23378      * The **`redirectCount`** read-only property returns a number representing the number of redirects since the last non-redirect navigation in the current browsing context.
  23379      *
  23380      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/redirectCount)
  23381      */
  23382     readonly redirectCount: number;
  23383     /**
  23384      * The **`type`** read-only property returns the type of navigation.
  23385      *
  23386      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/type)
  23387      */
  23388     readonly type: NavigationTimingType;
  23389     /**
  23390      * The **`unloadEventEnd`** read-only property returns a DOMHighResTimeStamp representing the time immediately after the current document's `unload` event handler completes.
  23391      *
  23392      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/unloadEventEnd)
  23393      */
  23394     readonly unloadEventEnd: DOMHighResTimeStamp;
  23395     /**
  23396      * The **`unloadEventStart`** read-only property returns a DOMHighResTimeStamp representing the time immediately before the current document's `unload` event handler starts.
  23397      *
  23398      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/unloadEventStart)
  23399      */
  23400     readonly unloadEventStart: DOMHighResTimeStamp;
  23401     /**
  23402      * The **`toJSON()`** method of the PerformanceNavigationTiming interface is a Serialization; it returns a JSON representation of the PerformanceNavigationTiming object.
  23403      *
  23404      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/toJSON)
  23405      */
  23406     toJSON(): any;
  23407 }
  23408 
  23409 declare var PerformanceNavigationTiming: {
  23410     prototype: PerformanceNavigationTiming;
  23411     new(): PerformanceNavigationTiming;
  23412 };
  23413 
  23414 /**
  23415  * The **`PerformanceObserver`** interface is used to observe performance measurement events and be notified of new PerformanceEntry as they are recorded in the browser's _performance timeline_.
  23416  *
  23417  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver)
  23418  */
  23419 interface PerformanceObserver {
  23420     /**
  23421      * The **`disconnect()`** method of the PerformanceObserver interface is used to stop the performance observer from receiving any PerformanceEntry events.
  23422      *
  23423      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/disconnect)
  23424      */
  23425     disconnect(): void;
  23426     /**
  23427      * The **`observe()`** method of the **PerformanceObserver** interface is used to specify the set of performance entry types to observe.
  23428      *
  23429      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/observe)
  23430      */
  23431     observe(options?: PerformanceObserverInit): void;
  23432     /**
  23433      * The **`takeRecords()`** method of the PerformanceObserver interface returns the current list of PerformanceEntry objects stored in the performance observer, emptying it out.
  23434      *
  23435      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/takeRecords)
  23436      */
  23437     takeRecords(): PerformanceEntryList;
  23438 }
  23439 
  23440 declare var PerformanceObserver: {
  23441     prototype: PerformanceObserver;
  23442     new(callback: PerformanceObserverCallback): PerformanceObserver;
  23443     /**
  23444      * The static **`supportedEntryTypes`** read-only property of the PerformanceObserver interface returns an array of the PerformanceEntry.entryType values supported by the user agent.
  23445      *
  23446      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/supportedEntryTypes_static)
  23447      */
  23448     readonly supportedEntryTypes: ReadonlyArray<string>;
  23449 };
  23450 
  23451 /**
  23452  * The **`PerformanceObserverEntryList`** interface is a list of PerformanceEntry that were explicitly observed via the PerformanceObserver.observe method.
  23453  *
  23454  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList)
  23455  */
  23456 interface PerformanceObserverEntryList {
  23457     /**
  23458      * The **`getEntries()`** method of the PerformanceObserverEntryList interface returns a list of explicitly observed PerformanceEntry objects.
  23459      *
  23460      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntries)
  23461      */
  23462     getEntries(): PerformanceEntryList;
  23463     /**
  23464      * The **`getEntriesByName()`** method of the PerformanceObserverEntryList interface returns a list of explicitly observed PerformanceEntry objects for a given PerformanceEntry.name and PerformanceEntry.entryType.
  23465      *
  23466      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntriesByName)
  23467      */
  23468     getEntriesByName(name: string, type?: string): PerformanceEntryList;
  23469     /**
  23470      * The **`getEntriesByType()`** method of the PerformanceObserverEntryList returns a list of explicitly _observed_ PerformanceEntry objects for a given PerformanceEntry.entryType.
  23471      *
  23472      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntriesByType)
  23473      */
  23474     getEntriesByType(type: string): PerformanceEntryList;
  23475 }
  23476 
  23477 declare var PerformanceObserverEntryList: {
  23478     prototype: PerformanceObserverEntryList;
  23479     new(): PerformanceObserverEntryList;
  23480 };
  23481 
  23482 /**
  23483  * The **`PerformancePaintTiming`** interface provides timing information about 'paint' (also called 'render') operations during web page construction.
  23484  *
  23485  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformancePaintTiming)
  23486  */
  23487 interface PerformancePaintTiming extends PerformanceEntry {
  23488 }
  23489 
  23490 declare var PerformancePaintTiming: {
  23491     prototype: PerformancePaintTiming;
  23492     new(): PerformancePaintTiming;
  23493 };
  23494 
  23495 /**
  23496  * The **`PerformanceResourceTiming`** interface enables retrieval and analysis of detailed network timing data regarding the loading of an application's resources.
  23497  *
  23498  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming)
  23499  */
  23500 interface PerformanceResourceTiming extends PerformanceEntry {
  23501     /**
  23502      * The **`connectEnd`** read-only property returns the DOMHighResTimeStamp immediately after the browser finishes establishing the connection to the server to retrieve the resource.
  23503      *
  23504      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/connectEnd)
  23505      */
  23506     readonly connectEnd: DOMHighResTimeStamp;
  23507     /**
  23508      * The **`connectStart`** read-only property returns the DOMHighResTimeStamp immediately before the user agent starts establishing the connection to the server to retrieve the resource.
  23509      *
  23510      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/connectStart)
  23511      */
  23512     readonly connectStart: DOMHighResTimeStamp;
  23513     /**
  23514      * The **`decodedBodySize`** read-only property returns the size (in octets) received from the fetch (HTTP or cache) of the message body after removing any applied content encoding (like gzip or Brotli).
  23515      *
  23516      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/decodedBodySize)
  23517      */
  23518     readonly decodedBodySize: number;
  23519     /**
  23520      * The **`domainLookupEnd`** read-only property returns the DOMHighResTimeStamp immediately after the browser finishes the domain-name lookup for the resource.
  23521      *
  23522      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/domainLookupEnd)
  23523      */
  23524     readonly domainLookupEnd: DOMHighResTimeStamp;
  23525     /**
  23526      * The **`domainLookupStart`** read-only property returns the DOMHighResTimeStamp immediately before the browser starts the domain name lookup for the resource.
  23527      *
  23528      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/domainLookupStart)
  23529      */
  23530     readonly domainLookupStart: DOMHighResTimeStamp;
  23531     /**
  23532      * The **`encodedBodySize`** read-only property represents the size (in octets) received from the fetch (HTTP or cache) of the payload body before removing any applied content encodings (like gzip or Brotli).
  23533      *
  23534      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/encodedBodySize)
  23535      */
  23536     readonly encodedBodySize: number;
  23537     /**
  23538      * The **`fetchStart`** read-only property represents a DOMHighResTimeStamp immediately before the browser starts to fetch the resource.
  23539      *
  23540      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/fetchStart)
  23541      */
  23542     readonly fetchStart: DOMHighResTimeStamp;
  23543     /**
  23544      * The **`initiatorType`** read-only property is a string representing web platform feature that initiated the resource load.
  23545      *
  23546      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/initiatorType)
  23547      */
  23548     readonly initiatorType: string;
  23549     /**
  23550      * The **`nextHopProtocol`** read-only property is a string representing the network protocol used to fetch the resource, as identified by the ALPN Protocol ID (RFC7301).
  23551      *
  23552      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/nextHopProtocol)
  23553      */
  23554     readonly nextHopProtocol: string;
  23555     /**
  23556      * The **`redirectEnd`** read-only property returns a DOMHighResTimeStamp immediately after receiving the last byte of the response of the last redirect.
  23557      *
  23558      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/redirectEnd)
  23559      */
  23560     readonly redirectEnd: DOMHighResTimeStamp;
  23561     /**
  23562      * The **`redirectStart`** read-only property returns a DOMHighResTimeStamp representing the start time of the fetch which that initiates the redirect.
  23563      *
  23564      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/redirectStart)
  23565      */
  23566     readonly redirectStart: DOMHighResTimeStamp;
  23567     /**
  23568      * The **`requestStart`** read-only property returns a DOMHighResTimeStamp of the time immediately before the browser starts requesting the resource from the server, cache, or local resource.
  23569      *
  23570      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/requestStart)
  23571      */
  23572     readonly requestStart: DOMHighResTimeStamp;
  23573     /**
  23574      * The **`responseEnd`** read-only property returns a DOMHighResTimeStamp immediately after the browser receives the last byte of the resource or immediately before the transport connection is closed, whichever comes first.
  23575      *
  23576      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/responseEnd)
  23577      */
  23578     readonly responseEnd: DOMHighResTimeStamp;
  23579     /**
  23580      * The **`responseStart`** read-only property returns a DOMHighResTimeStamp immediately after the browser receives the first byte of the response from the server, cache, or local resource.
  23581      *
  23582      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/responseStart)
  23583      */
  23584     readonly responseStart: DOMHighResTimeStamp;
  23585     /**
  23586      * The **`responseStatus`** read-only property represents the HTTP response status code returned when fetching the resource.
  23587      *
  23588      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/responseStatus)
  23589      */
  23590     readonly responseStatus: number;
  23591     /**
  23592      * The **`secureConnectionStart`** read-only property returns a DOMHighResTimeStamp immediately before the browser starts the handshake process to secure the current connection.
  23593      *
  23594      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/secureConnectionStart)
  23595      */
  23596     readonly secureConnectionStart: DOMHighResTimeStamp;
  23597     /**
  23598      * The **`serverTiming`** read-only property returns an array of PerformanceServerTiming entries containing server timing metrics.
  23599      *
  23600      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/serverTiming)
  23601      */
  23602     readonly serverTiming: ReadonlyArray<PerformanceServerTiming>;
  23603     /**
  23604      * The **`transferSize`** read-only property represents the size (in octets) of the fetched resource.
  23605      *
  23606      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/transferSize)
  23607      */
  23608     readonly transferSize: number;
  23609     /**
  23610      * The **`workerStart`** read-only property of the PerformanceResourceTiming interface returns a The `workerStart` property can have the following values: - A DOMHighResTimeStamp.
  23611      *
  23612      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/workerStart)
  23613      */
  23614     readonly workerStart: DOMHighResTimeStamp;
  23615     /**
  23616      * The **`toJSON()`** method of the PerformanceResourceTiming interface is a Serialization; it returns a JSON representation of the PerformanceResourceTiming object.
  23617      *
  23618      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/toJSON)
  23619      */
  23620     toJSON(): any;
  23621 }
  23622 
  23623 declare var PerformanceResourceTiming: {
  23624     prototype: PerformanceResourceTiming;
  23625     new(): PerformanceResourceTiming;
  23626 };
  23627 
  23628 /**
  23629  * The **`PerformanceServerTiming`** interface surfaces server metrics that are sent with the response in the Server-Timing HTTP header.
  23630  *
  23631  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming)
  23632  */
  23633 interface PerformanceServerTiming {
  23634     /**
  23635      * The **`description`** read-only property returns a string value of the server-specified metric description, or an empty string.
  23636      *
  23637      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/description)
  23638      */
  23639     readonly description: string;
  23640     /**
  23641      * The **`duration`** read-only property returns a double that contains the server-specified metric duration, or the value `0.0`.
  23642      *
  23643      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/duration)
  23644      */
  23645     readonly duration: DOMHighResTimeStamp;
  23646     /**
  23647      * The **`name`** read-only property returns a string value of the server-specified metric name.
  23648      *
  23649      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/name)
  23650      */
  23651     readonly name: string;
  23652     /**
  23653      * The **`toJSON()`** method of the PerformanceServerTiming interface is a Serialization; it returns a JSON representation of the PerformanceServerTiming object.
  23654      *
  23655      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/toJSON)
  23656      */
  23657     toJSON(): any;
  23658 }
  23659 
  23660 declare var PerformanceServerTiming: {
  23661     prototype: PerformanceServerTiming;
  23662     new(): PerformanceServerTiming;
  23663 };
  23664 
  23665 /**
  23666  * The **`PerformanceTiming`** interface is 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.
  23667  * @deprecated This interface is deprecated in the Navigation Timing Level 2 specification. Please use the PerformanceNavigationTiming interface instead.
  23668  *
  23669  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming)
  23670  */
  23671 interface PerformanceTiming {
  23672     /**
  23673      * The legacy **`PerformanceTiming.connectEnd`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, where the connection is opened network.
  23674      * @deprecated
  23675      *
  23676      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/connectEnd)
  23677      */
  23678     readonly connectEnd: number;
  23679     /**
  23680      * The legacy **`PerformanceTiming.connectStart`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, where the request to open a connection is sent to the network.
  23681      * @deprecated
  23682      *
  23683      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/connectStart)
  23684      */
  23685     readonly connectStart: number;
  23686     /**
  23687      * The legacy **`PerformanceTiming.domComplete`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, when the parser finished its work on the main document, that is when its Document.readyState changes to `'complete'` and the corresponding Document/readystatechange_event event is thrown.
  23688      * @deprecated
  23689      *
  23690      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domComplete)
  23691      */
  23692     readonly domComplete: number;
  23693     /**
  23694      * The legacy **`PerformanceTiming.domContentLoadedEventEnd`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, right after all the scripts that need to be executed as soon as possible, in order or not, has been executed.
  23695      * @deprecated
  23696      *
  23697      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domContentLoadedEventEnd)
  23698      */
  23699     readonly domContentLoadedEventEnd: number;
  23700     /**
  23701      * The legacy **`PerformanceTiming.domContentLoadedEventStart`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, right before the parser sent the executed right after parsing has been executed.
  23702      * @deprecated
  23703      *
  23704      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domContentLoadedEventStart)
  23705      */
  23706     readonly domContentLoadedEventStart: number;
  23707     /**
  23708      * The legacy **`PerformanceTiming.domInteractive`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, when the parser finished its work on the main document, that is when its Document.readyState changes to `'interactive'` and the corresponding Document/readystatechange_event event is thrown.
  23709      * @deprecated
  23710      *
  23711      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domInteractive)
  23712      */
  23713     readonly domInteractive: number;
  23714     /**
  23715      * The legacy **`PerformanceTiming.domLoading`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, when the parser started its work, that is when its corresponding Document/readystatechange_event event is thrown.
  23716      * @deprecated
  23717      *
  23718      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domLoading)
  23719      */
  23720     readonly domLoading: number;
  23721     /**
  23722      * The legacy **`PerformanceTiming.domainLookupEnd`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, where the domain lookup is finished.
  23723      * @deprecated
  23724      *
  23725      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domainLookupEnd)
  23726      */
  23727     readonly domainLookupEnd: number;
  23728     /**
  23729      * The legacy **`PerformanceTiming.domainLookupStart`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, where the domain lookup starts.
  23730      * @deprecated
  23731      *
  23732      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domainLookupStart)
  23733      */
  23734     readonly domainLookupStart: number;
  23735     /**
  23736      * The legacy **`PerformanceTiming.fetchStart`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, the browser is ready to fetch the document using an HTTP request.
  23737      * @deprecated
  23738      *
  23739      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/fetchStart)
  23740      */
  23741     readonly fetchStart: number;
  23742     /**
  23743      * The legacy **`PerformanceTiming.loadEventEnd`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, when the Window/load_event event handler terminated, that is when the load event is completed.
  23744      * @deprecated
  23745      *
  23746      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/loadEventEnd)
  23747      */
  23748     readonly loadEventEnd: number;
  23749     /**
  23750      * The legacy **`PerformanceTiming.loadEventStart`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, when the Window/load_event event was sent for the current document.
  23751      * @deprecated
  23752      *
  23753      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/loadEventStart)
  23754      */
  23755     readonly loadEventStart: number;
  23756     /**
  23757      * The legacy **`PerformanceTiming.navigationStart`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, right after the prompt for unload terminates on the previous document in the same browsing context.
  23758      * @deprecated
  23759      *
  23760      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/navigationStart)
  23761      */
  23762     readonly navigationStart: number;
  23763     /**
  23764      * The legacy **`PerformanceTiming.redirectEnd`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, the last HTTP redirect is completed, that is when the last byte of the HTTP response has been received.
  23765      * @deprecated
  23766      *
  23767      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/redirectEnd)
  23768      */
  23769     readonly redirectEnd: number;
  23770     /**
  23771      * The legacy **`PerformanceTiming.redirectStart`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, the first HTTP redirect starts.
  23772      * @deprecated
  23773      *
  23774      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/redirectStart)
  23775      */
  23776     readonly redirectStart: number;
  23777     /**
  23778      * The legacy **`PerformanceTiming.requestStart`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, when the browser sent the request to obtain the actual document, from the server or from a cache.
  23779      * @deprecated
  23780      *
  23781      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/requestStart)
  23782      */
  23783     readonly requestStart: number;
  23784     /**
  23785      * The legacy **`PerformanceTiming.responseEnd`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, when the browser received the last byte of the response, or when the connection is closed if this happened first, from the server from a cache or from a local resource.
  23786      * @deprecated
  23787      *
  23788      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/responseEnd)
  23789      */
  23790     readonly responseEnd: number;
  23791     /**
  23792      * The legacy **`PerformanceTiming.responseStart`** read-only property returns an `unsigned long long` representing the moment in time (in milliseconds since the UNIX epoch) when the browser received the first byte of the response from the server, cache, or local resource.
  23793      * @deprecated
  23794      *
  23795      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/responseStart)
  23796      */
  23797     readonly responseStart: number;
  23798     /**
  23799      * The legacy **`PerformanceTiming.secureConnectionStart`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, where the secure connection handshake starts.
  23800      * @deprecated
  23801      *
  23802      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/secureConnectionStart)
  23803      */
  23804     readonly secureConnectionStart: number;
  23805     /**
  23806      * The legacy **`PerformanceTiming.unloadEventEnd`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, the Window/unload_event event handler finishes.
  23807      * @deprecated
  23808      *
  23809      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/unloadEventEnd)
  23810      */
  23811     readonly unloadEventEnd: number;
  23812     /**
  23813      * The legacy **`PerformanceTiming.unloadEventStart`** read-only property returns an `unsigned long long` representing the moment, in milliseconds since the UNIX epoch, the Window/unload_event event has been thrown.
  23814      * @deprecated
  23815      *
  23816      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/unloadEventStart)
  23817      */
  23818     readonly unloadEventStart: number;
  23819     /**
  23820      * The legacy **`toJSON()`** method of the PerformanceTiming interface is a Serialization; it returns a JSON representation of the PerformanceTiming object.
  23821      * @deprecated
  23822      *
  23823      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/toJSON)
  23824      */
  23825     toJSON(): any;
  23826 }
  23827 
  23828 /** @deprecated */
  23829 declare var PerformanceTiming: {
  23830     prototype: PerformanceTiming;
  23831     new(): PerformanceTiming;
  23832 };
  23833 
  23834 /**
  23835  * The **`PeriodicWave`** interface defines a periodic waveform that can be used to shape the output of an OscillatorNode.
  23836  *
  23837  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PeriodicWave)
  23838  */
  23839 interface PeriodicWave {
  23840 }
  23841 
  23842 declare var PeriodicWave: {
  23843     prototype: PeriodicWave;
  23844     new(context: BaseAudioContext, options?: PeriodicWaveOptions): PeriodicWave;
  23845 };
  23846 
  23847 interface PermissionStatusEventMap {
  23848     "change": Event;
  23849 }
  23850 
  23851 /**
  23852  * The **`PermissionStatus`** interface of the Permissions API provides the state of an object and an event handler for monitoring changes to said state.
  23853  *
  23854  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus)
  23855  */
  23856 interface PermissionStatus extends EventTarget {
  23857     /**
  23858      * The **`name`** read-only property of the PermissionStatus interface returns the name of a requested permission.
  23859      *
  23860      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/name)
  23861      */
  23862     readonly name: string;
  23863     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/change_event) */
  23864     onchange: ((this: PermissionStatus, ev: Event) => any) | null;
  23865     /**
  23866      * The **`state`** read-only property of the This property returns one of `'granted'`, `'denied'`, or `'prompt'`.
  23867      *
  23868      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/state)
  23869      */
  23870     readonly state: PermissionState;
  23871     addEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  23872     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  23873     removeEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  23874     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  23875 }
  23876 
  23877 declare var PermissionStatus: {
  23878     prototype: PermissionStatus;
  23879     new(): PermissionStatus;
  23880 };
  23881 
  23882 /**
  23883  * The **`Permissions`** interface of the Permissions API provides the core Permission API functionality, such as methods for querying and revoking permissions - Permissions.query - : Returns the user permission status for a given API.
  23884  *
  23885  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Permissions)
  23886  */
  23887 interface Permissions {
  23888     /**
  23889      * The **`query()`** method of the Permissions interface returns the state of a user permission on the global scope.
  23890      *
  23891      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Permissions/query)
  23892      */
  23893     query(permissionDesc: PermissionDescriptor): Promise<PermissionStatus>;
  23894 }
  23895 
  23896 declare var Permissions: {
  23897     prototype: Permissions;
  23898     new(): Permissions;
  23899 };
  23900 
  23901 /**
  23902  * The **`PictureInPictureEvent`** interface represents picture-in-picture-related events, including HTMLVideoElement/enterpictureinpicture_event, HTMLVideoElement/leavepictureinpicture_event and PictureInPictureWindow/resize_event.
  23903  *
  23904  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PictureInPictureEvent)
  23905  */
  23906 interface PictureInPictureEvent extends Event {
  23907     /**
  23908      * The read-only **`pictureInPictureWindow`** property of the PictureInPictureEvent interface returns the PictureInPictureWindow the event relates to.
  23909      *
  23910      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PictureInPictureEvent/pictureInPictureWindow)
  23911      */
  23912     readonly pictureInPictureWindow: PictureInPictureWindow;
  23913 }
  23914 
  23915 declare var PictureInPictureEvent: {
  23916     prototype: PictureInPictureEvent;
  23917     new(type: string, eventInitDict: PictureInPictureEventInit): PictureInPictureEvent;
  23918 };
  23919 
  23920 interface PictureInPictureWindowEventMap {
  23921     "resize": Event;
  23922 }
  23923 
  23924 /**
  23925  * The **`PictureInPictureWindow`** interface represents an object able to programmatically obtain the **`width`** and **`height`** and **`resize event`** of the floating video window.
  23926  *
  23927  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PictureInPictureWindow)
  23928  */
  23929 interface PictureInPictureWindow extends EventTarget {
  23930     /**
  23931      * The read-only **`height`** property of the PictureInPictureWindow interface returns the height of the floating video window in pixels.
  23932      *
  23933      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PictureInPictureWindow/height)
  23934      */
  23935     readonly height: number;
  23936     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PictureInPictureWindow/resize_event) */
  23937     onresize: ((this: PictureInPictureWindow, ev: Event) => any) | null;
  23938     /**
  23939      * The read-only **`width`** property of the PictureInPictureWindow interface returns the width of the floating video window in pixels.
  23940      *
  23941      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PictureInPictureWindow/width)
  23942      */
  23943     readonly width: number;
  23944     addEventListener<K extends keyof PictureInPictureWindowEventMap>(type: K, listener: (this: PictureInPictureWindow, ev: PictureInPictureWindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  23945     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  23946     removeEventListener<K extends keyof PictureInPictureWindowEventMap>(type: K, listener: (this: PictureInPictureWindow, ev: PictureInPictureWindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  23947     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  23948 }
  23949 
  23950 declare var PictureInPictureWindow: {
  23951     prototype: PictureInPictureWindow;
  23952     new(): PictureInPictureWindow;
  23953 };
  23954 
  23955 /**
  23956  * The `Plugin` interface provides information about a browser plugin.
  23957  * @deprecated
  23958  *
  23959  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Plugin)
  23960  */
  23961 interface Plugin {
  23962     /**
  23963      * Returns the plugin's description.
  23964      * @deprecated
  23965      */
  23966     readonly description: string;
  23967     /**
  23968      * Returns the plugin library's filename, if applicable on the current platform.
  23969      * @deprecated
  23970      */
  23971     readonly filename: string;
  23972     /**
  23973      * Returns the number of MIME types, represented by MimeType objects, supported by the plugin.
  23974      * @deprecated
  23975      */
  23976     readonly length: number;
  23977     /**
  23978      * Returns the plugin's name.
  23979      * @deprecated
  23980      */
  23981     readonly name: string;
  23982     /**
  23983      * Returns the specified MimeType object.
  23984      * @deprecated
  23985      */
  23986     item(index: number): MimeType | null;
  23987     /** @deprecated */
  23988     namedItem(name: string): MimeType | null;
  23989     [index: number]: MimeType;
  23990 }
  23991 
  23992 /** @deprecated */
  23993 declare var Plugin: {
  23994     prototype: Plugin;
  23995     new(): Plugin;
  23996 };
  23997 
  23998 /**
  23999  * The `PluginArray` interface is used to store a list of Plugin objects; it's returned by the Navigator.plugins property.
  24000  * @deprecated
  24001  *
  24002  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PluginArray)
  24003  */
  24004 interface PluginArray {
  24005     /** @deprecated */
  24006     readonly length: number;
  24007     /** @deprecated */
  24008     item(index: number): Plugin | null;
  24009     /** @deprecated */
  24010     namedItem(name: string): Plugin | null;
  24011     /** @deprecated */
  24012     refresh(): void;
  24013     [index: number]: Plugin;
  24014 }
  24015 
  24016 /** @deprecated */
  24017 declare var PluginArray: {
  24018     prototype: PluginArray;
  24019     new(): PluginArray;
  24020 };
  24021 
  24022 /**
  24023  * The **`PointerEvent`** interface represents 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.
  24024  *
  24025  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent)
  24026  */
  24027 interface PointerEvent extends MouseEvent {
  24028     /**
  24029      * The **`altitudeAngle`** read-only property of the PointerEvent interface represents the angle between a transducer (a pointer or stylus) axis and the X-Y plane of a device screen.
  24030      *
  24031      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/altitudeAngle)
  24032      */
  24033     readonly altitudeAngle: number;
  24034     /**
  24035      * The **`azimuthAngle`** read-only property of the PointerEvent interface represents the angle between the Y-Z plane and the plane containing both the transducer (pointer or stylus) axis and the Y axis.
  24036      *
  24037      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/azimuthAngle)
  24038      */
  24039     readonly azimuthAngle: number;
  24040     /**
  24041      * The **`height`** read-only property of the geometry, along the y-axis (in CSS pixels).
  24042      *
  24043      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/height)
  24044      */
  24045     readonly height: number;
  24046     /**
  24047      * The **`isPrimary`** read-only property of the created the event is the _primary_ pointer.
  24048      *
  24049      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/isPrimary)
  24050      */
  24051     readonly isPrimary: boolean;
  24052     /**
  24053      * The **`pointerId`** read-only property of the event.
  24054      *
  24055      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/pointerId)
  24056      */
  24057     readonly pointerId: number;
  24058     /**
  24059      * The **`pointerType`** read-only property of the that caused a given pointer event.
  24060      *
  24061      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/pointerType)
  24062      */
  24063     readonly pointerType: string;
  24064     /**
  24065      * The **`pressure`** read-only property of the input.
  24066      *
  24067      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/pressure)
  24068      */
  24069     readonly pressure: number;
  24070     /**
  24071      * The **`tangentialPressure`** read-only property of the the pointer input (also known as barrel pressure or cylinder stress).
  24072      *
  24073      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/tangentialPressure)
  24074      */
  24075     readonly tangentialPressure: number;
  24076     /**
  24077      * The **`tiltX`** read-only property of the PointerEvent interface is the angle (in degrees) between the _Y-Z plane_ of the pointer and the screen.
  24078      *
  24079      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/tiltX)
  24080      */
  24081     readonly tiltX: number;
  24082     /**
  24083      * The **`tiltY`** read-only property of the PointerEvent interface is the angle (in degrees) between the _X-Z plane_ of the pointer and the screen.
  24084      *
  24085      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/tiltY)
  24086      */
  24087     readonly tiltY: number;
  24088     /**
  24089      * The **`twist`** read-only property of the (e.g., pen stylus) around its major axis, in degrees.
  24090      *
  24091      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/twist)
  24092      */
  24093     readonly twist: number;
  24094     /**
  24095      * The **`width`** read-only property of the geometry along the x-axis, measured in CSS pixels.
  24096      *
  24097      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/width)
  24098      */
  24099     readonly width: number;
  24100     /**
  24101      * The **`getCoalescedEvents()`** method of the PointerEvent interface returns a sequence of `PointerEvent` instances that were coalesced (merged) into a single Element/pointermove_event or Element/pointerrawupdate_event event.
  24102      * Available only in secure contexts.
  24103      *
  24104      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/getCoalescedEvents)
  24105      */
  24106     getCoalescedEvents(): PointerEvent[];
  24107     /**
  24108      * The **`getPredictedEvents()`** method of the PointerEvent interface returns a sequence of `PointerEvent` instances that are estimated future pointer positions.
  24109      *
  24110      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/getPredictedEvents)
  24111      */
  24112     getPredictedEvents(): PointerEvent[];
  24113 }
  24114 
  24115 declare var PointerEvent: {
  24116     prototype: PointerEvent;
  24117     new(type: string, eventInitDict?: PointerEventInit): PointerEvent;
  24118 };
  24119 
  24120 /**
  24121  * **`PopStateEvent`** is an interface for the Window/popstate_event event.
  24122  *
  24123  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PopStateEvent)
  24124  */
  24125 interface PopStateEvent extends Event {
  24126     /**
  24127      * The **`hasUAVisualTransition`** read-only property of the PopStateEvent interface returns `true` if the user agent performed a visual transition for this navigation before dispatching this event, or `false` otherwise.
  24128      *
  24129      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PopStateEvent/hasUAVisualTransition)
  24130      */
  24131     readonly hasUAVisualTransition: boolean;
  24132     /**
  24133      * The **`state`** read-only property of the PopStateEvent interface represents the state stored when the event was created.
  24134      *
  24135      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PopStateEvent/state)
  24136      */
  24137     readonly state: any;
  24138 }
  24139 
  24140 declare var PopStateEvent: {
  24141     prototype: PopStateEvent;
  24142     new(type: string, eventInitDict?: PopStateEventInit): PopStateEvent;
  24143 };
  24144 
  24145 interface PopoverInvokerElement {
  24146     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/popoverTargetAction) */
  24147     popoverTargetAction: string;
  24148     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/popoverTargetElement) */
  24149     popoverTargetElement: Element | null;
  24150 }
  24151 
  24152 /**
  24153  * The **`ProcessingInstruction`** interface represents a processing instruction; that is, a Node which embeds an instruction targeting a specific application but that can be ignored by any other applications which don't recognize the instruction.
  24154  *
  24155  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProcessingInstruction)
  24156  */
  24157 interface ProcessingInstruction extends CharacterData, LinkStyle {
  24158     readonly ownerDocument: Document;
  24159     /**
  24160      * The read-only **`target`** property of the ProcessingInstruction interface represent the application to which the `ProcessingInstruction` is targeted.
  24161      *
  24162      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProcessingInstruction/target)
  24163      */
  24164     readonly target: string;
  24165 }
  24166 
  24167 declare var ProcessingInstruction: {
  24168     prototype: ProcessingInstruction;
  24169     new(): ProcessingInstruction;
  24170 };
  24171 
  24172 /**
  24173  * The **`ProgressEvent`** interface represents events that measure the progress of an underlying process, like an HTTP request (e.g., an `XMLHttpRequest`, or the loading of the underlying resource of an img, audio, video, style or link).
  24174  *
  24175  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent)
  24176  */
  24177 interface ProgressEvent<T extends EventTarget = EventTarget> extends Event {
  24178     /**
  24179      * The **`ProgressEvent.lengthComputable`** read-only property is a boolean flag indicating if the resource concerned by the A boolean.
  24180      *
  24181      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/lengthComputable)
  24182      */
  24183     readonly lengthComputable: boolean;
  24184     /**
  24185      * The **`ProgressEvent.loaded`** read-only property is a number indicating the size of the data already transmitted or processed.
  24186      *
  24187      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/loaded)
  24188      */
  24189     readonly loaded: number;
  24190     readonly target: T | null;
  24191     /**
  24192      * The **`ProgressEvent.total`** read-only property is a number indicating the total size of the data being transmitted or processed.
  24193      *
  24194      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/total)
  24195      */
  24196     readonly total: number;
  24197 }
  24198 
  24199 declare var ProgressEvent: {
  24200     prototype: ProgressEvent;
  24201     new(type: string, eventInitDict?: ProgressEventInit): ProgressEvent;
  24202 };
  24203 
  24204 /**
  24205  * The **`PromiseRejectionEvent`** interface represents events which are sent to the global script context when JavaScript Promises are rejected.
  24206  *
  24207  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent)
  24208  */
  24209 interface PromiseRejectionEvent extends Event {
  24210     /**
  24211      * The PromiseRejectionEvent interface's **`promise`** read-only property indicates the JavaScript rejected.
  24212      *
  24213      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent/promise)
  24214      */
  24215     readonly promise: Promise<any>;
  24216     /**
  24217      * The PromiseRejectionEvent **`reason`** read-only property is any JavaScript value or Object which provides the reason passed into Promise.reject().
  24218      *
  24219      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent/reason)
  24220      */
  24221     readonly reason: any;
  24222 }
  24223 
  24224 declare var PromiseRejectionEvent: {
  24225     prototype: PromiseRejectionEvent;
  24226     new(type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent;
  24227 };
  24228 
  24229 /**
  24230  * The **`PublicKeyCredential`** interface provides information about a public key / private key pair, which is a credential for logging in to a service using an un-phishable and data-breach resistant asymmetric key pair instead of a password.
  24231  * Available only in secure contexts.
  24232  *
  24233  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential)
  24234  */
  24235 interface PublicKeyCredential extends Credential {
  24236     /**
  24237      * The **`authenticatorAttachment`** read-only property of the PublicKeyCredential interface is a string that indicates the general category of authenticator used during the associated CredentialsContainer.create() or CredentialsContainer.get() call.
  24238      *
  24239      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/authenticatorAttachment)
  24240      */
  24241     readonly authenticatorAttachment: string | null;
  24242     /**
  24243      * The **`rawId`** read-only property of the containing the identifier of the credentials.
  24244      *
  24245      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/rawId)
  24246      */
  24247     readonly rawId: ArrayBuffer;
  24248     /**
  24249      * The **`response`** read-only property of the object which is sent from the authenticator to the user agent for the creation/fetching of credentials.
  24250      *
  24251      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/response)
  24252      */
  24253     readonly response: AuthenticatorResponse;
  24254     /**
  24255      * The **`getClientExtensionResults()`** method of the PublicKeyCredential interface returns a map between the identifiers of extensions requested during credential creation or authentication, and their results after processing by the user agent.
  24256      *
  24257      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/getClientExtensionResults)
  24258      */
  24259     getClientExtensionResults(): AuthenticationExtensionsClientOutputs;
  24260     /**
  24261      * The **`toJSON()`** method of the PublicKeyCredential interface returns a JSON type representation of a PublicKeyCredential.
  24262      *
  24263      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/toJSON)
  24264      */
  24265     toJSON(): PublicKeyCredentialJSON;
  24266 }
  24267 
  24268 declare var PublicKeyCredential: {
  24269     prototype: PublicKeyCredential;
  24270     new(): PublicKeyCredential;
  24271     /**
  24272      * The **`getClientCapabilities()`** static method of the PublicKeyCredential interface returns a Promise that resolves with an object that can be used to check whether or not particular WebAuthn client capabilities and extensions are supported.
  24273      *
  24274      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/getClientCapabilities_static)
  24275      */
  24276     getClientCapabilities(): Promise<PublicKeyCredentialClientCapabilities>;
  24277     /**
  24278      * The **`isConditionalMediationAvailable()`** static method of the PublicKeyCredential interface returns a Promise which resolves to `true` if conditional mediation is available.
  24279      *
  24280      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/isConditionalMediationAvailable_static)
  24281      */
  24282     isConditionalMediationAvailable(): Promise<boolean>;
  24283     /**
  24284      * The **`isUserVerifyingPlatformAuthenticatorAvailable()`** static method of the PublicKeyCredential interface returns a Promise which resolves to `true` if a user-verifying platform authenticator is present.
  24285      *
  24286      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/isUserVerifyingPlatformAuthenticatorAvailable_static)
  24287      */
  24288     isUserVerifyingPlatformAuthenticatorAvailable(): Promise<boolean>;
  24289     /**
  24290      * The **`parseCreationOptionsFromJSON()`** static method of the PublicKeyCredential interface creates a PublicKeyCredentialCreationOptions object from a JSON representation of its properties.
  24291      *
  24292      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/parseCreationOptionsFromJSON_static)
  24293      */
  24294     parseCreationOptionsFromJSON(options: PublicKeyCredentialCreationOptionsJSON): PublicKeyCredentialCreationOptions;
  24295     /**
  24296      * The **`parseRequestOptionsFromJSON()`** static method of the PublicKeyCredential interface converts a JSON type representation into a PublicKeyCredentialRequestOptions instance.
  24297      *
  24298      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/parseRequestOptionsFromJSON_static)
  24299      */
  24300     parseRequestOptionsFromJSON(options: PublicKeyCredentialRequestOptionsJSON): PublicKeyCredentialRequestOptions;
  24301 };
  24302 
  24303 /**
  24304  * The **`PushManager`** interface of the Push API provides a way to receive notifications from third-party servers as well as request URLs for push notifications.
  24305  * Available only in secure contexts.
  24306  *
  24307  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager)
  24308  */
  24309 interface PushManager {
  24310     /**
  24311      * The **`PushManager.getSubscription()`** method of the PushManager interface retrieves an existing push subscription.
  24312      *
  24313      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/getSubscription)
  24314      */
  24315     getSubscription(): Promise<PushSubscription | null>;
  24316     /**
  24317      * The **`permissionState()`** method of the string indicating the permission state of the push manager.
  24318      *
  24319      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/permissionState)
  24320      */
  24321     permissionState(options?: PushSubscriptionOptionsInit): Promise<PermissionState>;
  24322     /**
  24323      * The **`subscribe()`** method of the PushManager interface subscribes to a push service.
  24324      *
  24325      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/subscribe)
  24326      */
  24327     subscribe(options?: PushSubscriptionOptionsInit): Promise<PushSubscription>;
  24328 }
  24329 
  24330 declare var PushManager: {
  24331     prototype: PushManager;
  24332     new(): PushManager;
  24333     /**
  24334      * The **`supportedContentEncodings`** read-only static property of the PushManager interface returns an array of supported content codings that can be used to encrypt the payload of a push message.
  24335      *
  24336      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/supportedContentEncodings_static)
  24337      */
  24338     readonly supportedContentEncodings: ReadonlyArray<string>;
  24339 };
  24340 
  24341 /**
  24342  * The `PushSubscription` interface of the Push API provides a subscription's URL endpoint along with the public key and secrets that should be used for encrypting push messages to this subscription.
  24343  * Available only in secure contexts.
  24344  *
  24345  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription)
  24346  */
  24347 interface PushSubscription {
  24348     /**
  24349      * The **`endpoint`** read-only property of the the endpoint associated with the push subscription.
  24350      *
  24351      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/endpoint)
  24352      */
  24353     readonly endpoint: string;
  24354     /**
  24355      * The **`expirationTime`** read-only property of the of the subscription expiration time associated with the push subscription, if there is one, or `null` otherwise.
  24356      *
  24357      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/expirationTime)
  24358      */
  24359     readonly expirationTime: EpochTimeStamp | null;
  24360     /**
  24361      * The **`options`** read-only property of the PushSubscription interface is an object containing the options used to create the subscription.
  24362      *
  24363      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/options)
  24364      */
  24365     readonly options: PushSubscriptionOptions;
  24366     /**
  24367      * The `getKey()` method of the PushSubscription interface returns an ArrayBuffer representing a client public key, which can then be sent to a server and used in encrypting push message data.
  24368      *
  24369      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/getKey)
  24370      */
  24371     getKey(name: PushEncryptionKeyName): ArrayBuffer | null;
  24372     /**
  24373      * The `toJSON()` method of the PushSubscription interface is a standard serializer: it returns a JSON representation of the subscription properties, providing a useful shortcut.
  24374      *
  24375      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/toJSON)
  24376      */
  24377     toJSON(): PushSubscriptionJSON;
  24378     /**
  24379      * The `unsubscribe()` method of the PushSubscription interface returns a Promise that resolves to a boolean value when the current subscription is successfully unsubscribed.
  24380      *
  24381      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/unsubscribe)
  24382      */
  24383     unsubscribe(): Promise<boolean>;
  24384 }
  24385 
  24386 declare var PushSubscription: {
  24387     prototype: PushSubscription;
  24388     new(): PushSubscription;
  24389 };
  24390 
  24391 /**
  24392  * The **`PushSubscriptionOptions`** interface of the Push API represents the options associated with a push subscription.
  24393  * Available only in secure contexts.
  24394  *
  24395  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscriptionOptions)
  24396  */
  24397 interface PushSubscriptionOptions {
  24398     /**
  24399      * The **`applicationServerKey`** read-only property of the PushSubscriptionOptions interface contains the public key used by the push server.
  24400      *
  24401      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscriptionOptions/applicationServerKey)
  24402      */
  24403     readonly applicationServerKey: ArrayBuffer | null;
  24404     /**
  24405      * The **`userVisibleOnly`** read-only property of the PushSubscriptionOptions interface indicates if the returned push subscription will only be used for messages whose effect is made visible to the user.
  24406      *
  24407      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscriptionOptions/userVisibleOnly)
  24408      */
  24409     readonly userVisibleOnly: boolean;
  24410 }
  24411 
  24412 declare var PushSubscriptionOptions: {
  24413     prototype: PushSubscriptionOptions;
  24414     new(): PushSubscriptionOptions;
  24415 };
  24416 
  24417 /**
  24418  * The **`RTCCertificate`** interface of the WebRTC API provides an object representing a certificate that an RTCPeerConnection uses to authenticate.
  24419  *
  24420  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCCertificate)
  24421  */
  24422 interface RTCCertificate {
  24423     /**
  24424      * The read-only **`expires`** property of the RTCCertificate interface returns the expiration date of the certificate.
  24425      *
  24426      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCCertificate/expires)
  24427      */
  24428     readonly expires: EpochTimeStamp;
  24429     /**
  24430      * The **`getFingerprints()`** method of the **RTCCertificate** interface is used to get an array of certificate fingerprints.
  24431      *
  24432      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCCertificate/getFingerprints)
  24433      */
  24434     getFingerprints(): RTCDtlsFingerprint[];
  24435 }
  24436 
  24437 declare var RTCCertificate: {
  24438     prototype: RTCCertificate;
  24439     new(): RTCCertificate;
  24440 };
  24441 
  24442 interface RTCDTMFSenderEventMap {
  24443     "tonechange": RTCDTMFToneChangeEvent;
  24444 }
  24445 
  24446 /**
  24447  * The **`RTCDTMFSender`** interface provides a mechanism for transmitting DTMF codes on a WebRTC RTCPeerConnection.
  24448  *
  24449  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender)
  24450  */
  24451 interface RTCDTMFSender extends EventTarget {
  24452     /**
  24453      * The **`canInsertDTMF`** read-only property of the RTCDTMFSender interface returns a boolean value which indicates whether the `RTCDTMFSender` is capable of sending DTMF tones over the RTCPeerConnection.
  24454      *
  24455      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/canInsertDTMF)
  24456      */
  24457     readonly canInsertDTMF: boolean;
  24458     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/tonechange_event) */
  24459     ontonechange: ((this: RTCDTMFSender, ev: RTCDTMFToneChangeEvent) => any) | null;
  24460     /**
  24461      * The RTCDTMFSender interface's toneBuffer property returns a string containing a list of the DTMF tones currently queued for sending to the remote peer over the RTCPeerConnection.
  24462      *
  24463      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/toneBuffer)
  24464      */
  24465     readonly toneBuffer: string;
  24466     /**
  24467      * The **`insertDTMF()`** method of the RTCDTMFSender interface sends DTMF tones to the remote peer over the RTCPeerConnection.
  24468      *
  24469      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/insertDTMF)
  24470      */
  24471     insertDTMF(tones: string, duration?: number, interToneGap?: number): void;
  24472     addEventListener<K extends keyof RTCDTMFSenderEventMap>(type: K, listener: (this: RTCDTMFSender, ev: RTCDTMFSenderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  24473     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  24474     removeEventListener<K extends keyof RTCDTMFSenderEventMap>(type: K, listener: (this: RTCDTMFSender, ev: RTCDTMFSenderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  24475     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  24476 }
  24477 
  24478 declare var RTCDTMFSender: {
  24479     prototype: RTCDTMFSender;
  24480     new(): RTCDTMFSender;
  24481 };
  24482 
  24483 /**
  24484  * The **`RTCDTMFToneChangeEvent`** interface represents events sent to indicate that DTMF tones have started or finished playing.
  24485  *
  24486  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFToneChangeEvent)
  24487  */
  24488 interface RTCDTMFToneChangeEvent extends Event {
  24489     /**
  24490      * The read-only property **`RTCDTMFToneChangeEvent.tone`** returns the DTMF character which has just begun to play, or an empty string (`''`).
  24491      *
  24492      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFToneChangeEvent/tone)
  24493      */
  24494     readonly tone: string;
  24495 }
  24496 
  24497 declare var RTCDTMFToneChangeEvent: {
  24498     prototype: RTCDTMFToneChangeEvent;
  24499     new(type: string, eventInitDict?: RTCDTMFToneChangeEventInit): RTCDTMFToneChangeEvent;
  24500 };
  24501 
  24502 interface RTCDataChannelEventMap {
  24503     "bufferedamountlow": Event;
  24504     "close": Event;
  24505     "closing": Event;
  24506     "error": RTCErrorEvent;
  24507     "message": MessageEvent;
  24508     "open": Event;
  24509 }
  24510 
  24511 /**
  24512  * The **`RTCDataChannel`** interface represents a network channel which can be used for bidirectional peer-to-peer transfers of arbitrary data.
  24513  *
  24514  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel)
  24515  */
  24516 interface RTCDataChannel extends EventTarget {
  24517     /**
  24518      * The property **`binaryType`** on the the type of object which should be used to represent binary data received on the RTCDataChannel.
  24519      *
  24520      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/binaryType)
  24521      */
  24522     binaryType: BinaryType;
  24523     /**
  24524      * The read-only `RTCDataChannel` property **`bufferedAmount`** returns the number of bytes of data currently queued to be sent over the data channel.
  24525      *
  24526      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/bufferedAmount)
  24527      */
  24528     readonly bufferedAmount: number;
  24529     /**
  24530      * The `RTCDataChannel` property **`bufferedAmountLowThreshold`** is used to specify the number of bytes of buffered outgoing data that is considered 'low.' The default value is 0\.
  24531      *
  24532      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/bufferedAmountLowThreshold)
  24533      */
  24534     bufferedAmountLowThreshold: number;
  24535     /**
  24536      * The read-only `RTCDataChannel` property **`id`** returns an ID number (between 0 and 65,534) which uniquely identifies the RTCDataChannel.
  24537      *
  24538      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/id)
  24539      */
  24540     readonly id: number | null;
  24541     /**
  24542      * The read-only `RTCDataChannel` property **`label`** returns a string containing a name describing the data channel.
  24543      *
  24544      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/label)
  24545      */
  24546     readonly label: string;
  24547     /**
  24548      * The read-only `RTCDataChannel` property **`maxPacketLifeTime`** returns the amount of time, in milliseconds, the browser is allowed to take to attempt to transmit a message, as set when the data channel was created, or `null`.
  24549      *
  24550      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/maxPacketLifeTime)
  24551      */
  24552     readonly maxPacketLifeTime: number | null;
  24553     /**
  24554      * The read-only `RTCDataChannel` property **`maxRetransmits`** returns the maximum number of times the browser should try to retransmit a message before giving up, as set when the data channel was created, or `null`, which indicates that there is no maximum.
  24555      *
  24556      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/maxRetransmits)
  24557      */
  24558     readonly maxRetransmits: number | null;
  24559     /**
  24560      * The read-only `RTCDataChannel` property **`negotiated`** indicates whether the (`true`) or by the WebRTC layer (`false`).
  24561      *
  24562      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/negotiated)
  24563      */
  24564     readonly negotiated: boolean;
  24565     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/bufferedamountlow_event) */
  24566     onbufferedamountlow: ((this: RTCDataChannel, ev: Event) => any) | null;
  24567     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/close_event) */
  24568     onclose: ((this: RTCDataChannel, ev: Event) => any) | null;
  24569     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/closing_event) */
  24570     onclosing: ((this: RTCDataChannel, ev: Event) => any) | null;
  24571     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/error_event) */
  24572     onerror: ((this: RTCDataChannel, ev: RTCErrorEvent) => any) | null;
  24573     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/message_event) */
  24574     onmessage: ((this: RTCDataChannel, ev: MessageEvent) => any) | null;
  24575     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/open_event) */
  24576     onopen: ((this: RTCDataChannel, ev: Event) => any) | null;
  24577     /**
  24578      * The read-only `RTCDataChannel` property **`ordered`** indicates whether or not the data channel guarantees in-order delivery of messages; the default is `true`, which indicates that the data channel is indeed ordered.
  24579      *
  24580      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/ordered)
  24581      */
  24582     readonly ordered: boolean;
  24583     /**
  24584      * The read-only `RTCDataChannel` property **`protocol`** returns a string containing the name of the subprotocol in use.
  24585      *
  24586      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/protocol)
  24587      */
  24588     readonly protocol: string;
  24589     /**
  24590      * The read-only `RTCDataChannel` property **`readyState`** returns a string which indicates the state of the data channel's underlying data connection.
  24591      *
  24592      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/readyState)
  24593      */
  24594     readonly readyState: RTCDataChannelState;
  24595     /**
  24596      * The **`RTCDataChannel.close()`** method closes the closure of the channel.
  24597      *
  24598      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/close)
  24599      */
  24600     close(): void;
  24601     /**
  24602      * The **`send()`** method of the remote peer.
  24603      *
  24604      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/send)
  24605      */
  24606     send(data: string): void;
  24607     send(data: Blob): void;
  24608     send(data: ArrayBuffer): void;
  24609     send(data: ArrayBufferView<ArrayBuffer>): void;
  24610     addEventListener<K extends keyof RTCDataChannelEventMap>(type: K, listener: (this: RTCDataChannel, ev: RTCDataChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  24611     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  24612     removeEventListener<K extends keyof RTCDataChannelEventMap>(type: K, listener: (this: RTCDataChannel, ev: RTCDataChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  24613     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  24614 }
  24615 
  24616 declare var RTCDataChannel: {
  24617     prototype: RTCDataChannel;
  24618     new(): RTCDataChannel;
  24619 };
  24620 
  24621 /**
  24622  * The **`RTCDataChannelEvent`** interface represents an event related to a specific RTCDataChannel.
  24623  *
  24624  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannelEvent)
  24625  */
  24626 interface RTCDataChannelEvent extends Event {
  24627     /**
  24628      * The read-only property **`RTCDataChannelEvent.channel`** returns the RTCDataChannel associated with the event.
  24629      *
  24630      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannelEvent/channel)
  24631      */
  24632     readonly channel: RTCDataChannel;
  24633 }
  24634 
  24635 declare var RTCDataChannelEvent: {
  24636     prototype: RTCDataChannelEvent;
  24637     new(type: string, eventInitDict: RTCDataChannelEventInit): RTCDataChannelEvent;
  24638 };
  24639 
  24640 interface RTCDtlsTransportEventMap {
  24641     "error": RTCErrorEvent;
  24642     "statechange": Event;
  24643 }
  24644 
  24645 /**
  24646  * The **`RTCDtlsTransport`** interface provides access to information about the Datagram Transport Layer Security (**DTLS**) transport over which a RTCPeerConnection's RTP and RTCP packets are sent and received by its RTCRtpSender and RTCRtpReceiver objects.
  24647  *
  24648  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDtlsTransport)
  24649  */
  24650 interface RTCDtlsTransport extends EventTarget {
  24651     /**
  24652      * The **`iceTransport`** read-only property of the **RTCDtlsTransport** interface contains a reference to the underlying RTCIceTransport.
  24653      *
  24654      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDtlsTransport/iceTransport)
  24655      */
  24656     readonly iceTransport: RTCIceTransport;
  24657     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDtlsTransport/error_event) */
  24658     onerror: ((this: RTCDtlsTransport, ev: RTCErrorEvent) => any) | null;
  24659     onstatechange: ((this: RTCDtlsTransport, ev: Event) => any) | null;
  24660     /**
  24661      * The **`state`** read-only property of the Datagram Transport Layer Security (**DTLS**) transport state.
  24662      *
  24663      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDtlsTransport/state)
  24664      */
  24665     readonly state: RTCDtlsTransportState;
  24666     getRemoteCertificates(): ArrayBuffer[];
  24667     addEventListener<K extends keyof RTCDtlsTransportEventMap>(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  24668     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  24669     removeEventListener<K extends keyof RTCDtlsTransportEventMap>(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  24670     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  24671 }
  24672 
  24673 declare var RTCDtlsTransport: {
  24674     prototype: RTCDtlsTransport;
  24675     new(): RTCDtlsTransport;
  24676 };
  24677 
  24678 /**
  24679  * The **`RTCEncodedAudioFrame`** of the WebRTC API represents an encoded audio frame in the WebRTC receiver or sender pipeline, which may be modified using a WebRTC Encoded Transform.
  24680  *
  24681  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame)
  24682  */
  24683 interface RTCEncodedAudioFrame {
  24684     /**
  24685      * The **`data`** property of the RTCEncodedAudioFrame interface returns a buffer containing the data for an encoded frame.
  24686      *
  24687      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/data)
  24688      */
  24689     data: ArrayBuffer;
  24690     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/timestamp) */
  24691     readonly timestamp: number;
  24692     /**
  24693      * The **`getMetadata()`** method of the RTCEncodedAudioFrame interface returns an object containing the metadata associated with the frame.
  24694      *
  24695      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/getMetadata)
  24696      */
  24697     getMetadata(): RTCEncodedAudioFrameMetadata;
  24698 }
  24699 
  24700 declare var RTCEncodedAudioFrame: {
  24701     prototype: RTCEncodedAudioFrame;
  24702     new(): RTCEncodedAudioFrame;
  24703 };
  24704 
  24705 /**
  24706  * The **`RTCEncodedVideoFrame`** of the WebRTC API represents an encoded video frame in the WebRTC receiver or sender pipeline, which may be modified using a WebRTC Encoded Transform.
  24707  *
  24708  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame)
  24709  */
  24710 interface RTCEncodedVideoFrame {
  24711     /**
  24712      * The **`data`** property of the RTCEncodedVideoFrame interface returns a buffer containing the frame data.
  24713      *
  24714      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/data)
  24715      */
  24716     data: ArrayBuffer;
  24717     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/timestamp) */
  24718     readonly timestamp: number;
  24719     /**
  24720      * The **`type`** read-only property of the RTCEncodedVideoFrame interface indicates whether this frame is a key frame, delta frame, or empty frame.
  24721      *
  24722      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/type)
  24723      */
  24724     readonly type: RTCEncodedVideoFrameType;
  24725     /**
  24726      * The **`getMetadata()`** method of the RTCEncodedVideoFrame interface returns an object containing the metadata associated with the frame.
  24727      *
  24728      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/getMetadata)
  24729      */
  24730     getMetadata(): RTCEncodedVideoFrameMetadata;
  24731 }
  24732 
  24733 declare var RTCEncodedVideoFrame: {
  24734     prototype: RTCEncodedVideoFrame;
  24735     new(): RTCEncodedVideoFrame;
  24736 };
  24737 
  24738 /**
  24739  * The **`RTCError`** interface describes an error which has occurred while handling WebRTC operations.
  24740  *
  24741  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCError)
  24742  */
  24743 interface RTCError extends DOMException {
  24744     /**
  24745      * The RTCError interface's read-only **`errorDetail`** property is a string indicating the WebRTC-specific error code that occurred.
  24746      *
  24747      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCError/errorDetail)
  24748      */
  24749     readonly errorDetail: RTCErrorDetailType;
  24750     /**
  24751      * The RTCError read-only property **`receivedAlert`** specifies the fatal DTLS error which resulted in an alert being received from the remote peer.
  24752      *
  24753      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCError/receivedAlert)
  24754      */
  24755     readonly receivedAlert: number | null;
  24756     /**
  24757      * The read-only **`sctpCauseCode`** property in an why the SCTP negotiation failed, if the `RTCError` represents an SCTP error.
  24758      *
  24759      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCError/sctpCauseCode)
  24760      */
  24761     readonly sctpCauseCode: number | null;
  24762     /**
  24763      * The RTCError interface's read-only property **`sdpLineNumber`** specifies the line number within the An unsigned integer value indicating the line within the SDP at which the syntax error described by the `RTCError` object occurred.
  24764      *
  24765      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCError/sdpLineNumber)
  24766      */
  24767     readonly sdpLineNumber: number | null;
  24768     /**
  24769      * The read-only **`sentAlert`** property in an while sending data to the remote peer, if the error represents an outbound DTLS error.
  24770      *
  24771      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCError/sentAlert)
  24772      */
  24773     readonly sentAlert: number | null;
  24774 }
  24775 
  24776 declare var RTCError: {
  24777     prototype: RTCError;
  24778     new(init: RTCErrorInit, message?: string): RTCError;
  24779 };
  24780 
  24781 /**
  24782  * The WebRTC API's **`RTCErrorEvent`** interface represents an error sent to a WebRTC object.
  24783  *
  24784  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCErrorEvent)
  24785  */
  24786 interface RTCErrorEvent extends Event {
  24787     /**
  24788      * The read-only RTCErrorEvent property **`error`** contains an RTCError object describing the details of the error which the event is announcing.
  24789      *
  24790      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCErrorEvent/error)
  24791      */
  24792     readonly error: RTCError;
  24793 }
  24794 
  24795 declare var RTCErrorEvent: {
  24796     prototype: RTCErrorEvent;
  24797     new(type: string, eventInitDict: RTCErrorEventInit): RTCErrorEvent;
  24798 };
  24799 
  24800 /**
  24801  * The **`RTCIceCandidate`** interface—part of the WebRTC API—represents a candidate Interactive Connectivity Establishment (ICE) configuration which may be used to establish an RTCPeerConnection.
  24802  *
  24803  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate)
  24804  */
  24805 interface RTCIceCandidate {
  24806     /**
  24807      * The **RTCIceCandidate** interface's read-only **`address`** property is a string providing the IP address of the device which is the source of the candidate.
  24808      *
  24809      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/address)
  24810      */
  24811     readonly address: string | null;
  24812     /**
  24813      * The read-only property **`candidate`** on the RTCIceCandidate interface returns a string describing the candidate in detail.
  24814      *
  24815      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/candidate)
  24816      */
  24817     readonly candidate: string;
  24818     /**
  24819      * The read-only **`component`** property on the RTCIceCandidate interface is a string which indicates whether the candidate is an RTP or an RTCP candidate.
  24820      *
  24821      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/component)
  24822      */
  24823     readonly component: RTCIceComponent | null;
  24824     /**
  24825      * The **`foundation`** read-only property of the RTCIceCandidate interface is a string that allows correlation of candidates from a common network path on multiple RTCIceTransport objects.
  24826      *
  24827      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/foundation)
  24828      */
  24829     readonly foundation: string | null;
  24830     /**
  24831      * The **RTCIceCandidate** interface's read-only **`port`** property contains the port number on the device at the address given by RTCIceCandidate.address at which the candidate's peer can be reached.
  24832      *
  24833      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/port)
  24834      */
  24835     readonly port: number | null;
  24836     /**
  24837      * The **RTCIceCandidate** interface's read-only **`priority`** property specifies the candidate's priority according to the remote peer; the higher this value is, the better the remote peer considers the candidate to be.
  24838      *
  24839      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/priority)
  24840      */
  24841     readonly priority: number | null;
  24842     /**
  24843      * The **RTCIceCandidate** interface's read-only **`protocol`** property is a string which indicates whether the candidate uses UDP or TCP as its transport protocol.
  24844      *
  24845      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/protocol)
  24846      */
  24847     readonly protocol: RTCIceProtocol | null;
  24848     /**
  24849      * The **RTCIceCandidate** interface's read-only **`relatedAddress`** property is a string indicating the **related address** of a relay or reflexive candidate.
  24850      *
  24851      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/relatedAddress)
  24852      */
  24853     readonly relatedAddress: string | null;
  24854     /**
  24855      * The **RTCIceCandidate** interface's read-only **`relatedPort`** property indicates the port number of reflexive or relay candidates.
  24856      *
  24857      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/relatedPort)
  24858      */
  24859     readonly relatedPort: number | null;
  24860     /**
  24861      * The read-only **`sdpMLineIndex`** property on the RTCIceCandidate interface is a zero-based index of the m-line describing the media associated with the candidate.
  24862      *
  24863      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/sdpMLineIndex)
  24864      */
  24865     readonly sdpMLineIndex: number | null;
  24866     /**
  24867      * The read-only property **`sdpMid`** on the RTCIceCandidate interface returns a string specifying the media stream identification tag of the media component with which the candidate is associated.
  24868      *
  24869      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/sdpMid)
  24870      */
  24871     readonly sdpMid: string | null;
  24872     /**
  24873      * The **RTCIceCandidate** interface's read-only **`tcpType`** property is included on TCP candidates to provide additional details about the candidate type.
  24874      *
  24875      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/tcpType)
  24876      */
  24877     readonly tcpType: RTCIceTcpCandidateType | null;
  24878     /**
  24879      * The **RTCIceCandidate** interface's read-only **`type`** specifies the type of candidate the object represents.
  24880      *
  24881      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/type)
  24882      */
  24883     readonly type: RTCIceCandidateType | null;
  24884     /**
  24885      * The read-only **`usernameFragment`** property on the RTCIceCandidate interface is a string indicating the username fragment ('ufrag') that uniquely identifies a single ICE interaction session.
  24886      *
  24887      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/usernameFragment)
  24888      */
  24889     readonly usernameFragment: string | null;
  24890     /**
  24891      * The RTCIceCandidate method **`toJSON()`** converts the `RTCIceCandidate` on which it's called into JSON.
  24892      *
  24893      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/toJSON)
  24894      */
  24895     toJSON(): RTCIceCandidateInit;
  24896 }
  24897 
  24898 declare var RTCIceCandidate: {
  24899     prototype: RTCIceCandidate;
  24900     new(candidateInitDict?: RTCLocalIceCandidateInit): RTCIceCandidate;
  24901 };
  24902 
  24903 /** The **`RTCIceCandidatePair`** dictionary describes a pair of ICE candidates which together comprise a description of a viable connection between two WebRTC endpoints. */
  24904 interface RTCIceCandidatePair {
  24905     /** The **`local`** property of the **RTCIceCandidatePair** dictionary specifies the RTCIceCandidate which describes the configuration of the local end of a viable WebRTC connection. */
  24906     local: RTCIceCandidate;
  24907     /** The **`remote`** property of the **RTCIceCandidatePair** dictionary specifies the viable WebRTC connection. */
  24908     remote: RTCIceCandidate;
  24909 }
  24910 
  24911 interface RTCIceTransportEventMap {
  24912     "gatheringstatechange": Event;
  24913     "selectedcandidatepairchange": Event;
  24914     "statechange": Event;
  24915 }
  24916 
  24917 /**
  24918  * The **`RTCIceTransport`** interface provides access to information about the ICE transport layer over which the data is being sent and received.
  24919  *
  24920  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceTransport)
  24921  */
  24922 interface RTCIceTransport extends EventTarget {
  24923     /**
  24924      * The **`gatheringState`** read-only property of the RTCIceTransport interface returns a string that indicates the current gathering state of the ICE agent for this transport: `'new'`, `'gathering'`, or `'complete'`.
  24925      *
  24926      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceTransport/gatheringState)
  24927      */
  24928     readonly gatheringState: RTCIceGathererState;
  24929     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceTransport/gatheringstatechange_event) */
  24930     ongatheringstatechange: ((this: RTCIceTransport, ev: Event) => any) | null;
  24931     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceTransport/selectedcandidatepairchange_event) */
  24932     onselectedcandidatepairchange: ((this: RTCIceTransport, ev: Event) => any) | null;
  24933     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceTransport/statechange_event) */
  24934     onstatechange: ((this: RTCIceTransport, ev: Event) => any) | null;
  24935     /**
  24936      * The **`state`** read-only property of the RTCIceTransport interface returns the current state of the ICE transport, so you can determine the state of ICE gathering in which the ICE agent currently is operating.
  24937      *
  24938      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceTransport/state)
  24939      */
  24940     readonly state: RTCIceTransportState;
  24941     /**
  24942      * The **`getSelectedCandidatePair()`** method of the RTCIceTransport interface returns an RTCIceCandidatePair object containing the current best-choice pair of ICE candidates describing the configuration of the endpoints of the transport.
  24943      *
  24944      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceTransport/getSelectedCandidatePair)
  24945      */
  24946     getSelectedCandidatePair(): RTCIceCandidatePair | null;
  24947     addEventListener<K extends keyof RTCIceTransportEventMap>(type: K, listener: (this: RTCIceTransport, ev: RTCIceTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  24948     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  24949     removeEventListener<K extends keyof RTCIceTransportEventMap>(type: K, listener: (this: RTCIceTransport, ev: RTCIceTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  24950     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  24951 }
  24952 
  24953 declare var RTCIceTransport: {
  24954     prototype: RTCIceTransport;
  24955     new(): RTCIceTransport;
  24956 };
  24957 
  24958 interface RTCPeerConnectionEventMap {
  24959     "connectionstatechange": Event;
  24960     "datachannel": RTCDataChannelEvent;
  24961     "icecandidate": RTCPeerConnectionIceEvent;
  24962     "icecandidateerror": RTCPeerConnectionIceErrorEvent;
  24963     "iceconnectionstatechange": Event;
  24964     "icegatheringstatechange": Event;
  24965     "negotiationneeded": Event;
  24966     "signalingstatechange": Event;
  24967     "track": RTCTrackEvent;
  24968 }
  24969 
  24970 /**
  24971  * The **`RTCPeerConnection`** interface represents a WebRTC connection between the local computer and a remote peer.
  24972  *
  24973  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection)
  24974  */
  24975 interface RTCPeerConnection extends EventTarget {
  24976     /**
  24977      * The **`canTrickleIceCandidates`** read-only property of the RTCPeerConnection interface returns a boolean value which indicates whether or not the remote peer can accept trickled ICE candidates.
  24978      *
  24979      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/canTrickleIceCandidates)
  24980      */
  24981     readonly canTrickleIceCandidates: boolean | null;
  24982     /**
  24983      * The **`connectionState`** read-only property of the RTCPeerConnection interface indicates the current state of the peer connection by returning one of the following string values: `new`, `connecting`, `connected`, `disconnected`, `failed`, or `closed`.
  24984      *
  24985      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/connectionState)
  24986      */
  24987     readonly connectionState: RTCPeerConnectionState;
  24988     /**
  24989      * The **`currentLocalDescription`** read-only property of the RTCPeerConnection interface returns an RTCSessionDescription object describing the local end of the connection as it was most recently successfully negotiated since the last time the RTCPeerConnection finished negotiating and connecting to a remote peer.
  24990      *
  24991      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/currentLocalDescription)
  24992      */
  24993     readonly currentLocalDescription: RTCSessionDescription | null;
  24994     /**
  24995      * The **`currentRemoteDescription`** read-only property of the RTCPeerConnection interface returns an Also included is a list of any ICE candidates that may already have been generated by the ICE agent since the offer or answer represented by the description was first instantiated.
  24996      *
  24997      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/currentRemoteDescription)
  24998      */
  24999     readonly currentRemoteDescription: RTCSessionDescription | null;
  25000     /**
  25001      * The **`iceConnectionState`** read-only property of the RTCPeerConnection interface returns a string which state of the ICE agent associated with the RTCPeerConnection: `new`, `checking`, `connected`, `completed`, `failed`, `disconnected`, and `closed`.
  25002      *
  25003      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/iceConnectionState)
  25004      */
  25005     readonly iceConnectionState: RTCIceConnectionState;
  25006     /**
  25007      * The **`iceGatheringState`** read-only property of the RTCPeerConnection interface returns a string that describes the overall ICE gathering state for this connection.
  25008      *
  25009      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/iceGatheringState)
  25010      */
  25011     readonly iceGatheringState: RTCIceGatheringState;
  25012     /**
  25013      * The **`localDescription`** read-only property of the RTCPeerConnection interface returns an RTCSessionDescription describing the session for the local end of the connection.
  25014      *
  25015      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/localDescription)
  25016      */
  25017     readonly localDescription: RTCSessionDescription | null;
  25018     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/connectionstatechange_event) */
  25019     onconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
  25020     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/datachannel_event) */
  25021     ondatachannel: ((this: RTCPeerConnection, ev: RTCDataChannelEvent) => any) | null;
  25022     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/icecandidate_event) */
  25023     onicecandidate: ((this: RTCPeerConnection, ev: RTCPeerConnectionIceEvent) => any) | null;
  25024     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/icecandidateerror_event) */
  25025     onicecandidateerror: ((this: RTCPeerConnection, ev: RTCPeerConnectionIceErrorEvent) => any) | null;
  25026     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/iceconnectionstatechange_event) */
  25027     oniceconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
  25028     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/icegatheringstatechange_event) */
  25029     onicegatheringstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
  25030     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/negotiationneeded_event) */
  25031     onnegotiationneeded: ((this: RTCPeerConnection, ev: Event) => any) | null;
  25032     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/signalingstatechange_event) */
  25033     onsignalingstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
  25034     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/track_event) */
  25035     ontrack: ((this: RTCPeerConnection, ev: RTCTrackEvent) => any) | null;
  25036     /**
  25037      * The **`pendingLocalDescription`** read-only property of the RTCPeerConnection interface returns an RTCSessionDescription object describing a pending configuration change for the local end of the connection.
  25038      *
  25039      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/pendingLocalDescription)
  25040      */
  25041     readonly pendingLocalDescription: RTCSessionDescription | null;
  25042     /**
  25043      * The **`pendingRemoteDescription`** read-only property of the RTCPeerConnection interface returns an RTCSessionDescription object describing a pending configuration change for the remote end of the connection.
  25044      *
  25045      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/pendingRemoteDescription)
  25046      */
  25047     readonly pendingRemoteDescription: RTCSessionDescription | null;
  25048     /**
  25049      * The **`remoteDescription`** read-only property of the RTCPeerConnection interface returns a RTCSessionDescription describing the session (which includes configuration and media information) for the remote end of the connection.
  25050      *
  25051      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/remoteDescription)
  25052      */
  25053     readonly remoteDescription: RTCSessionDescription | null;
  25054     /**
  25055      * The **`sctp`** read-only property of the RTCPeerConnection interface returns an RTCSctpTransport describing the SCTP transport over which SCTP data is being sent and received.
  25056      *
  25057      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/sctp)
  25058      */
  25059     readonly sctp: RTCSctpTransport | null;
  25060     /**
  25061      * The **`signalingState`** read-only property of the RTCPeerConnection interface returns a string value describing the state of the signaling process on the local end of the connection while connecting or reconnecting to another peer.
  25062      *
  25063      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/signalingState)
  25064      */
  25065     readonly signalingState: RTCSignalingState;
  25066     /**
  25067      * The **`addIceCandidate()`** method of the RTCPeerConnection interface adds a new remote candidate to the connection's remote description, which describes the state of the remote end of the connection.
  25068      *
  25069      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addIceCandidate)
  25070      */
  25071     addIceCandidate(candidate?: RTCIceCandidateInit | null): Promise<void>;
  25072     /** @deprecated */
  25073     addIceCandidate(candidate: RTCIceCandidateInit | null, successCallback: VoidFunction, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;
  25074     /**
  25075      * The **`addTrack()`** method of the RTCPeerConnection interface adds a new media track to the set of tracks which will be transmitted to the other peer.
  25076      *
  25077      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addTrack)
  25078      */
  25079     addTrack(track: MediaStreamTrack, ...streams: MediaStream[]): RTCRtpSender;
  25080     /**
  25081      * The **`addTransceiver()`** method of the RTCPeerConnection interface creates a new RTCRtpTransceiver and adds it to the set of transceivers associated with the `RTCPeerConnection`.
  25082      *
  25083      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addTransceiver)
  25084      */
  25085     addTransceiver(trackOrKind: MediaStreamTrack | string, init?: RTCRtpTransceiverInit): RTCRtpTransceiver;
  25086     /**
  25087      * The **`close()`** method of the RTCPeerConnection interface closes the current peer connection.
  25088      *
  25089      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/close)
  25090      */
  25091     close(): void;
  25092     /**
  25093      * The **`createAnswer()`** method of the RTCPeerConnection interface creates an SDP answer to an offer received from a remote peer during the offer/answer negotiation of a WebRTC connection.
  25094      *
  25095      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createAnswer)
  25096      */
  25097     createAnswer(options?: RTCAnswerOptions): Promise<RTCSessionDescriptionInit>;
  25098     /** @deprecated */
  25099     createAnswer(successCallback: RTCSessionDescriptionCallback, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;
  25100     /**
  25101      * The **`createDataChannel()`** method of the RTCPeerConnection interface creates a new channel linked with the remote peer, over which any kind of data may be transmitted.
  25102      *
  25103      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createDataChannel)
  25104      */
  25105     createDataChannel(label: string, dataChannelDict?: RTCDataChannelInit): RTCDataChannel;
  25106     /**
  25107      * The **`createOffer()`** method of the RTCPeerConnection interface initiates the creation of an SDP offer for the purpose of starting a new WebRTC connection to a remote peer.
  25108      *
  25109      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createOffer)
  25110      */
  25111     createOffer(options?: RTCOfferOptions): Promise<RTCSessionDescriptionInit>;
  25112     /** @deprecated */
  25113     createOffer(successCallback: RTCSessionDescriptionCallback, failureCallback: RTCPeerConnectionErrorCallback, options?: RTCOfferOptions): Promise<void>;
  25114     /**
  25115      * The **`getConfiguration()`** method of the RTCPeerConnection interface returns an object which indicates the current configuration of the RTCPeerConnection on which the method is called.
  25116      *
  25117      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getConfiguration)
  25118      */
  25119     getConfiguration(): RTCConfiguration;
  25120     /**
  25121      * The **`getReceivers()`** method of the RTCPeerConnection interface returns an array of RTCRtpReceiver objects, each of which represents one RTP receiver.
  25122      *
  25123      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getReceivers)
  25124      */
  25125     getReceivers(): RTCRtpReceiver[];
  25126     /**
  25127      * The **`getSenders()`** method of the RTCPeerConnection interface returns an array of RTCRtpSender objects, each of which represents the RTP sender responsible for transmitting one track's data.
  25128      *
  25129      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getSenders)
  25130      */
  25131     getSenders(): RTCRtpSender[];
  25132     /**
  25133      * The **`getStats()`** method of the RTCPeerConnection interface returns a promise which resolves with data providing statistics about either the overall connection or about the specified MediaStreamTrack.
  25134      *
  25135      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getStats)
  25136      */
  25137     getStats(selector?: MediaStreamTrack | null): Promise<RTCStatsReport>;
  25138     /**
  25139      * The **`getTransceivers()`** method of the RTCPeerConnection interface returns a list of the RTCRtpTransceiver objects being used to send and receive data on the connection.
  25140      *
  25141      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getTransceivers)
  25142      */
  25143     getTransceivers(): RTCRtpTransceiver[];
  25144     /**
  25145      * The **`removeTrack()`** method of the RTCPeerConnection interface tells the local end of the connection to stop sending media from the specified track, without actually removing the corresponding RTCRtpSender from the list of senders as reported by RTCPeerConnection.getSenders().
  25146      *
  25147      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/removeTrack)
  25148      */
  25149     removeTrack(sender: RTCRtpSender): void;
  25150     /**
  25151      * The **`restartIce()`** method of the RTCPeerConnection interface allows a web application to request that ICE candidate gathering be redone on both ends of the connection.
  25152      *
  25153      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/restartIce)
  25154      */
  25155     restartIce(): void;
  25156     /**
  25157      * The **`setConfiguration()`** method of the RTCPeerConnection interface sets the current configuration of the connection based on the values included in the specified object.
  25158      *
  25159      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setConfiguration)
  25160      */
  25161     setConfiguration(configuration?: RTCConfiguration): void;
  25162     /**
  25163      * The **`setLocalDescription()`** method of the RTCPeerConnection interface changes the local description associated with the connection.
  25164      *
  25165      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setLocalDescription)
  25166      */
  25167     setLocalDescription(description?: RTCLocalSessionDescriptionInit): Promise<void>;
  25168     /** @deprecated */
  25169     setLocalDescription(description: RTCLocalSessionDescriptionInit, successCallback: VoidFunction, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;
  25170     /**
  25171      * The **`setRemoteDescription()`** method of the RTCPeerConnection interface sets the specified session description as the remote peer's current offer or answer.
  25172      *
  25173      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setRemoteDescription)
  25174      */
  25175     setRemoteDescription(description: RTCSessionDescriptionInit): Promise<void>;
  25176     /** @deprecated */
  25177     setRemoteDescription(description: RTCSessionDescriptionInit, successCallback: VoidFunction, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;
  25178     addEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: RTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  25179     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  25180     removeEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: RTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  25181     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  25182 }
  25183 
  25184 declare var RTCPeerConnection: {
  25185     prototype: RTCPeerConnection;
  25186     new(configuration?: RTCConfiguration): RTCPeerConnection;
  25187     /**
  25188      * The **`generateCertificate()`** static function of the RTCPeerConnection interface creates an X.509 certificate and corresponding private key, returning a promise that resolves with the new RTCCertificate once it's generated.
  25189      *
  25190      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/generateCertificate_static)
  25191      */
  25192     generateCertificate(keygenAlgorithm: AlgorithmIdentifier): Promise<RTCCertificate>;
  25193 };
  25194 
  25195 /**
  25196  * The **`RTCPeerConnectionIceErrorEvent`** interface—based upon the Event interface—provides details pertaining to an ICE error announced by sending an RTCPeerConnection.icecandidateerror_event event to the RTCPeerConnection object.
  25197  *
  25198  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnectionIceErrorEvent)
  25199  */
  25200 interface RTCPeerConnectionIceErrorEvent extends Event {
  25201     /**
  25202      * The RTCPeerConnectionIceErrorEvent property **`address`** is a string which indicates the local IP address being used to communicate with the STUN or TURN server during negotiations.
  25203      *
  25204      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnectionIceErrorEvent/address)
  25205      */
  25206     readonly address: string | null;
  25207     readonly errorCode: number;
  25208     readonly errorText: string;
  25209     readonly port: number | null;
  25210     readonly url: string;
  25211 }
  25212 
  25213 declare var RTCPeerConnectionIceErrorEvent: {
  25214     prototype: RTCPeerConnectionIceErrorEvent;
  25215     new(type: string, eventInitDict: RTCPeerConnectionIceErrorEventInit): RTCPeerConnectionIceErrorEvent;
  25216 };
  25217 
  25218 /**
  25219  * The **`RTCPeerConnectionIceEvent`** interface represents events that occur in relation to ICE candidates with the target, usually an RTCPeerConnection.
  25220  *
  25221  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnectionIceEvent)
  25222  */
  25223 interface RTCPeerConnectionIceEvent extends Event {
  25224     /**
  25225      * The read-only **`candidate`** property of the RTCPeerConnectionIceEvent interface returns the An RTCIceCandidate object representing the ICE candidate that has been received, or `null` to indicate that there are no further candidates for this negotiation session.
  25226      *
  25227      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnectionIceEvent/candidate)
  25228      */
  25229     readonly candidate: RTCIceCandidate | null;
  25230 }
  25231 
  25232 declare var RTCPeerConnectionIceEvent: {
  25233     prototype: RTCPeerConnectionIceEvent;
  25234     new(type: string, eventInitDict?: RTCPeerConnectionIceEventInit): RTCPeerConnectionIceEvent;
  25235 };
  25236 
  25237 /**
  25238  * The **`RTCRtpReceiver`** interface of the WebRTC API manages the reception and decoding of data for a MediaStreamTrack on an RTCPeerConnection.
  25239  *
  25240  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver)
  25241  */
  25242 interface RTCRtpReceiver {
  25243     /**
  25244      * The **`jitterBufferTarget`** property of the RTCRtpReceiver interface is a DOMHighResTimeStamp that indicates the application's preferred duration, in milliseconds, for which the jitter buffer should hold media before playing it out.
  25245      *
  25246      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/jitterBufferTarget)
  25247      */
  25248     jitterBufferTarget: DOMHighResTimeStamp | null;
  25249     /**
  25250      * The **`track`** read-only property of the associated with the current RTCRtpReceiver instance.
  25251      *
  25252      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/track)
  25253      */
  25254     readonly track: MediaStreamTrack;
  25255     /**
  25256      * The **`transform`** property of the RTCRtpReceiver object is used to insert a transform stream (TransformStream) running in a worker thread into the receiver pipeline.
  25257      *
  25258      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/transform)
  25259      */
  25260     transform: RTCRtpTransform | null;
  25261     /**
  25262      * The read-only **`transport`** property of an used to interact with the underlying transport over which the receiver is exchanging Real-time Transport Control Protocol (RTCP) packets.
  25263      *
  25264      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/transport)
  25265      */
  25266     readonly transport: RTCDtlsTransport | null;
  25267     /**
  25268      * The **`getContributingSources()`** method of the RTCRtpReceiver interface returns an array of objects, each corresponding to one CSRC (contributing source) identifier received by the current `RTCRtpReceiver` in the last ten seconds.
  25269      *
  25270      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/getContributingSources)
  25271      */
  25272     getContributingSources(): RTCRtpContributingSource[];
  25273     /**
  25274      * The **`getParameters()`** method of the RTCRtpReceiver interface returns an object describing the current configuration for how the receiver's RTCRtpReceiver.track is decoded.
  25275      *
  25276      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/getParameters)
  25277      */
  25278     getParameters(): RTCRtpReceiveParameters;
  25279     /**
  25280      * The RTCRtpReceiver method **`getStats()`** asynchronously requests an RTCStatsReport object which provides statistics about incoming traffic on the owning RTCPeerConnection, returning a Promise whose fulfillment handler will be called once the results are available.
  25281      *
  25282      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/getStats)
  25283      */
  25284     getStats(): Promise<RTCStatsReport>;
  25285     /**
  25286      * The **`getSynchronizationSources()`** method of the RTCRtpReceiver interface returns an array of objects, each corresponding to one SSRC (synchronization source) identifier received by the current `RTCRtpReceiver` in the last ten seconds.
  25287      *
  25288      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/getSynchronizationSources)
  25289      */
  25290     getSynchronizationSources(): RTCRtpSynchronizationSource[];
  25291 }
  25292 
  25293 declare var RTCRtpReceiver: {
  25294     prototype: RTCRtpReceiver;
  25295     new(): RTCRtpReceiver;
  25296     /**
  25297      * The _static method_ **`RTCRtpReceiver.getCapabilities()`** returns an object describing the codec and header extension capabilities supported by RTCRtpReceiver objects on the current device.
  25298      *
  25299      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/getCapabilities_static)
  25300      */
  25301     getCapabilities(kind: string): RTCRtpCapabilities | null;
  25302 };
  25303 
  25304 /**
  25305  * The **`RTCRtpScriptTransform`** interface of the WebRTC API is used to insert a WebRTC Encoded Transform (a TransformStream running in a worker thread) into the WebRTC sender and receiver pipelines.
  25306  *
  25307  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransform)
  25308  */
  25309 interface RTCRtpScriptTransform {
  25310 }
  25311 
  25312 declare var RTCRtpScriptTransform: {
  25313     prototype: RTCRtpScriptTransform;
  25314     new(worker: Worker, options?: any, transfer?: any[]): RTCRtpScriptTransform;
  25315 };
  25316 
  25317 /**
  25318  * The **`RTCRtpSender`** interface provides the ability to control and obtain details about how a particular MediaStreamTrack is encoded and sent to a remote peer.
  25319  *
  25320  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender)
  25321  */
  25322 interface RTCRtpSender {
  25323     /**
  25324      * The read-only **`dtmf`** property on the **RTCRtpSender** interface returns a over the RTCPeerConnection.
  25325      *
  25326      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/dtmf)
  25327      */
  25328     readonly dtmf: RTCDTMFSender | null;
  25329     /**
  25330      * The **`track`** read-only property of the RTCRtpSender interface returns the MediaStreamTrack which is being handled by the `RTCRtpSender`.
  25331      *
  25332      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/track)
  25333      */
  25334     readonly track: MediaStreamTrack | null;
  25335     /**
  25336      * The **`transform`** property of the RTCRtpSender object is used to insert a transform stream (TransformStream) running in a worker thread into the sender pipeline.
  25337      *
  25338      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/transform)
  25339      */
  25340     transform: RTCRtpTransform | null;
  25341     /**
  25342      * The read-only **`transport`** property of an used to interact with the underlying transport over which the sender is exchanging Real-time Transport Control Protocol (RTCP) packets.
  25343      *
  25344      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/transport)
  25345      */
  25346     readonly transport: RTCDtlsTransport | null;
  25347     /**
  25348      * The **`getParameters()`** method of the RTCRtpSender interface returns an object describing the current configuration for how the sender's RTCRtpSender.track will be encoded and transmitted to a remote RTCRtpReceiver.
  25349      *
  25350      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/getParameters)
  25351      */
  25352     getParameters(): RTCRtpSendParameters;
  25353     /**
  25354      * The RTCRtpSender method **`getStats()`** asynchronously requests an RTCStatsReport object which provides statistics about outgoing traffic on the RTCPeerConnection which owns the sender, returning a Promise which is fulfilled when the results are available.
  25355      *
  25356      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/getStats)
  25357      */
  25358     getStats(): Promise<RTCStatsReport>;
  25359     /**
  25360      * The RTCRtpSender method **`replaceTrack()`** replaces the track currently being used as the sender's source with a new MediaStreamTrack.
  25361      *
  25362      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/replaceTrack)
  25363      */
  25364     replaceTrack(withTrack: MediaStreamTrack | null): Promise<void>;
  25365     /**
  25366      * The **`setParameters()`** method of the RTCRtpSender interface applies changes the configuration of sender's RTCRtpSender.track, which is the MediaStreamTrack for which the `RTCRtpSender` is responsible.
  25367      *
  25368      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/setParameters)
  25369      */
  25370     setParameters(parameters: RTCRtpSendParameters, setParameterOptions?: RTCSetParameterOptions): Promise<void>;
  25371     /**
  25372      * The RTCRtpSender method **`setStreams()`** associates the sender's RTCRtpSender.track with the specified MediaStream objects.
  25373      *
  25374      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/setStreams)
  25375      */
  25376     setStreams(...streams: MediaStream[]): void;
  25377 }
  25378 
  25379 declare var RTCRtpSender: {
  25380     prototype: RTCRtpSender;
  25381     new(): RTCRtpSender;
  25382     /**
  25383      * The _static method_ **`RTCRtpSender.getCapabilities()`** returns an object describing the codec and header extension capabilities supported by the RTCRtpSender.
  25384      *
  25385      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/getCapabilities_static)
  25386      */
  25387     getCapabilities(kind: string): RTCRtpCapabilities | null;
  25388 };
  25389 
  25390 /**
  25391  * The WebRTC interface **`RTCRtpTransceiver`** describes a permanent pairing of an RTCRtpSender and an RTCRtpReceiver, along with some shared state.
  25392  *
  25393  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver)
  25394  */
  25395 interface RTCRtpTransceiver {
  25396     /**
  25397      * The read-only RTCRtpTransceiver property **`currentDirection`** is a string which indicates the current negotiated directionality of the transceiver.
  25398      *
  25399      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/currentDirection)
  25400      */
  25401     readonly currentDirection: RTCRtpTransceiverDirection | null;
  25402     /**
  25403      * The RTCRtpTransceiver property **`direction`** is a string that indicates the transceiver's _preferred_ directionality.
  25404      *
  25405      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/direction)
  25406      */
  25407     direction: RTCRtpTransceiverDirection;
  25408     /**
  25409      * The read-only RTCRtpTransceiver interface's **`mid`** property specifies the negotiated media ID (`mid`) which the local and remote peers have agreed upon to uniquely identify the stream's pairing of sender and receiver.
  25410      *
  25411      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/mid)
  25412      */
  25413     readonly mid: string | null;
  25414     /**
  25415      * The read-only **`receiver`** property of WebRTC's RTCRtpTransceiver interface indicates the data for the transceiver's stream.
  25416      *
  25417      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/receiver)
  25418      */
  25419     readonly receiver: RTCRtpReceiver;
  25420     /**
  25421      * The read-only **`sender`** property of WebRTC's RTCRtpTransceiver interface indicates the for the transceiver's stream.
  25422      *
  25423      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/sender)
  25424      */
  25425     readonly sender: RTCRtpSender;
  25426     /**
  25427      * The **`setCodecPreferences()`** method of the RTCRtpTransceiver interface is used to set the codecs that the transceiver allows for decoding _received_ data, in order of decreasing preference.
  25428      *
  25429      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/setCodecPreferences)
  25430      */
  25431     setCodecPreferences(codecs: RTCRtpCodec[]): void;
  25432     /**
  25433      * The **`stop()`** method in the RTCRtpTransceiver interface permanently stops the transceiver by stopping both the associated RTCRtpSender and ```js-nolint stop() ``` None.
  25434      *
  25435      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/stop)
  25436      */
  25437     stop(): void;
  25438 }
  25439 
  25440 declare var RTCRtpTransceiver: {
  25441     prototype: RTCRtpTransceiver;
  25442     new(): RTCRtpTransceiver;
  25443 };
  25444 
  25445 interface RTCSctpTransportEventMap {
  25446     "statechange": Event;
  25447 }
  25448 
  25449 /**
  25450  * The **`RTCSctpTransport`** interface provides information which describes a Stream Control Transmission Protocol (**SCTP**) transport.
  25451  *
  25452  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport)
  25453  */
  25454 interface RTCSctpTransport extends EventTarget {
  25455     /**
  25456      * The **`maxChannels`** read-only property of the RTCSctpTransport interface indicates the maximum number of RTCDataChannel objects that can be opened simultaneously.
  25457      *
  25458      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport/maxChannels)
  25459      */
  25460     readonly maxChannels: number | null;
  25461     /**
  25462      * The **`maxMessageSize`** read-only property of the RTCSctpTransport interface indicates the maximum size of a message that can be sent using the RTCDataChannel.send() method.
  25463      *
  25464      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport/maxMessageSize)
  25465      */
  25466     readonly maxMessageSize: number;
  25467     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport/statechange_event) */
  25468     onstatechange: ((this: RTCSctpTransport, ev: Event) => any) | null;
  25469     /**
  25470      * The **`state`** read-only property of the RTCSctpTransport interface provides information which describes a Stream Control Transmission Protocol (SCTP) transport state.
  25471      *
  25472      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport/state)
  25473      */
  25474     readonly state: RTCSctpTransportState;
  25475     /**
  25476      * The **`transport`** read-only property of the RTCSctpTransport interface returns a RTCDtlsTransport object representing the DTLS transport used for the transmission and receipt of data packets.
  25477      *
  25478      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport/transport)
  25479      */
  25480     readonly transport: RTCDtlsTransport;
  25481     addEventListener<K extends keyof RTCSctpTransportEventMap>(type: K, listener: (this: RTCSctpTransport, ev: RTCSctpTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  25482     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  25483     removeEventListener<K extends keyof RTCSctpTransportEventMap>(type: K, listener: (this: RTCSctpTransport, ev: RTCSctpTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  25484     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  25485 }
  25486 
  25487 declare var RTCSctpTransport: {
  25488     prototype: RTCSctpTransport;
  25489     new(): RTCSctpTransport;
  25490 };
  25491 
  25492 /**
  25493  * The **`RTCSessionDescription`** interface describes one end of a connection—or potential connection—and how it's configured.
  25494  *
  25495  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSessionDescription)
  25496  */
  25497 interface RTCSessionDescription {
  25498     /**
  25499      * The property **`RTCSessionDescription.sdp`** is a read-only string containing the SDP which describes the session.
  25500      *
  25501      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSessionDescription/sdp)
  25502      */
  25503     readonly sdp: string;
  25504     /**
  25505      * The property **`RTCSessionDescription.type`** is a read-only string value which describes the description's type.
  25506      *
  25507      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSessionDescription/type)
  25508      */
  25509     readonly type: RTCSdpType;
  25510     /**
  25511      * The **`RTCSessionDescription.toJSON()`** method generates a ```js-nolint toJSON() ``` None.
  25512      *
  25513      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSessionDescription/toJSON)
  25514      */
  25515     toJSON(): RTCSessionDescriptionInit;
  25516 }
  25517 
  25518 declare var RTCSessionDescription: {
  25519     prototype: RTCSessionDescription;
  25520     new(descriptionInitDict: RTCSessionDescriptionInit): RTCSessionDescription;
  25521 };
  25522 
  25523 /**
  25524  * The **`RTCStatsReport`** interface of the WebRTC API provides a statistics report for a RTCPeerConnection, RTCRtpSender, or RTCRtpReceiver.
  25525  *
  25526  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCStatsReport)
  25527  */
  25528 interface RTCStatsReport {
  25529     forEach(callbackfn: (value: any, key: string, parent: RTCStatsReport) => void, thisArg?: any): void;
  25530 }
  25531 
  25532 declare var RTCStatsReport: {
  25533     prototype: RTCStatsReport;
  25534     new(): RTCStatsReport;
  25535 };
  25536 
  25537 /**
  25538  * The WebRTC API interface **`RTCTrackEvent`** represents the RTCPeerConnection.track_event event, which is sent when a new MediaStreamTrack is added to an RTCRtpReceiver which is part of the RTCPeerConnection.
  25539  *
  25540  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent)
  25541  */
  25542 interface RTCTrackEvent extends Event {
  25543     /**
  25544      * The read-only **`receiver`** property of the RTCTrackEvent interface indicates the The RTCRtpReceiver which pairs the `receiver` with a sender and other properties which establish a single bidirectional RTP stream for use by the RTCTrackEvent.track associated with the `RTCTrackEvent`.
  25545      *
  25546      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent/receiver)
  25547      */
  25548     readonly receiver: RTCRtpReceiver;
  25549     /**
  25550      * The WebRTC API interface RTCTrackEvent's read-only **`streams`** property specifies an array of track being added to the RTCPeerConnection.
  25551      *
  25552      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent/streams)
  25553      */
  25554     readonly streams: ReadonlyArray<MediaStream>;
  25555     /**
  25556      * The
  25557      *
  25558      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent/track)
  25559      */
  25560     readonly track: MediaStreamTrack;
  25561     /**
  25562      * The WebRTC API interface RTCTrackEvent's read-only **`transceiver`** property indicates the The transceiver pairs the track's The RTCRtpTransceiver which pairs the `receiver` with a sender and other properties which establish a single bidirectional RTP stream for use by the RTCTrackEvent.track associated with the `RTCTrackEvent`.
  25563      *
  25564      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent/transceiver)
  25565      */
  25566     readonly transceiver: RTCRtpTransceiver;
  25567 }
  25568 
  25569 declare var RTCTrackEvent: {
  25570     prototype: RTCTrackEvent;
  25571     new(type: string, eventInitDict: RTCTrackEventInit): RTCTrackEvent;
  25572 };
  25573 
  25574 /**
  25575  * The **`RadioNodeList`** interface represents a collection of elements in a form returned by a call to HTMLFormControlsCollection.namedItem().
  25576  *
  25577  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RadioNodeList)
  25578  */
  25579 interface RadioNodeList extends NodeListOf<HTMLInputElement> {
  25580     /**
  25581      * If the underlying element collection contains radio buttons, the **`RadioNodeList.value`** property represents the checked radio button.
  25582      *
  25583      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RadioNodeList/value)
  25584      */
  25585     value: string;
  25586 }
  25587 
  25588 declare var RadioNodeList: {
  25589     prototype: RadioNodeList;
  25590     new(): RadioNodeList;
  25591 };
  25592 
  25593 /**
  25594  * The **`Range`** interface represents a fragment of a document that can contain nodes and parts of text nodes.
  25595  *
  25596  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range)
  25597  */
  25598 interface Range extends AbstractRange {
  25599     /**
  25600      * The **`Range.commonAncestorContainer`** read-only property returns the deepest — or furthest down the document tree — Node that contains both boundary points of the Range.
  25601      *
  25602      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/commonAncestorContainer)
  25603      */
  25604     readonly commonAncestorContainer: Node;
  25605     /**
  25606      * The **`cloneContents()`** method of the Range interface copies the selected Node children of the range's Range/commonAncestorContainer and puts them in a new DocumentFragment object.
  25607      *
  25608      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/cloneContents)
  25609      */
  25610     cloneContents(): DocumentFragment;
  25611     /**
  25612      * The **`Range.cloneRange()`** method returns a The returned clone is copied by value, not reference, so a change in either ```js-nolint cloneRange() ``` None.
  25613      *
  25614      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/cloneRange)
  25615      */
  25616     cloneRange(): Range;
  25617     /**
  25618      * The **`collapse()`** method of the Range interface collapses the A collapsed Range is empty, containing no content, specifying a single-point in a DOM tree.
  25619      *
  25620      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/collapse)
  25621      */
  25622     collapse(toStart?: boolean): void;
  25623     /**
  25624      * The **`compareBoundaryPoints()`** method of the Range interface compares the boundary points of the Range with those of another range.
  25625      *
  25626      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/compareBoundaryPoints)
  25627      */
  25628     compareBoundaryPoints(how: number, sourceRange: Range): number;
  25629     /**
  25630      * The **`comparePoint()`** method of the Range interface determines whether a specified point is before, within, or after the Range.
  25631      *
  25632      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/comparePoint)
  25633      */
  25634     comparePoint(node: Node, offset: number): number;
  25635     /**
  25636      * The **`Range.createContextualFragment()`** method returns a XML fragment parsing algorithm with the start of the range (the _parent_ of the selected node) as the context node.
  25637      *
  25638      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/createContextualFragment)
  25639      */
  25640     createContextualFragment(string: string): DocumentFragment;
  25641     /**
  25642      * The **`Range.deleteContents()`** method removes all completely-selected Node within this range from the document.
  25643      *
  25644      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/deleteContents)
  25645      */
  25646     deleteContents(): void;
  25647     /**
  25648      * The **`Range.detach()`** method does nothing.
  25649      *
  25650      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/detach)
  25651      */
  25652     detach(): void;
  25653     /**
  25654      * The **`extractContents()`** method of the Range interface is similar to a combination of Range.cloneContents() and Range.deleteContents().
  25655      *
  25656      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/extractContents)
  25657      */
  25658     extractContents(): DocumentFragment;
  25659     /**
  25660      * The **`Range.getBoundingClientRect()`** method returns a DOMRect object that bounds the contents of the range; this is a rectangle enclosing the union of the bounding rectangles for all the elements in the range.
  25661      *
  25662      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/getBoundingClientRect)
  25663      */
  25664     getBoundingClientRect(): DOMRect;
  25665     /**
  25666      * The **`Range.getClientRects()`** method returns a list of DOMRect objects representing the area of the screen occupied by the range.
  25667      *
  25668      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/getClientRects)
  25669      */
  25670     getClientRects(): DOMRectList;
  25671     /**
  25672      * The **`Range.insertNode()`** method inserts a node at the start of the Range.
  25673      *
  25674      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/insertNode)
  25675      */
  25676     insertNode(node: Node): void;
  25677     /**
  25678      * The **`Range.intersectsNode()`** method returns a boolean indicating whether the given Node intersects the Range.
  25679      *
  25680      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/intersectsNode)
  25681      */
  25682     intersectsNode(node: Node): boolean;
  25683     /**
  25684      * The **`isPointInRange()`** method of the Range interface determines whether a specified point is within the Range.
  25685      *
  25686      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/isPointInRange)
  25687      */
  25688     isPointInRange(node: Node, offset: number): boolean;
  25689     /**
  25690      * The **`Range.selectNode()`** method sets the the parent of the _referenceNode_.
  25691      *
  25692      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/selectNode)
  25693      */
  25694     selectNode(node: Node): void;
  25695     /**
  25696      * The **`Range.selectNodeContents()`** method sets the Range to contain the contents of a Node.
  25697      *
  25698      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/selectNodeContents)
  25699      */
  25700     selectNodeContents(node: Node): void;
  25701     /**
  25702      * The **`Range.setEnd()`** method sets the end position of a Range to be located at the given offset into the specified node.
  25703      *
  25704      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setEnd)
  25705      */
  25706     setEnd(node: Node, offset: number): void;
  25707     /**
  25708      * The **`Range.setEndAfter()`** method sets the end position of a `Node` of end of the `Range` will be the same as that for the `referenceNode`.
  25709      *
  25710      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setEndAfter)
  25711      */
  25712     setEndAfter(node: Node): void;
  25713     /**
  25714      * The **`Range.setEndBefore()`** method sets the end position of a `Range` relative to another Node.
  25715      *
  25716      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setEndBefore)
  25717      */
  25718     setEndBefore(node: Node): void;
  25719     /**
  25720      * The **`Range.setStart()`** method sets the start position of a If the `startNode` is a Node of type Text, the number of characters from the start of `startNode`.
  25721      *
  25722      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setStart)
  25723      */
  25724     setStart(node: Node, offset: number): void;
  25725     /**
  25726      * The **`Range.setStartAfter()`** method sets the start position of a Range relative to a Node.
  25727      *
  25728      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setStartAfter)
  25729      */
  25730     setStartAfter(node: Node): void;
  25731     /**
  25732      * The **`Range.setStartBefore()`** method sets the start position of a Range relative to another Node.
  25733      *
  25734      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setStartBefore)
  25735      */
  25736     setStartBefore(node: Node): void;
  25737     /**
  25738      * The **`surroundContents()`** method of the Range interface surrounds the selected content by a provided node.
  25739      *
  25740      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/surroundContents)
  25741      */
  25742     surroundContents(newParent: Node): void;
  25743     toString(): string;
  25744     readonly START_TO_START: 0;
  25745     readonly START_TO_END: 1;
  25746     readonly END_TO_END: 2;
  25747     readonly END_TO_START: 3;
  25748 }
  25749 
  25750 declare var Range: {
  25751     prototype: Range;
  25752     new(): Range;
  25753     readonly START_TO_START: 0;
  25754     readonly START_TO_END: 1;
  25755     readonly END_TO_END: 2;
  25756     readonly END_TO_START: 3;
  25757 };
  25758 
  25759 /**
  25760  * The **`ReadableByteStreamController`** interface of the Streams API represents a controller for a readable byte stream.
  25761  *
  25762  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController)
  25763  */
  25764 interface ReadableByteStreamController {
  25765     /**
  25766      * The **`byobRequest`** read-only property of the ReadableByteStreamController interface returns the current BYOB request, or `null` if there are no pending requests.
  25767      *
  25768      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/byobRequest)
  25769      */
  25770     readonly byobRequest: ReadableStreamBYOBRequest | null;
  25771     /**
  25772      * The **`desiredSize`** read-only property of the ReadableByteStreamController interface returns the number of bytes required to fill the stream's internal queue to its 'desired size'.
  25773      *
  25774      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/desiredSize)
  25775      */
  25776     readonly desiredSize: number | null;
  25777     /**
  25778      * The **`close()`** method of the ReadableByteStreamController interface closes the associated stream.
  25779      *
  25780      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/close)
  25781      */
  25782     close(): void;
  25783     /**
  25784      * The **`enqueue()`** method of the ReadableByteStreamController interface enqueues a given chunk on the associated readable byte stream (the chunk is copied into the stream's internal queues).
  25785      *
  25786      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/enqueue)
  25787      */
  25788     enqueue(chunk: ArrayBufferView<ArrayBuffer>): void;
  25789     /**
  25790      * The **`error()`** method of the ReadableByteStreamController interface causes any future interactions with the associated stream to error with the specified reason.
  25791      *
  25792      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/error)
  25793      */
  25794     error(e?: any): void;
  25795 }
  25796 
  25797 declare var ReadableByteStreamController: {
  25798     prototype: ReadableByteStreamController;
  25799     new(): ReadableByteStreamController;
  25800 };
  25801 
  25802 /**
  25803  * The `ReadableStream` interface of the Streams API represents a readable stream of byte data.
  25804  *
  25805  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream)
  25806  */
  25807 interface ReadableStream<R = any> {
  25808     /**
  25809      * The **`locked`** read-only property of the ReadableStream interface returns whether or not the readable stream is locked to a reader.
  25810      *
  25811      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/locked)
  25812      */
  25813     readonly locked: boolean;
  25814     /**
  25815      * The **`cancel()`** method of the ReadableStream interface returns a Promise that resolves when the stream is canceled.
  25816      *
  25817      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/cancel)
  25818      */
  25819     cancel(reason?: any): Promise<void>;
  25820     /**
  25821      * The **`getReader()`** method of the ReadableStream interface creates a reader and locks the stream to it.
  25822      *
  25823      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/getReader)
  25824      */
  25825     getReader(options: { mode: "byob" }): ReadableStreamBYOBReader;
  25826     getReader(): ReadableStreamDefaultReader<R>;
  25827     getReader(options?: ReadableStreamGetReaderOptions): ReadableStreamReader<R>;
  25828     /**
  25829      * The **`pipeThrough()`** method of the ReadableStream interface provides a chainable way of piping the current stream through a transform stream or any other writable/readable pair.
  25830      *
  25831      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/pipeThrough)
  25832      */
  25833     pipeThrough<T>(transform: ReadableWritablePair<T, R>, options?: StreamPipeOptions): ReadableStream<T>;
  25834     /**
  25835      * The **`pipeTo()`** method of the ReadableStream interface pipes the current `ReadableStream` to a given WritableStream and returns a Promise that fulfills when the piping process completes successfully, or rejects if any errors were encountered.
  25836      *
  25837      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/pipeTo)
  25838      */
  25839     pipeTo(destination: WritableStream<R>, options?: StreamPipeOptions): Promise<void>;
  25840     /**
  25841      * The **`tee()`** method of the two-element array containing the two resulting branches as new ReadableStream instances.
  25842      *
  25843      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/tee)
  25844      */
  25845     tee(): [ReadableStream<R>, ReadableStream<R>];
  25846 }
  25847 
  25848 declare var ReadableStream: {
  25849     prototype: ReadableStream;
  25850     new(underlyingSource: UnderlyingByteSource, strategy?: { highWaterMark?: number }): ReadableStream<Uint8Array<ArrayBuffer>>;
  25851     new<R = any>(underlyingSource: UnderlyingDefaultSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
  25852     new<R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>;
  25853 };
  25854 
  25855 /**
  25856  * The `ReadableStreamBYOBReader` interface of the Streams API defines a reader for a ReadableStream that supports zero-copy reading from an underlying byte source.
  25857  *
  25858  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader)
  25859  */
  25860 interface ReadableStreamBYOBReader extends ReadableStreamGenericReader {
  25861     /**
  25862      * The **`read()`** method of the ReadableStreamBYOBReader interface is used to read data into a view on a user-supplied buffer from an associated readable byte stream.
  25863      *
  25864      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/read)
  25865      */
  25866     read<T extends ArrayBufferView>(view: T): Promise<ReadableStreamReadResult<T>>;
  25867     /**
  25868      * The **`releaseLock()`** method of the ReadableStreamBYOBReader interface releases the reader's lock on the stream.
  25869      *
  25870      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/releaseLock)
  25871      */
  25872     releaseLock(): void;
  25873 }
  25874 
  25875 declare var ReadableStreamBYOBReader: {
  25876     prototype: ReadableStreamBYOBReader;
  25877     new(stream: ReadableStream<Uint8Array<ArrayBuffer>>): ReadableStreamBYOBReader;
  25878 };
  25879 
  25880 /**
  25881  * The **`ReadableStreamBYOBRequest`** interface of the Streams API represents a 'pull request' for data from an underlying source that will made as a zero-copy transfer to a consumer (bypassing the stream's internal queues).
  25882  *
  25883  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest)
  25884  */
  25885 interface ReadableStreamBYOBRequest {
  25886     /**
  25887      * The **`view`** getter property of the ReadableStreamBYOBRequest interface returns the current view.
  25888      *
  25889      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/view)
  25890      */
  25891     readonly view: ArrayBufferView<ArrayBuffer> | null;
  25892     /**
  25893      * The **`respond()`** method of the ReadableStreamBYOBRequest interface is used to signal to the associated readable byte stream that the specified number of bytes were written into the ReadableStreamBYOBRequest.view.
  25894      *
  25895      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/respond)
  25896      */
  25897     respond(bytesWritten: number): void;
  25898     /**
  25899      * The **`respondWithNewView()`** method of the ReadableStreamBYOBRequest interface specifies a new view that the consumer of the associated readable byte stream should write to instead of ReadableStreamBYOBRequest.view.
  25900      *
  25901      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/respondWithNewView)
  25902      */
  25903     respondWithNewView(view: ArrayBufferView<ArrayBuffer>): void;
  25904 }
  25905 
  25906 declare var ReadableStreamBYOBRequest: {
  25907     prototype: ReadableStreamBYOBRequest;
  25908     new(): ReadableStreamBYOBRequest;
  25909 };
  25910 
  25911 /**
  25912  * The **`ReadableStreamDefaultController`** interface of the Streams API represents a controller allowing control of a ReadableStream's state and internal queue.
  25913  *
  25914  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController)
  25915  */
  25916 interface ReadableStreamDefaultController<R = any> {
  25917     /**
  25918      * The **`desiredSize`** read-only property of the required to fill the stream's internal queue.
  25919      *
  25920      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/desiredSize)
  25921      */
  25922     readonly desiredSize: number | null;
  25923     /**
  25924      * The **`close()`** method of the ReadableStreamDefaultController interface closes the associated stream.
  25925      *
  25926      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/close)
  25927      */
  25928     close(): void;
  25929     /**
  25930      * The **`enqueue()`** method of the ```js-nolint enqueue(chunk) ``` - `chunk` - : The chunk to enqueue.
  25931      *
  25932      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/enqueue)
  25933      */
  25934     enqueue(chunk?: R): void;
  25935     /**
  25936      * The **`error()`** method of the with the associated stream to error.
  25937      *
  25938      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/error)
  25939      */
  25940     error(e?: any): void;
  25941 }
  25942 
  25943 declare var ReadableStreamDefaultController: {
  25944     prototype: ReadableStreamDefaultController;
  25945     new(): ReadableStreamDefaultController;
  25946 };
  25947 
  25948 /**
  25949  * The **`ReadableStreamDefaultReader`** interface of the Streams API represents a default reader that can be used to read stream data supplied from a network (such as a fetch request).
  25950  *
  25951  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader)
  25952  */
  25953 interface ReadableStreamDefaultReader<R = any> extends ReadableStreamGenericReader {
  25954     /**
  25955      * The **`read()`** method of the ReadableStreamDefaultReader interface returns a Promise providing access to the next chunk in the stream's internal queue.
  25956      *
  25957      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader/read)
  25958      */
  25959     read(): Promise<ReadableStreamReadResult<R>>;
  25960     /**
  25961      * The **`releaseLock()`** method of the ReadableStreamDefaultReader interface releases the reader's lock on the stream.
  25962      *
  25963      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader/releaseLock)
  25964      */
  25965     releaseLock(): void;
  25966 }
  25967 
  25968 declare var ReadableStreamDefaultReader: {
  25969     prototype: ReadableStreamDefaultReader;
  25970     new<R = any>(stream: ReadableStream<R>): ReadableStreamDefaultReader<R>;
  25971 };
  25972 
  25973 interface ReadableStreamGenericReader {
  25974     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/closed) */
  25975     readonly closed: Promise<void>;
  25976     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/cancel) */
  25977     cancel(reason?: any): Promise<void>;
  25978 }
  25979 
  25980 interface RemotePlaybackEventMap {
  25981     "connect": Event;
  25982     "connecting": Event;
  25983     "disconnect": Event;
  25984 }
  25985 
  25986 /**
  25987  * The **`RemotePlayback`** interface of the Remote Playback API allows the page to detect availability of remote playback devices, then connect to and control playing on these devices.
  25988  *
  25989  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback)
  25990  */
  25991 interface RemotePlayback extends EventTarget {
  25992     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback/connect_event) */
  25993     onconnect: ((this: RemotePlayback, ev: Event) => any) | null;
  25994     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback/connecting_event) */
  25995     onconnecting: ((this: RemotePlayback, ev: Event) => any) | null;
  25996     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback/disconnect_event) */
  25997     ondisconnect: ((this: RemotePlayback, ev: Event) => any) | null;
  25998     /**
  25999      * The **`state`** read-only property of the RemotePlayback interface returns the current state of the `RemotePlayback` connection.
  26000      *
  26001      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback/state)
  26002      */
  26003     readonly state: RemotePlaybackState;
  26004     /**
  26005      * The **`cancelWatchAvailability()`** method of the RemotePlayback interface cancels the request to watch for one or all available devices.
  26006      *
  26007      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback/cancelWatchAvailability)
  26008      */
  26009     cancelWatchAvailability(id?: number): Promise<void>;
  26010     /**
  26011      * The **`prompt()`** method of the RemotePlayback interface prompts the user to select an available remote playback device and give permission for the current media to be played using that device.
  26012      *
  26013      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback/prompt)
  26014      */
  26015     prompt(): Promise<void>;
  26016     /**
  26017      * The **`watchAvailability()`** method of the RemotePlayback interface watches the list of available remote playback devices and returns a Promise that resolves with the `callbackId` of a remote playback device.
  26018      *
  26019      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RemotePlayback/watchAvailability)
  26020      */
  26021     watchAvailability(callback: RemotePlaybackAvailabilityCallback): Promise<number>;
  26022     addEventListener<K extends keyof RemotePlaybackEventMap>(type: K, listener: (this: RemotePlayback, ev: RemotePlaybackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  26023     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  26024     removeEventListener<K extends keyof RemotePlaybackEventMap>(type: K, listener: (this: RemotePlayback, ev: RemotePlaybackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  26025     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  26026 }
  26027 
  26028 declare var RemotePlayback: {
  26029     prototype: RemotePlayback;
  26030     new(): RemotePlayback;
  26031 };
  26032 
  26033 /**
  26034  * The `Report` interface of the Reporting API represents a single report.
  26035  *
  26036  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report)
  26037  */
  26038 interface Report {
  26039     /**
  26040      * The **`body`** read-only property of the Report interface returns the body of the report, which is a `ReportBody` object containing the detailed report information.
  26041      *
  26042      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/body)
  26043      */
  26044     readonly body: ReportBody | null;
  26045     /**
  26046      * The **`type`** read-only property of the Report interface returns the type of report generated, e.g., `deprecation` or `intervention`.
  26047      *
  26048      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/type)
  26049      */
  26050     readonly type: string;
  26051     /**
  26052      * The **`url`** read-only property of the Report interface returns the URL of the document that generated the report.
  26053      *
  26054      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/url)
  26055      */
  26056     readonly url: string;
  26057     toJSON(): any;
  26058 }
  26059 
  26060 declare var Report: {
  26061     prototype: Report;
  26062     new(): Report;
  26063 };
  26064 
  26065 /**
  26066  * The **`ReportBody`** interface of the Reporting API represents the body of a report.
  26067  *
  26068  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportBody)
  26069  */
  26070 interface ReportBody {
  26071     /**
  26072      * The **`toJSON()`** method of the ReportBody interface is a _serializer_, and returns a JSON representation of the `ReportBody` object.
  26073      *
  26074      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportBody/toJSON)
  26075      */
  26076     toJSON(): any;
  26077 }
  26078 
  26079 declare var ReportBody: {
  26080     prototype: ReportBody;
  26081     new(): ReportBody;
  26082 };
  26083 
  26084 /**
  26085  * The `ReportingObserver` interface of the Reporting API allows you to collect and access reports.
  26086  *
  26087  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver)
  26088  */
  26089 interface ReportingObserver {
  26090     /**
  26091      * The **`disconnect()`** method of the previously started observing from collecting reports.
  26092      *
  26093      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/disconnect)
  26094      */
  26095     disconnect(): void;
  26096     /**
  26097      * The **`observe()`** method of the collecting reports in its report queue.
  26098      *
  26099      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/observe)
  26100      */
  26101     observe(): void;
  26102     /**
  26103      * The **`takeRecords()`** method of the in the observer's report queue, and empties the queue.
  26104      *
  26105      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/takeRecords)
  26106      */
  26107     takeRecords(): ReportList;
  26108 }
  26109 
  26110 declare var ReportingObserver: {
  26111     prototype: ReportingObserver;
  26112     new(callback: ReportingObserverCallback, options?: ReportingObserverOptions): ReportingObserver;
  26113 };
  26114 
  26115 /**
  26116  * The **`Request`** interface of the Fetch API represents a resource request.
  26117  *
  26118  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request)
  26119  */
  26120 interface Request extends Body {
  26121     /**
  26122      * The **`cache`** read-only property of the Request interface contains the cache mode of the request.
  26123      *
  26124      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/cache)
  26125      */
  26126     readonly cache: RequestCache;
  26127     /**
  26128      * The **`credentials`** read-only property of the Request interface reflects the value given to the Request.Request() constructor in the `credentials` option.
  26129      *
  26130      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/credentials)
  26131      */
  26132     readonly credentials: RequestCredentials;
  26133     /**
  26134      * The **`destination`** read-only property of the **Request** interface returns a string describing the type of content being requested.
  26135      *
  26136      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/destination)
  26137      */
  26138     readonly destination: RequestDestination;
  26139     /**
  26140      * The **`headers`** read-only property of the with the request.
  26141      *
  26142      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/headers)
  26143      */
  26144     readonly headers: Headers;
  26145     /**
  26146      * The **`integrity`** read-only property of the Request interface contains the subresource integrity value of the request.
  26147      *
  26148      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/integrity)
  26149      */
  26150     readonly integrity: string;
  26151     /**
  26152      * The **`keepalive`** read-only property of the Request interface contains the request's `keepalive` setting (`true` or `false`), which indicates whether the browser will keep the associated request alive if the page that initiated it is unloaded before the request is complete.
  26153      *
  26154      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/keepalive)
  26155      */
  26156     readonly keepalive: boolean;
  26157     /**
  26158      * The **`method`** read-only property of the `POST`, etc.) A String indicating the method of the request.
  26159      *
  26160      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/method)
  26161      */
  26162     readonly method: string;
  26163     /**
  26164      * The **`mode`** read-only property of the Request interface contains the mode of the request (e.g., `cors`, `no-cors`, `same-origin`, or `navigate`.) This is used to determine if cross-origin requests lead to valid responses, and which properties of the response are readable.
  26165      *
  26166      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/mode)
  26167      */
  26168     readonly mode: RequestMode;
  26169     /**
  26170      * The **`redirect`** read-only property of the Request interface contains the mode for how redirects are handled.
  26171      *
  26172      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/redirect)
  26173      */
  26174     readonly redirect: RequestRedirect;
  26175     /**
  26176      * The **`referrer`** read-only property of the Request.
  26177      *
  26178      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/referrer)
  26179      */
  26180     readonly referrer: string;
  26181     /**
  26182      * The **`referrerPolicy`** read-only property of the referrer information, sent in the Referer header, should be included with the request.
  26183      *
  26184      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/referrerPolicy)
  26185      */
  26186     readonly referrerPolicy: ReferrerPolicy;
  26187     /**
  26188      * The read-only **`signal`** property of the Request interface returns the AbortSignal associated with the request.
  26189      *
  26190      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/signal)
  26191      */
  26192     readonly signal: AbortSignal;
  26193     /**
  26194      * The **`url`** read-only property of the Request interface contains the URL of the request.
  26195      *
  26196      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/url)
  26197      */
  26198     readonly url: string;
  26199     /**
  26200      * The **`clone()`** method of the Request interface creates a copy of the current `Request` object.
  26201      *
  26202      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/clone)
  26203      */
  26204     clone(): Request;
  26205 }
  26206 
  26207 declare var Request: {
  26208     prototype: Request;
  26209     new(input: RequestInfo | URL, init?: RequestInit): Request;
  26210 };
  26211 
  26212 /**
  26213  * The **`ResizeObserver`** interface reports changes to the dimensions of an Element's content or border box, or the bounding box of an SVGElement.
  26214  *
  26215  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserver)
  26216  */
  26217 interface ResizeObserver {
  26218     /**
  26219      * The **`disconnect()`** method of the or SVGElement targets.
  26220      *
  26221      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserver/disconnect)
  26222      */
  26223     disconnect(): void;
  26224     /**
  26225      * The **`observe()`** method of the ```js-nolint observe(target) observe(target, options) ``` - `target` - : A reference to an Element or SVGElement to be observed.
  26226      *
  26227      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserver/observe)
  26228      */
  26229     observe(target: Element, options?: ResizeObserverOptions): void;
  26230     /**
  26231      * The **`unobserve()`** method of the ```js-nolint unobserve(target) ``` - `target` - : A reference to an Element or SVGElement to be unobserved.
  26232      *
  26233      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserver/unobserve)
  26234      */
  26235     unobserve(target: Element): void;
  26236 }
  26237 
  26238 declare var ResizeObserver: {
  26239     prototype: ResizeObserver;
  26240     new(callback: ResizeObserverCallback): ResizeObserver;
  26241 };
  26242 
  26243 /**
  26244  * The **`ResizeObserverEntry`** interface represents the object passed to the ResizeObserver.ResizeObserver constructor's callback function, which allows you to access the new dimensions of the Element or SVGElement being observed.
  26245  *
  26246  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry)
  26247  */
  26248 interface ResizeObserverEntry {
  26249     /**
  26250      * The **`borderBoxSize`** read-only property of the ResizeObserverEntry interface returns an array containing the new border box size of the observed element when the callback is run.
  26251      *
  26252      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry/borderBoxSize)
  26253      */
  26254     readonly borderBoxSize: ReadonlyArray<ResizeObserverSize>;
  26255     /**
  26256      * The **`contentBoxSize`** read-only property of the ResizeObserverEntry interface returns an array containing the new content box size of the observed element when the callback is run.
  26257      *
  26258      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry/contentBoxSize)
  26259      */
  26260     readonly contentBoxSize: ReadonlyArray<ResizeObserverSize>;
  26261     /**
  26262      * The `contentRect` read-only property of the object containing the new size of the observed element when the callback is run.
  26263      *
  26264      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry/contentRect)
  26265      */
  26266     readonly contentRect: DOMRectReadOnly;
  26267     /**
  26268      * The **`devicePixelContentBoxSize`** read-only property of the ResizeObserverEntry interface returns an array containing the size in device pixels of the observed element when the callback is run.
  26269      *
  26270      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry/devicePixelContentBoxSize)
  26271      */
  26272     readonly devicePixelContentBoxSize: ReadonlyArray<ResizeObserverSize>;
  26273     /**
  26274      * The **`target`** read-only property of the An Element or SVGElement representing the element being observed.
  26275      *
  26276      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry/target)
  26277      */
  26278     readonly target: Element;
  26279 }
  26280 
  26281 declare var ResizeObserverEntry: {
  26282     prototype: ResizeObserverEntry;
  26283     new(): ResizeObserverEntry;
  26284 };
  26285 
  26286 /**
  26287  * The **`ResizeObserverSize`** interface of the Resize Observer API is used by the ResizeObserverEntry interface to access the box sizing properties of the element being observed.
  26288  *
  26289  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverSize)
  26290  */
  26291 interface ResizeObserverSize {
  26292     /**
  26293      * The **`blockSize`** read-only property of the ResizeObserverSize interface returns the length of the observed element's border box in the block dimension.
  26294      *
  26295      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverSize/blockSize)
  26296      */
  26297     readonly blockSize: number;
  26298     /**
  26299      * The **`inlineSize`** read-only property of the ResizeObserverSize interface returns the length of the observed element's border box in the inline dimension.
  26300      *
  26301      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverSize/inlineSize)
  26302      */
  26303     readonly inlineSize: number;
  26304 }
  26305 
  26306 declare var ResizeObserverSize: {
  26307     prototype: ResizeObserverSize;
  26308     new(): ResizeObserverSize;
  26309 };
  26310 
  26311 /**
  26312  * The **`Response`** interface of the Fetch API represents the response to a request.
  26313  *
  26314  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response)
  26315  */
  26316 interface Response extends Body {
  26317     /**
  26318      * The **`headers`** read-only property of the with the response.
  26319      *
  26320      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/headers)
  26321      */
  26322     readonly headers: Headers;
  26323     /**
  26324      * The **`ok`** read-only property of the Response interface contains a Boolean stating whether the response was successful (status in the range 200-299) or not.
  26325      *
  26326      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/ok)
  26327      */
  26328     readonly ok: boolean;
  26329     /**
  26330      * The **`redirected`** read-only property of the Response interface indicates whether or not the response is the result of a request you made which was redirected.
  26331      *
  26332      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/redirected)
  26333      */
  26334     readonly redirected: boolean;
  26335     /**
  26336      * The **`status`** read-only property of the Response interface contains the HTTP status codes of the response.
  26337      *
  26338      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/status)
  26339      */
  26340     readonly status: number;
  26341     /**
  26342      * The **`statusText`** read-only property of the Response interface contains the status message corresponding to the HTTP status code in Response.status.
  26343      *
  26344      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/statusText)
  26345      */
  26346     readonly statusText: string;
  26347     /**
  26348      * The **`type`** read-only property of the Response interface contains the type of the response.
  26349      *
  26350      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/type)
  26351      */
  26352     readonly type: ResponseType;
  26353     /**
  26354      * The **`url`** read-only property of the Response interface contains the URL of the response.
  26355      *
  26356      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/url)
  26357      */
  26358     readonly url: string;
  26359     /**
  26360      * The **`clone()`** method of the Response interface creates a clone of a response object, identical in every way, but stored in a different variable.
  26361      *
  26362      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/clone)
  26363      */
  26364     clone(): Response;
  26365 }
  26366 
  26367 declare var Response: {
  26368     prototype: Response;
  26369     new(body?: BodyInit | null, init?: ResponseInit): Response;
  26370     /**
  26371      * The **`error()`** static method of the Response interface returns a new `Response` object associated with a network error.
  26372      *
  26373      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/error_static)
  26374      */
  26375     error(): Response;
  26376     /**
  26377      * The **`json()`** static method of the Response interface returns a `Response` that contains the provided JSON data as body, and a Content-Type header which is set to `application/json`.
  26378      *
  26379      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/json_static)
  26380      */
  26381     json(data: any, init?: ResponseInit): Response;
  26382     /**
  26383      * The **`redirect()`** static method of the Response interface returns a `Response` resulting in a redirect to the specified URL.
  26384      *
  26385      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/redirect_static)
  26386      */
  26387     redirect(url: string | URL, status?: number): Response;
  26388 };
  26389 
  26390 /**
  26391  * The **`SVGAElement`** interface provides access to the properties of an a element, as well as methods to manipulate them.
  26392  *
  26393  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAElement)
  26394  */
  26395 interface SVGAElement extends SVGGraphicsElement, SVGURIReference {
  26396     rel: string;
  26397     get relList(): DOMTokenList;
  26398     set relList(value: string);
  26399     /**
  26400      * The **`SVGAElement.target`** read-only property of SVGAElement returns an SVGAnimatedString object that specifies the portion of a target window, frame, pane into which a document is to be opened when a link is activated.
  26401      *
  26402      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAElement/target)
  26403      */
  26404     readonly target: SVGAnimatedString;
  26405     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  26406     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  26407     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  26408     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  26409 }
  26410 
  26411 declare var SVGAElement: {
  26412     prototype: SVGAElement;
  26413     new(): SVGAElement;
  26414 };
  26415 
  26416 /**
  26417  * The `SVGAngle` interface is used to represent a value that can be an &lt;angle&gt; or &lt;number&gt; value.
  26418  *
  26419  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAngle)
  26420  */
  26421 interface SVGAngle {
  26422     /**
  26423      * The **`unitType`** property of the SVGAngle interface is one of the unit type constants and represents the units in which this angle's value is expressed.
  26424      *
  26425      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAngle/unitType)
  26426      */
  26427     readonly unitType: number;
  26428     /**
  26429      * The `value` property of the SVGAngle interface represents the floating point value of the `<angle>` in degrees.
  26430      *
  26431      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAngle/value)
  26432      */
  26433     value: number;
  26434     /**
  26435      * The `valueAsString` property of the SVGAngle interface represents the angle's value as a string, in the units expressed by SVGAngle.unitType.
  26436      *
  26437      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAngle/valueAsString)
  26438      */
  26439     valueAsString: string;
  26440     /**
  26441      * The `valueInSpecifiedUnits` property of the SVGAngle interface represents the value of this angle as a number, in the units expressed by the angle's SVGAngle.unitType.
  26442      *
  26443      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAngle/valueInSpecifiedUnits)
  26444      */
  26445     valueInSpecifiedUnits: number;
  26446     /**
  26447      * The `convertToSpecifiedUnits()` method of the SVGAngle interface allows you to convert the angle's value to the specified unit type.
  26448      *
  26449      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAngle/convertToSpecifiedUnits)
  26450      */
  26451     convertToSpecifiedUnits(unitType: number): void;
  26452     /**
  26453      * The `newValueSpecifiedUnits()` method of the SVGAngle interface sets the value to a number with an associated SVGAngle.unitType, thereby replacing the values for all of the attributes on the object.
  26454      *
  26455      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAngle/newValueSpecifiedUnits)
  26456      */
  26457     newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;
  26458     readonly SVG_ANGLETYPE_UNKNOWN: 0;
  26459     readonly SVG_ANGLETYPE_UNSPECIFIED: 1;
  26460     readonly SVG_ANGLETYPE_DEG: 2;
  26461     readonly SVG_ANGLETYPE_RAD: 3;
  26462     readonly SVG_ANGLETYPE_GRAD: 4;
  26463 }
  26464 
  26465 declare var SVGAngle: {
  26466     prototype: SVGAngle;
  26467     new(): SVGAngle;
  26468     readonly SVG_ANGLETYPE_UNKNOWN: 0;
  26469     readonly SVG_ANGLETYPE_UNSPECIFIED: 1;
  26470     readonly SVG_ANGLETYPE_DEG: 2;
  26471     readonly SVG_ANGLETYPE_RAD: 3;
  26472     readonly SVG_ANGLETYPE_GRAD: 4;
  26473 };
  26474 
  26475 /**
  26476  * The **`SVGAnimateElement`** interface corresponds to the animate element.
  26477  *
  26478  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimateElement)
  26479  */
  26480 interface SVGAnimateElement extends SVGAnimationElement {
  26481     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  26482     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  26483     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  26484     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  26485 }
  26486 
  26487 declare var SVGAnimateElement: {
  26488     prototype: SVGAnimateElement;
  26489     new(): SVGAnimateElement;
  26490 };
  26491 
  26492 /**
  26493  * The **`SVGAnimateMotionElement`** interface corresponds to the animateMotion element.
  26494  *
  26495  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimateMotionElement)
  26496  */
  26497 interface SVGAnimateMotionElement extends SVGAnimationElement {
  26498     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateMotionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  26499     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  26500     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateMotionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  26501     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  26502 }
  26503 
  26504 declare var SVGAnimateMotionElement: {
  26505     prototype: SVGAnimateMotionElement;
  26506     new(): SVGAnimateMotionElement;
  26507 };
  26508 
  26509 /**
  26510  * The `SVGAnimateTransformElement` interface corresponds to the animateTransform element.
  26511  *
  26512  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimateTransformElement)
  26513  */
  26514 interface SVGAnimateTransformElement extends SVGAnimationElement {
  26515     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateTransformElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  26516     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  26517     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimateTransformElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  26518     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  26519 }
  26520 
  26521 declare var SVGAnimateTransformElement: {
  26522     prototype: SVGAnimateTransformElement;
  26523     new(): SVGAnimateTransformElement;
  26524 };
  26525 
  26526 /**
  26527  * The **`SVGAnimatedAngle`** interface is used for attributes of basic type \<angle> which can be animated.
  26528  *
  26529  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedAngle)
  26530  */
  26531 interface SVGAnimatedAngle {
  26532     /**
  26533      * The **`animVal`** read-only property of the SVGAnimatedAngle interface represents the current animated value of the associated `<angle>` on an SVG element.
  26534      *
  26535      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedAngle/animVal)
  26536      */
  26537     readonly animVal: SVGAngle;
  26538     /**
  26539      * The **`baseVal`** read-only property of the SVGAnimatedAngle interface represents the base (non-animated) value of the associated `<angle>` on an SVG element.
  26540      *
  26541      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedAngle/baseVal)
  26542      */
  26543     readonly baseVal: SVGAngle;
  26544 }
  26545 
  26546 declare var SVGAnimatedAngle: {
  26547     prototype: SVGAnimatedAngle;
  26548     new(): SVGAnimatedAngle;
  26549 };
  26550 
  26551 /**
  26552  * The **`SVGAnimatedBoolean`** interface is used for attributes of type boolean which can be animated.
  26553  *
  26554  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedBoolean)
  26555  */
  26556 interface SVGAnimatedBoolean {
  26557     /**
  26558      * The **`animVal`** read-only property of the SVGAnimatedBoolean interface represents the current animated value of the associated animatable boolean SVG attribute.
  26559      *
  26560      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedBoolean/animVal)
  26561      */
  26562     readonly animVal: boolean;
  26563     /**
  26564      * The **`baseVal`** property of the SVGAnimatedBoolean interface is the value of the associated animatable boolean SVG attribute in its base (none-animated) state.
  26565      *
  26566      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedBoolean/baseVal)
  26567      */
  26568     baseVal: boolean;
  26569 }
  26570 
  26571 declare var SVGAnimatedBoolean: {
  26572     prototype: SVGAnimatedBoolean;
  26573     new(): SVGAnimatedBoolean;
  26574 };
  26575 
  26576 /**
  26577  * The **`SVGAnimatedEnumeration`** interface describes attribute values which are constants from a particular enumeration and which can be animated.
  26578  *
  26579  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedEnumeration)
  26580  */
  26581 interface SVGAnimatedEnumeration {
  26582     /**
  26583      * The **`animVal`** property of the SVGAnimatedEnumeration interface contains the current value of an SVG enumeration.
  26584      *
  26585      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedEnumeration/animVal)
  26586      */
  26587     readonly animVal: number;
  26588     /**
  26589      * The **`baseVal`** property of the SVGAnimatedEnumeration interface contains the initial value of an SVG enumeration.
  26590      *
  26591      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedEnumeration/baseVal)
  26592      */
  26593     baseVal: number;
  26594 }
  26595 
  26596 declare var SVGAnimatedEnumeration: {
  26597     prototype: SVGAnimatedEnumeration;
  26598     new(): SVGAnimatedEnumeration;
  26599 };
  26600 
  26601 /**
  26602  * The **`SVGAnimatedInteger`** interface is used for attributes of basic type \<integer> which can be animated.
  26603  *
  26604  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedInteger)
  26605  */
  26606 interface SVGAnimatedInteger {
  26607     /**
  26608      * The **`animVal`** property of the SVGAnimatedInteger interface represents the animated value of an `<integer>`.
  26609      *
  26610      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedInteger/animVal)
  26611      */
  26612     readonly animVal: number;
  26613     /**
  26614      * The **`baseVal`** property of the SVGAnimatedInteger interface represents the base (non-animated) value of an animatable `<integer>`.
  26615      *
  26616      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedInteger/baseVal)
  26617      */
  26618     baseVal: number;
  26619 }
  26620 
  26621 declare var SVGAnimatedInteger: {
  26622     prototype: SVGAnimatedInteger;
  26623     new(): SVGAnimatedInteger;
  26624 };
  26625 
  26626 /**
  26627  * The **`SVGAnimatedLength`** interface represents attributes of type \<length> which can be animated.
  26628  *
  26629  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedLength)
  26630  */
  26631 interface SVGAnimatedLength {
  26632     /**
  26633      * The **`animVal`** property of the SVGAnimatedLength interface contains the current value of an SVG enumeration.
  26634      *
  26635      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedLength/animVal)
  26636      */
  26637     readonly animVal: SVGLength;
  26638     /**
  26639      * The **`baseVal`** property of the SVGAnimatedLength interface contains the initial value of an SVG enumeration.
  26640      *
  26641      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedLength/baseVal)
  26642      */
  26643     readonly baseVal: SVGLength;
  26644 }
  26645 
  26646 declare var SVGAnimatedLength: {
  26647     prototype: SVGAnimatedLength;
  26648     new(): SVGAnimatedLength;
  26649 };
  26650 
  26651 /**
  26652  * The **`SVGAnimatedLengthList`** interface is used for attributes of type SVGLengthList which can be animated.
  26653  *
  26654  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedLengthList)
  26655  */
  26656 interface SVGAnimatedLengthList {
  26657     /**
  26658      * The **`animVal`** read-only property of the SVGAnimatedLengthList interface represents the animated value of an attribute that accepts a list of `<length>`, `<percentage>`, or `<number>` values.
  26659      *
  26660      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedLengthList/animVal)
  26661      */
  26662     readonly animVal: SVGLengthList;
  26663     /**
  26664      * The **`baseVal`** read-only property of the SVGAnimatedLengthList interface represents the base (non-animated) value of an animatable attribute that accepts a list of `<length>`, `<percentage>`, or `<number>` values.
  26665      *
  26666      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedLengthList/baseVal)
  26667      */
  26668     readonly baseVal: SVGLengthList;
  26669 }
  26670 
  26671 declare var SVGAnimatedLengthList: {
  26672     prototype: SVGAnimatedLengthList;
  26673     new(): SVGAnimatedLengthList;
  26674 };
  26675 
  26676 /**
  26677  * The **`SVGAnimatedNumber`** interface represents attributes of type \<number> which can be animated.
  26678  *
  26679  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedNumber)
  26680  */
  26681 interface SVGAnimatedNumber {
  26682     /**
  26683      * The **`animVal`** read-only property of the SVGAnimatedNumber interface represents the animated value of an SVG element's numeric attribute.
  26684      *
  26685      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedNumber/animVal)
  26686      */
  26687     readonly animVal: number;
  26688     /**
  26689      * The **`baseVal`** property of the SVGAnimatedNumber interface represents the base (non-animated) value of an animatable numeric attribute.
  26690      *
  26691      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedNumber/baseVal)
  26692      */
  26693     baseVal: number;
  26694 }
  26695 
  26696 declare var SVGAnimatedNumber: {
  26697     prototype: SVGAnimatedNumber;
  26698     new(): SVGAnimatedNumber;
  26699 };
  26700 
  26701 /**
  26702  * The **`SVGAnimatedNumberList`** interface represents a list of attributes of type \<number> which can be animated.
  26703  *
  26704  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedNumberList)
  26705  */
  26706 interface SVGAnimatedNumberList {
  26707     /**
  26708      * The **`animVal`** read-only property of the SVGAnimatedNumberList interface represents the current animated value of an animatable attribute that accepts a list of `<number>` values.
  26709      *
  26710      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedNumberList/animVal)
  26711      */
  26712     readonly animVal: SVGNumberList;
  26713     /**
  26714      * The **`baseVal`** read-only property of the SVGAnimatedNumberList interface represents the base (non-animated) value of an animatable attribute that accepts a list of `<number>` values.
  26715      *
  26716      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedNumberList/baseVal)
  26717      */
  26718     readonly baseVal: SVGNumberList;
  26719 }
  26720 
  26721 declare var SVGAnimatedNumberList: {
  26722     prototype: SVGAnimatedNumberList;
  26723     new(): SVGAnimatedNumberList;
  26724 };
  26725 
  26726 interface SVGAnimatedPoints {
  26727     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPolygonElement/animatedPoints) */
  26728     readonly animatedPoints: SVGPointList;
  26729     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPolygonElement/points) */
  26730     readonly points: SVGPointList;
  26731 }
  26732 
  26733 /**
  26734  * The **`SVGAnimatedPreserveAspectRatio`** interface represents attributes of type SVGPreserveAspectRatio which can be animated.
  26735  *
  26736  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedPreserveAspectRatio)
  26737  */
  26738 interface SVGAnimatedPreserveAspectRatio {
  26739     /**
  26740      * The **`animVal`** read-only property of the SVGAnimatedPreserveAspectRatio interface represents the value of the preserveAspectRatio attribute of an SVG element after any animations or transformations are applied.
  26741      *
  26742      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedPreserveAspectRatio/animVal)
  26743      */
  26744     readonly animVal: SVGPreserveAspectRatio;
  26745     /**
  26746      * The **`baseVal`** read-only property of the SVGAnimatedPreserveAspectRatio interface represents the base (non-animated) value of the preserveAspectRatio attribute of an SVG element.
  26747      *
  26748      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedPreserveAspectRatio/baseVal)
  26749      */
  26750     readonly baseVal: SVGPreserveAspectRatio;
  26751 }
  26752 
  26753 declare var SVGAnimatedPreserveAspectRatio: {
  26754     prototype: SVGAnimatedPreserveAspectRatio;
  26755     new(): SVGAnimatedPreserveAspectRatio;
  26756 };
  26757 
  26758 /**
  26759  * The **`SVGAnimatedRect`** interface represents an SVGRect attribute that can be animated.
  26760  *
  26761  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedRect)
  26762  */
  26763 interface SVGAnimatedRect {
  26764     /**
  26765      * The **`animVal`** read-only property of the SVGAnimatedRect interface represents the current animated value of the `viewBox` attribute of an SVG element as a read-only DOMRectReadOnly object.
  26766      *
  26767      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedRect/animVal)
  26768      */
  26769     readonly animVal: DOMRectReadOnly;
  26770     /**
  26771      * The **`baseVal`** read-only property of the SVGAnimatedRect interface represents the current non-animated value of the `viewBox` attribute of an SVG element.
  26772      *
  26773      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedRect/baseVal)
  26774      */
  26775     readonly baseVal: DOMRect;
  26776 }
  26777 
  26778 declare var SVGAnimatedRect: {
  26779     prototype: SVGAnimatedRect;
  26780     new(): SVGAnimatedRect;
  26781 };
  26782 
  26783 /**
  26784  * The **`SVGAnimatedString`** interface represents string attributes which can be animated from each SVG declaration.
  26785  *
  26786  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedString)
  26787  */
  26788 interface SVGAnimatedString {
  26789     /**
  26790      * The `animVal` read-only property of the SVGAnimatedString interface contains the same value as the SVGAnimatedString.baseVal property.
  26791      *
  26792      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedString/animVal)
  26793      */
  26794     readonly animVal: string;
  26795     /**
  26796      * BaseVal gets or sets the base value of the given attribute before any animations are applied.
  26797      *
  26798      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedString/baseVal)
  26799      */
  26800     baseVal: string;
  26801 }
  26802 
  26803 declare var SVGAnimatedString: {
  26804     prototype: SVGAnimatedString;
  26805     new(): SVGAnimatedString;
  26806 };
  26807 
  26808 /**
  26809  * The **`SVGAnimatedTransformList`** interface represents attributes which take a list of numbers and which can be animated.
  26810  *
  26811  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedTransformList)
  26812  */
  26813 interface SVGAnimatedTransformList {
  26814     /**
  26815      * The **`animVal`** read-only property of the SVGAnimatedTransformList interface represents the animated value of the `transform` attribute of an SVG element.
  26816      *
  26817      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedTransformList/animVal)
  26818      */
  26819     readonly animVal: SVGTransformList;
  26820     /**
  26821      * The **`baseVal`** read-only property of the SVGAnimatedTransformList interface represents the non-animated value of the `transform` attribute of an SVG element.
  26822      *
  26823      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedTransformList/baseVal)
  26824      */
  26825     readonly baseVal: SVGTransformList;
  26826 }
  26827 
  26828 declare var SVGAnimatedTransformList: {
  26829     prototype: SVGAnimatedTransformList;
  26830     new(): SVGAnimatedTransformList;
  26831 };
  26832 
  26833 /**
  26834  * The **`SVGAnimationElement`** interface is the base interface for all of the animation element interfaces: SVGAnimateElement, SVGSetElement, SVGAnimateColorElement, SVGAnimateMotionElement and SVGAnimateTransformElement.
  26835  *
  26836  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement)
  26837  */
  26838 interface SVGAnimationElement extends SVGElement, SVGTests {
  26839     /**
  26840      * The **`targetElement`** read-only property of the SVGAnimationElement interface refers to the element which is being animated.
  26841      *
  26842      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement/targetElement)
  26843      */
  26844     readonly targetElement: SVGElement | null;
  26845     /**
  26846      * The SVGAnimationElement method `beginElement()` creates a begin instance time for the current time.
  26847      *
  26848      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement/beginElement)
  26849      */
  26850     beginElement(): void;
  26851     /**
  26852      * The SVGAnimationElement method `beginElementAt()` creates a begin instance time for the current time plus the specified offset.
  26853      *
  26854      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement/beginElementAt)
  26855      */
  26856     beginElementAt(offset: number): void;
  26857     /**
  26858      * The SVGAnimationElement method `endElement()` creates an end instance time for the current time.
  26859      *
  26860      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement/endElement)
  26861      */
  26862     endElement(): void;
  26863     /**
  26864      * The SVGAnimationElement method `endElementAt()` creates an end instance time for the current time plus the specified offset.
  26865      *
  26866      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement/endElementAt)
  26867      */
  26868     endElementAt(offset: number): void;
  26869     /**
  26870      * The SVGAnimationElement method `getCurrentTime()` returns a float representing the current time in seconds relative to time zero for the given time container.
  26871      *
  26872      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement/getCurrentTime)
  26873      */
  26874     getCurrentTime(): number;
  26875     /**
  26876      * The SVGAnimationElement method `getSimpleDuration()` returns a float representing the number of seconds for the simple duration for this animation.
  26877      *
  26878      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement/getSimpleDuration)
  26879      */
  26880     getSimpleDuration(): number;
  26881     /**
  26882      * The SVGAnimationElement method `getStartTime()` returns a float representing the start time, in seconds, for this animation element's current interval, if it exists, regardless of whether the interval has begun yet.
  26883      *
  26884      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement/getStartTime)
  26885      */
  26886     getStartTime(): number;
  26887     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimationElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  26888     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  26889     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAnimationElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  26890     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  26891 }
  26892 
  26893 declare var SVGAnimationElement: {
  26894     prototype: SVGAnimationElement;
  26895     new(): SVGAnimationElement;
  26896 };
  26897 
  26898 /**
  26899  * The **`SVGCircleElement`** interface is an interface for the circle element.
  26900  *
  26901  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGCircleElement)
  26902  */
  26903 interface SVGCircleElement extends SVGGeometryElement {
  26904     /**
  26905      * The **`cx`** read-only property of the SVGCircleElement interface reflects the cx attribute of a circle element and by that defines the x-coordinate of the circle's center.< If unspecified, the effect is as if the value is set to `0`.
  26906      *
  26907      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGCircleElement/cx)
  26908      */
  26909     readonly cx: SVGAnimatedLength;
  26910     /**
  26911      * The **`cy`** read-only property of the SVGCircleElement interface reflects the cy attribute of a circle element and by that defines the y-coordinate of the circle's center.
  26912      *
  26913      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGCircleElement/cy)
  26914      */
  26915     readonly cy: SVGAnimatedLength;
  26916     /**
  26917      * The **`r`** read-only property of the SVGCircleElement interface reflects the r attribute of a circle element and by that defines the radius of the circle.
  26918      *
  26919      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGCircleElement/r)
  26920      */
  26921     readonly r: SVGAnimatedLength;
  26922     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCircleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  26923     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  26924     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCircleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  26925     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  26926 }
  26927 
  26928 declare var SVGCircleElement: {
  26929     prototype: SVGCircleElement;
  26930     new(): SVGCircleElement;
  26931 };
  26932 
  26933 /**
  26934  * The **`SVGClipPathElement`** interface provides access to the properties of clipPath elements, as well as methods to manipulate them.
  26935  *
  26936  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGClipPathElement)
  26937  */
  26938 interface SVGClipPathElement extends SVGElement {
  26939     /**
  26940      * The read-only **`clipPathUnits`** property of the SVGClipPathElement interface reflects the clipPathUnits attribute of a clipPath element which defines the coordinate system to use for the content of the element.
  26941      *
  26942      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGClipPathElement/clipPathUnits)
  26943      */
  26944     readonly clipPathUnits: SVGAnimatedEnumeration;
  26945     /**
  26946      * The read-only **`transform`** property of the SVGClipPathElement interface reflects the transform attribute of a clipPath element, that is a list of transformations applied to the element.
  26947      *
  26948      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGClipPathElement/transform)
  26949      */
  26950     readonly transform: SVGAnimatedTransformList;
  26951     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGClipPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  26952     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  26953     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGClipPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  26954     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  26955 }
  26956 
  26957 declare var SVGClipPathElement: {
  26958     prototype: SVGClipPathElement;
  26959     new(): SVGClipPathElement;
  26960 };
  26961 
  26962 /**
  26963  * The **`SVGComponentTransferFunctionElement`** interface represents a base interface used by the component transfer function interfaces.
  26964  *
  26965  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGComponentTransferFunctionElement)
  26966  */
  26967 interface SVGComponentTransferFunctionElement extends SVGElement {
  26968     /**
  26969      * The **`amplitude`** read-only property of the SVGComponentTransferFunctionElement interface reflects the amplitude attribute of the given element.
  26970      *
  26971      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGComponentTransferFunctionElement/amplitude)
  26972      */
  26973     readonly amplitude: SVGAnimatedNumber;
  26974     /**
  26975      * The **`exponent`** read-only property of the SVGComponentTransferFunctionElement interface reflects the exponent attribute of the given element.
  26976      *
  26977      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGComponentTransferFunctionElement/exponent)
  26978      */
  26979     readonly exponent: SVGAnimatedNumber;
  26980     /**
  26981      * The **`intercept`** read-only property of the SVGComponentTransferFunctionElement interface reflects the intercept attribute of the given element.
  26982      *
  26983      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGComponentTransferFunctionElement/intercept)
  26984      */
  26985     readonly intercept: SVGAnimatedNumber;
  26986     /**
  26987      * The **`offset`** read-only property of the SVGComponentTransferFunctionElement interface reflects the offset attribute of the given element.
  26988      *
  26989      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGComponentTransferFunctionElement/offset)
  26990      */
  26991     readonly offset: SVGAnimatedNumber;
  26992     /**
  26993      * The **`slope`** read-only property of the SVGComponentTransferFunctionElement interface reflects the slope attribute of the given element.
  26994      *
  26995      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGComponentTransferFunctionElement/slope)
  26996      */
  26997     readonly slope: SVGAnimatedNumber;
  26998     /**
  26999      * The **`tableValues`** read-only property of the SVGComponentTransferFunctionElement interface reflects the tableValues attribute of the given element.
  27000      *
  27001      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGComponentTransferFunctionElement/tableValues)
  27002      */
  27003     readonly tableValues: SVGAnimatedNumberList;
  27004     /**
  27005      * The **`type`** read-only property of the SVGComponentTransferFunctionElement interface reflects the type attribute of the given element.
  27006      *
  27007      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGComponentTransferFunctionElement/type)
  27008      */
  27009     readonly type: SVGAnimatedEnumeration;
  27010     readonly SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: 0;
  27011     readonly SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: 1;
  27012     readonly SVG_FECOMPONENTTRANSFER_TYPE_TABLE: 2;
  27013     readonly SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: 3;
  27014     readonly SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: 4;
  27015     readonly SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: 5;
  27016     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGComponentTransferFunctionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27017     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27018     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGComponentTransferFunctionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27019     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27020 }
  27021 
  27022 declare var SVGComponentTransferFunctionElement: {
  27023     prototype: SVGComponentTransferFunctionElement;
  27024     new(): SVGComponentTransferFunctionElement;
  27025     readonly SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: 0;
  27026     readonly SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: 1;
  27027     readonly SVG_FECOMPONENTTRANSFER_TYPE_TABLE: 2;
  27028     readonly SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: 3;
  27029     readonly SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: 4;
  27030     readonly SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: 5;
  27031 };
  27032 
  27033 /**
  27034  * The **`SVGDefsElement`** interface corresponds to the defs element.
  27035  *
  27036  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGDefsElement)
  27037  */
  27038 interface SVGDefsElement extends SVGGraphicsElement {
  27039     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDefsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27040     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27041     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDefsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27042     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27043 }
  27044 
  27045 declare var SVGDefsElement: {
  27046     prototype: SVGDefsElement;
  27047     new(): SVGDefsElement;
  27048 };
  27049 
  27050 /**
  27051  * The **`SVGDescElement`** interface corresponds to the desc element.
  27052  *
  27053  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGDescElement)
  27054  */
  27055 interface SVGDescElement extends SVGElement {
  27056     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDescElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27057     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27058     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDescElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27059     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27060 }
  27061 
  27062 declare var SVGDescElement: {
  27063     prototype: SVGDescElement;
  27064     new(): SVGDescElement;
  27065 };
  27066 
  27067 interface SVGElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {
  27068 }
  27069 
  27070 /**
  27071  * All of the SVG DOM interfaces that correspond directly to elements in the SVG language derive from the `SVGElement` interface.
  27072  *
  27073  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGElement)
  27074  */
  27075 interface SVGElement extends Element, ElementCSSInlineStyle, GlobalEventHandlers, HTMLOrSVGElement {
  27076     /** @deprecated */
  27077     readonly className: any;
  27078     /**
  27079      * The **`ownerSVGElement`** property of the SVGElement interface reflects the nearest ancestor svg element.
  27080      *
  27081      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGElement/ownerSVGElement)
  27082      */
  27083     readonly ownerSVGElement: SVGSVGElement | null;
  27084     /**
  27085      * The **`viewportElement`** property of the SVGElement interface represents the `SVGElement` which established the current viewport.
  27086      *
  27087      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGElement/viewportElement)
  27088      */
  27089     readonly viewportElement: SVGElement | null;
  27090     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27091     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27092     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27093     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27094 }
  27095 
  27096 declare var SVGElement: {
  27097     prototype: SVGElement;
  27098     new(): SVGElement;
  27099 };
  27100 
  27101 /**
  27102  * The **`SVGEllipseElement`** interface provides access to the properties of ellipse elements.
  27103  *
  27104  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGEllipseElement)
  27105  */
  27106 interface SVGEllipseElement extends SVGGeometryElement {
  27107     /**
  27108      * The **`cx`** read-only property of the SVGEllipseElement interface describes the x-axis coordinate of the center of the ellipse as an SVGAnimatedLength.
  27109      *
  27110      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGEllipseElement/cx)
  27111      */
  27112     readonly cx: SVGAnimatedLength;
  27113     /**
  27114      * The **`cy`** read-only property of the SVGEllipseElement interface describes the y-axis coordinate of the center of the ellipse as an SVGAnimatedLength.
  27115      *
  27116      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGEllipseElement/cy)
  27117      */
  27118     readonly cy: SVGAnimatedLength;
  27119     /**
  27120      * The **`rx`** read-only property of the SVGEllipseElement interface describes the x-axis radius of the ellipse as an SVGAnimatedLength.
  27121      *
  27122      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGEllipseElement/rx)
  27123      */
  27124     readonly rx: SVGAnimatedLength;
  27125     /**
  27126      * The **`ry`** read-only property of the SVGEllipseElement interface describes the y-axis radius of the ellipse as an SVGAnimatedLength.
  27127      *
  27128      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGEllipseElement/ry)
  27129      */
  27130     readonly ry: SVGAnimatedLength;
  27131     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGEllipseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27132     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27133     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGEllipseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27134     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27135 }
  27136 
  27137 declare var SVGEllipseElement: {
  27138     prototype: SVGEllipseElement;
  27139     new(): SVGEllipseElement;
  27140 };
  27141 
  27142 /**
  27143  * The **`SVGFEBlendElement`** interface corresponds to the feBlend element.
  27144  *
  27145  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEBlendElement)
  27146  */
  27147 interface SVGFEBlendElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  27148     /**
  27149      * The **`in1`** read-only property of the SVGFEBlendElement interface reflects the in attribute of the given element.
  27150      *
  27151      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEBlendElement/in1)
  27152      */
  27153     readonly in1: SVGAnimatedString;
  27154     /**
  27155      * The **`in2`** read-only property of the SVGFEBlendElement interface reflects the in2 attribute of the given element.
  27156      *
  27157      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEBlendElement/in2)
  27158      */
  27159     readonly in2: SVGAnimatedString;
  27160     /**
  27161      * The **`mode`** read-only property of the SVGFEBlendElement interface reflects the mode attribute of the given element.
  27162      *
  27163      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEBlendElement/mode)
  27164      */
  27165     readonly mode: SVGAnimatedEnumeration;
  27166     readonly SVG_FEBLEND_MODE_UNKNOWN: 0;
  27167     readonly SVG_FEBLEND_MODE_NORMAL: 1;
  27168     readonly SVG_FEBLEND_MODE_MULTIPLY: 2;
  27169     readonly SVG_FEBLEND_MODE_SCREEN: 3;
  27170     readonly SVG_FEBLEND_MODE_DARKEN: 4;
  27171     readonly SVG_FEBLEND_MODE_LIGHTEN: 5;
  27172     readonly SVG_FEBLEND_MODE_OVERLAY: 6;
  27173     readonly SVG_FEBLEND_MODE_COLOR_DODGE: 7;
  27174     readonly SVG_FEBLEND_MODE_COLOR_BURN: 8;
  27175     readonly SVG_FEBLEND_MODE_HARD_LIGHT: 9;
  27176     readonly SVG_FEBLEND_MODE_SOFT_LIGHT: 10;
  27177     readonly SVG_FEBLEND_MODE_DIFFERENCE: 11;
  27178     readonly SVG_FEBLEND_MODE_EXCLUSION: 12;
  27179     readonly SVG_FEBLEND_MODE_HUE: 13;
  27180     readonly SVG_FEBLEND_MODE_SATURATION: 14;
  27181     readonly SVG_FEBLEND_MODE_COLOR: 15;
  27182     readonly SVG_FEBLEND_MODE_LUMINOSITY: 16;
  27183     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEBlendElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27184     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27185     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEBlendElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27186     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27187 }
  27188 
  27189 declare var SVGFEBlendElement: {
  27190     prototype: SVGFEBlendElement;
  27191     new(): SVGFEBlendElement;
  27192     readonly SVG_FEBLEND_MODE_UNKNOWN: 0;
  27193     readonly SVG_FEBLEND_MODE_NORMAL: 1;
  27194     readonly SVG_FEBLEND_MODE_MULTIPLY: 2;
  27195     readonly SVG_FEBLEND_MODE_SCREEN: 3;
  27196     readonly SVG_FEBLEND_MODE_DARKEN: 4;
  27197     readonly SVG_FEBLEND_MODE_LIGHTEN: 5;
  27198     readonly SVG_FEBLEND_MODE_OVERLAY: 6;
  27199     readonly SVG_FEBLEND_MODE_COLOR_DODGE: 7;
  27200     readonly SVG_FEBLEND_MODE_COLOR_BURN: 8;
  27201     readonly SVG_FEBLEND_MODE_HARD_LIGHT: 9;
  27202     readonly SVG_FEBLEND_MODE_SOFT_LIGHT: 10;
  27203     readonly SVG_FEBLEND_MODE_DIFFERENCE: 11;
  27204     readonly SVG_FEBLEND_MODE_EXCLUSION: 12;
  27205     readonly SVG_FEBLEND_MODE_HUE: 13;
  27206     readonly SVG_FEBLEND_MODE_SATURATION: 14;
  27207     readonly SVG_FEBLEND_MODE_COLOR: 15;
  27208     readonly SVG_FEBLEND_MODE_LUMINOSITY: 16;
  27209 };
  27210 
  27211 /**
  27212  * The **`SVGFEColorMatrixElement`** interface corresponds to the feColorMatrix element.
  27213  *
  27214  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEColorMatrixElement)
  27215  */
  27216 interface SVGFEColorMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  27217     /**
  27218      * The **`in1`** read-only property of the SVGFEColorMatrixElement interface reflects the in attribute of the given element.
  27219      *
  27220      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEColorMatrixElement/in1)
  27221      */
  27222     readonly in1: SVGAnimatedString;
  27223     /**
  27224      * The **`type`** read-only property of the SVGFEColorMatrixElement interface reflects the type attribute of the given element.
  27225      *
  27226      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEColorMatrixElement/type)
  27227      */
  27228     readonly type: SVGAnimatedEnumeration;
  27229     /**
  27230      * The **`values`** read-only property of the SVGFEColorMatrixElement interface reflects the values attribute of the given element.
  27231      *
  27232      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEColorMatrixElement/values)
  27233      */
  27234     readonly values: SVGAnimatedNumberList;
  27235     readonly SVG_FECOLORMATRIX_TYPE_UNKNOWN: 0;
  27236     readonly SVG_FECOLORMATRIX_TYPE_MATRIX: 1;
  27237     readonly SVG_FECOLORMATRIX_TYPE_SATURATE: 2;
  27238     readonly SVG_FECOLORMATRIX_TYPE_HUEROTATE: 3;
  27239     readonly SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: 4;
  27240     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEColorMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27241     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27242     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEColorMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27243     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27244 }
  27245 
  27246 declare var SVGFEColorMatrixElement: {
  27247     prototype: SVGFEColorMatrixElement;
  27248     new(): SVGFEColorMatrixElement;
  27249     readonly SVG_FECOLORMATRIX_TYPE_UNKNOWN: 0;
  27250     readonly SVG_FECOLORMATRIX_TYPE_MATRIX: 1;
  27251     readonly SVG_FECOLORMATRIX_TYPE_SATURATE: 2;
  27252     readonly SVG_FECOLORMATRIX_TYPE_HUEROTATE: 3;
  27253     readonly SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: 4;
  27254 };
  27255 
  27256 /**
  27257  * The **`SVGFEComponentTransferElement`** interface corresponds to the feComponentTransfer element.
  27258  *
  27259  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEComponentTransferElement)
  27260  */
  27261 interface SVGFEComponentTransferElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  27262     /**
  27263      * The **`in1`** read-only property of the SVGFEComponentTransferElement interface reflects the in attribute of the given feComponentTransfer element.
  27264      *
  27265      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEComponentTransferElement/in1)
  27266      */
  27267     readonly in1: SVGAnimatedString;
  27268     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEComponentTransferElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27269     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27270     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEComponentTransferElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27271     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27272 }
  27273 
  27274 declare var SVGFEComponentTransferElement: {
  27275     prototype: SVGFEComponentTransferElement;
  27276     new(): SVGFEComponentTransferElement;
  27277 };
  27278 
  27279 /**
  27280  * The **`SVGFECompositeElement`** interface corresponds to the feComposite element.
  27281  *
  27282  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFECompositeElement)
  27283  */
  27284 interface SVGFECompositeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  27285     /**
  27286      * The **`in1`** read-only property of the SVGFECompositeElement interface reflects the in attribute of the given feComposite element.
  27287      *
  27288      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFECompositeElement/in1)
  27289      */
  27290     readonly in1: SVGAnimatedString;
  27291     /**
  27292      * The **`in2`** read-only property of the SVGFECompositeElement interface reflects the in2 attribute of the given feComposite element.
  27293      *
  27294      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFECompositeElement/in2)
  27295      */
  27296     readonly in2: SVGAnimatedString;
  27297     /**
  27298      * The **`k1`** read-only property of the SVGFECompositeElement interface reflects the k1 attribute of the given feComposite element.
  27299      *
  27300      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFECompositeElement/k1)
  27301      */
  27302     readonly k1: SVGAnimatedNumber;
  27303     /**
  27304      * The **`k2`** read-only property of the SVGFECompositeElement interface reflects the k2 attribute of the given feComposite element.
  27305      *
  27306      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFECompositeElement/k2)
  27307      */
  27308     readonly k2: SVGAnimatedNumber;
  27309     /**
  27310      * The **`k3`** read-only property of the SVGFECompositeElement interface reflects the k3 attribute of the given feComposite element.
  27311      *
  27312      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFECompositeElement/k3)
  27313      */
  27314     readonly k3: SVGAnimatedNumber;
  27315     /**
  27316      * The **`k4`** read-only property of the SVGFECompositeElement interface reflects the k4 attribute of the given feComposite element.
  27317      *
  27318      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFECompositeElement/k4)
  27319      */
  27320     readonly k4: SVGAnimatedNumber;
  27321     /**
  27322      * The **`operator`** read-only property of the SVGFECompositeElement interface reflects the operator attribute of the given feComposite element.
  27323      *
  27324      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFECompositeElement/operator)
  27325      */
  27326     readonly operator: SVGAnimatedEnumeration;
  27327     readonly SVG_FECOMPOSITE_OPERATOR_UNKNOWN: 0;
  27328     readonly SVG_FECOMPOSITE_OPERATOR_OVER: 1;
  27329     readonly SVG_FECOMPOSITE_OPERATOR_IN: 2;
  27330     readonly SVG_FECOMPOSITE_OPERATOR_OUT: 3;
  27331     readonly SVG_FECOMPOSITE_OPERATOR_ATOP: 4;
  27332     readonly SVG_FECOMPOSITE_OPERATOR_XOR: 5;
  27333     readonly SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: 6;
  27334     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFECompositeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27335     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27336     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFECompositeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27337     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27338 }
  27339 
  27340 declare var SVGFECompositeElement: {
  27341     prototype: SVGFECompositeElement;
  27342     new(): SVGFECompositeElement;
  27343     readonly SVG_FECOMPOSITE_OPERATOR_UNKNOWN: 0;
  27344     readonly SVG_FECOMPOSITE_OPERATOR_OVER: 1;
  27345     readonly SVG_FECOMPOSITE_OPERATOR_IN: 2;
  27346     readonly SVG_FECOMPOSITE_OPERATOR_OUT: 3;
  27347     readonly SVG_FECOMPOSITE_OPERATOR_ATOP: 4;
  27348     readonly SVG_FECOMPOSITE_OPERATOR_XOR: 5;
  27349     readonly SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: 6;
  27350 };
  27351 
  27352 /**
  27353  * The **`SVGFEConvolveMatrixElement`** interface corresponds to the feConvolveMatrix element.
  27354  *
  27355  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement)
  27356  */
  27357 interface SVGFEConvolveMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  27358     /**
  27359      * The **`bias`** read-only property of the SVGFEConvolveMatrixElement interface reflects the bias attribute of the given feConvolveMatrix element.
  27360      *
  27361      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement/bias)
  27362      */
  27363     readonly bias: SVGAnimatedNumber;
  27364     /**
  27365      * The **`divisor`** read-only property of the SVGFEConvolveMatrixElement interface reflects the divisor attribute of the given feConvolveMatrix element.
  27366      *
  27367      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement/divisor)
  27368      */
  27369     readonly divisor: SVGAnimatedNumber;
  27370     /**
  27371      * The **`edgeMode`** read-only property of the SVGFEConvolveMatrixElement interface reflects the edgeMode attribute of the given feConvolveMatrix element.
  27372      *
  27373      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement/edgeMode)
  27374      */
  27375     readonly edgeMode: SVGAnimatedEnumeration;
  27376     /**
  27377      * The **`in1`** read-only property of the SVGFEConvolveMatrixElement interface reflects the in attribute of the given feConvolveMatrix element.
  27378      *
  27379      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement/in1)
  27380      */
  27381     readonly in1: SVGAnimatedString;
  27382     /**
  27383      * The **`kernelMatrix`** read-only property of the SVGFEConvolveMatrixElement interface reflects the kernelMatrix attribute of the given feConvolveMatrix element.
  27384      *
  27385      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement/kernelMatrix)
  27386      */
  27387     readonly kernelMatrix: SVGAnimatedNumberList;
  27388     /**
  27389      * The **`kernelUnitLengthX`** read-only property of the SVGFEConvolveMatrixElement interface reflects the kernelUnitLength attribute of the given feConvolveMatrix element.
  27390      *
  27391      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement/kernelUnitLengthX)
  27392      */
  27393     readonly kernelUnitLengthX: SVGAnimatedNumber;
  27394     /**
  27395      * The **`kernelUnitLengthY`** read-only property of the SVGFEConvolveMatrixElement interface reflects the kernelUnitLength attribute of the given feConvolveMatrix element.
  27396      *
  27397      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement/kernelUnitLengthY)
  27398      */
  27399     readonly kernelUnitLengthY: SVGAnimatedNumber;
  27400     /**
  27401      * The **`orderX`** read-only property of the SVGFEConvolveMatrixElement interface reflects the order attribute of the given feConvolveMatrix element.
  27402      *
  27403      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement/orderX)
  27404      */
  27405     readonly orderX: SVGAnimatedInteger;
  27406     /**
  27407      * The **`orderY`** read-only property of the SVGFEConvolveMatrixElement interface reflects the order attribute of the given feConvolveMatrix element.
  27408      *
  27409      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement/orderY)
  27410      */
  27411     readonly orderY: SVGAnimatedInteger;
  27412     /**
  27413      * The **`preserveAlpha`** read-only property of the SVGFEConvolveMatrixElement interface reflects the preserveAlpha attribute of the given feConvolveMatrix element.
  27414      *
  27415      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement/preserveAlpha)
  27416      */
  27417     readonly preserveAlpha: SVGAnimatedBoolean;
  27418     /**
  27419      * The **`targetX`** read-only property of the SVGFEConvolveMatrixElement interface reflects the targetX attribute of the given feConvolveMatrix element.
  27420      *
  27421      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement/targetX)
  27422      */
  27423     readonly targetX: SVGAnimatedInteger;
  27424     /**
  27425      * The **`targetY`** read-only property of the SVGFEConvolveMatrixElement interface reflects the targetY attribute of the given feConvolveMatrix element.
  27426      *
  27427      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement/targetY)
  27428      */
  27429     readonly targetY: SVGAnimatedInteger;
  27430     readonly SVG_EDGEMODE_UNKNOWN: 0;
  27431     readonly SVG_EDGEMODE_DUPLICATE: 1;
  27432     readonly SVG_EDGEMODE_WRAP: 2;
  27433     readonly SVG_EDGEMODE_NONE: 3;
  27434     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEConvolveMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27435     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27436     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEConvolveMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27437     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27438 }
  27439 
  27440 declare var SVGFEConvolveMatrixElement: {
  27441     prototype: SVGFEConvolveMatrixElement;
  27442     new(): SVGFEConvolveMatrixElement;
  27443     readonly SVG_EDGEMODE_UNKNOWN: 0;
  27444     readonly SVG_EDGEMODE_DUPLICATE: 1;
  27445     readonly SVG_EDGEMODE_WRAP: 2;
  27446     readonly SVG_EDGEMODE_NONE: 3;
  27447 };
  27448 
  27449 /**
  27450  * The **`SVGFEDiffuseLightingElement`** interface corresponds to the feDiffuseLighting element.
  27451  *
  27452  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDiffuseLightingElement)
  27453  */
  27454 interface SVGFEDiffuseLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  27455     /**
  27456      * The **`diffuseConstant`** read-only property of the SVGFEDiffuseLightingElement interface reflects the diffuseConstant attribute of the given feDiffuseLighting element.
  27457      *
  27458      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDiffuseLightingElement/diffuseConstant)
  27459      */
  27460     readonly diffuseConstant: SVGAnimatedNumber;
  27461     /**
  27462      * The **`in1`** read-only property of the SVGFEDiffuseLightingElement interface reflects the in attribute of the given feDiffuseLighting element.
  27463      *
  27464      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDiffuseLightingElement/in1)
  27465      */
  27466     readonly in1: SVGAnimatedString;
  27467     /**
  27468      * The **`kernelUnitLengthX`** read-only property of the SVGFEDiffuseLightingElement interface reflects the X component of the kernelUnitLength attribute of the given feDiffuseLighting element.
  27469      *
  27470      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDiffuseLightingElement/kernelUnitLengthX)
  27471      */
  27472     readonly kernelUnitLengthX: SVGAnimatedNumber;
  27473     /**
  27474      * The **`kernelUnitLengthY`** read-only property of the SVGFEDiffuseLightingElement interface reflects the Y component of the kernelUnitLength attribute of the given feDiffuseLighting element.
  27475      *
  27476      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDiffuseLightingElement/kernelUnitLengthY)
  27477      */
  27478     readonly kernelUnitLengthY: SVGAnimatedNumber;
  27479     /**
  27480      * The **`surfaceScale`** read-only property of the SVGFEDiffuseLightingElement interface reflects the surfaceScale attribute of the given feDiffuseLighting element.
  27481      *
  27482      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDiffuseLightingElement/surfaceScale)
  27483      */
  27484     readonly surfaceScale: SVGAnimatedNumber;
  27485     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDiffuseLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27486     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27487     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDiffuseLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27488     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27489 }
  27490 
  27491 declare var SVGFEDiffuseLightingElement: {
  27492     prototype: SVGFEDiffuseLightingElement;
  27493     new(): SVGFEDiffuseLightingElement;
  27494 };
  27495 
  27496 /**
  27497  * The **`SVGFEDisplacementMapElement`** interface corresponds to the feDisplacementMap element.
  27498  *
  27499  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDisplacementMapElement)
  27500  */
  27501 interface SVGFEDisplacementMapElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  27502     /**
  27503      * The **`in1`** read-only property of the SVGFEDisplacementMapElement interface reflects the in attribute of the given feDisplacementMap element.
  27504      *
  27505      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDisplacementMapElement/in1)
  27506      */
  27507     readonly in1: SVGAnimatedString;
  27508     /**
  27509      * The **`in2`** read-only property of the SVGFEDisplacementMapElement interface reflects the in2 attribute of the given feDisplacementMap element.
  27510      *
  27511      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDisplacementMapElement/in2)
  27512      */
  27513     readonly in2: SVGAnimatedString;
  27514     /**
  27515      * The **`scale`** read-only property of the SVGFEDisplacementMapElement interface reflects the scale attribute of the given feDisplacementMap element.
  27516      *
  27517      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDisplacementMapElement/scale)
  27518      */
  27519     readonly scale: SVGAnimatedNumber;
  27520     /**
  27521      * The **`xChannelSelector`** read-only property of the SVGFEDisplacementMapElement interface reflects the xChannelSelector attribute of the given feDisplacementMap element.
  27522      *
  27523      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDisplacementMapElement/xChannelSelector)
  27524      */
  27525     readonly xChannelSelector: SVGAnimatedEnumeration;
  27526     /**
  27527      * The **`yChannelSelector`** read-only property of the SVGFEDisplacementMapElement interface reflects the yChannelSelector attribute of the given feDisplacementMap element.
  27528      *
  27529      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDisplacementMapElement/yChannelSelector)
  27530      */
  27531     readonly yChannelSelector: SVGAnimatedEnumeration;
  27532     readonly SVG_CHANNEL_UNKNOWN: 0;
  27533     readonly SVG_CHANNEL_R: 1;
  27534     readonly SVG_CHANNEL_G: 2;
  27535     readonly SVG_CHANNEL_B: 3;
  27536     readonly SVG_CHANNEL_A: 4;
  27537     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDisplacementMapElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27538     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27539     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDisplacementMapElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27540     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27541 }
  27542 
  27543 declare var SVGFEDisplacementMapElement: {
  27544     prototype: SVGFEDisplacementMapElement;
  27545     new(): SVGFEDisplacementMapElement;
  27546     readonly SVG_CHANNEL_UNKNOWN: 0;
  27547     readonly SVG_CHANNEL_R: 1;
  27548     readonly SVG_CHANNEL_G: 2;
  27549     readonly SVG_CHANNEL_B: 3;
  27550     readonly SVG_CHANNEL_A: 4;
  27551 };
  27552 
  27553 /**
  27554  * The **`SVGFEDistantLightElement`** interface corresponds to the feDistantLight element.
  27555  *
  27556  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDistantLightElement)
  27557  */
  27558 interface SVGFEDistantLightElement extends SVGElement {
  27559     /**
  27560      * The **`azimuth`** read-only property of the SVGFEDistantLightElement interface reflects the azimuth attribute of the given feDistantLight element.
  27561      *
  27562      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDistantLightElement/azimuth)
  27563      */
  27564     readonly azimuth: SVGAnimatedNumber;
  27565     /**
  27566      * The **`elevation`** read-only property of the SVGFEDistantLightElement interface reflects the elevation attribute of the given feDistantLight element.
  27567      *
  27568      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDistantLightElement/elevation)
  27569      */
  27570     readonly elevation: SVGAnimatedNumber;
  27571     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDistantLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27572     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27573     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDistantLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27574     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27575 }
  27576 
  27577 declare var SVGFEDistantLightElement: {
  27578     prototype: SVGFEDistantLightElement;
  27579     new(): SVGFEDistantLightElement;
  27580 };
  27581 
  27582 /**
  27583  * The **`SVGFEDropShadowElement`** interface corresponds to the feDropShadow element.
  27584  *
  27585  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDropShadowElement)
  27586  */
  27587 interface SVGFEDropShadowElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  27588     /**
  27589      * The **`dx`** read-only property of the SVGFEDropShadowElement interface reflects the dx attribute of the given feDropShadow element.
  27590      *
  27591      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDropShadowElement/dx)
  27592      */
  27593     readonly dx: SVGAnimatedNumber;
  27594     /**
  27595      * The **`dy`** read-only property of the SVGFEDropShadowElement interface reflects the dy attribute of the given feDropShadow element.
  27596      *
  27597      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDropShadowElement/dy)
  27598      */
  27599     readonly dy: SVGAnimatedNumber;
  27600     /**
  27601      * The **`in1`** read-only property of the SVGFEDropShadowElement interface reflects the in attribute of the given feDropShadow element.
  27602      *
  27603      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDropShadowElement/in1)
  27604      */
  27605     readonly in1: SVGAnimatedString;
  27606     /**
  27607      * The **`stdDeviationX`** read-only property of the SVGFEDropShadowElement interface reflects the (possibly automatically computed) X component of the stdDeviation attribute of the given feDropShadow element.
  27608      *
  27609      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDropShadowElement/stdDeviationX)
  27610      */
  27611     readonly stdDeviationX: SVGAnimatedNumber;
  27612     /**
  27613      * The **`stdDeviationY`** read-only property of the SVGFEDropShadowElement interface reflects the (possibly automatically computed) Y component of the stdDeviation attribute of the given feDropShadow element.
  27614      *
  27615      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDropShadowElement/stdDeviationY)
  27616      */
  27617     readonly stdDeviationY: SVGAnimatedNumber;
  27618     /**
  27619      * The `setStdDeviation()` method of the SVGFEDropShadowElement interface sets the values for the stdDeviation attribute.
  27620      *
  27621      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDropShadowElement/setStdDeviation)
  27622      */
  27623     setStdDeviation(stdDeviationX: number, stdDeviationY: number): void;
  27624     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDropShadowElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27625     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27626     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDropShadowElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27627     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27628 }
  27629 
  27630 declare var SVGFEDropShadowElement: {
  27631     prototype: SVGFEDropShadowElement;
  27632     new(): SVGFEDropShadowElement;
  27633 };
  27634 
  27635 /**
  27636  * The **`SVGFEFloodElement`** interface corresponds to the feFlood element.
  27637  *
  27638  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFloodElement)
  27639  */
  27640 interface SVGFEFloodElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  27641     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFloodElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27642     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27643     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFloodElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27644     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27645 }
  27646 
  27647 declare var SVGFEFloodElement: {
  27648     prototype: SVGFEFloodElement;
  27649     new(): SVGFEFloodElement;
  27650 };
  27651 
  27652 /**
  27653  * The **`SVGFEFuncAElement`** interface corresponds to the feFuncA element.
  27654  *
  27655  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFuncAElement)
  27656  */
  27657 interface SVGFEFuncAElement extends SVGComponentTransferFunctionElement {
  27658     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27659     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27660     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27661     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27662 }
  27663 
  27664 declare var SVGFEFuncAElement: {
  27665     prototype: SVGFEFuncAElement;
  27666     new(): SVGFEFuncAElement;
  27667 };
  27668 
  27669 /**
  27670  * The **`SVGFEFuncBElement`** interface corresponds to the feFuncB element.
  27671  *
  27672  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFuncBElement)
  27673  */
  27674 interface SVGFEFuncBElement extends SVGComponentTransferFunctionElement {
  27675     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncBElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27676     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27677     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncBElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27678     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27679 }
  27680 
  27681 declare var SVGFEFuncBElement: {
  27682     prototype: SVGFEFuncBElement;
  27683     new(): SVGFEFuncBElement;
  27684 };
  27685 
  27686 /**
  27687  * The **`SVGFEFuncGElement`** interface corresponds to the feFuncG element.
  27688  *
  27689  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFuncGElement)
  27690  */
  27691 interface SVGFEFuncGElement extends SVGComponentTransferFunctionElement {
  27692     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27693     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27694     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27695     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27696 }
  27697 
  27698 declare var SVGFEFuncGElement: {
  27699     prototype: SVGFEFuncGElement;
  27700     new(): SVGFEFuncGElement;
  27701 };
  27702 
  27703 /**
  27704  * The **`SVGFEFuncRElement`** interface corresponds to the feFuncR element.
  27705  *
  27706  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFuncRElement)
  27707  */
  27708 interface SVGFEFuncRElement extends SVGComponentTransferFunctionElement {
  27709     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncRElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27710     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27711     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncRElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27712     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27713 }
  27714 
  27715 declare var SVGFEFuncRElement: {
  27716     prototype: SVGFEFuncRElement;
  27717     new(): SVGFEFuncRElement;
  27718 };
  27719 
  27720 /**
  27721  * The **`SVGFEGaussianBlurElement`** interface corresponds to the feGaussianBlur element.
  27722  *
  27723  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEGaussianBlurElement)
  27724  */
  27725 interface SVGFEGaussianBlurElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  27726     /**
  27727      * The **`in1`** read-only property of the SVGFEGaussianBlurElement interface reflects the in attribute of the given feGaussianBlur element.
  27728      *
  27729      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEGaussianBlurElement/in1)
  27730      */
  27731     readonly in1: SVGAnimatedString;
  27732     /**
  27733      * The **`stdDeviationX`** read-only property of the SVGFEGaussianBlurElement interface reflects the (possibly automatically computed) X component of the stdDeviation attribute of the given feGaussianBlur element.
  27734      *
  27735      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEGaussianBlurElement/stdDeviationX)
  27736      */
  27737     readonly stdDeviationX: SVGAnimatedNumber;
  27738     /**
  27739      * The **`stdDeviationY`** read-only property of the SVGFEGaussianBlurElement interface reflects the (possibly automatically computed) Y component of the stdDeviation attribute of the given feGaussianBlur element.
  27740      *
  27741      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEGaussianBlurElement/stdDeviationY)
  27742      */
  27743     readonly stdDeviationY: SVGAnimatedNumber;
  27744     /**
  27745      * The `setStdDeviation()` method of the SVGFEGaussianBlurElement interface sets the values for the stdDeviation attribute.
  27746      *
  27747      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEGaussianBlurElement/setStdDeviation)
  27748      */
  27749     setStdDeviation(stdDeviationX: number, stdDeviationY: number): void;
  27750     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEGaussianBlurElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27751     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27752     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEGaussianBlurElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27753     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27754 }
  27755 
  27756 declare var SVGFEGaussianBlurElement: {
  27757     prototype: SVGFEGaussianBlurElement;
  27758     new(): SVGFEGaussianBlurElement;
  27759 };
  27760 
  27761 /**
  27762  * The **`SVGFEImageElement`** interface corresponds to the feImage element.
  27763  *
  27764  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEImageElement)
  27765  */
  27766 interface SVGFEImageElement extends SVGElement, SVGFilterPrimitiveStandardAttributes, SVGURIReference {
  27767     /**
  27768      * The **`preserveAspectRatio`** read-only property of the SVGFEImageElement interface reflects the preserveAspectRatio attribute of the given feImage element.
  27769      *
  27770      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEImageElement/preserveAspectRatio)
  27771      */
  27772     readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;
  27773     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27774     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27775     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27776     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27777 }
  27778 
  27779 declare var SVGFEImageElement: {
  27780     prototype: SVGFEImageElement;
  27781     new(): SVGFEImageElement;
  27782 };
  27783 
  27784 /**
  27785  * The **`SVGFEMergeElement`** interface corresponds to the feMerge element.
  27786  *
  27787  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEMergeElement)
  27788  */
  27789 interface SVGFEMergeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  27790     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27791     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27792     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27793     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27794 }
  27795 
  27796 declare var SVGFEMergeElement: {
  27797     prototype: SVGFEMergeElement;
  27798     new(): SVGFEMergeElement;
  27799 };
  27800 
  27801 /**
  27802  * The **`SVGFEMergeNodeElement`** interface corresponds to the feMergeNode element.
  27803  *
  27804  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEMergeNodeElement)
  27805  */
  27806 interface SVGFEMergeNodeElement extends SVGElement {
  27807     /**
  27808      * The **`in1`** read-only property of the SVGFEMergeNodeElement interface reflects the in attribute of the given feMergeNode element.
  27809      *
  27810      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEMergeNodeElement/in1)
  27811      */
  27812     readonly in1: SVGAnimatedString;
  27813     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeNodeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27814     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27815     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeNodeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27816     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27817 }
  27818 
  27819 declare var SVGFEMergeNodeElement: {
  27820     prototype: SVGFEMergeNodeElement;
  27821     new(): SVGFEMergeNodeElement;
  27822 };
  27823 
  27824 /**
  27825  * The **`SVGFEMorphologyElement`** interface corresponds to the feMorphology element.
  27826  *
  27827  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEMorphologyElement)
  27828  */
  27829 interface SVGFEMorphologyElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  27830     /**
  27831      * The **`in1`** read-only property of the SVGFEMorphologyElement interface reflects the in attribute of the given feMorphology element.
  27832      *
  27833      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEMorphologyElement/in1)
  27834      */
  27835     readonly in1: SVGAnimatedString;
  27836     /**
  27837      * The **`operator`** read-only property of the SVGFEMorphologyElement interface reflects the operator attribute of the given feMorphology element.
  27838      *
  27839      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEMorphologyElement/operator)
  27840      */
  27841     readonly operator: SVGAnimatedEnumeration;
  27842     /**
  27843      * The **`radiusX`** read-only property of the SVGFEMorphologyElement interface reflects the X component of the radius attribute of the given feMorphology element.
  27844      *
  27845      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEMorphologyElement/radiusX)
  27846      */
  27847     readonly radiusX: SVGAnimatedNumber;
  27848     /**
  27849      * The **`radiusY`** read-only property of the SVGFEMorphologyElement interface reflects the Y component of the radius attribute of the given feMorphology element.
  27850      *
  27851      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEMorphologyElement/radiusY)
  27852      */
  27853     readonly radiusY: SVGAnimatedNumber;
  27854     readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: 0;
  27855     readonly SVG_MORPHOLOGY_OPERATOR_ERODE: 1;
  27856     readonly SVG_MORPHOLOGY_OPERATOR_DILATE: 2;
  27857     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMorphologyElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27858     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27859     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMorphologyElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27860     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27861 }
  27862 
  27863 declare var SVGFEMorphologyElement: {
  27864     prototype: SVGFEMorphologyElement;
  27865     new(): SVGFEMorphologyElement;
  27866     readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: 0;
  27867     readonly SVG_MORPHOLOGY_OPERATOR_ERODE: 1;
  27868     readonly SVG_MORPHOLOGY_OPERATOR_DILATE: 2;
  27869 };
  27870 
  27871 /**
  27872  * The **`SVGFEOffsetElement`** interface corresponds to the feOffset element.
  27873  *
  27874  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEOffsetElement)
  27875  */
  27876 interface SVGFEOffsetElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  27877     /**
  27878      * The **`dx`** read-only property of the SVGFEOffsetElement interface reflects the dx attribute of the given feOffset element.
  27879      *
  27880      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEOffsetElement/dx)
  27881      */
  27882     readonly dx: SVGAnimatedNumber;
  27883     /**
  27884      * The **`dy`** read-only property of the SVGFEOffsetElement interface reflects the dy attribute of the given feOffset element.
  27885      *
  27886      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEOffsetElement/dy)
  27887      */
  27888     readonly dy: SVGAnimatedNumber;
  27889     /**
  27890      * The **`in1`** read-only property of the SVGFEOffsetElement interface reflects the in attribute of the given feOffset element.
  27891      *
  27892      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEOffsetElement/in1)
  27893      */
  27894     readonly in1: SVGAnimatedString;
  27895     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEOffsetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27896     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27897     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEOffsetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27898     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27899 }
  27900 
  27901 declare var SVGFEOffsetElement: {
  27902     prototype: SVGFEOffsetElement;
  27903     new(): SVGFEOffsetElement;
  27904 };
  27905 
  27906 /**
  27907  * The **`SVGFEPointLightElement`** interface corresponds to the fePointLight element.
  27908  *
  27909  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEPointLightElement)
  27910  */
  27911 interface SVGFEPointLightElement extends SVGElement {
  27912     /**
  27913      * The **`x`** read-only property of the SVGFEPointLightElement interface describes the horizontal coordinate of the position of an SVG filter primitive as a SVGAnimatedNumber.
  27914      *
  27915      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEPointLightElement/x)
  27916      */
  27917     readonly x: SVGAnimatedNumber;
  27918     /**
  27919      * The **`y`** read-only property of the SVGFEPointLightElement interface describes the vertical coordinate of the position of an SVG filter primitive as a SVGAnimatedNumber.
  27920      *
  27921      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEPointLightElement/y)
  27922      */
  27923     readonly y: SVGAnimatedNumber;
  27924     /**
  27925      * The **`z`** read-only property of the SVGFEPointLightElement interface describes the z-axis value of the position of an SVG filter primitive as a SVGAnimatedNumber.
  27926      *
  27927      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEPointLightElement/z)
  27928      */
  27929     readonly z: SVGAnimatedNumber;
  27930     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEPointLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27931     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27932     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEPointLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27933     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27934 }
  27935 
  27936 declare var SVGFEPointLightElement: {
  27937     prototype: SVGFEPointLightElement;
  27938     new(): SVGFEPointLightElement;
  27939 };
  27940 
  27941 /**
  27942  * The **`SVGFESpecularLightingElement`** interface corresponds to the feSpecularLighting element.
  27943  *
  27944  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpecularLightingElement)
  27945  */
  27946 interface SVGFESpecularLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  27947     /**
  27948      * The **`in1`** read-only property of the SVGFESpecularLightingElement interface reflects the in attribute of the given feSpecularLighting element.
  27949      *
  27950      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpecularLightingElement/in1)
  27951      */
  27952     readonly in1: SVGAnimatedString;
  27953     /**
  27954      * The **`kernelUnitLengthX`** read-only property of the SVGFESpecularLightingElement interface reflects the x value of the kernelUnitLength attribute of the given feSpecularLighting element.
  27955      *
  27956      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpecularLightingElement/kernelUnitLengthX)
  27957      */
  27958     readonly kernelUnitLengthX: SVGAnimatedNumber;
  27959     /**
  27960      * The **`kernelUnitLengthY`** read-only property of the SVGFESpecularLightingElement interface reflects the y value of the kernelUnitLength attribute of the given feSpecularLighting element.
  27961      *
  27962      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpecularLightingElement/kernelUnitLengthY)
  27963      */
  27964     readonly kernelUnitLengthY: SVGAnimatedNumber;
  27965     /**
  27966      * The **`specularConstant`** read-only property of the SVGFESpecularLightingElement interface reflects the specularConstant attribute of the given feSpecularLighting element.
  27967      *
  27968      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpecularLightingElement/specularConstant)
  27969      */
  27970     readonly specularConstant: SVGAnimatedNumber;
  27971     /**
  27972      * The **`specularExponent`** read-only property of the SVGFESpecularLightingElement interface reflects the specularExponent attribute of the given feSpecularLighting element.
  27973      *
  27974      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpecularLightingElement/specularExponent)
  27975      */
  27976     readonly specularExponent: SVGAnimatedNumber;
  27977     /**
  27978      * The **`surfaceScale`** read-only property of the SVGFESpecularLightingElement interface reflects the surfaceScale attribute of the given feSpecularLighting element.
  27979      *
  27980      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpecularLightingElement/surfaceScale)
  27981      */
  27982     readonly surfaceScale: SVGAnimatedNumber;
  27983     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpecularLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  27984     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  27985     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpecularLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  27986     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  27987 }
  27988 
  27989 declare var SVGFESpecularLightingElement: {
  27990     prototype: SVGFESpecularLightingElement;
  27991     new(): SVGFESpecularLightingElement;
  27992 };
  27993 
  27994 /**
  27995  * The **`SVGFESpotLightElement`** interface corresponds to the feSpotLight element.
  27996  *
  27997  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpotLightElement)
  27998  */
  27999 interface SVGFESpotLightElement extends SVGElement {
  28000     /**
  28001      * The **`limitingConeAngle`** read-only property of the SVGFESpotLightElement interface reflects the limitingConeAngle attribute of the given feSpotLight element.
  28002      *
  28003      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpotLightElement/limitingConeAngle)
  28004      */
  28005     readonly limitingConeAngle: SVGAnimatedNumber;
  28006     /**
  28007      * The **`pointsAtX`** read-only property of the SVGFESpotLightElement interface reflects the pointsAtX attribute of the given feSpotLight element.
  28008      *
  28009      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpotLightElement/pointsAtX)
  28010      */
  28011     readonly pointsAtX: SVGAnimatedNumber;
  28012     /**
  28013      * The **`pointsAtY`** read-only property of the SVGFESpotLightElement interface reflects the pointsAtY attribute of the given feSpotLight element.
  28014      *
  28015      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpotLightElement/pointsAtY)
  28016      */
  28017     readonly pointsAtY: SVGAnimatedNumber;
  28018     /**
  28019      * The **`pointsAtZ`** read-only property of the SVGFESpotLightElement interface reflects the pointsAtZ attribute of the given feSpotLight element.
  28020      *
  28021      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpotLightElement/pointsAtZ)
  28022      */
  28023     readonly pointsAtZ: SVGAnimatedNumber;
  28024     /**
  28025      * The **`specularExponent`** read-only property of the SVGFESpotLightElement interface reflects the specularExponent attribute of the given feSpotLight element.
  28026      *
  28027      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpotLightElement/specularExponent)
  28028      */
  28029     readonly specularExponent: SVGAnimatedNumber;
  28030     /**
  28031      * The **`x`** read-only property of the SVGFESpotLightElement interface describes the horizontal coordinate of the position of an SVG filter primitive as a SVGAnimatedNumber.
  28032      *
  28033      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpotLightElement/x)
  28034      */
  28035     readonly x: SVGAnimatedNumber;
  28036     /**
  28037      * The **`y`** read-only property of the SVGFESpotLightElement interface describes the vertical coordinate of the position of an SVG filter primitive as a SVGAnimatedNumber.
  28038      *
  28039      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpotLightElement/y)
  28040      */
  28041     readonly y: SVGAnimatedNumber;
  28042     /**
  28043      * The **`z`** read-only property of the SVGFESpotLightElement interface describes the z-axis value of the position of an SVG filter primitive as a SVGAnimatedNumber.
  28044      *
  28045      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpotLightElement/z)
  28046      */
  28047     readonly z: SVGAnimatedNumber;
  28048     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpotLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28049     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28050     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpotLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28051     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28052 }
  28053 
  28054 declare var SVGFESpotLightElement: {
  28055     prototype: SVGFESpotLightElement;
  28056     new(): SVGFESpotLightElement;
  28057 };
  28058 
  28059 /**
  28060  * The **`SVGFETileElement`** interface corresponds to the feTile element.
  28061  *
  28062  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFETileElement)
  28063  */
  28064 interface SVGFETileElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  28065     /**
  28066      * The **`in1`** read-only property of the SVGFETileElement interface reflects the in attribute of the given feTile element.
  28067      *
  28068      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFETileElement/in1)
  28069      */
  28070     readonly in1: SVGAnimatedString;
  28071     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETileElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28072     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28073     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETileElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28074     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28075 }
  28076 
  28077 declare var SVGFETileElement: {
  28078     prototype: SVGFETileElement;
  28079     new(): SVGFETileElement;
  28080 };
  28081 
  28082 /**
  28083  * The **`SVGFETurbulenceElement`** interface corresponds to the feTurbulence element.
  28084  *
  28085  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFETurbulenceElement)
  28086  */
  28087 interface SVGFETurbulenceElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
  28088     /**
  28089      * The **`baseFrequencyX`** read-only property of the SVGFETurbulenceElement interface reflects the X component of the baseFrequency attribute of the given feTurbulence element.
  28090      *
  28091      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFETurbulenceElement/baseFrequencyX)
  28092      */
  28093     readonly baseFrequencyX: SVGAnimatedNumber;
  28094     /**
  28095      * The **`baseFrequencyY`** read-only property of the SVGFETurbulenceElement interface reflects the Y component of the baseFrequency attribute of the given feTurbulence element.
  28096      *
  28097      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFETurbulenceElement/baseFrequencyY)
  28098      */
  28099     readonly baseFrequencyY: SVGAnimatedNumber;
  28100     /**
  28101      * The **`numOctaves`** read-only property of the SVGFETurbulenceElement interface reflects the numOctaves attribute of the given feTurbulence element.
  28102      *
  28103      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFETurbulenceElement/numOctaves)
  28104      */
  28105     readonly numOctaves: SVGAnimatedInteger;
  28106     /**
  28107      * The **`seed`** read-only property of the SVGFETurbulenceElement interface reflects the seed attribute of the given feTurbulence element.
  28108      *
  28109      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFETurbulenceElement/seed)
  28110      */
  28111     readonly seed: SVGAnimatedNumber;
  28112     /**
  28113      * The **`stitchTiles`** read-only property of the SVGFETurbulenceElement interface reflects the stitchTiles attribute of the given feTurbulence element.
  28114      *
  28115      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFETurbulenceElement/stitchTiles)
  28116      */
  28117     readonly stitchTiles: SVGAnimatedEnumeration;
  28118     /**
  28119      * The **`type`** read-only property of the SVGFETurbulenceElement interface reflects the type attribute of the given feTurbulence element.
  28120      *
  28121      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFETurbulenceElement/type)
  28122      */
  28123     readonly type: SVGAnimatedEnumeration;
  28124     readonly SVG_TURBULENCE_TYPE_UNKNOWN: 0;
  28125     readonly SVG_TURBULENCE_TYPE_FRACTALNOISE: 1;
  28126     readonly SVG_TURBULENCE_TYPE_TURBULENCE: 2;
  28127     readonly SVG_STITCHTYPE_UNKNOWN: 0;
  28128     readonly SVG_STITCHTYPE_STITCH: 1;
  28129     readonly SVG_STITCHTYPE_NOSTITCH: 2;
  28130     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETurbulenceElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28131     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28132     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETurbulenceElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28133     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28134 }
  28135 
  28136 declare var SVGFETurbulenceElement: {
  28137     prototype: SVGFETurbulenceElement;
  28138     new(): SVGFETurbulenceElement;
  28139     readonly SVG_TURBULENCE_TYPE_UNKNOWN: 0;
  28140     readonly SVG_TURBULENCE_TYPE_FRACTALNOISE: 1;
  28141     readonly SVG_TURBULENCE_TYPE_TURBULENCE: 2;
  28142     readonly SVG_STITCHTYPE_UNKNOWN: 0;
  28143     readonly SVG_STITCHTYPE_STITCH: 1;
  28144     readonly SVG_STITCHTYPE_NOSTITCH: 2;
  28145 };
  28146 
  28147 /**
  28148  * The **`SVGFilterElement`** interface provides access to the properties of filter elements, as well as methods to manipulate them.
  28149  *
  28150  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFilterElement)
  28151  */
  28152 interface SVGFilterElement extends SVGElement, SVGURIReference {
  28153     /**
  28154      * The **`filterUnits`** read-only property of the SVGFilterElement interface reflects the filterUnits attribute of the given filter element.
  28155      *
  28156      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFilterElement/filterUnits)
  28157      */
  28158     readonly filterUnits: SVGAnimatedEnumeration;
  28159     /**
  28160      * The **`height`** read-only property of the SVGFilterElement interface describes the vertical size of an SVG filter primitive as a SVGAnimatedLength.
  28161      *
  28162      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFilterElement/height)
  28163      */
  28164     readonly height: SVGAnimatedLength;
  28165     /**
  28166      * The **`primitiveUnits`** read-only property of the SVGFilterElement interface reflects the primitiveUnits attribute of the given filter element.
  28167      *
  28168      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFilterElement/primitiveUnits)
  28169      */
  28170     readonly primitiveUnits: SVGAnimatedEnumeration;
  28171     /**
  28172      * The **`width`** read-only property of the SVGFilterElement interface describes the horizontal size of an SVG filter primitive as a SVGAnimatedLength.
  28173      *
  28174      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFilterElement/width)
  28175      */
  28176     readonly width: SVGAnimatedLength;
  28177     /**
  28178      * The **`x`** read-only property of the SVGFilterElement interface describes the horizontal coordinate of the position of an SVG filter primitive as a SVGAnimatedLength.
  28179      *
  28180      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFilterElement/x)
  28181      */
  28182     readonly x: SVGAnimatedLength;
  28183     /**
  28184      * The **`y`** read-only property of the SVGFilterElement interface describes the vertical coordinate of the position of an SVG filter primitive as a SVGAnimatedLength.
  28185      *
  28186      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFilterElement/y)
  28187      */
  28188     readonly y: SVGAnimatedLength;
  28189     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFilterElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28190     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28191     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFilterElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28192     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28193 }
  28194 
  28195 declare var SVGFilterElement: {
  28196     prototype: SVGFilterElement;
  28197     new(): SVGFilterElement;
  28198 };
  28199 
  28200 interface SVGFilterPrimitiveStandardAttributes {
  28201     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEBlendElement/height) */
  28202     readonly height: SVGAnimatedLength;
  28203     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEBlendElement/result) */
  28204     readonly result: SVGAnimatedString;
  28205     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEBlendElement/width) */
  28206     readonly width: SVGAnimatedLength;
  28207     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEBlendElement/x) */
  28208     readonly x: SVGAnimatedLength;
  28209     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEBlendElement/y) */
  28210     readonly y: SVGAnimatedLength;
  28211 }
  28212 
  28213 interface SVGFitToViewBox {
  28214     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/preserveAspectRatio) */
  28215     readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;
  28216     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/viewBox) */
  28217     readonly viewBox: SVGAnimatedRect;
  28218 }
  28219 
  28220 /**
  28221  * The **`SVGForeignObjectElement`** interface provides access to the properties of foreignObject elements, as well as methods to manipulate them.
  28222  *
  28223  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGForeignObjectElement)
  28224  */
  28225 interface SVGForeignObjectElement extends SVGGraphicsElement {
  28226     /**
  28227      * The **`height`** read-only property of the SVGForeignObjectElement interface describes the height of the `<foreignObject>` element.
  28228      *
  28229      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGForeignObjectElement/height)
  28230      */
  28231     readonly height: SVGAnimatedLength;
  28232     /**
  28233      * The **`width`** read-only property of the SVGForeignObjectElement interface describes the width of the `<foreignObject>` element.
  28234      *
  28235      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGForeignObjectElement/width)
  28236      */
  28237     readonly width: SVGAnimatedLength;
  28238     /**
  28239      * The **`x`** read-only property of the SVGForeignObjectElement interface describes the x-axis coordinate of the `<foreignObject>` element.
  28240      *
  28241      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGForeignObjectElement/x)
  28242      */
  28243     readonly x: SVGAnimatedLength;
  28244     /**
  28245      * The **`y`** read-only property of the SVGForeignObjectElement interface describes the y-axis coordinate of the `<foreignObject>` element.
  28246      *
  28247      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGForeignObjectElement/y)
  28248      */
  28249     readonly y: SVGAnimatedLength;
  28250     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGForeignObjectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28251     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28252     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGForeignObjectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28253     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28254 }
  28255 
  28256 declare var SVGForeignObjectElement: {
  28257     prototype: SVGForeignObjectElement;
  28258     new(): SVGForeignObjectElement;
  28259 };
  28260 
  28261 /**
  28262  * The **`SVGGElement`** interface corresponds to the g element.
  28263  *
  28264  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGElement)
  28265  */
  28266 interface SVGGElement extends SVGGraphicsElement {
  28267     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28268     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28269     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28270     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28271 }
  28272 
  28273 declare var SVGGElement: {
  28274     prototype: SVGGElement;
  28275     new(): SVGGElement;
  28276 };
  28277 
  28278 /**
  28279  * The `SVGGeometryElement` interface represents SVG elements whose rendering is defined by geometry with an equivalent path, and which can be filled and stroked.
  28280  *
  28281  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement)
  28282  */
  28283 interface SVGGeometryElement extends SVGGraphicsElement {
  28284     /**
  28285      * The **`SVGGeometryElement.pathLength`** property reflects the A number.
  28286      *
  28287      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/pathLength)
  28288      */
  28289     readonly pathLength: SVGAnimatedNumber;
  28290     /**
  28291      * The **`SVGGeometryElement.getPointAtLength()`** method returns the point at a given distance along the path.
  28292      *
  28293      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/getPointAtLength)
  28294      */
  28295     getPointAtLength(distance: number): DOMPoint;
  28296     /**
  28297      * The **`SVGGeometryElement.getTotalLength()`** method returns the user agent's computed value for the total length of the path in user units.
  28298      *
  28299      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/getTotalLength)
  28300      */
  28301     getTotalLength(): number;
  28302     /**
  28303      * The **`isPointInFill()`** method of the SVGGeometryElement interface determines whether a given point is within the fill shape of an element.
  28304      *
  28305      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/isPointInFill)
  28306      */
  28307     isPointInFill(point?: DOMPointInit): boolean;
  28308     /**
  28309      * The **`isPointInStroke()`** method of the SVGGeometryElement interface determines whether a given point is within the stroke shape of an element.
  28310      *
  28311      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/isPointInStroke)
  28312      */
  28313     isPointInStroke(point?: DOMPointInit): boolean;
  28314     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGeometryElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28315     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28316     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGeometryElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28317     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28318 }
  28319 
  28320 declare var SVGGeometryElement: {
  28321     prototype: SVGGeometryElement;
  28322     new(): SVGGeometryElement;
  28323 };
  28324 
  28325 /**
  28326  * The **`SVGGradient`** interface is a base interface used by SVGLinearGradientElement and SVGRadialGradientElement.
  28327  *
  28328  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGradientElement)
  28329  */
  28330 interface SVGGradientElement extends SVGElement, SVGURIReference {
  28331     /**
  28332      * The **`gradientTransform`** read-only property of the SVGGradientElement interface reflects the gradientTransform attribute of the given element.
  28333      *
  28334      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGradientElement/gradientTransform)
  28335      */
  28336     readonly gradientTransform: SVGAnimatedTransformList;
  28337     /**
  28338      * The **`gradientUnits`** read-only property of the SVGGradientElement interface reflects the gradientUnits attribute of the given element.
  28339      *
  28340      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGradientElement/gradientUnits)
  28341      */
  28342     readonly gradientUnits: SVGAnimatedEnumeration;
  28343     /**
  28344      * The **`spreadMethod`** read-only property of the SVGGradientElement interface reflects the spreadMethod attribute of the given element.
  28345      *
  28346      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGradientElement/spreadMethod)
  28347      */
  28348     readonly spreadMethod: SVGAnimatedEnumeration;
  28349     readonly SVG_SPREADMETHOD_UNKNOWN: 0;
  28350     readonly SVG_SPREADMETHOD_PAD: 1;
  28351     readonly SVG_SPREADMETHOD_REFLECT: 2;
  28352     readonly SVG_SPREADMETHOD_REPEAT: 3;
  28353     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28354     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28355     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28356     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28357 }
  28358 
  28359 declare var SVGGradientElement: {
  28360     prototype: SVGGradientElement;
  28361     new(): SVGGradientElement;
  28362     readonly SVG_SPREADMETHOD_UNKNOWN: 0;
  28363     readonly SVG_SPREADMETHOD_PAD: 1;
  28364     readonly SVG_SPREADMETHOD_REFLECT: 2;
  28365     readonly SVG_SPREADMETHOD_REPEAT: 3;
  28366 };
  28367 
  28368 /**
  28369  * The **`SVGGraphicsElement`** interface represents SVG elements whose primary purpose is to directly render graphics into a group.
  28370  *
  28371  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGraphicsElement)
  28372  */
  28373 interface SVGGraphicsElement extends SVGElement, SVGTests {
  28374     /**
  28375      * The **`transform`** read-only property of the SVGGraphicsElement interface reflects the computed value of the transform property and its corresponding transform attribute of the given element.
  28376      *
  28377      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGraphicsElement/transform)
  28378      */
  28379     readonly transform: SVGAnimatedTransformList;
  28380     /**
  28381      * The **`SVGGraphicsElement.getBBox()`** method allows us to determine the coordinates of the smallest rectangle in which the object fits.
  28382      *
  28383      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGraphicsElement/getBBox)
  28384      */
  28385     getBBox(options?: SVGBoundingBoxOptions): DOMRect;
  28386     /**
  28387      * The `getCTM()` method of the SVGGraphicsElement interface represents the matrix that transforms the current element's coordinate system to its SVG viewport's coordinate system.
  28388      *
  28389      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGraphicsElement/getCTM)
  28390      */
  28391     getCTM(): DOMMatrix | null;
  28392     /**
  28393      * The `getScreenCTM()` method of the SVGGraphicsElement interface represents the matrix that transforms the current element's coordinate system to the coordinate system of the SVG viewport for the SVG document fragment.
  28394      *
  28395      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGraphicsElement/getScreenCTM)
  28396      */
  28397     getScreenCTM(): DOMMatrix | null;
  28398     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGraphicsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28399     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28400     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGraphicsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28401     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28402 }
  28403 
  28404 declare var SVGGraphicsElement: {
  28405     prototype: SVGGraphicsElement;
  28406     new(): SVGGraphicsElement;
  28407 };
  28408 
  28409 /**
  28410  * The **`SVGImageElement`** interface corresponds to the image element.
  28411  *
  28412  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement)
  28413  */
  28414 interface SVGImageElement extends SVGGraphicsElement, SVGURIReference {
  28415     /**
  28416      * The **`crossOrigin`** property of the SVGImageElement interface is a string which specifies the Cross-Origin Resource Sharing (CORS) setting to use when retrieving the image.
  28417      *
  28418      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/crossOrigin)
  28419      */
  28420     crossOrigin: string | null;
  28421     /**
  28422      * The **`height`** read-only property of the corresponding to the height attribute of the given An SVGAnimatedLength.
  28423      *
  28424      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/height)
  28425      */
  28426     readonly height: SVGAnimatedLength;
  28427     /**
  28428      * The **`preserveAspectRatio`** read-only property of the SVGImageElement interface returns an element.
  28429      *
  28430      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/preserveAspectRatio)
  28431      */
  28432     readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;
  28433     /**
  28434      * The **`width`** read-only property of the corresponding to the width attribute of the given image element.
  28435      *
  28436      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/width)
  28437      */
  28438     readonly width: SVGAnimatedLength;
  28439     /**
  28440      * The **`x`** read-only property of the corresponding to the x attribute of the given image element.
  28441      *
  28442      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/x)
  28443      */
  28444     readonly x: SVGAnimatedLength;
  28445     /**
  28446      * The **`y`** read-only property of the corresponding to the y attribute of the given image element.
  28447      *
  28448      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/y)
  28449      */
  28450     readonly y: SVGAnimatedLength;
  28451     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28452     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28453     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28454     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28455 }
  28456 
  28457 declare var SVGImageElement: {
  28458     prototype: SVGImageElement;
  28459     new(): SVGImageElement;
  28460 };
  28461 
  28462 /**
  28463  * The **`SVGLength`** interface correspond to the \<length> basic data type.
  28464  *
  28465  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLength)
  28466  */
  28467 interface SVGLength {
  28468     /**
  28469      * The **`unitType`** property of the SVGLength interface that represents type of the value as specified by one of the `SVG_LENGTHTYPE_*` constants defined on this interface.
  28470      *
  28471      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLength/unitType)
  28472      */
  28473     readonly unitType: number;
  28474     /**
  28475      * The `value` property of the SVGLength interface represents the floating point value of the \<length> in user units.
  28476      *
  28477      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLength/value)
  28478      */
  28479     value: number;
  28480     /**
  28481      * The `valueAsString` property of the SVGLength interface represents the \<length>'s value as a string, in the units expressed by SVGLength.unitType.
  28482      *
  28483      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLength/valueAsString)
  28484      */
  28485     valueAsString: string;
  28486     /**
  28487      * The `valueInSpecifiedUnits` property of the SVGLength interface represents floating point value, in the units expressed by SVGLength.unitType.
  28488      *
  28489      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLength/valueInSpecifiedUnits)
  28490      */
  28491     valueInSpecifiedUnits: number;
  28492     /**
  28493      * The `convertToSpecifiedUnits()` method of the SVGLength interface allows you to convert the length's value to the specified unit type.
  28494      *
  28495      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLength/convertToSpecifiedUnits)
  28496      */
  28497     convertToSpecifiedUnits(unitType: number): void;
  28498     /**
  28499      * The `newValueSpecifiedUnits()` method of the SVGLength interface resets the value as a number with an associated SVGLength.unitType, thereby replacing the values for all of the attributes on the object.
  28500      *
  28501      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLength/newValueSpecifiedUnits)
  28502      */
  28503     newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;
  28504     readonly SVG_LENGTHTYPE_UNKNOWN: 0;
  28505     readonly SVG_LENGTHTYPE_NUMBER: 1;
  28506     readonly SVG_LENGTHTYPE_PERCENTAGE: 2;
  28507     readonly SVG_LENGTHTYPE_EMS: 3;
  28508     readonly SVG_LENGTHTYPE_EXS: 4;
  28509     readonly SVG_LENGTHTYPE_PX: 5;
  28510     readonly SVG_LENGTHTYPE_CM: 6;
  28511     readonly SVG_LENGTHTYPE_MM: 7;
  28512     readonly SVG_LENGTHTYPE_IN: 8;
  28513     readonly SVG_LENGTHTYPE_PT: 9;
  28514     readonly SVG_LENGTHTYPE_PC: 10;
  28515 }
  28516 
  28517 declare var SVGLength: {
  28518     prototype: SVGLength;
  28519     new(): SVGLength;
  28520     readonly SVG_LENGTHTYPE_UNKNOWN: 0;
  28521     readonly SVG_LENGTHTYPE_NUMBER: 1;
  28522     readonly SVG_LENGTHTYPE_PERCENTAGE: 2;
  28523     readonly SVG_LENGTHTYPE_EMS: 3;
  28524     readonly SVG_LENGTHTYPE_EXS: 4;
  28525     readonly SVG_LENGTHTYPE_PX: 5;
  28526     readonly SVG_LENGTHTYPE_CM: 6;
  28527     readonly SVG_LENGTHTYPE_MM: 7;
  28528     readonly SVG_LENGTHTYPE_IN: 8;
  28529     readonly SVG_LENGTHTYPE_PT: 9;
  28530     readonly SVG_LENGTHTYPE_PC: 10;
  28531 };
  28532 
  28533 /**
  28534  * The **`SVGLengthList`** interface defines a list of SVGLength objects.
  28535  *
  28536  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLengthList)
  28537  */
  28538 interface SVGLengthList {
  28539     /**
  28540      * The **`length`** property of the SVGLengthList interface returns the number of items in the list.
  28541      *
  28542      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLengthList/length)
  28543      */
  28544     readonly length: number;
  28545     /**
  28546      * The **`numberOfItems`** property of the SVGLengthList interface returns the number of items in the list.
  28547      *
  28548      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLengthList/numberOfItems)
  28549      */
  28550     readonly numberOfItems: number;
  28551     /**
  28552      * The **`appendItem()`** method of the SVGLengthList interface inserts a new item at the end of the list.
  28553      *
  28554      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLengthList/appendItem)
  28555      */
  28556     appendItem(newItem: SVGLength): SVGLength;
  28557     /**
  28558      * The **`clear()`** method of the SVGLengthList interface clears all existing items from the list, with the result being an empty list.
  28559      *
  28560      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLengthList/clear)
  28561      */
  28562     clear(): void;
  28563     /**
  28564      * The **`getItem()`** method of the SVGLengthList interface returns the specified item from the list.
  28565      *
  28566      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLengthList/getItem)
  28567      */
  28568     getItem(index: number): SVGLength;
  28569     /**
  28570      * The **`initialize()`** method of the SVGLengthList interface clears all existing items from the list and re-initializes the list to hold the single item specified by the parameter.
  28571      *
  28572      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLengthList/initialize)
  28573      */
  28574     initialize(newItem: SVGLength): SVGLength;
  28575     /**
  28576      * The **`insertItemBefore()`** method of the SVGLengthList interface inserts a new item into the list at the specified position.
  28577      *
  28578      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLengthList/insertItemBefore)
  28579      */
  28580     insertItemBefore(newItem: SVGLength, index: number): SVGLength;
  28581     /**
  28582      * The **`removeItem()`** method of the SVGLengthList interface removes an existing item at the given index from the list.
  28583      *
  28584      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLengthList/removeItem)
  28585      */
  28586     removeItem(index: number): SVGLength;
  28587     /**
  28588      * The **`replaceItem()`** method of the SVGLengthList interface replaces an existing item in the list with a new item.
  28589      *
  28590      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLengthList/replaceItem)
  28591      */
  28592     replaceItem(newItem: SVGLength, index: number): SVGLength;
  28593     [index: number]: SVGLength;
  28594 }
  28595 
  28596 declare var SVGLengthList: {
  28597     prototype: SVGLengthList;
  28598     new(): SVGLengthList;
  28599 };
  28600 
  28601 /**
  28602  * The **`SVGLineElement`** interface provides access to the properties of line elements, as well as methods to manipulate them.
  28603  *
  28604  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLineElement)
  28605  */
  28606 interface SVGLineElement extends SVGGeometryElement {
  28607     /**
  28608      * The **`x1`** read-only property of the SVGLineElement interface describes the start of the SVG line along the x-axis as an SVGAnimatedLength.
  28609      *
  28610      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLineElement/x1)
  28611      */
  28612     readonly x1: SVGAnimatedLength;
  28613     /**
  28614      * The **`x2`** read-only property of the SVGLineElement interface describes the x-axis coordinate value of the end of a line as an SVGAnimatedLength.
  28615      *
  28616      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLineElement/x2)
  28617      */
  28618     readonly x2: SVGAnimatedLength;
  28619     /**
  28620      * The **`y1`** read-only property of the SVGLineElement interface describes the start of the SVG line along the y-axis as an SVGAnimatedLength.
  28621      *
  28622      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLineElement/y1)
  28623      */
  28624     readonly y1: SVGAnimatedLength;
  28625     /**
  28626      * The **`y2`** read-only property of the SVGLineElement interface describes the v-axis coordinate value of the end of a line as an SVGAnimatedLength.
  28627      *
  28628      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLineElement/y2)
  28629      */
  28630     readonly y2: SVGAnimatedLength;
  28631     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28632     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28633     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28634     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28635 }
  28636 
  28637 declare var SVGLineElement: {
  28638     prototype: SVGLineElement;
  28639     new(): SVGLineElement;
  28640 };
  28641 
  28642 /**
  28643  * The **`SVGLinearGradientElement`** interface corresponds to the linearGradient element.
  28644  *
  28645  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLinearGradientElement)
  28646  */
  28647 interface SVGLinearGradientElement extends SVGGradientElement {
  28648     /**
  28649      * The **`x1`** read-only property of the SVGLinearGradientElement interface describes the x-axis coordinate of the start point of the gradient as an SVGAnimatedLength.
  28650      *
  28651      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLinearGradientElement/x1)
  28652      */
  28653     readonly x1: SVGAnimatedLength;
  28654     /**
  28655      * The **`x2`** read-only property of the SVGLinearGradientElement interface describes the x-axis coordinate of the start point of the gradient as an SVGAnimatedLength.
  28656      *
  28657      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLinearGradientElement/x2)
  28658      */
  28659     readonly x2: SVGAnimatedLength;
  28660     /**
  28661      * The **`y1`** read-only property of the SVGLinearGradientElement interface describes the y-axis coordinate of the start point of the gradient as an SVGAnimatedLength.
  28662      *
  28663      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLinearGradientElement/y1)
  28664      */
  28665     readonly y1: SVGAnimatedLength;
  28666     /**
  28667      * The **`y2`** read-only property of the SVGLinearGradientElement interface describes the y-axis coordinate of the start point of the gradient as an SVGAnimatedLength.
  28668      *
  28669      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLinearGradientElement/y2)
  28670      */
  28671     readonly y2: SVGAnimatedLength;
  28672     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLinearGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28673     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28674     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLinearGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28675     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28676 }
  28677 
  28678 declare var SVGLinearGradientElement: {
  28679     prototype: SVGLinearGradientElement;
  28680     new(): SVGLinearGradientElement;
  28681 };
  28682 
  28683 /**
  28684  * The **`SVGMPathElement`** interface corresponds to the mpath element.
  28685  *
  28686  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMPathElement)
  28687  */
  28688 interface SVGMPathElement extends SVGElement, SVGURIReference {
  28689     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28690     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28691     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28692     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28693 }
  28694 
  28695 declare var SVGMPathElement: {
  28696     prototype: SVGMPathElement;
  28697     new(): SVGMPathElement;
  28698 };
  28699 
  28700 /**
  28701  * The **`SVGMarkerElement`** interface provides access to the properties of marker elements, as well as methods to manipulate them.
  28702  *
  28703  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement)
  28704  */
  28705 interface SVGMarkerElement extends SVGElement, SVGFitToViewBox {
  28706     /**
  28707      * The **`markerHeight`** read-only property of the SVGMarkerElement interface returns an SVGAnimatedLength object containing the height of the marker viewport as defined by the markerHeight attribute.
  28708      *
  28709      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/markerHeight)
  28710      */
  28711     readonly markerHeight: SVGAnimatedLength;
  28712     /**
  28713      * The **`markerUnits`** read-only property of the SVGMarkerElement interface returns an SVGAnimatedEnumeration object.
  28714      *
  28715      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/markerUnits)
  28716      */
  28717     readonly markerUnits: SVGAnimatedEnumeration;
  28718     /**
  28719      * The **`markerWidth`** read-only property of the SVGMarkerElement interface returns an SVGAnimatedLength object containing the width of the marker viewport as defined by the markerWidth attribute.
  28720      *
  28721      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/markerWidth)
  28722      */
  28723     readonly markerWidth: SVGAnimatedLength;
  28724     /**
  28725      * The **`orientAngle`** read-only property of the SVGMarkerElement interface returns an SVGAnimatedAngle object containing the angle of the orient attribute.
  28726      *
  28727      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/orientAngle)
  28728      */
  28729     readonly orientAngle: SVGAnimatedAngle;
  28730     /**
  28731      * The **`orientType`** read-only property of the SVGMarkerElement interface returns an SVGAnimatedEnumeration object indicating whether the orient attribute is `auto`, an angle value, or something else.
  28732      *
  28733      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/orientType)
  28734      */
  28735     readonly orientType: SVGAnimatedEnumeration;
  28736     /**
  28737      * The **`refX`** read-only property of the SVGMarkerElement interface returns an SVGAnimatedLength object containing the value of the refX attribute of the marker.
  28738      *
  28739      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/refX)
  28740      */
  28741     readonly refX: SVGAnimatedLength;
  28742     /**
  28743      * The **`refY`** read-only property of the SVGMarkerElement interface returns an SVGAnimatedLength object containing the value of the refY attribute of the marker.
  28744      *
  28745      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/refY)
  28746      */
  28747     readonly refY: SVGAnimatedLength;
  28748     /**
  28749      * The **`setOrientToAngle()`** method of the SVGMarkerElement interface sets the value of the `orient` attribute to the value in the SVGAngle passed in.
  28750      *
  28751      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/setOrientToAngle)
  28752      */
  28753     setOrientToAngle(angle: SVGAngle): void;
  28754     /**
  28755      * The **`setOrientToAuto()`** method of the SVGMarkerElement interface sets the value of the `orient` attribute to `auto`.
  28756      *
  28757      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/setOrientToAuto)
  28758      */
  28759     setOrientToAuto(): void;
  28760     readonly SVG_MARKERUNITS_UNKNOWN: 0;
  28761     readonly SVG_MARKERUNITS_USERSPACEONUSE: 1;
  28762     readonly SVG_MARKERUNITS_STROKEWIDTH: 2;
  28763     readonly SVG_MARKER_ORIENT_UNKNOWN: 0;
  28764     readonly SVG_MARKER_ORIENT_AUTO: 1;
  28765     readonly SVG_MARKER_ORIENT_ANGLE: 2;
  28766     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMarkerElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28767     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28768     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMarkerElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28769     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28770 }
  28771 
  28772 declare var SVGMarkerElement: {
  28773     prototype: SVGMarkerElement;
  28774     new(): SVGMarkerElement;
  28775     readonly SVG_MARKERUNITS_UNKNOWN: 0;
  28776     readonly SVG_MARKERUNITS_USERSPACEONUSE: 1;
  28777     readonly SVG_MARKERUNITS_STROKEWIDTH: 2;
  28778     readonly SVG_MARKER_ORIENT_UNKNOWN: 0;
  28779     readonly SVG_MARKER_ORIENT_AUTO: 1;
  28780     readonly SVG_MARKER_ORIENT_ANGLE: 2;
  28781 };
  28782 
  28783 /**
  28784  * The **`SVGMaskElement`** interface provides access to the properties of mask elements, as well as methods to manipulate them.
  28785  *
  28786  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement)
  28787  */
  28788 interface SVGMaskElement extends SVGElement {
  28789     /**
  28790      * The read-only **`height`** property of the SVGMaskElement interface returns an SVGAnimatedLength object containing the value of the height attribute of the marker.
  28791      *
  28792      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/height)
  28793      */
  28794     readonly height: SVGAnimatedLength;
  28795     /**
  28796      * The read-only **`maskContentUnits`** property of the SVGMaskElement interface reflects the maskContentUnits attribute.
  28797      *
  28798      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/maskContentUnits)
  28799      */
  28800     readonly maskContentUnits: SVGAnimatedEnumeration;
  28801     /**
  28802      * The read-only **`maskUnits`** property of the SVGMaskElement interface reflects the maskUnits attribute of a mask element which defines the coordinate system to use for the mask of the element.
  28803      *
  28804      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/maskUnits)
  28805      */
  28806     readonly maskUnits: SVGAnimatedEnumeration;
  28807     /**
  28808      * The read-only **`width`** property of the SVGMaskElement interface returns an SVGAnimatedLength object containing the value of the width attribute of the marker.
  28809      *
  28810      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/width)
  28811      */
  28812     readonly width: SVGAnimatedLength;
  28813     /**
  28814      * The read-only **`x`** property of the SVGMaskElement interface returns an SVGAnimatedLength object containing the value of the x attribute of the mask.
  28815      *
  28816      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/x)
  28817      */
  28818     readonly x: SVGAnimatedLength;
  28819     /**
  28820      * The read-only **`y`** property of the SVGMaskElement interface returns an SVGAnimatedLength object containing the value of the y attribute of the marker.
  28821      *
  28822      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/y)
  28823      */
  28824     readonly y: SVGAnimatedLength;
  28825     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMaskElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28826     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28827     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMaskElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28828     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28829 }
  28830 
  28831 declare var SVGMaskElement: {
  28832     prototype: SVGMaskElement;
  28833     new(): SVGMaskElement;
  28834 };
  28835 
  28836 /**
  28837  * The **`SVGMetadataElement`** interface corresponds to the metadata element.
  28838  *
  28839  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMetadataElement)
  28840  */
  28841 interface SVGMetadataElement extends SVGElement {
  28842     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMetadataElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28843     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28844     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMetadataElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28845     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28846 }
  28847 
  28848 declare var SVGMetadataElement: {
  28849     prototype: SVGMetadataElement;
  28850     new(): SVGMetadataElement;
  28851 };
  28852 
  28853 /**
  28854  * The **`SVGNumber`** interface corresponds to the &lt;number&gt; basic data type.
  28855  *
  28856  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumber)
  28857  */
  28858 interface SVGNumber {
  28859     /**
  28860      * The **`value`** read-only property of the SVGNumber interface represents the number.
  28861      *
  28862      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumber/value)
  28863      */
  28864     value: number;
  28865 }
  28866 
  28867 declare var SVGNumber: {
  28868     prototype: SVGNumber;
  28869     new(): SVGNumber;
  28870 };
  28871 
  28872 /**
  28873  * The **`SVGNumberList`** interface defines a list of numbers.
  28874  *
  28875  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumberList)
  28876  */
  28877 interface SVGNumberList {
  28878     /**
  28879      * The **`length`** property of the SVGNumberList interface returns the number of items in the list.
  28880      *
  28881      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumberList/length)
  28882      */
  28883     readonly length: number;
  28884     /**
  28885      * The **`numberOfItems`** property of the SVGNumberList interface returns the number of items in the list.
  28886      *
  28887      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumberList/numberOfItems)
  28888      */
  28889     readonly numberOfItems: number;
  28890     /**
  28891      * The **`appendItem()`** method of the SVGNumberList interface inserts a new item at the end of the list.
  28892      *
  28893      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumberList/appendItem)
  28894      */
  28895     appendItem(newItem: SVGNumber): SVGNumber;
  28896     /**
  28897      * The **`clear()`** method of the SVGNumberList interface clears all existing items from the list, with the result being an empty list.
  28898      *
  28899      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumberList/clear)
  28900      */
  28901     clear(): void;
  28902     /**
  28903      * The **`getItem()`** method of the SVGNumberList interface returns the specified item from the list.
  28904      *
  28905      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumberList/getItem)
  28906      */
  28907     getItem(index: number): SVGNumber;
  28908     /**
  28909      * The **`initialize()`** method of the SVGNumberList interface clears all existing items from the list and re-initializes the list to hold the single item specified by the parameter.
  28910      *
  28911      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumberList/initialize)
  28912      */
  28913     initialize(newItem: SVGNumber): SVGNumber;
  28914     /**
  28915      * The **`insertItemBefore()`** method of the SVGNumberList interface inserts a new item into the list at the specified position.
  28916      *
  28917      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumberList/insertItemBefore)
  28918      */
  28919     insertItemBefore(newItem: SVGNumber, index: number): SVGNumber;
  28920     /**
  28921      * The **`removeItem()`** method of the SVGNumberList interface removes an existing item at the given index from the list.
  28922      *
  28923      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumberList/removeItem)
  28924      */
  28925     removeItem(index: number): SVGNumber;
  28926     /**
  28927      * The **`replaceItem()`** method of the SVGNumberList interface replaces an existing item in the list with a new item.
  28928      *
  28929      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumberList/replaceItem)
  28930      */
  28931     replaceItem(newItem: SVGNumber, index: number): SVGNumber;
  28932     [index: number]: SVGNumber;
  28933 }
  28934 
  28935 declare var SVGNumberList: {
  28936     prototype: SVGNumberList;
  28937     new(): SVGNumberList;
  28938 };
  28939 
  28940 /**
  28941  * The **`SVGPathElement`** interface corresponds to the path element.
  28942  *
  28943  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPathElement)
  28944  */
  28945 interface SVGPathElement extends SVGGeometryElement {
  28946     /**
  28947      * The **`pathLength`** read-only property of the SVGPathElement interface reflects the pathLength attribute of the given path element.
  28948      *
  28949      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPathElement/pathLength)
  28950      */
  28951     readonly pathLength: SVGAnimatedNumber;
  28952     /**
  28953      * The **`getPointAtLength()`** method of the SVGPathElement interface returns the point at a given distance along the path.
  28954      *
  28955      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPathElement/getPointAtLength)
  28956      */
  28957     getPointAtLength(distance: number): DOMPoint;
  28958     /**
  28959      * The **`getTotalLength()`** method of the SVGPathElement interface returns the user agent's computed value for the total length of the path in user units.
  28960      *
  28961      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPathElement/getTotalLength)
  28962      */
  28963     getTotalLength(): number;
  28964     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  28965     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  28966     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  28967     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  28968 }
  28969 
  28970 declare var SVGPathElement: {
  28971     prototype: SVGPathElement;
  28972     new(): SVGPathElement;
  28973 };
  28974 
  28975 /**
  28976  * The **`SVGPatternElement`** interface corresponds to the pattern element.
  28977  *
  28978  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPatternElement)
  28979  */
  28980 interface SVGPatternElement extends SVGElement, SVGFitToViewBox, SVGURIReference {
  28981     /**
  28982      * The **`height`** read-only property of the SVGPatternElement interface describes the height of the pattern as an SVGAnimatedLength.
  28983      *
  28984      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPatternElement/height)
  28985      */
  28986     readonly height: SVGAnimatedLength;
  28987     /**
  28988      * The **`patternContentUnits`** read-only property of the SVGPatternElement interface reflects the patternContentUnits attribute of the given pattern element.
  28989      *
  28990      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPatternElement/patternContentUnits)
  28991      */
  28992     readonly patternContentUnits: SVGAnimatedEnumeration;
  28993     /**
  28994      * The **`patternTransform`** read-only property of the SVGPatternElement interface reflects the patternTransform attribute of the given pattern element.
  28995      *
  28996      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPatternElement/patternTransform)
  28997      */
  28998     readonly patternTransform: SVGAnimatedTransformList;
  28999     /**
  29000      * The **`patternUnits`** read-only property of the SVGPatternElement interface reflects the patternUnits attribute of the given pattern element.
  29001      *
  29002      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPatternElement/patternUnits)
  29003      */
  29004     readonly patternUnits: SVGAnimatedEnumeration;
  29005     /**
  29006      * The **`width`** read-only property of the SVGPatternElement interface describes the width of the pattern as an SVGAnimatedLength.
  29007      *
  29008      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPatternElement/width)
  29009      */
  29010     readonly width: SVGAnimatedLength;
  29011     /**
  29012      * The **`x`** read-only property of the SVGPatternElement interface describes the x-axis coordinate of the start point of the pattern as an SVGAnimatedLength.
  29013      *
  29014      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPatternElement/x)
  29015      */
  29016     readonly x: SVGAnimatedLength;
  29017     /**
  29018      * The **`y`** read-only property of the SVGPatternElement interface describes the y-axis coordinate of the start point of the pattern as an SVGAnimatedLength.
  29019      *
  29020      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPatternElement/y)
  29021      */
  29022     readonly y: SVGAnimatedLength;
  29023     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPatternElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29024     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29025     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPatternElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29026     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29027 }
  29028 
  29029 declare var SVGPatternElement: {
  29030     prototype: SVGPatternElement;
  29031     new(): SVGPatternElement;
  29032 };
  29033 
  29034 /**
  29035  * The **`SVGPointList`** interface represents a list of DOMPoint objects.
  29036  *
  29037  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList)
  29038  */
  29039 interface SVGPointList {
  29040     /**
  29041      * The **`length`** read-only property of the SVGPointList interface returns the number of items in the list.
  29042      *
  29043      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/length)
  29044      */
  29045     readonly length: number;
  29046     /**
  29047      * The **`numberOfItems`** read-only property of the SVGPointList interface returns the number of items in the list.
  29048      *
  29049      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/numberOfItems)
  29050      */
  29051     readonly numberOfItems: number;
  29052     /**
  29053      * The **`appendItem()`** method of the SVGPointList interface adds a DOMPoint to the end of the list.
  29054      *
  29055      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/appendItem)
  29056      */
  29057     appendItem(newItem: DOMPoint): DOMPoint;
  29058     /**
  29059      * The **`clear()`** method of the SVGPointList interface removes all items from the list.
  29060      *
  29061      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/clear)
  29062      */
  29063     clear(): void;
  29064     /**
  29065      * The **`getItem()`** method of the SVGPointList interface gets one item from the list at the specified index.
  29066      *
  29067      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/getItem)
  29068      */
  29069     getItem(index: number): DOMPoint;
  29070     /**
  29071      * The **`initialize()`** method of the SVGPointList interface clears the list then adds a single new DOMPoint object to the list.
  29072      *
  29073      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/initialize)
  29074      */
  29075     initialize(newItem: DOMPoint): DOMPoint;
  29076     /**
  29077      * The **`insertItemBefore()`** method of the SVGPointList interface inserts a DOMPoint before another item in the list.
  29078      *
  29079      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/insertItemBefore)
  29080      */
  29081     insertItemBefore(newItem: DOMPoint, index: number): DOMPoint;
  29082     /**
  29083      * The **`removeItem()`** method of the SVGPointList interface removes a DOMPoint from the list.
  29084      *
  29085      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/removeItem)
  29086      */
  29087     removeItem(index: number): DOMPoint;
  29088     /**
  29089      * The **`replaceItem()`** method of the SVGPointList interface replaces a DOMPoint in the list.
  29090      *
  29091      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/replaceItem)
  29092      */
  29093     replaceItem(newItem: DOMPoint, index: number): DOMPoint;
  29094     [index: number]: DOMPoint;
  29095 }
  29096 
  29097 declare var SVGPointList: {
  29098     prototype: SVGPointList;
  29099     new(): SVGPointList;
  29100 };
  29101 
  29102 /**
  29103  * The **`SVGPolygonElement`** interface provides access to the properties of polygon elements, as well as methods to manipulate them.
  29104  *
  29105  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPolygonElement)
  29106  */
  29107 interface SVGPolygonElement extends SVGGeometryElement, SVGAnimatedPoints {
  29108     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolygonElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29109     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29110     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolygonElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29111     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29112 }
  29113 
  29114 declare var SVGPolygonElement: {
  29115     prototype: SVGPolygonElement;
  29116     new(): SVGPolygonElement;
  29117 };
  29118 
  29119 /**
  29120  * The **`SVGPolylineElement`** interface provides access to the properties of polyline elements, as well as methods to manipulate them.
  29121  *
  29122  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPolylineElement)
  29123  */
  29124 interface SVGPolylineElement extends SVGGeometryElement, SVGAnimatedPoints {
  29125     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolylineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29126     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29127     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolylineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29128     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29129 }
  29130 
  29131 declare var SVGPolylineElement: {
  29132     prototype: SVGPolylineElement;
  29133     new(): SVGPolylineElement;
  29134 };
  29135 
  29136 /**
  29137  * The **`SVGPreserveAspectRatio`** interface corresponds to the preserveAspectRatio attribute.
  29138  *
  29139  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPreserveAspectRatio)
  29140  */
  29141 interface SVGPreserveAspectRatio {
  29142     /**
  29143      * The **`align`** read-only property of the SVGPreserveAspectRatio interface reflects the type of the alignment value as specified by one of the `SVG_PRESERVEASPECTRATIO_*` constants defined on this interface.
  29144      *
  29145      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPreserveAspectRatio/align)
  29146      */
  29147     align: number;
  29148     /**
  29149      * The **`meetOrSlice`** read-only property of the SVGPreserveAspectRatio interface reflects the type of the meet-or-slice value as specified by one of the `SVG_MEETORSLICE_*` constants defined on this interface.
  29150      *
  29151      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPreserveAspectRatio/meetOrSlice)
  29152      */
  29153     meetOrSlice: number;
  29154     readonly SVG_PRESERVEASPECTRATIO_UNKNOWN: 0;
  29155     readonly SVG_PRESERVEASPECTRATIO_NONE: 1;
  29156     readonly SVG_PRESERVEASPECTRATIO_XMINYMIN: 2;
  29157     readonly SVG_PRESERVEASPECTRATIO_XMIDYMIN: 3;
  29158     readonly SVG_PRESERVEASPECTRATIO_XMAXYMIN: 4;
  29159     readonly SVG_PRESERVEASPECTRATIO_XMINYMID: 5;
  29160     readonly SVG_PRESERVEASPECTRATIO_XMIDYMID: 6;
  29161     readonly SVG_PRESERVEASPECTRATIO_XMAXYMID: 7;
  29162     readonly SVG_PRESERVEASPECTRATIO_XMINYMAX: 8;
  29163     readonly SVG_PRESERVEASPECTRATIO_XMIDYMAX: 9;
  29164     readonly SVG_PRESERVEASPECTRATIO_XMAXYMAX: 10;
  29165     readonly SVG_MEETORSLICE_UNKNOWN: 0;
  29166     readonly SVG_MEETORSLICE_MEET: 1;
  29167     readonly SVG_MEETORSLICE_SLICE: 2;
  29168 }
  29169 
  29170 declare var SVGPreserveAspectRatio: {
  29171     prototype: SVGPreserveAspectRatio;
  29172     new(): SVGPreserveAspectRatio;
  29173     readonly SVG_PRESERVEASPECTRATIO_UNKNOWN: 0;
  29174     readonly SVG_PRESERVEASPECTRATIO_NONE: 1;
  29175     readonly SVG_PRESERVEASPECTRATIO_XMINYMIN: 2;
  29176     readonly SVG_PRESERVEASPECTRATIO_XMIDYMIN: 3;
  29177     readonly SVG_PRESERVEASPECTRATIO_XMAXYMIN: 4;
  29178     readonly SVG_PRESERVEASPECTRATIO_XMINYMID: 5;
  29179     readonly SVG_PRESERVEASPECTRATIO_XMIDYMID: 6;
  29180     readonly SVG_PRESERVEASPECTRATIO_XMAXYMID: 7;
  29181     readonly SVG_PRESERVEASPECTRATIO_XMINYMAX: 8;
  29182     readonly SVG_PRESERVEASPECTRATIO_XMIDYMAX: 9;
  29183     readonly SVG_PRESERVEASPECTRATIO_XMAXYMAX: 10;
  29184     readonly SVG_MEETORSLICE_UNKNOWN: 0;
  29185     readonly SVG_MEETORSLICE_MEET: 1;
  29186     readonly SVG_MEETORSLICE_SLICE: 2;
  29187 };
  29188 
  29189 /**
  29190  * The **`SVGRadialGradientElement`** interface corresponds to the RadialGradient element.
  29191  *
  29192  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRadialGradientElement)
  29193  */
  29194 interface SVGRadialGradientElement extends SVGGradientElement {
  29195     /**
  29196      * The **`cx`** read-only property of the SVGRadialGradientElement interface describes the x-axis coordinate of the center of the radial gradient as an SVGAnimatedLength.
  29197      *
  29198      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRadialGradientElement/cx)
  29199      */
  29200     readonly cx: SVGAnimatedLength;
  29201     /**
  29202      * The **`cy`** read-only property of the SVGRadialGradientElement interface describes the y-axis coordinate of the center of the radial gradient as an SVGAnimatedLength.
  29203      *
  29204      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRadialGradientElement/cy)
  29205      */
  29206     readonly cy: SVGAnimatedLength;
  29207     /**
  29208      * The **`fr`** read-only property of the SVGRadialGradientElement interface describes the radius of the focal circle of the radial gradient as an SVGAnimatedLength.
  29209      *
  29210      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRadialGradientElement/fr)
  29211      */
  29212     readonly fr: SVGAnimatedLength;
  29213     /**
  29214      * The **`fx`** read-only property of the SVGRadialGradientElement interface describes the x-axis coordinate of the focal point of the radial gradient as an SVGAnimatedLength.
  29215      *
  29216      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRadialGradientElement/fx)
  29217      */
  29218     readonly fx: SVGAnimatedLength;
  29219     /**
  29220      * The **`fy`** read-only property of the SVGRadialGradientElement interface describes the y-axis coordinate of the focal point of the radial gradient as an SVGAnimatedLength.
  29221      *
  29222      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRadialGradientElement/fy)
  29223      */
  29224     readonly fy: SVGAnimatedLength;
  29225     /**
  29226      * The **`r`** read-only property of the SVGRadialGradientElement interface describes the radius of the radial gradient as an SVGAnimatedLength.
  29227      *
  29228      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRadialGradientElement/r)
  29229      */
  29230     readonly r: SVGAnimatedLength;
  29231     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRadialGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29232     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29233     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRadialGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29234     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29235 }
  29236 
  29237 declare var SVGRadialGradientElement: {
  29238     prototype: SVGRadialGradientElement;
  29239     new(): SVGRadialGradientElement;
  29240 };
  29241 
  29242 /**
  29243  * The `SVGRectElement` interface provides access to the properties of rect elements, as well as methods to manipulate them.
  29244  *
  29245  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRectElement)
  29246  */
  29247 interface SVGRectElement extends SVGGeometryElement {
  29248     /**
  29249      * The **`height`** read-only property of the SVGRectElement interface describes the vertical size of an SVG rectangle as a SVGAnimatedLength.
  29250      *
  29251      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRectElement/height)
  29252      */
  29253     readonly height: SVGAnimatedLength;
  29254     /**
  29255      * The **`rx`** read-only property of the SVGRectElement interface describes the horizontal curve of the corners of an SVG rectangle as a SVGAnimatedLength.
  29256      *
  29257      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRectElement/rx)
  29258      */
  29259     readonly rx: SVGAnimatedLength;
  29260     /**
  29261      * The **`ry`** read-only property of the SVGRectElement interface describes the vertical curve of the corners of an SVG rectangle as a SVGAnimatedLength.
  29262      *
  29263      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRectElement/ry)
  29264      */
  29265     readonly ry: SVGAnimatedLength;
  29266     /**
  29267      * The **`width`** read-only property of the SVGRectElement interface describes the horizontal size of an SVG rectangle as a SVGAnimatedLength.
  29268      *
  29269      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRectElement/width)
  29270      */
  29271     readonly width: SVGAnimatedLength;
  29272     /**
  29273      * The **`x`** read-only property of the SVGRectElement interface describes the horizontal coordinate of the position of an SVG rectangle as a SVGAnimatedLength.
  29274      *
  29275      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRectElement/x)
  29276      */
  29277     readonly x: SVGAnimatedLength;
  29278     /**
  29279      * The **`y`** read-only property of the SVGRectElement interface describes the vertical coordinate of the position of an SVG rectangle as a SVGAnimatedLength.
  29280      *
  29281      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRectElement/y)
  29282      */
  29283     readonly y: SVGAnimatedLength;
  29284     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29285     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29286     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29287     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29288 }
  29289 
  29290 declare var SVGRectElement: {
  29291     prototype: SVGRectElement;
  29292     new(): SVGRectElement;
  29293 };
  29294 
  29295 interface SVGSVGElementEventMap extends SVGElementEventMap, WindowEventHandlersEventMap {
  29296 }
  29297 
  29298 /**
  29299  * The **`SVGSVGElement`** interface provides access to the properties of svg elements, as well as methods to manipulate them.
  29300  *
  29301  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement)
  29302  */
  29303 interface SVGSVGElement extends SVGGraphicsElement, SVGFitToViewBox, WindowEventHandlers {
  29304     /**
  29305      * The **`currentScale`** property of the SVGSVGElement interface reflects the current scale factor relative to the initial view to take into account user magnification and panning operations on the outermost svg element.
  29306      *
  29307      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/currentScale)
  29308      */
  29309     currentScale: number;
  29310     /**
  29311      * The **`currentTranslate`** read-only property of the SVGSVGElement interface reflects the translation factor that takes into account user 'magnification' corresponding to an outermost svg element.
  29312      *
  29313      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/currentTranslate)
  29314      */
  29315     readonly currentTranslate: DOMPointReadOnly;
  29316     /**
  29317      * The **`height`** read-only property of the SVGSVGElement interface describes the vertical size of element as an SVGAnimatedLength.
  29318      *
  29319      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/height)
  29320      */
  29321     readonly height: SVGAnimatedLength;
  29322     /**
  29323      * The **`width`** read-only property of the SVGSVGElement interface describes the horizontal size of element as an SVGAnimatedLength.
  29324      *
  29325      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/width)
  29326      */
  29327     readonly width: SVGAnimatedLength;
  29328     /**
  29329      * The **`x`** read-only property of the SVGSVGElement interface describes the horizontal coordinate of the position of that SVG as an SVGAnimatedLength.
  29330      *
  29331      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/x)
  29332      */
  29333     readonly x: SVGAnimatedLength;
  29334     /**
  29335      * The **`y`** read-only property of the SVGSVGElement interface describes the vertical coordinate of the position of that SVG as an SVGAnimatedLength.
  29336      *
  29337      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/y)
  29338      */
  29339     readonly y: SVGAnimatedLength;
  29340     /**
  29341      * The `animationsPaused()` method of the SVGSVGElement interface checks whether the animations in the SVG document fragment are currently paused.
  29342      *
  29343      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/animationsPaused)
  29344      */
  29345     animationsPaused(): boolean;
  29346     /**
  29347      * The `checkEnclosure()` method of the SVGSVGElement interface checks if the rendered content of the given element is entirely contained within the supplied rectangle.
  29348      *
  29349      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/checkEnclosure)
  29350      */
  29351     checkEnclosure(element: SVGElement, rect: DOMRectReadOnly): boolean;
  29352     /**
  29353      * The `checkIntersection()` method of the SVGSVGElement interface checks if the rendered content of the given element intersects the supplied rectangle.
  29354      *
  29355      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/checkIntersection)
  29356      */
  29357     checkIntersection(element: SVGElement, rect: DOMRectReadOnly): boolean;
  29358     /**
  29359      * The `createSVGAngle()` method of the SVGSVGElement interface creates an SVGAngle object outside of any document trees.
  29360      *
  29361      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/createSVGAngle)
  29362      */
  29363     createSVGAngle(): SVGAngle;
  29364     /**
  29365      * The `createSVGLength()` method of the SVGSVGElement interface creates an SVGLength object outside of any document trees.
  29366      *
  29367      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/createSVGLength)
  29368      */
  29369     createSVGLength(): SVGLength;
  29370     /**
  29371      * The `createSVGMatrix()` method of the SVGSVGElement interface creates a DOMMatrix object outside of any document trees.
  29372      *
  29373      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/createSVGMatrix)
  29374      */
  29375     createSVGMatrix(): DOMMatrix;
  29376     /**
  29377      * The `createSVGNumber()` method of the SVGSVGElement interface creates an SVGNumber object outside of any document trees.
  29378      *
  29379      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/createSVGNumber)
  29380      */
  29381     createSVGNumber(): SVGNumber;
  29382     /**
  29383      * The `createSVGPoint()` method of the SVGSVGElement interface creates a DOMPoint object outside of any document trees.
  29384      *
  29385      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/createSVGPoint)
  29386      */
  29387     createSVGPoint(): DOMPoint;
  29388     /**
  29389      * The `createSVGRect()` method of the SVGSVGElement interface creates an DOMRect object outside of any document trees.
  29390      *
  29391      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/createSVGRect)
  29392      */
  29393     createSVGRect(): DOMRect;
  29394     /**
  29395      * The `createSVGTransform()` method of the SVGSVGElement interface creates an SVGTransform object outside of any document trees.
  29396      *
  29397      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/createSVGTransform)
  29398      */
  29399     createSVGTransform(): SVGTransform;
  29400     /**
  29401      * The `createSVGTransformFromMatrix()` method of the SVGSVGElement interface creates an SVGTransform object outside of any document trees, based on the given DOMMatrix object.
  29402      *
  29403      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/createSVGTransformFromMatrix)
  29404      */
  29405     createSVGTransformFromMatrix(matrix?: DOMMatrix2DInit): SVGTransform;
  29406     /**
  29407      * The `deselectAll()` method of the SVGSVGElement interface unselects any selected objects, including any selections of text strings and type-in bars.
  29408      *
  29409      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/deselectAll)
  29410      */
  29411     deselectAll(): void;
  29412     /** @deprecated */
  29413     forceRedraw(): void;
  29414     /**
  29415      * The `getCurrentTime()` method of the SVGSVGElement interface returns the current time in seconds relative to the start time for the current SVG document fragment.
  29416      *
  29417      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/getCurrentTime)
  29418      */
  29419     getCurrentTime(): number;
  29420     /**
  29421      * The `getElementById()` method of the SVGSVGElement interface searches the SVG document fragment (i.e., the search is restricted to a subset of the document tree) for an Element whose `id` property matches the specified string.
  29422      *
  29423      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/getElementById)
  29424      */
  29425     getElementById(elementId: string): Element;
  29426     getEnclosureList(rect: DOMRectReadOnly, referenceElement: SVGElement | null): NodeListOf<SVGCircleElement | SVGEllipseElement | SVGImageElement | SVGLineElement | SVGPathElement | SVGPolygonElement | SVGPolylineElement | SVGRectElement | SVGTextElement | SVGUseElement>;
  29427     getIntersectionList(rect: DOMRectReadOnly, referenceElement: SVGElement | null): NodeListOf<SVGCircleElement | SVGEllipseElement | SVGImageElement | SVGLineElement | SVGPathElement | SVGPolygonElement | SVGPolylineElement | SVGRectElement | SVGTextElement | SVGUseElement>;
  29428     /**
  29429      * The `pauseAnimations()` method of the SVGSVGElement interface suspends (i.e., pauses) all currently running animations that are defined within the SVG document fragment corresponding to this svg element, causing the animation clock corresponding to this document fragment to stand still until it is unpaused.
  29430      *
  29431      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/pauseAnimations)
  29432      */
  29433     pauseAnimations(): void;
  29434     /**
  29435      * The `setCurrentTime()` method of the SVGSVGElement interface adjusts the clock for this SVG document fragment, establishing a new current time.
  29436      *
  29437      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/setCurrentTime)
  29438      */
  29439     setCurrentTime(seconds: number): void;
  29440     /** @deprecated */
  29441     suspendRedraw(maxWaitMilliseconds: number): number;
  29442     /**
  29443      * The `unpauseAnimations()` method of the SVGSVGElement interface resumes (i.e., unpauses) currently running animations that are defined within the SVG document fragment, causing the animation clock to continue from the time at which it was suspended.
  29444      *
  29445      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement/unpauseAnimations)
  29446      */
  29447     unpauseAnimations(): void;
  29448     /** @deprecated */
  29449     unsuspendRedraw(suspendHandleID: number): void;
  29450     /** @deprecated */
  29451     unsuspendRedrawAll(): void;
  29452     addEventListener<K extends keyof SVGSVGElementEventMap>(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29453     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29454     removeEventListener<K extends keyof SVGSVGElementEventMap>(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29455     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29456 }
  29457 
  29458 declare var SVGSVGElement: {
  29459     prototype: SVGSVGElement;
  29460     new(): SVGSVGElement;
  29461 };
  29462 
  29463 /**
  29464  * The **`SVGScriptElement`** interface corresponds to the SVG script element.
  29465  *
  29466  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGScriptElement)
  29467  */
  29468 interface SVGScriptElement extends SVGElement, SVGURIReference {
  29469     /**
  29470      * The **`type`** read-only property of the SVGScriptElement interface reflects the type attribute of the given script element.
  29471      *
  29472      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGScriptElement/type)
  29473      */
  29474     type: string;
  29475     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGScriptElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29476     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29477     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGScriptElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29478     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29479 }
  29480 
  29481 declare var SVGScriptElement: {
  29482     prototype: SVGScriptElement;
  29483     new(): SVGScriptElement;
  29484 };
  29485 
  29486 /**
  29487  * The **`SVGSetElement`** interface corresponds to the set element.
  29488  *
  29489  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSetElement)
  29490  */
  29491 interface SVGSetElement extends SVGAnimationElement {
  29492     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29493     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29494     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29495     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29496 }
  29497 
  29498 declare var SVGSetElement: {
  29499     prototype: SVGSetElement;
  29500     new(): SVGSetElement;
  29501 };
  29502 
  29503 /**
  29504  * The **`SVGStopElement`** interface corresponds to the stop element.
  29505  *
  29506  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStopElement)
  29507  */
  29508 interface SVGStopElement extends SVGElement {
  29509     /**
  29510      * The **`offset`** read-only property of the SVGStopElement interface reflects the offset attribute of the given stop element.
  29511      *
  29512      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStopElement/offset)
  29513      */
  29514     readonly offset: SVGAnimatedNumber;
  29515     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStopElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29516     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29517     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStopElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29518     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29519 }
  29520 
  29521 declare var SVGStopElement: {
  29522     prototype: SVGStopElement;
  29523     new(): SVGStopElement;
  29524 };
  29525 
  29526 /**
  29527  * The **`SVGStringList`** interface defines a list of strings.
  29528  *
  29529  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStringList)
  29530  */
  29531 interface SVGStringList {
  29532     /**
  29533      * The **`length`** property of the SVGStringList interface returns the number of items in the list.
  29534      *
  29535      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStringList/length)
  29536      */
  29537     readonly length: number;
  29538     /**
  29539      * The **`numberOfItems`** property of the SVGStringList interface returns the number of items in the list.
  29540      *
  29541      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStringList/numberOfItems)
  29542      */
  29543     readonly numberOfItems: number;
  29544     /**
  29545      * The **`appendItem()`** method of the SVGStringList interface inserts a new item at the end of the list.
  29546      *
  29547      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStringList/appendItem)
  29548      */
  29549     appendItem(newItem: string): string;
  29550     /**
  29551      * The **`clear()`** method of the SVGStringList interface clears all existing items from the list, with the result being an empty list.
  29552      *
  29553      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStringList/clear)
  29554      */
  29555     clear(): void;
  29556     /**
  29557      * The **`getItem()`** method of the SVGStringList interface returns the specified item from the list.
  29558      *
  29559      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStringList/getItem)
  29560      */
  29561     getItem(index: number): string;
  29562     /**
  29563      * The **`initialize()`** method of the SVGStringList interface clears all existing items from the list and re-initializes the list to hold the single item specified by the parameter.
  29564      *
  29565      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStringList/initialize)
  29566      */
  29567     initialize(newItem: string): string;
  29568     /**
  29569      * The **`insertItemBefore()`** method of the SVGStringList interface inserts a new item into the list at the specified position.
  29570      *
  29571      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStringList/insertItemBefore)
  29572      */
  29573     insertItemBefore(newItem: string, index: number): string;
  29574     /**
  29575      * The **`removeItem()`** method of the SVGStringList interface removes an existing item at the given index from the list.
  29576      *
  29577      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStringList/removeItem)
  29578      */
  29579     removeItem(index: number): string;
  29580     /**
  29581      * The **`replaceItem()`** method of the SVGStringList interface replaces an existing item in the list with a new item.
  29582      *
  29583      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStringList/replaceItem)
  29584      */
  29585     replaceItem(newItem: string, index: number): string;
  29586     [index: number]: string;
  29587 }
  29588 
  29589 declare var SVGStringList: {
  29590     prototype: SVGStringList;
  29591     new(): SVGStringList;
  29592 };
  29593 
  29594 /**
  29595  * The **`SVGStyleElement`** interface corresponds to the SVG style element.
  29596  *
  29597  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStyleElement)
  29598  */
  29599 interface SVGStyleElement extends SVGElement, LinkStyle {
  29600     disabled: boolean;
  29601     /**
  29602      * The **`SVGStyleElement.media`** property is a media query string corresponding to the `media` attribute of the given SVG style element.
  29603      *
  29604      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStyleElement/media)
  29605      */
  29606     media: string;
  29607     /**
  29608      * The **`SVGStyleElement.title`** property is a string corresponding to the `title` attribute of the given SVG style element.
  29609      *
  29610      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStyleElement/title)
  29611      */
  29612     title: string;
  29613     /**
  29614      * The **`SVGStyleElement.type`** property returns the type of the current style.
  29615      * @deprecated
  29616      *
  29617      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStyleElement/type)
  29618      */
  29619     type: string;
  29620     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStyleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29621     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29622     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStyleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29623     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29624 }
  29625 
  29626 declare var SVGStyleElement: {
  29627     prototype: SVGStyleElement;
  29628     new(): SVGStyleElement;
  29629 };
  29630 
  29631 /**
  29632  * The **`SVGSwitchElement`** interface corresponds to the switch element.
  29633  *
  29634  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSwitchElement)
  29635  */
  29636 interface SVGSwitchElement extends SVGGraphicsElement {
  29637     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSwitchElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29638     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29639     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSwitchElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29640     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29641 }
  29642 
  29643 declare var SVGSwitchElement: {
  29644     prototype: SVGSwitchElement;
  29645     new(): SVGSwitchElement;
  29646 };
  29647 
  29648 /**
  29649  * The **`SVGSymbolElement`** interface corresponds to the symbol element.
  29650  *
  29651  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSymbolElement)
  29652  */
  29653 interface SVGSymbolElement extends SVGElement, SVGFitToViewBox {
  29654     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSymbolElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29655     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29656     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSymbolElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29657     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29658 }
  29659 
  29660 declare var SVGSymbolElement: {
  29661     prototype: SVGSymbolElement;
  29662     new(): SVGSymbolElement;
  29663 };
  29664 
  29665 /**
  29666  * The **`SVGTSpanElement`** interface represents a tspan element.
  29667  *
  29668  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTSpanElement)
  29669  */
  29670 interface SVGTSpanElement extends SVGTextPositioningElement {
  29671     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTSpanElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29672     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29673     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTSpanElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29674     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29675 }
  29676 
  29677 declare var SVGTSpanElement: {
  29678     prototype: SVGTSpanElement;
  29679     new(): SVGTSpanElement;
  29680 };
  29681 
  29682 interface SVGTests {
  29683     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement/requiredExtensions) */
  29684     readonly requiredExtensions: SVGStringList;
  29685     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement/systemLanguage) */
  29686     readonly systemLanguage: SVGStringList;
  29687 }
  29688 
  29689 /**
  29690  * The **`SVGTextContentElement`** interface is implemented by elements that support rendering child text content.
  29691  *
  29692  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextContentElement)
  29693  */
  29694 interface SVGTextContentElement extends SVGGraphicsElement {
  29695     /**
  29696      * The **`lengthAdjust`** read-only property of the SVGTextContentElement interface reflects the lengthAdjust attribute of the given element.
  29697      *
  29698      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextContentElement/lengthAdjust)
  29699      */
  29700     readonly lengthAdjust: SVGAnimatedEnumeration;
  29701     /**
  29702      * The **`textLength`** read-only property of the SVGTextContentElement interface reflects the textLength attribute of the given element.
  29703      *
  29704      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextContentElement/textLength)
  29705      */
  29706     readonly textLength: SVGAnimatedLength;
  29707     /**
  29708      * The `getCharNumAtPosition()` method of the SVGTextContentElement interface represents the character which caused a text glyph to be rendered at a given position in the coordinate system.
  29709      *
  29710      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextContentElement/getCharNumAtPosition)
  29711      */
  29712     getCharNumAtPosition(point?: DOMPointInit): number;
  29713     /**
  29714      * The `getComputedTextLength()` method of the SVGTextContentElement interface represents the computed length for the text within the element.
  29715      *
  29716      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextContentElement/getComputedTextLength)
  29717      */
  29718     getComputedTextLength(): number;
  29719     /**
  29720      * The `getEndPositionOfChar()` method of the SVGTextContentElement interface returns the trailing position of a typographic character after text layout has been performed.
  29721      *
  29722      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextContentElement/getEndPositionOfChar)
  29723      */
  29724     getEndPositionOfChar(charnum: number): DOMPoint;
  29725     /**
  29726      * The `getExtentOfChar()` method of the SVGTextContentElement interface the represents computed tight bounding box of the glyph cell that corresponds to a given typographic character.
  29727      *
  29728      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextContentElement/getExtentOfChar)
  29729      */
  29730     getExtentOfChar(charnum: number): DOMRect;
  29731     /**
  29732      * The `getNumberOfChars()` method of the SVGTextContentElement interface represents the total number of addressable characters available for rendering within the current element, regardless of whether they will be rendered.
  29733      *
  29734      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextContentElement/getNumberOfChars)
  29735      */
  29736     getNumberOfChars(): number;
  29737     /**
  29738      * The `getRotationOfChar()` method of the SVGTextContentElement interface the represents the rotation of a typographic character.
  29739      *
  29740      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextContentElement/getRotationOfChar)
  29741      */
  29742     getRotationOfChar(charnum: number): number;
  29743     /**
  29744      * The `getStartPositionOfChar()` method of the SVGTextContentElement interface returns the position of a typographic character after text layout has been performed.
  29745      *
  29746      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextContentElement/getStartPositionOfChar)
  29747      */
  29748     getStartPositionOfChar(charnum: number): DOMPoint;
  29749     /**
  29750      * The `getSubStringLength()` method of the SVGTextContentElement interface represents the computed length of the formatted text advance distance for a substring of text within the element.
  29751      *
  29752      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextContentElement/getSubStringLength)
  29753      */
  29754     getSubStringLength(charnum: number, nchars: number): number;
  29755     /** @deprecated */
  29756     selectSubString(charnum: number, nchars: number): void;
  29757     readonly LENGTHADJUST_UNKNOWN: 0;
  29758     readonly LENGTHADJUST_SPACING: 1;
  29759     readonly LENGTHADJUST_SPACINGANDGLYPHS: 2;
  29760     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextContentElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29761     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29762     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextContentElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29763     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29764 }
  29765 
  29766 declare var SVGTextContentElement: {
  29767     prototype: SVGTextContentElement;
  29768     new(): SVGTextContentElement;
  29769     readonly LENGTHADJUST_UNKNOWN: 0;
  29770     readonly LENGTHADJUST_SPACING: 1;
  29771     readonly LENGTHADJUST_SPACINGANDGLYPHS: 2;
  29772 };
  29773 
  29774 /**
  29775  * The **`SVGTextElement`** interface corresponds to the text elements.
  29776  *
  29777  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextElement)
  29778  */
  29779 interface SVGTextElement extends SVGTextPositioningElement {
  29780     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29781     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29782     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29783     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29784 }
  29785 
  29786 declare var SVGTextElement: {
  29787     prototype: SVGTextElement;
  29788     new(): SVGTextElement;
  29789 };
  29790 
  29791 /**
  29792  * The **`SVGTextPathElement`** interface corresponds to the textPath element.
  29793  *
  29794  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextPathElement)
  29795  */
  29796 interface SVGTextPathElement extends SVGTextContentElement, SVGURIReference {
  29797     /**
  29798      * The **`method`** read-only property of the SVGTextPathElement interface reflects the method attribute of the given textPath element.
  29799      *
  29800      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextPathElement/method)
  29801      */
  29802     readonly method: SVGAnimatedEnumeration;
  29803     /**
  29804      * The **`spacing`** read-only property of the SVGTextPathElement interface reflects the spacing attribute of the given textPath element.
  29805      *
  29806      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextPathElement/spacing)
  29807      */
  29808     readonly spacing: SVGAnimatedEnumeration;
  29809     /**
  29810      * The **`startOffset`** read-only property of the SVGTextPathElement interface reflects the X component of the startOffset attribute of the given textPath, which defines an offset from the start of the path for the initial current text position along the path after converting the path to the `<textPath>` element's coordinate system.
  29811      *
  29812      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextPathElement/startOffset)
  29813      */
  29814     readonly startOffset: SVGAnimatedLength;
  29815     readonly TEXTPATH_METHODTYPE_UNKNOWN: 0;
  29816     readonly TEXTPATH_METHODTYPE_ALIGN: 1;
  29817     readonly TEXTPATH_METHODTYPE_STRETCH: 2;
  29818     readonly TEXTPATH_SPACINGTYPE_UNKNOWN: 0;
  29819     readonly TEXTPATH_SPACINGTYPE_AUTO: 1;
  29820     readonly TEXTPATH_SPACINGTYPE_EXACT: 2;
  29821     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29822     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29823     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29824     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29825 }
  29826 
  29827 declare var SVGTextPathElement: {
  29828     prototype: SVGTextPathElement;
  29829     new(): SVGTextPathElement;
  29830     readonly TEXTPATH_METHODTYPE_UNKNOWN: 0;
  29831     readonly TEXTPATH_METHODTYPE_ALIGN: 1;
  29832     readonly TEXTPATH_METHODTYPE_STRETCH: 2;
  29833     readonly TEXTPATH_SPACINGTYPE_UNKNOWN: 0;
  29834     readonly TEXTPATH_SPACINGTYPE_AUTO: 1;
  29835     readonly TEXTPATH_SPACINGTYPE_EXACT: 2;
  29836 };
  29837 
  29838 /**
  29839  * The **`SVGTextPositioningElement`** interface is implemented by elements that support attributes that position individual text glyphs.
  29840  *
  29841  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextPositioningElement)
  29842  */
  29843 interface SVGTextPositioningElement extends SVGTextContentElement {
  29844     /**
  29845      * The **`dx`** read-only property of the SVGTextPositioningElement interface describes the x-axis coordinate of the SVGTextElement or SVGTSpanElement as an SVGAnimatedLengthList.
  29846      *
  29847      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextPositioningElement/dx)
  29848      */
  29849     readonly dx: SVGAnimatedLengthList;
  29850     /**
  29851      * The **`dy`** read-only property of the SVGTextPositioningElement interface describes the y-axis coordinate of the SVGTextElement or SVGTSpanElement as an SVGAnimatedLengthList.
  29852      *
  29853      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextPositioningElement/dy)
  29854      */
  29855     readonly dy: SVGAnimatedLengthList;
  29856     /**
  29857      * The **`rotate`** read-only property of the SVGTextPositioningElement interface reflects the rotation of individual text glyphs, as specified by the rotate attribute of the given element.
  29858      *
  29859      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextPositioningElement/rotate)
  29860      */
  29861     readonly rotate: SVGAnimatedNumberList;
  29862     /**
  29863      * The **`x`** read-only property of the SVGTextPositioningElement interface describes the x-axis coordinate of the SVGTextElement or SVGTSpanElement as an SVGAnimatedLengthList.
  29864      *
  29865      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextPositioningElement/x)
  29866      */
  29867     readonly x: SVGAnimatedLengthList;
  29868     /**
  29869      * The **`y`** read-only property of the SVGTextPositioningElement interface describes the y-axis coordinate of the SVGTextElement or SVGTSpanElement as an SVGAnimatedLengthList.
  29870      *
  29871      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextPositioningElement/y)
  29872      */
  29873     readonly y: SVGAnimatedLengthList;
  29874     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPositioningElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29875     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29876     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPositioningElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29877     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29878 }
  29879 
  29880 declare var SVGTextPositioningElement: {
  29881     prototype: SVGTextPositioningElement;
  29882     new(): SVGTextPositioningElement;
  29883 };
  29884 
  29885 /**
  29886  * The **`SVGTitleElement`** interface corresponds to the title element.
  29887  *
  29888  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTitleElement)
  29889  */
  29890 interface SVGTitleElement extends SVGElement {
  29891     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTitleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  29892     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  29893     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTitleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  29894     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  29895 }
  29896 
  29897 declare var SVGTitleElement: {
  29898     prototype: SVGTitleElement;
  29899     new(): SVGTitleElement;
  29900 };
  29901 
  29902 /**
  29903  * The **`SVGTransform`** interface reflects 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.
  29904  *
  29905  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransform)
  29906  */
  29907 interface SVGTransform {
  29908     /**
  29909      * The **`angle`** read-only property of the SVGTransform interface represents the angle of the transformation in degrees.
  29910      *
  29911      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransform/angle)
  29912      */
  29913     readonly angle: number;
  29914     /**
  29915      * The **`matrix`** read-only property of the SVGTransform interface represents the transformation matrix that corresponds to the transformation `type`.
  29916      *
  29917      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransform/matrix)
  29918      */
  29919     readonly matrix: DOMMatrix;
  29920     /**
  29921      * The **`type`** read-only property of the SVGTransform interface represents the `type` of transformation applied, specified by one of the `SVG_TRANSFORM_*` constants defined on this interface.
  29922      *
  29923      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransform/type)
  29924      */
  29925     readonly type: number;
  29926     /**
  29927      * The `setMatrix()` method of the SVGTransform interface sets the transform type to `SVG_TRANSFORM_MATRIX`, with parameter `matrix` defining the new transformation.
  29928      *
  29929      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransform/setMatrix)
  29930      */
  29931     setMatrix(matrix?: DOMMatrix2DInit): void;
  29932     /**
  29933      * The `setRotate()` method of the SVGTransform interface sets the transform type to `SVG_TRANSFORM_ROTATE`, with parameter `angle` defining the rotation angle and parameters `cx` and `cy` defining the optional center of rotation.
  29934      *
  29935      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransform/setRotate)
  29936      */
  29937     setRotate(angle: number, cx: number, cy: number): void;
  29938     /**
  29939      * The `setScale()` method of the SVGTransform interface sets the transform type to `SVG_TRANSFORM_SCALE`, with parameters `sx` and `sy` defining the scale amounts.
  29940      *
  29941      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransform/setScale)
  29942      */
  29943     setScale(sx: number, sy: number): void;
  29944     /**
  29945      * The `setSkewX()` method of the SVGTransform interface sets the transform type to `SVG_TRANSFORM_SKEWX`, with parameter `angle` defining the amount of skew along the X-axis.
  29946      *
  29947      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransform/setSkewX)
  29948      */
  29949     setSkewX(angle: number): void;
  29950     /**
  29951      * The `setSkewY()` method of the SVGTransform interface sets the transform type to `SVG_TRANSFORM_SKEWY`, with parameter `angle` defining the amount of skew along the Y-axis.
  29952      *
  29953      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransform/setSkewY)
  29954      */
  29955     setSkewY(angle: number): void;
  29956     /**
  29957      * The `setTranslate()` method of the SVGTransform interface sets the transform type to `SVG_TRANSFORM_TRANSLATE`, with parameters `tx` and `ty` defining the translation amounts.
  29958      *
  29959      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransform/setTranslate)
  29960      */
  29961     setTranslate(tx: number, ty: number): void;
  29962     readonly SVG_TRANSFORM_UNKNOWN: 0;
  29963     readonly SVG_TRANSFORM_MATRIX: 1;
  29964     readonly SVG_TRANSFORM_TRANSLATE: 2;
  29965     readonly SVG_TRANSFORM_SCALE: 3;
  29966     readonly SVG_TRANSFORM_ROTATE: 4;
  29967     readonly SVG_TRANSFORM_SKEWX: 5;
  29968     readonly SVG_TRANSFORM_SKEWY: 6;
  29969 }
  29970 
  29971 declare var SVGTransform: {
  29972     prototype: SVGTransform;
  29973     new(): SVGTransform;
  29974     readonly SVG_TRANSFORM_UNKNOWN: 0;
  29975     readonly SVG_TRANSFORM_MATRIX: 1;
  29976     readonly SVG_TRANSFORM_TRANSLATE: 2;
  29977     readonly SVG_TRANSFORM_SCALE: 3;
  29978     readonly SVG_TRANSFORM_ROTATE: 4;
  29979     readonly SVG_TRANSFORM_SKEWX: 5;
  29980     readonly SVG_TRANSFORM_SKEWY: 6;
  29981 };
  29982 
  29983 /**
  29984  * The **`SVGTransformList`** interface defines a list of SVGTransform objects.
  29985  *
  29986  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransformList)
  29987  */
  29988 interface SVGTransformList {
  29989     /**
  29990      * The **`length`** read-only property of the SVGTransformList interface represents the number of items in the list.
  29991      *
  29992      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransformList/length)
  29993      */
  29994     readonly length: number;
  29995     /**
  29996      * The **`numberOfItems`** read-only property of the SVGTransformList interface represents the number of items in the list.
  29997      *
  29998      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransformList/numberOfItems)
  29999      */
  30000     readonly numberOfItems: number;
  30001     /**
  30002      * The `appendItem()` method of the SVGTransformList interface inserts a new item at the end of the list.
  30003      *
  30004      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransformList/appendItem)
  30005      */
  30006     appendItem(newItem: SVGTransform): SVGTransform;
  30007     /**
  30008      * The `clear()` method of the SVGTransformList interface clears all existing current items from the list, with the result being an empty list.
  30009      *
  30010      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransformList/clear)
  30011      */
  30012     clear(): void;
  30013     /**
  30014      * The `consolidate()` method of the SVGTransformList interface consolidates the list of separate SVGTransform objects by multiplying the equivalent transformation matrices together to result in a list consisting of a single `SVGTransform` object of type `SVG_TRANSFORM_MATRIX`.
  30015      *
  30016      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransformList/consolidate)
  30017      */
  30018     consolidate(): SVGTransform | null;
  30019     /**
  30020      * The `createSVGTransformFromMatrix()` method of the SVGTransformList interface creates an SVGTransform object which is initialized to a transform of type `SVG_TRANSFORM_MATRIX` and whose values are the given matrix.
  30021      *
  30022      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransformList/createSVGTransformFromMatrix)
  30023      */
  30024     createSVGTransformFromMatrix(matrix?: DOMMatrix2DInit): SVGTransform;
  30025     /**
  30026      * The `getItem()` method of the SVGTransformList interface returns the specified item from the list.
  30027      *
  30028      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransformList/getItem)
  30029      */
  30030     getItem(index: number): SVGTransform;
  30031     /**
  30032      * The `initialize()` method of the SVGTransformList interface clears all existing current items from the list and re-initializes the list to hold the single item specified by the parameter.
  30033      *
  30034      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransformList/initialize)
  30035      */
  30036     initialize(newItem: SVGTransform): SVGTransform;
  30037     /**
  30038      * The `insertItemBefore()` method of the SVGTransformList interface inserts a new item into the list at the specified position.
  30039      *
  30040      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransformList/insertItemBefore)
  30041      */
  30042     insertItemBefore(newItem: SVGTransform, index: number): SVGTransform;
  30043     /**
  30044      * The `removeItem()` method of the SVGTransformList interface removes an existing item from the list.
  30045      *
  30046      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransformList/removeItem)
  30047      */
  30048     removeItem(index: number): SVGTransform;
  30049     /**
  30050      * The `replaceItem()` method of the SVGTransformList interface replaces an existing item in the list with a new item.
  30051      *
  30052      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransformList/replaceItem)
  30053      */
  30054     replaceItem(newItem: SVGTransform, index: number): SVGTransform;
  30055     [index: number]: SVGTransform;
  30056 }
  30057 
  30058 declare var SVGTransformList: {
  30059     prototype: SVGTransformList;
  30060     new(): SVGTransformList;
  30061 };
  30062 
  30063 interface SVGURIReference {
  30064     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAElement/href) */
  30065     readonly href: SVGAnimatedString;
  30066 }
  30067 
  30068 /**
  30069  * The **`SVGUnitTypes`** interface defines a commonly used set of constants used for reflecting gradientUnits, patternContentUnits and other similar attributes.
  30070  *
  30071  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGUnitTypes)
  30072  */
  30073 interface SVGUnitTypes {
  30074     readonly SVG_UNIT_TYPE_UNKNOWN: 0;
  30075     readonly SVG_UNIT_TYPE_USERSPACEONUSE: 1;
  30076     readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: 2;
  30077 }
  30078 
  30079 declare var SVGUnitTypes: {
  30080     prototype: SVGUnitTypes;
  30081     new(): SVGUnitTypes;
  30082     readonly SVG_UNIT_TYPE_UNKNOWN: 0;
  30083     readonly SVG_UNIT_TYPE_USERSPACEONUSE: 1;
  30084     readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: 2;
  30085 };
  30086 
  30087 /**
  30088  * The **`SVGUseElement`** interface corresponds to the use element.
  30089  *
  30090  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGUseElement)
  30091  */
  30092 interface SVGUseElement extends SVGGraphicsElement, SVGURIReference {
  30093     /**
  30094      * The **`height`** read-only property of the SVGUseElement interface describes the height of the referenced element as an SVGAnimatedLength.
  30095      *
  30096      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGUseElement/height)
  30097      */
  30098     readonly height: SVGAnimatedLength;
  30099     /**
  30100      * The **`width`** read-only property of the SVGUseElement interface describes the width of the referenced element as an SVGAnimatedLength.
  30101      *
  30102      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGUseElement/width)
  30103      */
  30104     readonly width: SVGAnimatedLength;
  30105     /**
  30106      * The **`x`** read-only property of the SVGUseElement interface describes the x-axis coordinate of the start point of the referenced element as an SVGAnimatedLength.
  30107      *
  30108      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGUseElement/x)
  30109      */
  30110     readonly x: SVGAnimatedLength;
  30111     /**
  30112      * The **`y`** read-only property of the SVGUseElement interface describes the y-axis coordinate of the start point of the referenced element as an SVGAnimatedLength.
  30113      *
  30114      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGUseElement/y)
  30115      */
  30116     readonly y: SVGAnimatedLength;
  30117     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGUseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  30118     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  30119     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGUseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  30120     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  30121 }
  30122 
  30123 declare var SVGUseElement: {
  30124     prototype: SVGUseElement;
  30125     new(): SVGUseElement;
  30126 };
  30127 
  30128 /**
  30129  * The **`SVGViewElement`** interface provides access to the properties of view elements, as well as methods to manipulate them.
  30130  *
  30131  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGViewElement)
  30132  */
  30133 interface SVGViewElement extends SVGElement, SVGFitToViewBox {
  30134     addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGViewElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  30135     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  30136     removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGViewElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  30137     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  30138 }
  30139 
  30140 declare var SVGViewElement: {
  30141     prototype: SVGViewElement;
  30142     new(): SVGViewElement;
  30143 };
  30144 
  30145 /**
  30146  * The `Screen` interface represents a screen, usually the one on which the current window is being rendered, and is obtained using window.screen.
  30147  *
  30148  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen)
  30149  */
  30150 interface Screen {
  30151     /**
  30152      * The read-only Screen interface's **`availHeight`** property returns the height, in CSS pixels, of the space available for Web content on the screen.
  30153      *
  30154      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/availHeight)
  30155      */
  30156     readonly availHeight: number;
  30157     /**
  30158      * The **`Screen.availWidth`** property returns the amount of horizontal space (in CSS pixels) available to the window.
  30159      *
  30160      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/availWidth)
  30161      */
  30162     readonly availWidth: number;
  30163     /**
  30164      * The **`Screen.colorDepth`** read-only property returns the color depth of the screen.
  30165      *
  30166      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/colorDepth)
  30167      */
  30168     readonly colorDepth: number;
  30169     /**
  30170      * The **`Screen.height`** read-only property returns the height of the screen in CSS pixels.
  30171      *
  30172      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/height)
  30173      */
  30174     readonly height: number;
  30175     /**
  30176      * The **`orientation`** read-only property of the An instance of ScreenOrientation representing the orientation of the screen.
  30177      *
  30178      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/orientation)
  30179      */
  30180     readonly orientation: ScreenOrientation;
  30181     /**
  30182      * Returns the bit depth of the screen.
  30183      *
  30184      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/pixelDepth)
  30185      */
  30186     readonly pixelDepth: number;
  30187     /**
  30188      * The **`Screen.width`** read-only property returns the width of the screen in CSS pixels.
  30189      *
  30190      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/width)
  30191      */
  30192     readonly width: number;
  30193 }
  30194 
  30195 declare var Screen: {
  30196     prototype: Screen;
  30197     new(): Screen;
  30198 };
  30199 
  30200 interface ScreenOrientationEventMap {
  30201     "change": Event;
  30202 }
  30203 
  30204 /**
  30205  * The **`ScreenOrientation`** interface of the Screen Orientation API provides information about the current orientation of the document.
  30206  *
  30207  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScreenOrientation)
  30208  */
  30209 interface ScreenOrientation extends EventTarget {
  30210     /**
  30211      * The **`angle`** read-only property of the angle.
  30212      *
  30213      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScreenOrientation/angle)
  30214      */
  30215     readonly angle: number;
  30216     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScreenOrientation/change_event) */
  30217     onchange: ((this: ScreenOrientation, ev: Event) => any) | null;
  30218     /**
  30219      * The **`type`** read-only property of the type, one of `portrait-primary`, `portrait-secondary`, `landscape-primary`, or `landscape-secondary`.
  30220      *
  30221      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScreenOrientation/type)
  30222      */
  30223     readonly type: OrientationType;
  30224     /**
  30225      * The **`unlock()`** method of the document from its default orientation.
  30226      *
  30227      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScreenOrientation/unlock)
  30228      */
  30229     unlock(): void;
  30230     addEventListener<K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  30231     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  30232     removeEventListener<K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  30233     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  30234 }
  30235 
  30236 declare var ScreenOrientation: {
  30237     prototype: ScreenOrientation;
  30238     new(): ScreenOrientation;
  30239 };
  30240 
  30241 interface ScriptProcessorNodeEventMap {
  30242     "audioprocess": AudioProcessingEvent;
  30243 }
  30244 
  30245 /**
  30246  * The `ScriptProcessorNode` interface allows the generation, processing, or analyzing of audio using JavaScript.
  30247  * @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).
  30248  *
  30249  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScriptProcessorNode)
  30250  */
  30251 interface ScriptProcessorNode extends AudioNode {
  30252     /**
  30253      * The `bufferSize` property of the ScriptProcessorNode interface returns an integer representing both the input and output buffer size, in sample-frames.
  30254      * @deprecated
  30255      *
  30256      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScriptProcessorNode/bufferSize)
  30257      */
  30258     readonly bufferSize: number;
  30259     /**
  30260      * @deprecated
  30261      *
  30262      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScriptProcessorNode/audioprocess_event)
  30263      */
  30264     onaudioprocess: ((this: ScriptProcessorNode, ev: AudioProcessingEvent) => any) | null;
  30265     addEventListener<K extends keyof ScriptProcessorNodeEventMap>(type: K, listener: (this: ScriptProcessorNode, ev: ScriptProcessorNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  30266     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  30267     removeEventListener<K extends keyof ScriptProcessorNodeEventMap>(type: K, listener: (this: ScriptProcessorNode, ev: ScriptProcessorNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  30268     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  30269 }
  30270 
  30271 /** @deprecated */
  30272 declare var ScriptProcessorNode: {
  30273     prototype: ScriptProcessorNode;
  30274     new(): ScriptProcessorNode;
  30275 };
  30276 
  30277 /**
  30278  * The **`SecurityPolicyViolationEvent`** interface inherits from Event, and represents the event object of a `securitypolicyviolation` event sent on an Element/securitypolicyviolation_event, Document/securitypolicyviolation_event, or WorkerGlobalScope/securitypolicyviolation_event when its Content Security Policy (CSP) is violated.
  30279  *
  30280  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent)
  30281  */
  30282 interface SecurityPolicyViolationEvent extends Event {
  30283     /**
  30284      * The **`blockedURI`** read-only property of the SecurityPolicyViolationEvent interface is a string representing the URI of the resource that was blocked because it violates a Content Security Policy (CSP).
  30285      *
  30286      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/blockedURI)
  30287      */
  30288     readonly blockedURI: string;
  30289     /**
  30290      * The **`columnNumber`** read-only property of the SecurityPolicyViolationEvent interface is the column number in the document or worker script at which the Content Security Policy (CSP) violation occurred.
  30291      *
  30292      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/columnNumber)
  30293      */
  30294     readonly columnNumber: number;
  30295     /**
  30296      * The **`disposition`** read-only property of the SecurityPolicyViolationEvent interface indicates how the violated Content Security Policy (CSP) is configured to be treated by the user agent.
  30297      *
  30298      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/disposition)
  30299      */
  30300     readonly disposition: SecurityPolicyViolationEventDisposition;
  30301     /**
  30302      * The **`documentURI`** read-only property of the SecurityPolicyViolationEvent interface is a string representing the URI of the document or worker in which the Content Security Policy (CSP) violation occurred.
  30303      *
  30304      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/documentURI)
  30305      */
  30306     readonly documentURI: string;
  30307     /**
  30308      * The **`effectiveDirective`** read-only property of the SecurityPolicyViolationEvent interface is a string representing the Content Security Policy (CSP) directive that was violated.
  30309      *
  30310      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/effectiveDirective)
  30311      */
  30312     readonly effectiveDirective: string;
  30313     /**
  30314      * The **`lineNumber`** read-only property of the SecurityPolicyViolationEvent interface is the line number in the document or worker script at which the Content Security Policy (CSP) violation occurred.
  30315      *
  30316      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/lineNumber)
  30317      */
  30318     readonly lineNumber: number;
  30319     /**
  30320      * The **`originalPolicy`** read-only property of the SecurityPolicyViolationEvent interface is a string containing the Content Security Policy (CSP) whose enforcement uncovered the violation.
  30321      *
  30322      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/originalPolicy)
  30323      */
  30324     readonly originalPolicy: string;
  30325     /**
  30326      * The **`referrer`** read-only property of the SecurityPolicyViolationEvent interface is a string representing the referrer for the resources whose Content Security Policy (CSP) was violated.
  30327      *
  30328      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/referrer)
  30329      */
  30330     readonly referrer: string;
  30331     /**
  30332      * The **`sample`** read-only property of the SecurityPolicyViolationEvent interface is a string representing a sample of the resource that caused the Content Security Policy (CSP) violation.
  30333      *
  30334      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/sample)
  30335      */
  30336     readonly sample: string;
  30337     /**
  30338      * The **`sourceFile`** read-only property of the SecurityPolicyViolationEvent interface is a string representing the URL of the script in which the Content Security Policy (CSP) violation occurred.
  30339      *
  30340      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/sourceFile)
  30341      */
  30342     readonly sourceFile: string;
  30343     /**
  30344      * The **`statusCode`** read-only property of the SecurityPolicyViolationEvent interface is a number representing the HTTP status code of the window or worker in which the Content Security Policy (CSP) violation occurred.
  30345      *
  30346      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/statusCode)
  30347      */
  30348     readonly statusCode: number;
  30349     /**
  30350      * The **`violatedDirective`** read-only property of the SecurityPolicyViolationEvent interface is a string representing the Content Security Policy (CSP) directive that was violated.
  30351      *
  30352      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/violatedDirective)
  30353      */
  30354     readonly violatedDirective: string;
  30355 }
  30356 
  30357 declare var SecurityPolicyViolationEvent: {
  30358     prototype: SecurityPolicyViolationEvent;
  30359     new(type: string, eventInitDict?: SecurityPolicyViolationEventInit): SecurityPolicyViolationEvent;
  30360 };
  30361 
  30362 /**
  30363  * A **`Selection`** object represents the range of text selected by the user or the current position of the caret.
  30364  *
  30365  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection)
  30366  */
  30367 interface Selection {
  30368     /**
  30369      * The **`Selection.anchorNode`** read-only property returns the Node in which the selection begins.
  30370      *
  30371      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/anchorNode)
  30372      */
  30373     readonly anchorNode: Node | null;
  30374     /**
  30375      * The **`Selection.anchorOffset`** read-only property returns the number of characters that the selection's anchor is offset within the In the case of Selection.anchorNode being another type of node, **`Selection.anchorOffset`** returns the number of Node.childNodes the selection's anchor is offset within the Selection.anchorNode.
  30376      *
  30377      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/anchorOffset)
  30378      */
  30379     readonly anchorOffset: number;
  30380     /**
  30381      * The **`direction`** read-only property of the Selection interface is a string that provides the direction of the current selection.
  30382      *
  30383      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/direction)
  30384      */
  30385     readonly direction: string;
  30386     /**
  30387      * The **`Selection.focusNode`** read-only property returns the Node in which the selection ends.
  30388      *
  30389      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/focusNode)
  30390      */
  30391     readonly focusNode: Node | null;
  30392     /**
  30393      * The **`Selection.focusOffset`** read-only property returns the number of characters that the selection's focus is offset within the In the case of Selection.focusNode being another type of node, **`Selection.focusOffset`** returns the number of Node.childNodes the selection's focus is offset within the Selection.focusNode.
  30394      *
  30395      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/focusOffset)
  30396      */
  30397     readonly focusOffset: number;
  30398     /**
  30399      * The **`Selection.isCollapsed`** read-only property returns a boolean value which indicates whether or not there is currently any text selected.
  30400      *
  30401      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/isCollapsed)
  30402      */
  30403     readonly isCollapsed: boolean;
  30404     /**
  30405      * The **`Selection.rangeCount`** read-only property returns the number of ranges in the selection.
  30406      *
  30407      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/rangeCount)
  30408      */
  30409     readonly rangeCount: number;
  30410     /**
  30411      * The **`type`** read-only property of the type of the current selection.
  30412      *
  30413      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/type)
  30414      */
  30415     readonly type: string;
  30416     /**
  30417      * The **`Selection.addRange()`** method adds a ```js-nolint addRange(range) ``` - `range` - : A Range object that will be added to the Selection.
  30418      *
  30419      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/addRange)
  30420      */
  30421     addRange(range: Range): void;
  30422     /**
  30423      * The **`Selection.collapse()`** method collapses the current selection to a single point.
  30424      *
  30425      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/collapse)
  30426      */
  30427     collapse(node: Node | null, offset?: number): void;
  30428     /**
  30429      * The **`Selection.collapseToEnd()`** method collapses the selection to the end of the last range in the selection.
  30430      *
  30431      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/collapseToEnd)
  30432      */
  30433     collapseToEnd(): void;
  30434     /**
  30435      * The **`Selection.collapseToStart()`** method collapses the selection to the start of the first range in the selection.
  30436      *
  30437      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/collapseToStart)
  30438      */
  30439     collapseToStart(): void;
  30440     /**
  30441      * The **`Selection.containsNode()`** method indicates whether a specified node is part of the selection.
  30442      *
  30443      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/containsNode)
  30444      */
  30445     containsNode(node: Node, allowPartialContainment?: boolean): boolean;
  30446     /**
  30447      * The **`deleteFromDocument()`** method of the ```js-nolint deleteFromDocument() ``` None.
  30448      *
  30449      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/deleteFromDocument)
  30450      */
  30451     deleteFromDocument(): void;
  30452     /**
  30453      * The **`Selection.empty()`** method removes all ranges from the selection, leaving the Selection.anchorNode and Selection.focusNode properties equal to `null` and nothing selected.
  30454      *
  30455      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/empty)
  30456      */
  30457     empty(): void;
  30458     /**
  30459      * The **`Selection.extend()`** method moves the focus of the selection to a specified point.
  30460      *
  30461      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/extend)
  30462      */
  30463     extend(node: Node, offset?: number): void;
  30464     /**
  30465      * The **`Selection.getComposedRanges()`** method returns an array of StaticRange objects representing the current selection ranges, and can return ranges that potentially cross shadow boundaries.
  30466      *
  30467      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/getComposedRanges)
  30468      */
  30469     getComposedRanges(options?: GetComposedRangesOptions): StaticRange[];
  30470     /**
  30471      * The **`getRangeAt()`** method of the Selection interface returns a range object representing a currently selected range.
  30472      *
  30473      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/getRangeAt)
  30474      */
  30475     getRangeAt(index: number): Range;
  30476     /**
  30477      * The **`Selection.modify()`** method applies a change to the current selection or cursor position, using simple textual commands.
  30478      *
  30479      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/modify)
  30480      */
  30481     modify(alter?: string, direction?: string, granularity?: string): void;
  30482     /**
  30483      * The **`Selection.removeAllRanges()`** method removes all ranges from the selection, leaving the Selection.anchorNode and Selection.focusNode properties equal to `null` and nothing selected.
  30484      *
  30485      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/removeAllRanges)
  30486      */
  30487     removeAllRanges(): void;
  30488     /**
  30489      * The **`Selection.removeRange()`** method removes a range from a selection.
  30490      *
  30491      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/removeRange)
  30492      */
  30493     removeRange(range: Range): void;
  30494     /**
  30495      * The **`Selection.selectAllChildren()`** method adds all the children of the specified node to the selection.
  30496      *
  30497      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/selectAllChildren)
  30498      */
  30499     selectAllChildren(node: Node): void;
  30500     /**
  30501      * The **`setBaseAndExtent()`** method of the Selection interface sets the selection to be a range including all or parts of two specified DOM nodes, and any content located between them.
  30502      *
  30503      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/setBaseAndExtent)
  30504      */
  30505     setBaseAndExtent(anchorNode: Node, anchorOffset: number, focusNode: Node, focusOffset: number): void;
  30506     /**
  30507      * The **`Selection.setPosition()`** method collapses the current selection to a single point.
  30508      *
  30509      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/setPosition)
  30510      */
  30511     setPosition(node: Node | null, offset?: number): void;
  30512     toString(): string;
  30513 }
  30514 
  30515 declare var Selection: {
  30516     prototype: Selection;
  30517     new(): Selection;
  30518 };
  30519 
  30520 interface ServiceWorkerEventMap extends AbstractWorkerEventMap {
  30521     "statechange": Event;
  30522 }
  30523 
  30524 /**
  30525  * The **`ServiceWorker`** interface of the Service Worker API provides a reference to a service worker.
  30526  * Available only in secure contexts.
  30527  *
  30528  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker)
  30529  */
  30530 interface ServiceWorker extends EventTarget, AbstractWorker {
  30531     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/statechange_event) */
  30532     onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
  30533     /**
  30534      * Returns the `ServiceWorker` serialized script URL defined as part of `ServiceWorkerRegistration`.
  30535      *
  30536      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/scriptURL)
  30537      */
  30538     readonly scriptURL: string;
  30539     /**
  30540      * The **`state`** read-only property of the of the service worker.
  30541      *
  30542      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/state)
  30543      */
  30544     readonly state: ServiceWorkerState;
  30545     /**
  30546      * The **`postMessage()`** method of the ServiceWorker interface sends a message to the worker.
  30547      *
  30548      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/postMessage)
  30549      */
  30550     postMessage(message: any, transfer: Transferable[]): void;
  30551     postMessage(message: any, options?: StructuredSerializeOptions): void;
  30552     addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  30553     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  30554     removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  30555     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  30556 }
  30557 
  30558 declare var ServiceWorker: {
  30559     prototype: ServiceWorker;
  30560     new(): ServiceWorker;
  30561 };
  30562 
  30563 interface ServiceWorkerContainerEventMap {
  30564     "controllerchange": Event;
  30565     "message": MessageEvent;
  30566     "messageerror": MessageEvent;
  30567 }
  30568 
  30569 /**
  30570  * The **`ServiceWorkerContainer`** interface of the Service Worker 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.
  30571  * Available only in secure contexts.
  30572  *
  30573  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer)
  30574  */
  30575 interface ServiceWorkerContainer extends EventTarget {
  30576     /**
  30577      * The **`controller`** read-only property of the ServiceWorkerContainer interface returns a `activated` (the same object returned by `null` if the request is a force refresh (_Shift_ + refresh) or if there is no active worker.
  30578      *
  30579      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/controller)
  30580      */
  30581     readonly controller: ServiceWorker | null;
  30582     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/controllerchange_event) */
  30583     oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
  30584     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/message_event) */
  30585     onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
  30586     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/messageerror_event) */
  30587     onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null;
  30588     /**
  30589      * The **`ready`** read-only property of the ServiceWorkerContainer interface provides a way of delaying code execution until a service worker is active.
  30590      *
  30591      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/ready)
  30592      */
  30593     readonly ready: Promise<ServiceWorkerRegistration>;
  30594     /**
  30595      * The **`getRegistration()`** method of the client URL.
  30596      *
  30597      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/getRegistration)
  30598      */
  30599     getRegistration(clientURL?: string | URL): Promise<ServiceWorkerRegistration | undefined>;
  30600     /**
  30601      * The **`getRegistrations()`** method of the `ServiceWorkerContainer`, in an array.
  30602      *
  30603      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/getRegistrations)
  30604      */
  30605     getRegistrations(): Promise<ReadonlyArray<ServiceWorkerRegistration>>;
  30606     /**
  30607      * The **`register()`** method of the ServiceWorkerContainer interface creates or updates a ServiceWorkerRegistration for the given scope.
  30608      *
  30609      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/register)
  30610      */
  30611     register(scriptURL: string | URL, options?: RegistrationOptions): Promise<ServiceWorkerRegistration>;
  30612     /**
  30613      * The **`startMessages()`** method of the ServiceWorkerContainer interface explicitly starts the flow of messages being dispatched from a service worker to pages under its control (e.g., sent via Client.postMessage()).
  30614      *
  30615      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/startMessages)
  30616      */
  30617     startMessages(): void;
  30618     addEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  30619     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  30620     removeEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  30621     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  30622 }
  30623 
  30624 declare var ServiceWorkerContainer: {
  30625     prototype: ServiceWorkerContainer;
  30626     new(): ServiceWorkerContainer;
  30627 };
  30628 
  30629 interface ServiceWorkerRegistrationEventMap {
  30630     "updatefound": Event;
  30631 }
  30632 
  30633 /**
  30634  * The **`ServiceWorkerRegistration`** interface of the Service Worker API represents the service worker registration.
  30635  * Available only in secure contexts.
  30636  *
  30637  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration)
  30638  */
  30639 interface ServiceWorkerRegistration extends EventTarget {
  30640     /**
  30641      * The **`active`** read-only property of the This property is initially set to `null`.
  30642      *
  30643      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/active)
  30644      */
  30645     readonly active: ServiceWorker | null;
  30646     /**
  30647      * The **`cookies`** read-only property of the ServiceWorkerRegistration interface returns a reference to the CookieStoreManager interface, which enables a web app to subscribe to and unsubscribe from cookie change events in a service worker.
  30648      *
  30649      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/cookies)
  30650      */
  30651     readonly cookies: CookieStoreManager;
  30652     /**
  30653      * The **`installing`** read-only property of the initially set to `null`.
  30654      *
  30655      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/installing)
  30656      */
  30657     readonly installing: ServiceWorker | null;
  30658     /**
  30659      * The **`navigationPreload`** read-only property of the ServiceWorkerRegistration interface returns the NavigationPreloadManager associated with the current service worker registration.
  30660      *
  30661      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/navigationPreload)
  30662      */
  30663     readonly navigationPreload: NavigationPreloadManager;
  30664     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/updatefound_event) */
  30665     onupdatefound: ((this: ServiceWorkerRegistration, ev: Event) => any) | null;
  30666     /**
  30667      * The **`pushManager`** read-only property of the support for subscribing, getting an active subscription, and accessing push permission status.
  30668      *
  30669      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/pushManager)
  30670      */
  30671     readonly pushManager: PushManager;
  30672     /**
  30673      * The **`scope`** read-only property of the ServiceWorkerRegistration interface returns a string representing a URL that defines a service worker's registration scope; that is, the range of URLs a service worker can control.
  30674      *
  30675      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/scope)
  30676      */
  30677     readonly scope: string;
  30678     /**
  30679      * The **`updateViaCache`** read-only property of the ServiceWorkerRegistration interface returns the value of the setting used to determine the circumstances in which the browser will consult the HTTP cache when it tries to update the service worker or any scripts that are imported via WorkerGlobalScope.importScripts.
  30680      *
  30681      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/updateViaCache)
  30682      */
  30683     readonly updateViaCache: ServiceWorkerUpdateViaCache;
  30684     /**
  30685      * The **`waiting`** read-only property of the set to `null`.
  30686      *
  30687      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/waiting)
  30688      */
  30689     readonly waiting: ServiceWorker | null;
  30690     /**
  30691      * The **`getNotifications()`** method of the ServiceWorkerRegistration interface returns a list of the notifications in the order that they were created from the current origin via the current service worker registration.
  30692      *
  30693      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/getNotifications)
  30694      */
  30695     getNotifications(filter?: GetNotificationOptions): Promise<Notification[]>;
  30696     /**
  30697      * The **`showNotification()`** method of the service worker.
  30698      *
  30699      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/showNotification)
  30700      */
  30701     showNotification(title: string, options?: NotificationOptions): Promise<void>;
  30702     /**
  30703      * The **`unregister()`** method of the registration and returns a Promise.
  30704      *
  30705      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/unregister)
  30706      */
  30707     unregister(): Promise<boolean>;
  30708     /**
  30709      * The **`update()`** method of the worker.
  30710      *
  30711      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/update)
  30712      */
  30713     update(): Promise<ServiceWorkerRegistration>;
  30714     addEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  30715     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  30716     removeEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  30717     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  30718 }
  30719 
  30720 declare var ServiceWorkerRegistration: {
  30721     prototype: ServiceWorkerRegistration;
  30722     new(): ServiceWorkerRegistration;
  30723 };
  30724 
  30725 interface ShadowRootEventMap {
  30726     "slotchange": Event;
  30727 }
  30728 
  30729 /**
  30730  * The **`ShadowRoot`** interface of the Shadow DOM API is the root node of a DOM subtree that is rendered separately from a document's main DOM tree.
  30731  *
  30732  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot)
  30733  */
  30734 interface ShadowRoot extends DocumentFragment, DocumentOrShadowRoot {
  30735     /**
  30736      * The **`clonable`** read-only property of the ShadowRoot interface returns `true` if the shadow root is clonable, and `false` otherwise.
  30737      *
  30738      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/clonable)
  30739      */
  30740     readonly clonable: boolean;
  30741     /**
  30742      * The **`delegatesFocus`** read-only property of the ShadowRoot interface returns `true` if the shadow root delegates focus, and `false` otherwise.
  30743      *
  30744      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/delegatesFocus)
  30745      */
  30746     readonly delegatesFocus: boolean;
  30747     /**
  30748      * The **`host`** read-only property of the ShadowRoot returns a reference to the DOM element the `ShadowRoot` is attached to.
  30749      *
  30750      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/host)
  30751      */
  30752     readonly host: Element;
  30753     /**
  30754      * The **`innerHTML`** property of the ShadowRoot interface sets gets or sets the HTML markup to the DOM tree inside the `ShadowRoot`.
  30755      *
  30756      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/innerHTML)
  30757      */
  30758     innerHTML: string;
  30759     /**
  30760      * The **`mode`** read-only property of the ShadowRoot specifies its mode — either `open` or `closed`.
  30761      *
  30762      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/mode)
  30763      */
  30764     readonly mode: ShadowRootMode;
  30765     onslotchange: ((this: ShadowRoot, ev: Event) => any) | null;
  30766     /**
  30767      * The **`serializable`** read-only property of the ShadowRoot interface returns `true` if the shadow root is serializable.
  30768      *
  30769      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/serializable)
  30770      */
  30771     readonly serializable: boolean;
  30772     /**
  30773      * The read-only **`slotAssignment`** property of the ShadowRoot interface returns the _slot assignment mode_ for the shadow DOM tree.
  30774      *
  30775      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/slotAssignment)
  30776      */
  30777     readonly slotAssignment: SlotAssignmentMode;
  30778     /**
  30779      * The **`getHTML()`** method of the ShadowRoot interface is used to serialize a shadow root's DOM to an HTML string.
  30780      *
  30781      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/getHTML)
  30782      */
  30783     getHTML(options?: GetHTMLOptions): string;
  30784     /**
  30785      * The **`setHTMLUnsafe()`** method of the ShadowRoot interface can be used to parse a string of HTML into a DocumentFragment, optionally filtering out unwanted elements and attributes, and then use it to replace the existing tree in the Shadow DOM.
  30786      *
  30787      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/setHTMLUnsafe)
  30788      */
  30789     setHTMLUnsafe(html: string): void;
  30790     addEventListener<K extends keyof ShadowRootEventMap>(type: K, listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  30791     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  30792     removeEventListener<K extends keyof ShadowRootEventMap>(type: K, listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  30793     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  30794 }
  30795 
  30796 declare var ShadowRoot: {
  30797     prototype: ShadowRoot;
  30798     new(): ShadowRoot;
  30799 };
  30800 
  30801 /**
  30802  * The **`SharedWorker`** interface represents a specific kind of worker that can be _accessed_ from several browsing contexts, such as several windows, iframes or even workers.
  30803  *
  30804  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorker)
  30805  */
  30806 interface SharedWorker extends EventTarget, AbstractWorker {
  30807     /**
  30808      * The **`port`** property of the SharedWorker interface returns a MessagePort object used to communicate and control the shared worker.
  30809      *
  30810      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorker/port)
  30811      */
  30812     readonly port: MessagePort;
  30813     addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: SharedWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  30814     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  30815     removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: SharedWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  30816     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  30817 }
  30818 
  30819 declare var SharedWorker: {
  30820     prototype: SharedWorker;
  30821     new(scriptURL: string | URL, options?: string | WorkerOptions): SharedWorker;
  30822 };
  30823 
  30824 interface Slottable {
  30825     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/assignedSlot) */
  30826     readonly assignedSlot: HTMLSlotElement | null;
  30827 }
  30828 
  30829 interface SourceBufferEventMap {
  30830     "abort": Event;
  30831     "error": Event;
  30832     "update": Event;
  30833     "updateend": Event;
  30834     "updatestart": Event;
  30835 }
  30836 
  30837 /**
  30838  * The **`SourceBuffer`** interface represents a chunk of media to be passed into an HTMLMediaElement and played, via a MediaSource object.
  30839  *
  30840  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer)
  30841  */
  30842 interface SourceBuffer extends EventTarget {
  30843     /**
  30844      * The **`appendWindowEnd`** property of the timestamp range that can be used to filter what media data is appended to the `SourceBuffer`.
  30845      *
  30846      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/appendWindowEnd)
  30847      */
  30848     appendWindowEnd: number;
  30849     /**
  30850      * The **`appendWindowStart`** property of the timestamp range that can be used to filter what media data is appended to the `SourceBuffer`.
  30851      *
  30852      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/appendWindowStart)
  30853      */
  30854     appendWindowStart: number;
  30855     /**
  30856      * The **`buffered`** read-only property of the buffered in the `SourceBuffer` as a normalized TimeRanges object.
  30857      *
  30858      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/buffered)
  30859      */
  30860     readonly buffered: TimeRanges;
  30861     /**
  30862      * The **`mode`** property of the SourceBuffer interface controls whether media segments can be appended to the `SourceBuffer` in any order, or in a strict sequence.
  30863      *
  30864      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/mode)
  30865      */
  30866     mode: AppendMode;
  30867     onabort: ((this: SourceBuffer, ev: Event) => any) | null;
  30868     onerror: ((this: SourceBuffer, ev: Event) => any) | null;
  30869     onupdate: ((this: SourceBuffer, ev: Event) => any) | null;
  30870     onupdateend: ((this: SourceBuffer, ev: Event) => any) | null;
  30871     onupdatestart: ((this: SourceBuffer, ev: Event) => any) | null;
  30872     /**
  30873      * The **`timestampOffset`** property of the media segments that are appended to the `SourceBuffer`.
  30874      *
  30875      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/timestampOffset)
  30876      */
  30877     timestampOffset: number;
  30878     /**
  30879      * The **`updating`** read-only property of the currently being updated — i.e., whether an SourceBuffer.appendBuffer() or SourceBuffer.remove() operation is currently in progress.
  30880      *
  30881      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/updating)
  30882      */
  30883     readonly updating: boolean;
  30884     /**
  30885      * The **`abort()`** method of the SourceBuffer interface aborts the current segment and resets the segment parser.
  30886      *
  30887      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/abort)
  30888      */
  30889     abort(): void;
  30890     /**
  30891      * The **`appendBuffer()`** method of the to the `SourceBuffer`.
  30892      *
  30893      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/appendBuffer)
  30894      */
  30895     appendBuffer(data: BufferSource): void;
  30896     /**
  30897      * The **`changeType()`** method of the data to conform to.
  30898      *
  30899      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/changeType)
  30900      */
  30901     changeType(type: string): void;
  30902     /**
  30903      * The **`remove()`** method of the SourceBuffer interface removes media segments within a specific time range from the `SourceBuffer`.
  30904      *
  30905      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/remove)
  30906      */
  30907     remove(start: number, end: number): void;
  30908     addEventListener<K extends keyof SourceBufferEventMap>(type: K, listener: (this: SourceBuffer, ev: SourceBufferEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  30909     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  30910     removeEventListener<K extends keyof SourceBufferEventMap>(type: K, listener: (this: SourceBuffer, ev: SourceBufferEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  30911     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  30912 }
  30913 
  30914 declare var SourceBuffer: {
  30915     prototype: SourceBuffer;
  30916     new(): SourceBuffer;
  30917 };
  30918 
  30919 interface SourceBufferListEventMap {
  30920     "addsourcebuffer": Event;
  30921     "removesourcebuffer": Event;
  30922 }
  30923 
  30924 /**
  30925  * The **`SourceBufferList`** interface represents a simple container list for multiple SourceBuffer objects.
  30926  *
  30927  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBufferList)
  30928  */
  30929 interface SourceBufferList extends EventTarget {
  30930     /**
  30931      * The **`length`** read-only property of the An unsigned long number.
  30932      *
  30933      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBufferList/length)
  30934      */
  30935     readonly length: number;
  30936     onaddsourcebuffer: ((this: SourceBufferList, ev: Event) => any) | null;
  30937     onremovesourcebuffer: ((this: SourceBufferList, ev: Event) => any) | null;
  30938     addEventListener<K extends keyof SourceBufferListEventMap>(type: K, listener: (this: SourceBufferList, ev: SourceBufferListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  30939     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  30940     removeEventListener<K extends keyof SourceBufferListEventMap>(type: K, listener: (this: SourceBufferList, ev: SourceBufferListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  30941     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  30942     [index: number]: SourceBuffer;
  30943 }
  30944 
  30945 declare var SourceBufferList: {
  30946     prototype: SourceBufferList;
  30947     new(): SourceBufferList;
  30948 };
  30949 
  30950 /**
  30951  * The **`SpeechRecognitionAlternative`** interface of the Web Speech API represents a single word that has been recognized by the speech recognition service.
  30952  * Available only in secure contexts.
  30953  *
  30954  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionAlternative)
  30955  */
  30956 interface SpeechRecognitionAlternative {
  30957     /**
  30958      * The **`confidence`** read-only property of the confident the speech recognition system is that the recognition is correct.
  30959      *
  30960      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionAlternative/confidence)
  30961      */
  30962     readonly confidence: number;
  30963     /**
  30964      * The **`transcript`** read-only property of the transcript of the recognized word(s).
  30965      *
  30966      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionAlternative/transcript)
  30967      */
  30968     readonly transcript: string;
  30969 }
  30970 
  30971 declare var SpeechRecognitionAlternative: {
  30972     prototype: SpeechRecognitionAlternative;
  30973     new(): SpeechRecognitionAlternative;
  30974 };
  30975 
  30976 /**
  30977  * The **`SpeechRecognitionResult`** interface of the Web Speech API represents a single recognition match, which may contain multiple SpeechRecognitionAlternative objects.
  30978  * Available only in secure contexts.
  30979  *
  30980  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResult)
  30981  */
  30982 interface SpeechRecognitionResult {
  30983     /**
  30984      * The **`isFinal`** read-only property of the whether this result is final (`true`) or not (`false`) — if so, then this is the final time this result will be returned; if not, then this result is an interim result, and may be updated later on.
  30985      *
  30986      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResult/isFinal)
  30987      */
  30988     readonly isFinal: boolean;
  30989     /**
  30990      * The **`length`** read-only property of the — the number of SpeechRecognitionAlternative objects contained in the result (also referred to as 'n-best alternatives'.) The number of alternatives contained in the result depends on what the recognition was first initiated.
  30991      *
  30992      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResult/length)
  30993      */
  30994     readonly length: number;
  30995     /**
  30996      * The **`item`** getter of the array syntax.
  30997      *
  30998      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResult/item)
  30999      */
  31000     item(index: number): SpeechRecognitionAlternative;
  31001     [index: number]: SpeechRecognitionAlternative;
  31002 }
  31003 
  31004 declare var SpeechRecognitionResult: {
  31005     prototype: SpeechRecognitionResult;
  31006     new(): SpeechRecognitionResult;
  31007 };
  31008 
  31009 /**
  31010  * The **`SpeechRecognitionResultList`** interface of the Web Speech API represents a list of SpeechRecognitionResult objects, or a single one if results are being captured in SpeechRecognition.continuous mode.
  31011  * Available only in secure contexts.
  31012  *
  31013  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResultList)
  31014  */
  31015 interface SpeechRecognitionResultList {
  31016     /**
  31017      * The **`length`** read-only property of the 'array' — the number of SpeechRecognitionResult objects in the list.
  31018      *
  31019      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResultList/length)
  31020      */
  31021     readonly length: number;
  31022     /**
  31023      * The **`item`** getter of the syntax.
  31024      *
  31025      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResultList/item)
  31026      */
  31027     item(index: number): SpeechRecognitionResult;
  31028     [index: number]: SpeechRecognitionResult;
  31029 }
  31030 
  31031 declare var SpeechRecognitionResultList: {
  31032     prototype: SpeechRecognitionResultList;
  31033     new(): SpeechRecognitionResultList;
  31034 };
  31035 
  31036 interface SpeechSynthesisEventMap {
  31037     "voiceschanged": Event;
  31038 }
  31039 
  31040 /**
  31041  * The **`SpeechSynthesis`** interface of the Web Speech API 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.
  31042  *
  31043  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis)
  31044  */
  31045 interface SpeechSynthesis extends EventTarget {
  31046     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/voiceschanged_event) */
  31047     onvoiceschanged: ((this: SpeechSynthesis, ev: Event) => any) | null;
  31048     /**
  31049      * The **`paused`** read-only property of the `true` if the `SpeechSynthesis` object is in a paused state, or `false` if not.
  31050      *
  31051      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/paused)
  31052      */
  31053     readonly paused: boolean;
  31054     /**
  31055      * The **`pending`** read-only property of the `true` if the utterance queue contains as-yet-unspoken utterances.
  31056      *
  31057      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/pending)
  31058      */
  31059     readonly pending: boolean;
  31060     /**
  31061      * The **`speaking`** read-only property of the `true` if an utterance is currently in the process of being spoken — even if `SpeechSynthesis` is in a A boolean value.
  31062      *
  31063      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/speaking)
  31064      */
  31065     readonly speaking: boolean;
  31066     /**
  31067      * The **`cancel()`** method of the SpeechSynthesis interface removes all utterances from the utterance queue.
  31068      *
  31069      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/cancel)
  31070      */
  31071     cancel(): void;
  31072     /**
  31073      * The **`getVoices()`** method of the current device.
  31074      *
  31075      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/getVoices)
  31076      */
  31077     getVoices(): SpeechSynthesisVoice[];
  31078     /**
  31079      * The **`pause()`** method of the SpeechSynthesis interface puts the `SpeechSynthesis` object into a paused state.
  31080      *
  31081      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/pause)
  31082      */
  31083     pause(): void;
  31084     /**
  31085      * The **`resume()`** method of the SpeechSynthesis interface puts the `SpeechSynthesis` object into a non-paused state: resumes it if it was already paused.
  31086      *
  31087      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/resume)
  31088      */
  31089     resume(): void;
  31090     /**
  31091      * The **`speak()`** method of the SpeechSynthesis interface adds an SpeechSynthesisUtterance to the utterance queue; it will be spoken when any other utterances queued before it have been spoken.
  31092      *
  31093      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/speak)
  31094      */
  31095     speak(utterance: SpeechSynthesisUtterance): void;
  31096     addEventListener<K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  31097     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  31098     removeEventListener<K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  31099     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  31100 }
  31101 
  31102 declare var SpeechSynthesis: {
  31103     prototype: SpeechSynthesis;
  31104     new(): SpeechSynthesis;
  31105 };
  31106 
  31107 /**
  31108  * The **`SpeechSynthesisErrorEvent`** interface of the Web Speech API contains information about any errors that occur while processing SpeechSynthesisUtterance objects in the speech service.
  31109  *
  31110  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisErrorEvent)
  31111  */
  31112 interface SpeechSynthesisErrorEvent extends SpeechSynthesisEvent {
  31113     /**
  31114      * The **`error`** property of the A string containing the error reason.
  31115      *
  31116      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisErrorEvent/error)
  31117      */
  31118     readonly error: SpeechSynthesisErrorCode;
  31119 }
  31120 
  31121 declare var SpeechSynthesisErrorEvent: {
  31122     prototype: SpeechSynthesisErrorEvent;
  31123     new(type: string, eventInitDict: SpeechSynthesisErrorEventInit): SpeechSynthesisErrorEvent;
  31124 };
  31125 
  31126 /**
  31127  * The **`SpeechSynthesisEvent`** interface of the Web Speech API contains information about the current state of SpeechSynthesisUtterance objects that have been processed in the speech service.
  31128  *
  31129  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent)
  31130  */
  31131 interface SpeechSynthesisEvent extends Event {
  31132     /**
  31133      * The **`charIndex`** read-only property of the SpeechSynthesisUtterance interface returns the index position of the character in SpeechSynthesisUtterance.text that was being spoken when the event was triggered.
  31134      *
  31135      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/charIndex)
  31136      */
  31137     readonly charIndex: number;
  31138     /**
  31139      * The read-only **`charLength`** property of the SpeechSynthesisEvent interface returns the number of characters left to be spoken after the character at the SpeechSynthesisEvent.charIndex position.
  31140      *
  31141      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/charLength)
  31142      */
  31143     readonly charLength: number;
  31144     /**
  31145      * The **`elapsedTime`** read-only property of the SpeechSynthesisEvent returns the elapsed time in seconds, after the SpeechSynthesisUtterance.text started being spoken, at which the event was triggered.
  31146      *
  31147      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/elapsedTime)
  31148      */
  31149     readonly elapsedTime: number;
  31150     /**
  31151      * The **`name`** read-only property of the SpeechSynthesisUtterance interface returns the name associated with certain types of events occurring as the SpeechSynthesisUtterance.text is being spoken: the name of the SSML marker reached in the case of a SpeechSynthesisUtterance.mark_event event, or the type of boundary reached in the case of a SpeechSynthesisUtterance.boundary_event event.
  31152      *
  31153      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/name)
  31154      */
  31155     readonly name: string;
  31156     /**
  31157      * The **`utterance`** read-only property of the SpeechSynthesisUtterance interface returns the SpeechSynthesisUtterance instance that the event was triggered on.
  31158      *
  31159      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/utterance)
  31160      */
  31161     readonly utterance: SpeechSynthesisUtterance;
  31162 }
  31163 
  31164 declare var SpeechSynthesisEvent: {
  31165     prototype: SpeechSynthesisEvent;
  31166     new(type: string, eventInitDict: SpeechSynthesisEventInit): SpeechSynthesisEvent;
  31167 };
  31168 
  31169 interface SpeechSynthesisUtteranceEventMap {
  31170     "boundary": SpeechSynthesisEvent;
  31171     "end": SpeechSynthesisEvent;
  31172     "error": SpeechSynthesisErrorEvent;
  31173     "mark": SpeechSynthesisEvent;
  31174     "pause": SpeechSynthesisEvent;
  31175     "resume": SpeechSynthesisEvent;
  31176     "start": SpeechSynthesisEvent;
  31177 }
  31178 
  31179 /**
  31180  * The **`SpeechSynthesisUtterance`** interface of the Web Speech API represents a speech request.
  31181  *
  31182  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance)
  31183  */
  31184 interface SpeechSynthesisUtterance extends EventTarget {
  31185     /**
  31186      * The **`lang`** property of the SpeechSynthesisUtterance interface gets and sets the language of the utterance.
  31187      *
  31188      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/lang)
  31189      */
  31190     lang: string;
  31191     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/boundary_event) */
  31192     onboundary: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;
  31193     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/end_event) */
  31194     onend: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;
  31195     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/error_event) */
  31196     onerror: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisErrorEvent) => any) | null;
  31197     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/mark_event) */
  31198     onmark: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;
  31199     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/pause_event) */
  31200     onpause: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;
  31201     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/resume_event) */
  31202     onresume: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;
  31203     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/start_event) */
  31204     onstart: ((this: SpeechSynthesisUtterance, ev: SpeechSynthesisEvent) => any) | null;
  31205     /**
  31206      * The **`pitch`** property of the SpeechSynthesisUtterance interface gets and sets the pitch at which the utterance will be spoken at.
  31207      *
  31208      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/pitch)
  31209      */
  31210     pitch: number;
  31211     /**
  31212      * The **`rate`** property of the SpeechSynthesisUtterance interface gets and sets the speed at which the utterance will be spoken at.
  31213      *
  31214      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/rate)
  31215      */
  31216     rate: number;
  31217     /**
  31218      * The **`text`** property of the The text may be provided as plain text, or a well-formed SSML document.
  31219      *
  31220      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/text)
  31221      */
  31222     text: string;
  31223     /**
  31224      * The **`voice`** property of the SpeechSynthesisUtterance interface gets and sets the voice that will be used to speak the utterance.
  31225      *
  31226      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/voice)
  31227      */
  31228     voice: SpeechSynthesisVoice | null;
  31229     /**
  31230      * The **`volume`** property of the SpeechSynthesisUtterance interface gets and sets the volume that the utterance will be spoken at.
  31231      *
  31232      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/volume)
  31233      */
  31234     volume: number;
  31235     addEventListener<K extends keyof SpeechSynthesisUtteranceEventMap>(type: K, listener: (this: SpeechSynthesisUtterance, ev: SpeechSynthesisUtteranceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  31236     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  31237     removeEventListener<K extends keyof SpeechSynthesisUtteranceEventMap>(type: K, listener: (this: SpeechSynthesisUtterance, ev: SpeechSynthesisUtteranceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  31238     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  31239 }
  31240 
  31241 declare var SpeechSynthesisUtterance: {
  31242     prototype: SpeechSynthesisUtterance;
  31243     new(text?: string): SpeechSynthesisUtterance;
  31244 };
  31245 
  31246 /**
  31247  * The **`SpeechSynthesisVoice`** interface of the Web Speech API represents a voice that the system supports.
  31248  *
  31249  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice)
  31250  */
  31251 interface SpeechSynthesisVoice {
  31252     /**
  31253      * The **`default`** read-only property of the indicating whether the voice is the default voice for the current app (`true`), or not (`false`.) A boolean value.
  31254      *
  31255      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/default)
  31256      */
  31257     readonly default: boolean;
  31258     /**
  31259      * The **`lang`** read-only property of the SpeechSynthesisVoice interface returns a BCP 47 language tag indicating the language of the voice.
  31260      *
  31261      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/lang)
  31262      */
  31263     readonly lang: string;
  31264     /**
  31265      * The **`localService`** read-only property of the indicating whether the voice is supplied by a local speech synthesizer service (`true`), or a remote speech synthesizer service (`false`.) This property is provided to allow differentiation in the case that some voice options are provided by a remote service; it is possible that remote voices might have extra latency, bandwidth or cost associated with them, so such distinction may be useful.
  31266      *
  31267      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/localService)
  31268      */
  31269     readonly localService: boolean;
  31270     /**
  31271      * The **`name`** read-only property of the represents the voice.
  31272      *
  31273      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/name)
  31274      */
  31275     readonly name: string;
  31276     /**
  31277      * The **`voiceURI`** read-only property of the the speech synthesis service for this voice.
  31278      *
  31279      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/voiceURI)
  31280      */
  31281     readonly voiceURI: string;
  31282 }
  31283 
  31284 declare var SpeechSynthesisVoice: {
  31285     prototype: SpeechSynthesisVoice;
  31286     new(): SpeechSynthesisVoice;
  31287 };
  31288 
  31289 /**
  31290  * The DOM **`StaticRange`** interface extends AbstractRange to provide a method to specify a range of content in the DOM whose contents don't update to reflect changes which occur within the DOM tree.
  31291  *
  31292  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StaticRange)
  31293  */
  31294 interface StaticRange extends AbstractRange {
  31295 }
  31296 
  31297 declare var StaticRange: {
  31298     prototype: StaticRange;
  31299     new(init: StaticRangeInit): StaticRange;
  31300 };
  31301 
  31302 /**
  31303  * The `StereoPannerNode` interface of the Web Audio API represents a simple stereo panner node that can be used to pan an audio stream left or right.
  31304  *
  31305  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StereoPannerNode)
  31306  */
  31307 interface StereoPannerNode extends AudioNode {
  31308     /**
  31309      * The `pan` property of the StereoPannerNode interface is an a-rate AudioParam representing the amount of panning to apply.
  31310      *
  31311      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StereoPannerNode/pan)
  31312      */
  31313     readonly pan: AudioParam;
  31314 }
  31315 
  31316 declare var StereoPannerNode: {
  31317     prototype: StereoPannerNode;
  31318     new(context: BaseAudioContext, options?: StereoPannerOptions): StereoPannerNode;
  31319 };
  31320 
  31321 /**
  31322  * The **`Storage`** interface of the Web Storage API provides access to a particular domain's session or local storage.
  31323  *
  31324  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage)
  31325  */
  31326 interface Storage {
  31327     /**
  31328      * The **`length`** read-only property of the `Storage` object.
  31329      *
  31330      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/length)
  31331      */
  31332     readonly length: number;
  31333     /**
  31334      * The **`clear()`** method of the Storage interface clears all keys stored in a given `Storage` object.
  31335      *
  31336      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/clear)
  31337      */
  31338     clear(): void;
  31339     /**
  31340      * The **`getItem()`** method of the Storage interface, when passed a key name, will return that key's value, or `null` if the key does not exist, in the given `Storage` object.
  31341      *
  31342      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/getItem)
  31343      */
  31344     getItem(key: string): string | null;
  31345     /**
  31346      * The **`key()`** method of the Storage interface, when passed a number n, returns the name of the nth key in a given `Storage` object.
  31347      *
  31348      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/key)
  31349      */
  31350     key(index: number): string | null;
  31351     /**
  31352      * The **`removeItem()`** method of the Storage interface, when passed a key name, will remove that key from the given `Storage` object if it exists.
  31353      *
  31354      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/removeItem)
  31355      */
  31356     removeItem(key: string): void;
  31357     /**
  31358      * The **`setItem()`** method of the Storage interface, when passed a key name and value, will add that key to the given `Storage` object, or update that key's value if it already exists.
  31359      *
  31360      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/setItem)
  31361      */
  31362     setItem(key: string, value: string): void;
  31363     [name: string]: any;
  31364 }
  31365 
  31366 declare var Storage: {
  31367     prototype: Storage;
  31368     new(): Storage;
  31369 };
  31370 
  31371 /**
  31372  * The **`StorageEvent`** interface is implemented by the Window/storage_event event, which is sent to a window when a storage area the window has access to is changed within the context of another document.
  31373  *
  31374  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent)
  31375  */
  31376 interface StorageEvent extends Event {
  31377     /**
  31378      * The **`key`** property of the StorageEvent interface returns the key for the storage item that was changed.
  31379      *
  31380      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/key)
  31381      */
  31382     readonly key: string | null;
  31383     /**
  31384      * The **`newValue`** property of the StorageEvent interface returns the new value of the storage item whose value was changed.
  31385      *
  31386      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/newValue)
  31387      */
  31388     readonly newValue: string | null;
  31389     /**
  31390      * The **`oldValue`** property of the StorageEvent interface returns the original value of the storage item whose value changed.
  31391      *
  31392      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/oldValue)
  31393      */
  31394     readonly oldValue: string | null;
  31395     /**
  31396      * The **`storageArea`** property of the StorageEvent interface returns the storage object that was affected.
  31397      *
  31398      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/storageArea)
  31399      */
  31400     readonly storageArea: Storage | null;
  31401     /**
  31402      * The **`url`** property of the StorageEvent interface returns the URL of the document whose storage changed.
  31403      *
  31404      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/url)
  31405      */
  31406     readonly url: string;
  31407     /**
  31408      * The **`StorageEvent.initStorageEvent()`** method is used to initialize the value of a StorageEvent.
  31409      * @deprecated
  31410      *
  31411      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/initStorageEvent)
  31412      */
  31413     initStorageEvent(type: string, bubbles?: boolean, cancelable?: boolean, key?: string | null, oldValue?: string | null, newValue?: string | null, url?: string | URL, storageArea?: Storage | null): void;
  31414 }
  31415 
  31416 declare var StorageEvent: {
  31417     prototype: StorageEvent;
  31418     new(type: string, eventInitDict?: StorageEventInit): StorageEvent;
  31419 };
  31420 
  31421 /**
  31422  * The **`StorageManager`** interface of the Storage API provides an interface for managing persistence permissions and estimating available storage.
  31423  * Available only in secure contexts.
  31424  *
  31425  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager)
  31426  */
  31427 interface StorageManager {
  31428     /**
  31429      * The **`estimate()`** method of the StorageManager interface asks the Storage Manager for how much storage the current origin takes up (`usage`), and how much space is available (`quota`).
  31430      *
  31431      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/estimate)
  31432      */
  31433     estimate(): Promise<StorageEstimate>;
  31434     /**
  31435      * The **`getDirectory()`** method of the StorageManager interface is used to obtain a reference to a FileSystemDirectoryHandle object allowing access to a directory and its contents, stored in the origin private file system (OPFS).
  31436      *
  31437      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/getDirectory)
  31438      */
  31439     getDirectory(): Promise<FileSystemDirectoryHandle>;
  31440     /**
  31441      * The **`persist()`** method of the StorageManager interface requests permission to use persistent storage, and returns a Promise that resolves to `true` if permission is granted and bucket mode is persistent, and `false` otherwise.
  31442      *
  31443      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/persist)
  31444      */
  31445     persist(): Promise<boolean>;
  31446     /**
  31447      * The **`persisted()`** method of the StorageManager interface returns a Promise that resolves to `true` if your site's storage bucket is persistent.
  31448      *
  31449      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/persisted)
  31450      */
  31451     persisted(): Promise<boolean>;
  31452 }
  31453 
  31454 declare var StorageManager: {
  31455     prototype: StorageManager;
  31456     new(): StorageManager;
  31457 };
  31458 
  31459 /** @deprecated */
  31460 interface StyleMedia {
  31461     type: string;
  31462     matchMedium(mediaquery: string): boolean;
  31463 }
  31464 
  31465 /**
  31466  * The **`StylePropertyMap`** interface of the CSS Typed Object Model API provides a representation of a CSS declaration block that is an alternative to CSSStyleDeclaration.
  31467  *
  31468  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMap)
  31469  */
  31470 interface StylePropertyMap extends StylePropertyMapReadOnly {
  31471     /**
  31472      * The **`append()`** method of the `StylePropertyMap` with the given property.
  31473      *
  31474      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMap/append)
  31475      */
  31476     append(property: string, ...values: (CSSStyleValue | string)[]): void;
  31477     /**
  31478      * The **`clear()`** method of the StylePropertyMap interface removes all declarations in the `StylePropertyMap`.
  31479      *
  31480      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMap/clear)
  31481      */
  31482     clear(): void;
  31483     /**
  31484      * The **`delete()`** method of the property.
  31485      *
  31486      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMap/delete)
  31487      */
  31488     delete(property: string): void;
  31489     /**
  31490      * The **`set()`** method of the StylePropertyMap interface changes the CSS declaration with the given property.
  31491      *
  31492      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMap/set)
  31493      */
  31494     set(property: string, ...values: (CSSStyleValue | string)[]): void;
  31495 }
  31496 
  31497 declare var StylePropertyMap: {
  31498     prototype: StylePropertyMap;
  31499     new(): StylePropertyMap;
  31500 };
  31501 
  31502 /**
  31503  * The **`StylePropertyMapReadOnly`** interface of the CSS Typed Object Model API provides a read-only representation of a CSS declaration block that is an alternative to CSSStyleDeclaration.
  31504  *
  31505  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly)
  31506  */
  31507 interface StylePropertyMapReadOnly {
  31508     /**
  31509      * The **`size`** read-only property of the containing the size of the `StylePropertyMapReadOnly` object.
  31510      *
  31511      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/size)
  31512      */
  31513     readonly size: number;
  31514     /**
  31515      * The **`get()`** method of the object for the first value of the specified property.
  31516      *
  31517      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/get)
  31518      */
  31519     get(property: string): undefined | CSSStyleValue;
  31520     /**
  31521      * The **`getAll()`** method of the ```js-nolint getAll(property) ``` - `property` - : The name of the property to retrieve all values of.
  31522      *
  31523      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/getAll)
  31524      */
  31525     getAll(property: string): CSSStyleValue[];
  31526     /**
  31527      * The **`has()`** method of the property is in the `StylePropertyMapReadOnly` object.
  31528      *
  31529      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StylePropertyMapReadOnly/has)
  31530      */
  31531     has(property: string): boolean;
  31532     forEach(callbackfn: (value: CSSStyleValue[], key: string, parent: StylePropertyMapReadOnly) => void, thisArg?: any): void;
  31533 }
  31534 
  31535 declare var StylePropertyMapReadOnly: {
  31536     prototype: StylePropertyMapReadOnly;
  31537     new(): StylePropertyMapReadOnly;
  31538 };
  31539 
  31540 /**
  31541  * An object implementing the `StyleSheet` interface represents a single style sheet.
  31542  *
  31543  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet)
  31544  */
  31545 interface StyleSheet {
  31546     /**
  31547      * The **`disabled`** property of the applying to the document.
  31548      *
  31549      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/disabled)
  31550      */
  31551     disabled: boolean;
  31552     /**
  31553      * The **`href`** property of the StyleSheet interface returns the location of the style sheet.
  31554      *
  31555      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/href)
  31556      */
  31557     readonly href: string | null;
  31558     /**
  31559      * The **`media`** property of the StyleSheet interface specifies the intended destination media for style information.
  31560      *
  31561      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/media)
  31562      */
  31563     get media(): MediaList;
  31564     set media(mediaText: string);
  31565     /**
  31566      * The **`ownerNode`** property of the with the document.
  31567      *
  31568      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/ownerNode)
  31569      */
  31570     readonly ownerNode: Element | ProcessingInstruction | null;
  31571     /**
  31572      * The **`parentStyleSheet`** property of the the given style sheet.
  31573      *
  31574      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/parentStyleSheet)
  31575      */
  31576     readonly parentStyleSheet: CSSStyleSheet | null;
  31577     /**
  31578      * The **`title`** property of the StyleSheet interface returns the advisory title of the current style sheet.
  31579      *
  31580      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/title)
  31581      */
  31582     readonly title: string | null;
  31583     /**
  31584      * The **`type`** property of the StyleSheet interface specifies the style sheet language for the given style sheet.
  31585      *
  31586      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/type)
  31587      */
  31588     readonly type: string;
  31589 }
  31590 
  31591 declare var StyleSheet: {
  31592     prototype: StyleSheet;
  31593     new(): StyleSheet;
  31594 };
  31595 
  31596 /**
  31597  * The `StyleSheetList` interface represents a list of CSSStyleSheet objects.
  31598  *
  31599  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheetList)
  31600  */
  31601 interface StyleSheetList {
  31602     /**
  31603      * The **`length`** read-only property of the StyleSheetList interface returns the number of CSSStyleSheet objects in the collection.
  31604      *
  31605      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheetList/length)
  31606      */
  31607     readonly length: number;
  31608     /**
  31609      * The **`item()`** method of the StyleSheetList interface returns a single CSSStyleSheet object.
  31610      *
  31611      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheetList/item)
  31612      */
  31613     item(index: number): CSSStyleSheet | null;
  31614     [index: number]: CSSStyleSheet;
  31615 }
  31616 
  31617 declare var StyleSheetList: {
  31618     prototype: StyleSheetList;
  31619     new(): StyleSheetList;
  31620 };
  31621 
  31622 /**
  31623  * The **`SubmitEvent`** interface defines the object used to represent an HTML form's HTMLFormElement.submit_event event.
  31624  *
  31625  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubmitEvent)
  31626  */
  31627 interface SubmitEvent extends Event {
  31628     /**
  31629      * The read-only **`submitter`** property found on the SubmitEvent interface specifies the submit button or other element that was invoked to cause the form to be submitted.
  31630      *
  31631      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubmitEvent/submitter)
  31632      */
  31633     readonly submitter: HTMLElement | null;
  31634 }
  31635 
  31636 declare var SubmitEvent: {
  31637     prototype: SubmitEvent;
  31638     new(type: string, eventInitDict?: SubmitEventInit): SubmitEvent;
  31639 };
  31640 
  31641 /**
  31642  * The **`SubtleCrypto`** interface of the Web Crypto API provides a number of low-level cryptographic functions.
  31643  * Available only in secure contexts.
  31644  *
  31645  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto)
  31646  */
  31647 interface SubtleCrypto {
  31648     /**
  31649      * The **`decrypt()`** method of the SubtleCrypto interface decrypts some encrypted data.
  31650      *
  31651      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/decrypt)
  31652      */
  31653     decrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
  31654     /**
  31655      * The **`deriveBits()`** method of the key.
  31656      *
  31657      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveBits)
  31658      */
  31659     deriveBits(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length?: number | null): Promise<ArrayBuffer>;
  31660     /**
  31661      * The **`deriveKey()`** method of the SubtleCrypto interface can be used to derive a secret key from a master key.
  31662      *
  31663      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveKey)
  31664      */
  31665     deriveKey(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
  31666     /**
  31667      * The **`digest()`** method of the SubtleCrypto interface generates a _digest_ of the given data, using the specified hash function.
  31668      *
  31669      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/digest)
  31670      */
  31671     digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise<ArrayBuffer>;
  31672     /**
  31673      * The **`encrypt()`** method of the SubtleCrypto interface encrypts data.
  31674      *
  31675      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/encrypt)
  31676      */
  31677     encrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
  31678     /**
  31679      * The **`exportKey()`** method of the SubtleCrypto interface exports a key: that is, it takes as input a CryptoKey object and gives you the key in an external, portable format.
  31680      *
  31681      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/exportKey)
  31682      */
  31683     exportKey(format: "jwk", key: CryptoKey): Promise<JsonWebKey>;
  31684     exportKey(format: Exclude<KeyFormat, "jwk">, key: CryptoKey): Promise<ArrayBuffer>;
  31685     exportKey(format: KeyFormat, key: CryptoKey): Promise<ArrayBuffer | JsonWebKey>;
  31686     /**
  31687      * The **`generateKey()`** method of the SubtleCrypto interface is used to generate a new key (for symmetric algorithms) or key pair (for public-key algorithms).
  31688      *
  31689      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/generateKey)
  31690      */
  31691     generateKey(algorithm: "Ed25519" | { name: "Ed25519" }, extractable: boolean, keyUsages: ReadonlyArray<"sign" | "verify">): Promise<CryptoKeyPair>;
  31692     generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKeyPair>;
  31693     generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
  31694     generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKeyPair | CryptoKey>;
  31695     /**
  31696      * The **`importKey()`** method of the SubtleCrypto interface imports a key: that is, it takes as input a key in an external, portable format and gives you a CryptoKey object that you can use in the Web Crypto API.
  31697      *
  31698      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/importKey)
  31699      */
  31700     importKey(format: "jwk", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray<KeyUsage>): Promise<CryptoKey>;
  31701     importKey(format: Exclude<KeyFormat, "jwk">, keyData: BufferSource, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: KeyUsage[]): Promise<CryptoKey>;
  31702     /**
  31703      * The **`sign()`** method of the SubtleCrypto interface generates a digital signature.
  31704      *
  31705      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/sign)
  31706      */
  31707     sign(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
  31708     /**
  31709      * The **`unwrapKey()`** method of the SubtleCrypto interface 'unwraps' a key.
  31710      *
  31711      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/unwrapKey)
  31712      */
  31713     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>;
  31714     /**
  31715      * The **`verify()`** method of the SubtleCrypto interface verifies a digital signature.
  31716      *
  31717      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/verify)
  31718      */
  31719     verify(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams, key: CryptoKey, signature: BufferSource, data: BufferSource): Promise<boolean>;
  31720     /**
  31721      * The **`wrapKey()`** method of the SubtleCrypto interface 'wraps' a key.
  31722      *
  31723      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/wrapKey)
  31724      */
  31725     wrapKey(format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams): Promise<ArrayBuffer>;
  31726 }
  31727 
  31728 declare var SubtleCrypto: {
  31729     prototype: SubtleCrypto;
  31730     new(): SubtleCrypto;
  31731 };
  31732 
  31733 /**
  31734  * The **`Text`** interface represents a text Node in a DOM tree.
  31735  *
  31736  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Text)
  31737  */
  31738 interface Text extends CharacterData, Slottable {
  31739     /**
  31740      * The read-only **`wholeText`** property of the Text interface returns the full text of all Text nodes logically adjacent to the node.
  31741      *
  31742      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Text/wholeText)
  31743      */
  31744     readonly wholeText: string;
  31745     /**
  31746      * The **`splitText()`** method of the Text interface breaks the Text node into two nodes at the specified offset, keeping both nodes in the tree as siblings.
  31747      *
  31748      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Text/splitText)
  31749      */
  31750     splitText(offset: number): Text;
  31751 }
  31752 
  31753 declare var Text: {
  31754     prototype: Text;
  31755     new(data?: string): Text;
  31756 };
  31757 
  31758 /**
  31759  * The **`TextDecoder`** interface represents a decoder for a specific text encoding, such as `UTF-8`, `ISO-8859-2`, `KOI8-R`, `GBK`, etc.
  31760  *
  31761  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder)
  31762  */
  31763 interface TextDecoder extends TextDecoderCommon {
  31764     /**
  31765      * The **`TextDecoder.decode()`** method returns a string containing text decoded from the buffer passed as a parameter.
  31766      *
  31767      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/decode)
  31768      */
  31769     decode(input?: AllowSharedBufferSource, options?: TextDecodeOptions): string;
  31770 }
  31771 
  31772 declare var TextDecoder: {
  31773     prototype: TextDecoder;
  31774     new(label?: string, options?: TextDecoderOptions): TextDecoder;
  31775 };
  31776 
  31777 interface TextDecoderCommon {
  31778     /**
  31779      * Returns encoding's name, lowercased.
  31780      *
  31781      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/encoding)
  31782      */
  31783     readonly encoding: string;
  31784     /**
  31785      * Returns true if error mode is "fatal", otherwise false.
  31786      *
  31787      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/fatal)
  31788      */
  31789     readonly fatal: boolean;
  31790     /**
  31791      * Returns the value of ignore BOM.
  31792      *
  31793      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/ignoreBOM)
  31794      */
  31795     readonly ignoreBOM: boolean;
  31796 }
  31797 
  31798 /**
  31799  * The **`TextDecoderStream`** interface of the Encoding API converts a stream of text in a binary encoding, such as UTF-8 etc., to a stream of strings.
  31800  *
  31801  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoderStream)
  31802  */
  31803 interface TextDecoderStream extends GenericTransformStream, TextDecoderCommon {
  31804     readonly readable: ReadableStream<string>;
  31805     readonly writable: WritableStream<BufferSource>;
  31806 }
  31807 
  31808 declare var TextDecoderStream: {
  31809     prototype: TextDecoderStream;
  31810     new(label?: string, options?: TextDecoderOptions): TextDecoderStream;
  31811 };
  31812 
  31813 /**
  31814  * The **`TextEncoder`** interface takes a stream of code points as input and emits a stream of UTF-8 bytes.
  31815  *
  31816  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder)
  31817  */
  31818 interface TextEncoder extends TextEncoderCommon {
  31819     /**
  31820      * The **`TextEncoder.encode()`** method takes a string as input, and returns a Global_Objects/Uint8Array containing the text given in parameters encoded with the specific method for that TextEncoder object.
  31821      *
  31822      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encode)
  31823      */
  31824     encode(input?: string): Uint8Array<ArrayBuffer>;
  31825     /**
  31826      * The **`TextEncoder.encodeInto()`** method takes a string to encode and a destination Uint8Array to put resulting UTF-8 encoded text into, and returns a dictionary object indicating the progress of the encoding.
  31827      *
  31828      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encodeInto)
  31829      */
  31830     encodeInto(source: string, destination: Uint8Array<ArrayBufferLike>): TextEncoderEncodeIntoResult;
  31831 }
  31832 
  31833 declare var TextEncoder: {
  31834     prototype: TextEncoder;
  31835     new(): TextEncoder;
  31836 };
  31837 
  31838 interface TextEncoderCommon {
  31839     /**
  31840      * Returns "utf-8".
  31841      *
  31842      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encoding)
  31843      */
  31844     readonly encoding: string;
  31845 }
  31846 
  31847 /**
  31848  * The **`TextEncoderStream`** interface of the Encoding API converts a stream of strings into bytes in the UTF-8 encoding.
  31849  *
  31850  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoderStream)
  31851  */
  31852 interface TextEncoderStream extends GenericTransformStream, TextEncoderCommon {
  31853     readonly readable: ReadableStream<Uint8Array<ArrayBuffer>>;
  31854     readonly writable: WritableStream<string>;
  31855 }
  31856 
  31857 declare var TextEncoderStream: {
  31858     prototype: TextEncoderStream;
  31859     new(): TextEncoderStream;
  31860 };
  31861 
  31862 /**
  31863  * The **`TextEvent`** interface is a legacy UI event interface for reporting changes to text UI elements.
  31864  * @deprecated
  31865  *
  31866  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEvent)
  31867  */
  31868 interface TextEvent extends UIEvent {
  31869     /**
  31870      * The **`data`** read-only property of the TextEvent interface returns the last character added to the input element.
  31871      * @deprecated
  31872      *
  31873      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEvent/data)
  31874      */
  31875     readonly data: string;
  31876     /**
  31877      * The **`initTextEventEvent()`** method of the TextEvent interface initializes the value of a `TextEvent` after it has been created.
  31878      * @deprecated
  31879      *
  31880      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEvent/initTextEvent)
  31881      */
  31882     initTextEvent(type: string, bubbles?: boolean, cancelable?: boolean, view?: Window | null, data?: string): void;
  31883 }
  31884 
  31885 /** @deprecated */
  31886 declare var TextEvent: {
  31887     prototype: TextEvent;
  31888     new(): TextEvent;
  31889 };
  31890 
  31891 /**
  31892  * The **`TextMetrics`** interface represents the dimensions of a piece of text in the canvas; a `TextMetrics` instance can be retrieved using the CanvasRenderingContext2D.measureText() method.
  31893  *
  31894  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics)
  31895  */
  31896 interface TextMetrics {
  31897     /**
  31898      * The read-only **`actualBoundingBoxAscent`** property of the TextMetrics interface is a `double` giving the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline attribute to the top of the bounding rectangle used to render the text, in CSS pixels.
  31899      *
  31900      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxAscent)
  31901      */
  31902     readonly actualBoundingBoxAscent: number;
  31903     /**
  31904      * The read-only `actualBoundingBoxDescent` property of the TextMetrics interface is a `double` giving the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline attribute to the bottom of the bounding rectangle used to render the text, in CSS pixels.
  31905      *
  31906      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxDescent)
  31907      */
  31908     readonly actualBoundingBoxDescent: number;
  31909     /**
  31910      * The read-only `actualBoundingBoxLeft` property of the TextMetrics interface is a `double` giving the distance parallel to the baseline from the alignment point given by the CanvasRenderingContext2D.textAlign property to the left side of the bounding rectangle of the given text, in CSS pixels; positive numbers indicating a distance going left from the given alignment point.
  31911      *
  31912      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxLeft)
  31913      */
  31914     readonly actualBoundingBoxLeft: number;
  31915     /**
  31916      * The read-only `actualBoundingBoxRight` property of the TextMetrics interface is a `double` giving the distance parallel to the baseline from the alignment point given by the CanvasRenderingContext2D.textAlign property to the right side of the bounding rectangle of the given text, in CSS pixels.
  31917      *
  31918      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxRight)
  31919      */
  31920     readonly actualBoundingBoxRight: number;
  31921     /**
  31922      * The read-only `alphabeticBaseline` property of the TextMetrics interface is a `double` giving the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline property to the alphabetic baseline of the line box, in CSS pixels.
  31923      *
  31924      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/alphabeticBaseline)
  31925      */
  31926     readonly alphabeticBaseline: number;
  31927     /**
  31928      * The read-only `emHeightAscent` property of the TextMetrics interface returns the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline property to the top of the _em_ square in the line box, in CSS pixels.
  31929      *
  31930      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/emHeightAscent)
  31931      */
  31932     readonly emHeightAscent: number;
  31933     /**
  31934      * The read-only `emHeightDescent` property of the TextMetrics interface returns the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline property to the bottom of the _em_ square in the line box, in CSS pixels.
  31935      *
  31936      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/emHeightDescent)
  31937      */
  31938     readonly emHeightDescent: number;
  31939     /**
  31940      * The read-only `fontBoundingBoxAscent` property of the TextMetrics interface returns the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline attribute, to the top of the highest bounding rectangle of all the fonts used to render the text, in CSS pixels.
  31941      *
  31942      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/fontBoundingBoxAscent)
  31943      */
  31944     readonly fontBoundingBoxAscent: number;
  31945     /**
  31946      * The read-only `fontBoundingBoxDescent` property of the TextMetrics interface returns the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline attribute to the bottom of the bounding rectangle of all the fonts used to render the text, in CSS pixels.
  31947      *
  31948      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/fontBoundingBoxDescent)
  31949      */
  31950     readonly fontBoundingBoxDescent: number;
  31951     /**
  31952      * The read-only `hangingBaseline` property of the TextMetrics interface is a `double` giving the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline property to the hanging baseline of the line box, in CSS pixels.
  31953      *
  31954      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/hangingBaseline)
  31955      */
  31956     readonly hangingBaseline: number;
  31957     /**
  31958      * The read-only `ideographicBaseline` property of the TextMetrics interface is a `double` giving the distance from the horizontal line indicated by the CanvasRenderingContext2D.textBaseline property to the ideographic baseline of the line box, in CSS pixels.
  31959      *
  31960      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/ideographicBaseline)
  31961      */
  31962     readonly ideographicBaseline: number;
  31963     /**
  31964      * The read-only **`width`** property of the TextMetrics interface contains the text's advance width (the width of that inline box) in CSS pixels.
  31965      *
  31966      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/width)
  31967      */
  31968     readonly width: number;
  31969 }
  31970 
  31971 declare var TextMetrics: {
  31972     prototype: TextMetrics;
  31973     new(): TextMetrics;
  31974 };
  31975 
  31976 interface TextTrackEventMap {
  31977     "cuechange": Event;
  31978 }
  31979 
  31980 /**
  31981  * The **`TextTrack`** interface of the WebVTT API represents a text track associated with a media element.
  31982  *
  31983  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack)
  31984  */
  31985 interface TextTrack extends EventTarget {
  31986     /**
  31987      * The **`activeCues`** read-only property of the TextTrack interface returns a TextTrackCueList object listing the currently active cues.
  31988      *
  31989      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/activeCues)
  31990      */
  31991     readonly activeCues: TextTrackCueList | null;
  31992     /**
  31993      * The **`cues`** read-only property of the TextTrack interface returns a TextTrackCueList object containing all of the track's cues.
  31994      *
  31995      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/cues)
  31996      */
  31997     readonly cues: TextTrackCueList | null;
  31998     /**
  31999      * The **`id`** read-only property of the TextTrack interface returns the ID of the track if it has one.
  32000      *
  32001      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/id)
  32002      */
  32003     readonly id: string;
  32004     /**
  32005      * The **`inBandMetadataTrackDispatchType`** read-only property of the TextTrack interface returns the text track's in-band metadata dispatch type of the text track represented by the TextTrack object.
  32006      *
  32007      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/inBandMetadataTrackDispatchType)
  32008      */
  32009     readonly inBandMetadataTrackDispatchType: string;
  32010     /**
  32011      * The **`kind`** read-only property of the TextTrack interface returns the kind of text track this object represents.
  32012      *
  32013      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/kind)
  32014      */
  32015     readonly kind: TextTrackKind;
  32016     /**
  32017      * The **`label`** read-only property of the TextTrack interface returns a human-readable label for the text track, if it is available.
  32018      *
  32019      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/label)
  32020      */
  32021     readonly label: string;
  32022     /**
  32023      * The **`language`** read-only property of the TextTrack interface returns the language of the text track.
  32024      *
  32025      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/language)
  32026      */
  32027     readonly language: string;
  32028     /**
  32029      * The TextTrack interface's **`mode`** property is a string specifying and controlling the text track's mode: `disabled`, `hidden`, or `showing`.
  32030      *
  32031      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/mode)
  32032      */
  32033     mode: TextTrackMode;
  32034     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/cuechange_event) */
  32035     oncuechange: ((this: TextTrack, ev: Event) => any) | null;
  32036     /**
  32037      * The **`addCue()`** method of the TextTrack interface adds a new cue to the list of cues.
  32038      *
  32039      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/addCue)
  32040      */
  32041     addCue(cue: TextTrackCue): void;
  32042     /**
  32043      * The **`removeCue()`** method of the TextTrack interface removes a cue from the list of cues.
  32044      *
  32045      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/removeCue)
  32046      */
  32047     removeCue(cue: TextTrackCue): void;
  32048     addEventListener<K extends keyof TextTrackEventMap>(type: K, listener: (this: TextTrack, ev: TextTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  32049     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  32050     removeEventListener<K extends keyof TextTrackEventMap>(type: K, listener: (this: TextTrack, ev: TextTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  32051     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  32052 }
  32053 
  32054 declare var TextTrack: {
  32055     prototype: TextTrack;
  32056     new(): TextTrack;
  32057 };
  32058 
  32059 interface TextTrackCueEventMap {
  32060     "enter": Event;
  32061     "exit": Event;
  32062 }
  32063 
  32064 /**
  32065  * The **`TextTrackCue`** interface of the WebVTT API is the abstract base class for the various derived cue types, such as VTTCue; you will work with these derived types rather than the base class.
  32066  *
  32067  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue)
  32068  */
  32069 interface TextTrackCue extends EventTarget {
  32070     /**
  32071      * The **`endTime`** property of the TextTrackCue interface returns and sets the end time of the cue.
  32072      *
  32073      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/endTime)
  32074      */
  32075     endTime: number;
  32076     /**
  32077      * The **`id`** property of the TextTrackCue interface returns and sets the identifier for this cue.
  32078      *
  32079      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/id)
  32080      */
  32081     id: string;
  32082     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/enter_event) */
  32083     onenter: ((this: TextTrackCue, ev: Event) => any) | null;
  32084     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/exit_event) */
  32085     onexit: ((this: TextTrackCue, ev: Event) => any) | null;
  32086     /**
  32087      * The **`pauseOnExit`** property of the TextTrackCue interface returns or sets the flag indicating whether playback of the media should pause when the end of the range to which this cue applies is reached.
  32088      *
  32089      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/pauseOnExit)
  32090      */
  32091     pauseOnExit: boolean;
  32092     /**
  32093      * The **`startTime`** property of the TextTrackCue interface returns and sets the start time of the cue.
  32094      *
  32095      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/startTime)
  32096      */
  32097     startTime: number;
  32098     /**
  32099      * The **`track`** read-only property of the TextTrackCue interface returns the TextTrack object that this cue belongs to.
  32100      *
  32101      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/track)
  32102      */
  32103     readonly track: TextTrack | null;
  32104     addEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: TextTrackCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  32105     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  32106     removeEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: TextTrackCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  32107     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  32108 }
  32109 
  32110 declare var TextTrackCue: {
  32111     prototype: TextTrackCue;
  32112     new(): TextTrackCue;
  32113 };
  32114 
  32115 /**
  32116  * The **`TextTrackCueList`** interface of the WebVTT API is an array-like object that represents a dynamically updating list of TextTrackCue objects.
  32117  *
  32118  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCueList)
  32119  */
  32120 interface TextTrackCueList {
  32121     /**
  32122      * The **`length`** read-only property of the TextTrackCueList interface returns the number of cues in the list.
  32123      *
  32124      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCueList/length)
  32125      */
  32126     readonly length: number;
  32127     /**
  32128      * The **`getCueById()`** method of the TextTrackCueList interface returns the first VTTCue in the list represented by the `TextTrackCueList` object whose identifier matches the value of `id`.
  32129      *
  32130      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCueList/getCueById)
  32131      */
  32132     getCueById(id: string): TextTrackCue | null;
  32133     [index: number]: TextTrackCue;
  32134 }
  32135 
  32136 declare var TextTrackCueList: {
  32137     prototype: TextTrackCueList;
  32138     new(): TextTrackCueList;
  32139 };
  32140 
  32141 interface TextTrackListEventMap {
  32142     "addtrack": TrackEvent;
  32143     "change": Event;
  32144     "removetrack": TrackEvent;
  32145 }
  32146 
  32147 /**
  32148  * The **`TextTrackList`** interface is used to represent a list of the text tracks defined for the associated video or audio element, with each track represented by a separate textTrack object in the list.
  32149  *
  32150  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList)
  32151  */
  32152 interface TextTrackList extends EventTarget {
  32153     /**
  32154      * The read-only **TextTrackList** property **`length`** returns the number of entries in the `TextTrackList`, each of which is a TextTrack representing one track in the media element.
  32155      *
  32156      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/length)
  32157      */
  32158     readonly length: number;
  32159     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/addtrack_event) */
  32160     onaddtrack: ((this: TextTrackList, ev: TrackEvent) => any) | null;
  32161     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/change_event) */
  32162     onchange: ((this: TextTrackList, ev: Event) => any) | null;
  32163     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/removetrack_event) */
  32164     onremovetrack: ((this: TextTrackList, ev: TrackEvent) => any) | null;
  32165     /**
  32166      * The **TextTrackList** method **`getTrackById()`** returns the first `id` matches the specified string.
  32167      *
  32168      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/getTrackById)
  32169      */
  32170     getTrackById(id: string): TextTrack | null;
  32171     addEventListener<K extends keyof TextTrackListEventMap>(type: K, listener: (this: TextTrackList, ev: TextTrackListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  32172     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  32173     removeEventListener<K extends keyof TextTrackListEventMap>(type: K, listener: (this: TextTrackList, ev: TextTrackListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  32174     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  32175     [index: number]: TextTrack;
  32176 }
  32177 
  32178 declare var TextTrackList: {
  32179     prototype: TextTrackList;
  32180     new(): TextTrackList;
  32181 };
  32182 
  32183 /**
  32184  * When loading a media resource for use by an audio or video element, the **`TimeRanges`** interface is used for representing the time ranges of the media resource that have been buffered, the time ranges that have been played, and the time ranges that are seekable.
  32185  *
  32186  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TimeRanges)
  32187  */
  32188 interface TimeRanges {
  32189     /**
  32190      * The **`TimeRanges.length`** read-only property returns the number of ranges in the object.
  32191      *
  32192      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TimeRanges/length)
  32193      */
  32194     readonly length: number;
  32195     /**
  32196      * The **`end()`** method of the TimeRanges interface returns the time offset (in seconds) at which a specified time range ends.
  32197      *
  32198      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TimeRanges/end)
  32199      */
  32200     end(index: number): number;
  32201     /**
  32202      * The **`start()`** method of the TimeRanges interface returns the time offset (in seconds) at which a specified time range begins.
  32203      *
  32204      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TimeRanges/start)
  32205      */
  32206     start(index: number): number;
  32207 }
  32208 
  32209 declare var TimeRanges: {
  32210     prototype: TimeRanges;
  32211     new(): TimeRanges;
  32212 };
  32213 
  32214 /**
  32215  * The **`ToggleEvent`** interface represents an event notifying the user an Element's state has changed.
  32216  *
  32217  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent)
  32218  */
  32219 interface ToggleEvent extends Event {
  32220     /**
  32221      * The **`newState`** read-only property of the ToggleEvent interface is a string representing the state the element is transitioning to.
  32222      *
  32223      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent/newState)
  32224      */
  32225     readonly newState: string;
  32226     /**
  32227      * The **`oldState`** read-only property of the ToggleEvent interface is a string representing the state the element is transitioning from.
  32228      *
  32229      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent/oldState)
  32230      */
  32231     readonly oldState: string;
  32232 }
  32233 
  32234 declare var ToggleEvent: {
  32235     prototype: ToggleEvent;
  32236     new(type: string, eventInitDict?: ToggleEventInit): ToggleEvent;
  32237 };
  32238 
  32239 /**
  32240  * The **`Touch`** interface represents a single contact point on a touch-sensitive device.
  32241  *
  32242  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch)
  32243  */
  32244 interface Touch {
  32245     /**
  32246      * The `Touch.clientX` read-only property returns the X coordinate of the touch point relative to the viewport, not including any scroll offset.
  32247      *
  32248      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/clientX)
  32249      */
  32250     readonly clientX: number;
  32251     /**
  32252      * The **`Touch.clientY`** read-only property returns the Y coordinate of the touch point relative to the browser's viewport, not including any scroll offset.
  32253      *
  32254      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/clientY)
  32255      */
  32256     readonly clientY: number;
  32257     /**
  32258      * The **`Touch.force`** read-only property returns the amount of pressure the user is applying to the touch surface for a Touch point.
  32259      *
  32260      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/force)
  32261      */
  32262     readonly force: number;
  32263     /**
  32264      * The **`Touch.identifier`** returns a value uniquely identifying this point of contact with the touch surface.
  32265      *
  32266      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/identifier)
  32267      */
  32268     readonly identifier: number;
  32269     /**
  32270      * The **`Touch.pageX`** read-only property returns the X coordinate of the touch point relative to the viewport, including any scroll offset.
  32271      *
  32272      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/pageX)
  32273      */
  32274     readonly pageX: number;
  32275     /**
  32276      * The **`Touch.pageY`** read-only property returns the Y coordinate of the touch point relative to the viewport, including any scroll offset.
  32277      *
  32278      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/pageY)
  32279      */
  32280     readonly pageY: number;
  32281     /**
  32282      * The **`radiusX`** read-only property of the Touch interface returns the X radius of the ellipse that most closely circumscribes the area of contact with the touch surface.
  32283      *
  32284      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/radiusX)
  32285      */
  32286     readonly radiusX: number;
  32287     /**
  32288      * The **`radiusY`** read-only property of the Touch interface returns the Y radius of the ellipse that most closely circumscribes the area of contact with the touch surface.
  32289      *
  32290      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/radiusY)
  32291      */
  32292     readonly radiusY: number;
  32293     /**
  32294      * The **`rotationAngle`** read-only property of the Touch interface returns the rotation angle, in degrees, of the contact area ellipse defined by Touch.radiusX and Touch.radiusY.
  32295      *
  32296      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/rotationAngle)
  32297      */
  32298     readonly rotationAngle: number;
  32299     /**
  32300      * Returns the X coordinate of the touch point relative to the screen, not including any scroll offset.
  32301      *
  32302      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/screenX)
  32303      */
  32304     readonly screenX: number;
  32305     /**
  32306      * Returns the Y coordinate of the touch point relative to the screen, not including any scroll offset.
  32307      *
  32308      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/screenY)
  32309      */
  32310     readonly screenY: number;
  32311     /**
  32312      * The read-only **`target`** property of the `Touch` interface returns the (EventTarget) on which the touch contact started when it was first placed on the surface, even if the touch point has since moved outside the interactive area of that element or even been removed from the document.
  32313      *
  32314      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/target)
  32315      */
  32316     readonly target: EventTarget;
  32317 }
  32318 
  32319 declare var Touch: {
  32320     prototype: Touch;
  32321     new(touchInitDict: TouchInit): Touch;
  32322 };
  32323 
  32324 /**
  32325  * The **`TouchEvent`** interface represents an UIEvent which is sent when the state of contacts with a touch-sensitive surface changes.
  32326  *
  32327  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent)
  32328  */
  32329 interface TouchEvent extends UIEvent {
  32330     /**
  32331      * The read-only **`altKey`** property of the TouchEvent interface returns a boolean value indicating whether or not the <kbd>alt</kbd> (Alternate) key is enabled when the touch event is created.
  32332      *
  32333      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/altKey)
  32334      */
  32335     readonly altKey: boolean;
  32336     /**
  32337      * The **`changedTouches`** read-only property is a TouchList whose touch points (Touch objects) varies depending on the event type, as follows: - For the Element/touchstart_event event, it is a list of the touch points that became active with the current event.
  32338      *
  32339      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/changedTouches)
  32340      */
  32341     readonly changedTouches: TouchList;
  32342     /**
  32343      * The read-only **`ctrlKey`** property of the TouchEvent interface returns a boolean value indicating whether the <kbd>control</kbd> (Control) key is enabled when the touch event is created.
  32344      *
  32345      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/ctrlKey)
  32346      */
  32347     readonly ctrlKey: boolean;
  32348     /**
  32349      * The read-only **`metaKey`** property of the TouchEvent interface returns a boolean value indicating whether or not the <kbd>Meta</kbd> key is enabled when the touch event is created.
  32350      *
  32351      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/metaKey)
  32352      */
  32353     readonly metaKey: boolean;
  32354     /**
  32355      * The read-only **`shiftKey`** property of the `TouchEvent` interface returns a boolean value indicating whether or not the <kbd>shift</kbd> key is enabled when the touch event is created.
  32356      *
  32357      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/shiftKey)
  32358      */
  32359     readonly shiftKey: boolean;
  32360     /**
  32361      * The **`targetTouches`** read-only property is a TouchList listing all the Touch objects for touch points that are still in contact with the touch surface **and** whose Element/touchstart_event event occurred inside the same target element as the current target element.
  32362      *
  32363      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/targetTouches)
  32364      */
  32365     readonly targetTouches: TouchList;
  32366     /**
  32367      * **`touches`** is a read-only TouchList listing all the Touch objects for touch points that are currently in contact with the touch surface, regardless of whether or not they've changed or what their target element was at Element/touchstart_event time.
  32368      *
  32369      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/touches)
  32370      */
  32371     readonly touches: TouchList;
  32372 }
  32373 
  32374 declare var TouchEvent: {
  32375     prototype: TouchEvent;
  32376     new(type: string, eventInitDict?: TouchEventInit): TouchEvent;
  32377 };
  32378 
  32379 /**
  32380  * The **`TouchList`** interface represents a list of contact points on a touch surface.
  32381  *
  32382  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchList)
  32383  */
  32384 interface TouchList {
  32385     /**
  32386      * The **`length`** read-only property indicates the number of items (touch points) in a given TouchList.
  32387      *
  32388      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchList/length)
  32389      */
  32390     readonly length: number;
  32391     /**
  32392      * The **`item()`** method returns the Touch object at the specified index in the TouchList.
  32393      *
  32394      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchList/item)
  32395      */
  32396     item(index: number): Touch | null;
  32397     [index: number]: Touch;
  32398 }
  32399 
  32400 declare var TouchList: {
  32401     prototype: TouchList;
  32402     new(): TouchList;
  32403 };
  32404 
  32405 /**
  32406  * The **`TrackEvent`** interface of the HTML DOM API is used for events which represent changes to a set of available tracks on an HTML media element; these events are `addtrack` and `removetrack`.
  32407  *
  32408  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TrackEvent)
  32409  */
  32410 interface TrackEvent extends Event {
  32411     /**
  32412      * The read-only **`track`** property of the TrackEvent interface specifies the media track object to which the event applies.
  32413      *
  32414      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TrackEvent/track)
  32415      */
  32416     readonly track: TextTrack | null;
  32417 }
  32418 
  32419 declare var TrackEvent: {
  32420     prototype: TrackEvent;
  32421     new(type: string, eventInitDict?: TrackEventInit): TrackEvent;
  32422 };
  32423 
  32424 /**
  32425  * The **`TransformStream`** interface of the Streams API represents a concrete implementation of the pipe chain _transform stream_ concept.
  32426  *
  32427  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream)
  32428  */
  32429 interface TransformStream<I = any, O = any> {
  32430     /**
  32431      * The **`readable`** read-only property of the TransformStream interface returns the ReadableStream instance controlled by this `TransformStream`.
  32432      *
  32433      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream/readable)
  32434      */
  32435     readonly readable: ReadableStream<O>;
  32436     /**
  32437      * The **`writable`** read-only property of the TransformStream interface returns the WritableStream instance controlled by this `TransformStream`.
  32438      *
  32439      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream/writable)
  32440      */
  32441     readonly writable: WritableStream<I>;
  32442 }
  32443 
  32444 declare var TransformStream: {
  32445     prototype: TransformStream;
  32446     new<I = any, O = any>(transformer?: Transformer<I, O>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<O>): TransformStream<I, O>;
  32447 };
  32448 
  32449 /**
  32450  * The **`TransformStreamDefaultController`** interface of the Streams API provides methods to manipulate the associated ReadableStream and WritableStream.
  32451  *
  32452  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController)
  32453  */
  32454 interface TransformStreamDefaultController<O = any> {
  32455     /**
  32456      * The **`desiredSize`** read-only property of the TransformStreamDefaultController interface returns the desired size to fill the queue of the associated ReadableStream.
  32457      *
  32458      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/desiredSize)
  32459      */
  32460     readonly desiredSize: number | null;
  32461     /**
  32462      * The **`enqueue()`** method of the TransformStreamDefaultController interface enqueues the given chunk in the readable side of the stream.
  32463      *
  32464      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/enqueue)
  32465      */
  32466     enqueue(chunk?: O): void;
  32467     /**
  32468      * The **`error()`** method of the TransformStreamDefaultController interface errors both sides of the stream.
  32469      *
  32470      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/error)
  32471      */
  32472     error(reason?: any): void;
  32473     /**
  32474      * The **`terminate()`** method of the TransformStreamDefaultController interface closes the readable side and errors the writable side of the stream.
  32475      *
  32476      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/terminate)
  32477      */
  32478     terminate(): void;
  32479 }
  32480 
  32481 declare var TransformStreamDefaultController: {
  32482     prototype: TransformStreamDefaultController;
  32483     new(): TransformStreamDefaultController;
  32484 };
  32485 
  32486 /**
  32487  * The **`TransitionEvent`** interface represents events providing information related to transitions.
  32488  *
  32489  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransitionEvent)
  32490  */
  32491 interface TransitionEvent extends Event {
  32492     /**
  32493      * The **`TransitionEvent.elapsedTime`** read-only property is a `float` giving the amount of time the animation has been running, in seconds, when this event fired.
  32494      *
  32495      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransitionEvent/elapsedTime)
  32496      */
  32497     readonly elapsedTime: number;
  32498     /**
  32499      * The **`propertyName`** read-only property of TransitionEvent objects is a string containing the name of the CSS property associated with the transition.
  32500      *
  32501      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransitionEvent/propertyName)
  32502      */
  32503     readonly propertyName: string;
  32504     /**
  32505      * The **`TransitionEvent.pseudoElement`** read-only property is a string, starting with `'::'`, containing the name of the pseudo-element the animation runs on.
  32506      *
  32507      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransitionEvent/pseudoElement)
  32508      */
  32509     readonly pseudoElement: string;
  32510 }
  32511 
  32512 declare var TransitionEvent: {
  32513     prototype: TransitionEvent;
  32514     new(type: string, transitionEventInitDict?: TransitionEventInit): TransitionEvent;
  32515 };
  32516 
  32517 /**
  32518  * The **`TreeWalker`** object represents the nodes of a document subtree and a position within them.
  32519  *
  32520  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker)
  32521  */
  32522 interface TreeWalker {
  32523     /**
  32524      * The **`TreeWalker.currentNode`** property represents the A Node.
  32525      *
  32526      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/currentNode)
  32527      */
  32528     currentNode: Node;
  32529     /**
  32530      * The **`TreeWalker.filter`** read-only property returns the `NodeFilter` associated with the TreeWalker.
  32531      *
  32532      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/filter)
  32533      */
  32534     readonly filter: NodeFilter | null;
  32535     /**
  32536      * The **`TreeWalker.root`** read-only property returns the root Node that the TreeWalker traverses.
  32537      *
  32538      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/root)
  32539      */
  32540     readonly root: Node;
  32541     /**
  32542      * The **`TreeWalker.whatToShow`** read-only property returns a bitmask that indicates the types of nodes to show.
  32543      *
  32544      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/whatToShow)
  32545      */
  32546     readonly whatToShow: number;
  32547     /**
  32548      * The **`TreeWalker.firstChild()`** method moves the current the found child.
  32549      *
  32550      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/firstChild)
  32551      */
  32552     firstChild(): Node | null;
  32553     /**
  32554      * The **`TreeWalker.lastChild()`** method moves the current the found child.
  32555      *
  32556      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/lastChild)
  32557      */
  32558     lastChild(): Node | null;
  32559     /**
  32560      * The **`TreeWalker.nextNode()`** method moves the current the found node.
  32561      *
  32562      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/nextNode)
  32563      */
  32564     nextNode(): Node | null;
  32565     /**
  32566      * The **`TreeWalker.nextSibling()`** method moves the current is no such node, it returns `null` and the current node is not changed.
  32567      *
  32568      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/nextSibling)
  32569      */
  32570     nextSibling(): Node | null;
  32571     /**
  32572      * The **`TreeWalker.parentNode()`** method moves the current and returns the found node.
  32573      *
  32574      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/parentNode)
  32575      */
  32576     parentNode(): Node | null;
  32577     /**
  32578      * The **`TreeWalker.previousNode()`** method moves the current returns the found node.
  32579      *
  32580      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/previousNode)
  32581      */
  32582     previousNode(): Node | null;
  32583     /**
  32584      * The **`TreeWalker.previousSibling()`** method moves the current there is no such node, it returns `null` and the current node is not changed.
  32585      *
  32586      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/previousSibling)
  32587      */
  32588     previousSibling(): Node | null;
  32589 }
  32590 
  32591 declare var TreeWalker: {
  32592     prototype: TreeWalker;
  32593     new(): TreeWalker;
  32594 };
  32595 
  32596 /**
  32597  * The **`UIEvent`** interface represents simple user interface events.
  32598  *
  32599  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent)
  32600  */
  32601 interface UIEvent extends Event {
  32602     /**
  32603      * The **`UIEvent.detail`** read-only property, when non-zero, provides the current (or next, depending on the event) click count.
  32604      *
  32605      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent/detail)
  32606      */
  32607     readonly detail: number;
  32608     /**
  32609      * The **`UIEvent.view`** read-only property returns the is the Window object the event happened in.
  32610      *
  32611      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent/view)
  32612      */
  32613     readonly view: Window | null;
  32614     /**
  32615      * The **`UIEvent.which`** read-only property of the UIEvent interface returns a number that indicates which button was pressed on the mouse, or the numeric `keyCode` or the character code (`charCode`) of the key pressed on the keyboard.
  32616      * @deprecated
  32617      *
  32618      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent/which)
  32619      */
  32620     readonly which: number;
  32621     /**
  32622      * The **`UIEvent.initUIEvent()`** method initializes a UI event once it's been created.
  32623      * @deprecated
  32624      *
  32625      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent/initUIEvent)
  32626      */
  32627     initUIEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, viewArg?: Window | null, detailArg?: number): void;
  32628 }
  32629 
  32630 declare var UIEvent: {
  32631     prototype: UIEvent;
  32632     new(type: string, eventInitDict?: UIEventInit): UIEvent;
  32633 };
  32634 
  32635 /**
  32636  * The **`URL`** interface is used to parse, construct, normalize, and encode URL.
  32637  *
  32638  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL)
  32639  */
  32640 interface URL {
  32641     /**
  32642      * The **`hash`** property of the URL interface is a string containing a `'#'` followed by the fragment identifier of the URL.
  32643      *
  32644      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/hash)
  32645      */
  32646     hash: string;
  32647     /**
  32648      * The **`host`** property of the URL interface is a string containing the host, which is the URL.hostname, and then, if the port of the URL is nonempty, a `':'`, followed by the URL.port of the URL.
  32649      *
  32650      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/host)
  32651      */
  32652     host: string;
  32653     /**
  32654      * The **`hostname`** property of the URL interface is a string containing either the domain name or IP address of the URL.
  32655      *
  32656      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/hostname)
  32657      */
  32658     hostname: string;
  32659     /**
  32660      * The **`href`** property of the URL interface is a string containing the whole URL.
  32661      *
  32662      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/href)
  32663      */
  32664     href: string;
  32665     toString(): string;
  32666     /**
  32667      * The **`origin`** read-only property of the URL interface returns a string containing the Unicode serialization of the origin of the represented URL.
  32668      *
  32669      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/origin)
  32670      */
  32671     readonly origin: string;
  32672     /**
  32673      * The **`password`** property of the URL interface is a string containing the password component of the URL.
  32674      *
  32675      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/password)
  32676      */
  32677     password: string;
  32678     /**
  32679      * The **`pathname`** property of the URL interface represents a location in a hierarchical structure.
  32680      *
  32681      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/pathname)
  32682      */
  32683     pathname: string;
  32684     /**
  32685      * The **`port`** property of the URL interface is a string containing the port number of the URL.
  32686      *
  32687      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/port)
  32688      */
  32689     port: string;
  32690     /**
  32691      * The **`protocol`** property of the URL interface is a string containing the protocol or scheme of the URL, including the final `':'`.
  32692      *
  32693      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/protocol)
  32694      */
  32695     protocol: string;
  32696     /**
  32697      * The **`search`** property of the URL interface is a search string, also called a _query string_, that is a string containing a `'?'` followed by the parameters of the URL.
  32698      *
  32699      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/search)
  32700      */
  32701     search: string;
  32702     /**
  32703      * The **`searchParams`** read-only property of the access to the [MISSING: httpmethod('GET')] decoded query arguments contained in the URL.
  32704      *
  32705      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/searchParams)
  32706      */
  32707     readonly searchParams: URLSearchParams;
  32708     /**
  32709      * The **`username`** property of the URL interface is a string containing the username component of the URL.
  32710      *
  32711      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/username)
  32712      */
  32713     username: string;
  32714     /**
  32715      * The **`toJSON()`** method of the URL interface returns a string containing a serialized version of the URL, although in practice it seems to have the same effect as ```js-nolint toJSON() ``` None.
  32716      *
  32717      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/toJSON)
  32718      */
  32719     toJSON(): string;
  32720 }
  32721 
  32722 declare var URL: {
  32723     prototype: URL;
  32724     new(url: string | URL, base?: string | URL): URL;
  32725     /**
  32726      * The **`URL.canParse()`** static method of the URL interface returns a boolean indicating whether or not an absolute URL, or a relative URL combined with a base URL, are parsable and valid.
  32727      *
  32728      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/canParse_static)
  32729      */
  32730     canParse(url: string | URL, base?: string | URL): boolean;
  32731     /**
  32732      * The **`createObjectURL()`** static method of the URL interface creates a string containing a URL representing the object given in the parameter.
  32733      *
  32734      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/createObjectURL_static)
  32735      */
  32736     createObjectURL(obj: Blob | MediaSource): string;
  32737     /**
  32738      * The **`URL.parse()`** static method of the URL interface returns a newly created URL object representing the URL defined by the parameters.
  32739      *
  32740      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/parse_static)
  32741      */
  32742     parse(url: string | URL, base?: string | URL): URL | null;
  32743     /**
  32744      * The **`revokeObjectURL()`** static method of the URL interface releases an existing object URL which was previously created by calling Call this method when you've finished using an object URL to let the browser know not to keep the reference to the file any longer.
  32745      *
  32746      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/revokeObjectURL_static)
  32747      */
  32748     revokeObjectURL(url: string): void;
  32749 };
  32750 
  32751 type webkitURL = URL;
  32752 declare var webkitURL: typeof URL;
  32753 
  32754 /**
  32755  * The **`URLSearchParams`** interface defines utility methods to work with the query string of a URL.
  32756  *
  32757  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams)
  32758  */
  32759 interface URLSearchParams {
  32760     /**
  32761      * The **`size`** read-only property of the URLSearchParams interface indicates the total number of search parameter entries.
  32762      *
  32763      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/size)
  32764      */
  32765     readonly size: number;
  32766     /**
  32767      * The **`append()`** method of the URLSearchParams interface appends a specified key/value pair as a new search parameter.
  32768      *
  32769      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/append)
  32770      */
  32771     append(name: string, value: string): void;
  32772     /**
  32773      * The **`delete()`** method of the URLSearchParams interface deletes specified parameters and their associated value(s) from the list of all search parameters.
  32774      *
  32775      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/delete)
  32776      */
  32777     delete(name: string, value?: string): void;
  32778     /**
  32779      * The **`get()`** method of the URLSearchParams interface returns the first value associated to the given search parameter.
  32780      *
  32781      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/get)
  32782      */
  32783     get(name: string): string | null;
  32784     /**
  32785      * The **`getAll()`** method of the URLSearchParams interface returns all the values associated with a given search parameter as an array.
  32786      *
  32787      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/getAll)
  32788      */
  32789     getAll(name: string): string[];
  32790     /**
  32791      * The **`has()`** method of the URLSearchParams interface returns a boolean value that indicates whether the specified parameter is in the search parameters.
  32792      *
  32793      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/has)
  32794      */
  32795     has(name: string, value?: string): boolean;
  32796     /**
  32797      * The **`set()`** method of the URLSearchParams interface sets the value associated with a given search parameter to the given value.
  32798      *
  32799      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/set)
  32800      */
  32801     set(name: string, value: string): void;
  32802     /**
  32803      * The **`URLSearchParams.sort()`** method sorts all key/value pairs contained in this object in place and returns `undefined`.
  32804      *
  32805      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/sort)
  32806      */
  32807     sort(): void;
  32808     toString(): string;
  32809     forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void;
  32810 }
  32811 
  32812 declare var URLSearchParams: {
  32813     prototype: URLSearchParams;
  32814     new(init?: string[][] | Record<string, string> | string | URLSearchParams): URLSearchParams;
  32815 };
  32816 
  32817 /**
  32818  * The **`UserActivation`** interface provides information about whether a user is currently interacting with the page, or has completed an interaction since page load.
  32819  *
  32820  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/UserActivation)
  32821  */
  32822 interface UserActivation {
  32823     /**
  32824      * The read-only **`hasBeenActive`** property of the UserActivation interface indicates whether the current window has sticky activation.
  32825      *
  32826      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/UserActivation/hasBeenActive)
  32827      */
  32828     readonly hasBeenActive: boolean;
  32829     /**
  32830      * The read-only **`isActive`** property of the UserActivation interface indicates whether the current window has transient activation.
  32831      *
  32832      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/UserActivation/isActive)
  32833      */
  32834     readonly isActive: boolean;
  32835 }
  32836 
  32837 declare var UserActivation: {
  32838     prototype: UserActivation;
  32839     new(): UserActivation;
  32840 };
  32841 
  32842 /**
  32843  * The `VTTCue` interface of the WebVTT API represents a cue that can be added to the text track associated with a particular video (or other media).
  32844  *
  32845  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue)
  32846  */
  32847 interface VTTCue extends TextTrackCue {
  32848     /**
  32849      * The **`align`** property of the VTTCue interface represents the alignment of all of the lines of text in the text box.
  32850      *
  32851      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/align)
  32852      */
  32853     align: AlignSetting;
  32854     /**
  32855      * The **`line`** property of the VTTCue interface represents the cue line of this WebVTT cue.
  32856      *
  32857      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/line)
  32858      */
  32859     line: LineAndPositionSetting;
  32860     /**
  32861      * The **`lineAlign`** property of the VTTCue interface represents the alignment of this VTT cue.
  32862      *
  32863      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/lineAlign)
  32864      */
  32865     lineAlign: LineAlignSetting;
  32866     /**
  32867      * The **`position`** property of the VTTCue interface represents the indentation of the cue within the line.
  32868      *
  32869      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/position)
  32870      */
  32871     position: LineAndPositionSetting;
  32872     /**
  32873      * The **`positionAlign`** property of the VTTCue interface is used to determine what VTTCue.position is anchored to.
  32874      *
  32875      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/positionAlign)
  32876      */
  32877     positionAlign: PositionAlignSetting;
  32878     /**
  32879      * The **`region`** property of the VTTCue interface returns and sets the VTTRegion that this cue belongs to.
  32880      *
  32881      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/region)
  32882      */
  32883     region: VTTRegion | null;
  32884     /**
  32885      * The **`size`** property of the VTTCue interface represents the size of the cue as a percentage of the video size.
  32886      *
  32887      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/size)
  32888      */
  32889     size: number;
  32890     /**
  32891      * The **`snapToLines`** property of the VTTCue interface is a Boolean indicating if the VTTCue.line property is an integer number of lines, or a percentage of the video size.
  32892      *
  32893      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/snapToLines)
  32894      */
  32895     snapToLines: boolean;
  32896     /**
  32897      * The **`text`** property of the VTTCue interface represents the text contents of the cue.
  32898      *
  32899      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/text)
  32900      */
  32901     text: string;
  32902     /**
  32903      * The **`vertical`** property of the VTTCue interface is a string representing the cue's writing direction.
  32904      *
  32905      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/vertical)
  32906      */
  32907     vertical: DirectionSetting;
  32908     /**
  32909      * The **`getCueAsHTML()`** method of the VTTCue interface returns a DocumentFragment containing the cue content.
  32910      *
  32911      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/getCueAsHTML)
  32912      */
  32913     getCueAsHTML(): DocumentFragment;
  32914     addEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: VTTCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  32915     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  32916     removeEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: VTTCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  32917     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  32918 }
  32919 
  32920 declare var VTTCue: {
  32921     prototype: VTTCue;
  32922     new(startTime: number, endTime: number, text: string): VTTCue;
  32923 };
  32924 
  32925 /**
  32926  * The `VTTRegion` interface of the WebVTT API describes a portion of the video to render a VTTCue onto.
  32927  *
  32928  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion)
  32929  */
  32930 interface VTTRegion {
  32931     id: string;
  32932     lines: number;
  32933     regionAnchorX: number;
  32934     regionAnchorY: number;
  32935     scroll: ScrollSetting;
  32936     viewportAnchorX: number;
  32937     viewportAnchorY: number;
  32938     width: number;
  32939 }
  32940 
  32941 declare var VTTRegion: {
  32942     prototype: VTTRegion;
  32943     new(): VTTRegion;
  32944 };
  32945 
  32946 /**
  32947  * The **`ValidityState`** interface represents the _validity states_ that an element can be in, with respect to constraint validation.
  32948  *
  32949  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState)
  32950  */
  32951 interface ValidityState {
  32952     /**
  32953      * The read-only **`badInput`** property of the ValidityState interface indicates if the user has provided input that the browser is unable to convert.
  32954      *
  32955      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/badInput)
  32956      */
  32957     readonly badInput: boolean;
  32958     /**
  32959      * The read-only **`customError`** property of the `ValidityState` interface returns `true` if an element doesn't meet the validation required in the custom validity set by the element's HTMLInputElement.setCustomValidity method.
  32960      *
  32961      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/customError)
  32962      */
  32963     readonly customError: boolean;
  32964     /**
  32965      * The read-only **`patternMismatch`** property of the `ValidityState` interface indicates if the value of an input, after having been edited by the user, does not conform to the constraints set by the element's `pattern` attribute.
  32966      *
  32967      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/patternMismatch)
  32968      */
  32969     readonly patternMismatch: boolean;
  32970     /**
  32971      * The read-only **`rangeOverflow`** property of the `ValidityState` interface indicates if the value of an input, after having been edited by the user, does not conform to the constraints set by the element's `max` attribute.
  32972      *
  32973      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/rangeOverflow)
  32974      */
  32975     readonly rangeOverflow: boolean;
  32976     /**
  32977      * The read-only **`rangeUnderflow`** property of the `ValidityState` interface indicates if the value of an input, after having been edited by the user, does not conform to the constraints set by the element's `min` attribute.
  32978      *
  32979      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/rangeUnderflow)
  32980      */
  32981     readonly rangeUnderflow: boolean;
  32982     /**
  32983      * The read-only **`stepMismatch`** property of the `ValidityState` interface indicates if the value of an input, after having been edited by the user, does not conform to the constraints set by the element's `step` attribute.
  32984      *
  32985      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/stepMismatch)
  32986      */
  32987     readonly stepMismatch: boolean;
  32988     /**
  32989      * The read-only **`tooLong`** property of the `ValidityState` interface indicates if the value of an input or textarea, after having been edited by the user, exceeds the maximum code-unit length established by the element's `maxlength` attribute.
  32990      *
  32991      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/tooLong)
  32992      */
  32993     readonly tooLong: boolean;
  32994     /**
  32995      * The read-only **`tooShort`** property of the `ValidityState` interface indicates if the value of an input, button, select, output, fieldset or textarea, after having been edited by the user, is less than the minimum code-unit length established by the element's `minlength` attribute.
  32996      *
  32997      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/tooShort)
  32998      */
  32999     readonly tooShort: boolean;
  33000     /**
  33001      * The read-only **`typeMismatch`** property of the `ValidityState` interface indicates if the value of an input, after having been edited by the user, does not conform to the constraints set by the element's `type` attribute.
  33002      *
  33003      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/typeMismatch)
  33004      */
  33005     readonly typeMismatch: boolean;
  33006     /**
  33007      * The read-only **`valid`** property of the `ValidityState` interface indicates if the value of an input element meets all its validation constraints, and is therefore considered to be valid.
  33008      *
  33009      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/valid)
  33010      */
  33011     readonly valid: boolean;
  33012     /**
  33013      * The read-only **`valueMissing`** property of the `ValidityState` interface indicates if a `required` control, such as an input, select, or textarea, has an empty value.
  33014      *
  33015      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/valueMissing)
  33016      */
  33017     readonly valueMissing: boolean;
  33018 }
  33019 
  33020 declare var ValidityState: {
  33021     prototype: ValidityState;
  33022     new(): ValidityState;
  33023 };
  33024 
  33025 /**
  33026  * The **`VideoColorSpace`** interface of the WebCodecs API represents the color space of a video.
  33027  *
  33028  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace)
  33029  */
  33030 interface VideoColorSpace {
  33031     /**
  33032      * The **`fullRange`** read-only property of the VideoColorSpace interface returns `true` if full-range color values are used.
  33033      *
  33034      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/fullRange)
  33035      */
  33036     readonly fullRange: boolean | null;
  33037     /**
  33038      * The **`matrix`** read-only property of the VideoColorSpace interface returns the matrix coefficient of the video.
  33039      *
  33040      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/matrix)
  33041      */
  33042     readonly matrix: VideoMatrixCoefficients | null;
  33043     /**
  33044      * The **`primaries`** read-only property of the VideoColorSpace interface returns the color gamut of the video.
  33045      *
  33046      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/primaries)
  33047      */
  33048     readonly primaries: VideoColorPrimaries | null;
  33049     /**
  33050      * The **`transfer`** read-only property of the VideoColorSpace interface returns the opto-electronic transfer characteristics of the video.
  33051      *
  33052      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/transfer)
  33053      */
  33054     readonly transfer: VideoTransferCharacteristics | null;
  33055     /**
  33056      * The **`toJSON()`** method of the VideoColorSpace interface is a _serializer_ that returns a JSON representation of the `VideoColorSpace` object.
  33057      *
  33058      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/toJSON)
  33059      */
  33060     toJSON(): VideoColorSpaceInit;
  33061 }
  33062 
  33063 declare var VideoColorSpace: {
  33064     prototype: VideoColorSpace;
  33065     new(init?: VideoColorSpaceInit): VideoColorSpace;
  33066 };
  33067 
  33068 interface VideoDecoderEventMap {
  33069     "dequeue": Event;
  33070 }
  33071 
  33072 /**
  33073  * The **`VideoDecoder`** interface of the WebCodecs API decodes chunks of video.
  33074  * Available only in secure contexts.
  33075  *
  33076  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder)
  33077  */
  33078 interface VideoDecoder extends EventTarget {
  33079     /**
  33080      * The **`decodeQueueSize`** read-only property of the VideoDecoder interface returns the number of pending decode requests in the queue.
  33081      *
  33082      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/decodeQueueSize)
  33083      */
  33084     readonly decodeQueueSize: number;
  33085     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/dequeue_event) */
  33086     ondequeue: ((this: VideoDecoder, ev: Event) => any) | null;
  33087     /**
  33088      * The **`state`** property of the VideoDecoder interface returns the current state of the underlying codec.
  33089      *
  33090      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/state)
  33091      */
  33092     readonly state: CodecState;
  33093     /**
  33094      * The **`close()`** method of the VideoDecoder interface ends all pending work and releases system resources.
  33095      *
  33096      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/close)
  33097      */
  33098     close(): void;
  33099     /**
  33100      * The **`configure()`** method of the VideoDecoder interface enqueues a control message to configure the video decoder for decoding chunks.
  33101      *
  33102      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/configure)
  33103      */
  33104     configure(config: VideoDecoderConfig): void;
  33105     /**
  33106      * The **`decode()`** method of the VideoDecoder interface enqueues a control message to decode a given chunk of video.
  33107      *
  33108      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/decode)
  33109      */
  33110     decode(chunk: EncodedVideoChunk): void;
  33111     /**
  33112      * The **`flush()`** method of the VideoDecoder interface returns a Promise that resolves once all pending messages in the queue have been completed.
  33113      *
  33114      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/flush)
  33115      */
  33116     flush(): Promise<void>;
  33117     /**
  33118      * The **`reset()`** method of the VideoDecoder interface resets all states including configuration, control messages in the control message queue, and all pending callbacks.
  33119      *
  33120      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/reset)
  33121      */
  33122     reset(): void;
  33123     addEventListener<K extends keyof VideoDecoderEventMap>(type: K, listener: (this: VideoDecoder, ev: VideoDecoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  33124     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  33125     removeEventListener<K extends keyof VideoDecoderEventMap>(type: K, listener: (this: VideoDecoder, ev: VideoDecoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  33126     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  33127 }
  33128 
  33129 declare var VideoDecoder: {
  33130     prototype: VideoDecoder;
  33131     new(init: VideoDecoderInit): VideoDecoder;
  33132     /**
  33133      * The **`isConfigSupported()`** static method of the VideoDecoder interface checks if the given config is supported (that is, if VideoDecoder objects can be successfully configured with the given config).
  33134      *
  33135      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/isConfigSupported_static)
  33136      */
  33137     isConfigSupported(config: VideoDecoderConfig): Promise<VideoDecoderSupport>;
  33138 };
  33139 
  33140 interface VideoEncoderEventMap {
  33141     "dequeue": Event;
  33142 }
  33143 
  33144 /**
  33145  * The **`VideoEncoder`** interface of the WebCodecs API encodes VideoFrame objects into EncodedVideoChunks.
  33146  * Available only in secure contexts.
  33147  *
  33148  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder)
  33149  */
  33150 interface VideoEncoder extends EventTarget {
  33151     /**
  33152      * The **`encodeQueueSize`** read-only property of the VideoEncoder interface returns the number of pending encode requests in the queue.
  33153      *
  33154      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/encodeQueueSize)
  33155      */
  33156     readonly encodeQueueSize: number;
  33157     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/dequeue_event) */
  33158     ondequeue: ((this: VideoEncoder, ev: Event) => any) | null;
  33159     /**
  33160      * The **`state`** read-only property of the VideoEncoder interface returns the current state of the underlying codec.
  33161      *
  33162      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/state)
  33163      */
  33164     readonly state: CodecState;
  33165     /**
  33166      * The **`close()`** method of the VideoEncoder interface ends all pending work and releases system resources.
  33167      *
  33168      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/close)
  33169      */
  33170     close(): void;
  33171     /**
  33172      * The **`configure()`** method of the VideoEncoder interface changes the VideoEncoder.state of the encoder to 'configured' and asynchronously prepares the encoder to accept VideoEncoders for encoding with the specified parameters.
  33173      *
  33174      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/configure)
  33175      */
  33176     configure(config: VideoEncoderConfig): void;
  33177     /**
  33178      * The **`encode()`** method of the VideoEncoder interface asynchronously encodes a VideoFrame.
  33179      *
  33180      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/encode)
  33181      */
  33182     encode(frame: VideoFrame, options?: VideoEncoderEncodeOptions): void;
  33183     /**
  33184      * The **`flush()`** method of the VideoEncoder interface forces all pending encodes to complete.
  33185      *
  33186      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/flush)
  33187      */
  33188     flush(): Promise<void>;
  33189     /**
  33190      * The **`reset()`** method of the VideoEncoder interface synchronously cancels all pending encodes and callbacks, frees all underlying resources and sets the VideoEncoder.state to 'unconfigured'.
  33191      *
  33192      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/reset)
  33193      */
  33194     reset(): void;
  33195     addEventListener<K extends keyof VideoEncoderEventMap>(type: K, listener: (this: VideoEncoder, ev: VideoEncoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  33196     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  33197     removeEventListener<K extends keyof VideoEncoderEventMap>(type: K, listener: (this: VideoEncoder, ev: VideoEncoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  33198     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  33199 }
  33200 
  33201 declare var VideoEncoder: {
  33202     prototype: VideoEncoder;
  33203     new(init: VideoEncoderInit): VideoEncoder;
  33204     /**
  33205      * The **`isConfigSupported()`** static method of the VideoEncoder interface checks if VideoEncoder can be successfully configured with the given config.
  33206      *
  33207      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/isConfigSupported_static)
  33208      */
  33209     isConfigSupported(config: VideoEncoderConfig): Promise<VideoEncoderSupport>;
  33210 };
  33211 
  33212 /**
  33213  * The **`VideoFrame`** interface of the Web Codecs API represents a frame of a video.
  33214  *
  33215  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame)
  33216  */
  33217 interface VideoFrame {
  33218     /**
  33219      * The **`codedHeight`** property of the VideoFrame interface returns the height of the VideoFrame in pixels, potentially including non-visible padding, and prior to considering potential ratio adjustments.
  33220      *
  33221      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedHeight)
  33222      */
  33223     readonly codedHeight: number;
  33224     /**
  33225      * The **`codedRect`** property of the VideoFrame interface returns a DOMRectReadOnly with the width and height matching VideoFrame.codedWidth and VideoFrame.codedHeight.
  33226      *
  33227      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedRect)
  33228      */
  33229     readonly codedRect: DOMRectReadOnly | null;
  33230     /**
  33231      * The **`codedWidth`** property of the VideoFrame interface returns the width of the `VideoFrame` in pixels, potentially including non-visible padding, and prior to considering potential ratio adjustments.
  33232      *
  33233      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedWidth)
  33234      */
  33235     readonly codedWidth: number;
  33236     /**
  33237      * The **`colorSpace`** property of the VideoFrame interface returns a VideoColorSpace object representing the color space of the video.
  33238      *
  33239      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/colorSpace)
  33240      */
  33241     readonly colorSpace: VideoColorSpace;
  33242     /**
  33243      * The **`displayHeight`** property of the VideoFrame interface returns the height of the `VideoFrame` after applying aspect ratio adjustments.
  33244      *
  33245      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/displayHeight)
  33246      */
  33247     readonly displayHeight: number;
  33248     /**
  33249      * The **`displayWidth`** property of the VideoFrame interface returns the width of the `VideoFrame` after applying aspect ratio adjustments.
  33250      *
  33251      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/displayWidth)
  33252      */
  33253     readonly displayWidth: number;
  33254     /**
  33255      * The **`duration`** property of the VideoFrame interface returns an integer indicating the duration of the video in microseconds.
  33256      *
  33257      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/duration)
  33258      */
  33259     readonly duration: number | null;
  33260     /**
  33261      * The **`format`** property of the VideoFrame interface returns the pixel format of the `VideoFrame`.
  33262      *
  33263      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/format)
  33264      */
  33265     readonly format: VideoPixelFormat | null;
  33266     /**
  33267      * The **`timestamp`** property of the VideoFrame interface returns an integer indicating the timestamp of the video in microseconds.
  33268      *
  33269      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/timestamp)
  33270      */
  33271     readonly timestamp: number;
  33272     /**
  33273      * The **`visibleRect`** property of the VideoFrame interface returns a DOMRectReadOnly describing the visible rectangle of pixels for this `VideoFrame`.
  33274      *
  33275      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/visibleRect)
  33276      */
  33277     readonly visibleRect: DOMRectReadOnly | null;
  33278     /**
  33279      * The **`allocationSize()`** method of the VideoFrame interface returns the number of bytes required to hold the video as filtered by options passed into the method.
  33280      *
  33281      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/allocationSize)
  33282      */
  33283     allocationSize(options?: VideoFrameCopyToOptions): number;
  33284     /**
  33285      * The **`clone()`** method of the VideoFrame interface creates a new `VideoFrame` object referencing the same media resource as the original.
  33286      *
  33287      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/clone)
  33288      */
  33289     clone(): VideoFrame;
  33290     /**
  33291      * The **`close()`** method of the VideoFrame interface clears all states and releases the reference to the media resource.
  33292      *
  33293      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/close)
  33294      */
  33295     close(): void;
  33296     /**
  33297      * The **`copyTo()`** method of the VideoFrame interface copies the contents of the `VideoFrame` to an `ArrayBuffer`.
  33298      *
  33299      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/copyTo)
  33300      */
  33301     copyTo(destination: AllowSharedBufferSource, options?: VideoFrameCopyToOptions): Promise<PlaneLayout[]>;
  33302 }
  33303 
  33304 declare var VideoFrame: {
  33305     prototype: VideoFrame;
  33306     new(image: CanvasImageSource, init?: VideoFrameInit): VideoFrame;
  33307     new(data: AllowSharedBufferSource, init: VideoFrameBufferInit): VideoFrame;
  33308 };
  33309 
  33310 /**
  33311  * A **`VideoPlaybackQuality`** object is returned by the HTMLVideoElement.getVideoPlaybackQuality() method and contains metrics that can be used to determine the playback quality of a video.
  33312  *
  33313  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality)
  33314  */
  33315 interface VideoPlaybackQuality {
  33316     /**
  33317      * The VideoPlaybackQuality interface's read-only **`corruptedVideoFrames`** property the number of corrupted video frames that have been received since the video element was last loaded or reloaded.
  33318      * @deprecated
  33319      *
  33320      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality/corruptedVideoFrames)
  33321      */
  33322     readonly corruptedVideoFrames: number;
  33323     /**
  33324      * The read-only **`creationTime`** property on the the browsing context was created this quality sample was recorded.
  33325      *
  33326      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality/creationTime)
  33327      */
  33328     readonly creationTime: DOMHighResTimeStamp;
  33329     /**
  33330      * The read-only **`droppedVideoFrames`** property of the VideoPlaybackQuality interface returns the number of video frames which have been dropped rather than being displayed since the last time the media was loaded into the HTMLVideoElement.
  33331      *
  33332      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality/droppedVideoFrames)
  33333      */
  33334     readonly droppedVideoFrames: number;
  33335     /**
  33336      * The VideoPlaybackQuality interface's **`totalVideoFrames`** read-only property returns the total number of video frames that have been displayed or dropped since the media was loaded.
  33337      *
  33338      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality/totalVideoFrames)
  33339      */
  33340     readonly totalVideoFrames: number;
  33341 }
  33342 
  33343 declare var VideoPlaybackQuality: {
  33344     prototype: VideoPlaybackQuality;
  33345     new(): VideoPlaybackQuality;
  33346 };
  33347 
  33348 /**
  33349  * The **`ViewTransition`** interface of the View Transition API represents an active view transition, and provides functionality to react to the transition reaching different states (e.g., ready to run the animation, or animation finished) or skip the transition altogether.
  33350  *
  33351  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ViewTransition)
  33352  */
  33353 interface ViewTransition {
  33354     /**
  33355      * The **`finished`** read-only property of the `finished` will only reject in the case of a same-document (SPA) transition, if the callback passed to Document.startViewTransition() throws or returns a promise that rejects.
  33356      *
  33357      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ViewTransition/finished)
  33358      */
  33359     readonly finished: Promise<void>;
  33360     /**
  33361      * The **`ready`** read-only property of the `ready` will reject if the transition cannot begin.
  33362      *
  33363      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ViewTransition/ready)
  33364      */
  33365     readonly ready: Promise<void>;
  33366     types: ViewTransitionTypeSet;
  33367     /**
  33368      * The **`updateCallbackDone`** read-only property of the `updateCallbackDone` is useful when you don't care about the success/failure of a same-document (SPA) view transition animation, and just want to know if and when the DOM is updated.
  33369      *
  33370      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ViewTransition/updateCallbackDone)
  33371      */
  33372     readonly updateCallbackDone: Promise<void>;
  33373     /**
  33374      * The **`skipTransition()`** method of the ```js-nolint skipTransition() ``` None.
  33375      *
  33376      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ViewTransition/skipTransition)
  33377      */
  33378     skipTransition(): void;
  33379 }
  33380 
  33381 declare var ViewTransition: {
  33382     prototype: ViewTransition;
  33383     new(): ViewTransition;
  33384 };
  33385 
  33386 interface ViewTransitionTypeSet {
  33387     forEach(callbackfn: (value: string, key: string, parent: ViewTransitionTypeSet) => void, thisArg?: any): void;
  33388 }
  33389 
  33390 declare var ViewTransitionTypeSet: {
  33391     prototype: ViewTransitionTypeSet;
  33392     new(): ViewTransitionTypeSet;
  33393 };
  33394 
  33395 interface VisualViewportEventMap {
  33396     "resize": Event;
  33397     "scroll": Event;
  33398 }
  33399 
  33400 /**
  33401  * The **`VisualViewport`** interface of the Visual Viewport API represents the visual viewport for a given window.
  33402  *
  33403  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport)
  33404  */
  33405 interface VisualViewport extends EventTarget {
  33406     /**
  33407      * The **`height`** read-only property of the VisualViewport interface returns the height of the visual viewport, in CSS pixels, or `0` if current document is not fully active.
  33408      *
  33409      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/height)
  33410      */
  33411     readonly height: number;
  33412     /**
  33413      * The **`offsetLeft`** read-only property of the VisualViewport interface returns the offset of the left edge of the visual viewport from the left edge of the layout viewport in CSS pixels, or `0` if current document is not fully active.
  33414      *
  33415      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/offsetLeft)
  33416      */
  33417     readonly offsetLeft: number;
  33418     /**
  33419      * The **`offsetTop`** read-only property of the VisualViewport interface returns the offset of the top edge of the visual viewport from the top edge of the layout viewport in CSS pixels, or `0` if current document is not fully active.
  33420      *
  33421      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/offsetTop)
  33422      */
  33423     readonly offsetTop: number;
  33424     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/resize_event) */
  33425     onresize: ((this: VisualViewport, ev: Event) => any) | null;
  33426     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/scroll_event) */
  33427     onscroll: ((this: VisualViewport, ev: Event) => any) | null;
  33428     /**
  33429      * The **`pageLeft`** read-only property of the VisualViewport interface returns the x coordinate of the left edge of the visual viewport relative to the initial containing block origin, in CSS pixels, or `0` if current document is not fully active.
  33430      *
  33431      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/pageLeft)
  33432      */
  33433     readonly pageLeft: number;
  33434     /**
  33435      * The **`pageTop`** read-only property of the VisualViewport interface returns the y coordinate of the top edge of the visual viewport relative to the initial containing block origin, in CSS pixels, or `0` if current document is not fully active.
  33436      *
  33437      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/pageTop)
  33438      */
  33439     readonly pageTop: number;
  33440     /**
  33441      * The **`scale`** read-only property of the VisualViewport interface returns the pinch-zoom scaling factor applied to the visual viewport, or `0` if current document is not fully active, or `1` if there is no output device.
  33442      *
  33443      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/scale)
  33444      */
  33445     readonly scale: number;
  33446     /**
  33447      * The **`width`** read-only property of the VisualViewport interface returns the width of the visual viewport, in CSS pixels, or `0` if current document is not fully active.
  33448      *
  33449      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/width)
  33450      */
  33451     readonly width: number;
  33452     addEventListener<K extends keyof VisualViewportEventMap>(type: K, listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  33453     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  33454     removeEventListener<K extends keyof VisualViewportEventMap>(type: K, listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  33455     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  33456 }
  33457 
  33458 declare var VisualViewport: {
  33459     prototype: VisualViewport;
  33460     new(): VisualViewport;
  33461 };
  33462 
  33463 /**
  33464  * The **`WEBGL_color_buffer_float`** extension is part of the WebGL API and adds the ability to render to 32-bit floating-point color buffers.
  33465  *
  33466  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_color_buffer_float)
  33467  */
  33468 interface WEBGL_color_buffer_float {
  33469     readonly RGBA32F_EXT: 0x8814;
  33470     readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;
  33471     readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;
  33472 }
  33473 
  33474 /**
  33475  * The **`WEBGL_compressed_texture_astc`** extension is part of the WebGL API and exposes Adaptive Scalable Texture Compression (ASTC) compressed texture formats to WebGL.
  33476  *
  33477  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_astc)
  33478  */
  33479 interface WEBGL_compressed_texture_astc {
  33480     /**
  33481      * The **`WEBGL_compressed_texture_astc.getSupportedProfiles()`** method returns an array of strings containing the names of the ASTC profiles supported by the implementation.
  33482      *
  33483      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_astc/getSupportedProfiles)
  33484      */
  33485     getSupportedProfiles(): string[];
  33486     readonly COMPRESSED_RGBA_ASTC_4x4_KHR: 0x93B0;
  33487     readonly COMPRESSED_RGBA_ASTC_5x4_KHR: 0x93B1;
  33488     readonly COMPRESSED_RGBA_ASTC_5x5_KHR: 0x93B2;
  33489     readonly COMPRESSED_RGBA_ASTC_6x5_KHR: 0x93B3;
  33490     readonly COMPRESSED_RGBA_ASTC_6x6_KHR: 0x93B4;
  33491     readonly COMPRESSED_RGBA_ASTC_8x5_KHR: 0x93B5;
  33492     readonly COMPRESSED_RGBA_ASTC_8x6_KHR: 0x93B6;
  33493     readonly COMPRESSED_RGBA_ASTC_8x8_KHR: 0x93B7;
  33494     readonly COMPRESSED_RGBA_ASTC_10x5_KHR: 0x93B8;
  33495     readonly COMPRESSED_RGBA_ASTC_10x6_KHR: 0x93B9;
  33496     readonly COMPRESSED_RGBA_ASTC_10x8_KHR: 0x93BA;
  33497     readonly COMPRESSED_RGBA_ASTC_10x10_KHR: 0x93BB;
  33498     readonly COMPRESSED_RGBA_ASTC_12x10_KHR: 0x93BC;
  33499     readonly COMPRESSED_RGBA_ASTC_12x12_KHR: 0x93BD;
  33500     readonly COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: 0x93D0;
  33501     readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: 0x93D1;
  33502     readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: 0x93D2;
  33503     readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: 0x93D3;
  33504     readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: 0x93D4;
  33505     readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: 0x93D5;
  33506     readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: 0x93D6;
  33507     readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: 0x93D7;
  33508     readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: 0x93D8;
  33509     readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: 0x93D9;
  33510     readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: 0x93DA;
  33511     readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: 0x93DB;
  33512     readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: 0x93DC;
  33513     readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: 0x93DD;
  33514 }
  33515 
  33516 /**
  33517  * The **`WEBGL_compressed_texture_etc`** extension is part of the WebGL API and exposes 10 ETC/EAC compressed texture formats.
  33518  *
  33519  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_etc)
  33520  */
  33521 interface WEBGL_compressed_texture_etc {
  33522     readonly COMPRESSED_R11_EAC: 0x9270;
  33523     readonly COMPRESSED_SIGNED_R11_EAC: 0x9271;
  33524     readonly COMPRESSED_RG11_EAC: 0x9272;
  33525     readonly COMPRESSED_SIGNED_RG11_EAC: 0x9273;
  33526     readonly COMPRESSED_RGB8_ETC2: 0x9274;
  33527     readonly COMPRESSED_SRGB8_ETC2: 0x9275;
  33528     readonly COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9276;
  33529     readonly COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9277;
  33530     readonly COMPRESSED_RGBA8_ETC2_EAC: 0x9278;
  33531     readonly COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 0x9279;
  33532 }
  33533 
  33534 /**
  33535  * The **`WEBGL_compressed_texture_etc1`** extension is part of the WebGL API and exposes the ETC1 compressed texture format.
  33536  *
  33537  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_etc1)
  33538  */
  33539 interface WEBGL_compressed_texture_etc1 {
  33540     readonly COMPRESSED_RGB_ETC1_WEBGL: 0x8D64;
  33541 }
  33542 
  33543 /**
  33544  * The **`WEBGL_compressed_texture_pvrtc`** extension is part of the WebGL API and exposes four PVRTC compressed texture formats.
  33545  *
  33546  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_pvrtc)
  33547  */
  33548 interface WEBGL_compressed_texture_pvrtc {
  33549     readonly COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 0x8C00;
  33550     readonly COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 0x8C01;
  33551     readonly COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 0x8C02;
  33552     readonly COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 0x8C03;
  33553 }
  33554 
  33555 /**
  33556  * The **`WEBGL_compressed_texture_s3tc`** extension is part of the WebGL API and exposes four S3TC compressed texture formats.
  33557  *
  33558  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_s3tc)
  33559  */
  33560 interface WEBGL_compressed_texture_s3tc {
  33561     readonly COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83F0;
  33562     readonly COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83F1;
  33563     readonly COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83F2;
  33564     readonly COMPRESSED_RGBA_S3TC_DXT5_EXT: 0x83F3;
  33565 }
  33566 
  33567 /**
  33568  * The **`WEBGL_compressed_texture_s3tc_srgb`** extension is part of the WebGL API and exposes four S3TC compressed texture formats for the sRGB colorspace.
  33569  *
  33570  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_s3tc_srgb)
  33571  */
  33572 interface WEBGL_compressed_texture_s3tc_srgb {
  33573     readonly COMPRESSED_SRGB_S3TC_DXT1_EXT: 0x8C4C;
  33574     readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 0x8C4D;
  33575     readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 0x8C4E;
  33576     readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 0x8C4F;
  33577 }
  33578 
  33579 /**
  33580  * 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.
  33581  *
  33582  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_renderer_info)
  33583  */
  33584 interface WEBGL_debug_renderer_info {
  33585     readonly UNMASKED_VENDOR_WEBGL: 0x9245;
  33586     readonly UNMASKED_RENDERER_WEBGL: 0x9246;
  33587 }
  33588 
  33589 /**
  33590  * The **`WEBGL_debug_shaders`** extension is part of the WebGL API and exposes a method to debug shaders from privileged contexts.
  33591  *
  33592  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_shaders)
  33593  */
  33594 interface WEBGL_debug_shaders {
  33595     /**
  33596      * The **`WEBGL_debug_shaders.getTranslatedShaderSource()`** method is part of the WebGL API and allows you to debug a translated shader.
  33597      *
  33598      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_shaders/getTranslatedShaderSource)
  33599      */
  33600     getTranslatedShaderSource(shader: WebGLShader): string;
  33601 }
  33602 
  33603 /**
  33604  * The **`WEBGL_depth_texture`** extension is part of the WebGL API and defines 2D depth and depth-stencil textures.
  33605  *
  33606  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_depth_texture)
  33607  */
  33608 interface WEBGL_depth_texture {
  33609     readonly UNSIGNED_INT_24_8_WEBGL: 0x84FA;
  33610 }
  33611 
  33612 /**
  33613  * The **`WEBGL_draw_buffers`** extension is part of the WebGL API and enables a fragment shader to write to several textures, which is useful for deferred shading, for example.
  33614  *
  33615  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_draw_buffers)
  33616  */
  33617 interface WEBGL_draw_buffers {
  33618     /**
  33619      * The **`WEBGL_draw_buffers.drawBuffersWEBGL()`** method is part of the WebGL API and allows you to define the draw buffers to which all fragment colors are written.
  33620      *
  33621      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_draw_buffers/drawBuffersWEBGL)
  33622      */
  33623     drawBuffersWEBGL(buffers: GLenum[]): void;
  33624     readonly COLOR_ATTACHMENT0_WEBGL: 0x8CE0;
  33625     readonly COLOR_ATTACHMENT1_WEBGL: 0x8CE1;
  33626     readonly COLOR_ATTACHMENT2_WEBGL: 0x8CE2;
  33627     readonly COLOR_ATTACHMENT3_WEBGL: 0x8CE3;
  33628     readonly COLOR_ATTACHMENT4_WEBGL: 0x8CE4;
  33629     readonly COLOR_ATTACHMENT5_WEBGL: 0x8CE5;
  33630     readonly COLOR_ATTACHMENT6_WEBGL: 0x8CE6;
  33631     readonly COLOR_ATTACHMENT7_WEBGL: 0x8CE7;
  33632     readonly COLOR_ATTACHMENT8_WEBGL: 0x8CE8;
  33633     readonly COLOR_ATTACHMENT9_WEBGL: 0x8CE9;
  33634     readonly COLOR_ATTACHMENT10_WEBGL: 0x8CEA;
  33635     readonly COLOR_ATTACHMENT11_WEBGL: 0x8CEB;
  33636     readonly COLOR_ATTACHMENT12_WEBGL: 0x8CEC;
  33637     readonly COLOR_ATTACHMENT13_WEBGL: 0x8CED;
  33638     readonly COLOR_ATTACHMENT14_WEBGL: 0x8CEE;
  33639     readonly COLOR_ATTACHMENT15_WEBGL: 0x8CEF;
  33640     readonly DRAW_BUFFER0_WEBGL: 0x8825;
  33641     readonly DRAW_BUFFER1_WEBGL: 0x8826;
  33642     readonly DRAW_BUFFER2_WEBGL: 0x8827;
  33643     readonly DRAW_BUFFER3_WEBGL: 0x8828;
  33644     readonly DRAW_BUFFER4_WEBGL: 0x8829;
  33645     readonly DRAW_BUFFER5_WEBGL: 0x882A;
  33646     readonly DRAW_BUFFER6_WEBGL: 0x882B;
  33647     readonly DRAW_BUFFER7_WEBGL: 0x882C;
  33648     readonly DRAW_BUFFER8_WEBGL: 0x882D;
  33649     readonly DRAW_BUFFER9_WEBGL: 0x882E;
  33650     readonly DRAW_BUFFER10_WEBGL: 0x882F;
  33651     readonly DRAW_BUFFER11_WEBGL: 0x8830;
  33652     readonly DRAW_BUFFER12_WEBGL: 0x8831;
  33653     readonly DRAW_BUFFER13_WEBGL: 0x8832;
  33654     readonly DRAW_BUFFER14_WEBGL: 0x8833;
  33655     readonly DRAW_BUFFER15_WEBGL: 0x8834;
  33656     readonly MAX_COLOR_ATTACHMENTS_WEBGL: 0x8CDF;
  33657     readonly MAX_DRAW_BUFFERS_WEBGL: 0x8824;
  33658 }
  33659 
  33660 /**
  33661  * The **WEBGL_lose_context** extension is part of the WebGL API and exposes functions to simulate losing and restoring a WebGLRenderingContext.
  33662  *
  33663  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context)
  33664  */
  33665 interface WEBGL_lose_context {
  33666     /**
  33667      * The **WEBGL_lose_context.loseContext()** method is part of the WebGL API and allows you to simulate losing the context of a WebGLRenderingContext context.
  33668      *
  33669      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context/loseContext)
  33670      */
  33671     loseContext(): void;
  33672     /**
  33673      * The **WEBGL_lose_context.restoreContext()** method is part of the WebGL API and allows you to simulate restoring the context of a WebGLRenderingContext object.
  33674      *
  33675      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context/restoreContext)
  33676      */
  33677     restoreContext(): void;
  33678 }
  33679 
  33680 /**
  33681  * The **`WEBGL_multi_draw`** extension is part of the WebGL API and allows to render more than one primitive with a single function call.
  33682  *
  33683  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw)
  33684  */
  33685 interface WEBGL_multi_draw {
  33686     /**
  33687      * The **`WEBGL_multi_draw.multiDrawArraysInstancedWEBGL()`** method of the WebGL API renders multiple primitives from array data.
  33688      *
  33689      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysInstancedWEBGL)
  33690      */
  33691     multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array<ArrayBufferLike> | GLint[], firstsOffset: number, countsList: Int32Array<ArrayBufferLike> | GLsizei[], countsOffset: number, instanceCountsList: Int32Array<ArrayBufferLike> | GLsizei[], instanceCountsOffset: number, drawcount: GLsizei): void;
  33692     /**
  33693      * The **`WEBGL_multi_draw.multiDrawArraysWEBGL()`** method of the WebGL API renders multiple primitives from array data.
  33694      *
  33695      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawArraysWEBGL)
  33696      */
  33697     multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array<ArrayBufferLike> | GLint[], firstsOffset: number, countsList: Int32Array<ArrayBufferLike> | GLsizei[], countsOffset: number, drawcount: GLsizei): void;
  33698     /**
  33699      * The **`WEBGL_multi_draw.multiDrawElementsInstancedWEBGL()`** method of the WebGL API renders multiple primitives from array data.
  33700      *
  33701      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsInstancedWEBGL)
  33702      */
  33703     multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array<ArrayBufferLike> | GLsizei[], countsOffset: number, type: GLenum, offsetsList: Int32Array<ArrayBufferLike> | GLsizei[], offsetsOffset: number, instanceCountsList: Int32Array<ArrayBufferLike> | GLsizei[], instanceCountsOffset: number, drawcount: GLsizei): void;
  33704     /**
  33705      * The **`WEBGL_multi_draw.multiDrawElementsWEBGL()`** method of the WebGL API renders multiple primitives from array data.
  33706      *
  33707      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_multi_draw/multiDrawElementsWEBGL)
  33708      */
  33709     multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array<ArrayBufferLike> | GLsizei[], countsOffset: number, type: GLenum, offsetsList: Int32Array<ArrayBufferLike> | GLsizei[], offsetsOffset: number, drawcount: GLsizei): void;
  33710 }
  33711 
  33712 /**
  33713  * The **`WakeLock`** interface of the Screen Wake Lock API can be used to request a lock that prevents device screens from dimming or locking when an application needs to keep running.
  33714  * Available only in secure contexts.
  33715  *
  33716  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLock)
  33717  */
  33718 interface WakeLock {
  33719     /**
  33720      * The **`request()`** method of the WakeLock interface returns a Promise that fulfills with a WakeLockSentinel object if the system screen wake lock is granted.
  33721      *
  33722      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLock/request)
  33723      */
  33724     request(type?: WakeLockType): Promise<WakeLockSentinel>;
  33725 }
  33726 
  33727 declare var WakeLock: {
  33728     prototype: WakeLock;
  33729     new(): WakeLock;
  33730 };
  33731 
  33732 interface WakeLockSentinelEventMap {
  33733     "release": Event;
  33734 }
  33735 
  33736 /**
  33737  * The **`WakeLockSentinel`** interface of the Screen Wake Lock API can be used to monitor the status of the platform screen wake lock, and manually release the lock when needed.
  33738  * Available only in secure contexts.
  33739  *
  33740  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel)
  33741  */
  33742 interface WakeLockSentinel extends EventTarget {
  33743     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel/release_event) */
  33744     onrelease: ((this: WakeLockSentinel, ev: Event) => any) | null;
  33745     /**
  33746      * The **`released`** read-only property of the WakeLockSentinel interface returns a boolean that indicates whether a WakeLockSentinel has been released.
  33747      *
  33748      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel/released)
  33749      */
  33750     readonly released: boolean;
  33751     /**
  33752      * The **`type`** read-only property of the WakeLockSentinel interface returns a string representation of the currently acquired WakeLockSentinel type.
  33753      *
  33754      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel/type)
  33755      */
  33756     readonly type: WakeLockType;
  33757     /**
  33758      * The **`release()`** method of the WakeLockSentinel interface releases the WakeLockSentinel, returning a Promise that is resolved once the sentinel has been successfully released.
  33759      *
  33760      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel/release)
  33761      */
  33762     release(): Promise<void>;
  33763     addEventListener<K extends keyof WakeLockSentinelEventMap>(type: K, listener: (this: WakeLockSentinel, ev: WakeLockSentinelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  33764     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  33765     removeEventListener<K extends keyof WakeLockSentinelEventMap>(type: K, listener: (this: WakeLockSentinel, ev: WakeLockSentinelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  33766     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  33767 }
  33768 
  33769 declare var WakeLockSentinel: {
  33770     prototype: WakeLockSentinel;
  33771     new(): WakeLockSentinel;
  33772 };
  33773 
  33774 /**
  33775  * The **`WaveShaperNode`** interface represents a non-linear distorter.
  33776  *
  33777  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WaveShaperNode)
  33778  */
  33779 interface WaveShaperNode extends AudioNode {
  33780     /**
  33781      * The `curve` property of the WaveShaperNode interface is a Float32Array of numbers describing the distortion to apply.
  33782      *
  33783      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WaveShaperNode/curve)
  33784      */
  33785     curve: Float32Array<ArrayBuffer> | null;
  33786     /**
  33787      * The `oversample` property of the WaveShaperNode interface is an enumerated value indicating if oversampling must be used.
  33788      *
  33789      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WaveShaperNode/oversample)
  33790      */
  33791     oversample: OverSampleType;
  33792 }
  33793 
  33794 declare var WaveShaperNode: {
  33795     prototype: WaveShaperNode;
  33796     new(context: BaseAudioContext, options?: WaveShaperOptions): WaveShaperNode;
  33797 };
  33798 
  33799 /**
  33800  * The **WebGL2RenderingContext** interface provides the OpenGL ES 3.0 rendering context for the drawing surface of an HTML canvas element.
  33801  *
  33802  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext)
  33803  */
  33804 interface WebGL2RenderingContext extends WebGL2RenderingContextBase, WebGL2RenderingContextOverloads, WebGLRenderingContextBase {
  33805 }
  33806 
  33807 declare var WebGL2RenderingContext: {
  33808     prototype: WebGL2RenderingContext;
  33809     new(): WebGL2RenderingContext;
  33810     readonly READ_BUFFER: 0x0C02;
  33811     readonly UNPACK_ROW_LENGTH: 0x0CF2;
  33812     readonly UNPACK_SKIP_ROWS: 0x0CF3;
  33813     readonly UNPACK_SKIP_PIXELS: 0x0CF4;
  33814     readonly PACK_ROW_LENGTH: 0x0D02;
  33815     readonly PACK_SKIP_ROWS: 0x0D03;
  33816     readonly PACK_SKIP_PIXELS: 0x0D04;
  33817     readonly COLOR: 0x1800;
  33818     readonly DEPTH: 0x1801;
  33819     readonly STENCIL: 0x1802;
  33820     readonly RED: 0x1903;
  33821     readonly RGB8: 0x8051;
  33822     readonly RGB10_A2: 0x8059;
  33823     readonly TEXTURE_BINDING_3D: 0x806A;
  33824     readonly UNPACK_SKIP_IMAGES: 0x806D;
  33825     readonly UNPACK_IMAGE_HEIGHT: 0x806E;
  33826     readonly TEXTURE_3D: 0x806F;
  33827     readonly TEXTURE_WRAP_R: 0x8072;
  33828     readonly MAX_3D_TEXTURE_SIZE: 0x8073;
  33829     readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;
  33830     readonly MAX_ELEMENTS_VERTICES: 0x80E8;
  33831     readonly MAX_ELEMENTS_INDICES: 0x80E9;
  33832     readonly TEXTURE_MIN_LOD: 0x813A;
  33833     readonly TEXTURE_MAX_LOD: 0x813B;
  33834     readonly TEXTURE_BASE_LEVEL: 0x813C;
  33835     readonly TEXTURE_MAX_LEVEL: 0x813D;
  33836     readonly MIN: 0x8007;
  33837     readonly MAX: 0x8008;
  33838     readonly DEPTH_COMPONENT24: 0x81A6;
  33839     readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;
  33840     readonly TEXTURE_COMPARE_MODE: 0x884C;
  33841     readonly TEXTURE_COMPARE_FUNC: 0x884D;
  33842     readonly CURRENT_QUERY: 0x8865;
  33843     readonly QUERY_RESULT: 0x8866;
  33844     readonly QUERY_RESULT_AVAILABLE: 0x8867;
  33845     readonly STREAM_READ: 0x88E1;
  33846     readonly STREAM_COPY: 0x88E2;
  33847     readonly STATIC_READ: 0x88E5;
  33848     readonly STATIC_COPY: 0x88E6;
  33849     readonly DYNAMIC_READ: 0x88E9;
  33850     readonly DYNAMIC_COPY: 0x88EA;
  33851     readonly MAX_DRAW_BUFFERS: 0x8824;
  33852     readonly DRAW_BUFFER0: 0x8825;
  33853     readonly DRAW_BUFFER1: 0x8826;
  33854     readonly DRAW_BUFFER2: 0x8827;
  33855     readonly DRAW_BUFFER3: 0x8828;
  33856     readonly DRAW_BUFFER4: 0x8829;
  33857     readonly DRAW_BUFFER5: 0x882A;
  33858     readonly DRAW_BUFFER6: 0x882B;
  33859     readonly DRAW_BUFFER7: 0x882C;
  33860     readonly DRAW_BUFFER8: 0x882D;
  33861     readonly DRAW_BUFFER9: 0x882E;
  33862     readonly DRAW_BUFFER10: 0x882F;
  33863     readonly DRAW_BUFFER11: 0x8830;
  33864     readonly DRAW_BUFFER12: 0x8831;
  33865     readonly DRAW_BUFFER13: 0x8832;
  33866     readonly DRAW_BUFFER14: 0x8833;
  33867     readonly DRAW_BUFFER15: 0x8834;
  33868     readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;
  33869     readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;
  33870     readonly SAMPLER_3D: 0x8B5F;
  33871     readonly SAMPLER_2D_SHADOW: 0x8B62;
  33872     readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;
  33873     readonly PIXEL_PACK_BUFFER: 0x88EB;
  33874     readonly PIXEL_UNPACK_BUFFER: 0x88EC;
  33875     readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;
  33876     readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;
  33877     readonly FLOAT_MAT2x3: 0x8B65;
  33878     readonly FLOAT_MAT2x4: 0x8B66;
  33879     readonly FLOAT_MAT3x2: 0x8B67;
  33880     readonly FLOAT_MAT3x4: 0x8B68;
  33881     readonly FLOAT_MAT4x2: 0x8B69;
  33882     readonly FLOAT_MAT4x3: 0x8B6A;
  33883     readonly SRGB: 0x8C40;
  33884     readonly SRGB8: 0x8C41;
  33885     readonly SRGB8_ALPHA8: 0x8C43;
  33886     readonly COMPARE_REF_TO_TEXTURE: 0x884E;
  33887     readonly RGBA32F: 0x8814;
  33888     readonly RGB32F: 0x8815;
  33889     readonly RGBA16F: 0x881A;
  33890     readonly RGB16F: 0x881B;
  33891     readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;
  33892     readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;
  33893     readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;
  33894     readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;
  33895     readonly MAX_VARYING_COMPONENTS: 0x8B4B;
  33896     readonly TEXTURE_2D_ARRAY: 0x8C1A;
  33897     readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;
  33898     readonly R11F_G11F_B10F: 0x8C3A;
  33899     readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;
  33900     readonly RGB9_E5: 0x8C3D;
  33901     readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;
  33902     readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;
  33903     readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;
  33904     readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;
  33905     readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;
  33906     readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;
  33907     readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;
  33908     readonly RASTERIZER_DISCARD: 0x8C89;
  33909     readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;
  33910     readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;
  33911     readonly INTERLEAVED_ATTRIBS: 0x8C8C;
  33912     readonly SEPARATE_ATTRIBS: 0x8C8D;
  33913     readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;
  33914     readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;
  33915     readonly RGBA32UI: 0x8D70;
  33916     readonly RGB32UI: 0x8D71;
  33917     readonly RGBA16UI: 0x8D76;
  33918     readonly RGB16UI: 0x8D77;
  33919     readonly RGBA8UI: 0x8D7C;
  33920     readonly RGB8UI: 0x8D7D;
  33921     readonly RGBA32I: 0x8D82;
  33922     readonly RGB32I: 0x8D83;
  33923     readonly RGBA16I: 0x8D88;
  33924     readonly RGB16I: 0x8D89;
  33925     readonly RGBA8I: 0x8D8E;
  33926     readonly RGB8I: 0x8D8F;
  33927     readonly RED_INTEGER: 0x8D94;
  33928     readonly RGB_INTEGER: 0x8D98;
  33929     readonly RGBA_INTEGER: 0x8D99;
  33930     readonly SAMPLER_2D_ARRAY: 0x8DC1;
  33931     readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;
  33932     readonly SAMPLER_CUBE_SHADOW: 0x8DC5;
  33933     readonly UNSIGNED_INT_VEC2: 0x8DC6;
  33934     readonly UNSIGNED_INT_VEC3: 0x8DC7;
  33935     readonly UNSIGNED_INT_VEC4: 0x8DC8;
  33936     readonly INT_SAMPLER_2D: 0x8DCA;
  33937     readonly INT_SAMPLER_3D: 0x8DCB;
  33938     readonly INT_SAMPLER_CUBE: 0x8DCC;
  33939     readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;
  33940     readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;
  33941     readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;
  33942     readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;
  33943     readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;
  33944     readonly DEPTH_COMPONENT32F: 0x8CAC;
  33945     readonly DEPTH32F_STENCIL8: 0x8CAD;
  33946     readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;
  33947     readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;
  33948     readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;
  33949     readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;
  33950     readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;
  33951     readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;
  33952     readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;
  33953     readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;
  33954     readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;
  33955     readonly FRAMEBUFFER_DEFAULT: 0x8218;
  33956     readonly UNSIGNED_INT_24_8: 0x84FA;
  33957     readonly DEPTH24_STENCIL8: 0x88F0;
  33958     readonly UNSIGNED_NORMALIZED: 0x8C17;
  33959     readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6;
  33960     readonly READ_FRAMEBUFFER: 0x8CA8;
  33961     readonly DRAW_FRAMEBUFFER: 0x8CA9;
  33962     readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;
  33963     readonly RENDERBUFFER_SAMPLES: 0x8CAB;
  33964     readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;
  33965     readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;
  33966     readonly COLOR_ATTACHMENT1: 0x8CE1;
  33967     readonly COLOR_ATTACHMENT2: 0x8CE2;
  33968     readonly COLOR_ATTACHMENT3: 0x8CE3;
  33969     readonly COLOR_ATTACHMENT4: 0x8CE4;
  33970     readonly COLOR_ATTACHMENT5: 0x8CE5;
  33971     readonly COLOR_ATTACHMENT6: 0x8CE6;
  33972     readonly COLOR_ATTACHMENT7: 0x8CE7;
  33973     readonly COLOR_ATTACHMENT8: 0x8CE8;
  33974     readonly COLOR_ATTACHMENT9: 0x8CE9;
  33975     readonly COLOR_ATTACHMENT10: 0x8CEA;
  33976     readonly COLOR_ATTACHMENT11: 0x8CEB;
  33977     readonly COLOR_ATTACHMENT12: 0x8CEC;
  33978     readonly COLOR_ATTACHMENT13: 0x8CED;
  33979     readonly COLOR_ATTACHMENT14: 0x8CEE;
  33980     readonly COLOR_ATTACHMENT15: 0x8CEF;
  33981     readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;
  33982     readonly MAX_SAMPLES: 0x8D57;
  33983     readonly HALF_FLOAT: 0x140B;
  33984     readonly RG: 0x8227;
  33985     readonly RG_INTEGER: 0x8228;
  33986     readonly R8: 0x8229;
  33987     readonly RG8: 0x822B;
  33988     readonly R16F: 0x822D;
  33989     readonly R32F: 0x822E;
  33990     readonly RG16F: 0x822F;
  33991     readonly RG32F: 0x8230;
  33992     readonly R8I: 0x8231;
  33993     readonly R8UI: 0x8232;
  33994     readonly R16I: 0x8233;
  33995     readonly R16UI: 0x8234;
  33996     readonly R32I: 0x8235;
  33997     readonly R32UI: 0x8236;
  33998     readonly RG8I: 0x8237;
  33999     readonly RG8UI: 0x8238;
  34000     readonly RG16I: 0x8239;
  34001     readonly RG16UI: 0x823A;
  34002     readonly RG32I: 0x823B;
  34003     readonly RG32UI: 0x823C;
  34004     readonly VERTEX_ARRAY_BINDING: 0x85B5;
  34005     readonly R8_SNORM: 0x8F94;
  34006     readonly RG8_SNORM: 0x8F95;
  34007     readonly RGB8_SNORM: 0x8F96;
  34008     readonly RGBA8_SNORM: 0x8F97;
  34009     readonly SIGNED_NORMALIZED: 0x8F9C;
  34010     readonly COPY_READ_BUFFER: 0x8F36;
  34011     readonly COPY_WRITE_BUFFER: 0x8F37;
  34012     readonly COPY_READ_BUFFER_BINDING: 0x8F36;
  34013     readonly COPY_WRITE_BUFFER_BINDING: 0x8F37;
  34014     readonly UNIFORM_BUFFER: 0x8A11;
  34015     readonly UNIFORM_BUFFER_BINDING: 0x8A28;
  34016     readonly UNIFORM_BUFFER_START: 0x8A29;
  34017     readonly UNIFORM_BUFFER_SIZE: 0x8A2A;
  34018     readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;
  34019     readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;
  34020     readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;
  34021     readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;
  34022     readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;
  34023     readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;
  34024     readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;
  34025     readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;
  34026     readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;
  34027     readonly UNIFORM_TYPE: 0x8A37;
  34028     readonly UNIFORM_SIZE: 0x8A38;
  34029     readonly UNIFORM_BLOCK_INDEX: 0x8A3A;
  34030     readonly UNIFORM_OFFSET: 0x8A3B;
  34031     readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;
  34032     readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;
  34033     readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;
  34034     readonly UNIFORM_BLOCK_BINDING: 0x8A3F;
  34035     readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;
  34036     readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;
  34037     readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;
  34038     readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;
  34039     readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;
  34040     readonly INVALID_INDEX: 0xFFFFFFFF;
  34041     readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;
  34042     readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;
  34043     readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;
  34044     readonly OBJECT_TYPE: 0x9112;
  34045     readonly SYNC_CONDITION: 0x9113;
  34046     readonly SYNC_STATUS: 0x9114;
  34047     readonly SYNC_FLAGS: 0x9115;
  34048     readonly SYNC_FENCE: 0x9116;
  34049     readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;
  34050     readonly UNSIGNALED: 0x9118;
  34051     readonly SIGNALED: 0x9119;
  34052     readonly ALREADY_SIGNALED: 0x911A;
  34053     readonly TIMEOUT_EXPIRED: 0x911B;
  34054     readonly CONDITION_SATISFIED: 0x911C;
  34055     readonly WAIT_FAILED: 0x911D;
  34056     readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;
  34057     readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;
  34058     readonly ANY_SAMPLES_PASSED: 0x8C2F;
  34059     readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;
  34060     readonly SAMPLER_BINDING: 0x8919;
  34061     readonly RGB10_A2UI: 0x906F;
  34062     readonly INT_2_10_10_10_REV: 0x8D9F;
  34063     readonly TRANSFORM_FEEDBACK: 0x8E22;
  34064     readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;
  34065     readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;
  34066     readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;
  34067     readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;
  34068     readonly MAX_ELEMENT_INDEX: 0x8D6B;
  34069     readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;
  34070     readonly TIMEOUT_IGNORED: -1;
  34071     readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;
  34072     readonly DEPTH_BUFFER_BIT: 0x00000100;
  34073     readonly STENCIL_BUFFER_BIT: 0x00000400;
  34074     readonly COLOR_BUFFER_BIT: 0x00004000;
  34075     readonly POINTS: 0x0000;
  34076     readonly LINES: 0x0001;
  34077     readonly LINE_LOOP: 0x0002;
  34078     readonly LINE_STRIP: 0x0003;
  34079     readonly TRIANGLES: 0x0004;
  34080     readonly TRIANGLE_STRIP: 0x0005;
  34081     readonly TRIANGLE_FAN: 0x0006;
  34082     readonly ZERO: 0;
  34083     readonly ONE: 1;
  34084     readonly SRC_COLOR: 0x0300;
  34085     readonly ONE_MINUS_SRC_COLOR: 0x0301;
  34086     readonly SRC_ALPHA: 0x0302;
  34087     readonly ONE_MINUS_SRC_ALPHA: 0x0303;
  34088     readonly DST_ALPHA: 0x0304;
  34089     readonly ONE_MINUS_DST_ALPHA: 0x0305;
  34090     readonly DST_COLOR: 0x0306;
  34091     readonly ONE_MINUS_DST_COLOR: 0x0307;
  34092     readonly SRC_ALPHA_SATURATE: 0x0308;
  34093     readonly FUNC_ADD: 0x8006;
  34094     readonly BLEND_EQUATION: 0x8009;
  34095     readonly BLEND_EQUATION_RGB: 0x8009;
  34096     readonly BLEND_EQUATION_ALPHA: 0x883D;
  34097     readonly FUNC_SUBTRACT: 0x800A;
  34098     readonly FUNC_REVERSE_SUBTRACT: 0x800B;
  34099     readonly BLEND_DST_RGB: 0x80C8;
  34100     readonly BLEND_SRC_RGB: 0x80C9;
  34101     readonly BLEND_DST_ALPHA: 0x80CA;
  34102     readonly BLEND_SRC_ALPHA: 0x80CB;
  34103     readonly CONSTANT_COLOR: 0x8001;
  34104     readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;
  34105     readonly CONSTANT_ALPHA: 0x8003;
  34106     readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;
  34107     readonly BLEND_COLOR: 0x8005;
  34108     readonly ARRAY_BUFFER: 0x8892;
  34109     readonly ELEMENT_ARRAY_BUFFER: 0x8893;
  34110     readonly ARRAY_BUFFER_BINDING: 0x8894;
  34111     readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;
  34112     readonly STREAM_DRAW: 0x88E0;
  34113     readonly STATIC_DRAW: 0x88E4;
  34114     readonly DYNAMIC_DRAW: 0x88E8;
  34115     readonly BUFFER_SIZE: 0x8764;
  34116     readonly BUFFER_USAGE: 0x8765;
  34117     readonly CURRENT_VERTEX_ATTRIB: 0x8626;
  34118     readonly FRONT: 0x0404;
  34119     readonly BACK: 0x0405;
  34120     readonly FRONT_AND_BACK: 0x0408;
  34121     readonly CULL_FACE: 0x0B44;
  34122     readonly BLEND: 0x0BE2;
  34123     readonly DITHER: 0x0BD0;
  34124     readonly STENCIL_TEST: 0x0B90;
  34125     readonly DEPTH_TEST: 0x0B71;
  34126     readonly SCISSOR_TEST: 0x0C11;
  34127     readonly POLYGON_OFFSET_FILL: 0x8037;
  34128     readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;
  34129     readonly SAMPLE_COVERAGE: 0x80A0;
  34130     readonly NO_ERROR: 0;
  34131     readonly INVALID_ENUM: 0x0500;
  34132     readonly INVALID_VALUE: 0x0501;
  34133     readonly INVALID_OPERATION: 0x0502;
  34134     readonly OUT_OF_MEMORY: 0x0505;
  34135     readonly CW: 0x0900;
  34136     readonly CCW: 0x0901;
  34137     readonly LINE_WIDTH: 0x0B21;
  34138     readonly ALIASED_POINT_SIZE_RANGE: 0x846D;
  34139     readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;
  34140     readonly CULL_FACE_MODE: 0x0B45;
  34141     readonly FRONT_FACE: 0x0B46;
  34142     readonly DEPTH_RANGE: 0x0B70;
  34143     readonly DEPTH_WRITEMASK: 0x0B72;
  34144     readonly DEPTH_CLEAR_VALUE: 0x0B73;
  34145     readonly DEPTH_FUNC: 0x0B74;
  34146     readonly STENCIL_CLEAR_VALUE: 0x0B91;
  34147     readonly STENCIL_FUNC: 0x0B92;
  34148     readonly STENCIL_FAIL: 0x0B94;
  34149     readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;
  34150     readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;
  34151     readonly STENCIL_REF: 0x0B97;
  34152     readonly STENCIL_VALUE_MASK: 0x0B93;
  34153     readonly STENCIL_WRITEMASK: 0x0B98;
  34154     readonly STENCIL_BACK_FUNC: 0x8800;
  34155     readonly STENCIL_BACK_FAIL: 0x8801;
  34156     readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
  34157     readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
  34158     readonly STENCIL_BACK_REF: 0x8CA3;
  34159     readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;
  34160     readonly STENCIL_BACK_WRITEMASK: 0x8CA5;
  34161     readonly VIEWPORT: 0x0BA2;
  34162     readonly SCISSOR_BOX: 0x0C10;
  34163     readonly COLOR_CLEAR_VALUE: 0x0C22;
  34164     readonly COLOR_WRITEMASK: 0x0C23;
  34165     readonly UNPACK_ALIGNMENT: 0x0CF5;
  34166     readonly PACK_ALIGNMENT: 0x0D05;
  34167     readonly MAX_TEXTURE_SIZE: 0x0D33;
  34168     readonly MAX_VIEWPORT_DIMS: 0x0D3A;
  34169     readonly SUBPIXEL_BITS: 0x0D50;
  34170     readonly RED_BITS: 0x0D52;
  34171     readonly GREEN_BITS: 0x0D53;
  34172     readonly BLUE_BITS: 0x0D54;
  34173     readonly ALPHA_BITS: 0x0D55;
  34174     readonly DEPTH_BITS: 0x0D56;
  34175     readonly STENCIL_BITS: 0x0D57;
  34176     readonly POLYGON_OFFSET_UNITS: 0x2A00;
  34177     readonly POLYGON_OFFSET_FACTOR: 0x8038;
  34178     readonly TEXTURE_BINDING_2D: 0x8069;
  34179     readonly SAMPLE_BUFFERS: 0x80A8;
  34180     readonly SAMPLES: 0x80A9;
  34181     readonly SAMPLE_COVERAGE_VALUE: 0x80AA;
  34182     readonly SAMPLE_COVERAGE_INVERT: 0x80AB;
  34183     readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;
  34184     readonly DONT_CARE: 0x1100;
  34185     readonly FASTEST: 0x1101;
  34186     readonly NICEST: 0x1102;
  34187     readonly GENERATE_MIPMAP_HINT: 0x8192;
  34188     readonly BYTE: 0x1400;
  34189     readonly UNSIGNED_BYTE: 0x1401;
  34190     readonly SHORT: 0x1402;
  34191     readonly UNSIGNED_SHORT: 0x1403;
  34192     readonly INT: 0x1404;
  34193     readonly UNSIGNED_INT: 0x1405;
  34194     readonly FLOAT: 0x1406;
  34195     readonly DEPTH_COMPONENT: 0x1902;
  34196     readonly ALPHA: 0x1906;
  34197     readonly RGB: 0x1907;
  34198     readonly RGBA: 0x1908;
  34199     readonly LUMINANCE: 0x1909;
  34200     readonly LUMINANCE_ALPHA: 0x190A;
  34201     readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;
  34202     readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;
  34203     readonly UNSIGNED_SHORT_5_6_5: 0x8363;
  34204     readonly FRAGMENT_SHADER: 0x8B30;
  34205     readonly VERTEX_SHADER: 0x8B31;
  34206     readonly MAX_VERTEX_ATTRIBS: 0x8869;
  34207     readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;
  34208     readonly MAX_VARYING_VECTORS: 0x8DFC;
  34209     readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;
  34210     readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;
  34211     readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;
  34212     readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;
  34213     readonly SHADER_TYPE: 0x8B4F;
  34214     readonly DELETE_STATUS: 0x8B80;
  34215     readonly LINK_STATUS: 0x8B82;
  34216     readonly VALIDATE_STATUS: 0x8B83;
  34217     readonly ATTACHED_SHADERS: 0x8B85;
  34218     readonly ACTIVE_UNIFORMS: 0x8B86;
  34219     readonly ACTIVE_ATTRIBUTES: 0x8B89;
  34220     readonly SHADING_LANGUAGE_VERSION: 0x8B8C;
  34221     readonly CURRENT_PROGRAM: 0x8B8D;
  34222     readonly NEVER: 0x0200;
  34223     readonly LESS: 0x0201;
  34224     readonly EQUAL: 0x0202;
  34225     readonly LEQUAL: 0x0203;
  34226     readonly GREATER: 0x0204;
  34227     readonly NOTEQUAL: 0x0205;
  34228     readonly GEQUAL: 0x0206;
  34229     readonly ALWAYS: 0x0207;
  34230     readonly KEEP: 0x1E00;
  34231     readonly REPLACE: 0x1E01;
  34232     readonly INCR: 0x1E02;
  34233     readonly DECR: 0x1E03;
  34234     readonly INVERT: 0x150A;
  34235     readonly INCR_WRAP: 0x8507;
  34236     readonly DECR_WRAP: 0x8508;
  34237     readonly VENDOR: 0x1F00;
  34238     readonly RENDERER: 0x1F01;
  34239     readonly VERSION: 0x1F02;
  34240     readonly NEAREST: 0x2600;
  34241     readonly LINEAR: 0x2601;
  34242     readonly NEAREST_MIPMAP_NEAREST: 0x2700;
  34243     readonly LINEAR_MIPMAP_NEAREST: 0x2701;
  34244     readonly NEAREST_MIPMAP_LINEAR: 0x2702;
  34245     readonly LINEAR_MIPMAP_LINEAR: 0x2703;
  34246     readonly TEXTURE_MAG_FILTER: 0x2800;
  34247     readonly TEXTURE_MIN_FILTER: 0x2801;
  34248     readonly TEXTURE_WRAP_S: 0x2802;
  34249     readonly TEXTURE_WRAP_T: 0x2803;
  34250     readonly TEXTURE_2D: 0x0DE1;
  34251     readonly TEXTURE: 0x1702;
  34252     readonly TEXTURE_CUBE_MAP: 0x8513;
  34253     readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;
  34254     readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
  34255     readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
  34256     readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
  34257     readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
  34258     readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
  34259     readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;
  34260     readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;
  34261     readonly TEXTURE0: 0x84C0;
  34262     readonly TEXTURE1: 0x84C1;
  34263     readonly TEXTURE2: 0x84C2;
  34264     readonly TEXTURE3: 0x84C3;
  34265     readonly TEXTURE4: 0x84C4;
  34266     readonly TEXTURE5: 0x84C5;
  34267     readonly TEXTURE6: 0x84C6;
  34268     readonly TEXTURE7: 0x84C7;
  34269     readonly TEXTURE8: 0x84C8;
  34270     readonly TEXTURE9: 0x84C9;
  34271     readonly TEXTURE10: 0x84CA;
  34272     readonly TEXTURE11: 0x84CB;
  34273     readonly TEXTURE12: 0x84CC;
  34274     readonly TEXTURE13: 0x84CD;
  34275     readonly TEXTURE14: 0x84CE;
  34276     readonly TEXTURE15: 0x84CF;
  34277     readonly TEXTURE16: 0x84D0;
  34278     readonly TEXTURE17: 0x84D1;
  34279     readonly TEXTURE18: 0x84D2;
  34280     readonly TEXTURE19: 0x84D3;
  34281     readonly TEXTURE20: 0x84D4;
  34282     readonly TEXTURE21: 0x84D5;
  34283     readonly TEXTURE22: 0x84D6;
  34284     readonly TEXTURE23: 0x84D7;
  34285     readonly TEXTURE24: 0x84D8;
  34286     readonly TEXTURE25: 0x84D9;
  34287     readonly TEXTURE26: 0x84DA;
  34288     readonly TEXTURE27: 0x84DB;
  34289     readonly TEXTURE28: 0x84DC;
  34290     readonly TEXTURE29: 0x84DD;
  34291     readonly TEXTURE30: 0x84DE;
  34292     readonly TEXTURE31: 0x84DF;
  34293     readonly ACTIVE_TEXTURE: 0x84E0;
  34294     readonly REPEAT: 0x2901;
  34295     readonly CLAMP_TO_EDGE: 0x812F;
  34296     readonly MIRRORED_REPEAT: 0x8370;
  34297     readonly FLOAT_VEC2: 0x8B50;
  34298     readonly FLOAT_VEC3: 0x8B51;
  34299     readonly FLOAT_VEC4: 0x8B52;
  34300     readonly INT_VEC2: 0x8B53;
  34301     readonly INT_VEC3: 0x8B54;
  34302     readonly INT_VEC4: 0x8B55;
  34303     readonly BOOL: 0x8B56;
  34304     readonly BOOL_VEC2: 0x8B57;
  34305     readonly BOOL_VEC3: 0x8B58;
  34306     readonly BOOL_VEC4: 0x8B59;
  34307     readonly FLOAT_MAT2: 0x8B5A;
  34308     readonly FLOAT_MAT3: 0x8B5B;
  34309     readonly FLOAT_MAT4: 0x8B5C;
  34310     readonly SAMPLER_2D: 0x8B5E;
  34311     readonly SAMPLER_CUBE: 0x8B60;
  34312     readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
  34313     readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
  34314     readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
  34315     readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
  34316     readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;
  34317     readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
  34318     readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;
  34319     readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;
  34320     readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;
  34321     readonly COMPILE_STATUS: 0x8B81;
  34322     readonly LOW_FLOAT: 0x8DF0;
  34323     readonly MEDIUM_FLOAT: 0x8DF1;
  34324     readonly HIGH_FLOAT: 0x8DF2;
  34325     readonly LOW_INT: 0x8DF3;
  34326     readonly MEDIUM_INT: 0x8DF4;
  34327     readonly HIGH_INT: 0x8DF5;
  34328     readonly FRAMEBUFFER: 0x8D40;
  34329     readonly RENDERBUFFER: 0x8D41;
  34330     readonly RGBA4: 0x8056;
  34331     readonly RGB5_A1: 0x8057;
  34332     readonly RGBA8: 0x8058;
  34333     readonly RGB565: 0x8D62;
  34334     readonly DEPTH_COMPONENT16: 0x81A5;
  34335     readonly STENCIL_INDEX8: 0x8D48;
  34336     readonly DEPTH_STENCIL: 0x84F9;
  34337     readonly RENDERBUFFER_WIDTH: 0x8D42;
  34338     readonly RENDERBUFFER_HEIGHT: 0x8D43;
  34339     readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;
  34340     readonly RENDERBUFFER_RED_SIZE: 0x8D50;
  34341     readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;
  34342     readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;
  34343     readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;
  34344     readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;
  34345     readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;
  34346     readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;
  34347     readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;
  34348     readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;
  34349     readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;
  34350     readonly COLOR_ATTACHMENT0: 0x8CE0;
  34351     readonly DEPTH_ATTACHMENT: 0x8D00;
  34352     readonly STENCIL_ATTACHMENT: 0x8D20;
  34353     readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;
  34354     readonly NONE: 0;
  34355     readonly FRAMEBUFFER_COMPLETE: 0x8CD5;
  34356     readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;
  34357     readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;
  34358     readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;
  34359     readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;
  34360     readonly FRAMEBUFFER_BINDING: 0x8CA6;
  34361     readonly RENDERBUFFER_BINDING: 0x8CA7;
  34362     readonly MAX_RENDERBUFFER_SIZE: 0x84E8;
  34363     readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;
  34364     readonly UNPACK_FLIP_Y_WEBGL: 0x9240;
  34365     readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
  34366     readonly CONTEXT_LOST_WEBGL: 0x9242;
  34367     readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
  34368     readonly BROWSER_DEFAULT_WEBGL: 0x9244;
  34369 };
  34370 
  34371 interface WebGL2RenderingContextBase {
  34372     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/beginQuery) */
  34373     beginQuery(target: GLenum, query: WebGLQuery): void;
  34374     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/beginTransformFeedback) */
  34375     beginTransformFeedback(primitiveMode: GLenum): void;
  34376     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindBufferBase) */
  34377     bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer | null): void;
  34378     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindBufferRange) */
  34379     bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer | null, offset: GLintptr, size: GLsizeiptr): void;
  34380     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindSampler) */
  34381     bindSampler(unit: GLuint, sampler: WebGLSampler | null): void;
  34382     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindTransformFeedback) */
  34383     bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback | null): void;
  34384     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindVertexArray) */
  34385     bindVertexArray(array: WebGLVertexArrayObject | null): void;
  34386     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/blitFramebuffer) */
  34387     blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum): void;
  34388     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */
  34389     clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint): void;
  34390     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */
  34391     clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset?: number): void;
  34392     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */
  34393     clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset?: number): void;
  34394     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */
  34395     clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset?: number): void;
  34396     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clientWaitSync) */
  34397     clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64): GLenum;
  34398     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/compressedTexImage3D) */
  34399     compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;
  34400     compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, srcData: ArrayBufferView<ArrayBufferLike>, srcOffset?: number, srcLengthOverride?: GLuint): void;
  34401     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/compressedTexSubImage3D) */
  34402     compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;
  34403     compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, srcData: ArrayBufferView<ArrayBufferLike>, srcOffset?: number, srcLengthOverride?: GLuint): void;
  34404     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/copyBufferSubData) */
  34405     copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr): void;
  34406     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/copyTexSubImage3D) */
  34407     copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
  34408     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createQuery) */
  34409     createQuery(): WebGLQuery;
  34410     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createSampler) */
  34411     createSampler(): WebGLSampler;
  34412     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createTransformFeedback) */
  34413     createTransformFeedback(): WebGLTransformFeedback;
  34414     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createVertexArray) */
  34415     createVertexArray(): WebGLVertexArrayObject;
  34416     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteQuery) */
  34417     deleteQuery(query: WebGLQuery | null): void;
  34418     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteSampler) */
  34419     deleteSampler(sampler: WebGLSampler | null): void;
  34420     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteSync) */
  34421     deleteSync(sync: WebGLSync | null): void;
  34422     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteTransformFeedback) */
  34423     deleteTransformFeedback(tf: WebGLTransformFeedback | null): void;
  34424     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteVertexArray) */
  34425     deleteVertexArray(vertexArray: WebGLVertexArrayObject | null): void;
  34426     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawArraysInstanced) */
  34427     drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei): void;
  34428     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawBuffers) */
  34429     drawBuffers(buffers: GLenum[]): void;
  34430     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawElementsInstanced) */
  34431     drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei): void;
  34432     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawRangeElements) */
  34433     drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr): void;
  34434     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/endQuery) */
  34435     endQuery(target: GLenum): void;
  34436     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/endTransformFeedback) */
  34437     endTransformFeedback(): void;
  34438     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/fenceSync) */
  34439     fenceSync(condition: GLenum, flags: GLbitfield): WebGLSync | null;
  34440     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/framebufferTextureLayer) */
  34441     framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, layer: GLint): void;
  34442     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniformBlockName) */
  34443     getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint): string | null;
  34444     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniformBlockParameter) */
  34445     getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum): any;
  34446     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniforms) */
  34447     getActiveUniforms(program: WebGLProgram, uniformIndices: GLuint[], pname: GLenum): any;
  34448     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getBufferSubData) */
  34449     getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView<ArrayBufferLike>, dstOffset?: number, length?: GLuint): void;
  34450     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getFragDataLocation) */
  34451     getFragDataLocation(program: WebGLProgram, name: string): GLint;
  34452     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getIndexedParameter) */
  34453     getIndexedParameter(target: GLenum, index: GLuint): any;
  34454     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getInternalformatParameter) */
  34455     getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum): any;
  34456     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getQuery) */
  34457     getQuery(target: GLenum, pname: GLenum): WebGLQuery | null;
  34458     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getQueryParameter) */
  34459     getQueryParameter(query: WebGLQuery, pname: GLenum): any;
  34460     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getSamplerParameter) */
  34461     getSamplerParameter(sampler: WebGLSampler, pname: GLenum): any;
  34462     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getSyncParameter) */
  34463     getSyncParameter(sync: WebGLSync, pname: GLenum): any;
  34464     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getTransformFeedbackVarying) */
  34465     getTransformFeedbackVarying(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;
  34466     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getUniformBlockIndex) */
  34467     getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): GLuint;
  34468     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getUniformIndices) */
  34469     getUniformIndices(program: WebGLProgram, uniformNames: string[]): GLuint[] | null;
  34470     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateFramebuffer) */
  34471     invalidateFramebuffer(target: GLenum, attachments: GLenum[]): void;
  34472     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateSubFramebuffer) */
  34473     invalidateSubFramebuffer(target: GLenum, attachments: GLenum[], x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
  34474     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isQuery) */
  34475     isQuery(query: WebGLQuery | null): GLboolean;
  34476     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isSampler) */
  34477     isSampler(sampler: WebGLSampler | null): GLboolean;
  34478     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isSync) */
  34479     isSync(sync: WebGLSync | null): GLboolean;
  34480     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isTransformFeedback) */
  34481     isTransformFeedback(tf: WebGLTransformFeedback | null): GLboolean;
  34482     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isVertexArray) */
  34483     isVertexArray(vertexArray: WebGLVertexArrayObject | null): GLboolean;
  34484     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/pauseTransformFeedback) */
  34485     pauseTransformFeedback(): void;
  34486     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/readBuffer) */
  34487     readBuffer(src: GLenum): void;
  34488     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/renderbufferStorageMultisample) */
  34489     renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;
  34490     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/resumeTransformFeedback) */
  34491     resumeTransformFeedback(): void;
  34492     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/samplerParameter) */
  34493     samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat): void;
  34494     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/samplerParameter) */
  34495     samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint): void;
  34496     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texImage3D) */
  34497     texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
  34498     texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
  34499     texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView<ArrayBufferLike> | null): void;
  34500     texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView<ArrayBufferLike>, srcOffset: number): void;
  34501     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texStorage2D) */
  34502     texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;
  34503     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texStorage3D) */
  34504     texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei): void;
  34505     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texSubImage3D) */
  34506     texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
  34507     texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;
  34508     texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView<ArrayBufferLike> | null, srcOffset?: number): void;
  34509     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/transformFeedbackVaryings) */
  34510     transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: GLenum): void;
  34511     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
  34512     uniform1ui(location: WebGLUniformLocation | null, v0: GLuint): void;
  34513     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
  34514     uniform1uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;
  34515     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
  34516     uniform2ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint): void;
  34517     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
  34518     uniform2uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;
  34519     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
  34520     uniform3ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint): void;
  34521     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
  34522     uniform3uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;
  34523     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
  34524     uniform4ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint): void;
  34525     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
  34526     uniform4uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: number, srcLength?: GLuint): void;
  34527     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformBlockBinding) */
  34528     uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint): void;
  34529     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */
  34530     uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;
  34531     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */
  34532     uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;
  34533     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */
  34534     uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;
  34535     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */
  34536     uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;
  34537     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */
  34538     uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;
  34539     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */
  34540     uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;
  34541     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribDivisor) */
  34542     vertexAttribDivisor(index: GLuint, divisor: GLuint): void;
  34543     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */
  34544     vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint): void;
  34545     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */
  34546     vertexAttribI4iv(index: GLuint, values: Int32List): void;
  34547     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */
  34548     vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint): void;
  34549     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */
  34550     vertexAttribI4uiv(index: GLuint, values: Uint32List): void;
  34551     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribIPointer) */
  34552     vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr): void;
  34553     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/waitSync) */
  34554     waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64): void;
  34555     readonly READ_BUFFER: 0x0C02;
  34556     readonly UNPACK_ROW_LENGTH: 0x0CF2;
  34557     readonly UNPACK_SKIP_ROWS: 0x0CF3;
  34558     readonly UNPACK_SKIP_PIXELS: 0x0CF4;
  34559     readonly PACK_ROW_LENGTH: 0x0D02;
  34560     readonly PACK_SKIP_ROWS: 0x0D03;
  34561     readonly PACK_SKIP_PIXELS: 0x0D04;
  34562     readonly COLOR: 0x1800;
  34563     readonly DEPTH: 0x1801;
  34564     readonly STENCIL: 0x1802;
  34565     readonly RED: 0x1903;
  34566     readonly RGB8: 0x8051;
  34567     readonly RGB10_A2: 0x8059;
  34568     readonly TEXTURE_BINDING_3D: 0x806A;
  34569     readonly UNPACK_SKIP_IMAGES: 0x806D;
  34570     readonly UNPACK_IMAGE_HEIGHT: 0x806E;
  34571     readonly TEXTURE_3D: 0x806F;
  34572     readonly TEXTURE_WRAP_R: 0x8072;
  34573     readonly MAX_3D_TEXTURE_SIZE: 0x8073;
  34574     readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;
  34575     readonly MAX_ELEMENTS_VERTICES: 0x80E8;
  34576     readonly MAX_ELEMENTS_INDICES: 0x80E9;
  34577     readonly TEXTURE_MIN_LOD: 0x813A;
  34578     readonly TEXTURE_MAX_LOD: 0x813B;
  34579     readonly TEXTURE_BASE_LEVEL: 0x813C;
  34580     readonly TEXTURE_MAX_LEVEL: 0x813D;
  34581     readonly MIN: 0x8007;
  34582     readonly MAX: 0x8008;
  34583     readonly DEPTH_COMPONENT24: 0x81A6;
  34584     readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;
  34585     readonly TEXTURE_COMPARE_MODE: 0x884C;
  34586     readonly TEXTURE_COMPARE_FUNC: 0x884D;
  34587     readonly CURRENT_QUERY: 0x8865;
  34588     readonly QUERY_RESULT: 0x8866;
  34589     readonly QUERY_RESULT_AVAILABLE: 0x8867;
  34590     readonly STREAM_READ: 0x88E1;
  34591     readonly STREAM_COPY: 0x88E2;
  34592     readonly STATIC_READ: 0x88E5;
  34593     readonly STATIC_COPY: 0x88E6;
  34594     readonly DYNAMIC_READ: 0x88E9;
  34595     readonly DYNAMIC_COPY: 0x88EA;
  34596     readonly MAX_DRAW_BUFFERS: 0x8824;
  34597     readonly DRAW_BUFFER0: 0x8825;
  34598     readonly DRAW_BUFFER1: 0x8826;
  34599     readonly DRAW_BUFFER2: 0x8827;
  34600     readonly DRAW_BUFFER3: 0x8828;
  34601     readonly DRAW_BUFFER4: 0x8829;
  34602     readonly DRAW_BUFFER5: 0x882A;
  34603     readonly DRAW_BUFFER6: 0x882B;
  34604     readonly DRAW_BUFFER7: 0x882C;
  34605     readonly DRAW_BUFFER8: 0x882D;
  34606     readonly DRAW_BUFFER9: 0x882E;
  34607     readonly DRAW_BUFFER10: 0x882F;
  34608     readonly DRAW_BUFFER11: 0x8830;
  34609     readonly DRAW_BUFFER12: 0x8831;
  34610     readonly DRAW_BUFFER13: 0x8832;
  34611     readonly DRAW_BUFFER14: 0x8833;
  34612     readonly DRAW_BUFFER15: 0x8834;
  34613     readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;
  34614     readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;
  34615     readonly SAMPLER_3D: 0x8B5F;
  34616     readonly SAMPLER_2D_SHADOW: 0x8B62;
  34617     readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;
  34618     readonly PIXEL_PACK_BUFFER: 0x88EB;
  34619     readonly PIXEL_UNPACK_BUFFER: 0x88EC;
  34620     readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;
  34621     readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;
  34622     readonly FLOAT_MAT2x3: 0x8B65;
  34623     readonly FLOAT_MAT2x4: 0x8B66;
  34624     readonly FLOAT_MAT3x2: 0x8B67;
  34625     readonly FLOAT_MAT3x4: 0x8B68;
  34626     readonly FLOAT_MAT4x2: 0x8B69;
  34627     readonly FLOAT_MAT4x3: 0x8B6A;
  34628     readonly SRGB: 0x8C40;
  34629     readonly SRGB8: 0x8C41;
  34630     readonly SRGB8_ALPHA8: 0x8C43;
  34631     readonly COMPARE_REF_TO_TEXTURE: 0x884E;
  34632     readonly RGBA32F: 0x8814;
  34633     readonly RGB32F: 0x8815;
  34634     readonly RGBA16F: 0x881A;
  34635     readonly RGB16F: 0x881B;
  34636     readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;
  34637     readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;
  34638     readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;
  34639     readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;
  34640     readonly MAX_VARYING_COMPONENTS: 0x8B4B;
  34641     readonly TEXTURE_2D_ARRAY: 0x8C1A;
  34642     readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;
  34643     readonly R11F_G11F_B10F: 0x8C3A;
  34644     readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;
  34645     readonly RGB9_E5: 0x8C3D;
  34646     readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;
  34647     readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;
  34648     readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;
  34649     readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;
  34650     readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;
  34651     readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;
  34652     readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;
  34653     readonly RASTERIZER_DISCARD: 0x8C89;
  34654     readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;
  34655     readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;
  34656     readonly INTERLEAVED_ATTRIBS: 0x8C8C;
  34657     readonly SEPARATE_ATTRIBS: 0x8C8D;
  34658     readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;
  34659     readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;
  34660     readonly RGBA32UI: 0x8D70;
  34661     readonly RGB32UI: 0x8D71;
  34662     readonly RGBA16UI: 0x8D76;
  34663     readonly RGB16UI: 0x8D77;
  34664     readonly RGBA8UI: 0x8D7C;
  34665     readonly RGB8UI: 0x8D7D;
  34666     readonly RGBA32I: 0x8D82;
  34667     readonly RGB32I: 0x8D83;
  34668     readonly RGBA16I: 0x8D88;
  34669     readonly RGB16I: 0x8D89;
  34670     readonly RGBA8I: 0x8D8E;
  34671     readonly RGB8I: 0x8D8F;
  34672     readonly RED_INTEGER: 0x8D94;
  34673     readonly RGB_INTEGER: 0x8D98;
  34674     readonly RGBA_INTEGER: 0x8D99;
  34675     readonly SAMPLER_2D_ARRAY: 0x8DC1;
  34676     readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;
  34677     readonly SAMPLER_CUBE_SHADOW: 0x8DC5;
  34678     readonly UNSIGNED_INT_VEC2: 0x8DC6;
  34679     readonly UNSIGNED_INT_VEC3: 0x8DC7;
  34680     readonly UNSIGNED_INT_VEC4: 0x8DC8;
  34681     readonly INT_SAMPLER_2D: 0x8DCA;
  34682     readonly INT_SAMPLER_3D: 0x8DCB;
  34683     readonly INT_SAMPLER_CUBE: 0x8DCC;
  34684     readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;
  34685     readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;
  34686     readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;
  34687     readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;
  34688     readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;
  34689     readonly DEPTH_COMPONENT32F: 0x8CAC;
  34690     readonly DEPTH32F_STENCIL8: 0x8CAD;
  34691     readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;
  34692     readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;
  34693     readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;
  34694     readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;
  34695     readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;
  34696     readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;
  34697     readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;
  34698     readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;
  34699     readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;
  34700     readonly FRAMEBUFFER_DEFAULT: 0x8218;
  34701     readonly UNSIGNED_INT_24_8: 0x84FA;
  34702     readonly DEPTH24_STENCIL8: 0x88F0;
  34703     readonly UNSIGNED_NORMALIZED: 0x8C17;
  34704     readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6;
  34705     readonly READ_FRAMEBUFFER: 0x8CA8;
  34706     readonly DRAW_FRAMEBUFFER: 0x8CA9;
  34707     readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;
  34708     readonly RENDERBUFFER_SAMPLES: 0x8CAB;
  34709     readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;
  34710     readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;
  34711     readonly COLOR_ATTACHMENT1: 0x8CE1;
  34712     readonly COLOR_ATTACHMENT2: 0x8CE2;
  34713     readonly COLOR_ATTACHMENT3: 0x8CE3;
  34714     readonly COLOR_ATTACHMENT4: 0x8CE4;
  34715     readonly COLOR_ATTACHMENT5: 0x8CE5;
  34716     readonly COLOR_ATTACHMENT6: 0x8CE6;
  34717     readonly COLOR_ATTACHMENT7: 0x8CE7;
  34718     readonly COLOR_ATTACHMENT8: 0x8CE8;
  34719     readonly COLOR_ATTACHMENT9: 0x8CE9;
  34720     readonly COLOR_ATTACHMENT10: 0x8CEA;
  34721     readonly COLOR_ATTACHMENT11: 0x8CEB;
  34722     readonly COLOR_ATTACHMENT12: 0x8CEC;
  34723     readonly COLOR_ATTACHMENT13: 0x8CED;
  34724     readonly COLOR_ATTACHMENT14: 0x8CEE;
  34725     readonly COLOR_ATTACHMENT15: 0x8CEF;
  34726     readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;
  34727     readonly MAX_SAMPLES: 0x8D57;
  34728     readonly HALF_FLOAT: 0x140B;
  34729     readonly RG: 0x8227;
  34730     readonly RG_INTEGER: 0x8228;
  34731     readonly R8: 0x8229;
  34732     readonly RG8: 0x822B;
  34733     readonly R16F: 0x822D;
  34734     readonly R32F: 0x822E;
  34735     readonly RG16F: 0x822F;
  34736     readonly RG32F: 0x8230;
  34737     readonly R8I: 0x8231;
  34738     readonly R8UI: 0x8232;
  34739     readonly R16I: 0x8233;
  34740     readonly R16UI: 0x8234;
  34741     readonly R32I: 0x8235;
  34742     readonly R32UI: 0x8236;
  34743     readonly RG8I: 0x8237;
  34744     readonly RG8UI: 0x8238;
  34745     readonly RG16I: 0x8239;
  34746     readonly RG16UI: 0x823A;
  34747     readonly RG32I: 0x823B;
  34748     readonly RG32UI: 0x823C;
  34749     readonly VERTEX_ARRAY_BINDING: 0x85B5;
  34750     readonly R8_SNORM: 0x8F94;
  34751     readonly RG8_SNORM: 0x8F95;
  34752     readonly RGB8_SNORM: 0x8F96;
  34753     readonly RGBA8_SNORM: 0x8F97;
  34754     readonly SIGNED_NORMALIZED: 0x8F9C;
  34755     readonly COPY_READ_BUFFER: 0x8F36;
  34756     readonly COPY_WRITE_BUFFER: 0x8F37;
  34757     readonly COPY_READ_BUFFER_BINDING: 0x8F36;
  34758     readonly COPY_WRITE_BUFFER_BINDING: 0x8F37;
  34759     readonly UNIFORM_BUFFER: 0x8A11;
  34760     readonly UNIFORM_BUFFER_BINDING: 0x8A28;
  34761     readonly UNIFORM_BUFFER_START: 0x8A29;
  34762     readonly UNIFORM_BUFFER_SIZE: 0x8A2A;
  34763     readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;
  34764     readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;
  34765     readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;
  34766     readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;
  34767     readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;
  34768     readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;
  34769     readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;
  34770     readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;
  34771     readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;
  34772     readonly UNIFORM_TYPE: 0x8A37;
  34773     readonly UNIFORM_SIZE: 0x8A38;
  34774     readonly UNIFORM_BLOCK_INDEX: 0x8A3A;
  34775     readonly UNIFORM_OFFSET: 0x8A3B;
  34776     readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;
  34777     readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;
  34778     readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;
  34779     readonly UNIFORM_BLOCK_BINDING: 0x8A3F;
  34780     readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;
  34781     readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;
  34782     readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;
  34783     readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;
  34784     readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;
  34785     readonly INVALID_INDEX: 0xFFFFFFFF;
  34786     readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;
  34787     readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;
  34788     readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;
  34789     readonly OBJECT_TYPE: 0x9112;
  34790     readonly SYNC_CONDITION: 0x9113;
  34791     readonly SYNC_STATUS: 0x9114;
  34792     readonly SYNC_FLAGS: 0x9115;
  34793     readonly SYNC_FENCE: 0x9116;
  34794     readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;
  34795     readonly UNSIGNALED: 0x9118;
  34796     readonly SIGNALED: 0x9119;
  34797     readonly ALREADY_SIGNALED: 0x911A;
  34798     readonly TIMEOUT_EXPIRED: 0x911B;
  34799     readonly CONDITION_SATISFIED: 0x911C;
  34800     readonly WAIT_FAILED: 0x911D;
  34801     readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;
  34802     readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;
  34803     readonly ANY_SAMPLES_PASSED: 0x8C2F;
  34804     readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;
  34805     readonly SAMPLER_BINDING: 0x8919;
  34806     readonly RGB10_A2UI: 0x906F;
  34807     readonly INT_2_10_10_10_REV: 0x8D9F;
  34808     readonly TRANSFORM_FEEDBACK: 0x8E22;
  34809     readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;
  34810     readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;
  34811     readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;
  34812     readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;
  34813     readonly MAX_ELEMENT_INDEX: 0x8D6B;
  34814     readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;
  34815     readonly TIMEOUT_IGNORED: -1;
  34816     readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;
  34817 }
  34818 
  34819 interface WebGL2RenderingContextOverloads {
  34820     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bufferData) */
  34821     bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;
  34822     bufferData(target: GLenum, srcData: AllowSharedBufferSource | null, usage: GLenum): void;
  34823     bufferData(target: GLenum, srcData: ArrayBufferView<ArrayBufferLike>, usage: GLenum, srcOffset: number, length?: GLuint): void;
  34824     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bufferSubData) */
  34825     bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: AllowSharedBufferSource): void;
  34826     bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView<ArrayBufferLike>, srcOffset: number, length?: GLuint): void;
  34827     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexImage2D) */
  34828     compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;
  34829     compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView<ArrayBufferLike>, srcOffset?: number, srcLengthOverride?: GLuint): void;
  34830     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexSubImage2D) */
  34831     compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;
  34832     compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, srcData: ArrayBufferView<ArrayBufferLike>, srcOffset?: number, srcLengthOverride?: GLuint): void;
  34833     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/readPixels) */
  34834     readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView<ArrayBufferLike> | null): void;
  34835     readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr): void;
  34836     readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView<ArrayBufferLike>, dstOffset: number): void;
  34837     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texImage2D) */
  34838     texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView<ArrayBufferLike> | null): void;
  34839     texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
  34840     texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
  34841     texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
  34842     texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView<ArrayBufferLike>, srcOffset: number): void;
  34843     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texSubImage2D) */
  34844     texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView<ArrayBufferLike> | null): void;
  34845     texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
  34846     texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
  34847     texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource): void;
  34848     texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView<ArrayBufferLike>, srcOffset: number): void;
  34849     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  34850     uniform1fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;
  34851     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  34852     uniform1iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;
  34853     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  34854     uniform2fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;
  34855     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  34856     uniform2iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;
  34857     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  34858     uniform3fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;
  34859     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  34860     uniform3iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;
  34861     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  34862     uniform4fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;
  34863     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  34864     uniform4iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: number, srcLength?: GLuint): void;
  34865     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */
  34866     uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;
  34867     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */
  34868     uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;
  34869     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */
  34870     uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: number, srcLength?: GLuint): void;
  34871 }
  34872 
  34873 /**
  34874  * The **WebGLActiveInfo** interface is part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getActiveAttrib() and WebGLRenderingContext.getActiveUniform() methods.
  34875  *
  34876  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo)
  34877  */
  34878 interface WebGLActiveInfo {
  34879     /**
  34880      * The read-only **`WebGLActiveInfo.name`** property represents the name of the requested data returned by calling the WebGLRenderingContext.getActiveAttrib() or WebGLRenderingContext.getActiveUniform() methods.
  34881      *
  34882      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/name)
  34883      */
  34884     readonly name: string;
  34885     /**
  34886      * The read-only **`WebGLActiveInfo.size`** property is a Number representing the size of the requested data returned by calling the WebGLRenderingContext.getActiveAttrib() or WebGLRenderingContext.getActiveUniform() methods.
  34887      *
  34888      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/size)
  34889      */
  34890     readonly size: GLint;
  34891     /**
  34892      * The read-only **`WebGLActiveInfo.type`** property represents the type of the requested data returned by calling the WebGLRenderingContext.getActiveAttrib() or WebGLRenderingContext.getActiveUniform() methods.
  34893      *
  34894      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/type)
  34895      */
  34896     readonly type: GLenum;
  34897 }
  34898 
  34899 declare var WebGLActiveInfo: {
  34900     prototype: WebGLActiveInfo;
  34901     new(): WebGLActiveInfo;
  34902 };
  34903 
  34904 /**
  34905  * The **WebGLBuffer** interface is part of the WebGL API and represents an opaque buffer object storing data such as vertices or colors.
  34906  *
  34907  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLBuffer)
  34908  */
  34909 interface WebGLBuffer {
  34910 }
  34911 
  34912 declare var WebGLBuffer: {
  34913     prototype: WebGLBuffer;
  34914     new(): WebGLBuffer;
  34915 };
  34916 
  34917 /**
  34918  * The **WebGLContextEvent** 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.
  34919  *
  34920  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLContextEvent)
  34921  */
  34922 interface WebGLContextEvent extends Event {
  34923     /**
  34924      * The read-only **`WebGLContextEvent.statusMessage`** property contains additional event status information, or is an empty string if no additional information is available.
  34925      *
  34926      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLContextEvent/statusMessage)
  34927      */
  34928     readonly statusMessage: string;
  34929 }
  34930 
  34931 declare var WebGLContextEvent: {
  34932     prototype: WebGLContextEvent;
  34933     new(type: string, eventInit?: WebGLContextEventInit): WebGLContextEvent;
  34934 };
  34935 
  34936 /**
  34937  * The **WebGLFramebuffer** interface is part of the WebGL API and represents a collection of buffers that serve as a rendering destination.
  34938  *
  34939  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLFramebuffer)
  34940  */
  34941 interface WebGLFramebuffer {
  34942 }
  34943 
  34944 declare var WebGLFramebuffer: {
  34945     prototype: WebGLFramebuffer;
  34946     new(): WebGLFramebuffer;
  34947 };
  34948 
  34949 /**
  34950  * 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).
  34951  *
  34952  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLProgram)
  34953  */
  34954 interface WebGLProgram {
  34955 }
  34956 
  34957 declare var WebGLProgram: {
  34958     prototype: WebGLProgram;
  34959     new(): WebGLProgram;
  34960 };
  34961 
  34962 /**
  34963  * The **`WebGLQuery`** interface is part of the WebGL 2 API and provides ways to asynchronously query for information.
  34964  *
  34965  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLQuery)
  34966  */
  34967 interface WebGLQuery {
  34968 }
  34969 
  34970 declare var WebGLQuery: {
  34971     prototype: WebGLQuery;
  34972     new(): WebGLQuery;
  34973 };
  34974 
  34975 /**
  34976  * The **WebGLRenderbuffer** interface is part of the WebGL API and represents a buffer that can contain an image, or that can be a source or target of a rendering operation.
  34977  *
  34978  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderbuffer)
  34979  */
  34980 interface WebGLRenderbuffer {
  34981 }
  34982 
  34983 declare var WebGLRenderbuffer: {
  34984     prototype: WebGLRenderbuffer;
  34985     new(): WebGLRenderbuffer;
  34986 };
  34987 
  34988 /**
  34989  * The **`WebGLRenderingContext`** interface provides an interface to the OpenGL ES 2.0 graphics rendering context for the drawing surface of an HTML canvas element.
  34990  *
  34991  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext)
  34992  */
  34993 interface WebGLRenderingContext extends WebGLRenderingContextBase, WebGLRenderingContextOverloads {
  34994 }
  34995 
  34996 declare var WebGLRenderingContext: {
  34997     prototype: WebGLRenderingContext;
  34998     new(): WebGLRenderingContext;
  34999     readonly DEPTH_BUFFER_BIT: 0x00000100;
  35000     readonly STENCIL_BUFFER_BIT: 0x00000400;
  35001     readonly COLOR_BUFFER_BIT: 0x00004000;
  35002     readonly POINTS: 0x0000;
  35003     readonly LINES: 0x0001;
  35004     readonly LINE_LOOP: 0x0002;
  35005     readonly LINE_STRIP: 0x0003;
  35006     readonly TRIANGLES: 0x0004;
  35007     readonly TRIANGLE_STRIP: 0x0005;
  35008     readonly TRIANGLE_FAN: 0x0006;
  35009     readonly ZERO: 0;
  35010     readonly ONE: 1;
  35011     readonly SRC_COLOR: 0x0300;
  35012     readonly ONE_MINUS_SRC_COLOR: 0x0301;
  35013     readonly SRC_ALPHA: 0x0302;
  35014     readonly ONE_MINUS_SRC_ALPHA: 0x0303;
  35015     readonly DST_ALPHA: 0x0304;
  35016     readonly ONE_MINUS_DST_ALPHA: 0x0305;
  35017     readonly DST_COLOR: 0x0306;
  35018     readonly ONE_MINUS_DST_COLOR: 0x0307;
  35019     readonly SRC_ALPHA_SATURATE: 0x0308;
  35020     readonly FUNC_ADD: 0x8006;
  35021     readonly BLEND_EQUATION: 0x8009;
  35022     readonly BLEND_EQUATION_RGB: 0x8009;
  35023     readonly BLEND_EQUATION_ALPHA: 0x883D;
  35024     readonly FUNC_SUBTRACT: 0x800A;
  35025     readonly FUNC_REVERSE_SUBTRACT: 0x800B;
  35026     readonly BLEND_DST_RGB: 0x80C8;
  35027     readonly BLEND_SRC_RGB: 0x80C9;
  35028     readonly BLEND_DST_ALPHA: 0x80CA;
  35029     readonly BLEND_SRC_ALPHA: 0x80CB;
  35030     readonly CONSTANT_COLOR: 0x8001;
  35031     readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;
  35032     readonly CONSTANT_ALPHA: 0x8003;
  35033     readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;
  35034     readonly BLEND_COLOR: 0x8005;
  35035     readonly ARRAY_BUFFER: 0x8892;
  35036     readonly ELEMENT_ARRAY_BUFFER: 0x8893;
  35037     readonly ARRAY_BUFFER_BINDING: 0x8894;
  35038     readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;
  35039     readonly STREAM_DRAW: 0x88E0;
  35040     readonly STATIC_DRAW: 0x88E4;
  35041     readonly DYNAMIC_DRAW: 0x88E8;
  35042     readonly BUFFER_SIZE: 0x8764;
  35043     readonly BUFFER_USAGE: 0x8765;
  35044     readonly CURRENT_VERTEX_ATTRIB: 0x8626;
  35045     readonly FRONT: 0x0404;
  35046     readonly BACK: 0x0405;
  35047     readonly FRONT_AND_BACK: 0x0408;
  35048     readonly CULL_FACE: 0x0B44;
  35049     readonly BLEND: 0x0BE2;
  35050     readonly DITHER: 0x0BD0;
  35051     readonly STENCIL_TEST: 0x0B90;
  35052     readonly DEPTH_TEST: 0x0B71;
  35053     readonly SCISSOR_TEST: 0x0C11;
  35054     readonly POLYGON_OFFSET_FILL: 0x8037;
  35055     readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;
  35056     readonly SAMPLE_COVERAGE: 0x80A0;
  35057     readonly NO_ERROR: 0;
  35058     readonly INVALID_ENUM: 0x0500;
  35059     readonly INVALID_VALUE: 0x0501;
  35060     readonly INVALID_OPERATION: 0x0502;
  35061     readonly OUT_OF_MEMORY: 0x0505;
  35062     readonly CW: 0x0900;
  35063     readonly CCW: 0x0901;
  35064     readonly LINE_WIDTH: 0x0B21;
  35065     readonly ALIASED_POINT_SIZE_RANGE: 0x846D;
  35066     readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;
  35067     readonly CULL_FACE_MODE: 0x0B45;
  35068     readonly FRONT_FACE: 0x0B46;
  35069     readonly DEPTH_RANGE: 0x0B70;
  35070     readonly DEPTH_WRITEMASK: 0x0B72;
  35071     readonly DEPTH_CLEAR_VALUE: 0x0B73;
  35072     readonly DEPTH_FUNC: 0x0B74;
  35073     readonly STENCIL_CLEAR_VALUE: 0x0B91;
  35074     readonly STENCIL_FUNC: 0x0B92;
  35075     readonly STENCIL_FAIL: 0x0B94;
  35076     readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;
  35077     readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;
  35078     readonly STENCIL_REF: 0x0B97;
  35079     readonly STENCIL_VALUE_MASK: 0x0B93;
  35080     readonly STENCIL_WRITEMASK: 0x0B98;
  35081     readonly STENCIL_BACK_FUNC: 0x8800;
  35082     readonly STENCIL_BACK_FAIL: 0x8801;
  35083     readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
  35084     readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
  35085     readonly STENCIL_BACK_REF: 0x8CA3;
  35086     readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;
  35087     readonly STENCIL_BACK_WRITEMASK: 0x8CA5;
  35088     readonly VIEWPORT: 0x0BA2;
  35089     readonly SCISSOR_BOX: 0x0C10;
  35090     readonly COLOR_CLEAR_VALUE: 0x0C22;
  35091     readonly COLOR_WRITEMASK: 0x0C23;
  35092     readonly UNPACK_ALIGNMENT: 0x0CF5;
  35093     readonly PACK_ALIGNMENT: 0x0D05;
  35094     readonly MAX_TEXTURE_SIZE: 0x0D33;
  35095     readonly MAX_VIEWPORT_DIMS: 0x0D3A;
  35096     readonly SUBPIXEL_BITS: 0x0D50;
  35097     readonly RED_BITS: 0x0D52;
  35098     readonly GREEN_BITS: 0x0D53;
  35099     readonly BLUE_BITS: 0x0D54;
  35100     readonly ALPHA_BITS: 0x0D55;
  35101     readonly DEPTH_BITS: 0x0D56;
  35102     readonly STENCIL_BITS: 0x0D57;
  35103     readonly POLYGON_OFFSET_UNITS: 0x2A00;
  35104     readonly POLYGON_OFFSET_FACTOR: 0x8038;
  35105     readonly TEXTURE_BINDING_2D: 0x8069;
  35106     readonly SAMPLE_BUFFERS: 0x80A8;
  35107     readonly SAMPLES: 0x80A9;
  35108     readonly SAMPLE_COVERAGE_VALUE: 0x80AA;
  35109     readonly SAMPLE_COVERAGE_INVERT: 0x80AB;
  35110     readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;
  35111     readonly DONT_CARE: 0x1100;
  35112     readonly FASTEST: 0x1101;
  35113     readonly NICEST: 0x1102;
  35114     readonly GENERATE_MIPMAP_HINT: 0x8192;
  35115     readonly BYTE: 0x1400;
  35116     readonly UNSIGNED_BYTE: 0x1401;
  35117     readonly SHORT: 0x1402;
  35118     readonly UNSIGNED_SHORT: 0x1403;
  35119     readonly INT: 0x1404;
  35120     readonly UNSIGNED_INT: 0x1405;
  35121     readonly FLOAT: 0x1406;
  35122     readonly DEPTH_COMPONENT: 0x1902;
  35123     readonly ALPHA: 0x1906;
  35124     readonly RGB: 0x1907;
  35125     readonly RGBA: 0x1908;
  35126     readonly LUMINANCE: 0x1909;
  35127     readonly LUMINANCE_ALPHA: 0x190A;
  35128     readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;
  35129     readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;
  35130     readonly UNSIGNED_SHORT_5_6_5: 0x8363;
  35131     readonly FRAGMENT_SHADER: 0x8B30;
  35132     readonly VERTEX_SHADER: 0x8B31;
  35133     readonly MAX_VERTEX_ATTRIBS: 0x8869;
  35134     readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;
  35135     readonly MAX_VARYING_VECTORS: 0x8DFC;
  35136     readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;
  35137     readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;
  35138     readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;
  35139     readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;
  35140     readonly SHADER_TYPE: 0x8B4F;
  35141     readonly DELETE_STATUS: 0x8B80;
  35142     readonly LINK_STATUS: 0x8B82;
  35143     readonly VALIDATE_STATUS: 0x8B83;
  35144     readonly ATTACHED_SHADERS: 0x8B85;
  35145     readonly ACTIVE_UNIFORMS: 0x8B86;
  35146     readonly ACTIVE_ATTRIBUTES: 0x8B89;
  35147     readonly SHADING_LANGUAGE_VERSION: 0x8B8C;
  35148     readonly CURRENT_PROGRAM: 0x8B8D;
  35149     readonly NEVER: 0x0200;
  35150     readonly LESS: 0x0201;
  35151     readonly EQUAL: 0x0202;
  35152     readonly LEQUAL: 0x0203;
  35153     readonly GREATER: 0x0204;
  35154     readonly NOTEQUAL: 0x0205;
  35155     readonly GEQUAL: 0x0206;
  35156     readonly ALWAYS: 0x0207;
  35157     readonly KEEP: 0x1E00;
  35158     readonly REPLACE: 0x1E01;
  35159     readonly INCR: 0x1E02;
  35160     readonly DECR: 0x1E03;
  35161     readonly INVERT: 0x150A;
  35162     readonly INCR_WRAP: 0x8507;
  35163     readonly DECR_WRAP: 0x8508;
  35164     readonly VENDOR: 0x1F00;
  35165     readonly RENDERER: 0x1F01;
  35166     readonly VERSION: 0x1F02;
  35167     readonly NEAREST: 0x2600;
  35168     readonly LINEAR: 0x2601;
  35169     readonly NEAREST_MIPMAP_NEAREST: 0x2700;
  35170     readonly LINEAR_MIPMAP_NEAREST: 0x2701;
  35171     readonly NEAREST_MIPMAP_LINEAR: 0x2702;
  35172     readonly LINEAR_MIPMAP_LINEAR: 0x2703;
  35173     readonly TEXTURE_MAG_FILTER: 0x2800;
  35174     readonly TEXTURE_MIN_FILTER: 0x2801;
  35175     readonly TEXTURE_WRAP_S: 0x2802;
  35176     readonly TEXTURE_WRAP_T: 0x2803;
  35177     readonly TEXTURE_2D: 0x0DE1;
  35178     readonly TEXTURE: 0x1702;
  35179     readonly TEXTURE_CUBE_MAP: 0x8513;
  35180     readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;
  35181     readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
  35182     readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
  35183     readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
  35184     readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
  35185     readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
  35186     readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;
  35187     readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;
  35188     readonly TEXTURE0: 0x84C0;
  35189     readonly TEXTURE1: 0x84C1;
  35190     readonly TEXTURE2: 0x84C2;
  35191     readonly TEXTURE3: 0x84C3;
  35192     readonly TEXTURE4: 0x84C4;
  35193     readonly TEXTURE5: 0x84C5;
  35194     readonly TEXTURE6: 0x84C6;
  35195     readonly TEXTURE7: 0x84C7;
  35196     readonly TEXTURE8: 0x84C8;
  35197     readonly TEXTURE9: 0x84C9;
  35198     readonly TEXTURE10: 0x84CA;
  35199     readonly TEXTURE11: 0x84CB;
  35200     readonly TEXTURE12: 0x84CC;
  35201     readonly TEXTURE13: 0x84CD;
  35202     readonly TEXTURE14: 0x84CE;
  35203     readonly TEXTURE15: 0x84CF;
  35204     readonly TEXTURE16: 0x84D0;
  35205     readonly TEXTURE17: 0x84D1;
  35206     readonly TEXTURE18: 0x84D2;
  35207     readonly TEXTURE19: 0x84D3;
  35208     readonly TEXTURE20: 0x84D4;
  35209     readonly TEXTURE21: 0x84D5;
  35210     readonly TEXTURE22: 0x84D6;
  35211     readonly TEXTURE23: 0x84D7;
  35212     readonly TEXTURE24: 0x84D8;
  35213     readonly TEXTURE25: 0x84D9;
  35214     readonly TEXTURE26: 0x84DA;
  35215     readonly TEXTURE27: 0x84DB;
  35216     readonly TEXTURE28: 0x84DC;
  35217     readonly TEXTURE29: 0x84DD;
  35218     readonly TEXTURE30: 0x84DE;
  35219     readonly TEXTURE31: 0x84DF;
  35220     readonly ACTIVE_TEXTURE: 0x84E0;
  35221     readonly REPEAT: 0x2901;
  35222     readonly CLAMP_TO_EDGE: 0x812F;
  35223     readonly MIRRORED_REPEAT: 0x8370;
  35224     readonly FLOAT_VEC2: 0x8B50;
  35225     readonly FLOAT_VEC3: 0x8B51;
  35226     readonly FLOAT_VEC4: 0x8B52;
  35227     readonly INT_VEC2: 0x8B53;
  35228     readonly INT_VEC3: 0x8B54;
  35229     readonly INT_VEC4: 0x8B55;
  35230     readonly BOOL: 0x8B56;
  35231     readonly BOOL_VEC2: 0x8B57;
  35232     readonly BOOL_VEC3: 0x8B58;
  35233     readonly BOOL_VEC4: 0x8B59;
  35234     readonly FLOAT_MAT2: 0x8B5A;
  35235     readonly FLOAT_MAT3: 0x8B5B;
  35236     readonly FLOAT_MAT4: 0x8B5C;
  35237     readonly SAMPLER_2D: 0x8B5E;
  35238     readonly SAMPLER_CUBE: 0x8B60;
  35239     readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
  35240     readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
  35241     readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
  35242     readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
  35243     readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;
  35244     readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
  35245     readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;
  35246     readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;
  35247     readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;
  35248     readonly COMPILE_STATUS: 0x8B81;
  35249     readonly LOW_FLOAT: 0x8DF0;
  35250     readonly MEDIUM_FLOAT: 0x8DF1;
  35251     readonly HIGH_FLOAT: 0x8DF2;
  35252     readonly LOW_INT: 0x8DF3;
  35253     readonly MEDIUM_INT: 0x8DF4;
  35254     readonly HIGH_INT: 0x8DF5;
  35255     readonly FRAMEBUFFER: 0x8D40;
  35256     readonly RENDERBUFFER: 0x8D41;
  35257     readonly RGBA4: 0x8056;
  35258     readonly RGB5_A1: 0x8057;
  35259     readonly RGBA8: 0x8058;
  35260     readonly RGB565: 0x8D62;
  35261     readonly DEPTH_COMPONENT16: 0x81A5;
  35262     readonly STENCIL_INDEX8: 0x8D48;
  35263     readonly DEPTH_STENCIL: 0x84F9;
  35264     readonly RENDERBUFFER_WIDTH: 0x8D42;
  35265     readonly RENDERBUFFER_HEIGHT: 0x8D43;
  35266     readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;
  35267     readonly RENDERBUFFER_RED_SIZE: 0x8D50;
  35268     readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;
  35269     readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;
  35270     readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;
  35271     readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;
  35272     readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;
  35273     readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;
  35274     readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;
  35275     readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;
  35276     readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;
  35277     readonly COLOR_ATTACHMENT0: 0x8CE0;
  35278     readonly DEPTH_ATTACHMENT: 0x8D00;
  35279     readonly STENCIL_ATTACHMENT: 0x8D20;
  35280     readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;
  35281     readonly NONE: 0;
  35282     readonly FRAMEBUFFER_COMPLETE: 0x8CD5;
  35283     readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;
  35284     readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;
  35285     readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;
  35286     readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;
  35287     readonly FRAMEBUFFER_BINDING: 0x8CA6;
  35288     readonly RENDERBUFFER_BINDING: 0x8CA7;
  35289     readonly MAX_RENDERBUFFER_SIZE: 0x84E8;
  35290     readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;
  35291     readonly UNPACK_FLIP_Y_WEBGL: 0x9240;
  35292     readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
  35293     readonly CONTEXT_LOST_WEBGL: 0x9242;
  35294     readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
  35295     readonly BROWSER_DEFAULT_WEBGL: 0x9244;
  35296 };
  35297 
  35298 interface WebGLRenderingContextBase {
  35299     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/canvas) */
  35300     readonly canvas: HTMLCanvasElement | OffscreenCanvas;
  35301     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawingBufferColorSpace) */
  35302     drawingBufferColorSpace: PredefinedColorSpace;
  35303     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawingBufferHeight) */
  35304     readonly drawingBufferHeight: GLsizei;
  35305     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawingBufferWidth) */
  35306     readonly drawingBufferWidth: GLsizei;
  35307     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/unpackColorSpace) */
  35308     unpackColorSpace: PredefinedColorSpace;
  35309     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/activeTexture) */
  35310     activeTexture(texture: GLenum): void;
  35311     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/attachShader) */
  35312     attachShader(program: WebGLProgram, shader: WebGLShader): void;
  35313     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindAttribLocation) */
  35314     bindAttribLocation(program: WebGLProgram, index: GLuint, name: string): void;
  35315     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindBuffer) */
  35316     bindBuffer(target: GLenum, buffer: WebGLBuffer | null): void;
  35317     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindFramebuffer) */
  35318     bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer | null): void;
  35319     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindRenderbuffer) */
  35320     bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer | null): void;
  35321     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindTexture) */
  35322     bindTexture(target: GLenum, texture: WebGLTexture | null): void;
  35323     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendColor) */
  35324     blendColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;
  35325     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendEquation) */
  35326     blendEquation(mode: GLenum): void;
  35327     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendEquationSeparate) */
  35328     blendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum): void;
  35329     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendFunc) */
  35330     blendFunc(sfactor: GLenum, dfactor: GLenum): void;
  35331     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendFuncSeparate) */
  35332     blendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;
  35333     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/checkFramebufferStatus) */
  35334     checkFramebufferStatus(target: GLenum): GLenum;
  35335     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clear) */
  35336     clear(mask: GLbitfield): void;
  35337     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearColor) */
  35338     clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;
  35339     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearDepth) */
  35340     clearDepth(depth: GLclampf): void;
  35341     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearStencil) */
  35342     clearStencil(s: GLint): void;
  35343     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/colorMask) */
  35344     colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean): void;
  35345     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compileShader) */
  35346     compileShader(shader: WebGLShader): void;
  35347     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/copyTexImage2D) */
  35348     copyTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint): void;
  35349     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/copyTexSubImage2D) */
  35350     copyTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
  35351     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createBuffer) */
  35352     createBuffer(): WebGLBuffer;
  35353     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createFramebuffer) */
  35354     createFramebuffer(): WebGLFramebuffer;
  35355     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createProgram) */
  35356     createProgram(): WebGLProgram;
  35357     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createRenderbuffer) */
  35358     createRenderbuffer(): WebGLRenderbuffer;
  35359     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createShader) */
  35360     createShader(type: GLenum): WebGLShader | null;
  35361     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createTexture) */
  35362     createTexture(): WebGLTexture;
  35363     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/cullFace) */
  35364     cullFace(mode: GLenum): void;
  35365     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteBuffer) */
  35366     deleteBuffer(buffer: WebGLBuffer | null): void;
  35367     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteFramebuffer) */
  35368     deleteFramebuffer(framebuffer: WebGLFramebuffer | null): void;
  35369     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteProgram) */
  35370     deleteProgram(program: WebGLProgram | null): void;
  35371     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteRenderbuffer) */
  35372     deleteRenderbuffer(renderbuffer: WebGLRenderbuffer | null): void;
  35373     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteShader) */
  35374     deleteShader(shader: WebGLShader | null): void;
  35375     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteTexture) */
  35376     deleteTexture(texture: WebGLTexture | null): void;
  35377     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthFunc) */
  35378     depthFunc(func: GLenum): void;
  35379     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthMask) */
  35380     depthMask(flag: GLboolean): void;
  35381     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthRange) */
  35382     depthRange(zNear: GLclampf, zFar: GLclampf): void;
  35383     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/detachShader) */
  35384     detachShader(program: WebGLProgram, shader: WebGLShader): void;
  35385     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/disable) */
  35386     disable(cap: GLenum): void;
  35387     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/disableVertexAttribArray) */
  35388     disableVertexAttribArray(index: GLuint): void;
  35389     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawArrays) */
  35390     drawArrays(mode: GLenum, first: GLint, count: GLsizei): void;
  35391     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawElements) */
  35392     drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr): void;
  35393     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/enable) */
  35394     enable(cap: GLenum): void;
  35395     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/enableVertexAttribArray) */
  35396     enableVertexAttribArray(index: GLuint): void;
  35397     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/finish) */
  35398     finish(): void;
  35399     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/flush) */
  35400     flush(): void;
  35401     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/framebufferRenderbuffer) */
  35402     framebufferRenderbuffer(target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: WebGLRenderbuffer | null): void;
  35403     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/framebufferTexture2D) */
  35404     framebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLenum, texture: WebGLTexture | null, level: GLint): void;
  35405     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/frontFace) */
  35406     frontFace(mode: GLenum): void;
  35407     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/generateMipmap) */
  35408     generateMipmap(target: GLenum): void;
  35409     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getActiveAttrib) */
  35410     getActiveAttrib(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;
  35411     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getActiveUniform) */
  35412     getActiveUniform(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;
  35413     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getAttachedShaders) */
  35414     getAttachedShaders(program: WebGLProgram): WebGLShader[] | null;
  35415     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getAttribLocation) */
  35416     getAttribLocation(program: WebGLProgram, name: string): GLint;
  35417     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getBufferParameter) */
  35418     getBufferParameter(target: GLenum, pname: GLenum): any;
  35419     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getContextAttributes) */
  35420     getContextAttributes(): WebGLContextAttributes | null;
  35421     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getError) */
  35422     getError(): GLenum;
  35423     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getExtension) */
  35424     getExtension(extensionName: "ANGLE_instanced_arrays"): ANGLE_instanced_arrays | null;
  35425     getExtension(extensionName: "EXT_blend_minmax"): EXT_blend_minmax | null;
  35426     getExtension(extensionName: "EXT_color_buffer_float"): EXT_color_buffer_float | null;
  35427     getExtension(extensionName: "EXT_color_buffer_half_float"): EXT_color_buffer_half_float | null;
  35428     getExtension(extensionName: "EXT_float_blend"): EXT_float_blend | null;
  35429     getExtension(extensionName: "EXT_frag_depth"): EXT_frag_depth | null;
  35430     getExtension(extensionName: "EXT_sRGB"): EXT_sRGB | null;
  35431     getExtension(extensionName: "EXT_shader_texture_lod"): EXT_shader_texture_lod | null;
  35432     getExtension(extensionName: "EXT_texture_compression_bptc"): EXT_texture_compression_bptc | null;
  35433     getExtension(extensionName: "EXT_texture_compression_rgtc"): EXT_texture_compression_rgtc | null;
  35434     getExtension(extensionName: "EXT_texture_filter_anisotropic"): EXT_texture_filter_anisotropic | null;
  35435     getExtension(extensionName: "KHR_parallel_shader_compile"): KHR_parallel_shader_compile | null;
  35436     getExtension(extensionName: "OES_element_index_uint"): OES_element_index_uint | null;
  35437     getExtension(extensionName: "OES_fbo_render_mipmap"): OES_fbo_render_mipmap | null;
  35438     getExtension(extensionName: "OES_standard_derivatives"): OES_standard_derivatives | null;
  35439     getExtension(extensionName: "OES_texture_float"): OES_texture_float | null;
  35440     getExtension(extensionName: "OES_texture_float_linear"): OES_texture_float_linear | null;
  35441     getExtension(extensionName: "OES_texture_half_float"): OES_texture_half_float | null;
  35442     getExtension(extensionName: "OES_texture_half_float_linear"): OES_texture_half_float_linear | null;
  35443     getExtension(extensionName: "OES_vertex_array_object"): OES_vertex_array_object | null;
  35444     getExtension(extensionName: "OVR_multiview2"): OVR_multiview2 | null;
  35445     getExtension(extensionName: "WEBGL_color_buffer_float"): WEBGL_color_buffer_float | null;
  35446     getExtension(extensionName: "WEBGL_compressed_texture_astc"): WEBGL_compressed_texture_astc | null;
  35447     getExtension(extensionName: "WEBGL_compressed_texture_etc"): WEBGL_compressed_texture_etc | null;
  35448     getExtension(extensionName: "WEBGL_compressed_texture_etc1"): WEBGL_compressed_texture_etc1 | null;
  35449     getExtension(extensionName: "WEBGL_compressed_texture_pvrtc"): WEBGL_compressed_texture_pvrtc | null;
  35450     getExtension(extensionName: "WEBGL_compressed_texture_s3tc"): WEBGL_compressed_texture_s3tc | null;
  35451     getExtension(extensionName: "WEBGL_compressed_texture_s3tc_srgb"): WEBGL_compressed_texture_s3tc_srgb | null;
  35452     getExtension(extensionName: "WEBGL_debug_renderer_info"): WEBGL_debug_renderer_info | null;
  35453     getExtension(extensionName: "WEBGL_debug_shaders"): WEBGL_debug_shaders | null;
  35454     getExtension(extensionName: "WEBGL_depth_texture"): WEBGL_depth_texture | null;
  35455     getExtension(extensionName: "WEBGL_draw_buffers"): WEBGL_draw_buffers | null;
  35456     getExtension(extensionName: "WEBGL_lose_context"): WEBGL_lose_context | null;
  35457     getExtension(extensionName: "WEBGL_multi_draw"): WEBGL_multi_draw | null;
  35458     getExtension(name: string): any;
  35459     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getFramebufferAttachmentParameter) */
  35460     getFramebufferAttachmentParameter(target: GLenum, attachment: GLenum, pname: GLenum): any;
  35461     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getParameter) */
  35462     getParameter(pname: GLenum): any;
  35463     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getProgramInfoLog) */
  35464     getProgramInfoLog(program: WebGLProgram): string | null;
  35465     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getProgramParameter) */
  35466     getProgramParameter(program: WebGLProgram, pname: GLenum): any;
  35467     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getRenderbufferParameter) */
  35468     getRenderbufferParameter(target: GLenum, pname: GLenum): any;
  35469     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderInfoLog) */
  35470     getShaderInfoLog(shader: WebGLShader): string | null;
  35471     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderParameter) */
  35472     getShaderParameter(shader: WebGLShader, pname: GLenum): any;
  35473     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderPrecisionFormat) */
  35474     getShaderPrecisionFormat(shadertype: GLenum, precisiontype: GLenum): WebGLShaderPrecisionFormat | null;
  35475     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderSource) */
  35476     getShaderSource(shader: WebGLShader): string | null;
  35477     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getSupportedExtensions) */
  35478     getSupportedExtensions(): string[] | null;
  35479     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getTexParameter) */
  35480     getTexParameter(target: GLenum, pname: GLenum): any;
  35481     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getUniform) */
  35482     getUniform(program: WebGLProgram, location: WebGLUniformLocation): any;
  35483     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getUniformLocation) */
  35484     getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation | null;
  35485     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getVertexAttrib) */
  35486     getVertexAttrib(index: GLuint, pname: GLenum): any;
  35487     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getVertexAttribOffset) */
  35488     getVertexAttribOffset(index: GLuint, pname: GLenum): GLintptr;
  35489     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/hint) */
  35490     hint(target: GLenum, mode: GLenum): void;
  35491     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isBuffer) */
  35492     isBuffer(buffer: WebGLBuffer | null): GLboolean;
  35493     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isContextLost) */
  35494     isContextLost(): boolean;
  35495     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isEnabled) */
  35496     isEnabled(cap: GLenum): GLboolean;
  35497     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isFramebuffer) */
  35498     isFramebuffer(framebuffer: WebGLFramebuffer | null): GLboolean;
  35499     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isProgram) */
  35500     isProgram(program: WebGLProgram | null): GLboolean;
  35501     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isRenderbuffer) */
  35502     isRenderbuffer(renderbuffer: WebGLRenderbuffer | null): GLboolean;
  35503     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isShader) */
  35504     isShader(shader: WebGLShader | null): GLboolean;
  35505     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isTexture) */
  35506     isTexture(texture: WebGLTexture | null): GLboolean;
  35507     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/lineWidth) */
  35508     lineWidth(width: GLfloat): void;
  35509     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/linkProgram) */
  35510     linkProgram(program: WebGLProgram): void;
  35511     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/pixelStorei) */
  35512     pixelStorei(pname: GLenum, param: GLint | GLboolean): void;
  35513     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/polygonOffset) */
  35514     polygonOffset(factor: GLfloat, units: GLfloat): void;
  35515     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/renderbufferStorage) */
  35516     renderbufferStorage(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei): void;
  35517     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/sampleCoverage) */
  35518     sampleCoverage(value: GLclampf, invert: GLboolean): void;
  35519     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/scissor) */
  35520     scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
  35521     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/shaderSource) */
  35522     shaderSource(shader: WebGLShader, source: string): void;
  35523     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilFunc) */
  35524     stencilFunc(func: GLenum, ref: GLint, mask: GLuint): void;
  35525     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilFuncSeparate) */
  35526     stencilFuncSeparate(face: GLenum, func: GLenum, ref: GLint, mask: GLuint): void;
  35527     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilMask) */
  35528     stencilMask(mask: GLuint): void;
  35529     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilMaskSeparate) */
  35530     stencilMaskSeparate(face: GLenum, mask: GLuint): void;
  35531     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilOp) */
  35532     stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum): void;
  35533     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilOpSeparate) */
  35534     stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum): void;
  35535     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texParameter) */
  35536     texParameterf(target: GLenum, pname: GLenum, param: GLfloat): void;
  35537     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texParameter) */
  35538     texParameteri(target: GLenum, pname: GLenum, param: GLint): void;
  35539     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35540     uniform1f(location: WebGLUniformLocation | null, x: GLfloat): void;
  35541     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35542     uniform1i(location: WebGLUniformLocation | null, x: GLint): void;
  35543     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35544     uniform2f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat): void;
  35545     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35546     uniform2i(location: WebGLUniformLocation | null, x: GLint, y: GLint): void;
  35547     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35548     uniform3f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat): void;
  35549     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35550     uniform3i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint): void;
  35551     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35552     uniform4f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;
  35553     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35554     uniform4i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint, w: GLint): void;
  35555     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/useProgram) */
  35556     useProgram(program: WebGLProgram | null): void;
  35557     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/validateProgram) */
  35558     validateProgram(program: WebGLProgram): void;
  35559     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
  35560     vertexAttrib1f(index: GLuint, x: GLfloat): void;
  35561     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
  35562     vertexAttrib1fv(index: GLuint, values: Float32List): void;
  35563     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
  35564     vertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat): void;
  35565     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
  35566     vertexAttrib2fv(index: GLuint, values: Float32List): void;
  35567     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
  35568     vertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat): void;
  35569     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
  35570     vertexAttrib3fv(index: GLuint, values: Float32List): void;
  35571     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
  35572     vertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;
  35573     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
  35574     vertexAttrib4fv(index: GLuint, values: Float32List): void;
  35575     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttribPointer) */
  35576     vertexAttribPointer(index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr): void;
  35577     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/viewport) */
  35578     viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
  35579     readonly DEPTH_BUFFER_BIT: 0x00000100;
  35580     readonly STENCIL_BUFFER_BIT: 0x00000400;
  35581     readonly COLOR_BUFFER_BIT: 0x00004000;
  35582     readonly POINTS: 0x0000;
  35583     readonly LINES: 0x0001;
  35584     readonly LINE_LOOP: 0x0002;
  35585     readonly LINE_STRIP: 0x0003;
  35586     readonly TRIANGLES: 0x0004;
  35587     readonly TRIANGLE_STRIP: 0x0005;
  35588     readonly TRIANGLE_FAN: 0x0006;
  35589     readonly ZERO: 0;
  35590     readonly ONE: 1;
  35591     readonly SRC_COLOR: 0x0300;
  35592     readonly ONE_MINUS_SRC_COLOR: 0x0301;
  35593     readonly SRC_ALPHA: 0x0302;
  35594     readonly ONE_MINUS_SRC_ALPHA: 0x0303;
  35595     readonly DST_ALPHA: 0x0304;
  35596     readonly ONE_MINUS_DST_ALPHA: 0x0305;
  35597     readonly DST_COLOR: 0x0306;
  35598     readonly ONE_MINUS_DST_COLOR: 0x0307;
  35599     readonly SRC_ALPHA_SATURATE: 0x0308;
  35600     readonly FUNC_ADD: 0x8006;
  35601     readonly BLEND_EQUATION: 0x8009;
  35602     readonly BLEND_EQUATION_RGB: 0x8009;
  35603     readonly BLEND_EQUATION_ALPHA: 0x883D;
  35604     readonly FUNC_SUBTRACT: 0x800A;
  35605     readonly FUNC_REVERSE_SUBTRACT: 0x800B;
  35606     readonly BLEND_DST_RGB: 0x80C8;
  35607     readonly BLEND_SRC_RGB: 0x80C9;
  35608     readonly BLEND_DST_ALPHA: 0x80CA;
  35609     readonly BLEND_SRC_ALPHA: 0x80CB;
  35610     readonly CONSTANT_COLOR: 0x8001;
  35611     readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;
  35612     readonly CONSTANT_ALPHA: 0x8003;
  35613     readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;
  35614     readonly BLEND_COLOR: 0x8005;
  35615     readonly ARRAY_BUFFER: 0x8892;
  35616     readonly ELEMENT_ARRAY_BUFFER: 0x8893;
  35617     readonly ARRAY_BUFFER_BINDING: 0x8894;
  35618     readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;
  35619     readonly STREAM_DRAW: 0x88E0;
  35620     readonly STATIC_DRAW: 0x88E4;
  35621     readonly DYNAMIC_DRAW: 0x88E8;
  35622     readonly BUFFER_SIZE: 0x8764;
  35623     readonly BUFFER_USAGE: 0x8765;
  35624     readonly CURRENT_VERTEX_ATTRIB: 0x8626;
  35625     readonly FRONT: 0x0404;
  35626     readonly BACK: 0x0405;
  35627     readonly FRONT_AND_BACK: 0x0408;
  35628     readonly CULL_FACE: 0x0B44;
  35629     readonly BLEND: 0x0BE2;
  35630     readonly DITHER: 0x0BD0;
  35631     readonly STENCIL_TEST: 0x0B90;
  35632     readonly DEPTH_TEST: 0x0B71;
  35633     readonly SCISSOR_TEST: 0x0C11;
  35634     readonly POLYGON_OFFSET_FILL: 0x8037;
  35635     readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;
  35636     readonly SAMPLE_COVERAGE: 0x80A0;
  35637     readonly NO_ERROR: 0;
  35638     readonly INVALID_ENUM: 0x0500;
  35639     readonly INVALID_VALUE: 0x0501;
  35640     readonly INVALID_OPERATION: 0x0502;
  35641     readonly OUT_OF_MEMORY: 0x0505;
  35642     readonly CW: 0x0900;
  35643     readonly CCW: 0x0901;
  35644     readonly LINE_WIDTH: 0x0B21;
  35645     readonly ALIASED_POINT_SIZE_RANGE: 0x846D;
  35646     readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;
  35647     readonly CULL_FACE_MODE: 0x0B45;
  35648     readonly FRONT_FACE: 0x0B46;
  35649     readonly DEPTH_RANGE: 0x0B70;
  35650     readonly DEPTH_WRITEMASK: 0x0B72;
  35651     readonly DEPTH_CLEAR_VALUE: 0x0B73;
  35652     readonly DEPTH_FUNC: 0x0B74;
  35653     readonly STENCIL_CLEAR_VALUE: 0x0B91;
  35654     readonly STENCIL_FUNC: 0x0B92;
  35655     readonly STENCIL_FAIL: 0x0B94;
  35656     readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;
  35657     readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;
  35658     readonly STENCIL_REF: 0x0B97;
  35659     readonly STENCIL_VALUE_MASK: 0x0B93;
  35660     readonly STENCIL_WRITEMASK: 0x0B98;
  35661     readonly STENCIL_BACK_FUNC: 0x8800;
  35662     readonly STENCIL_BACK_FAIL: 0x8801;
  35663     readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
  35664     readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
  35665     readonly STENCIL_BACK_REF: 0x8CA3;
  35666     readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;
  35667     readonly STENCIL_BACK_WRITEMASK: 0x8CA5;
  35668     readonly VIEWPORT: 0x0BA2;
  35669     readonly SCISSOR_BOX: 0x0C10;
  35670     readonly COLOR_CLEAR_VALUE: 0x0C22;
  35671     readonly COLOR_WRITEMASK: 0x0C23;
  35672     readonly UNPACK_ALIGNMENT: 0x0CF5;
  35673     readonly PACK_ALIGNMENT: 0x0D05;
  35674     readonly MAX_TEXTURE_SIZE: 0x0D33;
  35675     readonly MAX_VIEWPORT_DIMS: 0x0D3A;
  35676     readonly SUBPIXEL_BITS: 0x0D50;
  35677     readonly RED_BITS: 0x0D52;
  35678     readonly GREEN_BITS: 0x0D53;
  35679     readonly BLUE_BITS: 0x0D54;
  35680     readonly ALPHA_BITS: 0x0D55;
  35681     readonly DEPTH_BITS: 0x0D56;
  35682     readonly STENCIL_BITS: 0x0D57;
  35683     readonly POLYGON_OFFSET_UNITS: 0x2A00;
  35684     readonly POLYGON_OFFSET_FACTOR: 0x8038;
  35685     readonly TEXTURE_BINDING_2D: 0x8069;
  35686     readonly SAMPLE_BUFFERS: 0x80A8;
  35687     readonly SAMPLES: 0x80A9;
  35688     readonly SAMPLE_COVERAGE_VALUE: 0x80AA;
  35689     readonly SAMPLE_COVERAGE_INVERT: 0x80AB;
  35690     readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;
  35691     readonly DONT_CARE: 0x1100;
  35692     readonly FASTEST: 0x1101;
  35693     readonly NICEST: 0x1102;
  35694     readonly GENERATE_MIPMAP_HINT: 0x8192;
  35695     readonly BYTE: 0x1400;
  35696     readonly UNSIGNED_BYTE: 0x1401;
  35697     readonly SHORT: 0x1402;
  35698     readonly UNSIGNED_SHORT: 0x1403;
  35699     readonly INT: 0x1404;
  35700     readonly UNSIGNED_INT: 0x1405;
  35701     readonly FLOAT: 0x1406;
  35702     readonly DEPTH_COMPONENT: 0x1902;
  35703     readonly ALPHA: 0x1906;
  35704     readonly RGB: 0x1907;
  35705     readonly RGBA: 0x1908;
  35706     readonly LUMINANCE: 0x1909;
  35707     readonly LUMINANCE_ALPHA: 0x190A;
  35708     readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;
  35709     readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;
  35710     readonly UNSIGNED_SHORT_5_6_5: 0x8363;
  35711     readonly FRAGMENT_SHADER: 0x8B30;
  35712     readonly VERTEX_SHADER: 0x8B31;
  35713     readonly MAX_VERTEX_ATTRIBS: 0x8869;
  35714     readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;
  35715     readonly MAX_VARYING_VECTORS: 0x8DFC;
  35716     readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;
  35717     readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;
  35718     readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;
  35719     readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;
  35720     readonly SHADER_TYPE: 0x8B4F;
  35721     readonly DELETE_STATUS: 0x8B80;
  35722     readonly LINK_STATUS: 0x8B82;
  35723     readonly VALIDATE_STATUS: 0x8B83;
  35724     readonly ATTACHED_SHADERS: 0x8B85;
  35725     readonly ACTIVE_UNIFORMS: 0x8B86;
  35726     readonly ACTIVE_ATTRIBUTES: 0x8B89;
  35727     readonly SHADING_LANGUAGE_VERSION: 0x8B8C;
  35728     readonly CURRENT_PROGRAM: 0x8B8D;
  35729     readonly NEVER: 0x0200;
  35730     readonly LESS: 0x0201;
  35731     readonly EQUAL: 0x0202;
  35732     readonly LEQUAL: 0x0203;
  35733     readonly GREATER: 0x0204;
  35734     readonly NOTEQUAL: 0x0205;
  35735     readonly GEQUAL: 0x0206;
  35736     readonly ALWAYS: 0x0207;
  35737     readonly KEEP: 0x1E00;
  35738     readonly REPLACE: 0x1E01;
  35739     readonly INCR: 0x1E02;
  35740     readonly DECR: 0x1E03;
  35741     readonly INVERT: 0x150A;
  35742     readonly INCR_WRAP: 0x8507;
  35743     readonly DECR_WRAP: 0x8508;
  35744     readonly VENDOR: 0x1F00;
  35745     readonly RENDERER: 0x1F01;
  35746     readonly VERSION: 0x1F02;
  35747     readonly NEAREST: 0x2600;
  35748     readonly LINEAR: 0x2601;
  35749     readonly NEAREST_MIPMAP_NEAREST: 0x2700;
  35750     readonly LINEAR_MIPMAP_NEAREST: 0x2701;
  35751     readonly NEAREST_MIPMAP_LINEAR: 0x2702;
  35752     readonly LINEAR_MIPMAP_LINEAR: 0x2703;
  35753     readonly TEXTURE_MAG_FILTER: 0x2800;
  35754     readonly TEXTURE_MIN_FILTER: 0x2801;
  35755     readonly TEXTURE_WRAP_S: 0x2802;
  35756     readonly TEXTURE_WRAP_T: 0x2803;
  35757     readonly TEXTURE_2D: 0x0DE1;
  35758     readonly TEXTURE: 0x1702;
  35759     readonly TEXTURE_CUBE_MAP: 0x8513;
  35760     readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;
  35761     readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
  35762     readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
  35763     readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
  35764     readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
  35765     readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
  35766     readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;
  35767     readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;
  35768     readonly TEXTURE0: 0x84C0;
  35769     readonly TEXTURE1: 0x84C1;
  35770     readonly TEXTURE2: 0x84C2;
  35771     readonly TEXTURE3: 0x84C3;
  35772     readonly TEXTURE4: 0x84C4;
  35773     readonly TEXTURE5: 0x84C5;
  35774     readonly TEXTURE6: 0x84C6;
  35775     readonly TEXTURE7: 0x84C7;
  35776     readonly TEXTURE8: 0x84C8;
  35777     readonly TEXTURE9: 0x84C9;
  35778     readonly TEXTURE10: 0x84CA;
  35779     readonly TEXTURE11: 0x84CB;
  35780     readonly TEXTURE12: 0x84CC;
  35781     readonly TEXTURE13: 0x84CD;
  35782     readonly TEXTURE14: 0x84CE;
  35783     readonly TEXTURE15: 0x84CF;
  35784     readonly TEXTURE16: 0x84D0;
  35785     readonly TEXTURE17: 0x84D1;
  35786     readonly TEXTURE18: 0x84D2;
  35787     readonly TEXTURE19: 0x84D3;
  35788     readonly TEXTURE20: 0x84D4;
  35789     readonly TEXTURE21: 0x84D5;
  35790     readonly TEXTURE22: 0x84D6;
  35791     readonly TEXTURE23: 0x84D7;
  35792     readonly TEXTURE24: 0x84D8;
  35793     readonly TEXTURE25: 0x84D9;
  35794     readonly TEXTURE26: 0x84DA;
  35795     readonly TEXTURE27: 0x84DB;
  35796     readonly TEXTURE28: 0x84DC;
  35797     readonly TEXTURE29: 0x84DD;
  35798     readonly TEXTURE30: 0x84DE;
  35799     readonly TEXTURE31: 0x84DF;
  35800     readonly ACTIVE_TEXTURE: 0x84E0;
  35801     readonly REPEAT: 0x2901;
  35802     readonly CLAMP_TO_EDGE: 0x812F;
  35803     readonly MIRRORED_REPEAT: 0x8370;
  35804     readonly FLOAT_VEC2: 0x8B50;
  35805     readonly FLOAT_VEC3: 0x8B51;
  35806     readonly FLOAT_VEC4: 0x8B52;
  35807     readonly INT_VEC2: 0x8B53;
  35808     readonly INT_VEC3: 0x8B54;
  35809     readonly INT_VEC4: 0x8B55;
  35810     readonly BOOL: 0x8B56;
  35811     readonly BOOL_VEC2: 0x8B57;
  35812     readonly BOOL_VEC3: 0x8B58;
  35813     readonly BOOL_VEC4: 0x8B59;
  35814     readonly FLOAT_MAT2: 0x8B5A;
  35815     readonly FLOAT_MAT3: 0x8B5B;
  35816     readonly FLOAT_MAT4: 0x8B5C;
  35817     readonly SAMPLER_2D: 0x8B5E;
  35818     readonly SAMPLER_CUBE: 0x8B60;
  35819     readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
  35820     readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
  35821     readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
  35822     readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
  35823     readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;
  35824     readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
  35825     readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;
  35826     readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;
  35827     readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;
  35828     readonly COMPILE_STATUS: 0x8B81;
  35829     readonly LOW_FLOAT: 0x8DF0;
  35830     readonly MEDIUM_FLOAT: 0x8DF1;
  35831     readonly HIGH_FLOAT: 0x8DF2;
  35832     readonly LOW_INT: 0x8DF3;
  35833     readonly MEDIUM_INT: 0x8DF4;
  35834     readonly HIGH_INT: 0x8DF5;
  35835     readonly FRAMEBUFFER: 0x8D40;
  35836     readonly RENDERBUFFER: 0x8D41;
  35837     readonly RGBA4: 0x8056;
  35838     readonly RGB5_A1: 0x8057;
  35839     readonly RGBA8: 0x8058;
  35840     readonly RGB565: 0x8D62;
  35841     readonly DEPTH_COMPONENT16: 0x81A5;
  35842     readonly STENCIL_INDEX8: 0x8D48;
  35843     readonly DEPTH_STENCIL: 0x84F9;
  35844     readonly RENDERBUFFER_WIDTH: 0x8D42;
  35845     readonly RENDERBUFFER_HEIGHT: 0x8D43;
  35846     readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;
  35847     readonly RENDERBUFFER_RED_SIZE: 0x8D50;
  35848     readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;
  35849     readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;
  35850     readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;
  35851     readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;
  35852     readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;
  35853     readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;
  35854     readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;
  35855     readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;
  35856     readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;
  35857     readonly COLOR_ATTACHMENT0: 0x8CE0;
  35858     readonly DEPTH_ATTACHMENT: 0x8D00;
  35859     readonly STENCIL_ATTACHMENT: 0x8D20;
  35860     readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;
  35861     readonly NONE: 0;
  35862     readonly FRAMEBUFFER_COMPLETE: 0x8CD5;
  35863     readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;
  35864     readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;
  35865     readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;
  35866     readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;
  35867     readonly FRAMEBUFFER_BINDING: 0x8CA6;
  35868     readonly RENDERBUFFER_BINDING: 0x8CA7;
  35869     readonly MAX_RENDERBUFFER_SIZE: 0x84E8;
  35870     readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;
  35871     readonly UNPACK_FLIP_Y_WEBGL: 0x9240;
  35872     readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
  35873     readonly CONTEXT_LOST_WEBGL: 0x9242;
  35874     readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
  35875     readonly BROWSER_DEFAULT_WEBGL: 0x9244;
  35876 }
  35877 
  35878 interface WebGLRenderingContextOverloads {
  35879     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bufferData) */
  35880     bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;
  35881     bufferData(target: GLenum, data: AllowSharedBufferSource | null, usage: GLenum): void;
  35882     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bufferSubData) */
  35883     bufferSubData(target: GLenum, offset: GLintptr, data: AllowSharedBufferSource): void;
  35884     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexImage2D) */
  35885     compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: ArrayBufferView<ArrayBufferLike>): void;
  35886     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexSubImage2D) */
  35887     compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: ArrayBufferView<ArrayBufferLike>): void;
  35888     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/readPixels) */
  35889     readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView<ArrayBufferLike> | null): void;
  35890     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texImage2D) */
  35891     texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView<ArrayBufferLike> | null): void;
  35892     texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
  35893     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texSubImage2D) */
  35894     texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView<ArrayBufferLike> | null): void;
  35895     texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
  35896     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35897     uniform1fv(location: WebGLUniformLocation | null, v: Float32List): void;
  35898     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35899     uniform1iv(location: WebGLUniformLocation | null, v: Int32List): void;
  35900     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35901     uniform2fv(location: WebGLUniformLocation | null, v: Float32List): void;
  35902     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35903     uniform2iv(location: WebGLUniformLocation | null, v: Int32List): void;
  35904     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35905     uniform3fv(location: WebGLUniformLocation | null, v: Float32List): void;
  35906     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35907     uniform3iv(location: WebGLUniformLocation | null, v: Int32List): void;
  35908     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35909     uniform4fv(location: WebGLUniformLocation | null, v: Float32List): void;
  35910     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
  35911     uniform4iv(location: WebGLUniformLocation | null, v: Int32List): void;
  35912     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */
  35913     uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;
  35914     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */
  35915     uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;
  35916     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */
  35917     uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, value: Float32List): void;
  35918 }
  35919 
  35920 /**
  35921  * The **`WebGLSampler`** interface is part of the WebGL 2 API and stores sampling parameters for WebGLTexture access inside of a shader.
  35922  *
  35923  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLSampler)
  35924  */
  35925 interface WebGLSampler {
  35926 }
  35927 
  35928 declare var WebGLSampler: {
  35929     prototype: WebGLSampler;
  35930     new(): WebGLSampler;
  35931 };
  35932 
  35933 /**
  35934  * The **WebGLShader** is part of the WebGL API and can either be a vertex or a fragment shader.
  35935  *
  35936  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShader)
  35937  */
  35938 interface WebGLShader {
  35939 }
  35940 
  35941 declare var WebGLShader: {
  35942     prototype: WebGLShader;
  35943     new(): WebGLShader;
  35944 };
  35945 
  35946 /**
  35947  * The **WebGLShaderPrecisionFormat** interface is part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getShaderPrecisionFormat() method.
  35948  *
  35949  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat)
  35950  */
  35951 interface WebGLShaderPrecisionFormat {
  35952     /**
  35953      * The read-only **`WebGLShaderPrecisionFormat.precision`** property returns the number of bits of precision that can be represented.
  35954      *
  35955      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/precision)
  35956      */
  35957     readonly precision: GLint;
  35958     /**
  35959      * The read-only **`WebGLShaderPrecisionFormat.rangeMax`** property returns the base 2 log of the absolute value of the maximum value that can be represented.
  35960      *
  35961      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/rangeMax)
  35962      */
  35963     readonly rangeMax: GLint;
  35964     /**
  35965      * The read-only **`WebGLShaderPrecisionFormat.rangeMin`** property returns the base 2 log of the absolute value of the minimum value that can be represented.
  35966      *
  35967      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/rangeMin)
  35968      */
  35969     readonly rangeMin: GLint;
  35970 }
  35971 
  35972 declare var WebGLShaderPrecisionFormat: {
  35973     prototype: WebGLShaderPrecisionFormat;
  35974     new(): WebGLShaderPrecisionFormat;
  35975 };
  35976 
  35977 /**
  35978  * The **`WebGLSync`** interface is part of the WebGL 2 API and is used to synchronize activities between the GPU and the application.
  35979  *
  35980  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLSync)
  35981  */
  35982 interface WebGLSync {
  35983 }
  35984 
  35985 declare var WebGLSync: {
  35986     prototype: WebGLSync;
  35987     new(): WebGLSync;
  35988 };
  35989 
  35990 /**
  35991  * The **WebGLTexture** interface is part of the WebGL API and represents an opaque texture object providing storage and state for texturing operations.
  35992  *
  35993  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLTexture)
  35994  */
  35995 interface WebGLTexture {
  35996 }
  35997 
  35998 declare var WebGLTexture: {
  35999     prototype: WebGLTexture;
  36000     new(): WebGLTexture;
  36001 };
  36002 
  36003 /**
  36004  * The **`WebGLTransformFeedback`** interface is part of the WebGL 2 API and enables transform feedback, which is the process of capturing primitives generated by vertex processing.
  36005  *
  36006  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLTransformFeedback)
  36007  */
  36008 interface WebGLTransformFeedback {
  36009 }
  36010 
  36011 declare var WebGLTransformFeedback: {
  36012     prototype: WebGLTransformFeedback;
  36013     new(): WebGLTransformFeedback;
  36014 };
  36015 
  36016 /**
  36017  * The **WebGLUniformLocation** interface is part of the WebGL API and represents the location of a uniform variable in a shader program.
  36018  *
  36019  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLUniformLocation)
  36020  */
  36021 interface WebGLUniformLocation {
  36022 }
  36023 
  36024 declare var WebGLUniformLocation: {
  36025     prototype: WebGLUniformLocation;
  36026     new(): WebGLUniformLocation;
  36027 };
  36028 
  36029 /**
  36030  * The **`WebGLVertexArrayObject`** interface is part of the WebGL 2 API, represents vertex array objects (VAOs) pointing to vertex array data, and provides names for different sets of vertex data.
  36031  *
  36032  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLVertexArrayObject)
  36033  */
  36034 interface WebGLVertexArrayObject {
  36035 }
  36036 
  36037 declare var WebGLVertexArrayObject: {
  36038     prototype: WebGLVertexArrayObject;
  36039     new(): WebGLVertexArrayObject;
  36040 };
  36041 
  36042 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLVertexArrayObject) */
  36043 interface WebGLVertexArrayObjectOES {
  36044 }
  36045 
  36046 interface WebSocketEventMap {
  36047     "close": CloseEvent;
  36048     "error": Event;
  36049     "message": MessageEvent;
  36050     "open": Event;
  36051 }
  36052 
  36053 /**
  36054  * The `WebSocket` object provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection.
  36055  *
  36056  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket)
  36057  */
  36058 interface WebSocket extends EventTarget {
  36059     /**
  36060      * The **`WebSocket.binaryType`** property controls the type of binary data being received over the WebSocket connection.
  36061      *
  36062      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/binaryType)
  36063      */
  36064     binaryType: BinaryType;
  36065     /**
  36066      * The **`WebSocket.bufferedAmount`** read-only property returns the number of bytes of data that have been queued using calls to `send()` but not yet transmitted to the network.
  36067      *
  36068      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/bufferedAmount)
  36069      */
  36070     readonly bufferedAmount: number;
  36071     /**
  36072      * The **`WebSocket.extensions`** read-only property returns the extensions selected by the server.
  36073      *
  36074      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/extensions)
  36075      */
  36076     readonly extensions: string;
  36077     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/close_event) */
  36078     onclose: ((this: WebSocket, ev: CloseEvent) => any) | null;
  36079     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/error_event) */
  36080     onerror: ((this: WebSocket, ev: Event) => any) | null;
  36081     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/message_event) */
  36082     onmessage: ((this: WebSocket, ev: MessageEvent) => any) | null;
  36083     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/open_event) */
  36084     onopen: ((this: WebSocket, ev: Event) => any) | null;
  36085     /**
  36086      * The **`WebSocket.protocol`** read-only property returns the name of the sub-protocol the server selected; this will be one of the strings specified in the `protocols` parameter when creating the WebSocket object, or the empty string if no connection is established.
  36087      *
  36088      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/protocol)
  36089      */
  36090     readonly protocol: string;
  36091     /**
  36092      * The **`WebSocket.readyState`** read-only property returns the current state of the WebSocket connection.
  36093      *
  36094      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/readyState)
  36095      */
  36096     readonly readyState: number;
  36097     /**
  36098      * The **`WebSocket.url`** read-only property returns the absolute URL of the WebSocket as resolved by the constructor.
  36099      *
  36100      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/url)
  36101      */
  36102     readonly url: string;
  36103     /**
  36104      * The **`WebSocket.close()`** method closes the already `CLOSED`, this method does nothing.
  36105      *
  36106      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/close)
  36107      */
  36108     close(code?: number, reason?: string): void;
  36109     /**
  36110      * The **`WebSocket.send()`** method enqueues the specified data to be transmitted to the server over the WebSocket connection, increasing the value of `bufferedAmount` by the number of bytes needed to contain the data.
  36111      *
  36112      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/send)
  36113      */
  36114     send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
  36115     readonly CONNECTING: 0;
  36116     readonly OPEN: 1;
  36117     readonly CLOSING: 2;
  36118     readonly CLOSED: 3;
  36119     addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  36120     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  36121     removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  36122     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  36123 }
  36124 
  36125 declare var WebSocket: {
  36126     prototype: WebSocket;
  36127     new(url: string | URL, protocols?: string | string[]): WebSocket;
  36128     readonly CONNECTING: 0;
  36129     readonly OPEN: 1;
  36130     readonly CLOSING: 2;
  36131     readonly CLOSED: 3;
  36132 };
  36133 
  36134 /**
  36135  * The **`WebTransport`** interface of the WebTransport API provides functionality to enable a user agent to connect to an HTTP/3 server, initiate reliable and unreliable transport in either or both directions, and close the connection once it is no longer needed.
  36136  * Available only in secure contexts.
  36137  *
  36138  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport)
  36139  */
  36140 interface WebTransport {
  36141     /**
  36142      * The **`closed`** read-only property of the WebTransport interface returns a promise that resolves when the transport is closed.
  36143      *
  36144      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/closed)
  36145      */
  36146     readonly closed: Promise<WebTransportCloseInfo>;
  36147     /**
  36148      * The **`datagrams`** read-only property of the WebTransport interface returns a WebTransportDatagramDuplexStream instance that can be used to send and receive datagrams — unreliable data transmission.
  36149      *
  36150      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/datagrams)
  36151      */
  36152     readonly datagrams: WebTransportDatagramDuplexStream;
  36153     /**
  36154      * The **`incomingBidirectionalStreams`** read-only property of the WebTransport interface represents one or more bidirectional streams opened by the server.
  36155      *
  36156      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/incomingBidirectionalStreams)
  36157      */
  36158     readonly incomingBidirectionalStreams: ReadableStream;
  36159     /**
  36160      * The **`incomingUnidirectionalStreams`** read-only property of the WebTransport interface represents one or more unidirectional streams opened by the server.
  36161      *
  36162      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/incomingUnidirectionalStreams)
  36163      */
  36164     readonly incomingUnidirectionalStreams: ReadableStream;
  36165     /**
  36166      * The **`ready`** read-only property of the WebTransport interface returns a promise that resolves when the transport is ready to use.
  36167      *
  36168      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/ready)
  36169      */
  36170     readonly ready: Promise<void>;
  36171     /**
  36172      * The **`close()`** method of the WebTransport interface closes an ongoing WebTransport session.
  36173      *
  36174      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/close)
  36175      */
  36176     close(closeInfo?: WebTransportCloseInfo): void;
  36177     /**
  36178      * The **`createBidirectionalStream()`** method of the WebTransport interface asynchronously opens and returns a bidirectional stream.
  36179      *
  36180      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/createBidirectionalStream)
  36181      */
  36182     createBidirectionalStream(options?: WebTransportSendStreamOptions): Promise<WebTransportBidirectionalStream>;
  36183     /**
  36184      * The **`createUnidirectionalStream()`** method of the WebTransport interface asynchronously opens a unidirectional stream.
  36185      *
  36186      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/createUnidirectionalStream)
  36187      */
  36188     createUnidirectionalStream(options?: WebTransportSendStreamOptions): Promise<WritableStream>;
  36189 }
  36190 
  36191 declare var WebTransport: {
  36192     prototype: WebTransport;
  36193     new(url: string | URL, options?: WebTransportOptions): WebTransport;
  36194 };
  36195 
  36196 /**
  36197  * The **`WebTransportBidirectionalStream`** interface of the WebTransport API represents a bidirectional stream created by a server or a client that can be used for reliable transport.
  36198  * Available only in secure contexts.
  36199  *
  36200  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream)
  36201  */
  36202 interface WebTransportBidirectionalStream {
  36203     /**
  36204      * The **`readable`** read-only property of the WebTransportBidirectionalStream interface returns a WebTransportReceiveStream instance that can be used to reliably read incoming data.
  36205      *
  36206      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream/readable)
  36207      */
  36208     readonly readable: ReadableStream;
  36209     /**
  36210      * The **`writable`** read-only property of the WebTransportBidirectionalStream interface returns a WebTransportSendStream instance that can be used to write outgoing data.
  36211      *
  36212      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream/writable)
  36213      */
  36214     readonly writable: WritableStream;
  36215 }
  36216 
  36217 declare var WebTransportBidirectionalStream: {
  36218     prototype: WebTransportBidirectionalStream;
  36219     new(): WebTransportBidirectionalStream;
  36220 };
  36221 
  36222 /**
  36223  * The **`WebTransportDatagramDuplexStream`** interface of the WebTransport API represents a duplex stream that can be used for unreliable transport of datagrams between client and server.
  36224  * Available only in secure contexts.
  36225  *
  36226  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream)
  36227  */
  36228 interface WebTransportDatagramDuplexStream {
  36229     /**
  36230      * The **`incomingHighWaterMark`** property of the WebTransportDatagramDuplexStream interface gets or sets the high water mark for incoming chunks of data — this is the maximum size, in chunks, that the incoming ReadableStream's internal queue can reach before it is considered full.
  36231      *
  36232      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/incomingHighWaterMark)
  36233      */
  36234     incomingHighWaterMark: number;
  36235     /**
  36236      * The **`incomingMaxAge`** property of the WebTransportDatagramDuplexStream interface gets or sets the maximum age for incoming datagrams, in milliseconds.
  36237      *
  36238      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/incomingMaxAge)
  36239      */
  36240     incomingMaxAge: number | null;
  36241     /**
  36242      * The **`maxDatagramSize`** read-only property of the WebTransportDatagramDuplexStream interface returns the maximum allowable size of outgoing datagrams, in bytes, that can be written to WebTransportDatagramDuplexStream.writable.
  36243      *
  36244      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/maxDatagramSize)
  36245      */
  36246     readonly maxDatagramSize: number;
  36247     /**
  36248      * The **`outgoingHighWaterMark`** property of the WebTransportDatagramDuplexStream interface gets or sets the high water mark for outgoing chunks of data — this is the maximum size, in chunks, that the outgoing WritableStream's internal queue can reach before it is considered full.
  36249      *
  36250      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/outgoingHighWaterMark)
  36251      */
  36252     outgoingHighWaterMark: number;
  36253     /**
  36254      * The **`outgoingMaxAge`** property of the WebTransportDatagramDuplexStream interface gets or sets the maximum age for outgoing datagrams, in milliseconds.
  36255      *
  36256      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/outgoingMaxAge)
  36257      */
  36258     outgoingMaxAge: number | null;
  36259     /**
  36260      * The **`readable`** read-only property of the WebTransportDatagramDuplexStream interface returns a ReadableStream instance that can be used to unreliably read incoming datagrams from the stream.
  36261      *
  36262      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/readable)
  36263      */
  36264     readonly readable: ReadableStream;
  36265     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/writable) */
  36266     readonly writable: WritableStream;
  36267 }
  36268 
  36269 declare var WebTransportDatagramDuplexStream: {
  36270     prototype: WebTransportDatagramDuplexStream;
  36271     new(): WebTransportDatagramDuplexStream;
  36272 };
  36273 
  36274 /**
  36275  * The **`WebTransportError`** interface of the WebTransport API represents an error related to the API, which can arise from server errors, network connection problems, or client-initiated abort operations (for example, arising from a WritableStream.abort() call).
  36276  * Available only in secure contexts.
  36277  *
  36278  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError)
  36279  */
  36280 interface WebTransportError extends DOMException {
  36281     /**
  36282      * The **`source`** read-only property of the WebTransportError interface returns an enumerated value indicating the source of the error.
  36283      *
  36284      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError/source)
  36285      */
  36286     readonly source: WebTransportErrorSource;
  36287     /**
  36288      * The **`streamErrorCode`** read-only property of the WebTransportError interface returns a number in the range 0-255 indicating the application protocol error code for this error, or `null` if one is not available.
  36289      *
  36290      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError/streamErrorCode)
  36291      */
  36292     readonly streamErrorCode: number | null;
  36293 }
  36294 
  36295 declare var WebTransportError: {
  36296     prototype: WebTransportError;
  36297     new(message?: string, options?: WebTransportErrorOptions): WebTransportError;
  36298 };
  36299 
  36300 /**
  36301  * The **`WheelEvent`** interface represents events that occur due to the user moving a mouse wheel or similar input device.
  36302  *
  36303  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent)
  36304  */
  36305 interface WheelEvent extends MouseEvent {
  36306     /**
  36307      * The **`WheelEvent.deltaMode`** read-only property returns an `unsigned long` representing the unit of the delta values scroll amount.
  36308      *
  36309      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent/deltaMode)
  36310      */
  36311     readonly deltaMode: number;
  36312     /**
  36313      * The **`WheelEvent.deltaX`** read-only property is a `double` representing the horizontal scroll amount in the You must check the `deltaMode` property to determine the unit of the `deltaX` value.
  36314      *
  36315      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent/deltaX)
  36316      */
  36317     readonly deltaX: number;
  36318     /**
  36319      * The **`WheelEvent.deltaY`** read-only property is a `double` representing the vertical scroll amount in the You must check the `deltaMode` property to determine the unit of the `deltaY` value.
  36320      *
  36321      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent/deltaY)
  36322      */
  36323     readonly deltaY: number;
  36324     /**
  36325      * The **`WheelEvent.deltaZ`** read-only property is a `double` representing the scroll amount along the z-axis, in the You must check the `deltaMode` property to determine the unit of the `deltaZ` value.
  36326      *
  36327      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent/deltaZ)
  36328      */
  36329     readonly deltaZ: number;
  36330     readonly DOM_DELTA_PIXEL: 0x00;
  36331     readonly DOM_DELTA_LINE: 0x01;
  36332     readonly DOM_DELTA_PAGE: 0x02;
  36333 }
  36334 
  36335 declare var WheelEvent: {
  36336     prototype: WheelEvent;
  36337     new(type: string, eventInitDict?: WheelEventInit): WheelEvent;
  36338     readonly DOM_DELTA_PIXEL: 0x00;
  36339     readonly DOM_DELTA_LINE: 0x01;
  36340     readonly DOM_DELTA_PAGE: 0x02;
  36341 };
  36342 
  36343 interface WindowEventMap extends GlobalEventHandlersEventMap, WindowEventHandlersEventMap {
  36344     "DOMContentLoaded": Event;
  36345     "devicemotion": DeviceMotionEvent;
  36346     "deviceorientation": DeviceOrientationEvent;
  36347     "deviceorientationabsolute": DeviceOrientationEvent;
  36348     "gamepadconnected": GamepadEvent;
  36349     "gamepaddisconnected": GamepadEvent;
  36350     "orientationchange": Event;
  36351 }
  36352 
  36353 /**
  36354  * The **`Window`** interface represents a window containing a DOM document; the `document` property points to the DOM document loaded in that window.
  36355  *
  36356  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window)
  36357  */
  36358 interface Window extends EventTarget, AnimationFrameProvider, GlobalEventHandlers, WindowEventHandlers, WindowLocalStorage, WindowOrWorkerGlobalScope, WindowSessionStorage {
  36359     /**
  36360      * @deprecated This is a legacy alias of `navigator`.
  36361      *
  36362      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/navigator)
  36363      */
  36364     readonly clientInformation: Navigator;
  36365     /**
  36366      * The **`Window.closed`** read-only property indicates whether the referenced window is closed or not.
  36367      *
  36368      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/closed)
  36369      */
  36370     readonly closed: boolean;
  36371     /**
  36372      * The **`cookieStore`** read-only property of the Window interface returns a reference to the CookieStore object for the current document context.
  36373      *
  36374      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/cookieStore)
  36375      */
  36376     readonly cookieStore: CookieStore;
  36377     /**
  36378      * The **`customElements`** read-only property of the Window interface returns a reference to the CustomElementRegistry object, which can be used to register new custom elements and get information about previously registered custom elements.
  36379      *
  36380      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/customElements)
  36381      */
  36382     readonly customElements: CustomElementRegistry;
  36383     /**
  36384      * The **`devicePixelRatio`** of Window interface returns the ratio of the resolution in _physical pixels_ to the resolution in _CSS pixels_ for the current display device.
  36385      *
  36386      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/devicePixelRatio)
  36387      */
  36388     readonly devicePixelRatio: number;
  36389     /**
  36390      * **`window.document`** returns a reference to the document contained in the window.
  36391      *
  36392      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/document)
  36393      */
  36394     readonly document: Document;
  36395     /**
  36396      * The read-only Window property **`event`** returns the Event which is currently being handled by the site's code.
  36397      * @deprecated
  36398      *
  36399      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/event)
  36400      */
  36401     readonly event: Event | undefined;
  36402     /**
  36403      * The `external` property of the Window API returns an instance of the `External` interface, which was intended to contain functions related to adding external search providers to the browser.
  36404      * @deprecated
  36405      *
  36406      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/external)
  36407      */
  36408     readonly external: External;
  36409     /**
  36410      * The **`Window.frameElement`** property returns the element (such as iframe or object) in which the window is embedded.
  36411      *
  36412      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/frameElement)
  36413      */
  36414     readonly frameElement: Element | null;
  36415     /**
  36416      * Returns the window itself, which is an array-like object, listing the direct sub-frames of the current window.
  36417      *
  36418      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/frames)
  36419      */
  36420     readonly frames: WindowProxy;
  36421     /**
  36422      * The `Window.history` read-only property returns a reference to the History object, which provides an interface for manipulating the browser _session history_ (pages visited in the tab or frame that the current page is loaded in).
  36423      *
  36424      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/history)
  36425      */
  36426     readonly history: History;
  36427     /**
  36428      * The read-only **`innerHeight`** property of the including the height of the horizontal scroll bar, if present.
  36429      *
  36430      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/innerHeight)
  36431      */
  36432     readonly innerHeight: number;
  36433     /**
  36434      * The read-only Window property **`innerWidth`** returns the interior width of the window in pixels (that is, the width of the window's layout viewport).
  36435      *
  36436      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/innerWidth)
  36437      */
  36438     readonly innerWidth: number;
  36439     /**
  36440      * Returns the number of frames (either frame or A number.
  36441      *
  36442      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/length)
  36443      */
  36444     readonly length: number;
  36445     /**
  36446      * The **`Window.location`** read-only property returns a Location object with information about the current location of the document.
  36447      *
  36448      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/location)
  36449      */
  36450     get location(): Location;
  36451     set location(href: string);
  36452     /**
  36453      * Returns the `locationbar` object.
  36454      *
  36455      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/locationbar)
  36456      */
  36457     readonly locationbar: BarProp;
  36458     /**
  36459      * Returns the `menubar` object.
  36460      *
  36461      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/menubar)
  36462      */
  36463     readonly menubar: BarProp;
  36464     /**
  36465      * The `Window.name` property gets/sets the name of the window's browsing context.
  36466      *
  36467      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/name)
  36468      */
  36469     name: string;
  36470     /**
  36471      * The **`Window.navigator`** read-only property returns a reference to the Navigator object, which has methods and properties about the application running the script.
  36472      *
  36473      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/navigator)
  36474      */
  36475     readonly navigator: Navigator;
  36476     /**
  36477      * Available only in secure contexts.
  36478      *
  36479      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/devicemotion_event)
  36480      */
  36481     ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null;
  36482     /**
  36483      * Available only in secure contexts.
  36484      *
  36485      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/deviceorientation_event)
  36486      */
  36487     ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null;
  36488     /**
  36489      * Available only in secure contexts.
  36490      *
  36491      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/deviceorientationabsolute_event)
  36492      */
  36493     ondeviceorientationabsolute: ((this: Window, ev: DeviceOrientationEvent) => any) | null;
  36494     /**
  36495      * @deprecated
  36496      *
  36497      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/orientationchange_event)
  36498      */
  36499     onorientationchange: ((this: Window, ev: Event) => any) | null;
  36500     /**
  36501      * The Window interface's **`opener`** property returns a reference to the window that opened the window, either with Window.open, or by navigating a link with a `target` attribute.
  36502      *
  36503      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/opener)
  36504      */
  36505     opener: any;
  36506     /**
  36507      * Returns the orientation in degrees (in 90-degree increments) of the viewport relative to the device's natural orientation.
  36508      * @deprecated
  36509      *
  36510      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/orientation)
  36511      */
  36512     readonly orientation: number;
  36513     /**
  36514      * The **`originAgentCluster`** read-only property of the Window interface returns `true` if this window belongs to an _origin-keyed agent cluster_: this means that the operating system has provided dedicated resources (for example an operating system process) to this window's origin that are not shared with windows from other origins.
  36515      *
  36516      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/originAgentCluster)
  36517      */
  36518     readonly originAgentCluster: boolean;
  36519     /**
  36520      * The **`Window.outerHeight`** read-only property returns the height in pixels of the whole browser window, including any sidebar, window chrome, and window-resizing borders/handles.
  36521      *
  36522      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/outerHeight)
  36523      */
  36524     readonly outerHeight: number;
  36525     /**
  36526      * **`Window.outerWidth`** read-only property returns the width of the outside of the browser window.
  36527      *
  36528      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/outerWidth)
  36529      */
  36530     readonly outerWidth: number;
  36531     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollX) */
  36532     readonly pageXOffset: number;
  36533     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollY) */
  36534     readonly pageYOffset: number;
  36535     /**
  36536      * The **`Window.parent`** property is a reference to the parent of the current window or subframe.
  36537      *
  36538      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/parent)
  36539      */
  36540     readonly parent: WindowProxy;
  36541     /**
  36542      * Returns the `personalbar` object.
  36543      *
  36544      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/personalbar)
  36545      */
  36546     readonly personalbar: BarProp;
  36547     /**
  36548      * The Window property **`screen`** returns a reference to the screen object associated with the window.
  36549      *
  36550      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screen)
  36551      */
  36552     readonly screen: Screen;
  36553     /**
  36554      * The **`Window.screenLeft`** read-only property returns the horizontal distance, in CSS pixels, from the left border of the user's browser viewport to the left side of the screen.
  36555      *
  36556      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenLeft)
  36557      */
  36558     readonly screenLeft: number;
  36559     /**
  36560      * The **`Window.screenTop`** read-only property returns the vertical distance, in CSS pixels, from the top border of the user's browser viewport to the top side of the screen.
  36561      *
  36562      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenTop)
  36563      */
  36564     readonly screenTop: number;
  36565     /**
  36566      * The **`Window.screenX`** read-only property returns the horizontal distance, in CSS pixels, of the left border of the user's browser viewport to the left side of the screen.
  36567      *
  36568      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenX)
  36569      */
  36570     readonly screenX: number;
  36571     /**
  36572      * The **`Window.screenY`** read-only property returns the vertical distance, in CSS pixels, of the top border of the user's browser viewport to the top edge of the screen.
  36573      *
  36574      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenY)
  36575      */
  36576     readonly screenY: number;
  36577     /**
  36578      * The read-only **`scrollX`** property of the Window interface returns the number of pixels by which the document is currently scrolled horizontally.
  36579      *
  36580      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollX)
  36581      */
  36582     readonly scrollX: number;
  36583     /**
  36584      * The read-only **`scrollY`** property of the Window interface returns the number of pixels by which the document is currently scrolled vertically.
  36585      *
  36586      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollY)
  36587      */
  36588     readonly scrollY: number;
  36589     /**
  36590      * Returns the `scrollbars` object.
  36591      *
  36592      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollbars)
  36593      */
  36594     readonly scrollbars: BarProp;
  36595     /**
  36596      * The **`Window.self`** read-only property returns the window itself, as a WindowProxy.
  36597      *
  36598      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/self)
  36599      */
  36600     readonly self: Window & typeof globalThis;
  36601     /**
  36602      * The `speechSynthesis` read-only property of the Window object returns a SpeechSynthesis object, which is the entry point into using Web Speech API speech synthesis functionality.
  36603      *
  36604      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/speechSynthesis)
  36605      */
  36606     readonly speechSynthesis: SpeechSynthesis;
  36607     /**
  36608      * The **`status`** property of the bar at the bottom of the browser window.
  36609      * @deprecated
  36610      *
  36611      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/status)
  36612      */
  36613     status: string;
  36614     /**
  36615      * Returns the `statusbar` object.
  36616      *
  36617      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/statusbar)
  36618      */
  36619     readonly statusbar: BarProp;
  36620     /**
  36621      * Returns the `toolbar` object.
  36622      *
  36623      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/toolbar)
  36624      */
  36625     readonly toolbar: BarProp;
  36626     /**
  36627      * Returns a reference to the topmost window in the window hierarchy.
  36628      *
  36629      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/top)
  36630      */
  36631     readonly top: WindowProxy | null;
  36632     /**
  36633      * The **`visualViewport`** read-only property of the Window interface returns a VisualViewport object representing the visual viewport for a given window, or `null` if current document is not fully active.
  36634      *
  36635      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/visualViewport)
  36636      */
  36637     readonly visualViewport: VisualViewport | null;
  36638     /**
  36639      * The **`window`** property of a Window object points to the window object itself.
  36640      *
  36641      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)
  36642      */
  36643     readonly window: Window & typeof globalThis;
  36644     /**
  36645      * `window.alert()` instructs the browser to display a dialog with an optional message, and to wait until the user dismisses the dialog.
  36646      *
  36647      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/alert)
  36648      */
  36649     alert(message?: any): void;
  36650     /**
  36651      * The **`Window.blur()`** method does nothing.
  36652      * @deprecated
  36653      *
  36654      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/blur)
  36655      */
  36656     blur(): void;
  36657     /**
  36658      * The **`window.cancelIdleCallback()`** method cancels a callback previously scheduled with window.requestIdleCallback().
  36659      *
  36660      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/cancelIdleCallback)
  36661      */
  36662     cancelIdleCallback(handle: number): void;
  36663     /**
  36664      * The **`Window.captureEvents()`** method does nothing.
  36665      * @deprecated
  36666      *
  36667      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/captureEvents)
  36668      */
  36669     captureEvents(): void;
  36670     /**
  36671      * The **`Window.close()`** method closes the current window, or the window on which it was called.
  36672      *
  36673      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/close)
  36674      */
  36675     close(): void;
  36676     /**
  36677      * `window.confirm()` instructs the browser to display a dialog with an optional message, and to wait until the user either confirms or cancels the dialog.
  36678      *
  36679      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/confirm)
  36680      */
  36681     confirm(message?: string): boolean;
  36682     /**
  36683      * Makes a request to bring the window to the front.
  36684      *
  36685      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/focus)
  36686      */
  36687     focus(): void;
  36688     /**
  36689      * The **`Window.getComputedStyle()`** method returns an object containing the values of all CSS properties of an element, after applying active stylesheets and resolving any basic computation those values may contain.
  36690      *
  36691      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/getComputedStyle)
  36692      */
  36693     getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration;
  36694     /**
  36695      * The **`getSelection()`** method of the Window interface returns the Selection object associated with the window's document, representing the range of text selected by the user or the current position of the caret.
  36696      *
  36697      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/getSelection)
  36698      */
  36699     getSelection(): Selection | null;
  36700     /**
  36701      * The Window interface's **`matchMedia()`** method returns a new MediaQueryList object that can then be used to determine if the document matches the media query string, as well as to monitor the document to detect when it matches (or stops matching) that media query.
  36702      *
  36703      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/matchMedia)
  36704      */
  36705     matchMedia(query: string): MediaQueryList;
  36706     /**
  36707      * The **`moveBy()`** method of the Window interface moves the current window by a specified amount.
  36708      *
  36709      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/moveBy)
  36710      */
  36711     moveBy(x: number, y: number): void;
  36712     /**
  36713      * The **`moveTo()`** method of the Window interface moves the current window to the specified coordinates.
  36714      *
  36715      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/moveTo)
  36716      */
  36717     moveTo(x: number, y: number): void;
  36718     /**
  36719      * The **`open()`** method of the `Window` interface loads a specified resource into a new or existing browsing context (that is, a tab, a window, or an iframe) under a specified name.
  36720      *
  36721      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/open)
  36722      */
  36723     open(url?: string | URL, target?: string, features?: string): WindowProxy | null;
  36724     /**
  36725      * The **`window.postMessage()`** method safely enables cross-origin communication between Window objects; _e.g.,_ between a page and a pop-up that it spawned, or between a page and an iframe embedded within it.
  36726      *
  36727      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/postMessage)
  36728      */
  36729     postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;
  36730     postMessage(message: any, options?: WindowPostMessageOptions): void;
  36731     /**
  36732      * Opens the print dialog to print the current document.
  36733      *
  36734      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/print)
  36735      */
  36736     print(): void;
  36737     /**
  36738      * `window.prompt()` instructs the browser to display a dialog with an optional message prompting the user to input some text, and to wait until the user either submits the text or cancels the dialog.
  36739      *
  36740      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/prompt)
  36741      */
  36742     prompt(message?: string, _default?: string): string | null;
  36743     /**
  36744      * Releases the window from trapping events of a specific type.
  36745      * @deprecated
  36746      *
  36747      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/releaseEvents)
  36748      */
  36749     releaseEvents(): void;
  36750     /**
  36751      * The **`window.requestIdleCallback()`** method queues a function to be called during a browser's idle periods.
  36752      *
  36753      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/requestIdleCallback)
  36754      */
  36755     requestIdleCallback(callback: IdleRequestCallback, options?: IdleRequestOptions): number;
  36756     /**
  36757      * The **`Window.resizeBy()`** method resizes the current window by a specified amount.
  36758      *
  36759      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/resizeBy)
  36760      */
  36761     resizeBy(x: number, y: number): void;
  36762     /**
  36763      * The **`Window.resizeTo()`** method dynamically resizes the window.
  36764      *
  36765      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/resizeTo)
  36766      */
  36767     resizeTo(width: number, height: number): void;
  36768     /**
  36769      * The **`Window.scroll()`** method scrolls the window to a particular place in the document.
  36770      *
  36771      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scroll)
  36772      */
  36773     scroll(options?: ScrollToOptions): void;
  36774     scroll(x: number, y: number): void;
  36775     /**
  36776      * The **`Window.scrollBy()`** method scrolls the document in the window by the given amount.
  36777      *
  36778      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollBy)
  36779      */
  36780     scrollBy(options?: ScrollToOptions): void;
  36781     scrollBy(x: number, y: number): void;
  36782     /**
  36783      * **`Window.scrollTo()`** scrolls to a particular set of coordinates in the document.
  36784      *
  36785      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollTo)
  36786      */
  36787     scrollTo(options?: ScrollToOptions): void;
  36788     scrollTo(x: number, y: number): void;
  36789     /**
  36790      * The **`window.stop()`** stops further resource loading in the current browsing context, equivalent to the stop button in the browser.
  36791      *
  36792      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/stop)
  36793      */
  36794     stop(): void;
  36795     addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  36796     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  36797     removeEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  36798     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  36799     [index: number]: Window;
  36800 }
  36801 
  36802 declare var Window: {
  36803     prototype: Window;
  36804     new(): Window;
  36805 };
  36806 
  36807 interface WindowEventHandlersEventMap {
  36808     "afterprint": Event;
  36809     "beforeprint": Event;
  36810     "beforeunload": BeforeUnloadEvent;
  36811     "gamepadconnected": GamepadEvent;
  36812     "gamepaddisconnected": GamepadEvent;
  36813     "hashchange": HashChangeEvent;
  36814     "languagechange": Event;
  36815     "message": MessageEvent;
  36816     "messageerror": MessageEvent;
  36817     "offline": Event;
  36818     "online": Event;
  36819     "pagehide": PageTransitionEvent;
  36820     "pagereveal": PageRevealEvent;
  36821     "pageshow": PageTransitionEvent;
  36822     "pageswap": PageSwapEvent;
  36823     "popstate": PopStateEvent;
  36824     "rejectionhandled": PromiseRejectionEvent;
  36825     "storage": StorageEvent;
  36826     "unhandledrejection": PromiseRejectionEvent;
  36827     "unload": Event;
  36828 }
  36829 
  36830 interface WindowEventHandlers {
  36831     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/afterprint_event) */
  36832     onafterprint: ((this: WindowEventHandlers, ev: Event) => any) | null;
  36833     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/beforeprint_event) */
  36834     onbeforeprint: ((this: WindowEventHandlers, ev: Event) => any) | null;
  36835     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/beforeunload_event) */
  36836     onbeforeunload: ((this: WindowEventHandlers, ev: BeforeUnloadEvent) => any) | null;
  36837     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/gamepadconnected_event) */
  36838     ongamepadconnected: ((this: WindowEventHandlers, ev: GamepadEvent) => any) | null;
  36839     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/gamepaddisconnected_event) */
  36840     ongamepaddisconnected: ((this: WindowEventHandlers, ev: GamepadEvent) => any) | null;
  36841     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/hashchange_event) */
  36842     onhashchange: ((this: WindowEventHandlers, ev: HashChangeEvent) => any) | null;
  36843     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/languagechange_event) */
  36844     onlanguagechange: ((this: WindowEventHandlers, ev: Event) => any) | null;
  36845     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/message_event) */
  36846     onmessage: ((this: WindowEventHandlers, ev: MessageEvent) => any) | null;
  36847     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/messageerror_event) */
  36848     onmessageerror: ((this: WindowEventHandlers, ev: MessageEvent) => any) | null;
  36849     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/offline_event) */
  36850     onoffline: ((this: WindowEventHandlers, ev: Event) => any) | null;
  36851     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/online_event) */
  36852     ononline: ((this: WindowEventHandlers, ev: Event) => any) | null;
  36853     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pagehide_event) */
  36854     onpagehide: ((this: WindowEventHandlers, ev: PageTransitionEvent) => any) | null;
  36855     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pagereveal_event) */
  36856     onpagereveal: ((this: WindowEventHandlers, ev: PageRevealEvent) => any) | null;
  36857     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pageshow_event) */
  36858     onpageshow: ((this: WindowEventHandlers, ev: PageTransitionEvent) => any) | null;
  36859     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pageswap_event) */
  36860     onpageswap: ((this: WindowEventHandlers, ev: PageSwapEvent) => any) | null;
  36861     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/popstate_event) */
  36862     onpopstate: ((this: WindowEventHandlers, ev: PopStateEvent) => any) | null;
  36863     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/rejectionhandled_event) */
  36864     onrejectionhandled: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;
  36865     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/storage_event) */
  36866     onstorage: ((this: WindowEventHandlers, ev: StorageEvent) => any) | null;
  36867     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unhandledrejection_event) */
  36868     onunhandledrejection: ((this: WindowEventHandlers, ev: PromiseRejectionEvent) => any) | null;
  36869     /**
  36870      * @deprecated
  36871      *
  36872      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unload_event)
  36873      */
  36874     onunload: ((this: WindowEventHandlers, ev: Event) => any) | null;
  36875     addEventListener<K extends keyof WindowEventHandlersEventMap>(type: K, listener: (this: WindowEventHandlers, ev: WindowEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  36876     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  36877     removeEventListener<K extends keyof WindowEventHandlersEventMap>(type: K, listener: (this: WindowEventHandlers, ev: WindowEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  36878     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  36879 }
  36880 
  36881 interface WindowLocalStorage {
  36882     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/localStorage) */
  36883     readonly localStorage: Storage;
  36884 }
  36885 
  36886 interface WindowOrWorkerGlobalScope {
  36887     /**
  36888      * Available only in secure contexts.
  36889      *
  36890      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/caches)
  36891      */
  36892     readonly caches: CacheStorage;
  36893     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/crossOriginIsolated) */
  36894     readonly crossOriginIsolated: boolean;
  36895     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/crypto) */
  36896     readonly crypto: Crypto;
  36897     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/indexedDB) */
  36898     readonly indexedDB: IDBFactory;
  36899     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/isSecureContext) */
  36900     readonly isSecureContext: boolean;
  36901     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/origin) */
  36902     readonly origin: string;
  36903     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/performance) */
  36904     readonly performance: Performance;
  36905     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/atob) */
  36906     atob(data: string): string;
  36907     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/btoa) */
  36908     btoa(data: string): string;
  36909     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/clearInterval) */
  36910     clearInterval(id: number | undefined): void;
  36911     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/clearTimeout) */
  36912     clearTimeout(id: number | undefined): void;
  36913     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/createImageBitmap) */
  36914     createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;
  36915     createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;
  36916     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/fetch) */
  36917     fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
  36918     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/queueMicrotask) */
  36919     queueMicrotask(callback: VoidFunction): void;
  36920     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/reportError) */
  36921     reportError(e: any): void;
  36922     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/setInterval) */
  36923     setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
  36924     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/setTimeout) */
  36925     setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
  36926     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/structuredClone) */
  36927     structuredClone<T = any>(value: T, options?: StructuredSerializeOptions): T;
  36928 }
  36929 
  36930 interface WindowSessionStorage {
  36931     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/sessionStorage) */
  36932     readonly sessionStorage: Storage;
  36933 }
  36934 
  36935 interface WorkerEventMap extends AbstractWorkerEventMap, MessageEventTargetEventMap {
  36936 }
  36937 
  36938 /**
  36939  * The **`Worker`** interface of the Web Workers API represents a background task that can be created via script, which can send messages back to its creator.
  36940  *
  36941  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker)
  36942  */
  36943 interface Worker extends EventTarget, AbstractWorker, MessageEventTarget<Worker> {
  36944     /**
  36945      * The **`postMessage()`** method of the Worker interface sends a message to the worker.
  36946      *
  36947      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/postMessage)
  36948      */
  36949     postMessage(message: any, transfer: Transferable[]): void;
  36950     postMessage(message: any, options?: StructuredSerializeOptions): void;
  36951     /**
  36952      * The **`terminate()`** method of the Worker interface immediately terminates the Worker.
  36953      *
  36954      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/terminate)
  36955      */
  36956     terminate(): void;
  36957     addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  36958     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  36959     removeEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  36960     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  36961 }
  36962 
  36963 declare var Worker: {
  36964     prototype: Worker;
  36965     new(scriptURL: string | URL, options?: WorkerOptions): Worker;
  36966 };
  36967 
  36968 /**
  36969  * The **`Worklet`** interface is a lightweight version of Web Workers and gives developers access to low-level parts of the rendering pipeline.
  36970  * Available only in secure contexts.
  36971  *
  36972  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worklet)
  36973  */
  36974 interface Worklet {
  36975     /**
  36976      * The **`addModule()`** method of the adds it to the current `Worklet`.
  36977      *
  36978      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worklet/addModule)
  36979      */
  36980     addModule(moduleURL: string | URL, options?: WorkletOptions): Promise<void>;
  36981 }
  36982 
  36983 declare var Worklet: {
  36984     prototype: Worklet;
  36985     new(): Worklet;
  36986 };
  36987 
  36988 /**
  36989  * The **`WritableStream`** interface of the Streams API provides a standard abstraction for writing streaming data to a destination, known as a sink.
  36990  *
  36991  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream)
  36992  */
  36993 interface WritableStream<W = any> {
  36994     /**
  36995      * The **`locked`** read-only property of the WritableStream interface returns a boolean indicating whether the `WritableStream` is locked to a writer.
  36996      *
  36997      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/locked)
  36998      */
  36999     readonly locked: boolean;
  37000     /**
  37001      * The **`abort()`** method of the WritableStream interface aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be immediately moved to an error state, with any queued writes discarded.
  37002      *
  37003      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/abort)
  37004      */
  37005     abort(reason?: any): Promise<void>;
  37006     /**
  37007      * The **`close()`** method of the WritableStream interface closes the associated stream.
  37008      *
  37009      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/close)
  37010      */
  37011     close(): Promise<void>;
  37012     /**
  37013      * The **`getWriter()`** method of the WritableStream interface returns a new instance of WritableStreamDefaultWriter and locks the stream to that instance.
  37014      *
  37015      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/getWriter)
  37016      */
  37017     getWriter(): WritableStreamDefaultWriter<W>;
  37018 }
  37019 
  37020 declare var WritableStream: {
  37021     prototype: WritableStream;
  37022     new<W = any>(underlyingSink?: UnderlyingSink<W>, strategy?: QueuingStrategy<W>): WritableStream<W>;
  37023 };
  37024 
  37025 /**
  37026  * The **`WritableStreamDefaultController`** interface of the Streams API represents a controller allowing control of a WritableStream's state.
  37027  *
  37028  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController)
  37029  */
  37030 interface WritableStreamDefaultController {
  37031     /**
  37032      * The read-only **`signal`** property of the WritableStreamDefaultController interface returns the AbortSignal associated with the controller.
  37033      *
  37034      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController/signal)
  37035      */
  37036     readonly signal: AbortSignal;
  37037     /**
  37038      * The **`error()`** method of the with the associated stream to error.
  37039      *
  37040      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController/error)
  37041      */
  37042     error(e?: any): void;
  37043 }
  37044 
  37045 declare var WritableStreamDefaultController: {
  37046     prototype: WritableStreamDefaultController;
  37047     new(): WritableStreamDefaultController;
  37048 };
  37049 
  37050 /**
  37051  * The **`WritableStreamDefaultWriter`** interface of the Streams API 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.
  37052  *
  37053  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter)
  37054  */
  37055 interface WritableStreamDefaultWriter<W = any> {
  37056     /**
  37057      * The **`closed`** read-only property of the the stream errors or the writer's lock is released.
  37058      *
  37059      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/closed)
  37060      */
  37061     readonly closed: Promise<void>;
  37062     /**
  37063      * The **`desiredSize`** read-only property of the to fill the stream's internal queue.
  37064      *
  37065      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/desiredSize)
  37066      */
  37067     readonly desiredSize: number | null;
  37068     /**
  37069      * The **`ready`** read-only property of the that resolves when the desired size of the stream's internal queue transitions from non-positive to positive, signaling that it is no longer applying backpressure.
  37070      *
  37071      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/ready)
  37072      */
  37073     readonly ready: Promise<void>;
  37074     /**
  37075      * The **`abort()`** method of the the producer can no longer successfully write to the stream and it is to be immediately moved to an error state, with any queued writes discarded.
  37076      *
  37077      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/abort)
  37078      */
  37079     abort(reason?: any): Promise<void>;
  37080     /**
  37081      * The **`close()`** method of the stream.
  37082      *
  37083      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/close)
  37084      */
  37085     close(): Promise<void>;
  37086     /**
  37087      * The **`releaseLock()`** method of the corresponding stream.
  37088      *
  37089      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/releaseLock)
  37090      */
  37091     releaseLock(): void;
  37092     /**
  37093      * The **`write()`** method of the operation.
  37094      *
  37095      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/write)
  37096      */
  37097     write(chunk?: W): Promise<void>;
  37098 }
  37099 
  37100 declare var WritableStreamDefaultWriter: {
  37101     prototype: WritableStreamDefaultWriter;
  37102     new<W = any>(stream: WritableStream<W>): WritableStreamDefaultWriter<W>;
  37103 };
  37104 
  37105 /**
  37106  * The **XMLDocument** interface represents an XML document.
  37107  *
  37108  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLDocument)
  37109  */
  37110 interface XMLDocument extends Document {
  37111     addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: XMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  37112     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  37113     removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: XMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  37114     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  37115 }
  37116 
  37117 declare var XMLDocument: {
  37118     prototype: XMLDocument;
  37119     new(): XMLDocument;
  37120 };
  37121 
  37122 interface XMLHttpRequestEventMap extends XMLHttpRequestEventTargetEventMap {
  37123     "readystatechange": Event;
  37124 }
  37125 
  37126 /**
  37127  * `XMLHttpRequest` (XHR) objects are used to interact with servers.
  37128  *
  37129  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest)
  37130  */
  37131 interface XMLHttpRequest extends XMLHttpRequestEventTarget {
  37132     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/readystatechange_event) */
  37133     onreadystatechange: ((this: XMLHttpRequest, ev: Event) => any) | null;
  37134     /**
  37135      * The **XMLHttpRequest.readyState** property returns the state an XMLHttpRequest client is in.
  37136      *
  37137      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/readyState)
  37138      */
  37139     readonly readyState: number;
  37140     /**
  37141      * The XMLHttpRequest **`response`** property returns the response's body content as an ArrayBuffer, a Blob, a Document, a JavaScript Object, or a string, depending on the value of the request's XMLHttpRequest.responseType property.
  37142      *
  37143      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/response)
  37144      */
  37145     readonly response: any;
  37146     /**
  37147      * The read-only XMLHttpRequest property **`responseText`** returns the text received from a server following a request being sent.
  37148      *
  37149      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseText)
  37150      */
  37151     readonly responseText: string;
  37152     /**
  37153      * The XMLHttpRequest property **`responseType`** is an enumerated string value specifying the type of data contained in the response.
  37154      *
  37155      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseType)
  37156      */
  37157     responseType: XMLHttpRequestResponseType;
  37158     /**
  37159      * The read-only **`XMLHttpRequest.responseURL`** property returns the serialized URL of the response or the empty string if the URL is `null`.
  37160      *
  37161      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseURL)
  37162      */
  37163     readonly responseURL: string;
  37164     /**
  37165      * The **`XMLHttpRequest.responseXML`** read-only property returns a Document containing the HTML or XML retrieved by the request; or `null` if the request was unsuccessful, has not yet been sent, or if the data can't be parsed as XML or HTML.
  37166      *
  37167      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseXML)
  37168      */
  37169     readonly responseXML: Document | null;
  37170     /**
  37171      * The read-only **`XMLHttpRequest.status`** property returns the numerical HTTP status code of the `XMLHttpRequest`'s response.
  37172      *
  37173      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/status)
  37174      */
  37175     readonly status: number;
  37176     /**
  37177      * The read-only **`XMLHttpRequest.statusText`** property returns a string containing the response's status message as returned by the HTTP server.
  37178      *
  37179      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/statusText)
  37180      */
  37181     readonly statusText: string;
  37182     /**
  37183      * The **`XMLHttpRequest.timeout`** property is an `unsigned long` representing the number of milliseconds a request can take before automatically being terminated.
  37184      *
  37185      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/timeout)
  37186      */
  37187     timeout: number;
  37188     /**
  37189      * The XMLHttpRequest `upload` property returns an XMLHttpRequestUpload object that can be observed to monitor an upload's progress.
  37190      *
  37191      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/upload)
  37192      */
  37193     readonly upload: XMLHttpRequestUpload;
  37194     /**
  37195      * The **`XMLHttpRequest.withCredentials`** property is a boolean value that indicates whether or not cross-site `Access-Control` requests should be made using credentials such as cookies, authentication headers or TLS client certificates.
  37196      *
  37197      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/withCredentials)
  37198      */
  37199     withCredentials: boolean;
  37200     /**
  37201      * The **`XMLHttpRequest.abort()`** method aborts the request if it has already been sent.
  37202      *
  37203      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/abort)
  37204      */
  37205     abort(): void;
  37206     /**
  37207      * The XMLHttpRequest method **`getAllResponseHeaders()`** returns all the response headers, separated by CRLF, as a string, or returns `null` if no response has been received.
  37208      *
  37209      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getAllResponseHeaders)
  37210      */
  37211     getAllResponseHeaders(): string;
  37212     /**
  37213      * The XMLHttpRequest method **`getResponseHeader()`** returns the string containing the text of a particular header's value.
  37214      *
  37215      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getResponseHeader)
  37216      */
  37217     getResponseHeader(name: string): string | null;
  37218     /**
  37219      * The XMLHttpRequest method **`open()`** initializes a newly-created request, or re-initializes an existing one.
  37220      *
  37221      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/open)
  37222      */
  37223     open(method: string, url: string | URL): void;
  37224     open(method: string, url: string | URL, async: boolean, username?: string | null, password?: string | null): void;
  37225     /**
  37226      * The XMLHttpRequest method **`overrideMimeType()`** specifies a MIME type other than the one provided by the server to be used instead when interpreting the data being transferred in a request.
  37227      *
  37228      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/overrideMimeType)
  37229      */
  37230     overrideMimeType(mime: string): void;
  37231     /**
  37232      * The XMLHttpRequest method **`send()`** sends the request to the server.
  37233      *
  37234      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/send)
  37235      */
  37236     send(body?: Document | XMLHttpRequestBodyInit | null): void;
  37237     /**
  37238      * The XMLHttpRequest method **`setRequestHeader()`** sets the value of an HTTP request header.
  37239      *
  37240      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/setRequestHeader)
  37241      */
  37242     setRequestHeader(name: string, value: string): void;
  37243     readonly UNSENT: 0;
  37244     readonly OPENED: 1;
  37245     readonly HEADERS_RECEIVED: 2;
  37246     readonly LOADING: 3;
  37247     readonly DONE: 4;
  37248     addEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  37249     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  37250     removeEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  37251     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  37252 }
  37253 
  37254 declare var XMLHttpRequest: {
  37255     prototype: XMLHttpRequest;
  37256     new(): XMLHttpRequest;
  37257     readonly UNSENT: 0;
  37258     readonly OPENED: 1;
  37259     readonly HEADERS_RECEIVED: 2;
  37260     readonly LOADING: 3;
  37261     readonly DONE: 4;
  37262 };
  37263 
  37264 interface XMLHttpRequestEventTargetEventMap {
  37265     "abort": ProgressEvent<XMLHttpRequestEventTarget>;
  37266     "error": ProgressEvent<XMLHttpRequestEventTarget>;
  37267     "load": ProgressEvent<XMLHttpRequestEventTarget>;
  37268     "loadend": ProgressEvent<XMLHttpRequestEventTarget>;
  37269     "loadstart": ProgressEvent<XMLHttpRequestEventTarget>;
  37270     "progress": ProgressEvent<XMLHttpRequestEventTarget>;
  37271     "timeout": ProgressEvent<XMLHttpRequestEventTarget>;
  37272 }
  37273 
  37274 /**
  37275  * `XMLHttpRequestEventTarget` is the interface that describes the event handlers shared on XMLHttpRequest and XMLHttpRequestUpload.
  37276  *
  37277  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequestEventTarget)
  37278  */
  37279 interface XMLHttpRequestEventTarget extends EventTarget {
  37280     onabort: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
  37281     onerror: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
  37282     onload: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
  37283     onloadend: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
  37284     onloadstart: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
  37285     onprogress: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
  37286     ontimeout: ((this: XMLHttpRequest, ev: ProgressEvent) => any) | null;
  37287     addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  37288     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  37289     removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  37290     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  37291 }
  37292 
  37293 declare var XMLHttpRequestEventTarget: {
  37294     prototype: XMLHttpRequestEventTarget;
  37295     new(): XMLHttpRequestEventTarget;
  37296 };
  37297 
  37298 /**
  37299  * The **`XMLHttpRequestUpload`** interface represents the upload process for a specific XMLHttpRequest.
  37300  *
  37301  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequestUpload)
  37302  */
  37303 interface XMLHttpRequestUpload extends XMLHttpRequestEventTarget {
  37304     addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  37305     addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  37306     removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  37307     removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  37308 }
  37309 
  37310 declare var XMLHttpRequestUpload: {
  37311     prototype: XMLHttpRequestUpload;
  37312     new(): XMLHttpRequestUpload;
  37313 };
  37314 
  37315 /**
  37316  * The `XMLSerializer` interface provides the XMLSerializer.serializeToString method to construct an XML string representing a DOM tree.
  37317  *
  37318  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLSerializer)
  37319  */
  37320 interface XMLSerializer {
  37321     /**
  37322      * The XMLSerializer method **`serializeToString()`** constructs a string representing the specified DOM tree in XML form.
  37323      *
  37324      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLSerializer/serializeToString)
  37325      */
  37326     serializeToString(root: Node): string;
  37327 }
  37328 
  37329 declare var XMLSerializer: {
  37330     prototype: XMLSerializer;
  37331     new(): XMLSerializer;
  37332 };
  37333 
  37334 /**
  37335  * The `XPathEvaluator` interface allows to compile and evaluate XPath expressions.
  37336  *
  37337  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathEvaluator)
  37338  */
  37339 interface XPathEvaluator extends XPathEvaluatorBase {
  37340 }
  37341 
  37342 declare var XPathEvaluator: {
  37343     prototype: XPathEvaluator;
  37344     new(): XPathEvaluator;
  37345 };
  37346 
  37347 interface XPathEvaluatorBase {
  37348     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createExpression) */
  37349     createExpression(expression: string, resolver?: XPathNSResolver | null): XPathExpression;
  37350     /**
  37351      * @deprecated
  37352      *
  37353      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createNSResolver)
  37354      */
  37355     createNSResolver(nodeResolver: Node): Node;
  37356     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/evaluate) */
  37357     evaluate(expression: string, contextNode: Node, resolver?: XPathNSResolver | null, type?: number, result?: XPathResult | null): XPathResult;
  37358 }
  37359 
  37360 /**
  37361  * This interface is a compiled XPath expression that can be evaluated on a document or specific node to return information from its DOM tree.
  37362  *
  37363  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathExpression)
  37364  */
  37365 interface XPathExpression {
  37366     /**
  37367      * The **`evaluate()`** method of the returns an XPathResult.
  37368      *
  37369      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathExpression/evaluate)
  37370      */
  37371     evaluate(contextNode: Node, type?: number, result?: XPathResult | null): XPathResult;
  37372 }
  37373 
  37374 declare var XPathExpression: {
  37375     prototype: XPathExpression;
  37376     new(): XPathExpression;
  37377 };
  37378 
  37379 /**
  37380  * The **`XPathResult`** interface represents the results generated by evaluating an XPath expression within the context of a given node.
  37381  *
  37382  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult)
  37383  */
  37384 interface XPathResult {
  37385     /**
  37386      * The read-only **`booleanValue`** property of the The return value is the boolean value of the `XPathResult` returned by In case XPathResult.resultType is not `BOOLEAN_TYPE`, a The following example shows the use of the `booleanValue` property.
  37387      *
  37388      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/booleanValue)
  37389      */
  37390     readonly booleanValue: boolean;
  37391     /**
  37392      * The read-only **`invalidIteratorState`** property of the is `true` if XPathResult.resultType is `UNORDERED_NODE_ITERATOR_TYPE` or `ORDERED_NODE_ITERATOR_TYPE` and the document has been modified since this result was returned.
  37393      *
  37394      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/invalidIteratorState)
  37395      */
  37396     readonly invalidIteratorState: boolean;
  37397     /**
  37398      * The read-only **`numberValue`** property of the The return value is the numeric value of the `XPathResult` returned by In case XPathResult.resultType is not `NUMBER_TYPE`, a The following example shows the use of the `numberValue` property.
  37399      *
  37400      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/numberValue)
  37401      */
  37402     readonly numberValue: number;
  37403     /**
  37404      * The read-only **`resultType`** property of the the type constants.
  37405      *
  37406      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/resultType)
  37407      */
  37408     readonly resultType: number;
  37409     /**
  37410      * The read-only **`singleNodeValue`** property of the `null` in case no node was matched of a result with `FIRST_ORDERED_NODE_TYPE`.
  37411      *
  37412      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/singleNodeValue)
  37413      */
  37414     readonly singleNodeValue: Node | null;
  37415     /**
  37416      * The read-only **`snapshotLength`** property of the snapshot.
  37417      *
  37418      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/snapshotLength)
  37419      */
  37420     readonly snapshotLength: number;
  37421     /**
  37422      * The read-only **`stringValue`** property of the The return value is the string value of the `XPathResult` returned by In case XPathResult.resultType is not `STRING_TYPE`, a The following example shows the use of the `stringValue` property.
  37423      *
  37424      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/stringValue)
  37425      */
  37426     readonly stringValue: string;
  37427     /**
  37428      * The **`iterateNext()`** method of the next node from it or `null` if there are no more nodes.
  37429      *
  37430      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/iterateNext)
  37431      */
  37432     iterateNext(): Node | null;
  37433     /**
  37434      * The **`snapshotItem()`** method of the `null` in case the index is not within the range of nodes.
  37435      *
  37436      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/snapshotItem)
  37437      */
  37438     snapshotItem(index: number): Node | null;
  37439     readonly ANY_TYPE: 0;
  37440     readonly NUMBER_TYPE: 1;
  37441     readonly STRING_TYPE: 2;
  37442     readonly BOOLEAN_TYPE: 3;
  37443     readonly UNORDERED_NODE_ITERATOR_TYPE: 4;
  37444     readonly ORDERED_NODE_ITERATOR_TYPE: 5;
  37445     readonly UNORDERED_NODE_SNAPSHOT_TYPE: 6;
  37446     readonly ORDERED_NODE_SNAPSHOT_TYPE: 7;
  37447     readonly ANY_UNORDERED_NODE_TYPE: 8;
  37448     readonly FIRST_ORDERED_NODE_TYPE: 9;
  37449 }
  37450 
  37451 declare var XPathResult: {
  37452     prototype: XPathResult;
  37453     new(): XPathResult;
  37454     readonly ANY_TYPE: 0;
  37455     readonly NUMBER_TYPE: 1;
  37456     readonly STRING_TYPE: 2;
  37457     readonly BOOLEAN_TYPE: 3;
  37458     readonly UNORDERED_NODE_ITERATOR_TYPE: 4;
  37459     readonly ORDERED_NODE_ITERATOR_TYPE: 5;
  37460     readonly UNORDERED_NODE_SNAPSHOT_TYPE: 6;
  37461     readonly ORDERED_NODE_SNAPSHOT_TYPE: 7;
  37462     readonly ANY_UNORDERED_NODE_TYPE: 8;
  37463     readonly FIRST_ORDERED_NODE_TYPE: 9;
  37464 };
  37465 
  37466 /**
  37467  * An **`XSLTProcessor`** applies an XSLT stylesheet transformation to an XML document to produce a new XML document as output.
  37468  *
  37469  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor)
  37470  */
  37471 interface XSLTProcessor {
  37472     /**
  37473      * The `clearParameters()` method of the XSLTProcessor interface removes all parameters (`<xsl:param>`) and their values from the stylesheet imported in the processor.
  37474      *
  37475      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/clearParameters)
  37476      */
  37477     clearParameters(): void;
  37478     /**
  37479      * The `getParameter()` method of the XSLTProcessor interface returns the value of a parameter (`<xsl:param>`) from the stylesheet imported in the processor.
  37480      *
  37481      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/getParameter)
  37482      */
  37483     getParameter(namespaceURI: string | null, localName: string): any;
  37484     /**
  37485      * The `importStylesheet()` method of the XSLTProcessor interface imports an XSLT stylesheet for the processor.
  37486      *
  37487      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/importStylesheet)
  37488      */
  37489     importStylesheet(style: Node): void;
  37490     /**
  37491      * The `removeParameter()` method of the XSLTProcessor interface removes the parameter (`<xsl:param>`) and its value from the stylesheet imported in the processor.
  37492      *
  37493      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/removeParameter)
  37494      */
  37495     removeParameter(namespaceURI: string | null, localName: string): void;
  37496     /**
  37497      * The `reset()` method of the XSLTProcessor interface removes all parameters (`<xsl:param>`) and the XSLT stylesheet from the processor.
  37498      *
  37499      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/reset)
  37500      */
  37501     reset(): void;
  37502     /**
  37503      * The `setParameter()` method of the XSLTProcessor interface sets the value of a parameter (`<xsl:param>`) in the stylesheet imported in the processor.
  37504      *
  37505      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/setParameter)
  37506      */
  37507     setParameter(namespaceURI: string | null, localName: string, value: any): void;
  37508     /**
  37509      * The `transformToDocument()` method of the XSLTProcessor interface transforms the provided Node source to a Document using the XSLT stylesheet associated with `XSLTProcessor`.
  37510      *
  37511      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/transformToDocument)
  37512      */
  37513     transformToDocument(source: Node): Document;
  37514     /**
  37515      * The `transformToFragment()` method of the XSLTProcessor interface transforms a provided Node source to a DocumentFragment using the XSLT stylesheet associated with the `XSLTProcessor`.
  37516      *
  37517      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/transformToFragment)
  37518      */
  37519     transformToFragment(source: Node, output: Document): DocumentFragment;
  37520 }
  37521 
  37522 declare var XSLTProcessor: {
  37523     prototype: XSLTProcessor;
  37524     new(): XSLTProcessor;
  37525 };
  37526 
  37527 /** The **`CSS`** interface holds useful CSS-related methods. */
  37528 declare namespace CSS {
  37529     /**
  37530      * The static, read-only **`highlights`** property of the CSS interface provides access to the `HighlightRegistry` used to style arbitrary text ranges using the css_custom_highlight_api.
  37531      *
  37532      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/highlights_static)
  37533      */
  37534     var highlights: HighlightRegistry;
  37535     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37536     function Hz(value: number): CSSUnitValue;
  37537     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37538     function Q(value: number): CSSUnitValue;
  37539     function cap(value: number): CSSUnitValue;
  37540     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37541     function ch(value: number): CSSUnitValue;
  37542     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37543     function cm(value: number): CSSUnitValue;
  37544     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37545     function cqb(value: number): CSSUnitValue;
  37546     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37547     function cqh(value: number): CSSUnitValue;
  37548     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37549     function cqi(value: number): CSSUnitValue;
  37550     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37551     function cqmax(value: number): CSSUnitValue;
  37552     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37553     function cqmin(value: number): CSSUnitValue;
  37554     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37555     function cqw(value: number): CSSUnitValue;
  37556     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37557     function deg(value: number): CSSUnitValue;
  37558     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37559     function dpcm(value: number): CSSUnitValue;
  37560     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37561     function dpi(value: number): CSSUnitValue;
  37562     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37563     function dppx(value: number): CSSUnitValue;
  37564     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37565     function dvb(value: number): CSSUnitValue;
  37566     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37567     function dvh(value: number): CSSUnitValue;
  37568     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37569     function dvi(value: number): CSSUnitValue;
  37570     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37571     function dvmax(value: number): CSSUnitValue;
  37572     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37573     function dvmin(value: number): CSSUnitValue;
  37574     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37575     function dvw(value: number): CSSUnitValue;
  37576     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37577     function em(value: number): CSSUnitValue;
  37578     /**
  37579      * The **`CSS.escape()`** static method returns a string containing the escaped string passed as parameter, mostly for use as part of a CSS selector.
  37580      *
  37581      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/escape_static)
  37582      */
  37583     function escape(ident: string): string;
  37584     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37585     function ex(value: number): CSSUnitValue;
  37586     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37587     function fr(value: number): CSSUnitValue;
  37588     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37589     function grad(value: number): CSSUnitValue;
  37590     function ic(value: number): CSSUnitValue;
  37591     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37592     function kHz(value: number): CSSUnitValue;
  37593     function lh(value: number): CSSUnitValue;
  37594     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37595     function lvb(value: number): CSSUnitValue;
  37596     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37597     function lvh(value: number): CSSUnitValue;
  37598     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37599     function lvi(value: number): CSSUnitValue;
  37600     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37601     function lvmax(value: number): CSSUnitValue;
  37602     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37603     function lvmin(value: number): CSSUnitValue;
  37604     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37605     function lvw(value: number): CSSUnitValue;
  37606     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37607     function mm(value: number): CSSUnitValue;
  37608     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37609     function ms(value: number): CSSUnitValue;
  37610     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37611     function number(value: number): CSSUnitValue;
  37612     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37613     function pc(value: number): CSSUnitValue;
  37614     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37615     function percent(value: number): CSSUnitValue;
  37616     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37617     function pt(value: number): CSSUnitValue;
  37618     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37619     function px(value: number): CSSUnitValue;
  37620     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37621     function rad(value: number): CSSUnitValue;
  37622     function rcap(value: number): CSSUnitValue;
  37623     function rch(value: number): CSSUnitValue;
  37624     /**
  37625      * The **`CSS.registerProperty()`** static method registers custom properties, allowing for property type checking, default values, and properties that do or do not inherit their value.
  37626      *
  37627      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/registerProperty_static)
  37628      */
  37629     function registerProperty(definition: PropertyDefinition): void;
  37630     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37631     function rem(value: number): CSSUnitValue;
  37632     function rex(value: number): CSSUnitValue;
  37633     function ric(value: number): CSSUnitValue;
  37634     function rlh(value: number): CSSUnitValue;
  37635     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37636     function s(value: number): CSSUnitValue;
  37637     /**
  37638      * The **`CSS.supports()`** static method returns a boolean value indicating if the browser supports a given CSS feature, or not.
  37639      *
  37640      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/supports_static)
  37641      */
  37642     function supports(property: string, value: string): boolean;
  37643     function supports(conditionText: string): boolean;
  37644     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37645     function svb(value: number): CSSUnitValue;
  37646     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37647     function svh(value: number): CSSUnitValue;
  37648     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37649     function svi(value: number): CSSUnitValue;
  37650     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37651     function svmax(value: number): CSSUnitValue;
  37652     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37653     function svmin(value: number): CSSUnitValue;
  37654     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37655     function svw(value: number): CSSUnitValue;
  37656     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37657     function turn(value: number): CSSUnitValue;
  37658     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37659     function vb(value: number): CSSUnitValue;
  37660     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37661     function vh(value: number): CSSUnitValue;
  37662     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37663     function vi(value: number): CSSUnitValue;
  37664     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37665     function vmax(value: number): CSSUnitValue;
  37666     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37667     function vmin(value: number): CSSUnitValue;
  37668     /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/factory_functions_static) */
  37669     function vw(value: number): CSSUnitValue;
  37670 }
  37671 
  37672 declare namespace WebAssembly {
  37673     interface CompileError extends Error {
  37674     }
  37675 
  37676     var CompileError: {
  37677         prototype: CompileError;
  37678         new(message?: string): CompileError;
  37679         (message?: string): CompileError;
  37680     };
  37681 
  37682     /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Global) */
  37683     interface Global<T extends ValueType = ValueType> {
  37684         value: ValueTypeMap[T];
  37685         valueOf(): ValueTypeMap[T];
  37686     }
  37687 
  37688     var Global: {
  37689         prototype: Global;
  37690         new<T extends ValueType = ValueType>(descriptor: GlobalDescriptor<T>, v?: ValueTypeMap[T]): Global<T>;
  37691     };
  37692 
  37693     /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Instance) */
  37694     interface Instance {
  37695         /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Instance/exports) */
  37696         readonly exports: Exports;
  37697     }
  37698 
  37699     var Instance: {
  37700         prototype: Instance;
  37701         new(module: Module, importObject?: Imports): Instance;
  37702     };
  37703 
  37704     interface LinkError extends Error {
  37705     }
  37706 
  37707     var LinkError: {
  37708         prototype: LinkError;
  37709         new(message?: string): LinkError;
  37710         (message?: string): LinkError;
  37711     };
  37712 
  37713     /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Memory) */
  37714     interface Memory {
  37715         /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Memory/buffer) */
  37716         readonly buffer: ArrayBuffer;
  37717         /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Memory/grow) */
  37718         grow(delta: number): number;
  37719     }
  37720 
  37721     var Memory: {
  37722         prototype: Memory;
  37723         new(descriptor: MemoryDescriptor): Memory;
  37724     };
  37725 
  37726     /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Module) */
  37727     interface Module {
  37728     }
  37729 
  37730     var Module: {
  37731         prototype: Module;
  37732         new(bytes: BufferSource): Module;
  37733         /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Module/customSections_static) */
  37734         customSections(moduleObject: Module, sectionName: string): ArrayBuffer[];
  37735         /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Module/exports_static) */
  37736         exports(moduleObject: Module): ModuleExportDescriptor[];
  37737         /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Module/imports_static) */
  37738         imports(moduleObject: Module): ModuleImportDescriptor[];
  37739     };
  37740 
  37741     interface RuntimeError extends Error {
  37742     }
  37743 
  37744     var RuntimeError: {
  37745         prototype: RuntimeError;
  37746         new(message?: string): RuntimeError;
  37747         (message?: string): RuntimeError;
  37748     };
  37749 
  37750     /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Table) */
  37751     interface Table {
  37752         /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Table/length) */
  37753         readonly length: number;
  37754         /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Table/get) */
  37755         get(index: number): any;
  37756         /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Table/grow) */
  37757         grow(delta: number, value?: any): number;
  37758         /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/Table/set) */
  37759         set(index: number, value?: any): void;
  37760     }
  37761 
  37762     var Table: {
  37763         prototype: Table;
  37764         new(descriptor: TableDescriptor, value?: any): Table;
  37765     };
  37766 
  37767     interface GlobalDescriptor<T extends ValueType = ValueType> {
  37768         mutable?: boolean;
  37769         value: T;
  37770     }
  37771 
  37772     interface MemoryDescriptor {
  37773         initial: number;
  37774         maximum?: number;
  37775         shared?: boolean;
  37776     }
  37777 
  37778     interface ModuleExportDescriptor {
  37779         kind: ImportExportKind;
  37780         name: string;
  37781     }
  37782 
  37783     interface ModuleImportDescriptor {
  37784         kind: ImportExportKind;
  37785         module: string;
  37786         name: string;
  37787     }
  37788 
  37789     interface TableDescriptor {
  37790         element: TableKind;
  37791         initial: number;
  37792         maximum?: number;
  37793     }
  37794 
  37795     interface ValueTypeMap {
  37796         anyfunc: Function;
  37797         externref: any;
  37798         f32: number;
  37799         f64: number;
  37800         i32: number;
  37801         i64: bigint;
  37802         v128: never;
  37803     }
  37804 
  37805     interface WebAssemblyInstantiatedSource {
  37806         instance: Instance;
  37807         module: Module;
  37808     }
  37809 
  37810     type ImportExportKind = "function" | "global" | "memory" | "table";
  37811     type TableKind = "anyfunc" | "externref";
  37812     type ExportValue = Function | Global | Memory | Table;
  37813     type Exports = Record<string, ExportValue>;
  37814     type ImportValue = ExportValue | number;
  37815     type Imports = Record<string, ModuleImports>;
  37816     type ModuleImports = Record<string, ImportValue>;
  37817     type ValueType = keyof ValueTypeMap;
  37818     /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/compile_static) */
  37819     function compile(bytes: BufferSource): Promise<Module>;
  37820     /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/compileStreaming_static) */
  37821     function compileStreaming(source: Response | PromiseLike<Response>): Promise<Module>;
  37822     /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/instantiate_static) */
  37823     function instantiate(bytes: BufferSource, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;
  37824     function instantiate(moduleObject: Module, importObject?: Imports): Promise<Instance>;
  37825     /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/instantiateStreaming_static) */
  37826     function instantiateStreaming(source: Response | PromiseLike<Response>, importObject?: Imports): Promise<WebAssemblyInstantiatedSource>;
  37827     /** [MDN Reference](https://developer.mozilla.org/docs/WebAssembly/Reference/JavaScript_interface/validate_static) */
  37828     function validate(bytes: BufferSource): boolean;
  37829 }
  37830 
  37831 /** The **`console`** object provides access to the debugging console (e.g., the Web console in Firefox). */
  37832 /**
  37833  * The **`console`** object provides access to the debugging console (e.g., the Web console in Firefox).
  37834  *
  37835  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console)
  37836  */
  37837 interface Console {
  37838     /**
  37839      * The **`console.assert()`** static method writes an error message to the console if the assertion is false.
  37840      *
  37841      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/assert_static)
  37842      */
  37843     assert(condition?: boolean, ...data: any[]): void;
  37844     /**
  37845      * The **`console.clear()`** static method clears the console if possible.
  37846      *
  37847      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/clear_static)
  37848      */
  37849     clear(): void;
  37850     /**
  37851      * The **`console.count()`** static method logs the number of times that this particular call to `count()` has been called.
  37852      *
  37853      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/count_static)
  37854      */
  37855     count(label?: string): void;
  37856     /**
  37857      * The **`console.countReset()`** static method resets counter used with console/count_static.
  37858      *
  37859      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/countReset_static)
  37860      */
  37861     countReset(label?: string): void;
  37862     /**
  37863      * The **`console.debug()`** static method outputs a message to the console at the 'debug' log level.
  37864      *
  37865      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/debug_static)
  37866      */
  37867     debug(...data: any[]): void;
  37868     /**
  37869      * The **`console.dir()`** static method displays a list of the properties of the specified JavaScript object.
  37870      *
  37871      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/dir_static)
  37872      */
  37873     dir(item?: any, options?: any): void;
  37874     /**
  37875      * The **`console.dirxml()`** static method displays an interactive tree of the descendant elements of the specified XML/HTML element.
  37876      *
  37877      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/dirxml_static)
  37878      */
  37879     dirxml(...data: any[]): void;
  37880     /**
  37881      * The **`console.error()`** static method outputs a message to the console at the 'error' log level.
  37882      *
  37883      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/error_static)
  37884      */
  37885     error(...data: any[]): void;
  37886     /**
  37887      * The **`console.group()`** static method creates a new inline group in the Web console log, causing any subsequent console messages to be indented by an additional level, until console/groupEnd_static is called.
  37888      *
  37889      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/group_static)
  37890      */
  37891     group(...data: any[]): void;
  37892     /**
  37893      * The **`console.groupCollapsed()`** static method creates a new inline group in the console.
  37894      *
  37895      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/groupCollapsed_static)
  37896      */
  37897     groupCollapsed(...data: any[]): void;
  37898     /**
  37899      * The **`console.groupEnd()`** static method exits the current inline group in the console.
  37900      *
  37901      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/groupEnd_static)
  37902      */
  37903     groupEnd(): void;
  37904     /**
  37905      * The **`console.info()`** static method outputs a message to the console at the 'info' log level.
  37906      *
  37907      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/info_static)
  37908      */
  37909     info(...data: any[]): void;
  37910     /**
  37911      * The **`console.log()`** static method outputs a message to the console.
  37912      *
  37913      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static)
  37914      */
  37915     log(...data: any[]): void;
  37916     /**
  37917      * The **`console.table()`** static method displays tabular data as a table.
  37918      *
  37919      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/table_static)
  37920      */
  37921     table(tabularData?: any, properties?: string[]): void;
  37922     /**
  37923      * The **`console.time()`** static method starts a timer you can use to track how long an operation takes.
  37924      *
  37925      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/time_static)
  37926      */
  37927     time(label?: string): void;
  37928     /**
  37929      * The **`console.timeEnd()`** static method stops a timer that was previously started by calling console/time_static.
  37930      *
  37931      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeEnd_static)
  37932      */
  37933     timeEnd(label?: string): void;
  37934     /**
  37935      * The **`console.timeLog()`** static method logs the current value of a timer that was previously started by calling console/time_static.
  37936      *
  37937      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeLog_static)
  37938      */
  37939     timeLog(label?: string, ...data: any[]): void;
  37940     timeStamp(label?: string): void;
  37941     /**
  37942      * The **`console.trace()`** static method outputs a stack trace to the console.
  37943      *
  37944      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/trace_static)
  37945      */
  37946     trace(...data: any[]): void;
  37947     /**
  37948      * The **`console.warn()`** static method outputs a warning message to the console at the 'warning' log level.
  37949      *
  37950      * [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/warn_static)
  37951      */
  37952     warn(...data: any[]): void;
  37953 }
  37954 
  37955 declare var console: Console;
  37956 
  37957 interface AudioDataOutputCallback {
  37958     (output: AudioData): void;
  37959 }
  37960 
  37961 interface BlobCallback {
  37962     (blob: Blob | null): void;
  37963 }
  37964 
  37965 interface CustomElementConstructor {
  37966     new (...params: any[]): HTMLElement;
  37967 }
  37968 
  37969 interface DecodeErrorCallback {
  37970     (error: DOMException): void;
  37971 }
  37972 
  37973 interface DecodeSuccessCallback {
  37974     (decodedData: AudioBuffer): void;
  37975 }
  37976 
  37977 interface EncodedAudioChunkOutputCallback {
  37978     (output: EncodedAudioChunk, metadata?: EncodedAudioChunkMetadata): void;
  37979 }
  37980 
  37981 interface EncodedVideoChunkOutputCallback {
  37982     (chunk: EncodedVideoChunk, metadata?: EncodedVideoChunkMetadata): void;
  37983 }
  37984 
  37985 interface ErrorCallback {
  37986     (err: DOMException): void;
  37987 }
  37988 
  37989 interface FileCallback {
  37990     (file: File): void;
  37991 }
  37992 
  37993 interface FileSystemEntriesCallback {
  37994     (entries: FileSystemEntry[]): void;
  37995 }
  37996 
  37997 interface FileSystemEntryCallback {
  37998     (entry: FileSystemEntry): void;
  37999 }
  38000 
  38001 interface FrameRequestCallback {
  38002     (time: DOMHighResTimeStamp): void;
  38003 }
  38004 
  38005 interface FunctionStringCallback {
  38006     (data: string): void;
  38007 }
  38008 
  38009 interface IdleRequestCallback {
  38010     (deadline: IdleDeadline): void;
  38011 }
  38012 
  38013 interface IntersectionObserverCallback {
  38014     (entries: IntersectionObserverEntry[], observer: IntersectionObserver): void;
  38015 }
  38016 
  38017 interface LockGrantedCallback<T> {
  38018     (lock: Lock | null): T;
  38019 }
  38020 
  38021 interface MediaSessionActionHandler {
  38022     (details: MediaSessionActionDetails): void;
  38023 }
  38024 
  38025 interface MutationCallback {
  38026     (mutations: MutationRecord[], observer: MutationObserver): void;
  38027 }
  38028 
  38029 interface NotificationPermissionCallback {
  38030     (permission: NotificationPermission): void;
  38031 }
  38032 
  38033 interface OnBeforeUnloadEventHandlerNonNull {
  38034     (event: Event): string | null;
  38035 }
  38036 
  38037 interface OnErrorEventHandlerNonNull {
  38038     (event: Event | string, source?: string, lineno?: number, colno?: number, error?: Error): any;
  38039 }
  38040 
  38041 interface PerformanceObserverCallback {
  38042     (entries: PerformanceObserverEntryList, observer: PerformanceObserver): void;
  38043 }
  38044 
  38045 interface PositionCallback {
  38046     (position: GeolocationPosition): void;
  38047 }
  38048 
  38049 interface PositionErrorCallback {
  38050     (positionError: GeolocationPositionError): void;
  38051 }
  38052 
  38053 interface QueuingStrategySize<T = any> {
  38054     (chunk: T): number;
  38055 }
  38056 
  38057 interface RTCPeerConnectionErrorCallback {
  38058     (error: DOMException): void;
  38059 }
  38060 
  38061 interface RTCSessionDescriptionCallback {
  38062     (description: RTCSessionDescriptionInit): void;
  38063 }
  38064 
  38065 interface RemotePlaybackAvailabilityCallback {
  38066     (available: boolean): void;
  38067 }
  38068 
  38069 interface ReportingObserverCallback {
  38070     (reports: Report[], observer: ReportingObserver): void;
  38071 }
  38072 
  38073 interface ResizeObserverCallback {
  38074     (entries: ResizeObserverEntry[], observer: ResizeObserver): void;
  38075 }
  38076 
  38077 interface TransformerFlushCallback<O> {
  38078     (controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;
  38079 }
  38080 
  38081 interface TransformerStartCallback<O> {
  38082     (controller: TransformStreamDefaultController<O>): any;
  38083 }
  38084 
  38085 interface TransformerTransformCallback<I, O> {
  38086     (chunk: I, controller: TransformStreamDefaultController<O>): void | PromiseLike<void>;
  38087 }
  38088 
  38089 interface UnderlyingSinkAbortCallback {
  38090     (reason?: any): void | PromiseLike<void>;
  38091 }
  38092 
  38093 interface UnderlyingSinkCloseCallback {
  38094     (): void | PromiseLike<void>;
  38095 }
  38096 
  38097 interface UnderlyingSinkStartCallback {
  38098     (controller: WritableStreamDefaultController): any;
  38099 }
  38100 
  38101 interface UnderlyingSinkWriteCallback<W> {
  38102     (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike<void>;
  38103 }
  38104 
  38105 interface UnderlyingSourceCancelCallback {
  38106     (reason?: any): void | PromiseLike<void>;
  38107 }
  38108 
  38109 interface UnderlyingSourcePullCallback<R> {
  38110     (controller: ReadableStreamController<R>): void | PromiseLike<void>;
  38111 }
  38112 
  38113 interface UnderlyingSourceStartCallback<R> {
  38114     (controller: ReadableStreamController<R>): any;
  38115 }
  38116 
  38117 interface VideoFrameOutputCallback {
  38118     (output: VideoFrame): void;
  38119 }
  38120 
  38121 interface VideoFrameRequestCallback {
  38122     (now: DOMHighResTimeStamp, metadata: VideoFrameCallbackMetadata): void;
  38123 }
  38124 
  38125 interface ViewTransitionUpdateCallback {
  38126     (): any;
  38127 }
  38128 
  38129 interface VoidFunction {
  38130     (): void;
  38131 }
  38132 
  38133 interface WebCodecsErrorCallback {
  38134     (error: DOMException): void;
  38135 }
  38136 
  38137 interface HTMLElementTagNameMap {
  38138     "a": HTMLAnchorElement;
  38139     "abbr": HTMLElement;
  38140     "address": HTMLElement;
  38141     "area": HTMLAreaElement;
  38142     "article": HTMLElement;
  38143     "aside": HTMLElement;
  38144     "audio": HTMLAudioElement;
  38145     "b": HTMLElement;
  38146     "base": HTMLBaseElement;
  38147     "bdi": HTMLElement;
  38148     "bdo": HTMLElement;
  38149     "blockquote": HTMLQuoteElement;
  38150     "body": HTMLBodyElement;
  38151     "br": HTMLBRElement;
  38152     "button": HTMLButtonElement;
  38153     "canvas": HTMLCanvasElement;
  38154     "caption": HTMLTableCaptionElement;
  38155     "cite": HTMLElement;
  38156     "code": HTMLElement;
  38157     "col": HTMLTableColElement;
  38158     "colgroup": HTMLTableColElement;
  38159     "data": HTMLDataElement;
  38160     "datalist": HTMLDataListElement;
  38161     "dd": HTMLElement;
  38162     "del": HTMLModElement;
  38163     "details": HTMLDetailsElement;
  38164     "dfn": HTMLElement;
  38165     "dialog": HTMLDialogElement;
  38166     "div": HTMLDivElement;
  38167     "dl": HTMLDListElement;
  38168     "dt": HTMLElement;
  38169     "em": HTMLElement;
  38170     "embed": HTMLEmbedElement;
  38171     "fieldset": HTMLFieldSetElement;
  38172     "figcaption": HTMLElement;
  38173     "figure": HTMLElement;
  38174     "footer": HTMLElement;
  38175     "form": HTMLFormElement;
  38176     "h1": HTMLHeadingElement;
  38177     "h2": HTMLHeadingElement;
  38178     "h3": HTMLHeadingElement;
  38179     "h4": HTMLHeadingElement;
  38180     "h5": HTMLHeadingElement;
  38181     "h6": HTMLHeadingElement;
  38182     "head": HTMLHeadElement;
  38183     "header": HTMLElement;
  38184     "hgroup": HTMLElement;
  38185     "hr": HTMLHRElement;
  38186     "html": HTMLHtmlElement;
  38187     "i": HTMLElement;
  38188     "iframe": HTMLIFrameElement;
  38189     "img": HTMLImageElement;
  38190     "input": HTMLInputElement;
  38191     "ins": HTMLModElement;
  38192     "kbd": HTMLElement;
  38193     "label": HTMLLabelElement;
  38194     "legend": HTMLLegendElement;
  38195     "li": HTMLLIElement;
  38196     "link": HTMLLinkElement;
  38197     "main": HTMLElement;
  38198     "map": HTMLMapElement;
  38199     "mark": HTMLElement;
  38200     "menu": HTMLMenuElement;
  38201     "meta": HTMLMetaElement;
  38202     "meter": HTMLMeterElement;
  38203     "nav": HTMLElement;
  38204     "noscript": HTMLElement;
  38205     "object": HTMLObjectElement;
  38206     "ol": HTMLOListElement;
  38207     "optgroup": HTMLOptGroupElement;
  38208     "option": HTMLOptionElement;
  38209     "output": HTMLOutputElement;
  38210     "p": HTMLParagraphElement;
  38211     "picture": HTMLPictureElement;
  38212     "pre": HTMLPreElement;
  38213     "progress": HTMLProgressElement;
  38214     "q": HTMLQuoteElement;
  38215     "rp": HTMLElement;
  38216     "rt": HTMLElement;
  38217     "ruby": HTMLElement;
  38218     "s": HTMLElement;
  38219     "samp": HTMLElement;
  38220     "script": HTMLScriptElement;
  38221     "search": HTMLElement;
  38222     "section": HTMLElement;
  38223     "select": HTMLSelectElement;
  38224     "slot": HTMLSlotElement;
  38225     "small": HTMLElement;
  38226     "source": HTMLSourceElement;
  38227     "span": HTMLSpanElement;
  38228     "strong": HTMLElement;
  38229     "style": HTMLStyleElement;
  38230     "sub": HTMLElement;
  38231     "summary": HTMLElement;
  38232     "sup": HTMLElement;
  38233     "table": HTMLTableElement;
  38234     "tbody": HTMLTableSectionElement;
  38235     "td": HTMLTableCellElement;
  38236     "template": HTMLTemplateElement;
  38237     "textarea": HTMLTextAreaElement;
  38238     "tfoot": HTMLTableSectionElement;
  38239     "th": HTMLTableCellElement;
  38240     "thead": HTMLTableSectionElement;
  38241     "time": HTMLTimeElement;
  38242     "title": HTMLTitleElement;
  38243     "tr": HTMLTableRowElement;
  38244     "track": HTMLTrackElement;
  38245     "u": HTMLElement;
  38246     "ul": HTMLUListElement;
  38247     "var": HTMLElement;
  38248     "video": HTMLVideoElement;
  38249     "wbr": HTMLElement;
  38250 }
  38251 
  38252 interface HTMLElementDeprecatedTagNameMap {
  38253     "acronym": HTMLElement;
  38254     "applet": HTMLUnknownElement;
  38255     "basefont": HTMLElement;
  38256     "bgsound": HTMLUnknownElement;
  38257     "big": HTMLElement;
  38258     "blink": HTMLUnknownElement;
  38259     "center": HTMLElement;
  38260     "dir": HTMLDirectoryElement;
  38261     "font": HTMLFontElement;
  38262     "frame": HTMLFrameElement;
  38263     "frameset": HTMLFrameSetElement;
  38264     "isindex": HTMLUnknownElement;
  38265     "keygen": HTMLUnknownElement;
  38266     "listing": HTMLPreElement;
  38267     "marquee": HTMLMarqueeElement;
  38268     "menuitem": HTMLElement;
  38269     "multicol": HTMLUnknownElement;
  38270     "nextid": HTMLUnknownElement;
  38271     "nobr": HTMLElement;
  38272     "noembed": HTMLElement;
  38273     "noframes": HTMLElement;
  38274     "param": HTMLParamElement;
  38275     "plaintext": HTMLElement;
  38276     "rb": HTMLElement;
  38277     "rtc": HTMLElement;
  38278     "spacer": HTMLUnknownElement;
  38279     "strike": HTMLElement;
  38280     "tt": HTMLElement;
  38281     "xmp": HTMLPreElement;
  38282 }
  38283 
  38284 interface SVGElementTagNameMap {
  38285     "a": SVGAElement;
  38286     "animate": SVGAnimateElement;
  38287     "animateMotion": SVGAnimateMotionElement;
  38288     "animateTransform": SVGAnimateTransformElement;
  38289     "circle": SVGCircleElement;
  38290     "clipPath": SVGClipPathElement;
  38291     "defs": SVGDefsElement;
  38292     "desc": SVGDescElement;
  38293     "ellipse": SVGEllipseElement;
  38294     "feBlend": SVGFEBlendElement;
  38295     "feColorMatrix": SVGFEColorMatrixElement;
  38296     "feComponentTransfer": SVGFEComponentTransferElement;
  38297     "feComposite": SVGFECompositeElement;
  38298     "feConvolveMatrix": SVGFEConvolveMatrixElement;
  38299     "feDiffuseLighting": SVGFEDiffuseLightingElement;
  38300     "feDisplacementMap": SVGFEDisplacementMapElement;
  38301     "feDistantLight": SVGFEDistantLightElement;
  38302     "feDropShadow": SVGFEDropShadowElement;
  38303     "feFlood": SVGFEFloodElement;
  38304     "feFuncA": SVGFEFuncAElement;
  38305     "feFuncB": SVGFEFuncBElement;
  38306     "feFuncG": SVGFEFuncGElement;
  38307     "feFuncR": SVGFEFuncRElement;
  38308     "feGaussianBlur": SVGFEGaussianBlurElement;
  38309     "feImage": SVGFEImageElement;
  38310     "feMerge": SVGFEMergeElement;
  38311     "feMergeNode": SVGFEMergeNodeElement;
  38312     "feMorphology": SVGFEMorphologyElement;
  38313     "feOffset": SVGFEOffsetElement;
  38314     "fePointLight": SVGFEPointLightElement;
  38315     "feSpecularLighting": SVGFESpecularLightingElement;
  38316     "feSpotLight": SVGFESpotLightElement;
  38317     "feTile": SVGFETileElement;
  38318     "feTurbulence": SVGFETurbulenceElement;
  38319     "filter": SVGFilterElement;
  38320     "foreignObject": SVGForeignObjectElement;
  38321     "g": SVGGElement;
  38322     "image": SVGImageElement;
  38323     "line": SVGLineElement;
  38324     "linearGradient": SVGLinearGradientElement;
  38325     "marker": SVGMarkerElement;
  38326     "mask": SVGMaskElement;
  38327     "metadata": SVGMetadataElement;
  38328     "mpath": SVGMPathElement;
  38329     "path": SVGPathElement;
  38330     "pattern": SVGPatternElement;
  38331     "polygon": SVGPolygonElement;
  38332     "polyline": SVGPolylineElement;
  38333     "radialGradient": SVGRadialGradientElement;
  38334     "rect": SVGRectElement;
  38335     "script": SVGScriptElement;
  38336     "set": SVGSetElement;
  38337     "stop": SVGStopElement;
  38338     "style": SVGStyleElement;
  38339     "svg": SVGSVGElement;
  38340     "switch": SVGSwitchElement;
  38341     "symbol": SVGSymbolElement;
  38342     "text": SVGTextElement;
  38343     "textPath": SVGTextPathElement;
  38344     "title": SVGTitleElement;
  38345     "tspan": SVGTSpanElement;
  38346     "use": SVGUseElement;
  38347     "view": SVGViewElement;
  38348 }
  38349 
  38350 interface MathMLElementTagNameMap {
  38351     "annotation": MathMLElement;
  38352     "annotation-xml": MathMLElement;
  38353     "maction": MathMLElement;
  38354     "math": MathMLElement;
  38355     "merror": MathMLElement;
  38356     "mfrac": MathMLElement;
  38357     "mi": MathMLElement;
  38358     "mmultiscripts": MathMLElement;
  38359     "mn": MathMLElement;
  38360     "mo": MathMLElement;
  38361     "mover": MathMLElement;
  38362     "mpadded": MathMLElement;
  38363     "mphantom": MathMLElement;
  38364     "mprescripts": MathMLElement;
  38365     "mroot": MathMLElement;
  38366     "mrow": MathMLElement;
  38367     "ms": MathMLElement;
  38368     "mspace": MathMLElement;
  38369     "msqrt": MathMLElement;
  38370     "mstyle": MathMLElement;
  38371     "msub": MathMLElement;
  38372     "msubsup": MathMLElement;
  38373     "msup": MathMLElement;
  38374     "mtable": MathMLElement;
  38375     "mtd": MathMLElement;
  38376     "mtext": MathMLElement;
  38377     "mtr": MathMLElement;
  38378     "munder": MathMLElement;
  38379     "munderover": MathMLElement;
  38380     "semantics": MathMLElement;
  38381 }
  38382 
  38383 /** @deprecated Directly use HTMLElementTagNameMap or SVGElementTagNameMap as appropriate, instead. */
  38384 type ElementTagNameMap = HTMLElementTagNameMap & Pick<SVGElementTagNameMap, Exclude<keyof SVGElementTagNameMap, keyof HTMLElementTagNameMap>>;
  38385 
  38386 declare var Audio: {
  38387     new(src?: string): HTMLAudioElement;
  38388 };
  38389 declare var Image: {
  38390     new(width?: number, height?: number): HTMLImageElement;
  38391 };
  38392 declare var Option: {
  38393     new(text?: string, value?: string, defaultSelected?: boolean, selected?: boolean): HTMLOptionElement;
  38394 };
  38395 /**
  38396  * @deprecated This is a legacy alias of `navigator`.
  38397  *
  38398  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/navigator)
  38399  */
  38400 declare var clientInformation: Navigator;
  38401 /**
  38402  * The **`Window.closed`** read-only property indicates whether the referenced window is closed or not.
  38403  *
  38404  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/closed)
  38405  */
  38406 declare var closed: boolean;
  38407 /**
  38408  * The **`cookieStore`** read-only property of the Window interface returns a reference to the CookieStore object for the current document context.
  38409  *
  38410  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/cookieStore)
  38411  */
  38412 declare var cookieStore: CookieStore;
  38413 /**
  38414  * The **`customElements`** read-only property of the Window interface returns a reference to the CustomElementRegistry object, which can be used to register new custom elements and get information about previously registered custom elements.
  38415  *
  38416  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/customElements)
  38417  */
  38418 declare var customElements: CustomElementRegistry;
  38419 /**
  38420  * The **`devicePixelRatio`** of Window interface returns the ratio of the resolution in _physical pixels_ to the resolution in _CSS pixels_ for the current display device.
  38421  *
  38422  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/devicePixelRatio)
  38423  */
  38424 declare var devicePixelRatio: number;
  38425 /**
  38426  * **`window.document`** returns a reference to the document contained in the window.
  38427  *
  38428  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/document)
  38429  */
  38430 declare var document: Document;
  38431 /**
  38432  * The read-only Window property **`event`** returns the Event which is currently being handled by the site's code.
  38433  * @deprecated
  38434  *
  38435  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/event)
  38436  */
  38437 declare var event: Event | undefined;
  38438 /**
  38439  * The `external` property of the Window API returns an instance of the `External` interface, which was intended to contain functions related to adding external search providers to the browser.
  38440  * @deprecated
  38441  *
  38442  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/external)
  38443  */
  38444 declare var external: External;
  38445 /**
  38446  * The **`Window.frameElement`** property returns the element (such as iframe or object) in which the window is embedded.
  38447  *
  38448  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/frameElement)
  38449  */
  38450 declare var frameElement: Element | null;
  38451 /**
  38452  * Returns the window itself, which is an array-like object, listing the direct sub-frames of the current window.
  38453  *
  38454  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/frames)
  38455  */
  38456 declare var frames: WindowProxy;
  38457 /**
  38458  * The `Window.history` read-only property returns a reference to the History object, which provides an interface for manipulating the browser _session history_ (pages visited in the tab or frame that the current page is loaded in).
  38459  *
  38460  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/history)
  38461  */
  38462 declare var history: History;
  38463 /**
  38464  * The read-only **`innerHeight`** property of the including the height of the horizontal scroll bar, if present.
  38465  *
  38466  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/innerHeight)
  38467  */
  38468 declare var innerHeight: number;
  38469 /**
  38470  * The read-only Window property **`innerWidth`** returns the interior width of the window in pixels (that is, the width of the window's layout viewport).
  38471  *
  38472  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/innerWidth)
  38473  */
  38474 declare var innerWidth: number;
  38475 /**
  38476  * Returns the number of frames (either frame or A number.
  38477  *
  38478  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/length)
  38479  */
  38480 declare var length: number;
  38481 /**
  38482  * The **`Window.location`** read-only property returns a Location object with information about the current location of the document.
  38483  *
  38484  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/location)
  38485  */
  38486 declare var location: Location;
  38487 /**
  38488  * Returns the `locationbar` object.
  38489  *
  38490  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/locationbar)
  38491  */
  38492 declare var locationbar: BarProp;
  38493 /**
  38494  * Returns the `menubar` object.
  38495  *
  38496  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/menubar)
  38497  */
  38498 declare var menubar: BarProp;
  38499 /**
  38500  * The `Window.name` property gets/sets the name of the window's browsing context.
  38501  *
  38502  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/name)
  38503  */
  38504 /** @deprecated */
  38505 declare const name: void;
  38506 /**
  38507  * The **`Window.navigator`** read-only property returns a reference to the Navigator object, which has methods and properties about the application running the script.
  38508  *
  38509  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/navigator)
  38510  */
  38511 declare var navigator: Navigator;
  38512 /**
  38513  * Available only in secure contexts.
  38514  *
  38515  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/devicemotion_event)
  38516  */
  38517 declare var ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null;
  38518 /**
  38519  * Available only in secure contexts.
  38520  *
  38521  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/deviceorientation_event)
  38522  */
  38523 declare var ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null;
  38524 /**
  38525  * Available only in secure contexts.
  38526  *
  38527  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/deviceorientationabsolute_event)
  38528  */
  38529 declare var ondeviceorientationabsolute: ((this: Window, ev: DeviceOrientationEvent) => any) | null;
  38530 /**
  38531  * @deprecated
  38532  *
  38533  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/orientationchange_event)
  38534  */
  38535 declare var onorientationchange: ((this: Window, ev: Event) => any) | null;
  38536 /**
  38537  * The Window interface's **`opener`** property returns a reference to the window that opened the window, either with Window.open, or by navigating a link with a `target` attribute.
  38538  *
  38539  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/opener)
  38540  */
  38541 declare var opener: any;
  38542 /**
  38543  * Returns the orientation in degrees (in 90-degree increments) of the viewport relative to the device's natural orientation.
  38544  * @deprecated
  38545  *
  38546  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/orientation)
  38547  */
  38548 declare var orientation: number;
  38549 /**
  38550  * The **`originAgentCluster`** read-only property of the Window interface returns `true` if this window belongs to an _origin-keyed agent cluster_: this means that the operating system has provided dedicated resources (for example an operating system process) to this window's origin that are not shared with windows from other origins.
  38551  *
  38552  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/originAgentCluster)
  38553  */
  38554 declare var originAgentCluster: boolean;
  38555 /**
  38556  * The **`Window.outerHeight`** read-only property returns the height in pixels of the whole browser window, including any sidebar, window chrome, and window-resizing borders/handles.
  38557  *
  38558  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/outerHeight)
  38559  */
  38560 declare var outerHeight: number;
  38561 /**
  38562  * **`Window.outerWidth`** read-only property returns the width of the outside of the browser window.
  38563  *
  38564  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/outerWidth)
  38565  */
  38566 declare var outerWidth: number;
  38567 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollX) */
  38568 declare var pageXOffset: number;
  38569 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollY) */
  38570 declare var pageYOffset: number;
  38571 /**
  38572  * The **`Window.parent`** property is a reference to the parent of the current window or subframe.
  38573  *
  38574  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/parent)
  38575  */
  38576 declare var parent: WindowProxy;
  38577 /**
  38578  * Returns the `personalbar` object.
  38579  *
  38580  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/personalbar)
  38581  */
  38582 declare var personalbar: BarProp;
  38583 /**
  38584  * The Window property **`screen`** returns a reference to the screen object associated with the window.
  38585  *
  38586  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screen)
  38587  */
  38588 declare var screen: Screen;
  38589 /**
  38590  * The **`Window.screenLeft`** read-only property returns the horizontal distance, in CSS pixels, from the left border of the user's browser viewport to the left side of the screen.
  38591  *
  38592  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenLeft)
  38593  */
  38594 declare var screenLeft: number;
  38595 /**
  38596  * The **`Window.screenTop`** read-only property returns the vertical distance, in CSS pixels, from the top border of the user's browser viewport to the top side of the screen.
  38597  *
  38598  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenTop)
  38599  */
  38600 declare var screenTop: number;
  38601 /**
  38602  * The **`Window.screenX`** read-only property returns the horizontal distance, in CSS pixels, of the left border of the user's browser viewport to the left side of the screen.
  38603  *
  38604  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenX)
  38605  */
  38606 declare var screenX: number;
  38607 /**
  38608  * The **`Window.screenY`** read-only property returns the vertical distance, in CSS pixels, of the top border of the user's browser viewport to the top edge of the screen.
  38609  *
  38610  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenY)
  38611  */
  38612 declare var screenY: number;
  38613 /**
  38614  * The read-only **`scrollX`** property of the Window interface returns the number of pixels by which the document is currently scrolled horizontally.
  38615  *
  38616  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollX)
  38617  */
  38618 declare var scrollX: number;
  38619 /**
  38620  * The read-only **`scrollY`** property of the Window interface returns the number of pixels by which the document is currently scrolled vertically.
  38621  *
  38622  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollY)
  38623  */
  38624 declare var scrollY: number;
  38625 /**
  38626  * Returns the `scrollbars` object.
  38627  *
  38628  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollbars)
  38629  */
  38630 declare var scrollbars: BarProp;
  38631 /**
  38632  * The **`Window.self`** read-only property returns the window itself, as a WindowProxy.
  38633  *
  38634  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/self)
  38635  */
  38636 declare var self: Window & typeof globalThis;
  38637 /**
  38638  * The `speechSynthesis` read-only property of the Window object returns a SpeechSynthesis object, which is the entry point into using Web Speech API speech synthesis functionality.
  38639  *
  38640  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/speechSynthesis)
  38641  */
  38642 declare var speechSynthesis: SpeechSynthesis;
  38643 /**
  38644  * The **`status`** property of the bar at the bottom of the browser window.
  38645  * @deprecated
  38646  *
  38647  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/status)
  38648  */
  38649 declare var status: string;
  38650 /**
  38651  * Returns the `statusbar` object.
  38652  *
  38653  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/statusbar)
  38654  */
  38655 declare var statusbar: BarProp;
  38656 /**
  38657  * Returns the `toolbar` object.
  38658  *
  38659  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/toolbar)
  38660  */
  38661 declare var toolbar: BarProp;
  38662 /**
  38663  * Returns a reference to the topmost window in the window hierarchy.
  38664  *
  38665  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/top)
  38666  */
  38667 declare var top: WindowProxy | null;
  38668 /**
  38669  * The **`visualViewport`** read-only property of the Window interface returns a VisualViewport object representing the visual viewport for a given window, or `null` if current document is not fully active.
  38670  *
  38671  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/visualViewport)
  38672  */
  38673 declare var visualViewport: VisualViewport | null;
  38674 /**
  38675  * The **`window`** property of a Window object points to the window object itself.
  38676  *
  38677  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)
  38678  */
  38679 declare var window: Window & typeof globalThis;
  38680 /**
  38681  * `window.alert()` instructs the browser to display a dialog with an optional message, and to wait until the user dismisses the dialog.
  38682  *
  38683  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/alert)
  38684  */
  38685 declare function alert(message?: any): void;
  38686 /**
  38687  * The **`Window.blur()`** method does nothing.
  38688  * @deprecated
  38689  *
  38690  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/blur)
  38691  */
  38692 declare function blur(): void;
  38693 /**
  38694  * The **`window.cancelIdleCallback()`** method cancels a callback previously scheduled with window.requestIdleCallback().
  38695  *
  38696  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/cancelIdleCallback)
  38697  */
  38698 declare function cancelIdleCallback(handle: number): void;
  38699 /**
  38700  * The **`Window.captureEvents()`** method does nothing.
  38701  * @deprecated
  38702  *
  38703  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/captureEvents)
  38704  */
  38705 declare function captureEvents(): void;
  38706 /**
  38707  * The **`Window.close()`** method closes the current window, or the window on which it was called.
  38708  *
  38709  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/close)
  38710  */
  38711 declare function close(): void;
  38712 /**
  38713  * `window.confirm()` instructs the browser to display a dialog with an optional message, and to wait until the user either confirms or cancels the dialog.
  38714  *
  38715  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/confirm)
  38716  */
  38717 declare function confirm(message?: string): boolean;
  38718 /**
  38719  * Makes a request to bring the window to the front.
  38720  *
  38721  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/focus)
  38722  */
  38723 declare function focus(): void;
  38724 /**
  38725  * The **`Window.getComputedStyle()`** method returns an object containing the values of all CSS properties of an element, after applying active stylesheets and resolving any basic computation those values may contain.
  38726  *
  38727  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/getComputedStyle)
  38728  */
  38729 declare function getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration;
  38730 /**
  38731  * The **`getSelection()`** method of the Window interface returns the Selection object associated with the window's document, representing the range of text selected by the user or the current position of the caret.
  38732  *
  38733  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/getSelection)
  38734  */
  38735 declare function getSelection(): Selection | null;
  38736 /**
  38737  * The Window interface's **`matchMedia()`** method returns a new MediaQueryList object that can then be used to determine if the document matches the media query string, as well as to monitor the document to detect when it matches (or stops matching) that media query.
  38738  *
  38739  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/matchMedia)
  38740  */
  38741 declare function matchMedia(query: string): MediaQueryList;
  38742 /**
  38743  * The **`moveBy()`** method of the Window interface moves the current window by a specified amount.
  38744  *
  38745  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/moveBy)
  38746  */
  38747 declare function moveBy(x: number, y: number): void;
  38748 /**
  38749  * The **`moveTo()`** method of the Window interface moves the current window to the specified coordinates.
  38750  *
  38751  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/moveTo)
  38752  */
  38753 declare function moveTo(x: number, y: number): void;
  38754 /**
  38755  * The **`open()`** method of the `Window` interface loads a specified resource into a new or existing browsing context (that is, a tab, a window, or an iframe) under a specified name.
  38756  *
  38757  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/open)
  38758  */
  38759 declare function open(url?: string | URL, target?: string, features?: string): WindowProxy | null;
  38760 /**
  38761  * The **`window.postMessage()`** method safely enables cross-origin communication between Window objects; _e.g.,_ between a page and a pop-up that it spawned, or between a page and an iframe embedded within it.
  38762  *
  38763  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/postMessage)
  38764  */
  38765 declare function postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;
  38766 declare function postMessage(message: any, options?: WindowPostMessageOptions): void;
  38767 /**
  38768  * Opens the print dialog to print the current document.
  38769  *
  38770  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/print)
  38771  */
  38772 declare function print(): void;
  38773 /**
  38774  * `window.prompt()` instructs the browser to display a dialog with an optional message prompting the user to input some text, and to wait until the user either submits the text or cancels the dialog.
  38775  *
  38776  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/prompt)
  38777  */
  38778 declare function prompt(message?: string, _default?: string): string | null;
  38779 /**
  38780  * Releases the window from trapping events of a specific type.
  38781  * @deprecated
  38782  *
  38783  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/releaseEvents)
  38784  */
  38785 declare function releaseEvents(): void;
  38786 /**
  38787  * The **`window.requestIdleCallback()`** method queues a function to be called during a browser's idle periods.
  38788  *
  38789  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/requestIdleCallback)
  38790  */
  38791 declare function requestIdleCallback(callback: IdleRequestCallback, options?: IdleRequestOptions): number;
  38792 /**
  38793  * The **`Window.resizeBy()`** method resizes the current window by a specified amount.
  38794  *
  38795  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/resizeBy)
  38796  */
  38797 declare function resizeBy(x: number, y: number): void;
  38798 /**
  38799  * The **`Window.resizeTo()`** method dynamically resizes the window.
  38800  *
  38801  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/resizeTo)
  38802  */
  38803 declare function resizeTo(width: number, height: number): void;
  38804 /**
  38805  * The **`Window.scroll()`** method scrolls the window to a particular place in the document.
  38806  *
  38807  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scroll)
  38808  */
  38809 declare function scroll(options?: ScrollToOptions): void;
  38810 declare function scroll(x: number, y: number): void;
  38811 /**
  38812  * The **`Window.scrollBy()`** method scrolls the document in the window by the given amount.
  38813  *
  38814  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollBy)
  38815  */
  38816 declare function scrollBy(options?: ScrollToOptions): void;
  38817 declare function scrollBy(x: number, y: number): void;
  38818 /**
  38819  * **`Window.scrollTo()`** scrolls to a particular set of coordinates in the document.
  38820  *
  38821  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollTo)
  38822  */
  38823 declare function scrollTo(options?: ScrollToOptions): void;
  38824 declare function scrollTo(x: number, y: number): void;
  38825 /**
  38826  * The **`window.stop()`** stops further resource loading in the current browsing context, equivalent to the stop button in the browser.
  38827  *
  38828  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/stop)
  38829  */
  38830 declare function stop(): void;
  38831 declare function toString(): string;
  38832 /**
  38833  * The **`dispatchEvent()`** method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order.
  38834  *
  38835  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
  38836  */
  38837 declare function dispatchEvent(event: Event): boolean;
  38838 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/cancelAnimationFrame) */
  38839 declare function cancelAnimationFrame(handle: number): void;
  38840 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/requestAnimationFrame) */
  38841 declare function requestAnimationFrame(callback: FrameRequestCallback): number;
  38842 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/abort_event) */
  38843 declare var onabort: ((this: Window, ev: UIEvent) => any) | null;
  38844 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationcancel_event) */
  38845 declare var onanimationcancel: ((this: Window, ev: AnimationEvent) => any) | null;
  38846 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationend_event) */
  38847 declare var onanimationend: ((this: Window, ev: AnimationEvent) => any) | null;
  38848 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationiteration_event) */
  38849 declare var onanimationiteration: ((this: Window, ev: AnimationEvent) => any) | null;
  38850 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationstart_event) */
  38851 declare var onanimationstart: ((this: Window, ev: AnimationEvent) => any) | null;
  38852 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/auxclick_event) */
  38853 declare var onauxclick: ((this: Window, ev: PointerEvent) => any) | null;
  38854 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/beforeinput_event) */
  38855 declare var onbeforeinput: ((this: Window, ev: InputEvent) => any) | null;
  38856 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/beforematch_event) */
  38857 declare var onbeforematch: ((this: Window, ev: Event) => any) | null;
  38858 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/beforetoggle_event) */
  38859 declare var onbeforetoggle: ((this: Window, ev: ToggleEvent) => any) | null;
  38860 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/blur_event) */
  38861 declare var onblur: ((this: Window, ev: FocusEvent) => any) | null;
  38862 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/cancel_event) */
  38863 declare var oncancel: ((this: Window, ev: Event) => any) | null;
  38864 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplay_event) */
  38865 declare var oncanplay: ((this: Window, ev: Event) => any) | null;
  38866 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplaythrough_event) */
  38867 declare var oncanplaythrough: ((this: Window, ev: Event) => any) | null;
  38868 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/change_event) */
  38869 declare var onchange: ((this: Window, ev: Event) => any) | null;
  38870 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/click_event) */
  38871 declare var onclick: ((this: Window, ev: PointerEvent) => any) | null;
  38872 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/close_event) */
  38873 declare var onclose: ((this: Window, ev: Event) => any) | null;
  38874 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/contextlost_event) */
  38875 declare var oncontextlost: ((this: Window, ev: Event) => any) | null;
  38876 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/contextmenu_event) */
  38877 declare var oncontextmenu: ((this: Window, ev: PointerEvent) => any) | null;
  38878 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/contextrestored_event) */
  38879 declare var oncontextrestored: ((this: Window, ev: Event) => any) | null;
  38880 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/copy_event) */
  38881 declare var oncopy: ((this: Window, ev: ClipboardEvent) => any) | null;
  38882 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/cuechange_event) */
  38883 declare var oncuechange: ((this: Window, ev: Event) => any) | null;
  38884 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/cut_event) */
  38885 declare var oncut: ((this: Window, ev: ClipboardEvent) => any) | null;
  38886 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/dblclick_event) */
  38887 declare var ondblclick: ((this: Window, ev: MouseEvent) => any) | null;
  38888 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drag_event) */
  38889 declare var ondrag: ((this: Window, ev: DragEvent) => any) | null;
  38890 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragend_event) */
  38891 declare var ondragend: ((this: Window, ev: DragEvent) => any) | null;
  38892 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragenter_event) */
  38893 declare var ondragenter: ((this: Window, ev: DragEvent) => any) | null;
  38894 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragleave_event) */
  38895 declare var ondragleave: ((this: Window, ev: DragEvent) => any) | null;
  38896 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragover_event) */
  38897 declare var ondragover: ((this: Window, ev: DragEvent) => any) | null;
  38898 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragstart_event) */
  38899 declare var ondragstart: ((this: Window, ev: DragEvent) => any) | null;
  38900 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drop_event) */
  38901 declare var ondrop: ((this: Window, ev: DragEvent) => any) | null;
  38902 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/durationchange_event) */
  38903 declare var ondurationchange: ((this: Window, ev: Event) => any) | null;
  38904 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/emptied_event) */
  38905 declare var onemptied: ((this: Window, ev: Event) => any) | null;
  38906 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */
  38907 declare var onended: ((this: Window, ev: Event) => any) | null;
  38908 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */
  38909 declare var onerror: OnErrorEventHandler;
  38910 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */
  38911 declare var onfocus: ((this: Window, ev: FocusEvent) => any) | null;
  38912 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */
  38913 declare var onformdata: ((this: Window, ev: FormDataEvent) => any) | null;
  38914 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/gotpointercapture_event) */
  38915 declare var ongotpointercapture: ((this: Window, ev: PointerEvent) => any) | null;
  38916 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/input_event) */
  38917 declare var oninput: ((this: Window, ev: Event) => any) | null;
  38918 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/invalid_event) */
  38919 declare var oninvalid: ((this: Window, ev: Event) => any) | null;
  38920 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keydown_event) */
  38921 declare var onkeydown: ((this: Window, ev: KeyboardEvent) => any) | null;
  38922 /**
  38923  * @deprecated
  38924  *
  38925  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keypress_event)
  38926  */
  38927 declare var onkeypress: ((this: Window, ev: KeyboardEvent) => any) | null;
  38928 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keyup_event) */
  38929 declare var onkeyup: ((this: Window, ev: KeyboardEvent) => any) | null;
  38930 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/load_event) */
  38931 declare var onload: ((this: Window, ev: Event) => any) | null;
  38932 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadeddata_event) */
  38933 declare var onloadeddata: ((this: Window, ev: Event) => any) | null;
  38934 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadedmetadata_event) */
  38935 declare var onloadedmetadata: ((this: Window, ev: Event) => any) | null;
  38936 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadstart_event) */
  38937 declare var onloadstart: ((this: Window, ev: Event) => any) | null;
  38938 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/lostpointercapture_event) */
  38939 declare var onlostpointercapture: ((this: Window, ev: PointerEvent) => any) | null;
  38940 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousedown_event) */
  38941 declare var onmousedown: ((this: Window, ev: MouseEvent) => any) | null;
  38942 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseenter_event) */
  38943 declare var onmouseenter: ((this: Window, ev: MouseEvent) => any) | null;
  38944 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseleave_event) */
  38945 declare var onmouseleave: ((this: Window, ev: MouseEvent) => any) | null;
  38946 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousemove_event) */
  38947 declare var onmousemove: ((this: Window, ev: MouseEvent) => any) | null;
  38948 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseout_event) */
  38949 declare var onmouseout: ((this: Window, ev: MouseEvent) => any) | null;
  38950 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseover_event) */
  38951 declare var onmouseover: ((this: Window, ev: MouseEvent) => any) | null;
  38952 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseup_event) */
  38953 declare var onmouseup: ((this: Window, ev: MouseEvent) => any) | null;
  38954 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/paste_event) */
  38955 declare var onpaste: ((this: Window, ev: ClipboardEvent) => any) | null;
  38956 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause_event) */
  38957 declare var onpause: ((this: Window, ev: Event) => any) | null;
  38958 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play_event) */
  38959 declare var onplay: ((this: Window, ev: Event) => any) | null;
  38960 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/playing_event) */
  38961 declare var onplaying: ((this: Window, ev: Event) => any) | null;
  38962 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointercancel_event) */
  38963 declare var onpointercancel: ((this: Window, ev: PointerEvent) => any) | null;
  38964 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerdown_event) */
  38965 declare var onpointerdown: ((this: Window, ev: PointerEvent) => any) | null;
  38966 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerenter_event) */
  38967 declare var onpointerenter: ((this: Window, ev: PointerEvent) => any) | null;
  38968 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerleave_event) */
  38969 declare var onpointerleave: ((this: Window, ev: PointerEvent) => any) | null;
  38970 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointermove_event) */
  38971 declare var onpointermove: ((this: Window, ev: PointerEvent) => any) | null;
  38972 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerout_event) */
  38973 declare var onpointerout: ((this: Window, ev: PointerEvent) => any) | null;
  38974 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerover_event) */
  38975 declare var onpointerover: ((this: Window, ev: PointerEvent) => any) | null;
  38976 /**
  38977  * Available only in secure contexts.
  38978  *
  38979  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerrawupdate_event)
  38980  */
  38981 declare var onpointerrawupdate: ((this: Window, ev: Event) => any) | null;
  38982 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerup_event) */
  38983 declare var onpointerup: ((this: Window, ev: PointerEvent) => any) | null;
  38984 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/progress_event) */
  38985 declare var onprogress: ((this: Window, ev: ProgressEvent) => any) | null;
  38986 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ratechange_event) */
  38987 declare var onratechange: ((this: Window, ev: Event) => any) | null;
  38988 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/reset_event) */
  38989 declare var onreset: ((this: Window, ev: Event) => any) | null;
  38990 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/resize_event) */
  38991 declare var onresize: ((this: Window, ev: UIEvent) => any) | null;
  38992 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scroll_event) */
  38993 declare var onscroll: ((this: Window, ev: Event) => any) | null;
  38994 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scrollend_event) */
  38995 declare var onscrollend: ((this: Window, ev: Event) => any) | null;
  38996 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/securitypolicyviolation_event) */
  38997 declare var onsecuritypolicyviolation: ((this: Window, ev: SecurityPolicyViolationEvent) => any) | null;
  38998 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeked_event) */
  38999 declare var onseeked: ((this: Window, ev: Event) => any) | null;
  39000 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeking_event) */
  39001 declare var onseeking: ((this: Window, ev: Event) => any) | null;
  39002 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/select_event) */
  39003 declare var onselect: ((this: Window, ev: Event) => any) | null;
  39004 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/selectionchange_event) */
  39005 declare var onselectionchange: ((this: Window, ev: Event) => any) | null;
  39006 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/selectstart_event) */
  39007 declare var onselectstart: ((this: Window, ev: Event) => any) | null;
  39008 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/slotchange_event) */
  39009 declare var onslotchange: ((this: Window, ev: Event) => any) | null;
  39010 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/stalled_event) */
  39011 declare var onstalled: ((this: Window, ev: Event) => any) | null;
  39012 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/submit_event) */
  39013 declare var onsubmit: ((this: Window, ev: SubmitEvent) => any) | null;
  39014 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/suspend_event) */
  39015 declare var onsuspend: ((this: Window, ev: Event) => any) | null;
  39016 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/timeupdate_event) */
  39017 declare var ontimeupdate: ((this: Window, ev: Event) => any) | null;
  39018 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/toggle_event) */
  39019 declare var ontoggle: ((this: Window, ev: ToggleEvent) => any) | null;
  39020 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchcancel_event) */
  39021 declare var ontouchcancel: ((this: Window, ev: TouchEvent) => any) | null | undefined;
  39022 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchend_event) */
  39023 declare var ontouchend: ((this: Window, ev: TouchEvent) => any) | null | undefined;
  39024 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchmove_event) */
  39025 declare var ontouchmove: ((this: Window, ev: TouchEvent) => any) | null | undefined;
  39026 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/touchstart_event) */
  39027 declare var ontouchstart: ((this: Window, ev: TouchEvent) => any) | null | undefined;
  39028 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitioncancel_event) */
  39029 declare var ontransitioncancel: ((this: Window, ev: TransitionEvent) => any) | null;
  39030 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionend_event) */
  39031 declare var ontransitionend: ((this: Window, ev: TransitionEvent) => any) | null;
  39032 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionrun_event) */
  39033 declare var ontransitionrun: ((this: Window, ev: TransitionEvent) => any) | null;
  39034 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionstart_event) */
  39035 declare var ontransitionstart: ((this: Window, ev: TransitionEvent) => any) | null;
  39036 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/volumechange_event) */
  39037 declare var onvolumechange: ((this: Window, ev: Event) => any) | null;
  39038 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/waiting_event) */
  39039 declare var onwaiting: ((this: Window, ev: Event) => any) | null;
  39040 /**
  39041  * @deprecated This is a legacy alias of `onanimationend`.
  39042  *
  39043  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationend_event)
  39044  */
  39045 declare var onwebkitanimationend: ((this: Window, ev: Event) => any) | null;
  39046 /**
  39047  * @deprecated This is a legacy alias of `onanimationiteration`.
  39048  *
  39049  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationiteration_event)
  39050  */
  39051 declare var onwebkitanimationiteration: ((this: Window, ev: Event) => any) | null;
  39052 /**
  39053  * @deprecated This is a legacy alias of `onanimationstart`.
  39054  *
  39055  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationstart_event)
  39056  */
  39057 declare var onwebkitanimationstart: ((this: Window, ev: Event) => any) | null;
  39058 /**
  39059  * @deprecated This is a legacy alias of `ontransitionend`.
  39060  *
  39061  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionend_event)
  39062  */
  39063 declare var onwebkittransitionend: ((this: Window, ev: Event) => any) | null;
  39064 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/wheel_event) */
  39065 declare var onwheel: ((this: Window, ev: WheelEvent) => any) | null;
  39066 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/afterprint_event) */
  39067 declare var onafterprint: ((this: Window, ev: Event) => any) | null;
  39068 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/beforeprint_event) */
  39069 declare var onbeforeprint: ((this: Window, ev: Event) => any) | null;
  39070 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/beforeunload_event) */
  39071 declare var onbeforeunload: ((this: Window, ev: BeforeUnloadEvent) => any) | null;
  39072 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/gamepadconnected_event) */
  39073 declare var ongamepadconnected: ((this: Window, ev: GamepadEvent) => any) | null;
  39074 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/gamepaddisconnected_event) */
  39075 declare var ongamepaddisconnected: ((this: Window, ev: GamepadEvent) => any) | null;
  39076 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/hashchange_event) */
  39077 declare var onhashchange: ((this: Window, ev: HashChangeEvent) => any) | null;
  39078 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/languagechange_event) */
  39079 declare var onlanguagechange: ((this: Window, ev: Event) => any) | null;
  39080 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/message_event) */
  39081 declare var onmessage: ((this: Window, ev: MessageEvent) => any) | null;
  39082 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/messageerror_event) */
  39083 declare var onmessageerror: ((this: Window, ev: MessageEvent) => any) | null;
  39084 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/offline_event) */
  39085 declare var onoffline: ((this: Window, ev: Event) => any) | null;
  39086 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/online_event) */
  39087 declare var ononline: ((this: Window, ev: Event) => any) | null;
  39088 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pagehide_event) */
  39089 declare var onpagehide: ((this: Window, ev: PageTransitionEvent) => any) | null;
  39090 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pagereveal_event) */
  39091 declare var onpagereveal: ((this: Window, ev: PageRevealEvent) => any) | null;
  39092 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pageshow_event) */
  39093 declare var onpageshow: ((this: Window, ev: PageTransitionEvent) => any) | null;
  39094 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pageswap_event) */
  39095 declare var onpageswap: ((this: Window, ev: PageSwapEvent) => any) | null;
  39096 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/popstate_event) */
  39097 declare var onpopstate: ((this: Window, ev: PopStateEvent) => any) | null;
  39098 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/rejectionhandled_event) */
  39099 declare var onrejectionhandled: ((this: Window, ev: PromiseRejectionEvent) => any) | null;
  39100 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/storage_event) */
  39101 declare var onstorage: ((this: Window, ev: StorageEvent) => any) | null;
  39102 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unhandledrejection_event) */
  39103 declare var onunhandledrejection: ((this: Window, ev: PromiseRejectionEvent) => any) | null;
  39104 /**
  39105  * @deprecated
  39106  *
  39107  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unload_event)
  39108  */
  39109 declare var onunload: ((this: Window, ev: Event) => any) | null;
  39110 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/localStorage) */
  39111 declare var localStorage: Storage;
  39112 /**
  39113  * Available only in secure contexts.
  39114  *
  39115  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/caches)
  39116  */
  39117 declare var caches: CacheStorage;
  39118 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/crossOriginIsolated) */
  39119 declare var crossOriginIsolated: boolean;
  39120 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/crypto) */
  39121 declare var crypto: Crypto;
  39122 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/indexedDB) */
  39123 declare var indexedDB: IDBFactory;
  39124 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/isSecureContext) */
  39125 declare var isSecureContext: boolean;
  39126 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/origin) */
  39127 declare var origin: string;
  39128 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/performance) */
  39129 declare var performance: Performance;
  39130 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/atob) */
  39131 declare function atob(data: string): string;
  39132 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/btoa) */
  39133 declare function btoa(data: string): string;
  39134 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/clearInterval) */
  39135 declare function clearInterval(id: number | undefined): void;
  39136 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/clearTimeout) */
  39137 declare function clearTimeout(id: number | undefined): void;
  39138 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/createImageBitmap) */
  39139 declare function createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise<ImageBitmap>;
  39140 declare function createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;
  39141 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/fetch) */
  39142 declare function fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
  39143 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/queueMicrotask) */
  39144 declare function queueMicrotask(callback: VoidFunction): void;
  39145 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/reportError) */
  39146 declare function reportError(e: any): void;
  39147 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/setInterval) */
  39148 declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
  39149 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/setTimeout) */
  39150 declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
  39151 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/structuredClone) */
  39152 declare function structuredClone<T = any>(value: T, options?: StructuredSerializeOptions): T;
  39153 /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/sessionStorage) */
  39154 declare var sessionStorage: Storage;
  39155 declare function addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
  39156 declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
  39157 declare function removeEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
  39158 declare function removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
  39159 type AlgorithmIdentifier = Algorithm | string;
  39160 type AllowSharedBufferSource = ArrayBufferLike | ArrayBufferView<ArrayBufferLike>;
  39161 type AutoFill = AutoFillBase | `${OptionalPrefixToken<AutoFillSection>}${OptionalPrefixToken<AutoFillAddressKind>}${AutoFillField}${OptionalPostfixToken<AutoFillCredentialField>}`;
  39162 type AutoFillField = AutoFillNormalField | `${OptionalPrefixToken<AutoFillContactKind>}${AutoFillContactField}`;
  39163 type AutoFillSection = `section-${string}`;
  39164 type Base64URLString = string;
  39165 type BigInteger = Uint8Array<ArrayBuffer>;
  39166 type BlobPart = BufferSource | Blob | string;
  39167 type BodyInit = ReadableStream | XMLHttpRequestBodyInit;
  39168 type BufferSource = ArrayBufferView<ArrayBuffer> | ArrayBuffer;
  39169 type COSEAlgorithmIdentifier = number;
  39170 type CSSKeywordish = string | CSSKeywordValue;
  39171 type CSSNumberish = number | CSSNumericValue;
  39172 type CSSPerspectiveValue = CSSNumericValue | CSSKeywordish;
  39173 type CSSUnparsedSegment = string | CSSVariableReferenceValue;
  39174 type CanvasImageSource = HTMLOrSVGImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap | OffscreenCanvas | VideoFrame;
  39175 type ClipboardItemData = Promise<string | Blob>;
  39176 type ClipboardItems = ClipboardItem[];
  39177 type ConstrainBoolean = boolean | ConstrainBooleanParameters;
  39178 type ConstrainDOMString = string | string[] | ConstrainDOMStringParameters;
  39179 type ConstrainDouble = number | ConstrainDoubleRange;
  39180 type ConstrainULong = number | ConstrainULongRange;
  39181 type CookieList = CookieListItem[];
  39182 type DOMHighResTimeStamp = number;
  39183 type EpochTimeStamp = number;
  39184 type EventListenerOrEventListenerObject = EventListener | EventListenerObject;
  39185 type FileSystemWriteChunkType = BufferSource | Blob | string | WriteParams;
  39186 type Float32List = Float32Array<ArrayBufferLike> | GLfloat[];
  39187 type FormDataEntryValue = File | string;
  39188 type GLbitfield = number;
  39189 type GLboolean = boolean;
  39190 type GLclampf = number;
  39191 type GLenum = number;
  39192 type GLfloat = number;
  39193 type GLint = number;
  39194 type GLint64 = number;
  39195 type GLintptr = number;
  39196 type GLsizei = number;
  39197 type GLsizeiptr = number;
  39198 type GLuint = number;
  39199 type GLuint64 = number;
  39200 type HTMLOrSVGImageElement = HTMLImageElement | SVGImageElement;
  39201 type HTMLOrSVGScriptElement = HTMLScriptElement | SVGScriptElement;
  39202 type HashAlgorithmIdentifier = AlgorithmIdentifier;
  39203 type HeadersInit = [string, string][] | Record<string, string> | Headers;
  39204 type IDBValidKey = number | string | Date | BufferSource | IDBValidKey[];
  39205 type ImageBitmapSource = CanvasImageSource | Blob | ImageData;
  39206 type ImageBufferSource = AllowSharedBufferSource | ReadableStream;
  39207 type ImageDataArray = Uint8ClampedArray<ArrayBuffer>;
  39208 type Int32List = Int32Array<ArrayBufferLike> | GLint[];
  39209 type LineAndPositionSetting = number | AutoKeyword;
  39210 type MediaProvider = MediaStream | MediaSource | Blob;
  39211 type MessageEventSource = WindowProxy | MessagePort | ServiceWorker;
  39212 type MutationRecordType = "attributes" | "characterData" | "childList";
  39213 type NamedCurve = string;
  39214 type OffscreenRenderingContext = OffscreenCanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext;
  39215 type OnBeforeUnloadEventHandler = OnBeforeUnloadEventHandlerNonNull | null;
  39216 type OnErrorEventHandler = OnErrorEventHandlerNonNull | null;
  39217 type OptionalPostfixToken<T extends string> = ` ${T}` | "";
  39218 type OptionalPrefixToken<T extends string> = `${T} ` | "";
  39219 type PerformanceEntryList = PerformanceEntry[];
  39220 type PublicKeyCredentialClientCapabilities = Record<string, boolean>;
  39221 type PublicKeyCredentialJSON = any;
  39222 type RTCRtpTransform = RTCRtpScriptTransform;
  39223 type ReadableStreamController<T> = ReadableStreamDefaultController<T> | ReadableByteStreamController;
  39224 type ReadableStreamReadResult<T> = ReadableStreamReadValueResult<T> | ReadableStreamReadDoneResult<T>;
  39225 type ReadableStreamReader<T> = ReadableStreamDefaultReader<T> | ReadableStreamBYOBReader;
  39226 type RenderingContext = CanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext;
  39227 type ReportList = Report[];
  39228 type RequestInfo = Request | string;
  39229 type TexImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | OffscreenCanvas | VideoFrame;
  39230 type TimerHandler = string | Function;
  39231 type Transferable = OffscreenCanvas | ImageBitmap | MessagePort | MediaSourceHandle | ReadableStream | WritableStream | TransformStream | AudioData | VideoFrame | RTCDataChannel | ArrayBuffer;
  39232 type Uint32List = Uint32Array<ArrayBufferLike> | GLuint[];
  39233 type VibratePattern = number | number[];
  39234 type WindowProxy = Window;
  39235 type XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string;
  39236 type AlignSetting = "center" | "end" | "left" | "right" | "start";
  39237 type AlphaOption = "discard" | "keep";
  39238 type AnimationPlayState = "finished" | "idle" | "paused" | "running";
  39239 type AnimationReplaceState = "active" | "persisted" | "removed";
  39240 type AppendMode = "segments" | "sequence";
  39241 type AttestationConveyancePreference = "direct" | "enterprise" | "indirect" | "none";
  39242 type AudioContextLatencyCategory = "balanced" | "interactive" | "playback";
  39243 type AudioContextState = "closed" | "interrupted" | "running" | "suspended";
  39244 type AudioSampleFormat = "f32" | "f32-planar" | "s16" | "s16-planar" | "s32" | "s32-planar" | "u8" | "u8-planar";
  39245 type AuthenticatorAttachment = "cross-platform" | "platform";
  39246 type AuthenticatorTransport = "ble" | "hybrid" | "internal" | "nfc" | "usb";
  39247 type AutoFillAddressKind = "billing" | "shipping";
  39248 type AutoFillBase = "" | "off" | "on";
  39249 type AutoFillContactField = "email" | "tel" | "tel-area-code" | "tel-country-code" | "tel-extension" | "tel-local" | "tel-local-prefix" | "tel-local-suffix" | "tel-national";
  39250 type AutoFillContactKind = "home" | "mobile" | "work";
  39251 type AutoFillCredentialField = "webauthn";
  39252 type 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";
  39253 type AutoKeyword = "auto";
  39254 type AutomationRate = "a-rate" | "k-rate";
  39255 type AvcBitstreamFormat = "annexb" | "avc";
  39256 type BinaryType = "arraybuffer" | "blob";
  39257 type BiquadFilterType = "allpass" | "bandpass" | "highpass" | "highshelf" | "lowpass" | "lowshelf" | "notch" | "peaking";
  39258 type BitrateMode = "constant" | "variable";
  39259 type CSSMathOperator = "clamp" | "invert" | "max" | "min" | "negate" | "product" | "sum";
  39260 type CSSNumericBaseType = "angle" | "flex" | "frequency" | "length" | "percent" | "resolution" | "time";
  39261 type CanPlayTypeResult = "" | "maybe" | "probably";
  39262 type CanvasDirection = "inherit" | "ltr" | "rtl";
  39263 type CanvasFillRule = "evenodd" | "nonzero";
  39264 type CanvasFontKerning = "auto" | "none" | "normal";
  39265 type CanvasFontStretch = "condensed" | "expanded" | "extra-condensed" | "extra-expanded" | "normal" | "semi-condensed" | "semi-expanded" | "ultra-condensed" | "ultra-expanded";
  39266 type CanvasFontVariantCaps = "all-petite-caps" | "all-small-caps" | "normal" | "petite-caps" | "small-caps" | "titling-caps" | "unicase";
  39267 type CanvasLineCap = "butt" | "round" | "square";
  39268 type CanvasLineJoin = "bevel" | "miter" | "round";
  39269 type CanvasTextAlign = "center" | "end" | "left" | "right" | "start";
  39270 type CanvasTextBaseline = "alphabetic" | "bottom" | "hanging" | "ideographic" | "middle" | "top";
  39271 type CanvasTextRendering = "auto" | "geometricPrecision" | "optimizeLegibility" | "optimizeSpeed";
  39272 type ChannelCountMode = "clamped-max" | "explicit" | "max";
  39273 type ChannelInterpretation = "discrete" | "speakers";
  39274 type ClientTypes = "all" | "sharedworker" | "window" | "worker";
  39275 type CodecState = "closed" | "configured" | "unconfigured";
  39276 type ColorGamut = "p3" | "rec2020" | "srgb";
  39277 type ColorSpaceConversion = "default" | "none";
  39278 type CompositeOperation = "accumulate" | "add" | "replace";
  39279 type CompositeOperationOrAuto = "accumulate" | "add" | "auto" | "replace";
  39280 type CompressionFormat = "deflate" | "deflate-raw" | "gzip";
  39281 type CookieSameSite = "lax" | "none" | "strict";
  39282 type CredentialMediationRequirement = "conditional" | "optional" | "required" | "silent";
  39283 type DOMParserSupportedType = "application/xhtml+xml" | "application/xml" | "image/svg+xml" | "text/html" | "text/xml";
  39284 type DirectionSetting = "" | "lr" | "rl";
  39285 type DisplayCaptureSurfaceType = "browser" | "monitor" | "window";
  39286 type DistanceModelType = "exponential" | "inverse" | "linear";
  39287 type DocumentReadyState = "complete" | "interactive" | "loading";
  39288 type DocumentVisibilityState = "hidden" | "visible";
  39289 type EncodedAudioChunkType = "delta" | "key";
  39290 type EncodedVideoChunkType = "delta" | "key";
  39291 type EndOfStreamError = "decode" | "network";
  39292 type EndingType = "native" | "transparent";
  39293 type FileSystemHandleKind = "directory" | "file";
  39294 type FillLightMode = "auto" | "flash" | "off";
  39295 type FillMode = "auto" | "backwards" | "both" | "forwards" | "none";
  39296 type FontDisplay = "auto" | "block" | "fallback" | "optional" | "swap";
  39297 type FontFaceLoadStatus = "error" | "loaded" | "loading" | "unloaded";
  39298 type FontFaceSetLoadStatus = "loaded" | "loading";
  39299 type FullscreenNavigationUI = "auto" | "hide" | "show";
  39300 type GamepadHapticEffectType = "dual-rumble" | "trigger-rumble";
  39301 type GamepadHapticsResult = "complete" | "preempted";
  39302 type GamepadMappingType = "" | "standard" | "xr-standard";
  39303 type 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";
  39304 type HardwareAcceleration = "no-preference" | "prefer-hardware" | "prefer-software";
  39305 type HdrMetadataType = "smpteSt2086" | "smpteSt2094-10" | "smpteSt2094-40";
  39306 type HighlightType = "grammar-error" | "highlight" | "spelling-error";
  39307 type IDBCursorDirection = "next" | "nextunique" | "prev" | "prevunique";
  39308 type IDBRequestReadyState = "done" | "pending";
  39309 type IDBTransactionDurability = "default" | "relaxed" | "strict";
  39310 type IDBTransactionMode = "readonly" | "readwrite" | "versionchange";
  39311 type ImageOrientation = "flipY" | "from-image" | "none";
  39312 type ImageSmoothingQuality = "high" | "low" | "medium";
  39313 type InsertPosition = "afterbegin" | "afterend" | "beforebegin" | "beforeend";
  39314 type IterationCompositeOperation = "accumulate" | "replace";
  39315 type KeyFormat = "jwk" | "pkcs8" | "raw" | "spki";
  39316 type KeyType = "private" | "public" | "secret";
  39317 type KeyUsage = "decrypt" | "deriveBits" | "deriveKey" | "encrypt" | "sign" | "unwrapKey" | "verify" | "wrapKey";
  39318 type LatencyMode = "quality" | "realtime";
  39319 type LineAlignSetting = "center" | "end" | "start";
  39320 type LockMode = "exclusive" | "shared";
  39321 type LoginStatus = "logged-in" | "logged-out";
  39322 type MIDIPortConnectionState = "closed" | "open" | "pending";
  39323 type MIDIPortDeviceState = "connected" | "disconnected";
  39324 type MIDIPortType = "input" | "output";
  39325 type MediaDecodingType = "file" | "media-source" | "webrtc";
  39326 type MediaDeviceKind = "audioinput" | "audiooutput" | "videoinput";
  39327 type MediaEncodingType = "record" | "webrtc";
  39328 type MediaKeyMessageType = "individualization-request" | "license-release" | "license-renewal" | "license-request";
  39329 type MediaKeySessionClosedReason = "closed-by-application" | "hardware-context-reset" | "internal-error" | "release-acknowledged" | "resource-evicted";
  39330 type MediaKeySessionType = "persistent-license" | "temporary";
  39331 type MediaKeyStatus = "expired" | "internal-error" | "output-downscaled" | "output-restricted" | "released" | "status-pending" | "usable" | "usable-in-future";
  39332 type MediaKeysRequirement = "not-allowed" | "optional" | "required";
  39333 type MediaSessionAction = "nexttrack" | "pause" | "play" | "previoustrack" | "seekbackward" | "seekforward" | "seekto" | "skipad" | "stop";
  39334 type MediaSessionPlaybackState = "none" | "paused" | "playing";
  39335 type MediaStreamTrackState = "ended" | "live";
  39336 type NavigationTimingType = "back_forward" | "navigate" | "prerender" | "reload";
  39337 type NavigationType = "push" | "reload" | "replace" | "traverse";
  39338 type NotificationDirection = "auto" | "ltr" | "rtl";
  39339 type NotificationPermission = "default" | "denied" | "granted";
  39340 type OffscreenRenderingContextId = "2d" | "bitmaprenderer" | "webgl" | "webgl2" | "webgpu";
  39341 type OpusBitstreamFormat = "ogg" | "opus";
  39342 type OrientationType = "landscape-primary" | "landscape-secondary" | "portrait-primary" | "portrait-secondary";
  39343 type OscillatorType = "custom" | "sawtooth" | "sine" | "square" | "triangle";
  39344 type OverSampleType = "2x" | "4x" | "none";
  39345 type PanningModelType = "HRTF" | "equalpower";
  39346 type PaymentComplete = "fail" | "success" | "unknown";
  39347 type PaymentShippingType = "delivery" | "pickup" | "shipping";
  39348 type PermissionName = "camera" | "geolocation" | "microphone" | "midi" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock" | "storage-access";
  39349 type PermissionState = "denied" | "granted" | "prompt";
  39350 type PlaybackDirection = "alternate" | "alternate-reverse" | "normal" | "reverse";
  39351 type PositionAlignSetting = "auto" | "center" | "line-left" | "line-right";
  39352 type PredefinedColorSpace = "display-p3" | "srgb";
  39353 type PremultiplyAlpha = "default" | "none" | "premultiply";
  39354 type PresentationStyle = "attachment" | "inline" | "unspecified";
  39355 type PublicKeyCredentialType = "public-key";
  39356 type PushEncryptionKeyName = "auth" | "p256dh";
  39357 type RTCBundlePolicy = "balanced" | "max-bundle" | "max-compat";
  39358 type RTCDataChannelState = "closed" | "closing" | "connecting" | "open";
  39359 type RTCDegradationPreference = "balanced" | "maintain-framerate" | "maintain-resolution";
  39360 type RTCDtlsRole = "client" | "server" | "unknown";
  39361 type RTCDtlsTransportState = "closed" | "connected" | "connecting" | "failed" | "new";
  39362 type RTCEncodedVideoFrameType = "delta" | "empty" | "key";
  39363 type RTCErrorDetailType = "data-channel-failure" | "dtls-failure" | "fingerprint-failure" | "hardware-encoder-error" | "hardware-encoder-not-available" | "sctp-failure" | "sdp-syntax-error";
  39364 type RTCIceCandidateType = "host" | "prflx" | "relay" | "srflx";
  39365 type RTCIceComponent = "rtcp" | "rtp";
  39366 type RTCIceConnectionState = "checking" | "closed" | "completed" | "connected" | "disconnected" | "failed" | "new";
  39367 type RTCIceGathererState = "complete" | "gathering" | "new";
  39368 type RTCIceGatheringState = "complete" | "gathering" | "new";
  39369 type RTCIceProtocol = "tcp" | "udp";
  39370 type RTCIceRole = "controlled" | "controlling" | "unknown";
  39371 type RTCIceTcpCandidateType = "active" | "passive" | "so";
  39372 type RTCIceTransportPolicy = "all" | "relay";
  39373 type RTCIceTransportState = "checking" | "closed" | "completed" | "connected" | "disconnected" | "failed" | "new";
  39374 type RTCPeerConnectionState = "closed" | "connected" | "connecting" | "disconnected" | "failed" | "new";
  39375 type RTCPriorityType = "high" | "low" | "medium" | "very-low";
  39376 type RTCQualityLimitationReason = "bandwidth" | "cpu" | "none" | "other";
  39377 type RTCRtcpMuxPolicy = "require";
  39378 type RTCRtpTransceiverDirection = "inactive" | "recvonly" | "sendonly" | "sendrecv" | "stopped";
  39379 type RTCSctpTransportState = "closed" | "connected" | "connecting";
  39380 type RTCSdpType = "answer" | "offer" | "pranswer" | "rollback";
  39381 type RTCSignalingState = "closed" | "have-local-offer" | "have-local-pranswer" | "have-remote-offer" | "have-remote-pranswer" | "stable";
  39382 type RTCStatsIceCandidatePairState = "failed" | "frozen" | "in-progress" | "inprogress" | "succeeded" | "waiting";
  39383 type 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";
  39384 type ReadableStreamReaderMode = "byob";
  39385 type ReadableStreamType = "bytes";
  39386 type ReadyState = "closed" | "ended" | "open";
  39387 type RecordingState = "inactive" | "paused" | "recording";
  39388 type RedEyeReduction = "always" | "controllable" | "never";
  39389 type ReferrerPolicy = "" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";
  39390 type RemotePlaybackState = "connected" | "connecting" | "disconnected";
  39391 type RequestCache = "default" | "force-cache" | "no-cache" | "no-store" | "only-if-cached" | "reload";
  39392 type RequestCredentials = "include" | "omit" | "same-origin";
  39393 type RequestDestination = "" | "audio" | "audioworklet" | "document" | "embed" | "font" | "frame" | "iframe" | "image" | "manifest" | "object" | "paintworklet" | "report" | "script" | "sharedworker" | "style" | "track" | "video" | "worker" | "xslt";
  39394 type RequestMode = "cors" | "navigate" | "no-cors" | "same-origin";
  39395 type RequestPriority = "auto" | "high" | "low";
  39396 type RequestRedirect = "error" | "follow" | "manual";
  39397 type ResidentKeyRequirement = "discouraged" | "preferred" | "required";
  39398 type ResizeObserverBoxOptions = "border-box" | "content-box" | "device-pixel-content-box";
  39399 type ResizeQuality = "high" | "low" | "medium" | "pixelated";
  39400 type ResponseType = "basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect";
  39401 type ScrollBehavior = "auto" | "instant" | "smooth";
  39402 type ScrollLogicalPosition = "center" | "end" | "nearest" | "start";
  39403 type ScrollRestoration = "auto" | "manual";
  39404 type ScrollSetting = "" | "up";
  39405 type SecurityPolicyViolationEventDisposition = "enforce" | "report";
  39406 type SelectionMode = "end" | "preserve" | "select" | "start";
  39407 type ServiceWorkerState = "activated" | "activating" | "installed" | "installing" | "parsed" | "redundant";
  39408 type ServiceWorkerUpdateViaCache = "all" | "imports" | "none";
  39409 type ShadowRootMode = "closed" | "open";
  39410 type SlotAssignmentMode = "manual" | "named";
  39411 type SpeechSynthesisErrorCode = "audio-busy" | "audio-hardware" | "canceled" | "interrupted" | "invalid-argument" | "language-unavailable" | "network" | "not-allowed" | "synthesis-failed" | "synthesis-unavailable" | "text-too-long" | "voice-unavailable";
  39412 type TextTrackKind = "captions" | "chapters" | "descriptions" | "metadata" | "subtitles";
  39413 type TextTrackMode = "disabled" | "hidden" | "showing";
  39414 type TouchType = "direct" | "stylus";
  39415 type TransferFunction = "hlg" | "pq" | "srgb";
  39416 type UserVerificationRequirement = "discouraged" | "preferred" | "required";
  39417 type VideoColorPrimaries = "bt470bg" | "bt709" | "smpte170m";
  39418 type VideoEncoderBitrateMode = "constant" | "quantizer" | "variable";
  39419 type VideoFacingModeEnum = "environment" | "left" | "right" | "user";
  39420 type VideoMatrixCoefficients = "bt470bg" | "bt709" | "rgb" | "smpte170m";
  39421 type VideoPixelFormat = "BGRA" | "BGRX" | "I420" | "I420A" | "I422" | "I444" | "NV12" | "RGBA" | "RGBX";
  39422 type VideoTransferCharacteristics = "bt709" | "iec61966-2-1" | "smpte170m";
  39423 type WakeLockType = "screen";
  39424 type WebGLPowerPreference = "default" | "high-performance" | "low-power";
  39425 type WebTransportCongestionControl = "default" | "low-latency" | "throughput";
  39426 type WebTransportErrorSource = "session" | "stream";
  39427 type WorkerType = "classic" | "module";
  39428 type WriteCommandType = "seek" | "truncate" | "write";
  39429 type XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text";
© notamitgamer • Site Built: 2026-07-21 13:58:23 UTC • git-mirror commit: 1037f62 [view raw info]
Originally created with stagit • modified by notamitgamer
Forked from github.com/notamitgamer/git-mirror