UNPKG

relay-compiler-plus

Version:

A custom relay modern compiler that supports persisted queries

1,830 lines (1,575 loc) 593 kB
/*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ /// <reference no-default-lib="true"/> ///////////////////////////// /// DOM APIs ///////////////////////////// interface Account { displayName: string; id: string; imageURL?: string; name?: string; rpDisplayName: string; } interface Algorithm { name: string; } interface AnimationEventInit extends EventInit { animationName?: string; elapsedTime?: number; } interface AssertionOptions { allowList?: ScopedCredentialDescriptor[]; extensions?: WebAuthnExtensions; rpId?: USVString; timeoutSeconds?: number; } interface CacheQueryOptions { cacheName?: string; ignoreMethod?: boolean; ignoreSearch?: boolean; ignoreVary?: boolean; } interface ClientData { challenge: string; extensions?: WebAuthnExtensions; hashAlg: string | Algorithm; origin: string; rpId: string; tokenBinding?: string; } interface CloseEventInit extends EventInit { code?: number; reason?: string; wasClean?: boolean; } interface CompositionEventInit extends UIEventInit { data?: string; } interface ConfirmSiteSpecificExceptionsInformation extends ExceptionInformation { arrayOfDomainStrings?: string[]; } interface ConstrainBooleanParameters { exact?: boolean; ideal?: boolean; } interface ConstrainDOMStringParameters { exact?: string | string[]; ideal?: string | string[]; } interface ConstrainDoubleRange extends DoubleRange { exact?: number; ideal?: number; } interface ConstrainLongRange extends LongRange { exact?: number; ideal?: number; } interface ConstrainVideoFacingModeParameters { exact?: VideoFacingModeEnum | VideoFacingModeEnum[]; ideal?: VideoFacingModeEnum | VideoFacingModeEnum[]; } interface CustomEventInit extends EventInit { detail?: any; } interface DeviceAccelerationDict { x?: number | null; y?: number | null; z?: number | null; } interface DeviceLightEventInit extends EventInit { value?: number; } interface DeviceMotionEventInit extends EventInit { acceleration?: DeviceAccelerationDict | null; accelerationIncludingGravity?: DeviceAccelerationDict | null; interval?: number | null; rotationRate?: DeviceRotationRateDict | null; } interface DeviceOrientationEventInit extends EventInit { absolute?: boolean; alpha?: number | null; beta?: number | null; gamma?: number | null; } interface DeviceRotationRateDict { alpha?: number | null; beta?: number | null; gamma?: number | null; } interface DOMRectInit { height?: number; width?: number; x?: number; y?: number; } interface DoubleRange { max?: number; min?: number; } interface ErrorEventInit extends EventInit { colno?: number; error?: any; filename?: string; lineno?: number; message?: string; } interface EventInit { scoped?: boolean; bubbles?: boolean; cancelable?: boolean; } interface EventModifierInit extends UIEventInit { altKey?: boolean; ctrlKey?: boolean; metaKey?: boolean; modifierAltGraph?: boolean; modifierCapsLock?: boolean; modifierFn?: boolean; modifierFnLock?: boolean; modifierHyper?: boolean; modifierNumLock?: boolean; modifierOS?: boolean; modifierScrollLock?: boolean; modifierSuper?: boolean; modifierSymbol?: boolean; modifierSymbolLock?: boolean; shiftKey?: boolean; } interface ExceptionInformation { domain?: string | null; } interface FocusEventInit extends UIEventInit { relatedTarget?: EventTarget | null; } interface FocusNavigationEventInit extends EventInit { navigationReason?: string | null; originHeight?: number; originLeft?: number; originTop?: number; originWidth?: number; } interface FocusNavigationOrigin { originHeight?: number; originLeft?: number; originTop?: number; originWidth?: number; } interface GamepadEventInit extends EventInit { gamepad?: Gamepad | null; } interface GetNotificationOptions { tag?: string; } interface HashChangeEventInit extends EventInit { newURL?: string | null; oldURL?: string | null; } interface IDBIndexParameters { multiEntry?: boolean; unique?: boolean; } interface IDBObjectStoreParameters { autoIncrement?: boolean; keyPath?: string | string[]; } interface IntersectionObserverEntryInit { isIntersecting: boolean; boundingClientRect: DOMRectInit; intersectionRect: DOMRectInit; rootBounds: DOMRectInit; target: Element; time: number; } interface IntersectionObserverInit { root?: Element | null; rootMargin?: string; threshold?: number | number[]; } interface KeyAlgorithm { name?: string; } interface KeyboardEventInit extends EventModifierInit { code?: string; key?: string; location?: number; repeat?: boolean; } interface LongRange { max?: number; min?: number; } interface MediaEncryptedEventInit extends EventInit { initData?: ArrayBuffer | null; initDataType?: string; } interface MediaKeyMessageEventInit extends EventInit { message?: ArrayBuffer | null; messageType?: MediaKeyMessageType; } interface MediaKeySystemConfiguration { audioCapabilities?: MediaKeySystemMediaCapability[]; distinctiveIdentifier?: MediaKeysRequirement; initDataTypes?: string[]; persistentState?: MediaKeysRequirement; videoCapabilities?: MediaKeySystemMediaCapability[]; } interface MediaKeySystemMediaCapability { contentType?: string; robustness?: string; } interface MediaStreamConstraints { audio?: boolean | MediaTrackConstraints; video?: boolean | MediaTrackConstraints; } interface MediaStreamErrorEventInit extends EventInit { error?: MediaStreamError | null; } interface MediaStreamEventInit extends EventInit { stream?: MediaStream; } interface MediaStreamTrackEventInit extends EventInit { track?: MediaStreamTrack | null; } interface MediaTrackCapabilities { aspectRatio?: number | DoubleRange; deviceId?: string; echoCancellation?: boolean[]; facingMode?: string; frameRate?: number | DoubleRange; groupId?: string; height?: number | LongRange; sampleRate?: number | LongRange; sampleSize?: number | LongRange; volume?: number | DoubleRange; width?: number | LongRange; } interface MediaTrackConstraints extends MediaTrackConstraintSet { advanced?: MediaTrackConstraintSet[]; } interface MediaTrackConstraintSet { aspectRatio?: number | ConstrainDoubleRange; deviceId?: string | string[] | ConstrainDOMStringParameters; echoCancelation?: boolean | ConstrainBooleanParameters; facingMode?: string | string[] | ConstrainDOMStringParameters; frameRate?: number | ConstrainDoubleRange; groupId?: string | string[] | ConstrainDOMStringParameters; height?: number | ConstrainLongRange; sampleRate?: number | ConstrainLongRange; sampleSize?: number | ConstrainLongRange; volume?: number | ConstrainDoubleRange; width?: number | ConstrainLongRange; } interface MediaTrackSettings { aspectRatio?: number; deviceId?: string; echoCancellation?: boolean; facingMode?: string; frameRate?: number; groupId?: string; height?: number; sampleRate?: number; sampleSize?: number; volume?: number; width?: number; } interface MediaTrackSupportedConstraints { aspectRatio?: boolean; deviceId?: boolean; echoCancellation?: boolean; facingMode?: boolean; frameRate?: boolean; groupId?: boolean; height?: boolean; sampleRate?: boolean; sampleSize?: boolean; volume?: boolean; width?: boolean; } interface MessageEventInit extends EventInit { lastEventId?: string; channel?: string; data?: any; origin?: string; ports?: MessagePort[]; source?: Window; } interface MouseEventInit extends EventModifierInit { button?: number; buttons?: number; clientX?: number; clientY?: number; relatedTarget?: EventTarget | null; screenX?: number; screenY?: number; } interface MSAccountInfo { accountImageUri?: string; accountName?: string; rpDisplayName: string; userDisplayName: string; userId?: string; } interface MSAudioLocalClientEvent extends MSLocalClientEventBase { cpuInsufficientEventRatio?: number; deviceCaptureNotFunctioningEventRatio?: number; deviceClippingEventRatio?: number; deviceEchoEventRatio?: number; deviceGlitchesEventRatio?: number; deviceHalfDuplexAECEventRatio?: number; deviceHowlingEventCount?: number; deviceLowSNREventRatio?: number; deviceLowSpeechLevelEventRatio?: number; deviceMultipleEndpointsEventCount?: number; deviceNearEndToEchoRatioEventRatio?: number; deviceRenderMuteEventRatio?: number; deviceRenderNotFunctioningEventRatio?: number; deviceRenderZeroVolumeEventRatio?: number; networkDelayEventRatio?: number; networkSendQualityEventRatio?: number; } interface MSAudioRecvPayload extends MSPayloadBase { burstLossLength1?: number; burstLossLength2?: number; burstLossLength3?: number; burstLossLength4?: number; burstLossLength5?: number; burstLossLength6?: number; burstLossLength7?: number; burstLossLength8OrHigher?: number; fecRecvDistance1?: number; fecRecvDistance2?: number; fecRecvDistance3?: number; packetReorderDepthAvg?: number; packetReorderDepthMax?: number; packetReorderRatio?: number; ratioCompressedSamplesAvg?: number; ratioConcealedSamplesAvg?: number; ratioStretchedSamplesAvg?: number; samplingRate?: number; signal?: MSAudioRecvSignal; } interface MSAudioRecvSignal { initialSignalLevelRMS?: number; recvNoiseLevelCh1?: number; recvSignalLevelCh1?: number; renderLoopbackSignalLevel?: number; renderNoiseLevel?: number; renderSignalLevel?: number; } interface MSAudioSendPayload extends MSPayloadBase { audioFECUsed?: boolean; samplingRate?: number; sendMutePercent?: number; signal?: MSAudioSendSignal; } interface MSAudioSendSignal { noiseLevel?: number; sendNoiseLevelCh1?: number; sendSignalLevelCh1?: number; } interface MSConnectivity { iceType?: MSIceType; iceWarningFlags?: MSIceWarningFlags; relayAddress?: MSRelayAddress; } interface MSCredentialFilter { accept?: MSCredentialSpec[]; } interface MSCredentialParameters { type?: MSCredentialType; } interface MSCredentialSpec { id?: string; type: MSCredentialType; } interface MSDelay { roundTrip?: number; roundTripMax?: number; } interface MSDescription extends RTCStats { connectivity?: MSConnectivity; deviceDevName?: string; localAddr?: MSIPAddressInfo; networkconnectivity?: MSNetworkConnectivityInfo; reflexiveLocalIPAddr?: MSIPAddressInfo; remoteAddr?: MSIPAddressInfo; transport?: RTCIceProtocol; } interface MSFIDOCredentialParameters extends MSCredentialParameters { algorithm?: string | Algorithm; authenticators?: AAGUID[]; } interface MSIceWarningFlags { allocationMessageIntegrityFailed?: boolean; alternateServerReceived?: boolean; connCheckMessageIntegrityFailed?: boolean; connCheckOtherError?: boolean; fipsAllocationFailure?: boolean; multipleRelayServersAttempted?: boolean; noRelayServersConfigured?: boolean; portRangeExhausted?: boolean; pseudoTLSFailure?: boolean; tcpNatConnectivityFailed?: boolean; tcpRelayConnectivityFailed?: boolean; turnAuthUnknownUsernameError?: boolean; turnTcpAllocateFailed?: boolean; turnTcpSendFailed?: boolean; turnTcpTimedOut?: boolean; turnTurnTcpConnectivityFailed?: boolean; turnUdpAllocateFailed?: boolean; turnUdpSendFailed?: boolean; udpLocalConnectivityFailed?: boolean; udpNatConnectivityFailed?: boolean; udpRelayConnectivityFailed?: boolean; useCandidateChecksFailed?: boolean; } interface MSIPAddressInfo { ipAddr?: string; manufacturerMacAddrMask?: string; port?: number; } interface MSJitter { interArrival?: number; interArrivalMax?: number; interArrivalSD?: number; } interface MSLocalClientEventBase extends RTCStats { networkBandwidthLowEventRatio?: number; networkReceiveQualityEventRatio?: number; } interface MSNetwork extends RTCStats { delay?: MSDelay; jitter?: MSJitter; packetLoss?: MSPacketLoss; utilization?: MSUtilization; } interface MSNetworkConnectivityInfo { linkspeed?: number; networkConnectionDetails?: string; vpn?: boolean; } interface MSNetworkInterfaceType { interfaceTypeEthernet?: boolean; interfaceTypePPP?: boolean; interfaceTypeTunnel?: boolean; interfaceTypeWireless?: boolean; interfaceTypeWWAN?: boolean; } interface MSOutboundNetwork extends MSNetwork { appliedBandwidthLimit?: number; } interface MSPacketLoss { lossRate?: number; lossRateMax?: number; } interface MSPayloadBase extends RTCStats { payloadDescription?: string; } interface MSPortRange { max?: number; min?: number; } interface MSRelayAddress { port?: number; relayAddress?: string; } interface MSSignatureParameters { userPrompt?: string; } interface MSTransportDiagnosticsStats extends RTCStats { allocationTimeInMs?: number; baseAddress?: string; baseInterface?: MSNetworkInterfaceType; iceRole?: RTCIceRole; iceWarningFlags?: MSIceWarningFlags; interfaces?: MSNetworkInterfaceType; localAddress?: string; localAddrType?: MSIceAddrType; localInterface?: MSNetworkInterfaceType; localMR?: string; localMRTCPPort?: number; localSite?: string; msRtcEngineVersion?: string; networkName?: string; numConsentReqReceived?: number; numConsentReqSent?: number; numConsentRespReceived?: number; numConsentRespSent?: number; portRangeMax?: number; portRangeMin?: number; protocol?: RTCIceProtocol; remoteAddress?: string; remoteAddrType?: MSIceAddrType; remoteMR?: string; remoteMRTCPPort?: number; remoteSite?: string; rtpRtcpMux?: boolean; stunVer?: number; } interface MSUtilization { bandwidthEstimation?: number; bandwidthEstimationAvg?: number; bandwidthEstimationMax?: number; bandwidthEstimationMin?: number; bandwidthEstimationStdDev?: number; packets?: number; } interface MSVideoPayload extends MSPayloadBase { durationSeconds?: number; resolution?: string; videoBitRateAvg?: number; videoBitRateMax?: number; videoFrameRateAvg?: number; videoPacketLossRate?: number; } interface MSVideoRecvPayload extends MSVideoPayload { lowBitRateCallPercent?: number; lowFrameRateCallPercent?: number; recvBitRateAverage?: number; recvBitRateMaximum?: number; recvCodecType?: string; recvFpsHarmonicAverage?: number; recvFrameRateAverage?: number; recvNumResSwitches?: number; recvReorderBufferMaxSuccessfullyOrderedExtent?: number; recvReorderBufferMaxSuccessfullyOrderedLateTime?: number; recvReorderBufferPacketsDroppedDueToBufferExhaustion?: number; recvReorderBufferPacketsDroppedDueToTimeout?: number; recvReorderBufferReorderedPackets?: number; recvResolutionHeight?: number; recvResolutionWidth?: number; recvVideoStreamsMax?: number; recvVideoStreamsMin?: number; recvVideoStreamsMode?: number; reorderBufferTotalPackets?: number; videoFrameLossRate?: number; videoPostFECPLR?: number; videoResolutions?: MSVideoResolutionDistribution; } interface MSVideoResolutionDistribution { cifQuality?: number; h1080Quality?: number; h1440Quality?: number; h2160Quality?: number; h720Quality?: number; vgaQuality?: number; } interface MSVideoSendPayload extends MSVideoPayload { sendBitRateAverage?: number; sendBitRateMaximum?: number; sendFrameRateAverage?: number; sendResolutionHeight?: number; sendResolutionWidth?: number; sendVideoStreamsMax?: number; } interface MsZoomToOptions { animate?: string; contentX?: number; contentY?: number; scaleFactor?: number; viewportX?: string | null; viewportY?: string | null; } interface MutationObserverInit { attributeFilter?: string[]; attributeOldValue?: boolean; attributes?: boolean; characterData?: boolean; characterDataOldValue?: boolean; childList?: boolean; subtree?: boolean; } interface NotificationOptions { body?: string; dir?: NotificationDirection; icon?: string; lang?: string; tag?: string; } interface ObjectURLOptions { oneTimeOnly?: boolean; } interface PaymentCurrencyAmount { currency: string; currencySystem?: string; value: string; } interface PaymentDetails { displayItems?: PaymentItem[]; error?: string; modifiers?: PaymentDetailsModifier[]; shippingOptions?: PaymentShippingOption[]; total?: PaymentItem; } interface PaymentDetailsModifier { additionalDisplayItems?: PaymentItem[]; data?: any; supportedMethods: string[]; total?: PaymentItem; } interface PaymentItem { amount: PaymentCurrencyAmount; label: string; pending?: boolean; } interface PaymentMethodData { data?: any; supportedMethods: string[]; } interface PaymentOptions { requestPayerEmail?: boolean; requestPayerName?: boolean; requestPayerPhone?: boolean; requestShipping?: boolean; shippingType?: string; } interface PaymentRequestUpdateEventInit extends EventInit { } interface PaymentShippingOption { amount: PaymentCurrencyAmount; id: string; label: string; selected?: boolean; } interface PeriodicWaveConstraints { disableNormalization?: boolean; } interface PointerEventInit extends MouseEventInit { height?: number; isPrimary?: boolean; pointerId?: number; pointerType?: string; pressure?: number; tiltX?: number; tiltY?: number; width?: number; } interface PopStateEventInit extends EventInit { state?: any; } interface PositionOptions { enableHighAccuracy?: boolean; maximumAge?: number; timeout?: number; } interface ProgressEventInit extends EventInit { lengthComputable?: boolean; loaded?: number; total?: number; } interface PushSubscriptionOptionsInit { applicationServerKey?: any; userVisibleOnly?: boolean; } interface RegistrationOptions { scope?: string; } interface RequestInit { body?: any; cache?: RequestCache; credentials?: RequestCredentials; headers?: HeadersInit; integrity?: string; keepalive?: boolean; method?: string; mode?: RequestMode; redirect?: RequestRedirect; referrer?: string; referrerPolicy?: ReferrerPolicy; window?: any; } interface ResponseInit { headers?: HeadersInit; status?: number; statusText?: string; } interface RTCConfiguration { bundlePolicy?: RTCBundlePolicy; iceServers?: RTCIceServer[]; iceTransportPolicy?: RTCIceTransportPolicy; peerIdentity?: string; } interface RTCDtlsFingerprint { algorithm?: string; value?: string; } interface RTCDtlsParameters { fingerprints?: RTCDtlsFingerprint[]; role?: RTCDtlsRole; } interface RTCDTMFToneChangeEventInit extends EventInit { tone?: string; } interface RTCIceCandidateAttributes extends RTCStats { addressSourceUrl?: string; candidateType?: RTCStatsIceCandidateType; ipAddress?: string; portNumber?: number; priority?: number; transport?: string; } interface RTCIceCandidateComplete { } interface RTCIceCandidateDictionary { foundation?: string; ip?: string; msMTurnSessionId?: string; port?: number; priority?: number; protocol?: RTCIceProtocol; relatedAddress?: string; relatedPort?: number; tcpType?: RTCIceTcpCandidateType; type?: RTCIceCandidateType; } interface RTCIceCandidateInit { candidate?: string; sdpMid?: string; sdpMLineIndex?: number; } interface RTCIceCandidatePair { local?: RTCIceCandidateDictionary; remote?: RTCIceCandidateDictionary; } interface RTCIceCandidatePairStats extends RTCStats { availableIncomingBitrate?: number; availableOutgoingBitrate?: number; bytesReceived?: number; bytesSent?: number; localCandidateId?: string; nominated?: boolean; priority?: number; readable?: boolean; remoteCandidateId?: string; roundTripTime?: number; state?: RTCStatsIceCandidatePairState; transportId?: string; writable?: boolean; } interface RTCIceGatherOptions { gatherPolicy?: RTCIceGatherPolicy; iceservers?: RTCIceServer[]; portRange?: MSPortRange; } interface RTCIceParameters { iceLite?: boolean | null; password?: string; usernameFragment?: string; } interface RTCIceServer { credential?: string | null; urls?: any; username?: string | null; } interface RTCInboundRTPStreamStats extends RTCRTPStreamStats { bytesReceived?: number; fractionLost?: number; jitter?: number; packetsLost?: number; packetsReceived?: number; } interface RTCMediaStreamTrackStats extends RTCStats { audioLevel?: number; echoReturnLoss?: number; echoReturnLossEnhancement?: number; frameHeight?: number; framesCorrupted?: number; framesDecoded?: number; framesDropped?: number; framesPerSecond?: number; framesReceived?: number; framesSent?: number; frameWidth?: number; remoteSource?: boolean; ssrcIds?: string[]; trackIdentifier?: string; } interface RTCOfferOptions { iceRestart?: boolean; offerToReceiveAudio?: number; offerToReceiveVideo?: number; voiceActivityDetection?: boolean; } interface RTCOutboundRTPStreamStats extends RTCRTPStreamStats { bytesSent?: number; packetsSent?: number; roundTripTime?: number; targetBitrate?: number; } interface RTCPeerConnectionIceEventInit extends EventInit { candidate?: RTCIceCandidate; } interface RTCRtcpFeedback { parameter?: string; type?: string; } interface RTCRtcpParameters { cname?: string; mux?: boolean; reducedSize?: boolean; ssrc?: number; } interface RTCRtpCapabilities { codecs?: RTCRtpCodecCapability[]; fecMechanisms?: string[]; headerExtensions?: RTCRtpHeaderExtension[]; } interface RTCRtpCodecCapability { clockRate?: number; kind?: string; maxptime?: number; maxSpatialLayers?: number; maxTemporalLayers?: number; name?: string; numChannels?: number; options?: any; parameters?: any; preferredPayloadType?: number; ptime?: number; rtcpFeedback?: RTCRtcpFeedback[]; svcMultiStreamSupport?: boolean; } interface RTCRtpCodecParameters { clockRate?: number; maxptime?: number; name?: string; numChannels?: number; parameters?: any; payloadType?: any; ptime?: number; rtcpFeedback?: RTCRtcpFeedback[]; } interface RTCRtpContributingSource { audioLevel?: number; csrc?: number; timestamp?: number; } interface RTCRtpEncodingParameters { active?: boolean; codecPayloadType?: number; dependencyEncodingIds?: string[]; encodingId?: string; fec?: RTCRtpFecParameters; framerateScale?: number; maxBitrate?: number; maxFramerate?: number; minQuality?: number; priority?: number; resolutionScale?: number; rtx?: RTCRtpRtxParameters; ssrc?: number; ssrcRange?: RTCSsrcRange; } interface RTCRtpFecParameters { mechanism?: string; ssrc?: number; } interface RTCRtpHeaderExtension { kind?: string; preferredEncrypt?: boolean; preferredId?: number; uri?: string; } interface RTCRtpHeaderExtensionParameters { encrypt?: boolean; id?: number; uri?: string; } interface RTCRtpParameters { codecs?: RTCRtpCodecParameters[]; degradationPreference?: RTCDegradationPreference; encodings?: RTCRtpEncodingParameters[]; headerExtensions?: RTCRtpHeaderExtensionParameters[]; muxId?: string; rtcp?: RTCRtcpParameters; } interface RTCRtpRtxParameters { ssrc?: number; } interface RTCRTPStreamStats extends RTCStats { associateStatsId?: string; codecId?: string; firCount?: number; isRemote?: boolean; mediaTrackId?: string; nackCount?: number; pliCount?: number; sliCount?: number; ssrc?: string; transportId?: string; } interface RTCRtpUnhandled { muxId?: string; payloadType?: number; ssrc?: number; } interface RTCSessionDescriptionInit { sdp?: string; type?: RTCSdpType; } interface RTCSrtpKeyParam { keyMethod?: string; keySalt?: string; lifetime?: string; mkiLength?: number; mkiValue?: number; } interface RTCSrtpSdesParameters { cryptoSuite?: string; keyParams?: RTCSrtpKeyParam[]; sessionParams?: string[]; tag?: number; } interface RTCSsrcRange { max?: number; min?: number; } interface RTCStats { id?: string; msType?: MSStatsType; timestamp?: number; type?: RTCStatsType; } interface RTCStatsReport { } interface RTCTransportStats extends RTCStats { activeConnection?: boolean; bytesReceived?: number; bytesSent?: number; localCertificateId?: string; remoteCertificateId?: string; rtcpTransportStatsId?: string; selectedCandidatePairId?: string; } interface ScopedCredentialDescriptor { id: any; transports?: Transport[]; type: ScopedCredentialType; } interface ScopedCredentialOptions { excludeList?: ScopedCredentialDescriptor[]; extensions?: WebAuthnExtensions; rpId?: USVString; timeoutSeconds?: number; } interface ScopedCredentialParameters { algorithm: string | Algorithm; type: ScopedCredentialType; } interface ServiceWorkerMessageEventInit extends EventInit { data?: any; lastEventId?: string; origin?: string; ports?: MessagePort[] | null; source?: ServiceWorker | MessagePort | null; } interface SpeechSynthesisEventInit extends EventInit { charIndex?: number; elapsedTime?: number; name?: string; utterance?: SpeechSynthesisUtterance | null; } interface StoreExceptionsInformation extends ExceptionInformation { detailURI?: string | null; explanationString?: string | null; siteName?: string | null; } interface StoreSiteSpecificExceptionsInformation extends StoreExceptionsInformation { arrayOfDomainStrings?: string[]; } interface TrackEventInit extends EventInit { track?: VideoTrack | AudioTrack | TextTrack | null; } interface TransitionEventInit extends EventInit { elapsedTime?: number; propertyName?: string; } interface UIEventInit extends EventInit { detail?: number; view?: Window | null; } interface WebAuthnExtensions { } interface WebGLContextAttributes { failIfMajorPerformanceCaveat?: boolean; alpha?: boolean; antialias?: boolean; depth?: boolean; premultipliedAlpha?: boolean; preserveDrawingBuffer?: boolean; stencil?: boolean; } interface WebGLContextEventInit extends EventInit { statusMessage?: string; } interface WheelEventInit extends MouseEventInit { deltaMode?: number; deltaX?: number; deltaY?: number; deltaZ?: number; } interface EventListener { (evt: Event): void; } interface WebKitEntriesCallback { (evt: Event): void; } interface WebKitErrorCallback { (evt: Event): void; } interface WebKitFileCallback { (evt: Event): void; } interface AnalyserNode extends AudioNode { fftSize: number; readonly frequencyBinCount: number; maxDecibels: number; minDecibels: number; smoothingTimeConstant: number; getByteFrequencyData(array: Uint8Array): void; getByteTimeDomainData(array: Uint8Array): void; getFloatFrequencyData(array: Float32Array): void; getFloatTimeDomainData(array: Float32Array): void; } declare var AnalyserNode: { prototype: AnalyserNode; new(): AnalyserNode; }; interface ANGLE_instanced_arrays { drawArraysInstancedANGLE(mode: number, first: number, count: number, primcount: number): void; drawElementsInstancedANGLE(mode: number, count: number, type: number, offset: number, primcount: number): void; vertexAttribDivisorANGLE(index: number, divisor: number): void; readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: number; } declare var ANGLE_instanced_arrays: { prototype: ANGLE_instanced_arrays; new(): ANGLE_instanced_arrays; readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: number; }; interface AnimationEvent extends Event { readonly animationName: string; readonly elapsedTime: number; initAnimationEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, animationNameArg: string, elapsedTimeArg: number): void; } declare var AnimationEvent: { prototype: AnimationEvent; new(typeArg: string, eventInitDict?: AnimationEventInit): AnimationEvent; }; interface ApplicationCacheEventMap { "cached": Event; "checking": Event; "downloading": Event; "error": Event; "noupdate": Event; "obsolete": Event; "progress": ProgressEvent; "updateready": Event; } interface ApplicationCache extends EventTarget { oncached: (this: ApplicationCache, ev: Event) => any; onchecking: (this: ApplicationCache, ev: Event) => any; ondownloading: (this: ApplicationCache, ev: Event) => any; onerror: (this: ApplicationCache, ev: Event) => any; onnoupdate: (this: ApplicationCache, ev: Event) => any; onobsolete: (this: ApplicationCache, ev: Event) => any; onprogress: (this: ApplicationCache, ev: ProgressEvent) => any; onupdateready: (this: ApplicationCache, ev: Event) => any; readonly status: number; abort(): void; swapCache(): void; update(): void; readonly CHECKING: number; readonly DOWNLOADING: number; readonly IDLE: number; readonly OBSOLETE: number; readonly UNCACHED: number; readonly UPDATEREADY: number; addEventListener<K extends keyof ApplicationCacheEventMap>(type: K, listener: (this: ApplicationCache, ev: ApplicationCacheEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener<K extends keyof ApplicationCacheEventMap>(type: K, listener: (this: ApplicationCache, ev: ApplicationCacheEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var ApplicationCache: { prototype: ApplicationCache; new(): ApplicationCache; readonly CHECKING: number; readonly DOWNLOADING: number; readonly IDLE: number; readonly OBSOLETE: number; readonly UNCACHED: number; readonly UPDATEREADY: number; }; interface Attr extends Node { readonly name: string; readonly ownerElement: Element; readonly prefix: string | null; readonly specified: boolean; value: string; } declare var Attr: { prototype: Attr; new(): Attr; }; interface AudioBuffer { readonly duration: number; readonly length: number; readonly numberOfChannels: number; readonly sampleRate: number; copyFromChannel(destination: Float32Array, channelNumber: number, startInChannel?: number): void; copyToChannel(source: Float32Array, channelNumber: number, startInChannel?: number): void; getChannelData(channel: number): Float32Array; } declare var AudioBuffer: { prototype: AudioBuffer; new(): AudioBuffer; }; interface AudioBufferSourceNodeEventMap { "ended": MediaStreamErrorEvent; } interface AudioBufferSourceNode extends AudioNode { buffer: AudioBuffer | null; readonly detune: AudioParam; loop: boolean; loopEnd: number; loopStart: number; onended: (this: AudioBufferSourceNode, ev: MediaStreamErrorEvent) => any; readonly playbackRate: AudioParam; start(when?: number, offset?: number, duration?: number): void; stop(when?: number): void; addEventListener<K extends keyof AudioBufferSourceNodeEventMap>(type: K, listener: (this: AudioBufferSourceNode, ev: AudioBufferSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener<K extends keyof AudioBufferSourceNodeEventMap>(type: K, listener: (this: AudioBufferSourceNode, ev: AudioBufferSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var AudioBufferSourceNode: { prototype: AudioBufferSourceNode; new(): AudioBufferSourceNode; }; interface AudioContextEventMap { "statechange": Event; } interface AudioContextBase extends EventTarget { readonly currentTime: number; readonly destination: AudioDestinationNode; readonly listener: AudioListener; onstatechange: (this: AudioContext, ev: Event) => any; readonly sampleRate: number; readonly state: AudioContextState; close(): Promise<void>; createAnalyser(): AnalyserNode; createBiquadFilter(): BiquadFilterNode; createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer; createBufferSource(): AudioBufferSourceNode; createChannelMerger(numberOfInputs?: number): ChannelMergerNode; createChannelSplitter(numberOfOutputs?: number): ChannelSplitterNode; createConvolver(): ConvolverNode; createDelay(maxDelayTime?: number): DelayNode; createDynamicsCompressor(): DynamicsCompressorNode; createGain(): GainNode; createIIRFilter(feedforward: number[], feedback: number[]): IIRFilterNode; createMediaElementSource(mediaElement: HTMLMediaElement): MediaElementAudioSourceNode; createMediaStreamSource(mediaStream: MediaStream): MediaStreamAudioSourceNode; createOscillator(): OscillatorNode; createPanner(): PannerNode; createPeriodicWave(real: Float32Array, imag: Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave; createScriptProcessor(bufferSize?: number, numberOfInputChannels?: number, numberOfOutputChannels?: number): ScriptProcessorNode; createStereoPanner(): StereoPannerNode; createWaveShaper(): WaveShaperNode; decodeAudioData(audioData: ArrayBuffer, successCallback?: DecodeSuccessCallback, errorCallback?: DecodeErrorCallback): Promise<AudioBuffer>; resume(): Promise<void>; addEventListener<K extends keyof AudioContextEventMap>(type: K, listener: (this: AudioContext, ev: AudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener<K extends keyof AudioContextEventMap>(type: K, listener: (this: AudioContext, ev: AudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } interface AudioContext extends AudioContextBase { suspend(): Promise<void>; } declare var AudioContext: { prototype: AudioContext; new(): AudioContext; }; interface AudioDestinationNode extends AudioNode { readonly maxChannelCount: number; } declare var AudioDestinationNode: { prototype: AudioDestinationNode; new(): AudioDestinationNode; }; interface AudioListener { dopplerFactor: number; speedOfSound: number; setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void; setPosition(x: number, y: number, z: number): void; setVelocity(x: number, y: number, z: number): void; } declare var AudioListener: { prototype: AudioListener; new(): AudioListener; }; interface AudioNode extends EventTarget { channelCount: number; channelCountMode: ChannelCountMode; channelInterpretation: ChannelInterpretation; readonly context: AudioContext; readonly numberOfInputs: number; readonly numberOfOutputs: number; connect(destination: AudioNode, output?: number, input?: number): AudioNode; connect(destination: AudioParam, output?: number): void; disconnect(output?: number): void; disconnect(destination: AudioNode, output?: number, input?: number): void; disconnect(destination: AudioParam, output?: number): void; } declare var AudioNode: { prototype: AudioNode; new(): AudioNode; }; interface AudioParam { readonly defaultValue: number; value: number; cancelScheduledValues(startTime: number): AudioParam; exponentialRampToValueAtTime(value: number, endTime: number): AudioParam; linearRampToValueAtTime(value: number, endTime: number): AudioParam; setTargetAtTime(target: number, startTime: number, timeConstant: number): AudioParam; setValueAtTime(value: number, startTime: number): AudioParam; setValueCurveAtTime(values: Float32Array, startTime: number, duration: number): AudioParam; } declare var AudioParam: { prototype: AudioParam; new(): AudioParam; }; interface AudioProcessingEvent extends Event { readonly inputBuffer: AudioBuffer; readonly outputBuffer: AudioBuffer; readonly playbackTime: number; } declare var AudioProcessingEvent: { prototype: AudioProcessingEvent; new(): AudioProcessingEvent; }; interface AudioTrack { enabled: boolean; readonly id: string; kind: string; readonly label: string; language: string; readonly sourceBuffer: SourceBuffer; } declare var AudioTrack: { prototype: AudioTrack; new(): AudioTrack; }; interface AudioTrackListEventMap { "addtrack": TrackEvent; "change": Event; "removetrack": TrackEvent; } interface AudioTrackList extends EventTarget { readonly length: number; onaddtrack: (this: AudioTrackList, ev: TrackEvent) => any; onchange: (this: AudioTrackList, ev: Event) => any; onremovetrack: (this: AudioTrackList, ev: TrackEvent) => any; getTrackById(id: string): AudioTrack | null; item(index: number): AudioTrack; addEventListener<K extends keyof AudioTrackListEventMap>(type: K, listener: (this: AudioTrackList, ev: AudioTrackListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener<K extends keyof AudioTrackListEventMap>(type: K, listener: (this: AudioTrackList, ev: AudioTrackListEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; [index: number]: AudioTrack; } declare var AudioTrackList: { prototype: AudioTrackList; new(): AudioTrackList; }; interface BarProp { readonly visible: boolean; } declare var BarProp: { prototype: BarProp; new(): BarProp; }; interface BeforeUnloadEvent extends Event { returnValue: any; } declare var BeforeUnloadEvent: { prototype: BeforeUnloadEvent; new(): BeforeUnloadEvent; }; interface BiquadFilterNode extends AudioNode { readonly detune: AudioParam; readonly frequency: AudioParam; readonly gain: AudioParam; readonly Q: AudioParam; type: BiquadFilterType; getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void; } declare var BiquadFilterNode: { prototype: BiquadFilterNode; new(): BiquadFilterNode; }; interface Blob { readonly size: number; readonly type: string; msClose(): void; msDetachStream(): any; slice(start?: number, end?: number, contentType?: string): Blob; } declare var Blob: { prototype: Blob; new (blobParts?: any[], options?: BlobPropertyBag): Blob; }; interface Cache { add(request: RequestInfo): Promise<void>; addAll(requests: RequestInfo[]): Promise<void>; delete(request: RequestInfo, options?: CacheQueryOptions): Promise<boolean>; keys(request?: RequestInfo, options?: CacheQueryOptions): Promise<Request[]>; match(request: RequestInfo, options?: CacheQueryOptions): Promise<Response>; matchAll(request?: RequestInfo, options?: CacheQueryOptions): Promise<Response[]>; put(request: RequestInfo, response: Response): Promise<void>; } declare var Cache: { prototype: Cache; new(): Cache; }; interface CacheStorage { delete(cacheName: string): Promise<boolean>; has(cacheName: string): Promise<boolean>; keys(): Promise<string[]>; match(request: RequestInfo, options?: CacheQueryOptions): Promise<any>; open(cacheName: string): Promise<Cache>; } declare var CacheStorage: { prototype: CacheStorage; new(): CacheStorage; }; interface CanvasGradient { addColorStop(offset: number, color: string): void; } declare var CanvasGradient: { prototype: CanvasGradient; new(): CanvasGradient; }; interface CanvasPattern { setTransform(matrix: SVGMatrix): void; } declare var CanvasPattern: { prototype: CanvasPattern; new(): CanvasPattern; }; interface CanvasRenderingContext2D extends Object, CanvasPathMethods { readonly canvas: HTMLCanvasElement; fillStyle: string | CanvasGradient | CanvasPattern; font: string; globalAlpha: number; globalCompositeOperation: string; imageSmoothingEnabled: boolean; lineCap: string; lineDashOffset: number; lineJoin: string; lineWidth: number; miterLimit: number; msFillRule: CanvasFillRule; shadowBlur: number; shadowColor: string; shadowOffsetX: number; shadowOffsetY: number; strokeStyle: string | CanvasGradient | CanvasPattern; textAlign: string; textBaseline: string; mozImageSmoothingEnabled: boolean; webkitImageSmoothingEnabled: boolean; oImageSmoothingEnabled: boolean; beginPath(): void; clearRect(x: number, y: number, w: number, h: number): void; clip(fillRule?: CanvasFillRule): void; createImageData(imageDataOrSw: number | ImageData, sh?: number): ImageData; createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient; createPattern(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, repetition: string): CanvasPattern; createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient; drawFocusIfNeeded(element: Element): void; drawImage(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap, dstX: number, dstY: number): void; drawImage(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap, dstX: number, dstY: number, dstW: number, dstH: number): void; drawImage(image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap, srcX: number, srcY: number, srcW: number, srcH: number, dstX: number, dstY: number, dstW: number, dstH: number): void; fill(fillRule?: CanvasFillRule): void; fillRect(x: number, y: number, w: number, h: number): void; fillText(text: string, x: number, y: number, maxWidth?: number): void; getImageData(sx: number, sy: number, sw: number, sh: number): ImageData; getLineDash(): number[]; isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean; measureText(text: string): TextMetrics; putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX?: number, dirtyY?: number, dirtyWidth?: number, dirtyHeight?: number): void; restore(): void; rotate(angle: number): void; save(): void; scale(x: number, y: number): void; setLineDash(segments: number[]): void; setTransform(m11: number, m12: number, m21: number, m22: number, dx: number, dy: number): void; stroke(path?: Path2D): void; strokeRect(x: number, y: number, w: number, h: number): void; strokeText(text: string, x: number, y: number, maxWidth?: number): void; transform(m11: number, m12: number, m21: number, m22: number, dx: number, dy: number): void; translate(x: number, y: number): void; } declare var CanvasRenderingContext2D: { prototype: CanvasRenderingContext2D; new(): CanvasRenderingContext2D; }; interface CDATASection extends Text { } declare var CDATASection: { prototype: CDATASection; new(): CDATASection; }; interface ChannelMergerNode extends AudioNode { } declare var ChannelMergerNode: { prototype: ChannelMergerNode; new(): ChannelMergerNode; }; interface ChannelSplitterNode extends AudioNode { } declare var ChannelSplitterNode: { prototype: ChannelSplitterNode; new(): ChannelSplitterNode; }; interface CharacterData extends Node, ChildNode { data: string; readonly length: number; appendData(arg: string): void; deleteData(offset: number, count: number): void; insertData(offset: number, arg: string): void; replaceData(offset: number, count: number, arg: string): void; substringData(offset: number, count: number): string; } declare var CharacterData: { prototype: CharacterData; new(): CharacterData; }; interface ClientRect { bottom: number; readonly height: number; left: number; right: number; top: number; readonly width: number; } declare var ClientRect: { prototype: ClientRect; new(): ClientRect; }; interface ClientRectList { readonly length: number; item(index: number): ClientRect; [index: number]: ClientRect; } declare var ClientRectList: { prototype: ClientRectList; new(): ClientRectList; }; interface ClipboardEvent extends Event { readonly clipboardData: DataTransfer; } declare var ClipboardEvent: { prototype: ClipboardEvent; new(type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent; }; interface CloseEvent extends Event { readonly code: number; readonly reason: string; readonly wasClean: boolean; initCloseEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, wasCleanArg: boolean, codeArg: number, reasonArg: string): void; } declare var CloseEvent: { prototype: CloseEvent; new(typeArg: string, eventInitDict?: CloseEventInit): CloseEvent; }; interface Comment extends CharacterData { text: string; } declare var Comment: { prototype: Comment; new(): Comment; }; interface CompositionEvent extends UIEvent { readonly data: string; readonly locale: string; initCompositionEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, dataArg: string, locale: string): void; } declare var CompositionEvent: { prototype: CompositionEvent; new(typeArg: string, eventInitDict?: CompositionEventInit): CompositionEvent; }; interface Console { assert(test?: boolean, message?: string, ...optionalParams: any[]): void; clear(): void; count(countTitle?: string): void; debug(message?: any, ...optionalParams: any[]): void; dir(value?: any, ...optionalParams: any[]): void; dirxml(value: any): void; error(message?: any, ...optionalParams: any[]): void; exception(message?: string, ...optionalParams: any[]): void; group(groupTitle?: string, ...optionalParams: any[]): void; groupCollapsed(groupTitle?: string, ...optionalParams: any[]): void; groupEnd(): void; info(message?: any, ...optionalParams: any[]): void; log(message?: any, ...optionalParams: any[]): void; msIsIndependentlyComposed(element: Element): boolean; profile(reportName?: string): void; profileEnd(): void; select(element: Element): void; table(...data: any[]): void; time(timerName?: string): void; timeEnd(timerName?: string): void; trace(message?: any, ...optionalParams: any[]): void; warn(message?: any, ...optionalParams: any[]): void; } declare var Console: { prototype: Console; new(): Console; }; interface ConvolverNode extends AudioNode { buffer: AudioBuffer | null; normalize: boolean; } declare var ConvolverNode: { prototype: ConvolverNode; new(): ConvolverNode; }; interface Coordinates { readonly accuracy: number; readonly altitude: number | null; readonly altitudeAccuracy: number | null; readonly heading: number | null; readonly latitude: number; readonly longitude: number; readonly speed: number | null; } declare var Coordinates: { prototype: Coordinates; new(): Coordinates; }; interface Crypto extends Object, RandomSource { readonly subtle: SubtleCrypto; } declare var Crypto: { prototype: Crypto; new(): Crypto; }; interface CryptoKey { readonly algorithm: KeyAlgorithm; readonly extractable: boolean; readonly type: string; readonly usages: string[]; } d