summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/@types/lib.gecko.dom.d.ts36605
-rw-r--r--tools/@types/lib.gecko.nsresult.d.ts666
-rw-r--r--tools/@types/lib.gecko.services.d.ts61
-rw-r--r--tools/@types/lib.gecko.xpcom.d.ts16271
-rw-r--r--tools/@types/package.json26
-rw-r--r--tools/crashreporter/injector/moz.build5
-rw-r--r--tools/esmify/is-esmified.js2
-rw-r--r--tools/esmify/map.json2
-rw-r--r--tools/esmify/utils.js2
-rw-r--r--tools/fuzzing/ipc/IPCFuzzController.cpp4
-rw-r--r--tools/lint/cpp/mingw-capitalization.py2
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/configs/browser-test.js15
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/configs/chrome-test.js1
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/configs/general-test.js17
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js60
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/configs/xpcshell-test.js11
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/environments/privileged.js1
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/environments/sysmjs.js (renamed from tools/lint/eslint/eslint-plugin-mozilla/lib/environments/jsm.js)8
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/globals.js2
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/helpers.js8
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/index.js4
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-browser-window-globals.js2
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-content-task-globals.js6
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-headjs-globals.js2
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/rules/mark-exported-symbols-as-used.js4
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/rules/no-more-globals.js69
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/rules/reject-globalThis-modification.js2
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/lib/services.json3
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/manifest.tt4
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/package-lock.json2642
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/package.json8
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/reporters/mozilla-format.js3
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/scripts/createExports.js4
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/tests/avoid-Date-timing.js2
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/tests/helper-no-more-globals.js.globals1
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/tests/no-comparison-or-assignment-inside-ok.js2
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/tests/no-more-globals.js38
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/tests/reject-top-level-await.js2
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/tests/rejects-requires-await.js2
-rw-r--r--tools/lint/eslint/eslint-plugin-mozilla/tests/use-static-import.js2
-rw-r--r--tools/lint/eslint/manifest.tt4
-rw-r--r--tools/lint/ignorefile.yml10
-rw-r--r--tools/lint/ignorefile/__init__.py162
-rw-r--r--tools/lint/mach_commands.py4
-rw-r--r--tools/lint/perfdocs/framework_gatherers.py6
-rw-r--r--tools/lint/perfdocs/verifier.py4
-rw-r--r--tools/lint/rejected-words.yml1
-rw-r--r--tools/lint/test/python.toml2
-rw-r--r--tools/lint/test/test_ignorefile.py170
-rw-r--r--tools/lint/trojan-source.yml5
-rw-r--r--tools/lint/yamllint_/__init__.py4
-rw-r--r--tools/profiler/core/ETWTools.cpp21
-rw-r--r--tools/profiler/core/ProfileBuffer.cpp5
-rw-r--r--tools/profiler/core/ProfileBuffer.h3
-rw-r--r--tools/profiler/core/platform-macos.cpp14
-rw-r--r--tools/profiler/core/platform.cpp12
-rw-r--r--tools/profiler/docs/markers-guide.rst10
-rw-r--r--tools/profiler/gecko/ChildProfilerController.cpp29
-rw-r--r--tools/profiler/public/ETWTools.h207
-rw-r--r--tools/profiler/public/GeckoProfiler.h3
-rw-r--r--tools/profiler/public/GeckoTraceEvent.h13
-rw-r--r--tools/profiler/public/ProfilerMarkers.h108
-rw-r--r--tools/profiler/public/ProfilerThreadRegistrationInfo.h5
-rw-r--r--tools/profiler/tests/browser/browser.toml7
-rw-r--r--tools/profiler/tests/browser/browser_test_marker_network_cancel.js2
-rw-r--r--tools/profiler/tests/browser/browser_test_marker_network_redirect.js31
-rw-r--r--tools/profiler/tests/browser/browser_test_marker_network_simple.js2
-rw-r--r--tools/profiler/tests/browser/browser_test_markers_parent_process.js9
-rw-r--r--tools/profiler/tests/browser/browser_test_profile_capture_by_pid.js10
-rw-r--r--tools/profiler/tests/browser/browser_test_profile_multi_frame_page_info.js6
-rw-r--r--tools/profiler/tests/browser/browser_test_profile_single_frame_page_info.js2
-rw-r--r--tools/profiler/tests/browser/browser_test_profile_slow_capture.js4
-rw-r--r--tools/profiler/tests/browser/serviceworkers/serviceworker_no_fetch_handler.js2
-rw-r--r--tools/profiler/tests/browser/serviceworkers/serviceworker_no_respondWith_in_fetch_handler.js2
-rw-r--r--tools/profiler/tests/browser/serviceworkers/serviceworker_synthetized_response.js2
-rw-r--r--tools/profiler/tests/gtest/GeckoProfiler.cpp19
-rw-r--r--tools/profiler/tests/shared-head.js2
-rw-r--r--tools/profiler/tests/xpcshell/test_feature_cpufreq.js2
-rw-r--r--tools/profiler/tests/xpcshell/xpcshell.toml1
-rwxr-xr-xtools/rb/fix_stacks.py5
-rw-r--r--tools/rewriting/Generated.txt6
-rw-r--r--tools/rewriting/ThirdPartyPaths.txt4
-rw-r--r--tools/rusttests/config/mozconfigs/win32/rusttests2
-rw-r--r--tools/rusttests/config/mozconfigs/win64/rusttests2
-rw-r--r--tools/rusttests/moz.configure2
-rw-r--r--tools/sanitizer/docs/tsan.rst17
-rw-r--r--tools/signing/macos/mach_commands.py675
-rw-r--r--tools/tryselect/docs/img/treeherder-trigger-symbols.pngbin0 -> 44545 bytes
-rw-r--r--tools/tryselect/docs/index.rst35
-rw-r--r--tools/tryselect/docs/selectors/index.rst2
-rw-r--r--tools/tryselect/selectors/chooser/templates/chooser.html11
-rw-r--r--tools/tryselect/selectors/fuzzy.py7
-rw-r--r--tools/tryselect/selectors/perf.py23
-rw-r--r--tools/tryselect/task_config.py20
-rw-r--r--tools/tryselect/tasks.py11
-rw-r--r--tools/tryselect/test/test_fuzzy.py2
-rw-r--r--tools/tryselect/test/test_perf.py28
-rw-r--r--tools/tryselect/test/test_tasks.py98
-rw-r--r--tools/tryselect/try_presets.yml52
-rw-r--r--tools/ts/.eslintrc.js18
-rw-r--r--tools/ts/build_nsresult.js56
-rw-r--r--tools/ts/build_services.js47
-rw-r--r--tools/ts/build_xpcom.js139
-rw-r--r--tools/ts/error_list.json535
-rw-r--r--tools/ts/fixtures/intrinsics.d.ts85
-rw-r--r--tools/ts/fixtures/xpctest.d.ts275
-rw-r--r--tools/ts/mach_commands.py114
-rw-r--r--tools/ts/package-lock.json6400
-rw-r--r--tools/ts/package.json10
-rw-r--r--tools/ts/tests/xpcom.test.js18
-rw-r--r--tools/ts/update_refs.js35
-rw-r--r--tools/update-programs/moz.configure2
112 files changed, 63464 insertions, 2748 deletions
diff --git a/tools/@types/lib.gecko.dom.d.ts b/tools/@types/lib.gecko.dom.d.ts
new file mode 100644
index 0000000000..2f6028d43b
--- /dev/null
+++ b/tools/@types/lib.gecko.dom.d.ts
@@ -0,0 +1,36605 @@
+/////////////////////////////
+/// Window APIs
+/////////////////////////////
+
+/// <reference no-default-lib="true" />
+/// <reference types="gecko" />
+/// <reference lib="es2023" />
+
+interface ActivateMenuItemOptions {
+ altKey?: boolean;
+ button?: number;
+ ctrlKey?: boolean;
+ metaKey?: boolean;
+ shiftKey?: boolean;
+}
+
+interface AddEventListenerOptions extends EventListenerOptions {
+ once?: boolean;
+ passive?: boolean;
+ signal?: AbortSignal;
+ wantUntrusted?: boolean;
+}
+
+interface AddonEventInit extends EventInit {
+ id: string;
+}
+
+interface AddressErrors {
+ addressLine?: string;
+ city?: string;
+ country?: string;
+ dependentLocality?: string;
+ organization?: string;
+ phone?: string;
+ postalCode?: string;
+ recipient?: string;
+ region?: string;
+ regionCode?: string;
+ sortingCode?: string;
+}
+
+interface AnalyserOptions extends AudioNodeOptions {
+ fftSize?: number;
+ maxDecibels?: number;
+ minDecibels?: number;
+ smoothingTimeConstant?: number;
+}
+
+interface AnimationEventInit extends EventInit {
+ animationName?: string;
+ elapsedTime?: number;
+ pseudoElement?: string;
+}
+
+interface AnimationPlaybackEventInit extends EventInit {
+ currentTime?: number | null;
+ timelineTime?: number | null;
+}
+
+interface AnimationPropertyDetails {
+ property: string;
+ runningOnCompositor: boolean;
+ values: AnimationPropertyValueDetails[];
+ warning?: string;
+}
+
+interface AnimationPropertyValueDetails {
+ composite: CompositeOperation;
+ easing?: UTF8String;
+ offset: number;
+ value?: UTF8String;
+}
+
+interface AssignedNodesOptions {
+ flatten?: boolean;
+}
+
+interface AttributeNameValue {
+ name: UTF8String;
+ value: UTF8String;
+}
+
+interface AudioBufferOptions {
+ length: number;
+ numberOfChannels?: number;
+ sampleRate: number;
+}
+
+interface AudioBufferSourceOptions {
+ buffer?: AudioBuffer | null;
+ detune?: number;
+ loop?: boolean;
+ loopEnd?: number;
+ loopStart?: number;
+ playbackRate?: number;
+}
+
+interface AudioConfiguration {
+ bitrate?: number;
+ channels?: string;
+ contentType: string;
+ samplerate?: number;
+}
+
+interface AudioContextOptions {
+ sampleRate?: number;
+}
+
+interface AudioNodeOptions {
+ channelCount?: number;
+ channelCountMode?: ChannelCountMode;
+ channelInterpretation?: ChannelInterpretation;
+}
+
+interface AudioOutputOptions {
+ deviceId?: string;
+}
+
+interface AudioSinkDebugInfo {
+ audioEnded?: boolean;
+ hasErrored?: boolean;
+ isPlaying?: boolean;
+ isStarted?: boolean;
+ lastGoodPosition?: number;
+ outputRate?: number;
+ playbackComplete?: boolean;
+ startTime?: number;
+ written?: number;
+}
+
+interface AudioSinkWrapperDebugInfo {
+ audioEnded?: boolean;
+ audioSink?: AudioSinkDebugInfo;
+ isPlaying?: boolean;
+ isStarted?: boolean;
+}
+
+interface AudioTimestamp {
+ contextTime?: number;
+ performanceTime?: DOMHighResTimeStamp;
+}
+
+interface AudioWorkletNodeOptions extends AudioNodeOptions {
+ numberOfInputs?: number;
+ numberOfOutputs?: number;
+ outputChannelCount?: number[];
+ parameterData?: Record<string, number>;
+ processorOptions?: any;
+}
+
+interface AuthenticationExtensionsClientInputs {
+ appid?: string;
+ credProps?: boolean;
+ hmacCreateSecret?: boolean;
+ minPinLength?: boolean;
+}
+
+interface AuthenticationExtensionsClientInputsJSON {
+ appid?: string;
+ credProps?: boolean;
+ hmacCreateSecret?: boolean;
+ minPinLength?: boolean;
+}
+
+interface AuthenticationExtensionsClientOutputs {
+ appid?: boolean;
+ credProps?: CredentialPropertiesOutput;
+ hmacCreateSecret?: boolean;
+}
+
+interface AuthenticatorSelectionCriteria {
+ authenticatorAttachment?: string;
+ requireResidentKey?: boolean;
+ residentKey?: string;
+ userVerification?: string;
+}
+
+interface AutocompleteInfo {
+ addressType?: string;
+ canAutomaticallyPersist?: boolean;
+ contactType?: string;
+ credentialType?: string;
+ fieldName?: string;
+ section?: string;
+}
+
+interface AvcEncoderConfig {
+ format?: AvcBitstreamFormat;
+}
+
+interface Base64URLDecodeOptions {
+ padding: Base64URLDecodePadding;
+}
+
+interface Base64URLEncodeOptions {
+ pad: boolean;
+}
+
+interface BiquadFilterOptions extends AudioNodeOptions {
+ Q?: number;
+ detune?: number;
+ frequency?: number;
+ gain?: number;
+ type?: BiquadFilterType;
+}
+
+interface BlobEventInit extends EventInit {
+ data: Blob;
+}
+
+interface BlobPropertyBag {
+ endings?: EndingType;
+ type?: string;
+}
+
+interface BlockParsingOptions {
+ blockScriptCreated?: boolean;
+}
+
+interface BoxQuadOptions {
+ box?: CSSBoxType;
+ createFramesForSuppressedWhitespace?: boolean;
+ relativeTo?: GeometryNode;
+}
+
+interface BufferRange {
+ end?: number;
+ start?: number;
+}
+
+interface CDMInformation {
+ capabilities: string;
+ clearlead: boolean;
+ keySystemName: string;
+}
+
+interface CSSStyleSheetInit {
+ baseURL?: UTF8String;
+ disabled?: boolean;
+ media?: MediaList | UTF8String;
+}
+
+interface CacheQueryOptions {
+ ignoreMethod?: boolean;
+ ignoreSearch?: boolean;
+ ignoreVary?: boolean;
+}
+
+interface CanvasRenderingContext2DSettings {
+ alpha?: boolean;
+ colorSpace?: PredefinedColorSpace;
+ desynchronized?: boolean;
+ willReadFrequently?: boolean;
+}
+
+interface CaretStateChangedEventInit extends EventInit {
+ boundingClientRect?: DOMRectReadOnly | null;
+ caretVisible?: boolean;
+ caretVisuallyVisible?: boolean;
+ clientX?: number;
+ clientY?: number;
+ collapsed?: boolean;
+ reason?: CaretChangedReason;
+ selectedTextContent?: string;
+ selectionEditable?: boolean;
+ selectionVisible?: boolean;
+}
+
+interface ChannelMergerOptions extends AudioNodeOptions {
+ numberOfInputs?: number;
+}
+
+interface ChannelSplitterOptions extends AudioNodeOptions {
+ numberOfOutputs?: number;
+}
+
+interface CheckVisibilityOptions {
+ checkOpacity?: boolean;
+ checkVisibilityCSS?: boolean;
+ contentVisibilityAuto?: boolean;
+ flush?: boolean;
+ opacityProperty?: boolean;
+ visibilityProperty?: boolean;
+}
+
+interface CheckerboardReport {
+ log?: string;
+ reason?: CheckerboardReason;
+ severity?: number;
+ timestamp?: DOMTimeStamp;
+}
+
+interface ChildProcInfoDictionary {
+ childID?: number;
+ cpuCycleCount?: number;
+ cpuTime?: number;
+ memory?: number;
+ origin?: UTF8String;
+ pid?: number;
+ threads?: ThreadInfoDictionary[];
+ type?: WebIDLProcType;
+ utilityActors?: UtilityActorsDictionary[];
+ windows?: WindowInfoDictionary[];
+}
+
+interface ChromeFilePropertyBag extends FilePropertyBag {
+ existenceCheck?: boolean;
+ name?: string;
+}
+
+interface ClientQueryOptions {
+ includeUncontrolled?: boolean;
+ type?: ClientType;
+}
+
+interface ClientRectsAndTexts {
+ rectList: DOMRectList;
+ textList: string[];
+}
+
+interface ClipboardEventInit extends EventInit {
+ data?: string;
+ dataType?: string;
+}
+
+interface ClipboardItemOptions {
+ presentationStyle?: PresentationStyle;
+}
+
+interface CloseEventInit extends EventInit {
+ code?: number;
+ reason?: string;
+ wasClean?: boolean;
+}
+
+interface CollectedData {
+ children?: any[];
+ id?: Record<string, CollectedFormDataValue>;
+ innerHTML?: string;
+ scroll?: string;
+ url?: string;
+ xpath?: Record<string, CollectedFormDataValue>;
+}
+
+interface CompileScriptOptionsDictionary {
+ charset?: string;
+ hasReturnValue?: boolean;
+ lazilyParse?: boolean;
+}
+
+interface CompositionEventInit extends UIEventInit {
+ data?: string;
+}
+
+interface ComputedEffectTiming extends EffectTiming {
+ activeDuration?: number;
+ currentIteration?: number | null;
+ endTime?: number;
+ localTime?: number | null;
+ progress?: number | null;
+}
+
+interface ConsoleInstanceOptions {
+ consoleID?: string;
+ dump?: ConsoleInstanceDumpCallback;
+ innerID?: string;
+ maxLogLevel?: ConsoleLogLevel;
+ maxLogLevelPref?: string;
+ prefix?: string;
+}
+
+interface ConstantSourceOptions {
+ offset?: number;
+}
+
+interface ConstrainBooleanParameters {
+ exact?: boolean;
+ ideal?: boolean;
+}
+
+interface ConstrainDOMStringParameters {
+ exact?: string | string[];
+ ideal?: string | string[];
+}
+
+interface ConstrainDoubleRange {
+ exact?: number;
+ ideal?: number;
+ max?: number;
+ min?: number;
+}
+
+interface ConstrainLongRange {
+ exact?: number;
+ ideal?: number;
+ max?: number;
+ min?: number;
+}
+
+interface ContentVisibilityAutoStateChangeEventInit extends EventInit {
+ skipped?: boolean;
+}
+
+interface ConvertCoordinateOptions {
+ fromBox?: CSSBoxType;
+ toBox?: CSSBoxType;
+}
+
+interface ConvolverOptions extends AudioNodeOptions {
+ buffer?: AudioBuffer | null;
+ disableNormalization?: boolean;
+}
+
+interface CopyOptions {
+ noOverwrite?: boolean;
+ recursive?: boolean;
+}
+
+interface CredentialCreationOptions {
+ publicKey?: PublicKeyCredentialCreationOptions;
+ signal?: AbortSignal;
+}
+
+interface CredentialPropertiesOutput {
+ rk?: boolean;
+}
+
+interface CredentialRequestOptions {
+ identity?: IdentityCredentialRequestOptions;
+ mediation?: CredentialMediationRequirement;
+ publicKey?: PublicKeyCredentialRequestOptions;
+ signal?: AbortSignal;
+}
+
+interface CustomEventInit extends EventInit {
+ detail?: any;
+}
+
+interface DOMMatrix2DInit {
+ a?: number;
+ b?: number;
+ c?: number;
+ d?: number;
+ e?: number;
+ f?: number;
+ m11?: number;
+ m12?: number;
+ m21?: number;
+ m22?: number;
+ m41?: number;
+ m42?: number;
+}
+
+interface DOMMatrixInit extends DOMMatrix2DInit {
+ is2D?: boolean;
+ m13?: number;
+ m14?: number;
+ m23?: number;
+ m24?: number;
+ m31?: number;
+ m32?: number;
+ m33?: number;
+ m34?: number;
+ m43?: number;
+ m44?: number;
+}
+
+interface DOMPointInit {
+ w?: number;
+ x?: number;
+ y?: number;
+ z?: number;
+}
+
+interface DOMQuadInit {
+ p1?: DOMPointInit;
+ p2?: DOMPointInit;
+ p3?: DOMPointInit;
+ p4?: DOMPointInit;
+}
+
+interface DOMRectInit {
+ height?: number;
+ width?: number;
+ x?: number;
+ y?: number;
+}
+
+interface DateTimeValue {
+ day?: number;
+ hour?: number;
+ minute?: number;
+ month?: number;
+ year?: number;
+}
+
+interface DecodedStreamDataDebugInfo {
+ audioFramesWritten?: number;
+ haveSentFinishAudio?: boolean;
+ haveSentFinishVideo?: boolean;
+ instance?: string;
+ lastVideoEndTime?: number;
+ lastVideoStartTime?: number;
+ nextAudioTime?: number;
+ streamAudioWritten?: number;
+ streamVideoWritten?: number;
+}
+
+interface DecodedStreamDebugInfo {
+ audioQueueFinished?: boolean;
+ audioQueueSize?: number;
+ data?: DecodedStreamDataDebugInfo;
+ instance?: string;
+ lastAudio?: number;
+ lastOutputTime?: number;
+ playing?: number;
+ startTime?: number;
+}
+
+interface DelayOptions extends AudioNodeOptions {
+ delayTime?: number;
+ maxDelayTime?: number;
+}
+
+interface DeviceAccelerationInit {
+ x?: number | null;
+ y?: number | null;
+ z?: number | null;
+}
+
+interface DeviceLightEventInit extends EventInit {
+ value?: number;
+}
+
+interface DeviceMotionEventInit extends EventInit {
+ acceleration?: DeviceAccelerationInit;
+ accelerationIncludingGravity?: DeviceAccelerationInit;
+ interval?: number | null;
+ rotationRate?: DeviceRotationRateInit;
+}
+
+interface DeviceOrientationEventInit extends EventInit {
+ absolute?: boolean;
+ alpha?: number | null;
+ beta?: number | null;
+ gamma?: number | null;
+}
+
+interface DeviceRotationRateInit {
+ alpha?: number | null;
+ beta?: number | null;
+ gamma?: number | null;
+}
+
+interface DictWithAllowSharedBufferSource {
+ allowSharedArrayBuffer?: ArrayBuffer;
+ allowSharedArrayBufferView?: ArrayBufferView;
+ arrayBuffer?: ArrayBuffer;
+ arrayBufferView?: ArrayBufferView;
+}
+
+interface DisplayMediaStreamConstraints {
+ audio?: boolean | MediaTrackConstraints;
+ video?: boolean | MediaTrackConstraints;
+}
+
+interface DisplayNameOptions {
+ calendar?: string;
+ keys?: string[];
+ style?: string;
+ type?: string;
+}
+
+interface DisplayNameResult {
+ calendar?: string;
+ locale?: string;
+ style?: string;
+ type?: string;
+ values?: string[];
+}
+
+interface DocumentTimelineOptions {
+ originTime?: DOMHighResTimeStamp;
+}
+
+interface DragEventInit extends MouseEventInit {
+ dataTransfer?: DataTransfer | null;
+}
+
+interface DynamicsCompressorOptions extends AudioNodeOptions {
+ attack?: number;
+ knee?: number;
+ ratio?: number;
+ release?: number;
+ threshold?: number;
+}
+
+interface EMEDebugInfo {
+ keySystem?: string;
+ sessionsInfo?: string;
+}
+
+interface EffectTiming {
+ delay?: number;
+ direction?: PlaybackDirection;
+ duration?: number | string;
+ easing?: UTF8String;
+ endDelay?: number;
+ fill?: FillMode;
+ iterationStart?: number;
+ iterations?: number;
+}
+
+interface ElementCreationOptions {
+ is?: string;
+ pseudo?: string;
+}
+
+interface ElementDefinitionOptions {
+ extends?: string;
+}
+
+interface EncodedVideoChunkInit {
+ data: ArrayBufferView | ArrayBuffer;
+ duration?: number;
+ timestamp: number;
+ type: EncodedVideoChunkType;
+}
+
+interface EncodedVideoChunkMetadata {
+ decoderConfig?: VideoDecoderConfig;
+ svc?: SvcOutputMetadata;
+}
+
+interface ErrorEventInit extends EventInit {
+ colno?: number;
+ error?: any;
+ filename?: string;
+ lineno?: number;
+ message?: string;
+}
+
+interface EventInit {
+ bubbles?: boolean;
+ cancelable?: boolean;
+ composed?: boolean;
+}
+
+interface EventListenerOptions {
+ capture?: boolean;
+ mozSystemGroup?: boolean;
+}
+
+interface EventModifierInit extends UIEventInit {
+ altKey?: boolean;
+ ctrlKey?: boolean;
+ metaKey?: boolean;
+ modifierAltGraph?: boolean;
+ modifierCapsLock?: boolean;
+ modifierFn?: boolean;
+ modifierFnLock?: boolean;
+ modifierNumLock?: boolean;
+ modifierOS?: boolean;
+ modifierScrollLock?: boolean;
+ modifierSymbol?: boolean;
+ modifierSymbolLock?: boolean;
+ shiftKey?: boolean;
+}
+
+interface EventSourceInit {
+ withCredentials?: boolean;
+}
+
+interface ExecuteInGlobalOptions {
+ reportExceptions?: boolean;
+}
+
+interface ExtendableEventInit extends EventInit {
+}
+
+interface ExtendableMessageEventInit extends ExtendableEventInit {
+ data?: any;
+ lastEventId?: string;
+ origin?: string;
+ ports?: MessagePort[];
+ source?: Client | ServiceWorker | MessagePort | null;
+}
+
+interface FailedCertSecurityInfo {
+ certChainStrings?: string[];
+ certValidityRangeNotAfter?: DOMTimeStamp;
+ certValidityRangeNotBefore?: DOMTimeStamp;
+ errorCodeString?: string;
+ errorMessage?: string;
+ hasHPKP?: boolean;
+ hasHSTS?: boolean;
+ issuerCommonName?: string;
+ overridableErrorCategory?: OverridableErrorCategory;
+ validNotAfter?: DOMTimeStamp;
+ validNotBefore?: DOMTimeStamp;
+}
+
+interface FdMapping {
+ dst: number;
+ src: number;
+}
+
+interface FetchEventInit extends EventInit {
+ clientId?: string;
+ request: Request;
+ resultingClientId?: string;
+}
+
+interface FileInfo {
+ creationTime?: number;
+ lastAccessed?: number;
+ lastModified?: number;
+ path?: string;
+ permissions?: number;
+ size?: number;
+ type?: FileType;
+}
+
+interface FilePropertyBag extends BlobPropertyBag {
+ lastModified?: number;
+}
+
+interface FileSourceOptions {
+ addResourceOptions?: FluentBundleAddResourceOptions;
+}
+
+interface FileSystemCreateWritableOptions {
+ keepExistingData?: boolean;
+}
+
+interface FileSystemFlags {
+ create?: boolean;
+ exclusive?: boolean;
+}
+
+interface FileSystemGetDirectoryOptions {
+ create?: boolean;
+}
+
+interface FileSystemGetFileOptions {
+ create?: boolean;
+}
+
+interface FileSystemReadWriteOptions {
+ at?: number;
+}
+
+interface FileSystemRemoveOptions {
+ recursive?: boolean;
+}
+
+interface FluentBundleAddResourceOptions {
+ allowOverrides?: boolean;
+}
+
+interface FluentBundleIteratorResult {
+ done: boolean;
+ value: FluentBundle | null;
+}
+
+interface FluentBundleOptions {
+ pseudoStrategy?: UTF8String;
+ useIsolating?: boolean;
+}
+
+interface FluentMessage {
+ attributes: Record<UTF8String, FluentPattern>;
+ value?: FluentPattern | null;
+}
+
+interface FluentTextElementItem {
+ attr?: UTF8String;
+ id?: UTF8String;
+ text?: UTF8String;
+}
+
+interface FocusEventInit extends UIEventInit {
+ relatedTarget?: EventTarget | null;
+}
+
+interface FocusOptions {
+ focusVisible?: boolean;
+ preventScroll?: boolean;
+}
+
+interface FontFaceDescriptors {
+ ascentOverride?: UTF8String;
+ descentOverride?: UTF8String;
+ display?: UTF8String;
+ featureSettings?: UTF8String;
+ lineGapOverride?: UTF8String;
+ sizeAdjust?: UTF8String;
+ stretch?: UTF8String;
+ style?: UTF8String;
+ unicodeRange?: UTF8String;
+ variant?: UTF8String;
+ variationSettings?: UTF8String;
+ weight?: UTF8String;
+}
+
+interface FontFaceSetIteratorResult {
+ done: boolean;
+ value: any;
+}
+
+interface FontFaceSetLoadEventInit extends EventInit {
+ fontfaces?: FontFace[];
+}
+
+interface FormAutofillConfidences {
+ ccName?: number;
+ ccNumber?: number;
+}
+
+interface FormDataEventInit extends EventInit {
+ formData: FormData;
+}
+
+interface FrameCrashedEventInit extends EventInit {
+ browsingContextId?: number;
+ childID?: number;
+ isTopFrame?: boolean;
+}
+
+interface GPUBindGroupDescriptor extends GPUObjectDescriptorBase {
+ entries: GPUBindGroupEntry[];
+ layout: GPUBindGroupLayout;
+}
+
+interface GPUBindGroupEntry {
+ binding: GPUIndex32;
+ resource: GPUBindingResource;
+}
+
+interface GPUBindGroupLayoutDescriptor extends GPUObjectDescriptorBase {
+ entries: GPUBindGroupLayoutEntry[];
+}
+
+interface GPUBindGroupLayoutEntry {
+ binding: GPUIndex32;
+ buffer?: GPUBufferBindingLayout;
+ sampler?: GPUSamplerBindingLayout;
+ storageTexture?: GPUStorageTextureBindingLayout;
+ texture?: GPUTextureBindingLayout;
+ visibility: GPUShaderStageFlags;
+}
+
+interface GPUBlendComponent {
+ dstFactor?: GPUBlendFactor;
+ operation?: GPUBlendOperation;
+ srcFactor?: GPUBlendFactor;
+}
+
+interface GPUBlendState {
+ alpha: GPUBlendComponent;
+ color: GPUBlendComponent;
+}
+
+interface GPUBufferBinding {
+ buffer: GPUBuffer;
+ offset?: GPUSize64;
+ size?: GPUSize64;
+}
+
+interface GPUBufferBindingLayout {
+ hasDynamicOffset?: boolean;
+ minBindingSize?: GPUSize64;
+ type?: GPUBufferBindingType;
+}
+
+interface GPUBufferDescriptor extends GPUObjectDescriptorBase {
+ mappedAtCreation?: boolean;
+ size: GPUSize64;
+ usage: GPUBufferUsageFlags;
+}
+
+interface GPUCanvasConfiguration {
+ alphaMode?: GPUCanvasAlphaMode;
+ device: GPUDevice;
+ format: GPUTextureFormat;
+ usage?: GPUTextureUsageFlags;
+ viewFormats?: GPUTextureFormat[];
+}
+
+interface GPUColorDict {
+ a: number;
+ b: number;
+ g: number;
+ r: number;
+}
+
+interface GPUColorTargetState {
+ blend?: GPUBlendState;
+ format: GPUTextureFormat;
+ writeMask?: GPUColorWriteFlags;
+}
+
+interface GPUCommandBufferDescriptor extends GPUObjectDescriptorBase {
+}
+
+interface GPUCommandEncoderDescriptor extends GPUObjectDescriptorBase {
+}
+
+interface GPUComputePassDescriptor extends GPUObjectDescriptorBase {
+}
+
+interface GPUComputePipelineDescriptor extends GPUPipelineDescriptorBase {
+ compute: GPUProgrammableStage;
+}
+
+interface GPUDepthStencilState {
+ depthBias?: GPUDepthBias;
+ depthBiasClamp?: number;
+ depthBiasSlopeScale?: number;
+ depthCompare?: GPUCompareFunction;
+ depthWriteEnabled?: boolean;
+ format: GPUTextureFormat;
+ stencilBack?: GPUStencilFaceState;
+ stencilFront?: GPUStencilFaceState;
+ stencilReadMask?: GPUStencilValue;
+ stencilWriteMask?: GPUStencilValue;
+}
+
+interface GPUDeviceDescriptor extends GPUObjectDescriptorBase {
+ defaultQueue?: GPUQueueDescriptor;
+ requiredFeatures?: GPUFeatureName[];
+ requiredLimits?: Record<string, GPUSize64>;
+}
+
+interface GPUExtent3DDict {
+ depthOrArrayLayers?: GPUIntegerCoordinate;
+ height?: GPUIntegerCoordinate;
+ width: GPUIntegerCoordinate;
+}
+
+interface GPUFragmentState extends GPUProgrammableStage {
+ targets: GPUColorTargetState[];
+}
+
+interface GPUImageCopyBuffer extends GPUImageDataLayout {
+ buffer: GPUBuffer;
+}
+
+interface GPUImageCopyExternalImage {
+ flipY?: boolean;
+ origin?: GPUOrigin2D;
+ source: ImageBitmap | HTMLCanvasElement | OffscreenCanvas;
+}
+
+interface GPUImageCopyTexture {
+ aspect?: GPUTextureAspect;
+ mipLevel?: GPUIntegerCoordinate;
+ origin?: GPUOrigin3D;
+ texture: GPUTexture;
+}
+
+interface GPUImageCopyTextureTagged extends GPUImageCopyTexture {
+ premultipliedAlpha?: boolean;
+}
+
+interface GPUImageDataLayout {
+ bytesPerRow?: GPUSize32;
+ offset?: GPUSize64;
+ rowsPerImage?: GPUSize32;
+}
+
+interface GPUMultisampleState {
+ alphaToCoverageEnabled?: boolean;
+ count?: GPUSize32;
+ mask?: GPUSampleMask;
+}
+
+interface GPUObjectDescriptorBase {
+ label?: string;
+}
+
+interface GPUOrigin2DDict {
+ x?: GPUIntegerCoordinate;
+ y?: GPUIntegerCoordinate;
+}
+
+interface GPUOrigin3DDict {
+ x?: GPUIntegerCoordinate;
+ y?: GPUIntegerCoordinate;
+ z?: GPUIntegerCoordinate;
+}
+
+interface GPUPipelineDescriptorBase extends GPUObjectDescriptorBase {
+ layout: GPUPipelineLayout | GPUAutoLayoutMode;
+}
+
+interface GPUPipelineLayoutDescriptor extends GPUObjectDescriptorBase {
+ bindGroupLayouts: GPUBindGroupLayout[];
+}
+
+interface GPUPrimitiveState {
+ cullMode?: GPUCullMode;
+ frontFace?: GPUFrontFace;
+ stripIndexFormat?: GPUIndexFormat;
+ topology?: GPUPrimitiveTopology;
+ unclippedDepth?: boolean;
+}
+
+interface GPUProgrammableStage {
+ entryPoint: string;
+ module: GPUShaderModule;
+}
+
+interface GPUQueueDescriptor extends GPUObjectDescriptorBase {
+}
+
+interface GPURenderBundleDescriptor extends GPUObjectDescriptorBase {
+}
+
+interface GPURenderBundleEncoderDescriptor extends GPURenderPassLayout {
+ depthReadOnly?: boolean;
+ stencilReadOnly?: boolean;
+}
+
+interface GPURenderPassColorAttachment {
+ clearValue?: GPUColor;
+ loadOp: GPULoadOp;
+ resolveTarget?: GPUTextureView;
+ storeOp: GPUStoreOp;
+ view: GPUTextureView;
+}
+
+interface GPURenderPassDepthStencilAttachment {
+ depthClearValue?: number;
+ depthLoadOp?: GPULoadOp;
+ depthReadOnly?: boolean;
+ depthStoreOp?: GPUStoreOp;
+ stencilClearValue?: GPUStencilValue;
+ stencilLoadOp?: GPULoadOp;
+ stencilReadOnly?: boolean;
+ stencilStoreOp?: GPUStoreOp;
+ view: GPUTextureView;
+}
+
+interface GPURenderPassDescriptor extends GPUObjectDescriptorBase {
+ colorAttachments: GPURenderPassColorAttachment[];
+ depthStencilAttachment?: GPURenderPassDepthStencilAttachment;
+ occlusionQuerySet?: GPUQuerySet;
+}
+
+interface GPURenderPassLayout extends GPUObjectDescriptorBase {
+ colorFormats: GPUTextureFormat[];
+ depthStencilFormat?: GPUTextureFormat;
+ sampleCount?: GPUSize32;
+}
+
+interface GPURenderPipelineDescriptor extends GPUPipelineDescriptorBase {
+ depthStencil?: GPUDepthStencilState;
+ fragment?: GPUFragmentState;
+ multisample?: GPUMultisampleState;
+ primitive?: GPUPrimitiveState;
+ vertex: GPUVertexState;
+}
+
+interface GPURequestAdapterOptions {
+ forceFallbackAdapter?: boolean;
+ powerPreference?: GPUPowerPreference;
+}
+
+interface GPUSamplerBindingLayout {
+ type?: GPUSamplerBindingType;
+}
+
+interface GPUSamplerDescriptor extends GPUObjectDescriptorBase {
+ addressModeU?: GPUAddressMode;
+ addressModeV?: GPUAddressMode;
+ addressModeW?: GPUAddressMode;
+ compare?: GPUCompareFunction;
+ lodMaxClamp?: number;
+ lodMinClamp?: number;
+ magFilter?: GPUFilterMode;
+ maxAnisotropy?: number;
+ minFilter?: GPUFilterMode;
+ mipmapFilter?: GPUMipmapFilterMode;
+}
+
+interface GPUShaderModuleDescriptor extends GPUObjectDescriptorBase {
+ code: UTF8String;
+ sourceMap?: any;
+}
+
+interface GPUStencilFaceState {
+ compare?: GPUCompareFunction;
+ depthFailOp?: GPUStencilOperation;
+ failOp?: GPUStencilOperation;
+ passOp?: GPUStencilOperation;
+}
+
+interface GPUStorageTextureBindingLayout {
+ access?: GPUStorageTextureAccess;
+ format: GPUTextureFormat;
+ viewDimension?: GPUTextureViewDimension;
+}
+
+interface GPUTextureBindingLayout {
+ multisampled?: boolean;
+ sampleType?: GPUTextureSampleType;
+ viewDimension?: GPUTextureViewDimension;
+}
+
+interface GPUTextureDescriptor extends GPUObjectDescriptorBase {
+ dimension?: GPUTextureDimension;
+ format: GPUTextureFormat;
+ mipLevelCount?: GPUIntegerCoordinate;
+ sampleCount?: GPUSize32;
+ size: GPUExtent3D;
+ usage: GPUTextureUsageFlags;
+ viewFormats?: GPUTextureFormat[];
+}
+
+interface GPUTextureViewDescriptor extends GPUObjectDescriptorBase {
+ arrayLayerCount?: GPUIntegerCoordinate;
+ aspect?: GPUTextureAspect;
+ baseArrayLayer?: GPUIntegerCoordinate;
+ baseMipLevel?: GPUIntegerCoordinate;
+ dimension?: GPUTextureViewDimension;
+ format?: GPUTextureFormat;
+ mipLevelCount?: GPUIntegerCoordinate;
+}
+
+interface GPUUncapturedErrorEventInit extends EventInit {
+ error: GPUError;
+}
+
+interface GPUVertexAttribute {
+ format: GPUVertexFormat;
+ offset: GPUSize64;
+ shaderLocation: GPUIndex32;
+}
+
+interface GPUVertexBufferLayout {
+ arrayStride: GPUSize64;
+ attributes: GPUVertexAttribute[];
+ stepMode?: GPUVertexStepMode;
+}
+
+interface GPUVertexState extends GPUProgrammableStage {
+ buffers?: (GPUVertexBufferLayout | null)[];
+}
+
+interface GainOptions extends AudioNodeOptions {
+ gain?: number;
+}
+
+interface GamepadAxisMoveEventInit extends GamepadEventInit {
+ axis?: number;
+ value?: number;
+}
+
+interface GamepadButtonEventInit extends GamepadEventInit {
+ button?: number;
+}
+
+interface GamepadEventInit extends EventInit {
+ gamepad?: Gamepad | null;
+}
+
+interface GamepadLightColor {
+ blue: number;
+ green: number;
+ red: number;
+}
+
+interface GetAnimationsOptions {
+ subtree?: boolean;
+}
+
+interface GetChildrenOptions {
+ ignoreAbsent?: boolean;
+}
+
+interface GetNotificationOptions {
+ tag?: string;
+}
+
+interface GetRootNodeOptions {
+ composed?: boolean;
+}
+
+interface GleanDistributionData {
+ sum: number;
+ values: Record<UTF8String, number>;
+}
+
+interface GleanEventRecord {
+ category: UTF8String;
+ extra?: Record<UTF8String, UTF8String>;
+ name: UTF8String;
+ timestamp: number;
+}
+
+interface GleanRateData {
+ denominator: number;
+ numerator: number;
+}
+
+interface HTMLMediaElementDebugInfo {
+ EMEInfo?: EMEDebugInfo;
+ compositorDroppedFrames?: number;
+ decoder?: MediaDecoderDebugInfo;
+}
+
+interface HashChangeEventInit extends EventInit {
+ newURL?: string;
+ oldURL?: string;
+}
+
+interface HeapSnapshotBoundaries {
+ debugger?: any;
+ globals?: any[];
+ runtime?: boolean;
+}
+
+interface IDBIndexParameters {
+ locale?: string | null;
+ multiEntry?: boolean;
+ unique?: boolean;
+}
+
+interface IDBObjectStoreParameters {
+ autoIncrement?: boolean;
+ keyPath?: string | string[] | null;
+}
+
+interface IDBOpenDBOptions {
+ version?: number;
+}
+
+interface IDBVersionChangeEventInit extends EventInit {
+ newVersion?: number | null;
+ oldVersion?: number;
+}
+
+interface IIRFilterOptions extends AudioNodeOptions {
+ feedback: number[];
+ feedforward: number[];
+}
+
+interface IOActivityDataDictionary {
+ location?: string;
+ rx?: number;
+ tx?: number;
+}
+
+interface IdentityCredentialLogoutRPsRequest {
+ accountId: UTF8String;
+ url: UTF8String;
+}
+
+interface IdentityCredentialRequestOptions {
+ providers?: IdentityProviderConfig[];
+}
+
+interface IdentityProviderConfig {
+ clientId: string;
+ configURL: UTF8String;
+ nonce?: string;
+}
+
+interface IdleRequestOptions {
+ timeout?: number;
+}
+
+interface ImageBitmapOptions {
+ colorSpaceConversion?: ColorSpaceConversion;
+ imageOrientation?: ImageOrientation;
+ premultiplyAlpha?: PremultiplyAlpha;
+ resizeHeight?: number;
+ resizeWidth?: number;
+}
+
+interface ImageCaptureErrorEventInit extends EventInit {
+ imageCaptureError?: ImageCaptureError | null;
+}
+
+interface ImageEncodeOptions {
+ quality?: number;
+ type?: string;
+}
+
+interface ImageText {
+ confidence: number;
+ quad: DOMQuad;
+ string: string;
+}
+
+interface ImportESModuleOptionsDictionary {
+ loadInDevToolsLoader?: boolean;
+}
+
+interface InputEventInit extends UIEventInit {
+ data?: string | null;
+ dataTransfer?: DataTransfer | null;
+ inputType?: string;
+ isComposing?: boolean;
+ targetRanges?: StaticRange[];
+}
+
+interface InspectorCSSPropertyDefinition {
+ fromJS: boolean;
+ inherits: boolean;
+ initialValue: UTF8String | null;
+ name: UTF8String;
+ syntax: UTF8String;
+}
+
+interface InspectorFontFeature {
+ languageSystem: string;
+ script: string;
+ tag: string;
+}
+
+interface InspectorRGBATuple {
+ a?: number;
+ b?: number;
+ g?: number;
+ r?: number;
+}
+
+interface InspectorVariationAxis {
+ defaultValue: number;
+ maxValue: number;
+ minValue: number;
+ name: string;
+ tag: string;
+}
+
+interface InspectorVariationInstance {
+ name: string;
+ values: InspectorVariationValue[];
+}
+
+interface InspectorVariationValue {
+ axis: string;
+ value: number;
+}
+
+interface InstallTriggerData {
+ Hash?: string | null;
+ IconURL?: string | null;
+ URL?: string;
+}
+
+interface InteractionData {
+ interactionCount?: number;
+ interactionTimeInMilliseconds?: number;
+ scrollingDistanceInPixels?: number;
+}
+
+interface IntersectionObserverInit {
+ root?: Element | Document | null;
+ rootMargin?: UTF8String;
+ threshold?: number | number[];
+}
+
+interface InvokeEventInit extends EventInit {
+ action?: string;
+ invoker?: Element | null;
+}
+
+interface KeyboardEventInit extends EventModifierInit {
+ charCode?: number;
+ code?: string;
+ isComposing?: boolean;
+ key?: string;
+ keyCode?: number;
+ location?: number;
+ repeat?: boolean;
+ which?: number;
+}
+
+interface KeyframeAnimationOptions extends KeyframeEffectOptions {
+ id?: string;
+}
+
+interface KeyframeEffectOptions extends EffectTiming {
+ composite?: CompositeOperation;
+ iterationComposite?: IterationCompositeOperation;
+ pseudoElement?: string | null;
+}
+
+interface L10nFileSourceMockFile {
+ path: UTF8String;
+ source: UTF8String;
+}
+
+interface L10nIdArgs {
+ args?: L10nArgs | null;
+ id?: UTF8String | null;
+}
+
+interface L10nMessage {
+ attributes?: AttributeNameValue[] | null;
+ value?: UTF8String | null;
+}
+
+interface L10nOverlaysError {
+ code?: number;
+ l10nName?: string;
+ sourceElementName?: string;
+ translatedElementName?: string;
+}
+
+interface L10nRegistryOptions {
+ bundleOptions?: FluentBundleOptions;
+}
+
+interface LaunchOptions {
+ disclaim?: boolean;
+ environment: UnixString[];
+ fdMap?: FdMapping[];
+ workdir?: UnixString;
+}
+
+interface LibcConstants {
+ AT_EACCESS?: number;
+ EACCES?: number;
+ EAGAIN?: number;
+ EINTR?: number;
+ EINVAL?: number;
+ ENOSYS?: number;
+ FD_CLOEXEC?: number;
+ F_SETFD?: number;
+ F_SETFL?: number;
+ O_CREAT?: number;
+ O_NONBLOCK?: number;
+ O_WRONLY?: number;
+ POLLERR?: number;
+ POLLHUP?: number;
+ POLLIN?: number;
+ POLLNVAL?: number;
+ POLLOUT?: number;
+ PR_CAPBSET_READ?: number;
+ WNOHANG?: number;
+}
+
+interface LoadURIOptions {
+ baseURI?: URI | null;
+ cancelContentJSEpoch?: number;
+ csp?: ContentSecurityPolicy | null;
+ hasValidUserGestureActivation?: boolean;
+ headers?: InputStream | null;
+ loadFlags?: number;
+ postData?: InputStream | null;
+ referrerInfo?: ReferrerInfo | null;
+ remoteTypeOverride?: UTF8String | null;
+ triggeringPrincipal?: Principal | null;
+ triggeringRemoteType?: UTF8String | null;
+ triggeringSandboxFlags?: number;
+ triggeringStorageAccess?: boolean;
+ triggeringWindowId?: number;
+ wasSchemelessInput?: boolean;
+}
+
+interface LockInfo {
+ clientId?: string;
+ mode?: LockMode;
+ name?: string;
+}
+
+interface LockManagerSnapshot {
+ held?: LockInfo[];
+ pending?: LockInfo[];
+}
+
+interface LockOptions {
+ ifAvailable?: boolean;
+ mode?: LockMode;
+ signal?: AbortSignal;
+ steal?: boolean;
+}
+
+interface MIDIConnectionEventInit extends EventInit {
+ port?: MIDIPort | null;
+}
+
+interface MIDIMessageEventInit extends EventInit {
+ data?: Uint8Array;
+}
+
+interface MIDIOptions {
+ software?: boolean;
+ sysex?: boolean;
+}
+
+interface MakeDirectoryOptions {
+ createAncestors?: boolean;
+ ignoreExisting?: boolean;
+ permissions?: number;
+}
+
+interface MatchPatternOptions {
+ ignorePath?: boolean;
+ restrictSchemes?: boolean;
+}
+
+interface MediaCacheStreamDebugInfo {
+ cacheSuspended?: boolean;
+ channelEnded?: boolean;
+ channelOffset?: number;
+ loadID?: number;
+ streamLength?: number;
+}
+
+interface MediaConfiguration {
+ audio?: AudioConfiguration;
+ video?: VideoConfiguration;
+}
+
+interface MediaDecoderDebugInfo {
+ PlayState?: string;
+ channels?: number;
+ containerType?: string;
+ hasAudio?: boolean;
+ hasVideo?: boolean;
+ instance?: string;
+ rate?: number;
+ reader?: MediaFormatReaderDebugInfo;
+ resource?: MediaResourceDebugInfo;
+ stateMachine?: MediaDecoderStateMachineDebugInfo;
+}
+
+interface MediaDecoderStateMachineDebugInfo {
+ audioCompleted?: boolean;
+ audioRequestStatus?: string;
+ clock?: number;
+ decodedAudioEndTime?: number;
+ decodedVideoEndTime?: number;
+ duration?: number;
+ isPlaying?: boolean;
+ mediaSink?: MediaSinkDebugInfo;
+ mediaTime?: number;
+ playState?: number;
+ sentFirstFrameLoadedEvent?: boolean;
+ state?: string;
+ stateObj?: MediaDecoderStateMachineDecodingStateDebugInfo;
+ videoCompleted?: boolean;
+ videoRequestStatus?: string;
+}
+
+interface MediaDecoderStateMachineDecodingStateDebugInfo {
+ isPrerolling?: boolean;
+}
+
+interface MediaDecodingConfiguration extends MediaConfiguration {
+ type: MediaDecodingType;
+}
+
+interface MediaElementAudioSourceOptions {
+ mediaElement: HTMLMediaElement;
+}
+
+interface MediaEncodingConfiguration extends MediaConfiguration {
+ type: MediaEncodingType;
+}
+
+interface MediaFormatReaderDebugInfo {
+ audioChannels?: number;
+ audioDecoderName?: string;
+ audioFramesDecoded?: number;
+ audioRate?: number;
+ audioState?: MediaStateDebugInfo;
+ audioType?: string;
+ frameStats?: MediaFrameStats;
+ videoDecoderName?: string;
+ videoHardwareAccelerated?: boolean;
+ videoHeight?: number;
+ videoNumSamplesOutputTotal?: number;
+ videoNumSamplesSkippedTotal?: number;
+ videoRate?: number;
+ videoState?: MediaStateDebugInfo;
+ videoType?: string;
+ videoWidth?: number;
+}
+
+interface MediaFrameStats {
+ droppedCompositorFrames?: number;
+ droppedDecodedFrames?: number;
+ droppedSinkFrames?: number;
+}
+
+interface MediaImage {
+ sizes?: string;
+ src: string;
+ type?: string;
+}
+
+interface MediaKeyMessageEventInit extends EventInit {
+ message: ArrayBuffer;
+ messageType: MediaKeyMessageType;
+}
+
+interface MediaKeyNeededEventInit extends EventInit {
+ initData?: ArrayBuffer | null;
+ initDataType?: string;
+}
+
+interface MediaKeySystemConfiguration {
+ audioCapabilities?: MediaKeySystemMediaCapability[];
+ distinctiveIdentifier?: MediaKeysRequirement;
+ initDataTypes?: string[];
+ label?: string;
+ persistentState?: MediaKeysRequirement;
+ sessionTypes?: string[];
+ videoCapabilities?: MediaKeySystemMediaCapability[];
+}
+
+interface MediaKeySystemMediaCapability {
+ contentType?: string;
+ encryptionScheme?: string | null;
+ robustness?: string;
+}
+
+interface MediaKeysPolicy {
+ minHdcpVersion?: string;
+}
+
+interface MediaMetadataInit {
+ album?: string;
+ artist?: string;
+ artwork?: MediaImage[];
+ title?: string;
+}
+
+interface MediaPositionState {
+ duration?: number;
+ playbackRate?: number;
+ position?: number;
+}
+
+interface MediaQueryListEventInit extends EventInit {
+ matches?: boolean;
+ media?: UTF8String;
+}
+
+interface MediaRecorderErrorEventInit extends EventInit {
+ error: DOMException;
+}
+
+interface MediaRecorderOptions {
+ audioBitsPerSecond?: number;
+ bitsPerSecond?: number;
+ mimeType?: string;
+ videoBitsPerSecond?: number;
+}
+
+interface MediaResourceDebugInfo {
+ cacheStream?: MediaCacheStreamDebugInfo;
+}
+
+interface MediaSessionActionDetails {
+ action: MediaSessionAction;
+ fastSeek?: boolean;
+ seekOffset?: number;
+ seekTime?: number;
+}
+
+interface MediaSinkDebugInfo {
+ audioSinkWrapper?: AudioSinkWrapperDebugInfo;
+ decodedStream?: DecodedStreamDebugInfo;
+ videoSink?: VideoSinkDebugInfo;
+}
+
+interface MediaSourceDecoderDebugInfo {
+ demuxer?: MediaSourceDemuxerDebugInfo;
+ reader?: MediaFormatReaderDebugInfo;
+}
+
+interface MediaSourceDemuxerDebugInfo {
+ audioTrack?: TrackBuffersManagerDebugInfo;
+ videoTrack?: TrackBuffersManagerDebugInfo;
+}
+
+interface MediaStateDebugInfo {
+ demuxEOS?: number;
+ demuxQueueSize?: number;
+ drainState?: number;
+ hasDecoder?: boolean;
+ hasDemuxRequest?: boolean;
+ hasPromise?: boolean;
+ lastStreamSourceID?: number;
+ needInput?: boolean;
+ numSamplesInput?: number;
+ numSamplesOutput?: number;
+ pending?: number;
+ queueSize?: number;
+ timeTreshold?: number;
+ timeTresholdHasSeeked?: boolean;
+ waitingForData?: boolean;
+ waitingForKey?: boolean;
+ waitingPromise?: boolean;
+}
+
+interface MediaStreamAudioSourceOptions {
+ mediaStream: MediaStream;
+}
+
+interface MediaStreamConstraints {
+ audio?: boolean | MediaTrackConstraints;
+ fake?: boolean;
+ peerIdentity?: string | null;
+ picture?: boolean;
+ video?: boolean | MediaTrackConstraints;
+}
+
+interface MediaStreamEventInit extends EventInit {
+ stream?: MediaStream | null;
+}
+
+interface MediaStreamTrackAudioSourceOptions {
+ mediaStreamTrack: MediaStreamTrack;
+}
+
+interface MediaStreamTrackEventInit extends EventInit {
+ track: MediaStreamTrack;
+}
+
+interface MediaTrackConstraintSet {
+ autoGainControl?: ConstrainBoolean;
+ browserWindow?: number;
+ channelCount?: ConstrainLong;
+ deviceId?: ConstrainDOMString;
+ echoCancellation?: ConstrainBoolean;
+ facingMode?: ConstrainDOMString;
+ frameRate?: ConstrainDouble;
+ groupId?: ConstrainDOMString;
+ height?: ConstrainLong;
+ mediaSource?: string;
+ noiseSuppression?: ConstrainBoolean;
+ scrollWithPage?: boolean;
+ viewportHeight?: ConstrainLong;
+ viewportOffsetX?: ConstrainLong;
+ viewportOffsetY?: ConstrainLong;
+ viewportWidth?: ConstrainLong;
+ width?: ConstrainLong;
+}
+
+interface MediaTrackConstraints extends MediaTrackConstraintSet {
+ advanced?: MediaTrackConstraintSet[];
+}
+
+interface MediaTrackSettings {
+ autoGainControl?: boolean;
+ browserWindow?: number;
+ channelCount?: number;
+ deviceId?: string;
+ echoCancellation?: boolean;
+ facingMode?: string;
+ frameRate?: number;
+ groupId?: string;
+ height?: number;
+ mediaSource?: string;
+ noiseSuppression?: boolean;
+ scrollWithPage?: boolean;
+ viewportHeight?: number;
+ viewportOffsetX?: number;
+ viewportOffsetY?: number;
+ viewportWidth?: number;
+ width?: number;
+}
+
+interface MediaTrackSupportedConstraints {
+ aspectRatio?: boolean;
+ autoGainControl?: boolean;
+ browserWindow?: boolean;
+ channelCount?: boolean;
+ deviceId?: boolean;
+ echoCancellation?: boolean;
+ facingMode?: boolean;
+ frameRate?: boolean;
+ groupId?: boolean;
+ height?: boolean;
+ latency?: boolean;
+ mediaSource?: boolean;
+ noiseSuppression?: boolean;
+ sampleRate?: boolean;
+ sampleSize?: boolean;
+ scrollWithPage?: boolean;
+ viewportHeight?: boolean;
+ viewportOffsetX?: boolean;
+ viewportOffsetY?: boolean;
+ viewportWidth?: boolean;
+ volume?: boolean;
+ width?: boolean;
+}
+
+interface MerchantValidationEventInit extends EventInit {
+ methodName?: string;
+ validationURL?: string;
+}
+
+interface MessageEventInit extends EventInit {
+ data?: any;
+ lastEventId?: string;
+ origin?: string;
+ ports?: MessagePort[];
+ source?: MessageEventSource | null;
+}
+
+interface MouseEventInit extends EventModifierInit {
+ button?: number;
+ buttons?: number;
+ clientX?: number;
+ clientY?: number;
+ movementX?: number;
+ movementY?: number;
+ relatedTarget?: EventTarget | null;
+ screenX?: number;
+ screenY?: number;
+}
+
+interface MoveOptions {
+ noOverwrite?: boolean;
+}
+
+interface MozApplicationEventInit extends EventInit {
+ application?: DOMApplication | null;
+}
+
+interface MozDocumentMatcherInit {
+ allFrames?: boolean;
+ checkPermissions?: boolean;
+ excludeGlobs?: MatchGlobOrString[] | null;
+ excludeMatches?: MatchPatternSetOrStringSequence | null;
+ frameID?: number | null;
+ hasActiveTabPermission?: boolean;
+ includeGlobs?: MatchGlobOrString[] | null;
+ matchAboutBlank?: boolean;
+ matches: MatchPatternSetOrStringSequence;
+ originAttributesPatterns?: OriginAttributesPatternDictionary[] | null;
+}
+
+interface MozFrameAncestorInfo {
+ frameId: number;
+ url: string;
+}
+
+interface MozHTTPHeader {
+ name: string;
+ value: string;
+}
+
+interface MozPluginParameter {
+ name?: string;
+ value?: string;
+}
+
+interface MozProxyInfo {
+ connectionIsolationKey?: string | null;
+ failoverTimeout?: number;
+ host: string;
+ port: number;
+ proxyAuthorizationHeader?: string | null;
+ proxyDNS: boolean;
+ type: string;
+ username?: string | null;
+}
+
+interface MozRequestFilter {
+ incognito?: boolean | null;
+ types?: MozContentPolicyType[] | null;
+ urls?: MatchPatternSet | null;
+}
+
+interface MozRequestMatchOptions {
+ isProxy?: boolean;
+}
+
+interface MozUrlClassification {
+ firstParty: MozUrlClassificationFlags[];
+ thirdParty: MozUrlClassificationFlags[];
+}
+
+interface MozXMLHttpRequestParameters {
+ mozAnon?: boolean;
+ mozSystem?: boolean;
+}
+
+interface MultiCacheQueryOptions extends CacheQueryOptions {
+ cacheName?: string;
+}
+
+interface MutationObserverInit {
+ animations?: boolean;
+ attributeFilter?: string[];
+ attributeOldValue?: boolean;
+ attributes?: boolean;
+ characterData?: boolean;
+ characterDataOldValue?: boolean;
+ childList?: boolean;
+ chromeOnlyNodes?: boolean;
+ subtree?: boolean;
+}
+
+interface MutationObservingInfo extends MutationObserverInit {
+ observedNode?: Node | null;
+}
+
+interface NavigationPreloadState {
+ enabled?: boolean;
+ headerValue?: string;
+}
+
+interface NetErrorInfo {
+ errorCodeString?: string;
+}
+
+interface NotificationBehavior {
+ noclear?: boolean;
+ noscreen?: boolean;
+ showOnlyOnce?: boolean;
+ soundFile?: string;
+ vibrationPattern?: number[];
+}
+
+interface NotificationEventInit extends ExtendableEventInit {
+ notification: Notification;
+}
+
+interface NotificationOptions {
+ body?: string;
+ data?: any;
+ dir?: NotificationDirection;
+ icon?: string;
+ lang?: string;
+ mozbehavior?: NotificationBehavior;
+ requireInteraction?: boolean;
+ silent?: boolean;
+ tag?: string;
+ vibrate?: VibratePattern;
+}
+
+interface ObservableArrayCallbacks {
+ deleteBooleanCallback?: SetDeleteBooleanCallback;
+ deleteInterfaceCallback?: SetDeleteInterfaceCallback;
+ deleteObjectCallback?: SetDeleteObjectCallback;
+ setBooleanCallback?: SetDeleteBooleanCallback;
+ setInterfaceCallback?: SetDeleteInterfaceCallback;
+ setObjectCallback?: SetDeleteObjectCallback;
+}
+
+interface OfflineAudioCompletionEventInit extends EventInit {
+ renderedBuffer: AudioBuffer;
+}
+
+interface OfflineAudioContextOptions {
+ length: number;
+ numberOfChannels?: number;
+ sampleRate: number;
+}
+
+interface OpenPopupOptions {
+ attributesOverride?: boolean;
+ isContextMenu?: boolean;
+ position?: string;
+ triggerEvent?: Event | null;
+ x?: number;
+ y?: number;
+}
+
+interface OptionalEffectTiming {
+ delay?: number;
+ direction?: PlaybackDirection;
+ duration?: number | string;
+ easing?: UTF8String;
+ endDelay?: number;
+ fill?: FillMode;
+ iterationStart?: number;
+ iterations?: number;
+}
+
+interface OriginAttributesDictionary {
+ firstPartyDomain?: string;
+ geckoViewSessionContextId?: string;
+ inIsolatedMozBrowser?: boolean;
+ partitionKey?: string;
+ privateBrowsingId?: number;
+ userContextId?: number;
+}
+
+interface OriginAttributesPatternDictionary {
+ firstPartyDomain?: string;
+ geckoViewSessionContextId?: string;
+ inIsolatedMozBrowser?: boolean;
+ partitionKey?: string;
+ partitionKeyPattern?: PartitionKeyPatternDictionary;
+ privateBrowsingId?: number;
+ userContextId?: number;
+}
+
+interface OscillatorOptions extends AudioNodeOptions {
+ detune?: number;
+ frequency?: number;
+ periodicWave?: PeriodicWave;
+ type?: OscillatorType;
+}
+
+interface PCErrorData {
+ message: string;
+ name: PCError;
+}
+
+interface PageTransitionEventInit extends EventInit {
+ inFrameSwap?: boolean;
+ persisted?: boolean;
+}
+
+interface PannerOptions extends AudioNodeOptions {
+ coneInnerAngle?: number;
+ coneOuterAngle?: number;
+ coneOuterGain?: number;
+ distanceModel?: DistanceModelType;
+ maxDistance?: number;
+ orientationX?: number;
+ orientationY?: number;
+ orientationZ?: number;
+ panningModel?: PanningModelType;
+ positionX?: number;
+ positionY?: number;
+ positionZ?: number;
+ refDistance?: number;
+ rolloffFactor?: number;
+}
+
+interface ParentProcInfoDictionary {
+ children?: ChildProcInfoDictionary[];
+ cpuCycleCount?: number;
+ cpuTime?: number;
+ memory?: number;
+ pid?: number;
+ threads?: ThreadInfoDictionary[];
+ type?: WebIDLProcType;
+}
+
+interface PartitionKeyPatternDictionary {
+ baseDomain?: string;
+ port?: number;
+ scheme?: string;
+}
+
+interface PayerErrors {
+ email?: string;
+ name?: string;
+ phone?: string;
+}
+
+interface PaymentCurrencyAmount {
+ currency: string;
+ value: string;
+}
+
+interface PaymentDetailsBase {
+ displayItems?: PaymentItem[];
+ modifiers?: PaymentDetailsModifier[];
+ shippingOptions?: PaymentShippingOption[];
+}
+
+interface PaymentDetailsInit extends PaymentDetailsBase {
+ id?: string;
+ total: PaymentItem;
+}
+
+interface PaymentDetailsModifier {
+ additionalDisplayItems?: PaymentItem[];
+ data?: any;
+ supportedMethods: string;
+ total?: PaymentItem;
+}
+
+interface PaymentDetailsUpdate extends PaymentDetailsBase {
+ error?: string;
+ payerErrors?: PayerErrors;
+ paymentMethodErrors?: any;
+ shippingAddressErrors?: AddressErrors;
+ total?: PaymentItem;
+}
+
+interface PaymentItem {
+ amount: PaymentCurrencyAmount;
+ label: string;
+ pending?: boolean;
+}
+
+interface PaymentMethodChangeEventInit extends PaymentRequestUpdateEventInit {
+ methodDetails?: any;
+ methodName?: string;
+}
+
+interface PaymentMethodData {
+ data?: any;
+ supportedMethods: string;
+}
+
+interface PaymentOptions {
+ requestBillingAddress?: boolean;
+ requestPayerEmail?: boolean;
+ requestPayerName?: boolean;
+ requestPayerPhone?: boolean;
+ requestShipping?: boolean;
+ shippingType?: PaymentShippingType;
+}
+
+interface PaymentRequestUpdateEventInit extends EventInit {
+}
+
+interface PaymentShippingOption {
+ amount: PaymentCurrencyAmount;
+ id: string;
+ label: string;
+ selected?: boolean;
+}
+
+interface PaymentValidationErrors {
+ error?: string;
+ payer?: PayerErrors;
+ paymentMethod?: any;
+ shippingAddress?: AddressErrors;
+}
+
+interface PerformanceEntryEventInit extends EventInit {
+ duration?: DOMHighResTimeStamp;
+ entryType?: string;
+ epoch?: number;
+ name?: string;
+ origin?: string;
+ startTime?: DOMHighResTimeStamp;
+}
+
+interface PerformanceEntryFilterOptions {
+ entryType?: string;
+ initiatorType?: string;
+ name?: string;
+}
+
+interface PerformanceMarkOptions {
+ detail?: any;
+ startTime?: DOMHighResTimeStamp;
+}
+
+interface PerformanceMeasureOptions {
+ detail?: any;
+ duration?: DOMHighResTimeStamp;
+ end?: string | DOMHighResTimeStamp;
+ start?: string | DOMHighResTimeStamp;
+}
+
+interface PerformanceObserverInit {
+ buffered?: boolean;
+ durationThreshold?: DOMHighResTimeStamp;
+ entryTypes?: string[];
+ type?: string;
+}
+
+interface PeriodicWaveConstraints {
+ disableNormalization?: boolean;
+}
+
+interface PeriodicWaveOptions extends PeriodicWaveConstraints {
+ imag?: number[] | Float32Array;
+ real?: number[] | Float32Array;
+}
+
+interface PlacesBookmarkAdditionInit {
+ dateAdded: number;
+ frecency: number;
+ guid: string;
+ hidden: boolean;
+ id: number;
+ index: number;
+ isTagging: boolean;
+ itemType: number;
+ lastVisitDate: number | null;
+ parentGuid: string;
+ parentId: number;
+ source: number;
+ tags: string | null;
+ targetFolderGuid: string | null;
+ targetFolderItemId: number;
+ targetFolderTitle: string | null;
+ title: string;
+ url: string;
+ visitCount: number;
+}
+
+interface PlacesBookmarkGuidInit {
+ guid: string;
+ id: number;
+ isTagging: boolean;
+ itemType: number;
+ lastModified: number;
+ parentGuid: string;
+ source: number;
+ url?: string | null;
+}
+
+interface PlacesBookmarkKeywordInit {
+ guid: string;
+ id: number;
+ isTagging: boolean;
+ itemType: number;
+ keyword: string;
+ lastModified: number;
+ parentGuid: string;
+ source: number;
+ url?: string | null;
+}
+
+interface PlacesBookmarkMovedInit {
+ dateAdded: number;
+ frecency: number;
+ guid: string;
+ hidden: boolean;
+ id: number;
+ index: number;
+ isTagging: boolean;
+ itemType: number;
+ lastVisitDate: number | null;
+ oldIndex: number;
+ oldParentGuid: string;
+ parentGuid: string;
+ source: number;
+ tags: string | null;
+ title: string;
+ url?: string | null;
+ visitCount: number;
+}
+
+interface PlacesBookmarkRemovedInit {
+ guid: string;
+ id: number;
+ index: number;
+ isDescendantRemoval?: boolean;
+ isTagging: boolean;
+ itemType: number;
+ parentGuid: string;
+ parentId: number;
+ source: number;
+ title: string;
+ url: string;
+}
+
+interface PlacesBookmarkTagsInit {
+ guid: string;
+ id: number;
+ isTagging: boolean;
+ itemType: number;
+ lastModified: number;
+ parentGuid: string;
+ source: number;
+ tags: string[];
+ url?: string | null;
+}
+
+interface PlacesBookmarkTimeInit {
+ dateAdded: number;
+ guid: string;
+ id: number;
+ isTagging: boolean;
+ itemType: number;
+ lastModified: number;
+ parentGuid: string;
+ source: number;
+ url?: string | null;
+}
+
+interface PlacesBookmarkTitleInit {
+ guid: string;
+ id: number;
+ isTagging: boolean;
+ itemType: number;
+ lastModified: number;
+ parentGuid: string;
+ source: number;
+ title: string;
+ url?: string | null;
+}
+
+interface PlacesBookmarkUrlInit {
+ guid: string;
+ id: number;
+ isTagging: boolean;
+ itemType: number;
+ lastModified: number;
+ parentGuid: string;
+ source: number;
+ url: string;
+}
+
+interface PlacesFaviconInit {
+ faviconUrl: string;
+ pageGuid: string;
+ url: string;
+}
+
+interface PlacesVisitRemovedInit {
+ isPartialVisistsRemoval?: boolean;
+ isRemovedFromStore?: boolean;
+ pageGuid: string;
+ reason: number;
+ transitionType?: number;
+ url: string;
+}
+
+interface PlacesVisitTitleInit {
+ pageGuid: string;
+ title: string;
+ url: string;
+}
+
+interface PlaneLayout {
+ offset: number;
+ stride: number;
+}
+
+interface PluginCrashedEventInit extends EventInit {
+ gmpPlugin?: boolean;
+ pluginDumpID?: string;
+ pluginFilename?: string | null;
+ pluginID?: number;
+ pluginName?: string;
+ submittedCrashReport?: boolean;
+}
+
+interface PointerEventInit extends MouseEventInit {
+ coalescedEvents?: PointerEvent[];
+ height?: number;
+ isPrimary?: boolean;
+ pointerId?: number;
+ pointerType?: string;
+ predictedEvents?: PointerEvent[];
+ pressure?: number;
+ tangentialPressure?: number;
+ tiltX?: number;
+ tiltY?: number;
+ twist?: number;
+ width?: number;
+}
+
+interface PopStateEventInit extends EventInit {
+ state?: any;
+}
+
+interface PopupBlockedEventInit extends EventInit {
+ popupWindowFeatures?: string;
+ popupWindowName?: string;
+ popupWindowURI?: URI | null;
+ requestingWindow?: Window | null;
+}
+
+interface PopupPositionedEventInit extends EventInit {
+ alignmentOffset?: number;
+ alignmentPosition?: string;
+ isAnchored?: boolean;
+ popupAlignment?: string;
+}
+
+interface PositionOptions {
+ enableHighAccuracy?: boolean;
+ maximumAge?: number;
+ timeout?: number;
+}
+
+interface PositionStateEventInit extends EventInit {
+ duration: number;
+ playbackRate: number;
+ position: number;
+}
+
+interface ProcessActorChildOptions extends ProcessActorSidedOptions {
+ observers?: string[];
+}
+
+interface ProcessActorOptions {
+ child?: ProcessActorChildOptions;
+ includeParent?: boolean;
+ loadInDevToolsLoader?: boolean;
+ parent?: ProcessActorSidedOptions;
+ remoteTypes?: UTF8String[];
+}
+
+interface ProcessActorSidedOptions {
+ esModuleURI?: string;
+ moduleURI?: string;
+}
+
+interface ProfilerMarkerOptions {
+ captureStack?: boolean;
+ category?: string;
+ innerWindowId?: number;
+ startTime?: DOMHighResTimeStamp;
+}
+
+interface ProgressEventInit extends EventInit {
+ lengthComputable?: boolean;
+ loaded?: number;
+ total?: number;
+}
+
+interface PromiseDebuggingStateHolder {
+ reason?: any;
+ state?: PromiseDebuggingState;
+ value?: any;
+}
+
+interface PromiseRejectionEventInit extends EventInit {
+ promise: Promise<any>;
+ reason?: any;
+}
+
+interface PropertyDefinition {
+ inherits: boolean;
+ initialValue?: UTF8String;
+ name: UTF8String;
+ syntax?: UTF8String;
+}
+
+interface PropertyNamesOptions {
+ includeAliases?: boolean;
+ includeExperimentals?: boolean;
+ includeShorthands?: boolean;
+}
+
+interface PropertyPref {
+ name: string;
+ pref: string;
+}
+
+interface PublicKeyCredentialCreationOptions {
+ attestation?: string;
+ authenticatorSelection?: AuthenticatorSelectionCriteria;
+ challenge: BufferSource;
+ excludeCredentials?: PublicKeyCredentialDescriptor[];
+ extensions?: AuthenticationExtensionsClientInputs;
+ pubKeyCredParams: PublicKeyCredentialParameters[];
+ rp: PublicKeyCredentialRpEntity;
+ timeout?: number;
+ user: PublicKeyCredentialUserEntity;
+}
+
+interface PublicKeyCredentialCreationOptionsJSON {
+ attestation?: string;
+ attestationFormats?: string[];
+ authenticatorSelection?: AuthenticatorSelectionCriteria;
+ challenge: Base64URLString;
+ excludeCredentials?: PublicKeyCredentialDescriptorJSON[];
+ extensions?: AuthenticationExtensionsClientInputsJSON;
+ hints?: string[];
+ pubKeyCredParams: PublicKeyCredentialParameters[];
+ rp: PublicKeyCredentialRpEntity;
+ timeout?: number;
+ user: PublicKeyCredentialUserEntityJSON;
+}
+
+interface PublicKeyCredentialDescriptor {
+ id: BufferSource;
+ transports?: string[];
+ type: string;
+}
+
+interface PublicKeyCredentialDescriptorJSON {
+ id: Base64URLString;
+ transports?: string[];
+ type: string;
+}
+
+interface PublicKeyCredentialEntity {
+ name: string;
+}
+
+interface PublicKeyCredentialParameters {
+ alg: COSEAlgorithmIdentifier;
+ type: string;
+}
+
+interface PublicKeyCredentialRequestOptions {
+ allowCredentials?: PublicKeyCredentialDescriptor[];
+ challenge: BufferSource;
+ extensions?: AuthenticationExtensionsClientInputs;
+ rpId?: string;
+ timeout?: number;
+ userVerification?: string;
+}
+
+interface PublicKeyCredentialRequestOptionsJSON {
+ allowCredentials?: PublicKeyCredentialDescriptorJSON[];
+ attestation?: string;
+ attestationFormats?: string[];
+ challenge: Base64URLString;
+ extensions?: AuthenticationExtensionsClientInputsJSON;
+ hints?: string[];
+ rpId?: string;
+ timeout?: number;
+ userVerification?: string;
+}
+
+interface PublicKeyCredentialRpEntity extends PublicKeyCredentialEntity {
+ id?: string;
+}
+
+interface PublicKeyCredentialUserEntity extends PublicKeyCredentialEntity {
+ displayName: string;
+ id: BufferSource;
+}
+
+interface PublicKeyCredentialUserEntityJSON {
+ displayName: string;
+ id: Base64URLString;
+ name: string;
+}
+
+interface PushEventInit extends ExtendableEventInit {
+ data?: PushMessageDataInit;
+}
+
+interface PushSubscriptionInit {
+ appServerKey?: BufferSource | null;
+ authSecret?: ArrayBuffer | null;
+ endpoint: string;
+ expirationTime?: EpochTimeStamp | null;
+ p256dhKey?: ArrayBuffer | null;
+ scope: string;
+}
+
+interface PushSubscriptionJSON {
+ endpoint?: string;
+ expirationTime?: EpochTimeStamp | null;
+ keys?: PushSubscriptionKeys;
+}
+
+interface PushSubscriptionKeys {
+ auth?: string;
+ p256dh?: string;
+}
+
+interface PushSubscriptionOptionsInit {
+ applicationServerKey?: BufferSource | string | null;
+}
+
+interface QueuingStrategy {
+ highWaterMark?: number;
+ size?: QueuingStrategySize;
+}
+
+interface QueuingStrategyInit {
+ highWaterMark: number;
+}
+
+interface RTCBandwidthEstimationInternal {
+ maxPaddingBps?: number;
+ pacerDelayMs?: number;
+ receiveBandwidthBps?: number;
+ rttMs?: number;
+ sendBandwidthBps?: number;
+ trackIdentifier: string;
+}
+
+interface RTCCodecStats extends RTCStats {
+ channels?: number;
+ clockRate?: number;
+ codecType?: RTCCodecType;
+ mimeType: string;
+ payloadType: number;
+ sdpFmtpLine?: string;
+ transportId: string;
+}
+
+interface RTCConfiguration {
+ bundlePolicy?: RTCBundlePolicy;
+ certificates?: RTCCertificate[];
+ iceServers?: RTCIceServer[];
+ iceTransportPolicy?: RTCIceTransportPolicy;
+ peerIdentity?: string | null;
+ sdpSemantics?: string;
+}
+
+interface RTCConfigurationInternal {
+ bundlePolicy?: RTCBundlePolicy;
+ certificatesProvided: boolean;
+ iceServers?: RTCIceServerInternal[];
+ iceTransportPolicy?: RTCIceTransportPolicy;
+ peerIdentityProvided: boolean;
+ sdpSemantics?: string;
+}
+
+interface RTCDTMFToneChangeEventInit extends EventInit {
+ tone?: string;
+}
+
+interface RTCDataChannelEventInit extends EventInit {
+ channel: RTCDataChannel;
+}
+
+interface RTCDataChannelInit {
+ id?: number;
+ maxPacketLifeTime?: number;
+ maxRetransmitTime?: number;
+ maxRetransmits?: number;
+ negotiated?: boolean;
+ ordered?: boolean;
+ protocol?: string;
+}
+
+interface RTCDataChannelStats extends RTCStats {
+ bytesReceived?: number;
+ bytesSent?: number;
+ dataChannelIdentifier?: number;
+ label?: string;
+ messagesReceived?: number;
+ messagesSent?: number;
+ protocol?: string;
+ state?: RTCDataChannelState;
+}
+
+interface RTCEncodedAudioFrameMetadata {
+ contributingSources?: number[];
+ payloadType?: number;
+ sequenceNumber?: number;
+ synchronizationSource?: number;
+}
+
+interface RTCEncodedVideoFrameMetadata {
+ contributingSources?: number[];
+ dependencies?: number[];
+ frameId?: number;
+ height?: number;
+ payloadType?: number;
+ spatialIndex?: number;
+ synchronizationSource?: number;
+ temporalIndex?: number;
+ timestamp?: number;
+ width?: number;
+}
+
+interface RTCFecParameters {
+ ssrc?: number;
+}
+
+interface RTCIceCandidateInit {
+ candidate?: string;
+ sdpMLineIndex?: number | null;
+ sdpMid?: string | null;
+ usernameFragment?: string | null;
+}
+
+interface RTCIceCandidatePairStats extends RTCStats {
+ bytesReceived?: number;
+ bytesSent?: number;
+ componentId?: number;
+ lastPacketReceivedTimestamp?: DOMHighResTimeStamp;
+ lastPacketSentTimestamp?: DOMHighResTimeStamp;
+ localCandidateId?: string;
+ nominated?: boolean;
+ priority?: number;
+ readable?: boolean;
+ remoteCandidateId?: string;
+ selected?: boolean;
+ state?: RTCStatsIceCandidatePairState;
+ transportId?: string;
+ writable?: boolean;
+}
+
+interface RTCIceCandidateStats extends RTCStats {
+ address?: string;
+ candidateType?: RTCIceCandidateType;
+ port?: number;
+ priority?: number;
+ protocol?: string;
+ proxied?: string;
+ relayProtocol?: string;
+ transportId?: string;
+}
+
+interface RTCIceServer {
+ credential?: string;
+ credentialType?: RTCIceCredentialType;
+ url?: string;
+ urls?: string | string[];
+ username?: string;
+}
+
+interface RTCIceServerInternal {
+ credentialProvided: boolean;
+ urls?: string[];
+ userNameProvided: boolean;
+}
+
+interface RTCIdentityAssertion {
+ idp?: string;
+ name?: string;
+}
+
+interface RTCIdentityAssertionResult {
+ assertion: string;
+ idp: RTCIdentityProviderDetails;
+}
+
+interface RTCIdentityProvider {
+ generateAssertion: GenerateAssertionCallback;
+ validateAssertion: ValidateAssertionCallback;
+}
+
+interface RTCIdentityProviderDetails {
+ domain: string;
+ protocol?: string;
+}
+
+interface RTCIdentityProviderOptions {
+ peerIdentity?: string;
+ protocol?: string;
+ usernameHint?: string;
+}
+
+interface RTCIdentityValidationResult {
+ contents: string;
+ identity: string;
+}
+
+interface RTCInboundRtpStreamStats extends RTCReceivedRtpStreamStats {
+ audioLevel?: number;
+ bytesReceived?: number;
+ concealedSamples?: number;
+ concealmentEvents?: number;
+ fecPacketsDiscarded?: number;
+ fecPacketsReceived?: number;
+ firCount?: number;
+ frameHeight?: number;
+ frameWidth?: number;
+ framesDecoded?: number;
+ framesDropped?: number;
+ framesPerSecond?: number;
+ framesReceived?: number;
+ headerBytesReceived?: number;
+ insertedSamplesForDeceleration?: number;
+ jitterBufferDelay?: number;
+ jitterBufferEmittedCount?: number;
+ lastPacketReceivedTimestamp?: DOMHighResTimeStamp;
+ nackCount?: number;
+ pliCount?: number;
+ qpSum?: number;
+ remoteId?: string;
+ removedSamplesForAcceleration?: number;
+ silentConcealedSamples?: number;
+ totalAudioEnergy?: number;
+ totalDecodeTime?: number;
+ totalInterFrameDelay?: number;
+ totalProcessingDelay?: number;
+ totalSamplesDuration?: number;
+ totalSamplesReceived?: number;
+ totalSquaredInterFrameDelay?: number;
+ trackIdentifier: string;
+}
+
+interface RTCMediaSourceStats extends RTCStats {
+ kind: string;
+ trackIdentifier: string;
+}
+
+interface RTCOfferAnswerOptions {
+}
+
+interface RTCOfferOptions extends RTCOfferAnswerOptions {
+ iceRestart?: boolean;
+ offerToReceiveAudio?: boolean;
+ offerToReceiveVideo?: boolean;
+}
+
+interface RTCOutboundRtpStreamStats extends RTCSentRtpStreamStats {
+ firCount?: number;
+ frameHeight?: number;
+ frameWidth?: number;
+ framesEncoded?: number;
+ framesPerSecond?: number;
+ framesSent?: number;
+ headerBytesSent?: number;
+ hugeFramesSent?: number;
+ nackCount?: number;
+ pliCount?: number;
+ qpSum?: number;
+ remoteId?: string;
+ retransmittedBytesSent?: number;
+ retransmittedPacketsSent?: number;
+ totalEncodeTime?: number;
+ totalEncodedBytesTarget?: number;
+}
+
+interface RTCPeerConnectionIceEventInit extends EventInit {
+ candidate?: RTCIceCandidate | null;
+}
+
+interface RTCPeerConnectionStats extends RTCStats {
+ dataChannelsClosed?: number;
+ dataChannelsOpened?: number;
+}
+
+interface RTCRTPContributingSourceStats extends RTCStats {
+ contributorSsrc?: number;
+ inboundRtpStreamId?: string;
+}
+
+interface RTCReceivedRtpStreamStats extends RTCRtpStreamStats {
+ discardedPackets?: number;
+ jitter?: number;
+ packetsDiscarded?: number;
+ packetsLost?: number;
+ packetsReceived?: number;
+}
+
+interface RTCRemoteInboundRtpStreamStats extends RTCReceivedRtpStreamStats {
+ fractionLost?: number;
+ localId?: string;
+ roundTripTime?: number;
+ roundTripTimeMeasurements?: number;
+ totalRoundTripTime?: number;
+}
+
+interface RTCRemoteOutboundRtpStreamStats extends RTCSentRtpStreamStats {
+ localId?: string;
+ remoteTimestamp?: DOMHighResTimeStamp;
+}
+
+interface RTCRtcpParameters {
+ cname?: string;
+ reducedSize?: boolean;
+}
+
+interface RTCRtpCapabilities {
+ codecs: RTCRtpCodecCapability[];
+ headerExtensions: RTCRtpHeaderExtensionCapability[];
+}
+
+interface RTCRtpCodec {
+ channels?: number;
+ clockRate: number;
+ mimeType: string;
+ sdpFmtpLine?: string;
+}
+
+interface RTCRtpCodecCapability extends RTCRtpCodec {
+}
+
+interface RTCRtpCodecParameters {
+ channels?: number;
+ clockRate?: number;
+ mimeType?: string;
+ payloadType?: number;
+ sdpFmtpLine?: string;
+}
+
+interface RTCRtpContributingSource {
+ audioLevel?: number;
+ rtpTimestamp: number;
+ source: number;
+ timestamp: DOMHighResTimeStamp;
+}
+
+interface RTCRtpEncodingParameters {
+ active?: boolean;
+ fec?: RTCFecParameters;
+ maxBitrate?: number;
+ maxFramerate?: number;
+ priority?: RTCPriorityType;
+ rid?: string;
+ rtx?: RTCRtxParameters;
+ scaleResolutionDownBy?: number;
+ ssrc?: number;
+}
+
+interface RTCRtpHeaderExtensionCapability {
+ uri: string;
+}
+
+interface RTCRtpHeaderExtensionParameters {
+ encrypted?: boolean;
+ id?: number;
+ uri?: string;
+}
+
+interface RTCRtpParameters {
+ codecs?: RTCRtpCodecParameters[];
+ headerExtensions?: RTCRtpHeaderExtensionParameters[];
+ rtcp?: RTCRtcpParameters;
+}
+
+interface RTCRtpSendParameters extends RTCRtpParameters {
+ encodings: RTCRtpEncodingParameters[];
+ transactionId?: string;
+}
+
+interface RTCRtpStreamStats extends RTCStats {
+ codecId?: string;
+ kind: string;
+ mediaType?: string;
+ ssrc: number;
+ transportId?: string;
+}
+
+interface RTCRtpSynchronizationSource extends RTCRtpContributingSource {
+ voiceActivityFlag?: boolean | null;
+}
+
+interface RTCRtpTransceiverInit {
+ direction?: RTCRtpTransceiverDirection;
+ sendEncodings?: RTCRtpEncodingParameters[];
+ streams?: MediaStream[];
+}
+
+interface RTCRtxParameters {
+ ssrc?: number;
+}
+
+interface RTCSdpHistoryEntryInternal {
+ errors?: RTCSdpParsingErrorInternal[];
+ isLocal: boolean;
+ sdp: string;
+ timestamp: DOMHighResTimeStamp;
+}
+
+interface RTCSdpHistoryInternal {
+ pcid: string;
+ sdpHistory?: RTCSdpHistoryEntryInternal[];
+}
+
+interface RTCSdpParsingErrorInternal {
+ error: string;
+ lineNumber: number;
+}
+
+interface RTCSentRtpStreamStats extends RTCRtpStreamStats {
+ bytesSent?: number;
+ packetsSent?: number;
+}
+
+interface RTCSessionDescriptionInit {
+ sdp?: string;
+ type?: RTCSdpType;
+}
+
+interface RTCStats {
+ id?: string;
+ timestamp?: DOMHighResTimeStamp;
+ type?: RTCStatsType;
+}
+
+interface RTCStatsCollection {
+ bandwidthEstimations?: RTCBandwidthEstimationInternal[];
+ codecStats?: RTCCodecStats[];
+ dataChannelStats?: RTCDataChannelStats[];
+ iceCandidatePairStats?: RTCIceCandidatePairStats[];
+ iceCandidateStats?: RTCIceCandidateStats[];
+ inboundRtpStreamStats?: RTCInboundRtpStreamStats[];
+ mediaSourceStats?: RTCMediaSourceStats[];
+ outboundRtpStreamStats?: RTCOutboundRtpStreamStats[];
+ peerConnectionStats?: RTCPeerConnectionStats[];
+ rawLocalCandidates?: string[];
+ rawRemoteCandidates?: string[];
+ remoteInboundRtpStreamStats?: RTCRemoteInboundRtpStreamStats[];
+ remoteOutboundRtpStreamStats?: RTCRemoteOutboundRtpStreamStats[];
+ rtpContributingSourceStats?: RTCRTPContributingSourceStats[];
+ trickledIceCandidateStats?: RTCIceCandidateStats[];
+ videoFrameHistories?: RTCVideoFrameHistoryInternal[];
+ videoSourceStats?: RTCVideoSourceStats[];
+}
+
+interface RTCStatsReportInternal extends RTCStatsCollection {
+ browserId: number;
+ callDurationMs?: number;
+ closed: boolean;
+ configuration?: RTCConfigurationInternal;
+ iceRestarts: number;
+ iceRollbacks: number;
+ jsepSessionErrors?: string;
+ offerer?: boolean;
+ pcid: string;
+ sdpHistory?: RTCSdpHistoryEntryInternal[];
+ timestamp: DOMHighResTimeStamp;
+}
+
+interface RTCTrackEventInit extends EventInit {
+ receiver: RTCRtpReceiver;
+ streams?: MediaStream[];
+ track: MediaStreamTrack;
+ transceiver: RTCRtpTransceiver;
+}
+
+interface RTCTransformEventInit extends EventInit {
+ transformer: RTCRtpScriptTransformer;
+}
+
+interface RTCVideoFrameHistoryEntryInternal {
+ consecutiveFrames: number;
+ firstFrameTimestamp: DOMHighResTimeStamp;
+ height: number;
+ lastFrameTimestamp: DOMHighResTimeStamp;
+ localSsrc: number;
+ remoteSsrc: number;
+ rotationAngle: number;
+ width: number;
+}
+
+interface RTCVideoFrameHistoryInternal {
+ entries?: RTCVideoFrameHistoryEntryInternal[];
+ trackIdentifier: string;
+}
+
+interface RTCVideoSourceStats extends RTCMediaSourceStats {
+ frames?: number;
+ framesPerSecond?: number;
+ height?: number;
+ width?: number;
+}
+
+interface ReadOptions extends ReadUTF8Options {
+ maxBytes?: number | null;
+ offset?: number;
+}
+
+interface ReadUTF8Options {
+ decompress?: boolean;
+}
+
+interface ReadableStreamGetReaderOptions {
+ mode?: ReadableStreamReaderMode;
+}
+
+interface ReadableStreamIteratorOptions {
+ preventCancel?: boolean;
+}
+
+interface ReadableStreamReadResult {
+ done?: boolean;
+ value?: any;
+}
+
+interface ReadableWritablePair {
+ readable: ReadableStream;
+ writable: WritableStream;
+}
+
+interface ReceiveMessageArgument {
+ data?: any;
+ json?: any;
+ name: string;
+ ports?: MessagePort[];
+ sync: boolean;
+ target: nsISupports;
+ targetFrameLoader?: FrameLoader;
+}
+
+interface RegistrationOptions {
+ scope?: string;
+ updateViaCache?: ServiceWorkerUpdateViaCache;
+}
+
+interface RemotenessOptions {
+ pendingSwitchID?: number;
+ remoteType: UTF8String | null;
+ switchingInProgressLoad?: boolean;
+}
+
+interface RemoveOptions {
+ ignoreAbsent?: boolean;
+ recursive?: boolean;
+ retryReadonly?: boolean;
+}
+
+interface ReportingObserverOptions {
+ buffered?: boolean;
+ types?: string[];
+}
+
+interface RequestInit {
+ body?: BodyInit | null;
+ cache?: RequestCache;
+ credentials?: RequestCredentials;
+ headers?: HeadersInit;
+ integrity?: string;
+ method?: string;
+ mode?: RequestMode;
+ mozErrors?: boolean;
+ observe?: ObserverCallback;
+ redirect?: RequestRedirect;
+ referrer?: string;
+ referrerPolicy?: ReferrerPolicy;
+ signal?: AbortSignal | null;
+}
+
+interface ResizeObserverOptions {
+ box?: ResizeObserverBoxOptions;
+}
+
+interface ResourceId {
+ optional?: boolean;
+ path: UTF8String;
+}
+
+interface ResponseInit {
+ headers?: HeadersInit;
+ status?: number;
+ statusText?: string;
+}
+
+interface SVGBoundingBoxOptions {
+ clipped?: boolean;
+ fill?: boolean;
+ markers?: boolean;
+ stroke?: boolean;
+}
+
+interface SanitizerAttributeNamespace {
+ name: string;
+ namespace?: string | null;
+}
+
+interface SanitizerConfig {
+ attributes?: SanitizerAttribute[];
+ comments?: boolean;
+ customElements?: boolean;
+ elements?: SanitizerElementWithAttributes[];
+ removeAttributes?: SanitizerAttribute[];
+ removeElements?: SanitizerElement[];
+ replaceWithChildrenElements?: SanitizerElement[];
+ unknownMarkup?: boolean;
+}
+
+interface SanitizerElementNamespace {
+ name: string;
+ namespace?: string | null;
+}
+
+interface SanitizerElementNamespaceWithAttributes extends SanitizerElementNamespace {
+ attributes?: SanitizerAttribute[];
+ removeAttributes?: SanitizerAttribute[];
+}
+
+interface SchedulerPostTaskOptions {
+ delay?: number;
+ priority?: TaskPriority;
+ signal?: AbortSignal;
+}
+
+interface ScrollIntoViewOptions extends ScrollOptions {
+ block?: ScrollLogicalPosition;
+ inline?: ScrollLogicalPosition;
+}
+
+interface ScrollOptions {
+ behavior?: ScrollBehavior;
+}
+
+interface ScrollToOptions extends ScrollOptions {
+ left?: number;
+ top?: number;
+}
+
+interface ScrollViewChangeEventInit extends EventInit {
+ state?: ScrollState;
+}
+
+interface SecurityPolicyViolationEventInit extends EventInit {
+ blockedURI?: string;
+ columnNumber?: number;
+ disposition?: SecurityPolicyViolationEventDisposition;
+ documentURI?: string;
+ effectiveDirective?: string;
+ lineNumber?: number;
+ originalPolicy?: string;
+ referrer?: string;
+ sample?: string;
+ sourceFile?: string;
+ statusCode?: number;
+ violatedDirective?: string;
+}
+
+interface SelectorWarning {
+ index: number;
+ kind: SelectorWarningKind;
+}
+
+interface ServerSocketOptions {
+ binaryType?: TCPSocketBinaryType;
+}
+
+interface SetHTMLOptions {
+ sanitizer?: SanitizerConfig;
+}
+
+interface ShadowRootInit {
+ clonable?: boolean;
+ delegatesFocus?: boolean;
+ mode: ShadowRootMode;
+ slotAssignment?: SlotAssignmentMode;
+}
+
+interface ShareData {
+ files?: File[];
+ text?: string;
+ title?: string;
+ url?: string;
+}
+
+interface SizeToContentConstraints {
+ maxHeight?: number;
+ maxWidth?: number;
+ prefWidth?: number;
+}
+
+interface SocketOptions {
+ binaryType?: TCPSocketBinaryType;
+ useSecureTransport?: boolean;
+}
+
+interface SpeechRecognitionErrorInit extends EventInit {
+ error?: SpeechRecognitionErrorCode;
+ message?: string;
+}
+
+interface SpeechRecognitionEventInit extends EventInit {
+ emma?: Document | null;
+ interpretation?: any;
+ resultIndex?: number;
+ results?: SpeechRecognitionResultList | null;
+}
+
+interface SpeechSynthesisErrorEventInit extends SpeechSynthesisEventInit {
+ error: SpeechSynthesisErrorCode;
+}
+
+interface SpeechSynthesisEventInit extends EventInit {
+ charIndex?: number;
+ charLength?: number | null;
+ elapsedTime?: number;
+ name?: string;
+ utterance: SpeechSynthesisUtterance;
+}
+
+interface SplitRelativeOptions {
+ allowCurrentDir?: boolean;
+ allowEmpty?: boolean;
+ allowParentDir?: boolean;
+}
+
+interface StaticRangeInit {
+ endContainer: Node;
+ endOffset: number;
+ startContainer: Node;
+ startOffset: number;
+}
+
+interface StereoPannerOptions extends AudioNodeOptions {
+ pan?: number;
+}
+
+interface StorageEstimate {
+ quota?: number;
+ usage?: number;
+}
+
+interface StorageEventInit extends EventInit {
+ key?: string | null;
+ newValue?: string | null;
+ oldValue?: string | null;
+ storageArea?: Storage | null;
+ url?: string;
+}
+
+interface StreamFilterDataEventInit extends EventInit {
+ data: ArrayBuffer;
+}
+
+interface StreamPipeOptions {
+ preventAbort?: boolean;
+ preventCancel?: boolean;
+ preventClose?: boolean;
+ signal?: AbortSignal;
+}
+
+interface StructuredSerializeOptions {
+ transfer?: any[];
+}
+
+interface StyleSheetApplicableStateChangeEventInit extends EventInit {
+ applicable?: boolean;
+ stylesheet?: CSSStyleSheet | null;
+}
+
+interface StyleSheetRemovedEventInit extends EventInit {
+ stylesheet?: CSSStyleSheet | null;
+}
+
+interface SubmitEventInit extends EventInit {
+ submitter?: HTMLElement | null;
+}
+
+interface SupportsOptions {
+ chrome?: boolean;
+ quirks?: boolean;
+ userAgent?: boolean;
+}
+
+interface SvcOutputMetadata {
+ temporalLayerId?: number;
+}
+
+interface TCPServerSocketEventInit extends EventInit {
+ socket?: TCPSocket | null;
+}
+
+interface TCPSocketErrorEventInit extends EventInit {
+ errorCode?: number;
+ message?: string;
+ name?: string;
+}
+
+interface TCPSocketEventInit extends EventInit {
+ data?: any;
+}
+
+interface TaskControllerInit {
+ priority?: TaskPriority;
+}
+
+interface TaskPriorityChangeEventInit extends EventInit {
+ previousPriority: TaskPriority;
+}
+
+interface TelemetryStopwatchOptions {
+ inSeconds?: boolean;
+}
+
+interface TestInterfaceAsyncIterableSingleOptions {
+ failToInit?: boolean;
+}
+
+interface TestInterfaceAsyncIteratorOptions {
+ blockingPromises?: Promise<any>[];
+ failNextAfter?: number;
+ multiplier?: number;
+ throwFromNext?: boolean;
+ throwFromReturn?: TestThrowingCallback;
+}
+
+interface TestInterfaceJSDictionary {
+ anyMember?: any;
+ anySequenceMember?: any[];
+ innerDictionary?: TestInterfaceJSDictionary2;
+ objectMember?: any;
+ objectOrStringMember?: any;
+ objectRecordMember?: Record<string, any>;
+}
+
+interface TestInterfaceJSDictionary2 {
+ innerObject?: any;
+}
+
+interface TestInterfaceJSUnionableDictionary {
+ anyMember?: any;
+ objectMember?: any;
+}
+
+interface TextDecodeOptions {
+ stream?: boolean;
+}
+
+interface TextDecoderOptions {
+ fatal?: boolean;
+ ignoreBOM?: boolean;
+}
+
+interface TextEncoderEncodeIntoResult {
+ read?: number;
+ written?: number;
+}
+
+interface ThreadInfoDictionary {
+ cpuCycleCount?: number;
+ cpuTime?: number;
+ name?: string;
+ tid?: number;
+}
+
+interface ToggleEventInit extends EventInit {
+ newState?: string;
+ oldState?: string;
+}
+
+interface TouchEventInit extends EventModifierInit {
+ changedTouches?: Touch[];
+ targetTouches?: Touch[];
+ touches?: Touch[];
+}
+
+interface TouchInit {
+ clientX?: number;
+ clientY?: number;
+ force?: number;
+ identifier: number;
+ pageX?: number;
+ pageY?: number;
+ radiusX?: number;
+ radiusY?: number;
+ rotationAngle?: number;
+ screenX?: number;
+ screenY?: number;
+ target: EventTarget;
+}
+
+interface TrackBuffersManagerDebugInfo {
+ bufferSize?: number;
+ evictable?: number;
+ nextGetSampleIndex?: number;
+ nextInsertionIndex?: number;
+ nextSampleTime?: number;
+ numSamples?: number;
+ ranges?: BufferRange[];
+ type?: string;
+}
+
+interface TrackEventInit extends EventInit {
+ track?: VideoTrack | AudioTrack | TextTrack | null;
+}
+
+interface TransitionEventInit extends EventInit {
+ elapsedTime?: number;
+ propertyName?: string;
+ pseudoElement?: string;
+}
+
+interface TreeCellInfo {
+ childElt?: string;
+ col?: TreeColumn | null;
+ row?: number;
+}
+
+interface UDPMessageEventInit extends EventInit {
+ data?: any;
+ remoteAddress?: string;
+ remotePort?: number;
+}
+
+interface UDPOptions {
+ addressReuse?: boolean;
+ localAddress?: string;
+ localPort?: number;
+ loopback?: boolean;
+ remoteAddress?: string;
+ remotePort?: number;
+}
+
+interface UIEventInit extends EventInit {
+ detail?: number;
+ view?: Window | null;
+}
+
+interface UniFFIScaffoldingCallResult {
+ code: UniFFIScaffoldingCallCode;
+ data?: UniFFIScaffoldingType;
+ internalErrorMessage?: string;
+}
+
+interface UserProximityEventInit extends EventInit {
+ near?: boolean;
+}
+
+interface UtilityActorsDictionary {
+ actorName?: WebIDLUtilityActorName;
+}
+
+interface VRDisplayEventInit extends EventInit {
+ display: VRDisplay;
+ reason?: VRDisplayEventReason;
+}
+
+interface VRLayer {
+ leftBounds?: number[] | Float32Array;
+ rightBounds?: number[] | Float32Array;
+ source?: HTMLCanvasElement | null;
+}
+
+interface ValidityStateFlags {
+ badInput?: boolean;
+ customError?: boolean;
+ patternMismatch?: boolean;
+ rangeOverflow?: boolean;
+ rangeUnderflow?: boolean;
+ stepMismatch?: boolean;
+ tooLong?: boolean;
+ tooShort?: boolean;
+ typeMismatch?: boolean;
+ valueMissing?: boolean;
+}
+
+interface VideoColorSpaceInit {
+ fullRange?: boolean | null;
+ matrix?: VideoMatrixCoefficients | null;
+ primaries?: VideoColorPrimaries | null;
+ transfer?: VideoTransferCharacteristics | null;
+}
+
+interface VideoConfiguration {
+ bitrate: number;
+ colorGamut?: ColorGamut;
+ contentType: string;
+ framerate: number;
+ hasAlphaChannel?: boolean;
+ hdrMetadataType?: HdrMetadataType;
+ height: number;
+ scalabilityMode?: string;
+ transferFunction?: TransferFunction;
+ width: number;
+}
+
+interface VideoDecoderConfig {
+ codec: string;
+ codedHeight?: number;
+ codedWidth?: number;
+ colorSpace?: VideoColorSpaceInit;
+ description?: ArrayBufferView | ArrayBuffer;
+ displayAspectHeight?: number;
+ displayAspectWidth?: number;
+ hardwareAcceleration?: HardwareAcceleration;
+ optimizeForLatency?: boolean;
+}
+
+interface VideoDecoderInit {
+ error: WebCodecsErrorCallback;
+ output: VideoFrameOutputCallback;
+}
+
+interface VideoDecoderSupport {
+ config?: VideoDecoderConfig;
+ supported?: boolean;
+}
+
+interface VideoEncoderConfig {
+ alpha?: AlphaOption;
+ avc?: AvcEncoderConfig;
+ bitrate?: number;
+ bitrateMode?: VideoEncoderBitrateMode;
+ codec: string;
+ contentHint?: string;
+ displayHeight?: number;
+ displayWidth?: number;
+ framerate?: number;
+ hardwareAcceleration?: HardwareAcceleration;
+ height: number;
+ latencyMode?: LatencyMode;
+ scalabilityMode?: string;
+ width: number;
+}
+
+interface VideoEncoderEncodeOptions {
+ avc?: VideoEncoderEncodeOptionsForAvc;
+ keyFrame?: boolean;
+}
+
+interface VideoEncoderEncodeOptionsForAvc {
+ quantizer?: number | null;
+}
+
+interface VideoEncoderInit {
+ error: WebCodecsErrorCallback;
+ output: EncodedVideoChunkOutputCallback;
+}
+
+interface VideoEncoderSupport {
+ config?: VideoEncoderConfig;
+ supported?: boolean;
+}
+
+interface VideoFrameBufferInit {
+ codedHeight: number;
+ codedWidth: number;
+ colorSpace?: VideoColorSpaceInit;
+ displayHeight?: number;
+ displayWidth?: number;
+ duration?: number;
+ format: VideoPixelFormat;
+ layout?: PlaneLayout[];
+ timestamp: number;
+ visibleRect?: DOMRectInit;
+}
+
+interface VideoFrameCopyToOptions {
+ layout?: PlaneLayout[];
+ rect?: DOMRectInit;
+}
+
+interface VideoFrameInit {
+ alpha?: AlphaOption;
+ displayHeight?: number;
+ displayWidth?: number;
+ duration?: number;
+ timestamp?: number;
+ visibleRect?: DOMRectInit;
+}
+
+interface VideoSinkDebugInfo {
+ endPromiseHolderIsEmpty?: boolean;
+ finished?: boolean;
+ hasVideo?: boolean;
+ isPlaying?: boolean;
+ isStarted?: boolean;
+ size?: number;
+ videoFrameEndTime?: number;
+ videoSinkEndRequestExists?: boolean;
+}
+
+interface WaveShaperOptions extends AudioNodeOptions {
+ curve?: number[] | Float32Array;
+ oversample?: OverSampleType;
+}
+
+interface WebAccessibleResourceInit {
+ extension_ids?: string[] | null;
+ matches?: MatchPatternSetOrStringSequence | null;
+ resources: MatchGlobOrString[];
+}
+
+interface WebExtensionContentScriptInit extends MozDocumentMatcherInit {
+ cssPaths?: string[];
+ jsPaths?: string[];
+ runAt?: ContentScriptRunAt;
+}
+
+interface WebExtensionInit {
+ allowedOrigins: MatchPatternSetOrStringSequence;
+ backgroundScripts?: string[] | null;
+ backgroundTypeModule?: boolean;
+ backgroundWorkerScript?: string | null;
+ baseURL: string;
+ contentScripts?: WebExtensionContentScriptInit[];
+ extensionPageCSP?: string | null;
+ id: string;
+ ignoreQuarantine?: boolean;
+ isPrivileged?: boolean;
+ localizeCallback: WebExtensionLocalizeCallback;
+ manifestVersion?: number;
+ mozExtensionHostname: string;
+ name?: string;
+ permissions?: string[];
+ readyPromise?: Promise<WebExtensionPolicy | null>;
+ temporarilyInstalled?: boolean;
+ type?: string;
+ webAccessibleResources?: WebAccessibleResourceInit[];
+}
+
+interface WebGLContextAttributes {
+ alpha?: GLboolean;
+ antialias?: GLboolean;
+ colorSpace?: PredefinedColorSpace;
+ depth?: GLboolean;
+ failIfMajorPerformanceCaveat?: GLboolean;
+ powerPreference?: WebGLPowerPreference;
+ premultipliedAlpha?: GLboolean;
+ preserveDrawingBuffer?: GLboolean;
+ stencil?: GLboolean;
+ xrCompatible?: boolean;
+}
+
+interface WebGLContextEventInit extends EventInit {
+ statusMessage?: string;
+}
+
+interface WebTransportCloseInfo {
+ closeCode?: number;
+ reason?: UTF8String;
+}
+
+interface WebTransportDatagramStats {
+ droppedIncoming?: number;
+ expiredOutgoing?: number;
+ lostOutgoing?: number;
+ timestamp?: DOMHighResTimeStamp;
+}
+
+interface WebTransportErrorInit {
+ message?: string;
+ streamErrorCode?: number;
+}
+
+interface WebTransportHash {
+ algorithm?: string;
+ value?: BufferSource;
+}
+
+interface WebTransportOptions {
+ allowPooling?: boolean;
+ congestionControl?: WebTransportCongestionControl;
+ requireUnreliable?: boolean;
+ serverCertificateHashes?: WebTransportHash[];
+}
+
+interface WebTransportReceiveStreamStats {
+ bytesRead?: number;
+ bytesReceived?: number;
+ timestamp?: DOMHighResTimeStamp;
+}
+
+interface WebTransportSendStreamOptions {
+ sendOrder?: number | null;
+}
+
+interface WebTransportSendStreamStats {
+ bytesAcknowledged?: number;
+ bytesSent?: number;
+ bytesWritten?: number;
+ timestamp?: DOMHighResTimeStamp;
+}
+
+interface WebTransportStats {
+ bytesReceived?: number;
+ bytesSent?: number;
+ datagrams?: WebTransportDatagramStats;
+ minRtt?: DOMHighResTimeStamp;
+ numIncomingStreamsCreated?: number;
+ numOutgoingStreamsCreated?: number;
+ packetsLost?: number;
+ packetsReceived?: number;
+ packetsSent?: number;
+ rttVariation?: DOMHighResTimeStamp;
+ smoothedRtt?: DOMHighResTimeStamp;
+ timestamp?: DOMHighResTimeStamp;
+}
+
+interface WebrtcGlobalMediaContext {
+ hasH264Hardware: boolean;
+}
+
+interface WebrtcGlobalStatisticsReport {
+ reports?: RTCStatsReportInternal[];
+ sdpHistories?: RTCSdpHistoryInternal[];
+}
+
+interface WheelEventInit extends MouseEventInit {
+ deltaMode?: number;
+ deltaX?: number;
+ deltaY?: number;
+ deltaZ?: number;
+}
+
+interface WindowActorChildOptions extends WindowActorSidedOptions {
+ events?: Record<string, WindowActorEventListenerOptions>;
+ observers?: string[];
+}
+
+interface WindowActorEventListenerOptions extends AddEventListenerOptions {
+ createActor?: boolean;
+}
+
+interface WindowActorOptions {
+ allFrames?: boolean;
+ child?: WindowActorChildOptions;
+ includeChrome?: boolean;
+ matches?: string[];
+ messageManagerGroups?: string[];
+ parent?: WindowActorSidedOptions;
+ remoteTypes?: UTF8String[];
+}
+
+interface WindowActorSidedOptions {
+ esModuleURI?: string;
+ moduleURI?: string;
+}
+
+interface WindowInfoDictionary {
+ documentTitle?: string;
+ documentURI?: URI | null;
+ isInProcess?: boolean;
+ isProcessRoot?: boolean;
+ outerWindowId?: number;
+}
+
+interface WindowPostMessageOptions extends StructuredSerializeOptions {
+ targetOrigin?: string;
+}
+
+interface WindowsFileAttributes {
+ hidden?: boolean;
+ readOnly?: boolean;
+ system?: boolean;
+}
+
+interface Wireframe {
+ canvasBackground?: number;
+ rects?: WireframeTaggedRect[];
+ version?: number;
+}
+
+interface WireframeTaggedRect {
+ color?: number;
+ height?: number;
+ node?: Node | null;
+ type?: WireframeRectType;
+ width?: number;
+ x?: number;
+ y?: number;
+}
+
+interface WorkerOptions {
+ credentials?: RequestCredentials;
+ name?: string;
+ type?: WorkerType;
+}
+
+interface WorkletOptions {
+ credentials?: RequestCredentials;
+}
+
+interface WriteOptions {
+ backupFile?: string;
+ compress?: boolean;
+ flush?: boolean;
+ mode?: WriteMode;
+ tmpPath?: string;
+}
+
+interface WriteParams {
+ data?: BufferSource | Blob | UTF8String | null;
+ position?: number | null;
+ size?: number | null;
+ type: WriteCommandType;
+}
+
+interface XRInputSourceEventInit extends EventInit {
+ frame: XRFrame;
+ inputSource: XRInputSource;
+}
+
+interface XRInputSourcesChangeEventInit extends EventInit {
+ added: XRInputSource[];
+ removed: XRInputSource[];
+ session: XRSession;
+}
+
+interface XRReferenceSpaceEventInit extends EventInit {
+ referenceSpace: XRReferenceSpace;
+ transform?: XRRigidTransform | null;
+}
+
+interface XRRenderStateInit {
+ baseLayer?: XRWebGLLayer | null;
+ depthFar?: number;
+ depthNear?: number;
+ inlineVerticalFieldOfView?: number;
+}
+
+interface XRSessionEventInit extends EventInit {
+ session: XRSession;
+}
+
+interface XRSessionInit {
+ optionalFeatures?: any[];
+ requiredFeatures?: any[];
+}
+
+interface XRWebGLLayerInit {
+ alpha?: boolean;
+ antialias?: boolean;
+ depth?: boolean;
+ framebufferScaleFactor?: number;
+ ignoreDepthValues?: boolean;
+ stencil?: boolean;
+}
+
+interface addonInstallOptions {
+ hash?: string | null;
+ url: string;
+}
+
+type EventListener = ((event: Event) => void) | { handleEvent(event: Event): void; };
+
+type MessageListener = ((argument: ReceiveMessageArgument) => any) | { receiveMessage(argument: ReceiveMessageArgument): any; };
+
+type MozDocumentCallback = ((matcher: MozDocumentMatcher, window: WindowProxy) => void) | { onNewDocument(matcher: MozDocumentMatcher, window: WindowProxy): void; };
+
+type NodeFilter = ((node: Node) => number) | { acceptNode(node: Node): number; };
+
+declare var NodeFilter: {
+ readonly FILTER_ACCEPT: 1;
+ readonly FILTER_REJECT: 2;
+ readonly FILTER_SKIP: 3;
+ readonly SHOW_ALL: 0xFFFFFFFF;
+ readonly SHOW_ELEMENT: 0x1;
+ readonly SHOW_ATTRIBUTE: 0x2;
+ readonly SHOW_TEXT: 0x4;
+ readonly SHOW_CDATA_SECTION: 0x8;
+ readonly SHOW_ENTITY_REFERENCE: 0x10;
+ readonly SHOW_ENTITY: 0x20;
+ readonly SHOW_PROCESSING_INSTRUCTION: 0x40;
+ readonly SHOW_COMMENT: 0x80;
+ readonly SHOW_DOCUMENT: 0x100;
+ readonly SHOW_DOCUMENT_TYPE: 0x200;
+ readonly SHOW_DOCUMENT_FRAGMENT: 0x400;
+ readonly SHOW_NOTATION: 0x800;
+};
+
+type ObserverCallback = ((observer: FetchObserver) => void) | { handleEvent(observer: FetchObserver): void; };
+
+type UncaughtRejectionObserver = ((p: any) => boolean) | { onLeftUncaught(p: any): boolean; };
+
+type XPathNSResolver = ((prefix: string | null) => string | null) | { lookupNamespaceURI(prefix: string | null): string | null; };
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays)
+ */
+interface ANGLE_instanced_arrays {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawArraysInstancedANGLE) */
+ drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawElementsInstancedANGLE) */
+ drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/vertexAttribDivisorANGLE) */
+ vertexAttribDivisorANGLE(index: GLuint, divisor: GLuint): void;
+ readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: 0x88FE;
+}
+
+/**
+ * A controller object that allows you to abort one or more DOM requests as and when desired.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController)
+ */
+interface AbortController {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/signal) */
+ readonly signal: AbortSignal;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/abort) */
+ abort(reason?: any): void;
+}
+
+declare var AbortController: {
+ prototype: AbortController;
+ new(): AbortController;
+ isInstance(obj): obj is AbortController;
+};
+
+interface AbortSignalEventMap {
+ "abort": Event;
+}
+
+/**
+ * A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal)
+ */
+interface AbortSignal extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/aborted) */
+ readonly aborted: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_event) */
+ onabort: ((this: AbortSignal, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/reason) */
+ readonly reason: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/throwIfAborted) */
+ throwIfAborted(): void;
+ addEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof AbortSignalEventMap>(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var AbortSignal: {
+ prototype: AbortSignal;
+ new(): AbortSignal;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_static) */
+ abort(reason?: any): AbortSignal;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/timeout_static) */
+ timeout(milliseconds: number): AbortSignal;
+ isInstance(obj): obj is AbortSignal;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange) */
+interface AbstractRange {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/collapsed) */
+ readonly collapsed: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/endContainer) */
+ readonly endContainer: Node;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/endOffset) */
+ readonly endOffset: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/startContainer) */
+ readonly startContainer: Node;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/startOffset) */
+ readonly startOffset: number;
+}
+
+declare var AbstractRange: {
+ prototype: AbstractRange;
+ new(): AbstractRange;
+ isInstance(obj): obj is AbstractRange;
+};
+
+interface AbstractWorkerEventMap {
+ "error": ErrorEvent;
+}
+
+interface AbstractWorker {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/error_event) */
+ onerror: OnErrorEventHandler;
+ addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+interface AccessibilityRole {
+ role: string | null;
+}
+
+interface AccessibleNode {
+ readonly DOMNode: Node | null;
+ activeDescendant: AccessibleNode | null;
+ atomic: boolean | null;
+ readonly attributes: string[];
+ autocomplete: string | null;
+ busy: boolean | null;
+ checked: string | null;
+ colCount: number | null;
+ colIndex: number | null;
+ colSpan: number | null;
+ readonly computedRole: string;
+ current: string | null;
+ details: AccessibleNode | null;
+ disabled: boolean | null;
+ errorMessage: AccessibleNode | null;
+ expanded: boolean | null;
+ hasPopUp: string | null;
+ hidden: boolean | null;
+ invalid: string | null;
+ keyShortcuts: string | null;
+ label: string | null;
+ level: number | null;
+ live: string | null;
+ modal: boolean | null;
+ multiline: boolean | null;
+ multiselectable: boolean | null;
+ orientation: string | null;
+ placeholder: string | null;
+ posInSet: number | null;
+ pressed: string | null;
+ readOnly: boolean | null;
+ relevant: string | null;
+ required: boolean | null;
+ role: string | null;
+ roleDescription: string | null;
+ rowCount: number | null;
+ rowIndex: number | null;
+ rowSpan: number | null;
+ selected: boolean | null;
+ setSize: number | null;
+ sort: string | null;
+ readonly states: string[];
+ valueMax: number | null;
+ valueMin: number | null;
+ valueNow: number | null;
+ valueText: string | null;
+ get(attribute: string): any;
+ has(...attributes: string[]): boolean;
+ is(...states: string[]): boolean;
+}
+
+declare var AccessibleNode: {
+ prototype: AccessibleNode;
+ new(): AccessibleNode;
+ isInstance(obj): obj is AccessibleNode;
+};
+
+interface Addon {
+ readonly canUninstall: boolean;
+ readonly description: string;
+ readonly id: string;
+ readonly isActive: boolean;
+ readonly isEnabled: boolean;
+ readonly name: string;
+ readonly type: string;
+ readonly version: string;
+ setEnabled(value: boolean): Promise<void>;
+ uninstall(): Promise<boolean>;
+}
+
+declare var Addon: {
+ prototype: Addon;
+ new(): Addon;
+ isInstance(obj): obj is Addon;
+};
+
+interface AddonEvent extends Event {
+ readonly id: string;
+}
+
+declare var AddonEvent: {
+ prototype: AddonEvent;
+ new(type: string, eventInitDict: AddonEventInit): AddonEvent;
+ isInstance(obj): obj is AddonEvent;
+};
+
+interface AddonInstall extends EventTarget {
+ "error": ErrorEvent;
+ readonly maxProgress: number;
+ readonly progress: number;
+ readonly state: string;
+ cancel(): Promise<void>;
+ install(): Promise<void>;
+}
+
+declare var AddonInstall: {
+ prototype: AddonInstall;
+ new(): AddonInstall;
+ isInstance(obj): obj is AddonInstall;
+};
+
+interface AddonManager extends EventTarget {
+ readonly abuseReportPanelEnabled: boolean;
+ createInstall(options?: addonInstallOptions): Promise<AddonInstall>;
+ getAddonByID(id: string): Promise<Addon>;
+ reportAbuse(id: string): Promise<boolean>;
+}
+
+declare var AddonManager: {
+ prototype: AddonManager;
+ new(): AddonManager;
+ isInstance(obj): obj is AddonManager;
+};
+
+/**
+ * A node able to provide real-time frequency and time-domain analysis information. It is an AudioNode that passes the audio stream unchanged from the input to the output, but allows you to take the generated data, process it, and create audio visualizations.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode)
+ */
+interface AnalyserNode extends AudioNode, AudioNodePassThrough {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/fftSize) */
+ fftSize: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/frequencyBinCount) */
+ readonly frequencyBinCount: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/maxDecibels) */
+ maxDecibels: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/minDecibels) */
+ minDecibels: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/smoothingTimeConstant) */
+ smoothingTimeConstant: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getByteFrequencyData) */
+ getByteFrequencyData(array: Uint8Array): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getByteTimeDomainData) */
+ getByteTimeDomainData(array: Uint8Array): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getFloatFrequencyData) */
+ getFloatFrequencyData(array: Float32Array): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getFloatTimeDomainData) */
+ getFloatTimeDomainData(array: Float32Array): void;
+}
+
+declare var AnalyserNode: {
+ prototype: AnalyserNode;
+ new(context: BaseAudioContext, options?: AnalyserOptions): AnalyserNode;
+ isInstance(obj): obj is AnalyserNode;
+};
+
+interface Animatable {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animate) */
+ animate(keyframes: any, options?: UnrestrictedDoubleOrKeyframeAnimationOptions): Animation;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAnimations) */
+ getAnimations(options?: GetAnimationsOptions): Animation[];
+}
+
+interface AnimationEventMap {
+ "cancel": Event;
+ "finish": Event;
+ "remove": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation) */
+interface Animation extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/currentTime) */
+ currentTime: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/effect) */
+ effect: AnimationEffect | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finished) */
+ readonly finished: Promise<Animation>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/id) */
+ id: string;
+ readonly isRunningOnCompositor: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/cancel_event) */
+ oncancel: ((this: Animation, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finish_event) */
+ onfinish: ((this: Animation, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/remove_event) */
+ onremove: ((this: Animation, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/pending) */
+ readonly pending: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/playState) */
+ readonly playState: AnimationPlayState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/playbackRate) */
+ playbackRate: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/ready) */
+ readonly ready: Promise<Animation>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/replaceState) */
+ readonly replaceState: AnimationReplaceState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/startTime) */
+ startTime: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/timeline) */
+ timeline: AnimationTimeline | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/cancel) */
+ cancel(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/commitStyles) */
+ commitStyles(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finish) */
+ finish(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/pause) */
+ pause(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/persist) */
+ persist(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/play) */
+ play(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/reverse) */
+ reverse(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/updatePlaybackRate) */
+ updatePlaybackRate(playbackRate: number): void;
+ addEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var Animation: {
+ prototype: Animation;
+ new(effect?: AnimationEffect | null, timeline?: AnimationTimeline | null): Animation;
+ isInstance(obj): obj is Animation;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect) */
+interface AnimationEffect {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/getComputedTiming) */
+ getComputedTiming(): ComputedEffectTiming;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/getTiming) */
+ getTiming(): EffectTiming;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/updateTiming) */
+ updateTiming(timing?: OptionalEffectTiming): void;
+}
+
+declare var AnimationEffect: {
+ prototype: AnimationEffect;
+ new(): AnimationEffect;
+ isInstance(obj): obj is AnimationEffect;
+};
+
+/**
+ * Events providing information related to animations.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent)
+ */
+interface AnimationEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/animationName) */
+ readonly animationName: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/elapsedTime) */
+ readonly elapsedTime: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/pseudoElement) */
+ readonly pseudoElement: string;
+}
+
+declare var AnimationEvent: {
+ prototype: AnimationEvent;
+ new(type: string, eventInitDict?: AnimationEventInit): AnimationEvent;
+ isInstance(obj): obj is AnimationEvent;
+};
+
+interface AnimationFrameProvider {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/cancelAnimationFrame) */
+ cancelAnimationFrame(handle: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/requestAnimationFrame) */
+ requestAnimationFrame(callback: FrameRequestCallback): number;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent) */
+interface AnimationPlaybackEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent/currentTime) */
+ readonly currentTime: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent/timelineTime) */
+ readonly timelineTime: number | null;
+}
+
+declare var AnimationPlaybackEvent: {
+ prototype: AnimationPlaybackEvent;
+ new(type: string, eventInitDict?: AnimationPlaybackEventInit): AnimationPlaybackEvent;
+ isInstance(obj): obj is AnimationPlaybackEvent;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationTimeline) */
+interface AnimationTimeline {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationTimeline/currentTime) */
+ readonly currentTime: number | null;
+}
+
+declare var AnimationTimeline: {
+ prototype: AnimationTimeline;
+ new(): AnimationTimeline;
+ isInstance(obj): obj is AnimationTimeline;
+};
+
+interface AnonymousContent {
+ readonly root: ShadowRoot;
+}
+
+declare var AnonymousContent: {
+ prototype: AnonymousContent;
+ new(): AnonymousContent;
+ isInstance(obj): obj is AnonymousContent;
+};
+
+interface AriaAttributes {
+ ariaAtomic: string | null;
+ ariaAutoComplete: string | null;
+ ariaBusy: string | null;
+ ariaChecked: string | null;
+ ariaColCount: string | null;
+ ariaColIndex: string | null;
+ ariaColIndexText: string | null;
+ ariaColSpan: string | null;
+ ariaCurrent: string | null;
+ ariaDescription: string | null;
+ ariaDisabled: string | null;
+ ariaExpanded: string | null;
+ ariaHasPopup: string | null;
+ ariaHidden: string | null;
+ ariaInvalid: string | null;
+ ariaKeyShortcuts: string | null;
+ ariaLabel: string | null;
+ ariaLevel: string | null;
+ ariaLive: string | null;
+ ariaModal: string | null;
+ ariaMultiLine: string | null;
+ ariaMultiSelectable: string | null;
+ ariaOrientation: string | null;
+ ariaPlaceholder: string | null;
+ ariaPosInSet: string | null;
+ ariaPressed: string | null;
+ ariaReadOnly: string | null;
+ ariaRelevant: string | null;
+ ariaRequired: string | null;
+ ariaRoleDescription: string | null;
+ ariaRowCount: string | null;
+ ariaRowIndex: string | null;
+ ariaRowIndexText: string | null;
+ ariaRowSpan: string | null;
+ ariaSelected: string | null;
+ ariaSetSize: string | null;
+ ariaSort: string | null;
+ ariaValueMax: string | null;
+ ariaValueMin: string | null;
+ ariaValueNow: string | null;
+ ariaValueText: string | null;
+}
+
+/**
+ * A DOM element's attribute as an object. In most DOM methods, you will probably directly retrieve the attribute as a string (e.g., Element.getAttribute(), but certain functions (e.g., Element.getAttributeNode()) or means of iterating give Attr types.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr)
+ */
+interface Attr extends Node {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/localName) */
+ readonly localName: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/name) */
+ readonly name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/namespaceURI) */
+ readonly namespaceURI: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/ownerElement) */
+ readonly ownerElement: Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/prefix) */
+ readonly prefix: string | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/specified)
+ */
+ readonly specified: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/value) */
+ value: string;
+}
+
+declare var Attr: {
+ prototype: Attr;
+ new(): Attr;
+ isInstance(obj): obj is Attr;
+};
+
+/**
+ * A short audio asset residing in memory, created from an audio file using the AudioContext.decodeAudioData() method, or from raw data using AudioContext.createBuffer(). Once put into an AudioBuffer, the audio can then be played by being passed into an AudioBufferSourceNode.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer)
+ */
+interface AudioBuffer {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/duration) */
+ readonly duration: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/numberOfChannels) */
+ readonly numberOfChannels: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/sampleRate) */
+ readonly sampleRate: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/copyFromChannel) */
+ copyFromChannel(destination: Float32Array, channelNumber: number, startInChannel?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/copyToChannel) */
+ copyToChannel(source: Float32Array, channelNumber: number, startInChannel?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/getChannelData) */
+ getChannelData(channel: number): Float32Array;
+}
+
+declare var AudioBuffer: {
+ prototype: AudioBuffer;
+ new(options: AudioBufferOptions): AudioBuffer;
+ isInstance(obj): obj is AudioBuffer;
+};
+
+/**
+ * An AudioScheduledSourceNode which represents an audio source consisting of in-memory audio data, stored in an AudioBuffer. It's especially useful for playing back audio which has particularly stringent timing accuracy requirements, such as for sounds that must match a specific rhythm and can be kept in memory rather than being played from disk or the network.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode)
+ */
+interface AudioBufferSourceNode extends AudioScheduledSourceNode, AudioNodePassThrough {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/buffer) */
+ buffer: AudioBuffer | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/detune) */
+ readonly detune: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loop) */
+ loop: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loopEnd) */
+ loopEnd: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loopStart) */
+ loopStart: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/playbackRate) */
+ readonly playbackRate: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/start) */
+ start(when?: number, grainOffset?: number, grainDuration?: number): void;
+ addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var AudioBufferSourceNode: {
+ prototype: AudioBufferSourceNode;
+ new(context: BaseAudioContext, options?: AudioBufferSourceOptions): AudioBufferSourceNode;
+ isInstance(obj): obj is AudioBufferSourceNode;
+};
+
+/**
+ * An audio-processing graph built from audio modules linked together, each represented by an AudioNode.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext)
+ */
+interface AudioContext extends BaseAudioContext {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/baseLatency) */
+ readonly baseLatency: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/outputLatency) */
+ readonly outputLatency: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/close) */
+ close(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaElementSource) */
+ createMediaElementSource(mediaElement: HTMLMediaElement): MediaElementAudioSourceNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamDestination) */
+ createMediaStreamDestination(): MediaStreamAudioDestinationNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamSource) */
+ createMediaStreamSource(mediaStream: MediaStream): MediaStreamAudioSourceNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamTrackSource) */
+ createMediaStreamTrackSource(mediaStreamTrack: MediaStreamTrack): MediaStreamTrackAudioSourceNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/getOutputTimestamp) */
+ getOutputTimestamp(): AudioTimestamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/suspend) */
+ suspend(): Promise<void>;
+ addEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var AudioContext: {
+ prototype: AudioContext;
+ new(contextOptions?: AudioContextOptions): AudioContext;
+ isInstance(obj): obj is AudioContext;
+};
+
+/**
+ * AudioDestinationNode has no output (as it is the output, no more AudioNode can be linked after it in the audio graph) and one input. The number of channels in the input must be between 0 and the maxChannelCount value or an exception is raised.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDestinationNode)
+ */
+interface AudioDestinationNode extends AudioNode {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDestinationNode/maxChannelCount) */
+ readonly maxChannelCount: number;
+}
+
+declare var AudioDestinationNode: {
+ prototype: AudioDestinationNode;
+ new(): AudioDestinationNode;
+ isInstance(obj): obj is AudioDestinationNode;
+};
+
+/**
+ * The position and orientation of the unique person listening to the audio scene, and is used in audio spatialization. All PannerNodes spatialize in relation to the AudioListener stored in the BaseAudioContext.listener attribute.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener)
+ */
+interface AudioListener {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/setOrientation)
+ */
+ setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/setPosition)
+ */
+ setPosition(x: number, y: number, z: number): void;
+}
+
+declare var AudioListener: {
+ prototype: AudioListener;
+ new(): AudioListener;
+ isInstance(obj): obj is AudioListener;
+};
+
+/**
+ * A generic interface for representing an audio processing module. Examples include:
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode)
+ */
+interface AudioNode extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelCount) */
+ channelCount: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelCountMode) */
+ channelCountMode: ChannelCountMode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelInterpretation) */
+ channelInterpretation: ChannelInterpretation;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/context) */
+ readonly context: BaseAudioContext;
+ readonly id: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/numberOfInputs) */
+ readonly numberOfInputs: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/numberOfOutputs) */
+ readonly numberOfOutputs: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/connect) */
+ connect(destination: AudioNode, output?: number, input?: number): AudioNode;
+ connect(destination: AudioParam, output?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/disconnect) */
+ disconnect(): void;
+ disconnect(output: number): void;
+ disconnect(destination: AudioNode): void;
+ disconnect(destination: AudioNode, output: number): void;
+ disconnect(destination: AudioNode, output: number, input: number): void;
+ disconnect(destination: AudioParam): void;
+ disconnect(destination: AudioParam, output: number): void;
+}
+
+declare var AudioNode: {
+ prototype: AudioNode;
+ new(): AudioNode;
+ isInstance(obj): obj is AudioNode;
+};
+
+interface AudioNodePassThrough {
+ passThrough: boolean;
+}
+
+/**
+ * The Web Audio API's AudioParam interface represents an audio-related parameter, usually a parameter of an AudioNode (such as GainNode.gain).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam)
+ */
+interface AudioParam {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/defaultValue) */
+ readonly defaultValue: number;
+ readonly isTrackSuspended: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/maxValue) */
+ readonly maxValue: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/minValue) */
+ readonly minValue: number;
+ readonly name: string;
+ readonly parentNodeId: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/value) */
+ value: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/cancelScheduledValues) */
+ cancelScheduledValues(startTime: number): AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/exponentialRampToValueAtTime) */
+ exponentialRampToValueAtTime(value: number, endTime: number): AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/linearRampToValueAtTime) */
+ linearRampToValueAtTime(value: number, endTime: number): AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setTargetAtTime) */
+ setTargetAtTime(target: number, startTime: number, timeConstant: number): AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setValueAtTime) */
+ setValueAtTime(value: number, startTime: number): AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setValueCurveAtTime) */
+ setValueCurveAtTime(values: number[] | Float32Array, startTime: number, duration: number): AudioParam;
+}
+
+declare var AudioParam: {
+ prototype: AudioParam;
+ new(): AudioParam;
+ isInstance(obj): obj is AudioParam;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParamMap)
+ */
+interface AudioParamMap {
+ forEach(callbackfn: (value: AudioParam, key: string, parent: AudioParamMap) => void, thisArg?: any): void;
+}
+
+declare var AudioParamMap: {
+ prototype: AudioParamMap;
+ new(): AudioParamMap;
+ isInstance(obj): obj is AudioParamMap;
+};
+
+/**
+ * The Web Audio API events that occur when a ScriptProcessorNode input buffer is ready to be processed.
+ * @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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent)
+ */
+interface AudioProcessingEvent extends Event {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/inputBuffer)
+ */
+ readonly inputBuffer: AudioBuffer;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/outputBuffer)
+ */
+ readonly outputBuffer: AudioBuffer;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/playbackTime)
+ */
+ readonly playbackTime: number;
+}
+
+/** @deprecated */
+declare var AudioProcessingEvent: {
+ prototype: AudioProcessingEvent;
+ new(): AudioProcessingEvent;
+ isInstance(obj): obj is AudioProcessingEvent;
+};
+
+interface AudioScheduledSourceNodeEventMap {
+ "ended": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode) */
+interface AudioScheduledSourceNode extends AudioNode {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/ended_event) */
+ onended: ((this: AudioScheduledSourceNode, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/start) */
+ start(when?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/stop) */
+ stop(when?: number): void;
+ addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var AudioScheduledSourceNode: {
+ prototype: AudioScheduledSourceNode;
+ new(): AudioScheduledSourceNode;
+ isInstance(obj): obj is AudioScheduledSourceNode;
+};
+
+/**
+ * A single audio track from one of the HTML media elements, <audio> or <video>.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioTrack)
+ */
+interface AudioTrack {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioTrack/enabled) */
+ enabled: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioTrack/id) */
+ readonly id: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioTrack/kind) */
+ readonly kind: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioTrack/label) */
+ readonly label: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioTrack/language) */
+ readonly language: string;
+}
+
+declare var AudioTrack: {
+ prototype: AudioTrack;
+ new(): AudioTrack;
+ isInstance(obj): obj is AudioTrack;
+};
+
+interface AudioTrackListEventMap {
+ "addtrack": Event;
+ "change": Event;
+ "removetrack": Event;
+}
+
+/**
+ * Used to represent a list of the audio tracks contained within a given HTML media element, with each track represented by a separate AudioTrack object in the list.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioTrackList)
+ */
+interface AudioTrackList extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioTrackList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioTrackList/addtrack_event) */
+ onaddtrack: ((this: AudioTrackList, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioTrackList/change_event) */
+ onchange: ((this: AudioTrackList, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioTrackList/removetrack_event) */
+ onremovetrack: ((this: AudioTrackList, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioTrackList/getTrackById) */
+ getTrackById(id: string): AudioTrack | null;
+ 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;
+ isInstance(obj): obj is AudioTrackList;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorklet)
+ */
+interface AudioWorklet extends Worklet {
+}
+
+declare var AudioWorklet: {
+ prototype: AudioWorklet;
+ new(): AudioWorklet;
+ isInstance(obj): obj is AudioWorklet;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletGlobalScope) */
+interface AudioWorkletGlobalScope extends WorkletGlobalScope {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletGlobalScope/currentFrame) */
+ readonly currentFrame: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletGlobalScope/currentTime) */
+ readonly currentTime: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletGlobalScope/sampleRate) */
+ readonly sampleRate: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletGlobalScope/registerProcessor) */
+ registerProcessor(name: string, processorCtor: AudioWorkletProcessorConstructor): void;
+}
+
+declare var AudioWorkletGlobalScope: {
+ prototype: AudioWorkletGlobalScope;
+ new(): AudioWorkletGlobalScope;
+ isInstance(obj): obj is AudioWorkletGlobalScope;
+};
+
+interface AudioWorkletNodeEventMap {
+ "processorerror": Event;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode)
+ */
+interface AudioWorkletNode extends AudioNode {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/processorerror_event) */
+ onprocessorerror: ((this: AudioWorkletNode, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/parameters) */
+ readonly parameters: AudioParamMap;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/port) */
+ readonly port: MessagePort;
+ addEventListener<K extends keyof AudioWorkletNodeEventMap>(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof AudioWorkletNodeEventMap>(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var AudioWorkletNode: {
+ prototype: AudioWorkletNode;
+ new(context: BaseAudioContext, name: string, options?: AudioWorkletNodeOptions): AudioWorkletNode;
+ isInstance(obj): obj is AudioWorkletNode;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletProcessor) */
+interface AudioWorkletProcessor {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletProcessor/port) */
+ readonly port: MessagePort;
+}
+
+declare var AudioWorkletProcessor: {
+ prototype: AudioWorkletProcessor;
+ new(): AudioWorkletProcessor;
+ isInstance(obj): obj is AudioWorkletProcessor;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse)
+ */
+interface AuthenticatorAssertionResponse extends AuthenticatorResponse {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/authenticatorData) */
+ readonly authenticatorData: ArrayBuffer;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/signature) */
+ readonly signature: ArrayBuffer;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/userHandle) */
+ readonly userHandle: ArrayBuffer | null;
+}
+
+declare var AuthenticatorAssertionResponse: {
+ prototype: AuthenticatorAssertionResponse;
+ new(): AuthenticatorAssertionResponse;
+ isInstance(obj): obj is AuthenticatorAssertionResponse;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse)
+ */
+interface AuthenticatorAttestationResponse extends AuthenticatorResponse {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/attestationObject) */
+ readonly attestationObject: ArrayBuffer;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getAuthenticatorData) */
+ getAuthenticatorData(): ArrayBuffer;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getPublicKey) */
+ getPublicKey(): ArrayBuffer | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getPublicKeyAlgorithm) */
+ getPublicKeyAlgorithm(): COSEAlgorithmIdentifier;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getTransports) */
+ getTransports(): string[];
+}
+
+declare var AuthenticatorAttestationResponse: {
+ prototype: AuthenticatorAttestationResponse;
+ new(): AuthenticatorAttestationResponse;
+ isInstance(obj): obj is AuthenticatorAttestationResponse;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorResponse)
+ */
+interface AuthenticatorResponse {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorResponse/clientDataJSON) */
+ readonly clientDataJSON: ArrayBuffer;
+}
+
+declare var AuthenticatorResponse: {
+ prototype: AuthenticatorResponse;
+ new(): AuthenticatorResponse;
+ isInstance(obj): obj is AuthenticatorResponse;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BarProp) */
+interface BarProp {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BarProp/visible) */
+ visible: boolean;
+}
+
+declare var BarProp: {
+ prototype: BarProp;
+ new(): BarProp;
+ isInstance(obj): obj is BarProp;
+};
+
+interface BaseAudioContextEventMap {
+ "statechange": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext) */
+interface BaseAudioContext extends EventTarget {
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/audioWorklet)
+ */
+ readonly audioWorklet: AudioWorklet;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/currentTime) */
+ readonly currentTime: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/destination) */
+ readonly destination: AudioDestinationNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/listener) */
+ readonly listener: AudioListener;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/statechange_event) */
+ onstatechange: ((this: BaseAudioContext, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/sampleRate) */
+ readonly sampleRate: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/state) */
+ readonly state: AudioContextState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createAnalyser) */
+ createAnalyser(): AnalyserNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBiquadFilter) */
+ createBiquadFilter(): BiquadFilterNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBuffer) */
+ createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBufferSource) */
+ createBufferSource(): AudioBufferSourceNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createChannelMerger) */
+ createChannelMerger(numberOfInputs?: number): ChannelMergerNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createChannelSplitter) */
+ createChannelSplitter(numberOfOutputs?: number): ChannelSplitterNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createConstantSource) */
+ createConstantSource(): ConstantSourceNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createConvolver) */
+ createConvolver(): ConvolverNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createDelay) */
+ createDelay(maxDelayTime?: number): DelayNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createDynamicsCompressor) */
+ createDynamicsCompressor(): DynamicsCompressorNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createGain) */
+ createGain(): GainNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createIIRFilter) */
+ createIIRFilter(feedforward: number[], feedback: number[]): IIRFilterNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createOscillator) */
+ createOscillator(): OscillatorNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPanner) */
+ createPanner(): PannerNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPeriodicWave) */
+ createPeriodicWave(real: number[] | Float32Array, imag: number[] | Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createScriptProcessor)
+ */
+ createScriptProcessor(bufferSize?: number, numberOfInputChannels?: number, numberOfOutputChannels?: number): ScriptProcessorNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createStereoPanner) */
+ createStereoPanner(): StereoPannerNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createWaveShaper) */
+ createWaveShaper(): WaveShaperNode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/decodeAudioData) */
+ decodeAudioData(audioData: ArrayBuffer, successCallback?: DecodeSuccessCallback, errorCallback?: DecodeErrorCallback): Promise<AudioBuffer>;
+ resume(): Promise<void>;
+ addEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof BaseAudioContextEventMap>(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var BaseAudioContext: {
+ prototype: BaseAudioContext;
+ new(): BaseAudioContext;
+ isInstance(obj): obj is BaseAudioContext;
+};
+
+interface BatteryManagerEventMap {
+ "chargingchange": Event;
+ "chargingtimechange": Event;
+ "dischargingtimechange": Event;
+ "levelchange": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BatteryManager) */
+interface BatteryManager extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BatteryManager/charging) */
+ readonly charging: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BatteryManager/chargingTime) */
+ readonly chargingTime: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BatteryManager/dischargingTime) */
+ readonly dischargingTime: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BatteryManager/level) */
+ readonly level: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BatteryManager/chargingchange_event) */
+ onchargingchange: ((this: BatteryManager, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BatteryManager/chargingtimechange_event) */
+ onchargingtimechange: ((this: BatteryManager, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BatteryManager/dischargingtimechange_event) */
+ ondischargingtimechange: ((this: BatteryManager, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BatteryManager/levelchange_event) */
+ onlevelchange: ((this: BatteryManager, ev: Event) => any) | null;
+ addEventListener<K extends keyof BatteryManagerEventMap>(type: K, listener: (this: BatteryManager, ev: BatteryManagerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof BatteryManagerEventMap>(type: K, listener: (this: BatteryManager, ev: BatteryManagerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var BatteryManager: {
+ prototype: BatteryManager;
+ new(): BatteryManager;
+ isInstance(obj): obj is BatteryManager;
+};
+
+/**
+ * The beforeunload event is fired when the window, the document and its resources are about to be unloaded.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BeforeUnloadEvent)
+ */
+interface BeforeUnloadEvent extends Event {
+ /** @deprecated */
+ returnValue: boolean;
+}
+
+declare var BeforeUnloadEvent: {
+ prototype: BeforeUnloadEvent;
+ new(): BeforeUnloadEvent;
+ isInstance(obj): obj is BeforeUnloadEvent;
+};
+
+/**
+ * A simple low-order filter, and is created using the AudioContext.createBiquadFilter() method. It is an AudioNode that can represent different kinds of filters, tone control devices, and graphic equalizers.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode)
+ */
+interface BiquadFilterNode extends AudioNode, AudioNodePassThrough {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/Q) */
+ readonly Q: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/detune) */
+ readonly detune: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/frequency) */
+ readonly frequency: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/gain) */
+ readonly gain: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/type) */
+ type: BiquadFilterType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/getFrequencyResponse) */
+ getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void;
+}
+
+declare var BiquadFilterNode: {
+ prototype: BiquadFilterNode;
+ new(context: BaseAudioContext, options?: BiquadFilterOptions): BiquadFilterNode;
+ isInstance(obj): obj is BiquadFilterNode;
+};
+
+/**
+ * A file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user's system.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob)
+ */
+interface Blob {
+ readonly blobImplType: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/size) */
+ readonly size: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/type) */
+ readonly type: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/arrayBuffer) */
+ arrayBuffer(): Promise<ArrayBuffer>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/slice) */
+ slice(start?: number, end?: number, contentType?: string): Blob;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/stream) */
+ stream(): ReadableStream;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/text) */
+ text(): Promise<string>;
+}
+
+declare var Blob: {
+ prototype: Blob;
+ new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
+ isInstance(obj): obj is Blob;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BlobEvent) */
+interface BlobEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BlobEvent/data) */
+ readonly data: Blob;
+}
+
+declare var BlobEvent: {
+ prototype: BlobEvent;
+ new(type: string, eventInitDict: BlobEventInit): BlobEvent;
+ isInstance(obj): obj is BlobEvent;
+};
+
+interface Body {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */
+ readonly bodyUsed: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */
+ arrayBuffer(): Promise<ArrayBuffer>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */
+ blob(): Promise<Blob>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/formData) */
+ formData(): Promise<FormData>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/json) */
+ json(): Promise<JSON>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/text) */
+ text(): Promise<string>;
+}
+
+interface BroadcastChannelEventMap {
+ "message": Event;
+ "messageerror": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel) */
+interface BroadcastChannel extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/name) */
+ readonly name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/message_event) */
+ onmessage: ((this: BroadcastChannel, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/messageerror_event) */
+ onmessageerror: ((this: BroadcastChannel, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/close) */
+ close(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/postMessage) */
+ postMessage(message: any): void;
+ addEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof BroadcastChannelEventMap>(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var BroadcastChannel: {
+ prototype: BroadcastChannel;
+ new(channel: string): BroadcastChannel;
+ isInstance(obj): obj is BroadcastChannel;
+};
+
+interface BrowsingContext extends LoadContextMixin {
+ allowJavascript: boolean;
+ readonly ancestorsAreCurrent: boolean;
+ authorStyleDisabledDefault: boolean;
+ browserId: number;
+ readonly childOffset: number;
+ readonly childSessionHistory: ChildSHistory | null;
+ readonly children: BrowsingContext[];
+ readonly createdDynamically: boolean;
+ readonly currentWindowContext: WindowContext | null;
+ customPlatform: string;
+ customUserAgent: string;
+ defaultLoadFlags: number;
+ displayMode: DisplayMode;
+ readonly docShell: nsIDocShell | null;
+ readonly embedderElement: XULFrameElement | null;
+ readonly embedderElementType: string;
+ forceDesktopViewport: boolean;
+ forceOffline: boolean;
+ fullZoom: number;
+ readonly group: BrowsingContextGroup;
+ hasSiblings: boolean;
+ readonly historyID: any;
+ readonly id: number;
+ inRDMPane: boolean;
+ isActive: boolean;
+ isAppTab: boolean;
+ readonly isDiscarded: boolean;
+ readonly isInBFCache: boolean;
+ mediumOverride: string;
+ readonly name: string;
+ readonly opener: BrowsingContext | null;
+ overrideDPPX: number;
+ readonly parent: BrowsingContext | null;
+ readonly parentWindowContext: WindowContext | null;
+ prefersColorSchemeOverride: PrefersColorSchemeOverride;
+ sandboxFlags: number;
+ serviceWorkersTestingEnabled: boolean;
+ suspendMediaWhenInactive: boolean;
+ readonly targetTopLevelLinkClicksToBlank: boolean;
+ textZoom: number;
+ readonly top: BrowsingContext;
+ readonly topWindowContext: WindowContext | null;
+ readonly touchEventsOverride: TouchEventsOverride;
+ useGlobalHistory: boolean;
+ watchedByDevTools: boolean;
+ readonly window: WindowProxy | null;
+ getAllBrowsingContextsInSubtree(): BrowsingContext[];
+ resetLocationChangeRateLimit(): void;
+ setRDMPaneMaxTouchPoints(maxTouchPoints: number): void;
+ setRDMPaneOrientation(type: OrientationType, rotationAngle: number): void;
+}
+
+declare var BrowsingContext: {
+ prototype: BrowsingContext;
+ new(): BrowsingContext;
+ get(aId: number): CanonicalBrowsingContext | null;
+ getCurrentTopByBrowserId(aId: number): BrowsingContext | null;
+ getFromWindow(window: WindowProxy): BrowsingContext | null;
+ isInstance(obj): obj is BrowsingContext;
+};
+
+interface BrowsingContextGroup {
+ readonly id: number;
+ getToplevels(): BrowsingContext[];
+}
+
+declare var BrowsingContextGroup: {
+ prototype: BrowsingContextGroup;
+ new(): BrowsingContextGroup;
+ isInstance(obj): obj is BrowsingContextGroup;
+};
+
+/**
+ * This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy)
+ */
+interface ByteLengthQueuingStrategy {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/highWaterMark) */
+ readonly highWaterMark: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/size) */
+ readonly size: Function;
+}
+
+declare var ByteLengthQueuingStrategy: {
+ prototype: ByteLengthQueuingStrategy;
+ new(init: QueuingStrategyInit): ByteLengthQueuingStrategy;
+ isInstance(obj): obj is ByteLengthQueuingStrategy;
+};
+
+/**
+ * A CDATA section that can be used within XML to include extended portions of unescaped text. The symbols < and & don’t need escaping as they normally do when inside a CDATA section.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CDATASection)
+ */
+interface CDATASection extends Text {
+}
+
+declare var CDATASection: {
+ prototype: CDATASection;
+ new(): CDATASection;
+ isInstance(obj): obj is CDATASection;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSAnimation) */
+interface CSSAnimation extends Animation {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSAnimation/animationName) */
+ readonly animationName: string;
+ addEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSAnimation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSAnimation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var CSSAnimation: {
+ prototype: CSSAnimation;
+ new(): CSSAnimation;
+ isInstance(obj): obj is CSSAnimation;
+};
+
+/**
+ * A single condition CSS at-rule, which consists of a condition and a statement block. It is a child of CSSGroupingRule.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSConditionRule)
+ */
+interface CSSConditionRule extends CSSGroupingRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSConditionRule/conditionText) */
+ readonly conditionText: UTF8String;
+}
+
+declare var CSSConditionRule: {
+ prototype: CSSConditionRule;
+ new(): CSSConditionRule;
+ isInstance(obj): obj is CSSConditionRule;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule) */
+interface CSSContainerRule extends CSSConditionRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule/containerName) */
+ readonly containerName: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule/containerQuery) */
+ readonly containerQuery: UTF8String;
+ queryContainerFor(element: Element): Element | null;
+}
+
+declare var CSSContainerRule: {
+ prototype: CSSContainerRule;
+ new(): CSSContainerRule;
+ isInstance(obj): obj is CSSContainerRule;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule) */
+interface CSSCounterStyleRule extends CSSRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/additiveSymbols) */
+ additiveSymbols: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/fallback) */
+ fallback: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/name) */
+ name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/negative) */
+ negative: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/pad) */
+ pad: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/prefix) */
+ prefix: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/range) */
+ range: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/speakAs) */
+ speakAs: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/suffix) */
+ suffix: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/symbols) */
+ symbols: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/system) */
+ system: UTF8String;
+}
+
+declare var CSSCounterStyleRule: {
+ prototype: CSSCounterStyleRule;
+ new(): CSSCounterStyleRule;
+ isInstance(obj): obj is CSSCounterStyleRule;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFaceRule) */
+interface CSSFontFaceRule extends CSSRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFaceRule/style) */
+ readonly style: CSSStyleDeclaration;
+}
+
+declare var CSSFontFaceRule: {
+ prototype: CSSFontFaceRule;
+ new(): CSSFontFaceRule;
+ isInstance(obj): obj is CSSFontFaceRule;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFeatureValuesRule) */
+interface CSSFontFeatureValuesRule extends CSSRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFeatureValuesRule/fontFamily) */
+ fontFamily: UTF8String;
+ valueText: UTF8String;
+}
+
+declare var CSSFontFeatureValuesRule: {
+ prototype: CSSFontFeatureValuesRule;
+ new(): CSSFontFeatureValuesRule;
+ isInstance(obj): obj is CSSFontFeatureValuesRule;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule) */
+interface CSSFontPaletteValuesRule extends CSSRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/basePalette) */
+ readonly basePalette: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/fontFamily) */
+ readonly fontFamily: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/name) */
+ readonly name: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/overrideColors) */
+ readonly overrideColors: UTF8String;
+}
+
+declare var CSSFontPaletteValuesRule: {
+ prototype: CSSFontPaletteValuesRule;
+ new(): CSSFontPaletteValuesRule;
+ isInstance(obj): obj is CSSFontPaletteValuesRule;
+};
+
+/**
+ * Any CSS at-rule that contains other rules nested within it.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule)
+ */
+interface CSSGroupingRule extends CSSRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/cssRules) */
+ readonly cssRules: CSSRuleList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/deleteRule) */
+ deleteRule(index: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/insertRule) */
+ insertRule(rule: UTF8String, index?: number): number;
+}
+
+declare var CSSGroupingRule: {
+ prototype: CSSGroupingRule;
+ new(): CSSGroupingRule;
+ isInstance(obj): obj is CSSGroupingRule;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule) */
+interface CSSImportRule extends CSSRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/href) */
+ readonly href: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/layerName) */
+ readonly layerName: UTF8String | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/media) */
+ readonly media: MediaList | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/styleSheet) */
+ readonly styleSheet: CSSStyleSheet | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/supportsText) */
+ readonly supportsText: UTF8String | null;
+}
+
+declare var CSSImportRule: {
+ prototype: CSSImportRule;
+ new(): CSSImportRule;
+ isInstance(obj): obj is CSSImportRule;
+};
+
+/**
+ * An object representing a set of style for a given keyframe. It corresponds to the contains of a single keyframe of a @keyframes at-rule. It implements the CSSRule interface with a type value of 8 (CSSRule.KEYFRAME_RULE).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule)
+ */
+interface CSSKeyframeRule extends CSSRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule/keyText) */
+ keyText: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule/style) */
+ readonly style: CSSStyleDeclaration;
+}
+
+declare var CSSKeyframeRule: {
+ prototype: CSSKeyframeRule;
+ new(): CSSKeyframeRule;
+ isInstance(obj): obj is CSSKeyframeRule;
+};
+
+/**
+ * An object representing a complete set of keyframes for a CSS animation. It corresponds to the contains of a whole @keyframes at-rule. It implements the CSSRule interface with a type value of 7 (CSSRule.KEYFRAMES_RULE).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule)
+ */
+interface CSSKeyframesRule extends CSSRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/cssRules) */
+ readonly cssRules: CSSRuleList;
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/name) */
+ name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/appendRule) */
+ appendRule(rule: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/deleteRule) */
+ deleteRule(select: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/findRule) */
+ findRule(select: string): CSSKeyframeRule | null;
+ [index: number]: CSSKeyframeRule;
+}
+
+declare var CSSKeyframesRule: {
+ prototype: CSSKeyframesRule;
+ new(): CSSKeyframesRule;
+ isInstance(obj): obj is CSSKeyframesRule;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerBlockRule) */
+interface CSSLayerBlockRule extends CSSGroupingRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerBlockRule/name) */
+ readonly name: UTF8String;
+}
+
+declare var CSSLayerBlockRule: {
+ prototype: CSSLayerBlockRule;
+ new(): CSSLayerBlockRule;
+ isInstance(obj): obj is CSSLayerBlockRule;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerStatementRule) */
+interface CSSLayerStatementRule extends CSSRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerStatementRule/nameList) */
+ readonly nameList: UTF8String[];
+}
+
+declare var CSSLayerStatementRule: {
+ prototype: CSSLayerStatementRule;
+ new(): CSSLayerStatementRule;
+ isInstance(obj): obj is CSSLayerStatementRule;
+};
+
+/**
+ * A single CSS @media rule. It implements the CSSConditionRule interface, and therefore the CSSGroupingRule and the CSSRule interface with a type value of 4 (CSSRule.MEDIA_RULE).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMediaRule)
+ */
+interface CSSMediaRule extends CSSConditionRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMediaRule/media) */
+ readonly media: MediaList;
+}
+
+declare var CSSMediaRule: {
+ prototype: CSSMediaRule;
+ new(): CSSMediaRule;
+ isInstance(obj): obj is CSSMediaRule;
+};
+
+interface CSSMozDocumentRule extends CSSConditionRule {
+}
+
+declare var CSSMozDocumentRule: {
+ prototype: CSSMozDocumentRule;
+ new(): CSSMozDocumentRule;
+ isInstance(obj): obj is CSSMozDocumentRule;
+};
+
+/**
+ * An object representing a single CSS @namespace at-rule. It implements the CSSRule interface, with a type value of 10 (CSSRule.NAMESPACE_RULE).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule)
+ */
+interface CSSNamespaceRule extends CSSRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule/namespaceURI) */
+ readonly namespaceURI: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule/prefix) */
+ readonly prefix: string;
+}
+
+declare var CSSNamespaceRule: {
+ prototype: CSSNamespaceRule;
+ new(): CSSNamespaceRule;
+ isInstance(obj): obj is CSSNamespaceRule;
+};
+
+/**
+ * CSSPageRule is an interface representing a single CSS @page rule. It implements the CSSRule interface with a type value of 6 (CSSRule.PAGE_RULE).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule)
+ */
+interface CSSPageRule extends CSSRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule/selectorText) */
+ selectorText: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule/style) */
+ readonly style: CSSStyleDeclaration;
+}
+
+declare var CSSPageRule: {
+ prototype: CSSPageRule;
+ new(): CSSPageRule;
+ isInstance(obj): obj is CSSPageRule;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule) */
+interface CSSPropertyRule extends CSSRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/inherits) */
+ readonly inherits: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/initialValue) */
+ readonly initialValue: UTF8String | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/name) */
+ readonly name: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/syntax) */
+ readonly syntax: UTF8String;
+}
+
+declare var CSSPropertyRule: {
+ prototype: CSSPropertyRule;
+ new(): CSSPropertyRule;
+ isInstance(obj): obj is CSSPropertyRule;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPseudoElement) */
+interface CSSPseudoElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPseudoElement/element) */
+ readonly element: Element;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPseudoElement/type) */
+ readonly type: string;
+}
+
+declare var CSSPseudoElement: {
+ prototype: CSSPseudoElement;
+ new(): CSSPseudoElement;
+ isInstance(obj): obj is CSSPseudoElement;
+};
+
+/**
+ * A single CSS rule. There are several types of rules, listed in the Type constants section below.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule)
+ */
+interface CSSRule {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/cssText) */
+ cssText: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/parentRule) */
+ readonly parentRule: CSSRule | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/parentStyleSheet) */
+ readonly parentStyleSheet: CSSStyleSheet | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/type)
+ */
+ readonly type: number;
+ readonly STYLE_RULE: 1;
+ readonly CHARSET_RULE: 2;
+ readonly IMPORT_RULE: 3;
+ readonly MEDIA_RULE: 4;
+ readonly FONT_FACE_RULE: 5;
+ readonly PAGE_RULE: 6;
+ readonly NAMESPACE_RULE: 10;
+ readonly KEYFRAMES_RULE: 7;
+ readonly KEYFRAME_RULE: 8;
+ readonly COUNTER_STYLE_RULE: 11;
+ readonly SUPPORTS_RULE: 12;
+ readonly DOCUMENT_RULE: 13;
+ readonly FONT_FEATURE_VALUES_RULE: 14;
+}
+
+declare var CSSRule: {
+ prototype: CSSRule;
+ new(): CSSRule;
+ readonly STYLE_RULE: 1;
+ readonly CHARSET_RULE: 2;
+ readonly IMPORT_RULE: 3;
+ readonly MEDIA_RULE: 4;
+ readonly FONT_FACE_RULE: 5;
+ readonly PAGE_RULE: 6;
+ readonly NAMESPACE_RULE: 10;
+ readonly KEYFRAMES_RULE: 7;
+ readonly KEYFRAME_RULE: 8;
+ readonly COUNTER_STYLE_RULE: 11;
+ readonly SUPPORTS_RULE: 12;
+ readonly DOCUMENT_RULE: 13;
+ readonly FONT_FEATURE_VALUES_RULE: 14;
+ isInstance(obj): obj is CSSRule;
+};
+
+/**
+ * A CSSRuleList is an (indirect-modify only) array-like object containing an ordered collection of CSSRule objects.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList)
+ */
+interface CSSRuleList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList/item) */
+ item(index: number): CSSRule | null;
+ [index: number]: CSSRule;
+}
+
+declare var CSSRuleList: {
+ prototype: CSSRuleList;
+ new(): CSSRuleList;
+ isInstance(obj): obj is CSSRuleList;
+};
+
+/**
+ * An object that is a CSS declaration block, and exposes style information and various style-related methods and properties.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration)
+ */
+interface CSSStyleDeclaration {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/accent-color) */
+ accentColor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-content) */
+ alignContent: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-items) */
+ alignItems: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-self) */
+ alignSelf: string;
+ alignmentBaseline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/all) */
+ all: string;
+ anchorDefault: string;
+ anchorName: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation) */
+ animation: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-composition) */
+ animationComposition: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-delay) */
+ animationDelay: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-direction) */
+ animationDirection: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-duration) */
+ animationDuration: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode) */
+ animationFillMode: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count) */
+ animationIterationCount: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-name) */
+ animationName: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-play-state) */
+ animationPlayState: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-range) */
+ animationRange: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-range-end) */
+ animationRangeEnd: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-range-start) */
+ animationRangeStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-timeline) */
+ animationTimeline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-timing-function) */
+ animationTimingFunction: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/appearance) */
+ appearance: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/aspect-ratio) */
+ aspectRatio: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backdrop-filter) */
+ backdropFilter: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backface-visibility) */
+ backfaceVisibility: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background) */
+ background: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-attachment) */
+ backgroundAttachment: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-blend-mode) */
+ backgroundBlendMode: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-clip) */
+ backgroundClip: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-color) */
+ backgroundColor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-image) */
+ backgroundImage: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-origin) */
+ backgroundOrigin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position) */
+ backgroundPosition: string;
+ backgroundPositionBlock: string;
+ backgroundPositionInline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position-x) */
+ backgroundPositionX: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position-y) */
+ backgroundPositionY: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-repeat) */
+ backgroundRepeat: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-size) */
+ backgroundSize: string;
+ backgroundTbd: string;
+ baselineShift: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/baseline-source) */
+ baselineSource: string;
+ blockEllipsis: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/block-size) */
+ blockSize: string;
+ blockStep: string;
+ blockStepAlign: string;
+ blockStepInsert: string;
+ blockStepRound: string;
+ blockStepSize: string;
+ bookmarkLabel: string;
+ bookmarkLevel: string;
+ bookmarkState: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border) */
+ border: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block) */
+ borderBlock: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-color) */
+ borderBlockColor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end) */
+ borderBlockEnd: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-color) */
+ borderBlockEndColor: string;
+ borderBlockEndRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-style) */
+ borderBlockEndStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-width) */
+ borderBlockEndWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start) */
+ borderBlockStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-color) */
+ borderBlockStartColor: string;
+ borderBlockStartRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-style) */
+ borderBlockStartStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-width) */
+ borderBlockStartWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-style) */
+ borderBlockStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-width) */
+ borderBlockWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom) */
+ borderBottom: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-color) */
+ borderBottomColor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius) */
+ borderBottomLeftRadius: string;
+ borderBottomRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius) */
+ borderBottomRightRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-style) */
+ borderBottomStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-width) */
+ borderBottomWidth: string;
+ borderBoundary: string;
+ borderClip: string;
+ borderClipBottom: string;
+ borderClipLeft: string;
+ borderClipRight: string;
+ borderClipTop: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-collapse) */
+ borderCollapse: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-color) */
+ borderColor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-end-end-radius) */
+ borderEndEndRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-end-start-radius) */
+ borderEndStartRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image) */
+ borderImage: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-outset) */
+ borderImageOutset: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-repeat) */
+ borderImageRepeat: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-slice) */
+ borderImageSlice: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-source) */
+ borderImageSource: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-width) */
+ borderImageWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline) */
+ borderInline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-color) */
+ borderInlineColor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end) */
+ borderInlineEnd: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-color) */
+ borderInlineEndColor: string;
+ borderInlineEndRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-style) */
+ borderInlineEndStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-width) */
+ borderInlineEndWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start) */
+ borderInlineStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-color) */
+ borderInlineStartColor: string;
+ borderInlineStartRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-style) */
+ borderInlineStartStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-width) */
+ borderInlineStartWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-style) */
+ borderInlineStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-width) */
+ borderInlineWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left) */
+ borderLeft: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-color) */
+ borderLeftColor: string;
+ borderLeftRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-style) */
+ borderLeftStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-width) */
+ borderLeftWidth: string;
+ borderLimit: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-radius) */
+ borderRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right) */
+ borderRight: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-color) */
+ borderRightColor: string;
+ borderRightRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-style) */
+ borderRightStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-width) */
+ borderRightWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-spacing) */
+ borderSpacing: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-start-end-radius) */
+ borderStartEndRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-start-start-radius) */
+ borderStartStartRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-style) */
+ borderStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top) */
+ borderTop: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-color) */
+ borderTopColor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius) */
+ borderTopLeftRadius: string;
+ borderTopRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius) */
+ borderTopRightRadius: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-style) */
+ borderTopStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-width) */
+ borderTopWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-width) */
+ borderWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/bottom) */
+ bottom: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-decoration-break) */
+ boxDecorationBreak: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-shadow) */
+ boxShadow: string;
+ boxShadowBlur: string;
+ boxShadowColor: string;
+ boxShadowOffset: string;
+ boxShadowPosition: string;
+ boxShadowSpread: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-sizing) */
+ boxSizing: string;
+ boxSnap: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-after) */
+ breakAfter: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-before) */
+ breakBefore: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-inside) */
+ breakInside: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/caption-side) */
+ captionSide: string;
+ caret: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/caret-color) */
+ caretColor: string;
+ caretShape: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clear) */
+ clear: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clip)
+ */
+ clip: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clip-path) */
+ clipPath: string;
+ clipRule: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/color) */
+ color: string;
+ /**
+ * @deprecated This is a legacy alias of `printColorAdjust`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/print-color-adjust)
+ */
+ colorAdjust: string;
+ colorInterpolation: string;
+ colorInterpolationFilters: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/color-scheme) */
+ colorScheme: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-count) */
+ columnCount: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-fill) */
+ columnFill: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-gap) */
+ columnGap: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule) */
+ columnRule: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-color) */
+ columnRuleColor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-style) */
+ columnRuleStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-width) */
+ columnRuleWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-span) */
+ columnSpan: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-width) */
+ columnWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/columns) */
+ columns: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain) */
+ contain: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-contain-intrinsic-block-size) */
+ containIntrinsicBlockSize: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-height) */
+ containIntrinsicHeight: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-contain-intrinsic-inline-size) */
+ containIntrinsicInlineSize: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-size) */
+ containIntrinsicSize: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-width) */
+ containIntrinsicWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container) */
+ container: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container-name) */
+ containerName: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container-type) */
+ containerType: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/content) */
+ content: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/content-visibility) */
+ contentVisibility: string;
+ continue: string;
+ copyInto: string;
+ cornerShape: string;
+ corners: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-increment) */
+ counterIncrement: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-reset) */
+ counterReset: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-set) */
+ counterSet: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/cssText) */
+ cssText: UTF8String;
+ cue: string;
+ cueAfter: string;
+ cueBefore: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/cursor) */
+ cursor: string;
+ cx: string;
+ cy: string;
+ d: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/direction) */
+ direction: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/display) */
+ display: string;
+ dominantBaseline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/empty-cells) */
+ emptyCells: string;
+ fieldSizing: string;
+ fill: string;
+ fillBreak: string;
+ fillColor: string;
+ fillImage: string;
+ fillOpacity: string;
+ fillOrigin: string;
+ fillPosition: string;
+ fillRepeat: string;
+ fillRule: string;
+ fillSize: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/filter) */
+ filter: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex) */
+ flex: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-basis) */
+ flexBasis: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-direction) */
+ flexDirection: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-flow) */
+ flexFlow: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-grow) */
+ flexGrow: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-shrink) */
+ flexShrink: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-wrap) */
+ flexWrap: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/float) */
+ float: string;
+ floatDefer: string;
+ floatOffset: string;
+ floatReference: string;
+ floodColor: string;
+ floodOpacity: string;
+ flowFrom: string;
+ flowInto: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font) */
+ font: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-family) */
+ fontFamily: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-feature-settings) */
+ fontFeatureSettings: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-kerning) */
+ fontKerning: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-language-override) */
+ fontLanguageOverride: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-optical-sizing) */
+ fontOpticalSizing: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-palette) */
+ fontPalette: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-size) */
+ fontSize: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-size-adjust) */
+ fontSizeAdjust: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-stretch) */
+ fontStretch: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-style) */
+ fontStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis) */
+ fontSynthesis: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-position) */
+ fontSynthesisPosition: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-small-caps) */
+ fontSynthesisSmallCaps: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-style) */
+ fontSynthesisStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-weight) */
+ fontSynthesisWeight: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant) */
+ fontVariant: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates) */
+ fontVariantAlternates: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-caps) */
+ fontVariantCaps: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian) */
+ fontVariantEastAsian: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-emoji) */
+ fontVariantEmoji: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures) */
+ fontVariantLigatures: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric) */
+ fontVariantNumeric: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-position) */
+ fontVariantPosition: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variation-settings) */
+ fontVariationSettings: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-weight) */
+ fontWeight: string;
+ footnoteDisplay: string;
+ footnotePolicy: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/forced-color-adjust) */
+ forcedColorAdjust: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/gap) */
+ gap: string;
+ /** @deprecated */
+ glyphOrientationVertical: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid) */
+ grid: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-area) */
+ gridArea: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns) */
+ gridAutoColumns: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow) */
+ gridAutoFlow: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows) */
+ gridAutoRows: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column) */
+ gridColumn: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column-end) */
+ gridColumnEnd: string;
+ /** @deprecated This is a legacy alias of `columnGap`. */
+ gridColumnGap: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column-start) */
+ gridColumnStart: string;
+ /** @deprecated This is a legacy alias of `gap`. */
+ gridGap: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row) */
+ gridRow: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row-end) */
+ gridRowEnd: string;
+ /** @deprecated This is a legacy alias of `rowGap`. */
+ gridRowGap: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row-start) */
+ gridRowStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template) */
+ gridTemplate: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-areas) */
+ gridTemplateAreas: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-columns) */
+ gridTemplateColumns: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-rows) */
+ gridTemplateRows: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/hanging-punctuation) */
+ hangingPunctuation: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/height) */
+ height: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/hyphenate-character) */
+ hyphenateCharacter: string;
+ hyphenateLimitChars: string;
+ hyphenateLimitLast: string;
+ hyphenateLimitLines: string;
+ hyphenateLimitZone: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/hyphens) */
+ hyphens: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/image-orientation) */
+ imageOrientation: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/image-rendering) */
+ imageRendering: string;
+ imageResolution: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/initial-letter) */
+ initialLetter: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/initial-letter-align) */
+ initialLetterAlign: string;
+ initialLetterWrap: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inline-size) */
+ inlineSize: string;
+ inlineSizing: string;
+ inputSecurity: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset) */
+ inset: string;
+ insetArea: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block) */
+ insetBlock: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block-end) */
+ insetBlockEnd: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block-start) */
+ insetBlockStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline) */
+ insetInline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline-end) */
+ insetInlineEnd: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline-start) */
+ insetInlineStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/isolation) */
+ isolation: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-content) */
+ justifyContent: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-items) */
+ justifyItems: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-self) */
+ justifySelf: string;
+ layoutOrder: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/left) */
+ left: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/letter-spacing) */
+ letterSpacing: string;
+ lightingColor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/line-break) */
+ lineBreak: string;
+ lineClamp: string;
+ lineGrid: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/line-height) */
+ lineHeight: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/line-height-step) */
+ lineHeightStep: string;
+ linePadding: string;
+ lineSnap: string;
+ linkParameters: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style) */
+ listStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-image) */
+ listStyleImage: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-position) */
+ listStylePosition: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-type) */
+ listStyleType: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin) */
+ margin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block) */
+ marginBlock: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block-end) */
+ marginBlockEnd: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block-start) */
+ marginBlockStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-bottom) */
+ marginBottom: string;
+ marginBreak: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline) */
+ marginInline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline-end) */
+ marginInlineEnd: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline-start) */
+ marginInlineStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-left) */
+ marginLeft: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-right) */
+ marginRight: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-top) */
+ marginTop: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-trim) */
+ marginTrim: string;
+ marker: string;
+ markerEnd: string;
+ markerMid: string;
+ markerSide: string;
+ markerStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask) */
+ mask: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border) */
+ maskBorder: string;
+ maskBorderMode: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-outset) */
+ maskBorderOutset: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-repeat) */
+ maskBorderRepeat: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-slice) */
+ maskBorderSlice: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-source) */
+ maskBorderSource: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-width) */
+ maskBorderWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-clip) */
+ maskClip: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-composite) */
+ maskComposite: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-image) */
+ maskImage: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-mode) */
+ maskMode: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-origin) */
+ maskOrigin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-position) */
+ maskPosition: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-repeat) */
+ maskRepeat: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-size) */
+ maskSize: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-type) */
+ maskType: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/masonry-auto-flow) */
+ masonryAutoFlow: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/math-depth) */
+ mathDepth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/math-shift) */
+ mathShift: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/math-style) */
+ mathStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-block-size) */
+ maxBlockSize: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-height) */
+ maxHeight: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-inline-size) */
+ maxInlineSize: string;
+ maxLines: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-width) */
+ maxWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-block-size) */
+ minBlockSize: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-height) */
+ minHeight: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-inline-size) */
+ minInlineSize: string;
+ minIntrinsicSizing: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-width) */
+ minWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode) */
+ mixBlendMode: string;
+ navDown: string;
+ navLeft: string;
+ navRight: string;
+ navUp: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/object-fit) */
+ objectFit: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/object-position) */
+ objectPosition: string;
+ objectViewBox: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset) */
+ offset: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-anchor) */
+ offsetAnchor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-distance) */
+ offsetDistance: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-path) */
+ offsetPath: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-position) */
+ offsetPosition: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-rotate) */
+ offsetRotate: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/opacity) */
+ opacity: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/order) */
+ order: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/orphans) */
+ orphans: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline) */
+ outline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-color) */
+ outlineColor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-offset) */
+ outlineOffset: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-style) */
+ outlineStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-width) */
+ outlineWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow) */
+ overflow: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-anchor) */
+ overflowAnchor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-block) */
+ overflowBlock: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-clip-margin) */
+ overflowClipMargin: string;
+ overflowClipMarginBlock: string;
+ overflowClipMarginBlockEnd: string;
+ overflowClipMarginBlockStart: string;
+ overflowClipMarginBottom: string;
+ overflowClipMarginInline: string;
+ overflowClipMarginInlineEnd: string;
+ overflowClipMarginInlineStart: string;
+ overflowClipMarginLeft: string;
+ overflowClipMarginRight: string;
+ overflowClipMarginTop: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-inline) */
+ overflowInline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-wrap) */
+ overflowWrap: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-x) */
+ overflowX: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-y) */
+ overflowY: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overlay) */
+ overlay: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior) */
+ overscrollBehavior: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-block) */
+ overscrollBehaviorBlock: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-inline) */
+ overscrollBehaviorInline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-x) */
+ overscrollBehaviorX: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-y) */
+ overscrollBehaviorY: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding) */
+ padding: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block) */
+ paddingBlock: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block-end) */
+ paddingBlockEnd: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block-start) */
+ paddingBlockStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-bottom) */
+ paddingBottom: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline) */
+ paddingInline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline-end) */
+ paddingInlineEnd: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline-start) */
+ paddingInlineStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-left) */
+ paddingLeft: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-right) */
+ paddingRight: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-top) */
+ paddingTop: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page) */
+ page: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-after) */
+ pageBreakAfter: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-before) */
+ pageBreakBefore: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-inside) */
+ pageBreakInside: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/paint-order) */
+ paintOrder: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/parentRule) */
+ readonly parentRule: CSSRule | null;
+ pause: string;
+ pauseAfter: string;
+ pauseBefore: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective) */
+ perspective: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective-origin) */
+ perspectiveOrigin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-content) */
+ placeContent: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-items) */
+ placeItems: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-self) */
+ placeSelf: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/pointer-events) */
+ pointerEvents: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/position) */
+ position: string;
+ positionFallback: string;
+ positionFallbackBounds: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/print-color-adjust) */
+ printColorAdjust: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/quotes) */
+ quotes: string;
+ r: string;
+ readingOrder: string;
+ regionFragment: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/resize) */
+ resize: string;
+ rest: string;
+ restAfter: string;
+ restBefore: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/right) */
+ right: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/rotate) */
+ rotate: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/row-gap) */
+ rowGap: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/ruby-align) */
+ rubyAlign: string;
+ rubyMerge: string;
+ rubyOverhang: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/ruby-position) */
+ rubyPosition: string;
+ rx: string;
+ ry: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scale) */
+ scale: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-behavior) */
+ scrollBehavior: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin) */
+ scrollMargin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block) */
+ scrollMarginBlock: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-end) */
+ scrollMarginBlockEnd: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-start) */
+ scrollMarginBlockStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-bottom) */
+ scrollMarginBottom: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline) */
+ scrollMarginInline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-end) */
+ scrollMarginInlineEnd: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-start) */
+ scrollMarginInlineStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-left) */
+ scrollMarginLeft: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-right) */
+ scrollMarginRight: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-top) */
+ scrollMarginTop: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding) */
+ scrollPadding: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block) */
+ scrollPaddingBlock: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-end) */
+ scrollPaddingBlockEnd: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-start) */
+ scrollPaddingBlockStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-bottom) */
+ scrollPaddingBottom: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline) */
+ scrollPaddingInline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-end) */
+ scrollPaddingInlineEnd: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-start) */
+ scrollPaddingInlineStart: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-left) */
+ scrollPaddingLeft: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-right) */
+ scrollPaddingRight: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-top) */
+ scrollPaddingTop: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-align) */
+ scrollSnapAlign: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-stop) */
+ scrollSnapStop: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type) */
+ scrollSnapType: string;
+ scrollStart: string;
+ scrollStartBlock: string;
+ scrollStartInline: string;
+ scrollStartTarget: string;
+ scrollStartTargetBlock: string;
+ scrollStartTargetInline: string;
+ scrollStartTargetX: string;
+ scrollStartTargetY: string;
+ scrollStartX: string;
+ scrollStartY: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-timeline) */
+ scrollTimeline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-timeline-axis) */
+ scrollTimelineAxis: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-timeline-name) */
+ scrollTimelineName: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-color) */
+ scrollbarColor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-gutter) */
+ scrollbarGutter: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-width) */
+ scrollbarWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold) */
+ shapeImageThreshold: string;
+ shapeInside: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-margin) */
+ shapeMargin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-outside) */
+ shapeOutside: string;
+ shapePadding: string;
+ shapeRendering: string;
+ shapeSubtract: string;
+ spatialNavigationAction: string;
+ spatialNavigationContain: string;
+ spatialNavigationFunction: string;
+ speak: string;
+ speakAs: string;
+ stopColor: string;
+ stopOpacity: string;
+ stringSet: string;
+ stroke: string;
+ strokeAlign: string;
+ strokeAlignment: string;
+ strokeBreak: string;
+ strokeColor: string;
+ strokeDashCorner: string;
+ strokeDashJustify: string;
+ strokeDashadjust: string;
+ strokeDasharray: string;
+ strokeDashcorner: string;
+ strokeDashoffset: string;
+ strokeImage: string;
+ strokeLinecap: string;
+ strokeLinejoin: string;
+ strokeMiterlimit: string;
+ strokeOpacity: string;
+ strokeOrigin: string;
+ strokePosition: string;
+ strokeRepeat: string;
+ strokeSize: string;
+ strokeWidth: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/tab-size) */
+ tabSize: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/table-layout) */
+ tableLayout: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-align) */
+ textAlign: string;
+ textAlignAll: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-align-last) */
+ textAlignLast: string;
+ textAnchor: string;
+ textAutospace: string;
+ textBoxEdge: string;
+ textBoxTrim: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-combine-upright) */
+ textCombineUpright: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration) */
+ textDecoration: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-color) */
+ textDecorationColor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-line) */
+ textDecorationLine: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip) */
+ textDecorationSkip: string;
+ textDecorationSkipBox: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink) */
+ textDecorationSkipInk: string;
+ textDecorationSkipSelf: string;
+ textDecorationSkipSpaces: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-style) */
+ textDecorationStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness) */
+ textDecorationThickness: string;
+ textDecorationTrim: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis) */
+ textEmphasis: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color) */
+ textEmphasisColor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position) */
+ textEmphasisPosition: string;
+ textEmphasisSkip: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style) */
+ textEmphasisStyle: string;
+ textGroupAlign: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-indent) */
+ textIndent: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-justify) */
+ textJustify: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-orientation) */
+ textOrientation: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-overflow) */
+ textOverflow: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-rendering) */
+ textRendering: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-shadow) */
+ textShadow: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-size-adjust) */
+ textSizeAdjust: string;
+ textSpacing: string;
+ textSpacingTrim: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-transform) */
+ textTransform: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-underline-offset) */
+ textUnderlineOffset: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-underline-position) */
+ textUnderlinePosition: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-wrap) */
+ textWrap: string;
+ textWrapMode: string;
+ textWrapStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/timeline-scope) */
+ timelineScope: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/top) */
+ top: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/touch-action) */
+ touchAction: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform) */
+ transform: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-box) */
+ transformBox: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-origin) */
+ transformOrigin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-style) */
+ transformStyle: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition) */
+ transition: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-behavior) */
+ transitionBehavior: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-delay) */
+ transitionDelay: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-duration) */
+ transitionDuration: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-property) */
+ transitionProperty: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-timing-function) */
+ transitionTimingFunction: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/translate) */
+ translate: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/unicode-bidi) */
+ unicodeBidi: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/user-select) */
+ userSelect: string;
+ vectorEffect: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/vertical-align) */
+ verticalAlign: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/view-timeline) */
+ viewTimeline: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/view-timeline-axis) */
+ viewTimelineAxis: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/view-timeline-inset) */
+ viewTimelineInset: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/view-timeline-name) */
+ viewTimelineName: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/view-transition-name) */
+ viewTransitionName: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/visibility) */
+ visibility: string;
+ voiceBalance: string;
+ voiceDuration: string;
+ voiceFamily: string;
+ voicePitch: string;
+ voiceRange: string;
+ voiceRate: string;
+ voiceStress: string;
+ voiceVolume: string;
+ /**
+ * @deprecated This is a legacy alias of `alignContent`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-content)
+ */
+ webkitAlignContent: string;
+ /**
+ * @deprecated This is a legacy alias of `alignItems`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-items)
+ */
+ webkitAlignItems: string;
+ /**
+ * @deprecated This is a legacy alias of `alignSelf`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-self)
+ */
+ webkitAlignSelf: string;
+ /**
+ * @deprecated This is a legacy alias of `animation`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation)
+ */
+ webkitAnimation: string;
+ /**
+ * @deprecated This is a legacy alias of `animationDelay`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-delay)
+ */
+ webkitAnimationDelay: string;
+ /**
+ * @deprecated This is a legacy alias of `animationDirection`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-direction)
+ */
+ webkitAnimationDirection: string;
+ /**
+ * @deprecated This is a legacy alias of `animationDuration`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-duration)
+ */
+ webkitAnimationDuration: string;
+ /**
+ * @deprecated This is a legacy alias of `animationFillMode`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode)
+ */
+ webkitAnimationFillMode: string;
+ /**
+ * @deprecated This is a legacy alias of `animationIterationCount`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count)
+ */
+ webkitAnimationIterationCount: string;
+ /**
+ * @deprecated This is a legacy alias of `animationName`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-name)
+ */
+ webkitAnimationName: string;
+ /**
+ * @deprecated This is a legacy alias of `animationPlayState`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-play-state)
+ */
+ webkitAnimationPlayState: string;
+ /**
+ * @deprecated This is a legacy alias of `animationTimingFunction`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-timing-function)
+ */
+ webkitAnimationTimingFunction: string;
+ /**
+ * @deprecated This is a legacy alias of `appearance`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/appearance)
+ */
+ webkitAppearance: string;
+ /**
+ * @deprecated This is a legacy alias of `backfaceVisibility`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backface-visibility)
+ */
+ webkitBackfaceVisibility: string;
+ /**
+ * @deprecated This is a legacy alias of `backgroundClip`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-clip)
+ */
+ webkitBackgroundClip: string;
+ /**
+ * @deprecated This is a legacy alias of `backgroundOrigin`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-origin)
+ */
+ webkitBackgroundOrigin: string;
+ /**
+ * @deprecated This is a legacy alias of `backgroundSize`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-size)
+ */
+ webkitBackgroundSize: string;
+ /**
+ * @deprecated This is a legacy alias of `borderBottomLeftRadius`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius)
+ */
+ webkitBorderBottomLeftRadius: string;
+ /**
+ * @deprecated This is a legacy alias of `borderBottomRightRadius`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius)
+ */
+ webkitBorderBottomRightRadius: string;
+ /**
+ * @deprecated This is a legacy alias of `borderRadius`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-radius)
+ */
+ webkitBorderRadius: string;
+ /**
+ * @deprecated This is a legacy alias of `borderTopLeftRadius`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius)
+ */
+ webkitBorderTopLeftRadius: string;
+ /**
+ * @deprecated This is a legacy alias of `borderTopRightRadius`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius)
+ */
+ webkitBorderTopRightRadius: string;
+ /**
+ * @deprecated This is a legacy alias of `boxAlign`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-align)
+ */
+ webkitBoxAlign: string;
+ /**
+ * @deprecated This is a legacy alias of `boxFlex`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-flex)
+ */
+ webkitBoxFlex: string;
+ /**
+ * @deprecated This is a legacy alias of `boxOrdinalGroup`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-ordinal-group)
+ */
+ webkitBoxOrdinalGroup: string;
+ /**
+ * @deprecated This is a legacy alias of `boxOrient`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-orient)
+ */
+ webkitBoxOrient: string;
+ /**
+ * @deprecated This is a legacy alias of `boxPack`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-pack)
+ */
+ webkitBoxPack: string;
+ /**
+ * @deprecated This is a legacy alias of `boxShadow`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-shadow)
+ */
+ webkitBoxShadow: string;
+ /**
+ * @deprecated This is a legacy alias of `boxSizing`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-sizing)
+ */
+ webkitBoxSizing: string;
+ /**
+ * @deprecated This is a legacy alias of `filter`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/filter)
+ */
+ webkitFilter: string;
+ /**
+ * @deprecated This is a legacy alias of `flex`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex)
+ */
+ webkitFlex: string;
+ /**
+ * @deprecated This is a legacy alias of `flexBasis`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-basis)
+ */
+ webkitFlexBasis: string;
+ /**
+ * @deprecated This is a legacy alias of `flexDirection`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-direction)
+ */
+ webkitFlexDirection: string;
+ /**
+ * @deprecated This is a legacy alias of `flexFlow`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-flow)
+ */
+ webkitFlexFlow: string;
+ /**
+ * @deprecated This is a legacy alias of `flexGrow`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-grow)
+ */
+ webkitFlexGrow: string;
+ /**
+ * @deprecated This is a legacy alias of `flexShrink`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-shrink)
+ */
+ webkitFlexShrink: string;
+ /**
+ * @deprecated This is a legacy alias of `flexWrap`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-wrap)
+ */
+ webkitFlexWrap: string;
+ /**
+ * @deprecated This is a legacy alias of `justifyContent`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-content)
+ */
+ webkitJustifyContent: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-line-clamp) */
+ webkitLineClamp: string;
+ /**
+ * @deprecated This is a legacy alias of `mask`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask)
+ */
+ webkitMask: string;
+ /**
+ * @deprecated This is a legacy alias of `maskBorder`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border)
+ */
+ webkitMaskBoxImage: string;
+ /**
+ * @deprecated This is a legacy alias of `maskBorderOutset`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-outset)
+ */
+ webkitMaskBoxImageOutset: string;
+ /**
+ * @deprecated This is a legacy alias of `maskBorderRepeat`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-repeat)
+ */
+ webkitMaskBoxImageRepeat: string;
+ /**
+ * @deprecated This is a legacy alias of `maskBorderSlice`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-slice)
+ */
+ webkitMaskBoxImageSlice: string;
+ /**
+ * @deprecated This is a legacy alias of `maskBorderSource`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-source)
+ */
+ webkitMaskBoxImageSource: string;
+ /**
+ * @deprecated This is a legacy alias of `maskBorderWidth`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-width)
+ */
+ webkitMaskBoxImageWidth: string;
+ /**
+ * @deprecated This is a legacy alias of `maskClip`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-clip)
+ */
+ webkitMaskClip: string;
+ /**
+ * @deprecated This is a legacy alias of `maskComposite`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-composite)
+ */
+ webkitMaskComposite: string;
+ /**
+ * @deprecated This is a legacy alias of `maskImage`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-image)
+ */
+ webkitMaskImage: string;
+ /**
+ * @deprecated This is a legacy alias of `maskOrigin`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-origin)
+ */
+ webkitMaskOrigin: string;
+ /**
+ * @deprecated This is a legacy alias of `maskPosition`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-position)
+ */
+ webkitMaskPosition: string;
+ /**
+ * @deprecated This is a legacy alias of `maskRepeat`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-repeat)
+ */
+ webkitMaskRepeat: string;
+ /**
+ * @deprecated This is a legacy alias of `maskSize`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-size)
+ */
+ webkitMaskSize: string;
+ /**
+ * @deprecated This is a legacy alias of `order`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/order)
+ */
+ webkitOrder: string;
+ /**
+ * @deprecated This is a legacy alias of `perspective`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective)
+ */
+ webkitPerspective: string;
+ /**
+ * @deprecated This is a legacy alias of `perspectiveOrigin`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective-origin)
+ */
+ webkitPerspectiveOrigin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color) */
+ webkitTextFillColor: string;
+ /**
+ * @deprecated This is a legacy alias of `textSizeAdjust`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-size-adjust)
+ */
+ webkitTextSizeAdjust: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke) */
+ webkitTextStroke: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color) */
+ webkitTextStrokeColor: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width) */
+ webkitTextStrokeWidth: string;
+ /**
+ * @deprecated This is a legacy alias of `transform`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform)
+ */
+ webkitTransform: string;
+ /**
+ * @deprecated This is a legacy alias of `transformOrigin`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-origin)
+ */
+ webkitTransformOrigin: string;
+ /**
+ * @deprecated This is a legacy alias of `transformStyle`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-style)
+ */
+ webkitTransformStyle: string;
+ /**
+ * @deprecated This is a legacy alias of `transition`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition)
+ */
+ webkitTransition: string;
+ /**
+ * @deprecated This is a legacy alias of `transitionDelay`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-delay)
+ */
+ webkitTransitionDelay: string;
+ /**
+ * @deprecated This is a legacy alias of `transitionDuration`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-duration)
+ */
+ webkitTransitionDuration: string;
+ /**
+ * @deprecated This is a legacy alias of `transitionProperty`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-property)
+ */
+ webkitTransitionProperty: string;
+ /**
+ * @deprecated This is a legacy alias of `transitionTimingFunction`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-timing-function)
+ */
+ webkitTransitionTimingFunction: string;
+ /**
+ * @deprecated This is a legacy alias of `userSelect`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/user-select)
+ */
+ webkitUserSelect: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/white-space) */
+ whiteSpace: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/white-space-collapse) */
+ whiteSpaceCollapse: string;
+ whiteSpaceTrim: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/widows) */
+ widows: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/width) */
+ width: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/will-change) */
+ willChange: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/word-break) */
+ wordBreak: string;
+ wordSpaceTransform: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/word-spacing) */
+ wordSpacing: string;
+ wordWrap: string;
+ wrapAfter: string;
+ wrapBefore: string;
+ wrapFlow: string;
+ wrapInside: string;
+ wrapThrough: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/writing-mode) */
+ writingMode: string;
+ x: string;
+ y: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/z-index) */
+ zIndex: string;
+ getCSSImageURLs(property: UTF8String): UTF8String[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/getPropertyPriority) */
+ getPropertyPriority(property: UTF8String): UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/getPropertyValue) */
+ getPropertyValue(property: UTF8String): UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/item) */
+ item(index: number): UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/removeProperty) */
+ removeProperty(property: UTF8String): UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/setProperty) */
+ setProperty(property: UTF8String, value: UTF8String | null, priority?: UTF8String): void;
+ [index: number]: UTF8String;
+}
+
+declare var CSSStyleDeclaration: {
+ prototype: CSSStyleDeclaration;
+ new(): CSSStyleDeclaration;
+ isInstance(obj): obj is CSSStyleDeclaration;
+};
+
+/**
+ * CSSStyleRule represents a single CSS style rule. It implements the CSSRule interface with a type value of 1 (CSSRule.STYLE_RULE).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule)
+ */
+interface CSSStyleRule extends CSSGroupingRule {
+ readonly selectorCount: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule/selectorText) */
+ selectorText: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule/style) */
+ readonly style: CSSStyleDeclaration;
+ getSelectorWarnings(): SelectorWarning[];
+ selectorMatchesElement(selectorIndex: number, element: Element, pseudo?: string, includeVisitedStyle?: boolean): boolean;
+ selectorSpecificityAt(index: number, desugared?: boolean): number;
+ selectorTextAt(index: number, desugared?: boolean): UTF8String;
+}
+
+declare var CSSStyleRule: {
+ prototype: CSSStyleRule;
+ new(): CSSStyleRule;
+ isInstance(obj): obj is CSSStyleRule;
+};
+
+/**
+ * A single CSS style sheet. It inherits properties and methods from its parent, StyleSheet.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet)
+ */
+interface CSSStyleSheet extends StyleSheet {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/cssRules) */
+ readonly cssRules: CSSRuleList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/ownerRule) */
+ readonly ownerRule: CSSRule | null;
+ readonly parsingMode: CSSStyleSheetParsingMode;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/rules)
+ */
+ readonly rules: CSSRuleList;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/addRule)
+ */
+ addRule(selector?: UTF8String, style?: UTF8String, index?: number): number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/deleteRule) */
+ deleteRule(index: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/insertRule) */
+ insertRule(rule: UTF8String, index?: number): number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/removeRule)
+ */
+ removeRule(index?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/replace) */
+ replace(text: UTF8String): Promise<CSSStyleSheet>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/replaceSync) */
+ replaceSync(text: UTF8String): void;
+}
+
+declare var CSSStyleSheet: {
+ prototype: CSSStyleSheet;
+ new(options?: CSSStyleSheetInit): CSSStyleSheet;
+ isInstance(obj): obj is CSSStyleSheet;
+};
+
+/**
+ * An object representing a single CSS @supports at-rule. It implements the CSSConditionRule interface, and therefore the CSSRule and CSSGroupingRule interfaces with a type value of 12 (CSSRule.SUPPORTS_RULE).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSupportsRule)
+ */
+interface CSSSupportsRule extends CSSConditionRule {
+}
+
+declare var CSSSupportsRule: {
+ prototype: CSSSupportsRule;
+ new(): CSSSupportsRule;
+ isInstance(obj): obj is CSSSupportsRule;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransition) */
+interface CSSTransition extends Animation {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransition/transitionProperty) */
+ readonly transitionProperty: string;
+ addEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSTransition, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof AnimationEventMap>(type: K, listener: (this: CSSTransition, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var CSSTransition: {
+ prototype: CSSTransition;
+ new(): CSSTransition;
+ isInstance(obj): obj is CSSTransition;
+};
+
+/**
+ * Provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache)
+ */
+interface Cache {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/add) */
+ add(request: RequestInfo | URL): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/addAll) */
+ addAll(requests: RequestInfo[]): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/delete) */
+ delete(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<boolean>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/keys) */
+ keys(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<Request[]>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/match) */
+ match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/matchAll) */
+ matchAll(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response[]>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/put) */
+ put(request: RequestInfo | URL, response: Response): Promise<void>;
+}
+
+declare var Cache: {
+ prototype: Cache;
+ new(): Cache;
+ isInstance(obj): obj is Cache;
+};
+
+/**
+ * The storage for Cache objects.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage)
+ */
+interface CacheStorage {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/delete) */
+ delete(cacheName: string): Promise<boolean>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/has) */
+ has(cacheName: string): Promise<boolean>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/keys) */
+ keys(): Promise<string[]>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/match) */
+ match(request: RequestInfo | URL, options?: MultiCacheQueryOptions): Promise<Response>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/open) */
+ open(cacheName: string): Promise<Cache>;
+}
+
+declare var CacheStorage: {
+ prototype: CacheStorage;
+ new(namespace: CacheStorageNamespace, principal: Principal): CacheStorage;
+ isInstance(obj): obj is CacheStorage;
+};
+
+interface CallbackDebuggerNotification extends DebuggerNotification {
+ readonly phase: CallbackDebuggerNotificationPhase;
+}
+
+declare var CallbackDebuggerNotification: {
+ prototype: CallbackDebuggerNotification;
+ new(): CallbackDebuggerNotification;
+ isInstance(obj): obj is CallbackDebuggerNotification;
+};
+
+interface CanonicalBrowsingContext extends BrowsingContext {
+ readonly activeSessionHistoryEntry: nsISHEntry | null;
+ readonly currentRemoteType: UTF8String | null;
+ readonly currentURI: URI | null;
+ readonly currentWindowGlobal: WindowGlobalParent | null;
+ readonly embedderWindowGlobal: WindowGlobalParent | null;
+ forceAppWindowActive: boolean;
+ readonly isReplaced: boolean;
+ readonly isUnderHiddenEmbedderElement: boolean;
+ readonly mediaController: MediaController | null;
+ readonly mostRecentLoadingSessionHistoryEntry: nsISHEntry | null;
+ readonly secureBrowserUI: nsISecureBrowserUI | null;
+ readonly sessionHistory: nsISHistory | null;
+ targetTopLevelLinkClicksToBlank: boolean;
+ readonly topChromeWindow: WindowProxy | null;
+ touchEventsOverride: TouchEventsOverride;
+ readonly webProgress: nsIWebProgress | null;
+ clearRestoreState(): void;
+ fixupAndLoadURIString(aURI: string, aOptions?: LoadURIOptions): void;
+ getWindowGlobals(): WindowGlobalParent[];
+ goBack(aCancelContentJSEpoch?: number, aRequireUserInteraction?: boolean, aUserActivation?: boolean): void;
+ goForward(aCancelContentJSEpoch?: number, aRequireUserInteraction?: boolean, aUserActivation?: boolean): void;
+ goToIndex(aIndex: number, aCancelContentJSEpoch?: number, aUserActivation?: boolean): void;
+ loadURI(aURI: URI, aOptions?: LoadURIOptions): void;
+ notifyMediaMutedChanged(muted: boolean): void;
+ notifyStartDelayedAutoplayMedia(): void;
+ print(aPrintSettings: nsIPrintSettings): Promise<void>;
+ reload(aReloadFlags: number): void;
+ resetScalingZoom(): void;
+ setCrossGroupOpener(crossGroupOpener: CanonicalBrowsingContext): void;
+ startApzAutoscroll(aAnchorX: number, aAnchorY: number, aScrollId: number, aPresShellId: number): boolean;
+ stop(aStopFlags: number): void;
+ stopApzAutoscroll(aScrollId: number, aPresShellId: number): void;
+}
+
+declare var CanonicalBrowsingContext: {
+ prototype: CanonicalBrowsingContext;
+ new(): CanonicalBrowsingContext;
+ countSiteOrigins(roots: BrowsingContext[]): number;
+ isInstance(obj): obj is CanonicalBrowsingContext;
+};
+
+interface CanvasCaptureMediaStream extends MediaStream {
+ readonly canvas: HTMLCanvasElement;
+ requestFrame(): void;
+ addEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: CanvasCaptureMediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: CanvasCaptureMediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var CanvasCaptureMediaStream: {
+ prototype: CanvasCaptureMediaStream;
+ new(): CanvasCaptureMediaStream;
+ isInstance(obj): obj is CanvasCaptureMediaStream;
+};
+
+interface CanvasCompositing {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalAlpha) */
+ globalAlpha: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation) */
+ globalCompositeOperation: string;
+}
+
+interface CanvasDrawImage {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/drawImage) */
+ drawImage(image: CanvasImageSource, dx: number, dy: number): void;
+ drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void;
+ drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;
+}
+
+interface CanvasDrawPath {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/beginPath) */
+ beginPath(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clip) */
+ clip(winding?: CanvasWindingRule): void;
+ clip(path: Path2D, winding?: CanvasWindingRule): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fill) */
+ fill(winding?: CanvasWindingRule): void;
+ fill(path: Path2D, winding?: CanvasWindingRule): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInPath) */
+ isPointInPath(x: number, y: number, winding?: CanvasWindingRule): boolean;
+ isPointInPath(path: Path2D, x: number, y: number, winding?: CanvasWindingRule): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInStroke) */
+ isPointInStroke(x: number, y: number): boolean;
+ isPointInStroke(path: Path2D, x: number, y: number): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/stroke) */
+ stroke(): void;
+ stroke(path: Path2D): void;
+}
+
+interface CanvasFillStrokeStyles {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillStyle) */
+ fillStyle: UTF8String | CanvasGradient | CanvasPattern;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeStyle) */
+ strokeStyle: UTF8String | CanvasGradient | CanvasPattern;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createConicGradient) */
+ createConicGradient(angle: number, cx: number, cy: number): CanvasGradient;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createLinearGradient) */
+ createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createPattern) */
+ createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createRadialGradient) */
+ createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;
+}
+
+interface CanvasFilters {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/filter) */
+ filter: UTF8String;
+}
+
+/**
+ * An opaque object describing a gradient. It is returned by the methods CanvasRenderingContext2D.createLinearGradient() or CanvasRenderingContext2D.createRadialGradient().
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient)
+ */
+interface CanvasGradient {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient/addColorStop) */
+ addColorStop(offset: number, color: UTF8String): void;
+}
+
+declare var CanvasGradient: {
+ prototype: CanvasGradient;
+ new(): CanvasGradient;
+ isInstance(obj): obj is CanvasGradient;
+};
+
+interface CanvasImageData {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createImageData) */
+ createImageData(sw: number, sh: number): ImageData;
+ createImageData(imagedata: ImageData): ImageData;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getImageData) */
+ getImageData(sx: number, sy: number, sw: number, sh: number): ImageData;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/putImageData) */
+ putImageData(imagedata: ImageData, dx: number, dy: number): void;
+ putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;
+}
+
+interface CanvasImageSmoothing {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingEnabled) */
+ imageSmoothingEnabled: boolean;
+}
+
+interface CanvasPathDrawingStyles {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineCap) */
+ lineCap: CanvasLineCap;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineDashOffset) */
+ lineDashOffset: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineJoin) */
+ lineJoin: CanvasLineJoin;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineWidth) */
+ lineWidth: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/miterLimit) */
+ miterLimit: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getLineDash) */
+ getLineDash(): number[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash) */
+ setLineDash(segments: number[]): void;
+}
+
+interface CanvasPathMethods {
+ arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;
+ arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
+ closePath(): void;
+ ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void;
+ lineTo(x: number, y: number): void;
+ moveTo(x: number, y: number): void;
+ quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
+ rect(x: number, y: number, w: number, h: number): void;
+ roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | (number | DOMPointInit)[]): void;
+}
+
+/**
+ * An opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern)
+ */
+interface CanvasPattern {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern/setTransform) */
+ setTransform(matrix?: DOMMatrix2DInit): void;
+}
+
+declare var CanvasPattern: {
+ prototype: CanvasPattern;
+ new(): CanvasPattern;
+ isInstance(obj): obj is CanvasPattern;
+};
+
+interface CanvasRect {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clearRect) */
+ clearRect(x: number, y: number, w: number, h: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillRect) */
+ fillRect(x: number, y: number, w: number, h: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeRect) */
+ strokeRect(x: number, y: number, w: number, h: number): void;
+}
+
+/**
+ * The CanvasRenderingContext2D interface, part of the Canvas API, provides the 2D rendering context for the drawing surface of a <canvas> element. It is used for drawing shapes, text, images, and other objects.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D)
+ */
+interface CanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPathDrawingStyles, CanvasPathMethods, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform, CanvasUserInterface {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/canvas) */
+ readonly canvas: HTMLCanvasElement | null;
+ demote(): void;
+ drawWindow(window: Window, x: number, y: number, w: number, h: number, bgColor: UTF8String, flags?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getContextAttributes) */
+ getContextAttributes(): CanvasRenderingContext2DSettings;
+ readonly DRAWWINDOW_DRAW_CARET: 0x01;
+ readonly DRAWWINDOW_DO_NOT_FLUSH: 0x02;
+ readonly DRAWWINDOW_DRAW_VIEW: 0x04;
+ readonly DRAWWINDOW_USE_WIDGET_LAYERS: 0x08;
+ readonly DRAWWINDOW_ASYNC_DECODE_IMAGES: 0x10;
+}
+
+declare var CanvasRenderingContext2D: {
+ prototype: CanvasRenderingContext2D;
+ new(): CanvasRenderingContext2D;
+ readonly DRAWWINDOW_DRAW_CARET: 0x01;
+ readonly DRAWWINDOW_DO_NOT_FLUSH: 0x02;
+ readonly DRAWWINDOW_DRAW_VIEW: 0x04;
+ readonly DRAWWINDOW_USE_WIDGET_LAYERS: 0x08;
+ readonly DRAWWINDOW_ASYNC_DECODE_IMAGES: 0x10;
+ isInstance(obj): obj is CanvasRenderingContext2D;
+};
+
+interface CanvasShadowStyles {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowBlur) */
+ shadowBlur: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowColor) */
+ shadowColor: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowOffsetX) */
+ shadowOffsetX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/shadowOffsetY) */
+ shadowOffsetY: number;
+}
+
+interface CanvasState {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/reset) */
+ reset(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/restore) */
+ restore(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/save) */
+ save(): void;
+}
+
+interface CanvasText {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillText) */
+ fillText(text: string, x: number, y: number, maxWidth?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/measureText) */
+ measureText(text: string): TextMetrics;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeText) */
+ strokeText(text: string, x: number, y: number, maxWidth?: number): void;
+}
+
+interface CanvasTextDrawingStyles {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/direction) */
+ direction: CanvasDirection;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/font) */
+ font: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontKerning) */
+ fontKerning: CanvasFontKerning;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontStretch) */
+ fontStretch: CanvasFontStretch;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fontVariantCaps) */
+ fontVariantCaps: CanvasFontVariantCaps;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/letterSpacing) */
+ letterSpacing: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textAlign) */
+ textAlign: CanvasTextAlign;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textBaseline) */
+ textBaseline: CanvasTextBaseline;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/textRendering) */
+ textRendering: CanvasTextRendering;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/wordSpacing) */
+ wordSpacing: UTF8String;
+}
+
+interface CanvasTransform {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getTransform) */
+ getTransform(): DOMMatrix;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/resetTransform) */
+ resetTransform(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rotate) */
+ rotate(angle: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/scale) */
+ scale(x: number, y: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setTransform) */
+ setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;
+ setTransform(transform?: DOMMatrix2DInit): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/transform) */
+ transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/translate) */
+ translate(x: number, y: number): void;
+}
+
+interface CanvasUserInterface {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/drawFocusIfNeeded) */
+ drawFocusIfNeeded(element: Element): void;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CaretPosition) */
+interface CaretPosition {
+ readonly offset: number;
+ readonly offsetNode: Node | null;
+ getClientRect(): DOMRect | null;
+}
+
+declare var CaretPosition: {
+ prototype: CaretPosition;
+ new(): CaretPosition;
+ isInstance(obj): obj is CaretPosition;
+};
+
+interface CaretStateChangedEvent extends Event {
+ readonly boundingClientRect: DOMRectReadOnly | null;
+ readonly caretVisible: boolean;
+ readonly caretVisuallyVisible: boolean;
+ readonly clientX: number;
+ readonly clientY: number;
+ readonly collapsed: boolean;
+ readonly reason: CaretChangedReason;
+ readonly selectedTextContent: string;
+ readonly selectionEditable: boolean;
+ readonly selectionVisible: boolean;
+}
+
+declare var CaretStateChangedEvent: {
+ prototype: CaretStateChangedEvent;
+ new(type: string, eventInit?: CaretStateChangedEventInit): CaretStateChangedEvent;
+ isInstance(obj): obj is CaretStateChangedEvent;
+};
+
+/**
+ * The ChannelMergerNode interface, often used in conjunction with its opposite, ChannelSplitterNode, reunites different mono inputs into a single output. Each input is used to fill a channel of the output. This is useful for accessing each channels separately, e.g. for performing channel mixing where gain must be separately controlled on each channel.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ChannelMergerNode)
+ */
+interface ChannelMergerNode extends AudioNode {
+}
+
+declare var ChannelMergerNode: {
+ prototype: ChannelMergerNode;
+ new(context: BaseAudioContext, options?: ChannelMergerOptions): ChannelMergerNode;
+ isInstance(obj): obj is ChannelMergerNode;
+};
+
+/**
+ * The ChannelSplitterNode interface, often used in conjunction with its opposite, ChannelMergerNode, separates the different channels of an audio source into a set of mono outputs. This is useful for accessing each channel separately, e.g. for performing channel mixing where gain must be separately controlled on each channel.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ChannelSplitterNode)
+ */
+interface ChannelSplitterNode extends AudioNode {
+}
+
+declare var ChannelSplitterNode: {
+ prototype: ChannelSplitterNode;
+ new(context: BaseAudioContext, options?: ChannelSplitterOptions): ChannelSplitterNode;
+ isInstance(obj): obj is ChannelSplitterNode;
+};
+
+interface ChannelWrapperEventMap {
+ "error": ErrorEvent;
+ "start": Event;
+ "stop": Event;
+}
+
+interface ChannelWrapper extends EventTarget {
+ readonly browserElement: nsISupports | null;
+ readonly canModify: boolean;
+ channel: MozChannel | null;
+ contentType: string;
+ readonly documentURI: URI | null;
+ readonly documentURL: string | null;
+ readonly errorString: string | null;
+ readonly finalURI: URI;
+ readonly finalURL: string;
+ readonly frameAncestors: MozFrameAncestorInfo[] | null;
+ readonly frameId: number;
+ readonly id: number;
+ readonly isServiceWorkerScript: boolean;
+ readonly isSystemLoad: boolean;
+ readonly loadInfo: LoadInfo | null;
+ readonly method: string;
+ onerror: OnErrorEventHandler;
+ onstart: ((this: ChannelWrapper, ev: Event) => any) | null;
+ onstop: ((this: ChannelWrapper, ev: Event) => any) | null;
+ readonly originURI: URI | null;
+ readonly originURL: string | null;
+ readonly parentFrameId: number;
+ readonly proxyInfo: MozProxyInfo | null;
+ readonly remoteAddress: string | null;
+ readonly requestSize: number;
+ readonly responseSize: number;
+ readonly statusCode: number;
+ readonly statusLine: string;
+ readonly suspended: boolean;
+ readonly thirdParty: boolean;
+ readonly type: MozContentPolicyType;
+ readonly urlClassification: MozUrlClassification | null;
+ cancel(result: number, reason?: number): void;
+ errorCheck(): void;
+ getRequestHeader(header: string): string | null;
+ getRequestHeaders(): MozHTTPHeader[];
+ getResponseHeaders(): MozHTTPHeader[];
+ matches(filter?: MozRequestFilter, extension?: WebExtensionPolicy | null, options?: MozRequestMatchOptions): boolean;
+ redirectTo(url: URI): void;
+ registerTraceableChannel(extension: WebExtensionPolicy, remoteTab: RemoteTab | null): void;
+ resume(): void;
+ setRequestHeader(header: string, value: string, merge?: boolean): void;
+ setResponseHeader(header: string, value: string, merge?: boolean): void;
+ suspend(profileMarkerText: string): void;
+ upgradeToSecure(): void;
+ addEventListener<K extends keyof ChannelWrapperEventMap>(type: K, listener: (this: ChannelWrapper, ev: ChannelWrapperEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof ChannelWrapperEventMap>(type: K, listener: (this: ChannelWrapper, ev: ChannelWrapperEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var ChannelWrapper: {
+ prototype: ChannelWrapper;
+ new(): ChannelWrapper;
+ get(channel: MozChannel): ChannelWrapper;
+ getRegisteredChannel(aChannelId: number, extension: WebExtensionPolicy, remoteTab: RemoteTab | null): ChannelWrapper | null;
+ isInstance(obj): obj is ChannelWrapper;
+};
+
+/**
+ * The CharacterData abstract interface represents a Node object that contains characters. This is an abstract interface, meaning there aren't any object of type CharacterData: it is implemented by other interfaces, like Text, Comment, or ProcessingInstruction which aren't abstract.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData)
+ */
+interface CharacterData extends Node, ChildNode, NonDocumentTypeChildNode {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/data) */
+ data: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/appendData) */
+ appendData(data: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/deleteData) */
+ deleteData(offset: number, count: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/insertData) */
+ insertData(offset: number, data: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceData) */
+ replaceData(offset: number, count: number, data: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/substringData) */
+ substringData(offset: number, count: number): string;
+}
+
+declare var CharacterData: {
+ prototype: CharacterData;
+ new(): CharacterData;
+ isInstance(obj): obj is CharacterData;
+};
+
+interface CheckerboardReportService {
+ flushActiveReports(): void;
+ getReports(): CheckerboardReport[];
+ isRecordingEnabled(): boolean;
+ setRecordingEnabled(aEnabled: boolean): void;
+}
+
+declare var CheckerboardReportService: {
+ prototype: CheckerboardReportService;
+ new(): CheckerboardReportService;
+ isInstance(obj): obj is CheckerboardReportService;
+};
+
+interface ChildNode {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/after) */
+ after(...nodes: (Node | string)[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/before) */
+ before(...nodes: (Node | string)[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/remove) */
+ remove(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith) */
+ replaceWith(...nodes: (Node | string)[]): void;
+}
+
+interface ChildProcessMessageManager extends SyncMessageSender {
+}
+
+declare var ChildProcessMessageManager: {
+ prototype: ChildProcessMessageManager;
+ new(): ChildProcessMessageManager;
+ isInstance(obj): obj is ChildProcessMessageManager;
+};
+
+interface ChildSHistory {
+ readonly count: number;
+ readonly index: number;
+ readonly legacySHistory: nsISHistory;
+ canGo(aOffset: number): boolean;
+ go(aOffset: number, aRequireUserInteraction?: boolean, aUserActivation?: boolean): void;
+ reload(aReloadFlags: number): void;
+}
+
+declare var ChildSHistory: {
+ prototype: ChildSHistory;
+ new(): ChildSHistory;
+ isInstance(obj): obj is ChildSHistory;
+};
+
+interface ChromeMessageBroadcaster extends MessageBroadcaster, FrameScriptLoader {
+}
+
+declare var ChromeMessageBroadcaster: {
+ prototype: ChromeMessageBroadcaster;
+ new(): ChromeMessageBroadcaster;
+ isInstance(obj): obj is ChromeMessageBroadcaster;
+};
+
+interface ChromeMessageSender extends MessageSender, FrameScriptLoader {
+}
+
+declare var ChromeMessageSender: {
+ prototype: ChromeMessageSender;
+ new(): ChromeMessageSender;
+ isInstance(obj): obj is ChromeMessageSender;
+};
+
+interface ChromeNodeList extends NodeList {
+ append(aNode: Node): void;
+ remove(aNode: Node): void;
+}
+
+declare var ChromeNodeList: {
+ prototype: ChromeNodeList;
+ new(): ChromeNodeList;
+ isInstance(obj): obj is ChromeNodeList;
+};
+
+interface ChromeWorker extends Worker {
+ addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: ChromeWorker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: ChromeWorker, ev: WorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var ChromeWorker: {
+ prototype: ChromeWorker;
+ new(scriptURL: string | URL, options?: WorkerOptions): ChromeWorker;
+ isInstance(obj): obj is ChromeWorker;
+};
+
+/**
+ * The Client interface represents an executable context such as a Worker, or a SharedWorker. Window clients are represented by the more-specific WindowClient. You can get Client/WindowClient objects from methods such as Clients.matchAll() and Clients.get().
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client)
+ */
+interface Client {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/frameType) */
+ readonly frameType: FrameType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/id) */
+ readonly id: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/type) */
+ readonly type: ClientType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/url) */
+ readonly url: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Client/postMessage) */
+ postMessage(message: any, transfer: any[]): void;
+ postMessage(message: any, aOptions?: StructuredSerializeOptions): void;
+}
+
+declare var Client: {
+ prototype: Client;
+ new(): Client;
+ isInstance(obj): obj is Client;
+};
+
+/**
+ * Provides access to Client objects. Access it via self.clients within a service worker.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients)
+ */
+interface Clients {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/claim) */
+ claim(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/get) */
+ get(id: string): Promise<Client | undefined>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/matchAll) */
+ matchAll(options?: ClientQueryOptions): Promise<Client[]>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clients/openWindow) */
+ openWindow(url: string | URL): Promise<WindowClient | null>;
+}
+
+declare var Clients: {
+ prototype: Clients;
+ new(): Clients;
+ isInstance(obj): obj is Clients;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard)
+ */
+interface Clipboard extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/read) */
+ read(): Promise<ClipboardItems>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/readText) */
+ readText(): Promise<string>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/write) */
+ write(data: ClipboardItems): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Clipboard/writeText) */
+ writeText(data: string): Promise<void>;
+}
+
+declare var Clipboard: {
+ prototype: Clipboard;
+ new(): Clipboard;
+ isInstance(obj): obj is Clipboard;
+};
+
+/**
+ * Events providing information related to modification of the clipboard, that is cut, copy, and paste events.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardEvent)
+ */
+interface ClipboardEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardEvent/clipboardData) */
+ readonly clipboardData: DataTransfer | null;
+}
+
+declare var ClipboardEvent: {
+ prototype: ClipboardEvent;
+ new(type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent;
+ isInstance(obj): obj is ClipboardEvent;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem)
+ */
+interface ClipboardItem {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem/presentationStyle) */
+ readonly presentationStyle: PresentationStyle;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem/types) */
+ readonly types: string[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ClipboardItem/getType) */
+ getType(type: string): Promise<Blob>;
+}
+
+declare var ClipboardItem: {
+ prototype: ClipboardItem;
+ new(items: Record<string, ClipboardItemDataType | PromiseLike<ClipboardItemDataType>>, options?: ClipboardItemOptions): ClipboardItem;
+ isInstance(obj): obj is ClipboardItem;
+};
+
+interface ClonedErrorHolder {
+}
+
+declare var ClonedErrorHolder: {
+ prototype: ClonedErrorHolder;
+ new(aError: any): ClonedErrorHolder;
+ isInstance(obj): obj is ClonedErrorHolder;
+};
+
+/**
+ * A CloseEvent is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object's onclose attribute.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent)
+ */
+interface CloseEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/code) */
+ readonly code: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/reason) */
+ readonly reason: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CloseEvent/wasClean) */
+ readonly wasClean: boolean;
+}
+
+declare var CloseEvent: {
+ prototype: CloseEvent;
+ new(type: string, eventInitDict?: CloseEventInit): CloseEvent;
+ isInstance(obj): obj is CloseEvent;
+};
+
+interface CommandEvent extends Event {
+ readonly command: string | null;
+}
+
+declare var CommandEvent: {
+ prototype: CommandEvent;
+ new(): CommandEvent;
+ isInstance(obj): obj is CommandEvent;
+};
+
+/**
+ * Textual notations within markup; although it is generally not visually shown, such comments are available to be read in the source view.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Comment)
+ */
+interface Comment extends CharacterData {
+}
+
+declare var Comment: {
+ prototype: Comment;
+ new(data?: string): Comment;
+ isInstance(obj): obj is Comment;
+};
+
+/**
+ * The DOM CompositionEvent represents events that occur due to the user indirectly entering text.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompositionEvent)
+ */
+interface CompositionEvent extends UIEvent {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompositionEvent/data) */
+ readonly data: string | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompositionEvent/locale)
+ */
+ readonly locale: string;
+ readonly ranges: TextClause[];
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompositionEvent/initCompositionEvent)
+ */
+ initCompositionEvent(typeArg: string, canBubbleArg?: boolean, cancelableArg?: boolean, viewArg?: Window | null, dataArg?: string | null, localeArg?: string): void;
+}
+
+declare var CompositionEvent: {
+ prototype: CompositionEvent;
+ new(type: string, eventInitDict?: CompositionEventInit): CompositionEvent;
+ isInstance(obj): obj is CompositionEvent;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream) */
+interface CompressionStream extends GenericTransformStream {
+}
+
+declare var CompressionStream: {
+ prototype: CompressionStream;
+ new(format: CompressionFormat): CompressionStream;
+ isInstance(obj): obj is CompressionStream;
+};
+
+interface ConsoleInstance {
+ assert(condition?: boolean, ...data: any[]): void;
+ clear(): void;
+ count(label?: string): void;
+ countReset(label?: string): void;
+ debug(...data: any[]): void;
+ dir(...data: any[]): void;
+ dirxml(...data: any[]): void;
+ error(...data: any[]): void;
+ exception(...data: any[]): void;
+ group(...data: any[]): void;
+ groupCollapsed(...data: any[]): void;
+ groupEnd(): void;
+ info(...data: any[]): void;
+ log(...data: any[]): void;
+ profile(...data: any[]): void;
+ profileEnd(...data: any[]): void;
+ reportForServiceWorkerScope(scope: string, message: string, filename: string, lineNumber: number, columnNumber: number, level: ConsoleLevel): void;
+ table(...data: any[]): void;
+ time(label?: string): void;
+ timeEnd(label?: string): void;
+ timeLog(label?: string, ...data: any[]): void;
+ timeStamp(data?: any): void;
+ trace(...data: any[]): void;
+ warn(...data: any[]): void;
+}
+
+declare var ConsoleInstance: {
+ prototype: ConsoleInstance;
+ new(): ConsoleInstance;
+ isInstance(obj): obj is ConsoleInstance;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConstantSourceNode) */
+interface ConstantSourceNode extends AudioScheduledSourceNode {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConstantSourceNode/offset) */
+ readonly offset: AudioParam;
+ addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var ConstantSourceNode: {
+ prototype: ConstantSourceNode;
+ new(context: BaseAudioContext, options?: ConstantSourceOptions): ConstantSourceNode;
+ isInstance(obj): obj is ConstantSourceNode;
+};
+
+interface ContentFrameMessageManager extends EventTarget, MessageListenerManagerMixin, MessageManagerGlobal, MessageSenderMixin, SyncMessageSenderMixin {
+ readonly content: WindowProxy | null;
+ readonly docShell: nsIDocShell | null;
+ readonly tabEventTarget: nsIEventTarget | null;
+}
+
+declare var ContentFrameMessageManager: {
+ prototype: ContentFrameMessageManager;
+ new(): ContentFrameMessageManager;
+ isInstance(obj): obj is ContentFrameMessageManager;
+};
+
+interface ContentProcessMessageManager extends MessageListenerManagerMixin, MessageManagerGlobal, MessageSenderMixin, SyncMessageSenderMixin {
+ readonly initialProcessData: any;
+ readonly sharedData: MozSharedMap | null;
+}
+
+declare var ContentProcessMessageManager: {
+ prototype: ContentProcessMessageManager;
+ new(): ContentProcessMessageManager;
+ isInstance(obj): obj is ContentProcessMessageManager;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContentVisibilityAutoStateChangeEvent) */
+interface ContentVisibilityAutoStateChangeEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ContentVisibilityAutoStateChangeEvent/skipped) */
+ readonly skipped: boolean;
+}
+
+declare var ContentVisibilityAutoStateChangeEvent: {
+ prototype: ContentVisibilityAutoStateChangeEvent;
+ new(type: string, eventInitDict?: ContentVisibilityAutoStateChangeEventInit): ContentVisibilityAutoStateChangeEvent;
+ isInstance(obj): obj is ContentVisibilityAutoStateChangeEvent;
+};
+
+/**
+ * An AudioNode that performs a Linear Convolution on a given AudioBuffer, often used to achieve a reverb effect. A ConvolverNode always has exactly one input and one output.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConvolverNode)
+ */
+interface ConvolverNode extends AudioNode, AudioNodePassThrough {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConvolverNode/buffer) */
+ buffer: AudioBuffer | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ConvolverNode/normalize) */
+ normalize: boolean;
+}
+
+declare var ConvolverNode: {
+ prototype: ConvolverNode;
+ new(context: BaseAudioContext, options?: ConvolverOptions): ConvolverNode;
+ isInstance(obj): obj is ConvolverNode;
+};
+
+/**
+ * This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy)
+ */
+interface CountQueuingStrategy {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/highWaterMark) */
+ readonly highWaterMark: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CountQueuingStrategy/size) */
+ readonly size: Function;
+}
+
+declare var CountQueuingStrategy: {
+ prototype: CountQueuingStrategy;
+ new(init: QueuingStrategyInit): CountQueuingStrategy;
+ isInstance(obj): obj is CountQueuingStrategy;
+};
+
+interface CreateOfferRequest {
+ readonly callID: string;
+ readonly innerWindowID: number;
+ readonly isSecure: boolean;
+ readonly windowID: number;
+}
+
+declare var CreateOfferRequest: {
+ prototype: CreateOfferRequest;
+ new(): CreateOfferRequest;
+ isInstance(obj): obj is CreateOfferRequest;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Credential)
+ */
+interface Credential {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Credential/id) */
+ readonly id: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Credential/type) */
+ readonly type: string;
+}
+
+declare var Credential: {
+ prototype: Credential;
+ new(): Credential;
+ isInstance(obj): obj is Credential;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer)
+ */
+interface CredentialsContainer {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/create) */
+ create(options?: CredentialCreationOptions): Promise<Credential | null>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/get) */
+ get(options?: CredentialRequestOptions): Promise<Credential | null>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/preventSilentAccess) */
+ preventSilentAccess(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CredentialsContainer/store) */
+ store(credential: Credential): Promise<Credential>;
+}
+
+declare var CredentialsContainer: {
+ prototype: CredentialsContainer;
+ new(): CredentialsContainer;
+ isInstance(obj): obj is CredentialsContainer;
+};
+
+/**
+ * Basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto)
+ */
+interface Crypto {
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/subtle)
+ */
+ readonly subtle: SubtleCrypto;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/getRandomValues) */
+ getRandomValues(array: ArrayBufferView): ArrayBufferView;
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Crypto/randomUUID)
+ */
+ randomUUID(): UTF8String;
+}
+
+declare var Crypto: {
+ prototype: Crypto;
+ new(): Crypto;
+ isInstance(obj): obj is Crypto;
+};
+
+/**
+ * The CryptoKey dictionary of the Web Crypto API represents a cryptographic key.
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey)
+ */
+interface CryptoKey {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/algorithm) */
+ readonly algorithm: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/extractable) */
+ readonly extractable: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/type) */
+ readonly type: KeyType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CryptoKey/usages) */
+ readonly usages: KeyUsage[];
+}
+
+declare var CryptoKey: {
+ prototype: CryptoKey;
+ new(): CryptoKey;
+ isInstance(obj): obj is CryptoKey;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry) */
+interface CustomElementRegistry {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/define) */
+ define(name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/get) */
+ get(name: string): CustomElementConstructor | undefined;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/getName) */
+ getName(constructor: CustomElementConstructor): string | null;
+ setElementCreationCallback(name: string, callback: CustomElementCreationCallback): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/upgrade) */
+ upgrade(root: Node): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomElementRegistry/whenDefined) */
+ whenDefined(name: string): Promise<CustomElementConstructor>;
+}
+
+declare var CustomElementRegistry: {
+ prototype: CustomElementRegistry;
+ new(): CustomElementRegistry;
+ isInstance(obj): obj is CustomElementRegistry;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent) */
+interface CustomEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/detail) */
+ readonly detail: any;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomEvent/initCustomEvent)
+ */
+ initCustomEvent(type: string, canBubble?: boolean, cancelable?: boolean, detail?: any): void;
+}
+
+declare var CustomEvent: {
+ prototype: CustomEvent;
+ new(type: string, eventInitDict?: CustomEventInit): CustomEvent;
+ isInstance(obj): obj is CustomEvent;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CustomStateSet) */
+interface CustomStateSet {
+ forEach(callbackfn: (value: string, key: string, parent: CustomStateSet) => void, thisArg?: any): void;
+}
+
+declare var CustomStateSet: {
+ prototype: CustomStateSet;
+ new(): CustomStateSet;
+ isInstance(obj): obj is CustomStateSet;
+};
+
+/**
+ * An abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException)
+ */
+interface DOMException extends ExceptionMembers {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/code)
+ */
+ readonly code: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/message) */
+ readonly message: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMException/name) */
+ readonly name: string;
+ readonly INDEX_SIZE_ERR: 1;
+ readonly DOMSTRING_SIZE_ERR: 2;
+ readonly HIERARCHY_REQUEST_ERR: 3;
+ readonly WRONG_DOCUMENT_ERR: 4;
+ readonly INVALID_CHARACTER_ERR: 5;
+ readonly NO_DATA_ALLOWED_ERR: 6;
+ readonly NO_MODIFICATION_ALLOWED_ERR: 7;
+ readonly NOT_FOUND_ERR: 8;
+ readonly NOT_SUPPORTED_ERR: 9;
+ readonly INUSE_ATTRIBUTE_ERR: 10;
+ readonly INVALID_STATE_ERR: 11;
+ readonly SYNTAX_ERR: 12;
+ readonly INVALID_MODIFICATION_ERR: 13;
+ readonly NAMESPACE_ERR: 14;
+ readonly INVALID_ACCESS_ERR: 15;
+ readonly VALIDATION_ERR: 16;
+ readonly TYPE_MISMATCH_ERR: 17;
+ readonly SECURITY_ERR: 18;
+ readonly NETWORK_ERR: 19;
+ readonly ABORT_ERR: 20;
+ readonly URL_MISMATCH_ERR: 21;
+ readonly QUOTA_EXCEEDED_ERR: 22;
+ readonly TIMEOUT_ERR: 23;
+ readonly INVALID_NODE_TYPE_ERR: 24;
+ readonly DATA_CLONE_ERR: 25;
+}
+
+declare var DOMException: {
+ prototype: DOMException;
+ new(message?: string, name?: string): DOMException;
+ readonly INDEX_SIZE_ERR: 1;
+ readonly DOMSTRING_SIZE_ERR: 2;
+ readonly HIERARCHY_REQUEST_ERR: 3;
+ readonly WRONG_DOCUMENT_ERR: 4;
+ readonly INVALID_CHARACTER_ERR: 5;
+ readonly NO_DATA_ALLOWED_ERR: 6;
+ readonly NO_MODIFICATION_ALLOWED_ERR: 7;
+ readonly NOT_FOUND_ERR: 8;
+ readonly NOT_SUPPORTED_ERR: 9;
+ readonly INUSE_ATTRIBUTE_ERR: 10;
+ readonly INVALID_STATE_ERR: 11;
+ readonly SYNTAX_ERR: 12;
+ readonly INVALID_MODIFICATION_ERR: 13;
+ readonly NAMESPACE_ERR: 14;
+ readonly INVALID_ACCESS_ERR: 15;
+ readonly VALIDATION_ERR: 16;
+ readonly TYPE_MISMATCH_ERR: 17;
+ readonly SECURITY_ERR: 18;
+ readonly NETWORK_ERR: 19;
+ readonly ABORT_ERR: 20;
+ readonly URL_MISMATCH_ERR: 21;
+ readonly QUOTA_EXCEEDED_ERR: 22;
+ readonly TIMEOUT_ERR: 23;
+ readonly INVALID_NODE_TYPE_ERR: 24;
+ readonly DATA_CLONE_ERR: 25;
+ isInstance(obj): obj is DOMException;
+};
+
+/**
+ * An object providing methods which are not dependent on any particular document. Such an object is returned by the Document.implementation property.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation)
+ */
+interface DOMImplementation {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createDocument) */
+ createDocument(namespace: string | null, qualifiedName: string | null, doctype?: DocumentType | null): Document;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createDocumentType) */
+ createDocumentType(qualifiedName: string, publicId: string, systemId: string): DocumentType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/createHTMLDocument) */
+ createHTMLDocument(title?: string): Document;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMImplementation/hasFeature)
+ */
+ hasFeature(): boolean;
+}
+
+declare var DOMImplementation: {
+ prototype: DOMImplementation;
+ new(): DOMImplementation;
+ isInstance(obj): obj is DOMImplementation;
+};
+
+interface DOMLocalization extends Localization {
+ connectRoot(aElement: Node): void;
+ disconnectRoot(aElement: Node): void;
+ getAttributes(aElement: Element): L10nIdArgs;
+ pauseObserving(): void;
+ resumeObserving(): void;
+ setArgs(aElement: Element, aArgs?: any): void;
+ setAttributes(aElement: Element, aId: string, aArgs?: any): void;
+ translateElements(aElements: Element[]): Promise<void>;
+ translateFragment(aNode: Node): Promise<any>;
+ translateRoots(): Promise<void>;
+}
+
+declare var DOMLocalization: {
+ prototype: DOMLocalization;
+ new(aResourceIds: L10nResourceId[], aSync?: boolean, aRegistry?: L10nRegistry, aLocales?: UTF8String[]): DOMLocalization;
+ isInstance(obj): obj is DOMLocalization;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix) */
+interface DOMMatrix extends DOMMatrixReadOnly {
+ a: number;
+ b: number;
+ c: number;
+ d: number;
+ e: number;
+ f: number;
+ m11: number;
+ m12: number;
+ m13: number;
+ m14: number;
+ m21: number;
+ m22: number;
+ m23: number;
+ m24: number;
+ m31: number;
+ m32: number;
+ m33: number;
+ m34: number;
+ m41: number;
+ m42: number;
+ m43: number;
+ m44: number;
+ invertSelf(): DOMMatrix;
+ multiplySelf(other?: DOMMatrixInit): DOMMatrix;
+ preMultiplySelf(other?: DOMMatrixInit): DOMMatrix;
+ rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;
+ rotateFromVectorSelf(x?: number, y?: number): DOMMatrix;
+ rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/scale3dSelf) */
+ scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrix/scaleSelf) */
+ scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
+ setMatrixValue(transformList: UTF8String): DOMMatrix;
+ skewXSelf(sx?: number): DOMMatrix;
+ skewYSelf(sy?: number): DOMMatrix;
+ translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix;
+}
+
+declare var DOMMatrix: {
+ prototype: DOMMatrix;
+ new(init?: UTF8String | number[] | DOMMatrixReadOnly): DOMMatrix;
+ fromFloat32Array(array32: Float32Array): DOMMatrix;
+ fromFloat64Array(array64: Float64Array): DOMMatrix;
+ fromMatrix(other?: DOMMatrixInit): DOMMatrix;
+ isInstance(obj): obj is DOMMatrix;
+};
+
+type WebKitCSSMatrix = DOMMatrix;
+declare var WebKitCSSMatrix: typeof DOMMatrix;
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly) */
+interface DOMMatrixReadOnly {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/a) */
+ readonly a: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/b) */
+ readonly b: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/c) */
+ readonly c: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/d) */
+ readonly d: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/e) */
+ readonly e: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/f) */
+ readonly f: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/is2D) */
+ readonly is2D: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/isIdentity) */
+ readonly isIdentity: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m11) */
+ readonly m11: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m12) */
+ readonly m12: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m13) */
+ readonly m13: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m14) */
+ readonly m14: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m21) */
+ readonly m21: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m22) */
+ readonly m22: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m23) */
+ readonly m23: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m24) */
+ readonly m24: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m31) */
+ readonly m31: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m32) */
+ readonly m32: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m33) */
+ readonly m33: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m34) */
+ readonly m34: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m41) */
+ readonly m41: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m42) */
+ readonly m42: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m43) */
+ readonly m43: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/m44) */
+ readonly m44: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/flipX) */
+ flipX(): DOMMatrix;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/flipY) */
+ flipY(): DOMMatrix;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/inverse) */
+ inverse(): DOMMatrix;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/multiply) */
+ multiply(other?: DOMMatrixInit): DOMMatrix;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotate) */
+ rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotateAxisAngle) */
+ rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/rotateFromVector) */
+ rotateFromVector(x?: number, y?: number): DOMMatrix;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scale) */
+ scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scale3d) */
+ scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/scaleNonUniform)
+ */
+ scaleNonUniform(scaleX?: number, scaleY?: number): DOMMatrix;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/skewX) */
+ skewX(sx?: number): DOMMatrix;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/skewY) */
+ skewY(sy?: number): DOMMatrix;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toFloat32Array) */
+ toFloat32Array(): Float32Array;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/toFloat64Array) */
+ toFloat64Array(): Float64Array;
+ toJSON(): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/transformPoint) */
+ transformPoint(point?: DOMPointInit): DOMPoint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMMatrixReadOnly/translate) */
+ translate(tx?: number, ty?: number, tz?: number): DOMMatrix;
+ toString(): string;
+}
+
+declare var DOMMatrixReadOnly: {
+ prototype: DOMMatrixReadOnly;
+ new(init?: UTF8String | number[] | DOMMatrixReadOnly): DOMMatrixReadOnly;
+ fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly;
+ fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly;
+ fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly;
+ isInstance(obj): obj is DOMMatrixReadOnly;
+};
+
+/**
+ * Provides the ability to parse XML or HTML source code from a string into a DOM Document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMParser)
+ */
+interface DOMParser {
+ forceEnableDTD(): void;
+ forceEnableXULXBL(): void;
+ parseFromBuffer(buf: number[], type: SupportedType): Document;
+ parseFromBuffer(buf: Uint8Array, type: SupportedType): Document;
+ parseFromSafeString(str: string, type: SupportedType): Document;
+ parseFromStream(stream: InputStream, charset: string | null, contentLength: number, type: SupportedType): Document;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMParser/parseFromString) */
+ parseFromString(str: string, type: SupportedType): Document;
+}
+
+declare var DOMParser: {
+ prototype: DOMParser;
+ new(): DOMParser;
+ isInstance(obj): obj is DOMParser;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint) */
+interface DOMPoint extends DOMPointReadOnly {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/w) */
+ w: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/x) */
+ x: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/y) */
+ y: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/z) */
+ z: number;
+}
+
+declare var DOMPoint: {
+ prototype: DOMPoint;
+ new(x?: number, y?: number, z?: number, w?: number): DOMPoint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPoint/fromPoint_static) */
+ fromPoint(other?: DOMPointInit): DOMPoint;
+ isInstance(obj): obj is DOMPoint;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly) */
+interface DOMPointReadOnly {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/w) */
+ readonly w: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/x) */
+ readonly x: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/y) */
+ readonly y: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/z) */
+ readonly z: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/matrixTransform) */
+ matrixTransform(matrix?: DOMMatrixInit): DOMPoint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/toJSON) */
+ toJSON(): any;
+}
+
+declare var DOMPointReadOnly: {
+ prototype: DOMPointReadOnly;
+ new(x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMPointReadOnly/fromPoint_static) */
+ fromPoint(other?: DOMPointInit): DOMPointReadOnly;
+ isInstance(obj): obj is DOMPointReadOnly;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad) */
+interface DOMQuad {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p1) */
+ readonly p1: DOMPoint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p2) */
+ readonly p2: DOMPoint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p3) */
+ readonly p3: DOMPoint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/p4) */
+ readonly p4: DOMPoint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMQuad/getBounds) */
+ getBounds(): DOMRectReadOnly;
+ toJSON(): any;
+}
+
+declare var DOMQuad: {
+ prototype: DOMQuad;
+ new(p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad;
+ new(rect: DOMRectReadOnly): DOMQuad;
+ fromQuad(other?: DOMQuadInit): DOMQuad;
+ fromRect(other?: DOMRectInit): DOMQuad;
+ isInstance(obj): obj is DOMQuad;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRect) */
+interface DOMRect extends DOMRectReadOnly {
+ height: number;
+ width: number;
+ x: number;
+ y: number;
+}
+
+declare var DOMRect: {
+ prototype: DOMRect;
+ new(x?: number, y?: number, width?: number, height?: number): DOMRect;
+ fromRect(other?: DOMRectInit): DOMRect;
+ isInstance(obj): obj is DOMRect;
+};
+
+interface DOMRectList {
+ readonly length: number;
+ item(index: number): DOMRect | null;
+ [index: number]: DOMRect;
+}
+
+declare var DOMRectList: {
+ prototype: DOMRectList;
+ new(): DOMRectList;
+ isInstance(obj): obj is DOMRectList;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly) */
+interface DOMRectReadOnly {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/bottom) */
+ readonly bottom: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/height) */
+ readonly height: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/left) */
+ readonly left: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/right) */
+ readonly right: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/top) */
+ readonly top: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/width) */
+ readonly width: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/x) */
+ readonly x: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/y) */
+ readonly y: number;
+ toJSON(): any;
+}
+
+declare var DOMRectReadOnly: {
+ prototype: DOMRectReadOnly;
+ new(x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMRectReadOnly/fromRect_static) */
+ fromRect(other?: DOMRectInit): DOMRectReadOnly;
+ isInstance(obj): obj is DOMRectReadOnly;
+};
+
+interface DOMRequest extends EventTarget, DOMRequestShared {
+ fireDetailedError(aError: DOMException): void;
+ then(fulfillCallback?: AnyCallback | null, rejectCallback?: AnyCallback | null): any;
+ addEventListener<K extends keyof DOMRequestSharedEventMap>(type: K, listener: (this: DOMRequest, ev: DOMRequestSharedEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof DOMRequestSharedEventMap>(type: K, listener: (this: DOMRequest, ev: DOMRequestSharedEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var DOMRequest: {
+ prototype: DOMRequest;
+ new(): DOMRequest;
+ isInstance(obj): obj is DOMRequest;
+};
+
+interface DOMRequestSharedEventMap {
+ "error": ErrorEvent;
+ "success": Event;
+}
+
+interface DOMRequestShared {
+ "error": ErrorEvent;
+ onerror: OnErrorEventHandler;
+ onsuccess: ((this: DOMRequestShared, ev: Event) => any) | null;
+ readonly readyState: DOMRequestReadyState;
+ readonly result: any;
+ addEventListener<K extends keyof DOMRequestSharedEventMap>(type: K, listener: (this: DOMRequestShared, ev: DOMRequestSharedEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof DOMRequestSharedEventMap>(type: K, listener: (this: DOMRequestShared, ev: DOMRequestSharedEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+/**
+ * A type returned by some APIs which contains a list of DOMString (strings).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList)
+ */
+interface DOMStringList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/contains) */
+ contains(string: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringList/item) */
+ item(index: number): string | null;
+ [index: number]: string;
+}
+
+declare var DOMStringList: {
+ prototype: DOMStringList;
+ new(): DOMStringList;
+ isInstance(obj): obj is DOMStringList;
+};
+
+/**
+ * Used by the dataset HTML attribute to represent data for custom attributes added to elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMStringMap)
+ */
+interface DOMStringMap {
+}
+
+declare var DOMStringMap: {
+ prototype: DOMStringMap;
+ new(): DOMStringMap;
+ isInstance(obj): obj is DOMStringMap;
+};
+
+/**
+ * A set of space-separated tokens. Such a set is returned by Element.classList, HTMLLinkElement.relList, HTMLAnchorElement.relList, HTMLAreaElement.relList, HTMLIframeElement.sandbox, or HTMLOutputElement.htmlFor. It is indexed beginning with 0 as with JavaScript Array objects. DOMTokenList is always case-sensitive.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList)
+ */
+interface DOMTokenList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/value) */
+ value: string;
+ toString(): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/add) */
+ add(...tokens: string[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/contains) */
+ contains(token: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/item) */
+ item(index: number): string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/remove) */
+ remove(...tokens: string[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/replace) */
+ replace(token: string, newToken: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/supports) */
+ supports(token: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DOMTokenList/toggle) */
+ toggle(token: string, force?: boolean): boolean;
+ forEach(callbackfn: (value: string | null, key: number, parent: DOMTokenList) => void, thisArg?: any): void;
+ [index: number]: string;
+}
+
+declare var DOMTokenList: {
+ prototype: DOMTokenList;
+ new(): DOMTokenList;
+ isInstance(obj): obj is DOMTokenList;
+};
+
+/**
+ * Used to hold the data that is being dragged during a drag and drop operation. It may hold one or more data items, each of one or more data types. For more information about drag and drop, see HTML Drag and Drop API.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer)
+ */
+interface DataTransfer {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/dropEffect) */
+ dropEffect: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/effectAllowed) */
+ effectAllowed: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/files) */
+ readonly files: FileList | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/items) */
+ readonly items: DataTransferItemList;
+ readonly mozCSP: ContentSecurityPolicy | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/mozCursor) */
+ mozCursor: string;
+ readonly mozItemCount: number;
+ mozShowFailAnimation: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/mozSourceNode) */
+ readonly mozSourceNode: Node | null;
+ readonly mozTriggeringPrincipalURISpec: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/mozUserCancelled) */
+ readonly mozUserCancelled: boolean;
+ readonly sourceTopWindowContext: WindowContext | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/types) */
+ readonly types: string[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/addElement) */
+ addElement(element: Element): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/clearData) */
+ clearData(format?: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/getData) */
+ getData(format: string): string;
+ mozClearDataAt(format: string, index: number): void;
+ mozCloneForEvent(event: string): DataTransfer;
+ mozGetDataAt(format: string, index: number): any;
+ mozSetDataAt(format: string, data: any, index: number): void;
+ mozTypesAt(index: number): DOMStringList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/setData) */
+ setData(format: string, data: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransfer/setDragImage) */
+ setDragImage(image: Element, x: number, y: number): void;
+ updateDragImage(image: Element, x: number, y: number): void;
+}
+
+declare var DataTransfer: {
+ prototype: DataTransfer;
+ new(): DataTransfer;
+ isInstance(obj): obj is DataTransfer;
+};
+
+/**
+ * One drag data item. During a drag operation, each drag event has a dataTransfer property which contains a list of drag data items. Each item in the list is a DataTransferItem object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem)
+ */
+interface DataTransferItem {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/kind) */
+ readonly kind: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/type) */
+ readonly type: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/getAsFile) */
+ getAsFile(): File | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/getAsString) */
+ getAsString(callback: FunctionStringCallback | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItem/webkitGetAsEntry) */
+ webkitGetAsEntry(): FileSystemEntry | null;
+}
+
+declare var DataTransferItem: {
+ prototype: DataTransferItem;
+ new(): DataTransferItem;
+ isInstance(obj): obj is DataTransferItem;
+};
+
+/**
+ * A list of DataTransferItem objects representing items being dragged. During a drag operation, each DragEvent has a dataTransfer property and that property is a DataTransferItemList.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList)
+ */
+interface DataTransferItemList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/add) */
+ add(data: string, type: string): DataTransferItem | null;
+ add(data: File): DataTransferItem | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/clear) */
+ clear(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DataTransferItemList/remove) */
+ remove(index: number): void;
+ [index: number]: DataTransferItem;
+}
+
+declare var DataTransferItemList: {
+ prototype: DataTransferItemList;
+ new(): DataTransferItemList;
+ isInstance(obj): obj is DataTransferItemList;
+};
+
+interface DebuggerNotification {
+ readonly global: any;
+ readonly type: DebuggerNotificationType;
+}
+
+declare var DebuggerNotification: {
+ prototype: DebuggerNotification;
+ new(): DebuggerNotification;
+ isInstance(obj): obj is DebuggerNotification;
+};
+
+interface DebuggerNotificationObserver {
+ addListener(handler: DebuggerNotificationCallback): boolean;
+ connect(global: any): boolean;
+ disconnect(global: any): boolean;
+ removeListener(handler: DebuggerNotificationCallback): boolean;
+}
+
+declare var DebuggerNotificationObserver: {
+ prototype: DebuggerNotificationObserver;
+ new(): DebuggerNotificationObserver;
+ isInstance(obj): obj is DebuggerNotificationObserver;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DecompressionStream) */
+interface DecompressionStream extends GenericTransformStream {
+}
+
+declare var DecompressionStream: {
+ prototype: DecompressionStream;
+ new(format: CompressionFormat): DecompressionStream;
+ isInstance(obj): obj is DecompressionStream;
+};
+
+interface DedicatedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {
+ "message": Event;
+ "messageerror": Event;
+ "rtctransform": Event;
+}
+
+/**
+ * (the Worker global scope) is accessible through the self keyword. Some additional global functions, namespaces objects, and constructors, not typically associated with the worker global scope, but available on it, are listed in the JavaScript Reference. See also: Functions available to workers.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope)
+ */
+interface DedicatedWorkerGlobalScope extends WorkerGlobalScope, AnimationFrameProvider {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/name) */
+ readonly name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/message_event) */
+ onmessage: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/messageerror_event) */
+ onmessageerror: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/rtctransform_event) */
+ onrtctransform: ((this: DedicatedWorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/close) */
+ close(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/postMessage) */
+ postMessage(message: any, transfer: any[]): void;
+ postMessage(message: any, options?: StructuredSerializeOptions): void;
+ addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var DedicatedWorkerGlobalScope: {
+ prototype: DedicatedWorkerGlobalScope;
+ new(): DedicatedWorkerGlobalScope;
+ isInstance(obj): obj is DedicatedWorkerGlobalScope;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DelayNode)
+ */
+interface DelayNode extends AudioNode, AudioNodePassThrough {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DelayNode/delayTime) */
+ readonly delayTime: AudioParam;
+}
+
+declare var DelayNode: {
+ prototype: DelayNode;
+ new(context: BaseAudioContext, options?: DelayOptions): DelayNode;
+ isInstance(obj): obj is DelayNode;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeprecationReportBody) */
+interface DeprecationReportBody extends ReportBody {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeprecationReportBody/anticipatedRemoval) */
+ readonly anticipatedRemoval: DOMTimeStamp | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeprecationReportBody/columnNumber) */
+ readonly columnNumber: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeprecationReportBody/id) */
+ readonly id: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeprecationReportBody/lineNumber) */
+ readonly lineNumber: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeprecationReportBody/message) */
+ readonly message: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeprecationReportBody/sourceFile) */
+ readonly sourceFile: string | null;
+}
+
+declare var DeprecationReportBody: {
+ prototype: DeprecationReportBody;
+ new(): DeprecationReportBody;
+ isInstance(obj): obj is DeprecationReportBody;
+};
+
+/** Provides information about the amount of acceleration the device is experiencing along all three axes. */
+interface DeviceAcceleration {
+ readonly x: number | null;
+ readonly y: number | null;
+ readonly z: number | null;
+}
+
+/** The DeviceLightEvent provides web developers with information from photo sensors or similiar detectors about ambient light levels near the device. For example this may be useful to adjust the screen's brightness based on the current ambient light level in order to save energy or provide better readability. */
+interface DeviceLightEvent extends Event {
+ readonly value: number;
+}
+
+declare var DeviceLightEvent: {
+ prototype: DeviceLightEvent;
+ new(type: string, eventInitDict?: DeviceLightEventInit): DeviceLightEvent;
+ isInstance(obj): obj is DeviceLightEvent;
+};
+
+/**
+ * The DeviceMotionEvent provides web developers with information about the speed of changes for the device's position and orientation.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent)
+ */
+interface DeviceMotionEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/acceleration) */
+ readonly acceleration: DeviceAcceleration | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/accelerationIncludingGravity) */
+ readonly accelerationIncludingGravity: DeviceAcceleration | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/interval) */
+ readonly interval: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceMotionEvent/rotationRate) */
+ readonly rotationRate: DeviceRotationRate | null;
+ initDeviceMotionEvent(type: string, canBubble?: boolean, cancelable?: boolean, acceleration?: DeviceAccelerationInit, accelerationIncludingGravity?: DeviceAccelerationInit, rotationRate?: DeviceRotationRateInit, interval?: number | null): void;
+}
+
+declare var DeviceMotionEvent: {
+ prototype: DeviceMotionEvent;
+ new(type: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent;
+ isInstance(obj): obj is DeviceMotionEvent;
+};
+
+/**
+ * The DeviceOrientationEvent provides web developers with information from the physical orientation of the device running the web page.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent)
+ */
+interface DeviceOrientationEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/absolute) */
+ readonly absolute: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/alpha) */
+ readonly alpha: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/beta) */
+ readonly beta: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DeviceOrientationEvent/gamma) */
+ readonly gamma: number | null;
+ initDeviceOrientationEvent(type: string, canBubble?: boolean, cancelable?: boolean, alpha?: number | null, beta?: number | null, gamma?: number | null, absolute?: boolean): void;
+}
+
+declare var DeviceOrientationEvent: {
+ prototype: DeviceOrientationEvent;
+ new(type: string, eventInitDict?: DeviceOrientationEventInit): DeviceOrientationEvent;
+ isInstance(obj): obj is DeviceOrientationEvent;
+};
+
+/** Provides information about the rate at which the device is rotating around all three axes. */
+interface DeviceRotationRate {
+ readonly alpha: number | null;
+ readonly beta: number | null;
+ readonly gamma: number | null;
+}
+
+interface Directory {
+ readonly name: string;
+ readonly path: string;
+ getFiles(recursiveFlag?: boolean): Promise<File[]>;
+ getFilesAndDirectories(): Promise<(File | Directory)[]>;
+}
+
+declare var Directory: {
+ prototype: Directory;
+ new(path: string): Directory;
+ isInstance(obj): obj is Directory;
+};
+
+interface DocumentEventMap extends GlobalEventHandlersEventMap, OnErrorEventHandlerForNodesEventMap, TouchEventHandlersEventMap {
+ "afterscriptexecute": Event;
+ "beforescriptexecute": Event;
+ "fullscreenchange": Event;
+ "fullscreenerror": Event;
+ "pointerlockchange": Event;
+ "pointerlockerror": Event;
+ "readystatechange": Event;
+ "visibilitychange": Event;
+}
+
+/**
+ * Any web page loaded in the browser and serves as an entry point into the web page's content, which is the DOM tree.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document)
+ */
+interface Document extends Node, DocumentOrShadowRoot, FontFaceSource, GeometryUtils, GlobalEventHandlers, OnErrorEventHandlerForNodes, ParentNode, TouchEventHandlers, XPathEvaluatorMixin {
+ /**
+ * Sets or gets the URL for the current document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/URL)
+ */
+ readonly URL: string;
+ /**
+ * Sets or gets the color of all active links in the document.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/alinkColor)
+ */
+ alinkColor: string;
+ /**
+ * Returns a reference to the collection of elements contained by the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/all)
+ */
+ readonly all: HTMLAllCollection;
+ /**
+ * Retrieves a collection of all a objects that have a name and/or id property. Objects in this collection are in HTML source order.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/anchors)
+ */
+ readonly anchors: HTMLCollection;
+ /**
+ * Retrieves a collection of all applet objects in the document.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/applets)
+ */
+ readonly applets: HTMLCollection;
+ /**
+ * Deprecated. Sets or retrieves a value that indicates the background color behind the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/bgColor)
+ */
+ bgColor: string;
+ readonly blockedNodeByClassifierCount: number;
+ readonly blockedNodesByClassifier: NodeList;
+ /**
+ * Specifies the beginning and end of the document body.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/body)
+ */
+ body: HTMLElement | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/characterSet) */
+ readonly characterSet: string;
+ /**
+ * Gets or sets the character set used to encode the object.
+ * @deprecated This is a legacy alias of `characterSet`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/characterSet)
+ */
+ readonly charset: string;
+ readonly commandDispatcher: XULCommandDispatcher | null;
+ /**
+ * Gets a value that indicates whether standards-compliant mode is switched on for the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/compatMode)
+ */
+ readonly compatMode: string;
+ readonly contentLanguage: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/contentType) */
+ readonly contentType: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/cookie) */
+ cookie: string;
+ readonly cookieJarSettings: nsICookieJarSettings;
+ readonly csp: ContentSecurityPolicy | null;
+ readonly cspJSON: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/currentScript) */
+ readonly currentScript: Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/defaultView) */
+ readonly defaultView: WindowProxy | null;
+ /**
+ * Sets or gets a value that indicates whether the document can be edited.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/designMode)
+ */
+ designMode: string;
+ devToolsAnonymousAndShadowEventsEnabled: boolean;
+ devToolsWatchingDOMMutations: boolean;
+ /**
+ * Sets or retrieves a value that indicates the reading order of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/dir)
+ */
+ dir: string;
+ /**
+ * Gets an object representing the document type declaration associated with the current document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/doctype)
+ */
+ readonly doctype: DocumentType | null;
+ /**
+ * Gets a reference to the root node of the document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/documentElement)
+ */
+ readonly documentElement: Element | null;
+ readonly documentLoadGroup: nsILoadGroup | null;
+ readonly documentReadyForIdle: Promise<undefined>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/documentURI) */
+ readonly documentURI: string;
+ readonly documentURIObject: URI | null;
+ /**
+ * Sets or gets the security domain of the document.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/domain)
+ */
+ domain: string;
+ readonly effectiveStoragePrincipal: Principal;
+ /**
+ * Retrieves a collection of all embed objects in the document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/embeds)
+ */
+ readonly embeds: HTMLCollection;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/featurePolicy) */
+ readonly featurePolicy: FeaturePolicy;
+ /**
+ * Sets or gets the foreground (text) color of the document.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fgColor)
+ */
+ fgColor: string;
+ /**
+ * Retrieves a collection, in source order, of all form objects in the document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/forms)
+ */
+ readonly forms: HTMLCollection;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreen)
+ */
+ readonly fullscreen: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenEnabled) */
+ readonly fullscreenEnabled: boolean;
+ readonly hasBeenUserGestureActivated: boolean;
+ readonly hasPendingL10nMutations: boolean;
+ readonly hasValidTransientUserGestureActivation: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/head) */
+ readonly head: HTMLHeadElement | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/hidden) */
+ readonly hidden: boolean;
+ /**
+ * Retrieves a collection, in source order, of img objects in the document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/images)
+ */
+ readonly images: HTMLCollection;
+ /**
+ * Gets the implementation object of the current document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/implementation)
+ */
+ readonly implementation: DOMImplementation;
+ /**
+ * Returns the character encoding used to create the webpage that is loaded into the document object.
+ * @deprecated This is a legacy alias of `characterSet`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/characterSet)
+ */
+ readonly inputEncoding: string;
+ readonly isInitialDocument: boolean;
+ readonly isSrcdocDocument: boolean;
+ readonly l10n: DocumentL10n | null;
+ /**
+ * Gets the date that the page was last modified, if the page supplies one.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/lastModified)
+ */
+ readonly lastModified: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/lastStyleSheetSet)
+ */
+ readonly lastStyleSheetSet: string | null;
+ readonly lastUserGestureTimeStamp: DOMHighResTimeStamp;
+ /**
+ * Sets or gets the color of the document links.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/linkColor)
+ */
+ linkColor: string;
+ /**
+ * Retrieves a collection of all a objects that specify the href property and all area objects in the document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/links)
+ */
+ readonly links: HTMLCollection;
+ readonly loadedFromPrototype: boolean;
+ /**
+ * Contains information about the current URL.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/location)
+ */
+ readonly location: Location | null;
+ readonly mozDocumentURIIfNotForErrorPages: URI | null;
+ /**
+ * @deprecated This is a legacy alias of `fullscreen`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreen)
+ */
+ readonly mozFullScreen: boolean;
+ /**
+ * @deprecated This is a legacy alias of `fullscreenEnabled`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenEnabled)
+ */
+ readonly mozFullScreenEnabled: boolean;
+ readonly mozSyntheticDocument: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/afterscriptexecute_event) */
+ onafterscriptexecute: ((this: Document, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/beforescriptexecute_event) */
+ onbeforescriptexecute: ((this: Document, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenchange_event) */
+ onfullscreenchange: ((this: Document, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenerror_event) */
+ onfullscreenerror: ((this: Document, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pointerlockchange_event) */
+ onpointerlockchange: ((this: Document, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pointerlockerror_event) */
+ onpointerlockerror: ((this: Document, ev: Event) => any) | null;
+ /**
+ * Fires when the state of the object has changed.
+ * @param ev The event
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/readystatechange_event)
+ */
+ onreadystatechange: ((this: Document, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/visibilitychange_event) */
+ onvisibilitychange: ((this: Document, ev: Event) => any) | null;
+ readonly partitionedPrincipal: Principal;
+ readonly permDelegateHandler: nsIPermissionDelegateHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/plugins) */
+ readonly plugins: HTMLCollection;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/preferredStyleSheetSet)
+ */
+ readonly preferredStyleSheetSet: string | null;
+ /**
+ * Retrieves a value that indicates the current state of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/readyState)
+ */
+ readonly readyState: string;
+ /**
+ * Gets the URL of the location that referred the user to the current page.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/referrer)
+ */
+ readonly referrer: string;
+ readonly referrerInfo: nsIReferrerInfo;
+ readonly referrerPolicy: ReferrerPolicy;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/rootElement)
+ */
+ readonly rootElement: SVGSVGElement | null;
+ readonly sandboxFlagsAsString: string | null;
+ /**
+ * Retrieves a collection of all script objects in the document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scripts)
+ */
+ readonly scripts: HTMLCollection;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scrollingElement) */
+ readonly scrollingElement: Element | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/selectedStyleSheetSet)
+ */
+ selectedStyleSheetSet: string | null;
+ styleSheetChangeEventsEnabled: boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/styleSheetSets)
+ */
+ readonly styleSheetSets: DOMStringList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/timeline) */
+ readonly timeline: DocumentTimeline;
+ /**
+ * Contains the title of the document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/title)
+ */
+ title: string;
+ readonly userHasInteracted: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/visibilityState) */
+ readonly visibilityState: VisibilityState;
+ /**
+ * Sets or gets the color of the links that the user has visited.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/vlinkColor)
+ */
+ vlinkColor: string;
+ addCertException(isTemporary: boolean): Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/adoptNode) */
+ adoptNode(node: Node): Node;
+ blockParsing(promise: any, options?: BlockParsingOptions): Promise<any>;
+ blockUnblockOnload(block: boolean): void;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/captureEvents)
+ */
+ captureEvents(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/caretPositionFromPoint) */
+ caretPositionFromPoint(x: number, y: number): CaretPosition | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/clear)
+ */
+ clear(): void;
+ clearUserGestureActivation(): void;
+ /**
+ * Closes an output stream and forces the sent data to display.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/close)
+ */
+ close(): void;
+ completeStorageAccessRequestFromSite(serializedSite: string): Promise<void>;
+ consumeTransientUserGestureActivation(): boolean;
+ /**
+ * Creates an attribute object with a specified name.
+ * @param name String that sets the attribute object's name.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createAttribute)
+ */
+ createAttribute(name: string): Attr;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createAttributeNS) */
+ createAttributeNS(namespace: string | null, name: string): Attr;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createCDATASection) */
+ createCDATASection(data: string): CDATASection;
+ /**
+ * Creates a comment object with the specified data.
+ * @param data Sets the comment object's data.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createComment)
+ */
+ createComment(data: string): Comment;
+ /**
+ * Creates a new document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createDocumentFragment)
+ */
+ createDocumentFragment(): DocumentFragment;
+ /**
+ * Creates an instance of the element for the specified tag.
+ * @param tagName The name of an element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createElement)
+ */
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createElementNS) */
+ createElementNS(namespace: string | null, qualifiedName: string, options?: ElementCreationOptions | string): Element;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createEvent) */
+ createEvent(eventInterface: "AddonEvent"): AddonEvent;
+ createEvent(eventInterface: "AnimationEvent"): AnimationEvent;
+ createEvent(eventInterface: "AnimationPlaybackEvent"): AnimationPlaybackEvent;
+ createEvent(eventInterface: "AudioProcessingEvent"): AudioProcessingEvent;
+ createEvent(eventInterface: "BeforeUnloadEvent"): BeforeUnloadEvent;
+ createEvent(eventInterface: "BlobEvent"): BlobEvent;
+ createEvent(eventInterface: "CaretStateChangedEvent"): CaretStateChangedEvent;
+ createEvent(eventInterface: "ClipboardEvent"): ClipboardEvent;
+ createEvent(eventInterface: "CloseEvent"): CloseEvent;
+ createEvent(eventInterface: "CommandEvent"): CommandEvent;
+ createEvent(eventInterface: "CompositionEvent"): CompositionEvent;
+ createEvent(eventInterface: "ContentVisibilityAutoStateChangeEvent"): ContentVisibilityAutoStateChangeEvent;
+ createEvent(eventInterface: "CustomEvent"): CustomEvent;
+ createEvent(eventInterface: "DeviceLightEvent"): DeviceLightEvent;
+ createEvent(eventInterface: "DeviceMotionEvent"): DeviceMotionEvent;
+ createEvent(eventInterface: "DeviceOrientationEvent"): DeviceOrientationEvent;
+ createEvent(eventInterface: "DragEvent"): DragEvent;
+ createEvent(eventInterface: "ErrorEvent"): ErrorEvent;
+ createEvent(eventInterface: "ExtendableEvent"): ExtendableEvent;
+ createEvent(eventInterface: "ExtendableMessageEvent"): ExtendableMessageEvent;
+ createEvent(eventInterface: "FetchEvent"): FetchEvent;
+ createEvent(eventInterface: "FocusEvent"): FocusEvent;
+ createEvent(eventInterface: "FontFaceSetLoadEvent"): FontFaceSetLoadEvent;
+ createEvent(eventInterface: "FormDataEvent"): FormDataEvent;
+ createEvent(eventInterface: "FrameCrashedEvent"): FrameCrashedEvent;
+ createEvent(eventInterface: "GPUUncapturedErrorEvent"): GPUUncapturedErrorEvent;
+ createEvent(eventInterface: "GamepadAxisMoveEvent"): GamepadAxisMoveEvent;
+ createEvent(eventInterface: "GamepadButtonEvent"): GamepadButtonEvent;
+ createEvent(eventInterface: "GamepadEvent"): GamepadEvent;
+ createEvent(eventInterface: "HashChangeEvent"): HashChangeEvent;
+ createEvent(eventInterface: "IDBVersionChangeEvent"): IDBVersionChangeEvent;
+ createEvent(eventInterface: "ImageCaptureErrorEvent"): ImageCaptureErrorEvent;
+ createEvent(eventInterface: "InputEvent"): InputEvent;
+ createEvent(eventInterface: "InvokeEvent"): InvokeEvent;
+ createEvent(eventInterface: "KeyboardEvent"): KeyboardEvent;
+ createEvent(eventInterface: "MIDIConnectionEvent"): MIDIConnectionEvent;
+ createEvent(eventInterface: "MIDIMessageEvent"): MIDIMessageEvent;
+ createEvent(eventInterface: "MediaEncryptedEvent"): MediaEncryptedEvent;
+ createEvent(eventInterface: "MediaKeyMessageEvent"): MediaKeyMessageEvent;
+ createEvent(eventInterface: "MediaQueryListEvent"): MediaQueryListEvent;
+ createEvent(eventInterface: "MediaRecorderErrorEvent"): MediaRecorderErrorEvent;
+ createEvent(eventInterface: "MediaStreamEvent"): MediaStreamEvent;
+ createEvent(eventInterface: "MediaStreamTrackEvent"): MediaStreamTrackEvent;
+ createEvent(eventInterface: "MerchantValidationEvent"): MerchantValidationEvent;
+ createEvent(eventInterface: "MessageEvent"): MessageEvent;
+ createEvent(eventInterface: "MouseEvent"): MouseEvent;
+ createEvent(eventInterface: "MouseEvents"): MouseEvent;
+ createEvent(eventInterface: "MouseScrollEvent"): MouseScrollEvent;
+ createEvent(eventInterface: "MozApplicationEvent"): MozApplicationEvent;
+ createEvent(eventInterface: "MozSharedMapChangeEvent"): MozSharedMapChangeEvent;
+ createEvent(eventInterface: "MutationEvent"): MutationEvent;
+ createEvent(eventInterface: "MutationEvents"): MutationEvent;
+ createEvent(eventInterface: "NotificationEvent"): NotificationEvent;
+ createEvent(eventInterface: "NotifyPaintEvent"): NotifyPaintEvent;
+ createEvent(eventInterface: "OfflineAudioCompletionEvent"): OfflineAudioCompletionEvent;
+ createEvent(eventInterface: "PageTransitionEvent"): PageTransitionEvent;
+ createEvent(eventInterface: "PaymentMethodChangeEvent"): PaymentMethodChangeEvent;
+ createEvent(eventInterface: "PaymentRequestUpdateEvent"): PaymentRequestUpdateEvent;
+ createEvent(eventInterface: "PerformanceEntryEvent"): PerformanceEntryEvent;
+ createEvent(eventInterface: "PluginCrashedEvent"): PluginCrashedEvent;
+ createEvent(eventInterface: "PointerEvent"): PointerEvent;
+ createEvent(eventInterface: "PopStateEvent"): PopStateEvent;
+ createEvent(eventInterface: "PopupBlockedEvent"): PopupBlockedEvent;
+ createEvent(eventInterface: "PopupPositionedEvent"): PopupPositionedEvent;
+ createEvent(eventInterface: "PositionStateEvent"): PositionStateEvent;
+ createEvent(eventInterface: "ProgressEvent"): ProgressEvent;
+ createEvent(eventInterface: "PromiseRejectionEvent"): PromiseRejectionEvent;
+ createEvent(eventInterface: "PushEvent"): PushEvent;
+ createEvent(eventInterface: "RTCDTMFToneChangeEvent"): RTCDTMFToneChangeEvent;
+ createEvent(eventInterface: "RTCDataChannelEvent"): RTCDataChannelEvent;
+ createEvent(eventInterface: "RTCPeerConnectionIceEvent"): RTCPeerConnectionIceEvent;
+ createEvent(eventInterface: "RTCTrackEvent"): RTCTrackEvent;
+ createEvent(eventInterface: "RTCTransformEvent"): RTCTransformEvent;
+ createEvent(eventInterface: "ScrollAreaEvent"): ScrollAreaEvent;
+ createEvent(eventInterface: "ScrollViewChangeEvent"): ScrollViewChangeEvent;
+ createEvent(eventInterface: "SecurityPolicyViolationEvent"): SecurityPolicyViolationEvent;
+ createEvent(eventInterface: "SimpleGestureEvent"): SimpleGestureEvent;
+ createEvent(eventInterface: "SpeechRecognitionEvent"): SpeechRecognitionEvent;
+ createEvent(eventInterface: "SpeechSynthesisErrorEvent"): SpeechSynthesisErrorEvent;
+ createEvent(eventInterface: "SpeechSynthesisEvent"): SpeechSynthesisEvent;
+ createEvent(eventInterface: "StorageEvent"): StorageEvent;
+ createEvent(eventInterface: "StreamFilterDataEvent"): StreamFilterDataEvent;
+ createEvent(eventInterface: "StyleSheetApplicableStateChangeEvent"): StyleSheetApplicableStateChangeEvent;
+ createEvent(eventInterface: "StyleSheetRemovedEvent"): StyleSheetRemovedEvent;
+ createEvent(eventInterface: "SubmitEvent"): SubmitEvent;
+ createEvent(eventInterface: "TCPServerSocketEvent"): TCPServerSocketEvent;
+ createEvent(eventInterface: "TCPSocketErrorEvent"): TCPSocketErrorEvent;
+ createEvent(eventInterface: "TCPSocketEvent"): TCPSocketEvent;
+ createEvent(eventInterface: "TaskPriorityChangeEvent"): TaskPriorityChangeEvent;
+ createEvent(eventInterface: "TimeEvent"): TimeEvent;
+ createEvent(eventInterface: "ToggleEvent"): ToggleEvent;
+ createEvent(eventInterface: "TouchEvent"): TouchEvent;
+ createEvent(eventInterface: "TrackEvent"): TrackEvent;
+ createEvent(eventInterface: "TransitionEvent"): TransitionEvent;
+ createEvent(eventInterface: "UDPMessageEvent"): UDPMessageEvent;
+ createEvent(eventInterface: "UIEvent"): UIEvent;
+ createEvent(eventInterface: "UIEvents"): UIEvent;
+ createEvent(eventInterface: "UserProximityEvent"): UserProximityEvent;
+ createEvent(eventInterface: "VRDisplayEvent"): VRDisplayEvent;
+ createEvent(eventInterface: "WebGLContextEvent"): WebGLContextEvent;
+ createEvent(eventInterface: "WheelEvent"): WheelEvent;
+ createEvent(eventInterface: "XRInputSourceEvent"): XRInputSourceEvent;
+ createEvent(eventInterface: "XRInputSourcesChangeEvent"): XRInputSourcesChangeEvent;
+ createEvent(eventInterface: "XRReferenceSpaceEvent"): XRReferenceSpaceEvent;
+ createEvent(eventInterface: "XRSessionEvent"): XRSessionEvent;
+ createEvent(eventInterface: "XULCommandEvent"): XULCommandEvent;
+ createEvent(eventInterface: string): Event;
+ /**
+ * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.
+ * @param root The root element or node to start traversing on.
+ * @param whatToShow The type of nodes or elements to appear in the node list
+ * @param filter A custom NodeFilter function to use. For more information, see filter. Use null for no filter.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createNodeIterator)
+ */
+ createNodeIterator(root: Node, whatToShow?: number, filter?: NodeFilter | null): NodeIterator;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createProcessingInstruction) */
+ createProcessingInstruction(target: string, data: string): ProcessingInstruction;
+ /**
+ * Returns an empty range object that has both of its boundary points positioned at the beginning of the document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createRange)
+ */
+ createRange(): Range;
+ /**
+ * Creates a text string from the specified value.
+ * @param data String that specifies the nodeValue property of the text node.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createTextNode)
+ */
+ createTextNode(data: string): Text;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createTouch)
+ */
+ createTouch(view?: Window | null, target?: EventTarget | null, identifier?: number, pageX?: number, pageY?: number, screenX?: number, screenY?: number, clientX?: number, clientY?: number, radiusX?: number, radiusY?: number, rotationAngle?: number, force?: number): Touch;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createTouchList)
+ */
+ createTouchList(touch: Touch, ...touches: Touch[]): TouchList;
+ createTouchList(): TouchList;
+ createTouchList(touches: Touch[]): TouchList;
+ /**
+ * Creates a TreeWalker object that you can use to traverse filtered lists of nodes or elements in a document.
+ * @param root The root element or node to start traversing on.
+ * @param whatToShow The type of nodes or elements to appear in the node list. For more information, see whatToShow.
+ * @param filter A custom NodeFilter function to use.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/createTreeWalker)
+ */
+ createTreeWalker(root: Node, whatToShow?: number, filter?: NodeFilter | null): TreeWalker;
+ createXULElement(localName: string, options?: ElementCreationOptions | string): Element;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/enableStyleSheetsForSet)
+ */
+ enableStyleSheetsForSet(name: string | null): void;
+ /**
+ * Executes a command on the current document, current selection, or the given range.
+ * @param commandId String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.
+ * @param showUI Display the user interface, defaults to false.
+ * @param value Value to assign.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/execCommand)
+ */
+ execCommand(commandId: string, showUI?: boolean, value?: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitFullscreen) */
+ exitFullscreen(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitPointerLock) */
+ exitPointerLock(): void;
+ getConnectedShadowRoots(): ShadowRoot[];
+ /**
+ * Returns a reference to the first object with the specified value of the ID attribute.
+ * @param elementId String that specifies the ID value.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementById)
+ */
+ getElementById(elementId: string): Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByClassName) */
+ getElementsByClassName(classNames: string): HTMLCollection;
+ /**
+ * Gets a collection of objects based on the value of the NAME or ID attribute.
+ * @param elementName Gets a collection of objects based on the value of the NAME or ID attribute.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByName)
+ */
+ getElementsByName(elementName: string): NodeList;
+ /**
+ * Retrieves a collection of objects based on the specified element name.
+ * @param name Specifies the name of an element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByTagName)
+ */
+ getElementsByTagName<K extends keyof HTMLElementTagNameMap>(localName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
+ getElementsByTagName<K extends keyof SVGElementTagNameMap>(localName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
+ getElementsByTagName<K extends keyof MathMLElementTagNameMap>(localName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
+ /** @deprecated */
+ getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(localName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
+ getElementsByTagName(localName: string): HTMLCollectionOf<Element>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getElementsByTagNameNS) */
+ getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollection;
+ getFailedCertSecurityInfo(): FailedCertSecurityInfo;
+ getNetErrorInfo(): NetErrorInfo;
+ /**
+ * Returns an object representing the current selection of the document that is loaded into the object displaying a webpage.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getSelection)
+ */
+ getSelection(): Selection | null;
+ getWireframe(aIncludeNodes?: boolean): Wireframe | null;
+ /**
+ * Gets a value indicating whether the object currently has focus.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/hasFocus)
+ */
+ hasFocus(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/hasStorageAccess) */
+ hasStorageAccess(): Promise<boolean>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/importNode) */
+ importNode(node: Node, deep?: boolean): Node;
+ insertAnonymousContent(aForce?: boolean): AnonymousContent;
+ isActive(): boolean;
+ /**
+ * @deprecated This is a legacy alias of `exitFullscreen`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/exitFullscreen)
+ */
+ mozCancelFullScreen(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/mozSetImageElement) */
+ mozSetImageElement(aImageElementId: string, aImageElement: Element | null): void;
+ notifyUserGestureActivation(): void;
+ /**
+ * Opens a new window and loads a document specified by a given URL. Also, opens a new window that uses the url parameter and the name parameter to collect the output of the write method and the writeln method.
+ * @param url Specifies a MIME type for the document.
+ * @param name Specifies the name of the window. This name is used as the value for the TARGET attribute on a form or an anchor element.
+ * @param features Contains a list of items separated by commas. Each item consists of an option and a value, separated by an equals sign (for example, "fullscreen=yes, toolbar=yes"). The following values are supported.
+ * @param replace Specifies whether the existing entry for the document is replaced in the history list.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/open)
+ */
+ open(unused1?: string, unused2?: string): Document;
+ open(url: string | URL, name: string, features: string): WindowProxy | null;
+ /**
+ * Returns a Boolean value that indicates whether a specified command can be successfully executed using execCommand, given the current state of the document.
+ * @param commandId Specifies a command identifier.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandEnabled)
+ */
+ queryCommandEnabled(commandId: string): boolean;
+ /**
+ * Returns a Boolean value that indicates whether the specified command is in the indeterminate state.
+ * @param commandId String that specifies a command identifier.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandIndeterm)
+ */
+ queryCommandIndeterm(commandId: string): boolean;
+ /**
+ * Returns a Boolean value that indicates the current state of the command.
+ * @param commandId String that specifies a command identifier.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandState)
+ */
+ queryCommandState(commandId: string): boolean;
+ /**
+ * Returns a Boolean value that indicates whether the current command is supported on the current range.
+ * @param commandId Specifies a command identifier.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandSupported)
+ */
+ queryCommandSupported(commandId: string): boolean;
+ /**
+ * Returns the current value of the document, range, or current selection for the given command.
+ * @param commandId String that specifies a command identifier.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/queryCommandValue)
+ */
+ queryCommandValue(commandId: string): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/querySelector) */
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll) */
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/releaseCapture) */
+ releaseCapture(): void;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/releaseEvents)
+ */
+ releaseEvents(): void;
+ reloadWithHttpsOnlyException(): void;
+ removeAnonymousContent(aContent: AnonymousContent): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/requestStorageAccess) */
+ requestStorageAccess(): Promise<void>;
+ requestStorageAccessForOrigin(thirdPartyOrigin: string, requireUserInteraction?: boolean): Promise<void>;
+ requestStorageAccessUnderSite(serializedSite: string): Promise<void>;
+ setKeyPressEventModel(aKeyPressEventModel: number): void;
+ setNotifyFetchSuccess(aShouldNotify: boolean): void;
+ setNotifyFormOrPasswordRemoved(aShouldNotify: boolean): void;
+ setSuppressedEventListener(aListener: EventListener | null): void;
+ userInteractionForTesting(): void;
+ /**
+ * Writes one or more HTML expressions to a document in the specified window.
+ * @param content Specifies the text and HTML tags to write.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/write)
+ */
+ write(...text: string[]): void;
+ /**
+ * Writes one or more HTML expressions, followed by a carriage return, to a document in the specified window.
+ * @param content The text and HTML tags to write.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/writeln)
+ */
+ writeln(...text: string[]): void;
+ readonly KEYPRESS_EVENT_MODEL_DEFAULT: 0;
+ readonly KEYPRESS_EVENT_MODEL_SPLIT: 1;
+ readonly KEYPRESS_EVENT_MODEL_CONFLATED: 2;
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var Document: {
+ prototype: Document;
+ new(): Document;
+ readonly KEYPRESS_EVENT_MODEL_DEFAULT: 0;
+ readonly KEYPRESS_EVENT_MODEL_SPLIT: 1;
+ readonly KEYPRESS_EVENT_MODEL_CONFLATED: 2;
+ parseHTMLUnsafe(html: string): Document;
+ isInstance(obj): obj is Document;
+};
+
+/**
+ * A minimal document object that has no parent. It is used as a lightweight version of Document that stores a segment of a document structure comprised of nodes just like a standard document. The key difference is that because the document fragment isn't part of the active document tree structure, changes made to the fragment don't affect the document, cause reflow, or incur any performance impact that can occur when changes are made.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentFragment)
+ */
+interface DocumentFragment extends Node, ParentNode {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentFragment/getElementById) */
+ getElementById(elementId: string): Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentFragment/querySelector) */
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentFragment/querySelectorAll) */
+}
+
+declare var DocumentFragment: {
+ prototype: DocumentFragment;
+ new(): DocumentFragment;
+ isInstance(obj): obj is DocumentFragment;
+};
+
+interface DocumentL10n extends DOMLocalization {
+ readonly ready: Promise<any>;
+ connectRoot(aElement: Node, aTranslate?: boolean): void;
+}
+
+interface DocumentOrShadowRoot {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/activeElement) */
+ readonly activeElement: Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/adoptedStyleSheets) */
+ adoptedStyleSheets: CSSStyleSheet[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fullscreenElement) */
+ readonly fullscreenElement: Element | null;
+ readonly mozFullScreenElement: Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/pointerLockElement) */
+ readonly pointerLockElement: Element | null;
+ /**
+ * Retrieves a collection of styleSheet objects representing the style sheets that correspond to each instance of a link or style object in the document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/styleSheets)
+ */
+ readonly styleSheets: StyleSheetList;
+ /**
+ * Returns the element for the specified x coordinate and the specified y coordinate.
+ * @param x The x-offset
+ * @param y The y-offset
+ */
+ elementFromPoint(x: number, y: number): Element | null;
+ elementsFromPoint(x: number, y: number): Element[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/getAnimations) */
+ getAnimations(): Animation[];
+ nodeFromPoint(x: number, y: number): Node | null;
+ nodesFromPoint(x: number, y: number): Node[];
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentTimeline) */
+interface DocumentTimeline extends AnimationTimeline {
+}
+
+declare var DocumentTimeline: {
+ prototype: DocumentTimeline;
+ new(options?: DocumentTimelineOptions): DocumentTimeline;
+ isInstance(obj): obj is DocumentTimeline;
+};
+
+/**
+ * A Node containing a doctype.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType)
+ */
+interface DocumentType extends Node, ChildNode {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType/name) */
+ readonly name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType/publicId) */
+ readonly publicId: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentType/systemId) */
+ readonly systemId: string;
+}
+
+declare var DocumentType: {
+ prototype: DocumentType;
+ new(): DocumentType;
+ isInstance(obj): obj is DocumentType;
+};
+
+interface DominatorTree {
+ readonly root: NodeId;
+ getImmediateDominator(node: NodeId): NodeId | null;
+ getImmediatelyDominated(node: NodeId): NodeId[] | null;
+ getRetainedSize(node: NodeId): NodeSize | null;
+}
+
+declare var DominatorTree: {
+ prototype: DominatorTree;
+ new(): DominatorTree;
+ isInstance(obj): obj is DominatorTree;
+};
+
+/**
+ * A DOM event that represents a drag and drop interaction. The user initiates a drag by placing a pointer device (such as a mouse) on the touch surface and then dragging the pointer to a new location (such as another DOM element). Applications are free to interpret a drag and drop interaction in an application-specific way.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DragEvent)
+ */
+interface DragEvent extends MouseEvent {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DragEvent/dataTransfer) */
+ readonly dataTransfer: DataTransfer | null;
+ initDragEvent(type: string, canBubble?: boolean, cancelable?: boolean, aView?: Window | null, aDetail?: number, aScreenX?: number, aScreenY?: number, aClientX?: number, aClientY?: number, aCtrlKey?: boolean, aAltKey?: boolean, aShiftKey?: boolean, aMetaKey?: boolean, aButton?: number, aRelatedTarget?: EventTarget | null, aDataTransfer?: DataTransfer | null): void;
+}
+
+declare var DragEvent: {
+ prototype: DragEvent;
+ new(type: string, eventInitDict?: DragEventInit): DragEvent;
+ isInstance(obj): obj is DragEvent;
+};
+
+/**
+ * Inherits properties from its parent, AudioNode.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode)
+ */
+interface DynamicsCompressorNode extends AudioNode, AudioNodePassThrough {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/attack) */
+ readonly attack: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/knee) */
+ readonly knee: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/ratio) */
+ readonly ratio: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/reduction) */
+ readonly reduction: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/release) */
+ readonly release: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DynamicsCompressorNode/threshold) */
+ readonly threshold: AudioParam;
+}
+
+declare var DynamicsCompressorNode: {
+ prototype: DynamicsCompressorNode;
+ new(context: BaseAudioContext, options?: DynamicsCompressorOptions): DynamicsCompressorNode;
+ isInstance(obj): obj is DynamicsCompressorNode;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_blend_minmax) */
+interface EXT_blend_minmax {
+ readonly MIN_EXT: 0x8007;
+ readonly MAX_EXT: 0x8008;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_color_buffer_float) */
+interface EXT_color_buffer_float {
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_color_buffer_half_float) */
+interface EXT_color_buffer_half_float {
+ readonly RGBA16F_EXT: 0x881A;
+ readonly RGB16F_EXT: 0x881B;
+ readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;
+ readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_disjoint_timer_query) */
+interface EXT_disjoint_timer_query {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_disjoint_timer_query/beginQueryEXT) */
+ beginQueryEXT(target: GLenum, query: WebGLQuery): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_disjoint_timer_query/createQueryEXT) */
+ createQueryEXT(): WebGLQuery | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_disjoint_timer_query/deleteQueryEXT) */
+ deleteQueryEXT(query: WebGLQuery | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_disjoint_timer_query/endQueryEXT) */
+ endQueryEXT(target: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_disjoint_timer_query/getQueryEXT) */
+ getQueryEXT(target: GLenum, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_disjoint_timer_query/getQueryObjectEXT) */
+ getQueryObjectEXT(query: WebGLQuery, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_disjoint_timer_query/isQueryEXT) */
+ isQueryEXT(query: WebGLQuery | null): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_disjoint_timer_query/queryCounterEXT) */
+ queryCounterEXT(query: WebGLQuery, target: GLenum): void;
+ readonly QUERY_COUNTER_BITS_EXT: 0x8864;
+ readonly CURRENT_QUERY_EXT: 0x8865;
+ readonly QUERY_RESULT_EXT: 0x8866;
+ readonly QUERY_RESULT_AVAILABLE_EXT: 0x8867;
+ readonly TIME_ELAPSED_EXT: 0x88BF;
+ readonly TIMESTAMP_EXT: 0x8E28;
+ readonly GPU_DISJOINT_EXT: 0x8FBB;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_float_blend) */
+interface EXT_float_blend {
+}
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_frag_depth)
+ */
+interface EXT_frag_depth {
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_sRGB) */
+interface EXT_sRGB {
+ readonly SRGB_EXT: 0x8C40;
+ readonly SRGB_ALPHA_EXT: 0x8C42;
+ readonly SRGB8_ALPHA8_EXT: 0x8C43;
+ readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: 0x8210;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_shader_texture_lod) */
+interface EXT_shader_texture_lod {
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_compression_bptc) */
+interface EXT_texture_compression_bptc {
+ readonly COMPRESSED_RGBA_BPTC_UNORM_EXT: 0x8E8C;
+ readonly COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT: 0x8E8D;
+ readonly COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT: 0x8E8E;
+ readonly COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT: 0x8E8F;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_compression_rgtc) */
+interface EXT_texture_compression_rgtc {
+ readonly COMPRESSED_RED_RGTC1_EXT: 0x8DBB;
+ readonly COMPRESSED_SIGNED_RED_RGTC1_EXT: 0x8DBC;
+ readonly COMPRESSED_RED_GREEN_RGTC2_EXT: 0x8DBD;
+ readonly COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 0x8DBE;
+}
+
+/**
+ * The EXT_texture_filter_anisotropic extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_filter_anisotropic)
+ */
+interface EXT_texture_filter_anisotropic {
+ readonly TEXTURE_MAX_ANISOTROPY_EXT: 0x84FE;
+ readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: 0x84FF;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EXT_texture_norm16) */
+interface EXT_texture_norm16 {
+ readonly R16_EXT: 0x822A;
+ readonly RG16_EXT: 0x822C;
+ readonly RGB16_EXT: 0x8054;
+ readonly RGBA16_EXT: 0x805B;
+ readonly R16_SNORM_EXT: 0x8F98;
+ readonly RG16_SNORM_EXT: 0x8F99;
+ readonly RGB16_SNORM_EXT: 0x8F9A;
+ readonly RGBA16_SNORM_EXT: 0x8F9B;
+}
+
+interface ElementEventMap {
+ "fullscreenchange": Event;
+ "fullscreenerror": Event;
+}
+
+/**
+ * Element is the most general base class from which all objects in a Document inherit. It only has methods and properties common to all kinds of elements. More specific classes inherit from Element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element)
+ */
+interface Element extends Node, AccessibilityRole, Animatable, AriaAttributes, ChildNode, GeometryUtils, NonDocumentTypeChildNode, ParentNode {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/assignedSlot) */
+ readonly assignedSlot: HTMLSlotElement | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/attributes) */
+ readonly attributes: NamedNodeMap;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/classList) */
+ readonly classList: DOMTokenList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/className) */
+ //classNme
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientHeight) */
+ readonly clientHeight: number;
+ readonly clientHeightDouble: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientLeft) */
+ readonly clientLeft: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientTop) */
+ readonly clientTop: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/clientWidth) */
+ readonly clientWidth: number;
+ readonly clientWidthDouble: number;
+ readonly firstLineBoxBSize: number;
+ readonly fontSizeInflation: number;
+ readonly hasVisibleScrollbars: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/id) */
+ id: string;
+ readonly implementedPseudoElement: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/innerHTML) */
+ innerHTML: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/localName) */
+ readonly localName: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/namespaceURI) */
+ readonly namespaceURI: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/fullscreenchange_event) */
+ onfullscreenchange: ((this: Element, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/fullscreenerror_event) */
+ onfullscreenerror: ((this: Element, ev: Event) => any) | null;
+ readonly openOrClosedAssignedSlot: HTMLSlotElement | null;
+ readonly openOrClosedShadowRoot: ShadowRoot | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/outerHTML) */
+ outerHTML: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/part) */
+ readonly part: DOMTokenList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/prefix) */
+ readonly prefix: string | null;
+ readonly screen: nsIScreen | null;
+ readonly screenX: number;
+ readonly screenY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollHeight) */
+ readonly scrollHeight: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollLeft) */
+ scrollLeft: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollLeftMax) */
+ readonly scrollLeftMax: number;
+ readonly scrollLeftMin: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollTop) */
+ scrollTop: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollTopMax) */
+ readonly scrollTopMax: number;
+ readonly scrollTopMin: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollWidth) */
+ readonly scrollWidth: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/shadowRoot) */
+ readonly shadowRoot: ShadowRoot | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/slot) */
+ slot: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/tagName) */
+ readonly tagName: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/attachShadow) */
+ attachShadow(shadowRootInitDict: ShadowRootInit): ShadowRoot;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/checkVisibility) */
+ checkVisibility(options?: CheckVisibilityOptions): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/closest) */
+ closest(selector: UTF8String): Element | null;
+ getAsFlexContainer(): Flex | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttribute) */
+ getAttribute(name: string): string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNS) */
+ getAttributeNS(namespace: string | null, localName: string): string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNames) */
+ getAttributeNames(): string[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNode) */
+ getAttributeNode(name: string): Attr | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAttributeNodeNS) */
+ getAttributeNodeNS(namespaceURI: string | null, localName: string): Attr | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getBoundingClientRect) */
+ getBoundingClientRect(): DOMRect;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getClientRects) */
+ getClientRects(): DOMRectList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getElementsByClassName) */
+ getElementsByClassName(classNames: string): HTMLCollection;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagName) */
+ getElementsByTagName<K extends keyof HTMLElementTagNameMap>(localName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
+ getElementsByTagName<K extends keyof SVGElementTagNameMap>(localName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
+ getElementsByTagName<K extends keyof MathMLElementTagNameMap>(localName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
+ /** @deprecated */
+ getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(localName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
+ getElementsByTagName(localName: string): HTMLCollectionOf<Element>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getElementsByTagNameNS) */
+ getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollection;
+ getElementsWithGrid(): Element[];
+ getGridFragments(): Grid[];
+ getTransformToAncestor(ancestor: Element): DOMMatrixReadOnly;
+ getTransformToParent(): DOMMatrixReadOnly;
+ getTransformToViewport(): DOMMatrixReadOnly;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasAttribute) */
+ hasAttribute(name: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasAttributeNS) */
+ hasAttributeNS(namespace: string | null, localName: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasAttributes) */
+ hasAttributes(): boolean;
+ hasGridFragments(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/hasPointerCapture) */
+ hasPointerCapture(pointerId: number): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentElement) */
+ insertAdjacentElement(where: string, element: Element): Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentHTML) */
+ insertAdjacentHTML(position: string, text: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/insertAdjacentText) */
+ insertAdjacentText(where: string, data: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/matches) */
+ matches(selector: UTF8String): boolean;
+ /**
+ * @deprecated This is a legacy alias of `matches`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/matches)
+ */
+ mozMatchesSelector(selector: UTF8String): boolean;
+ /**
+ * @deprecated This is a legacy alias of `requestFullscreen`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen)
+ */
+ mozRequestFullScreen(): Promise<void>;
+ mozScrollSnap(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/querySelector) */
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/querySelectorAll) */
+ releaseCapture(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture) */
+ releasePointerCapture(pointerId: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/removeAttribute) */
+ removeAttribute(name: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNS) */
+ removeAttributeNS(namespace: string | null, localName: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/removeAttributeNode) */
+ removeAttributeNode(oldAttr: Attr): Attr | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/requestFullscreen) */
+ requestFullscreen(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/requestPointerLock) */
+ requestPointerLock(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scroll) */
+ scroll(x: number, y: number): void;
+ scroll(options?: ScrollToOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollBy) */
+ scrollBy(x: number, y: number): void;
+ scrollBy(options?: ScrollToOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollIntoView) */
+ scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/scrollTo) */
+ scrollTo(x: number, y: number): void;
+ scrollTo(options?: ScrollToOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttribute) */
+ setAttribute(name: string, value: string): void;
+ setAttributeDevtools(name: string, value: string): void;
+ setAttributeDevtoolsNS(namespace: string | null, name: string, value: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNS) */
+ setAttributeNS(namespace: string | null, name: string, value: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNode) */
+ setAttributeNode(newAttr: Attr): Attr | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setAttributeNodeNS) */
+ setAttributeNodeNS(newAttr: Attr): Attr | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setCapture)
+ */
+ setCapture(retargetToElement?: boolean): void;
+ setCaptureAlways(retargetToElement?: boolean): void;
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setHTML)
+ */
+ setHTML(aInnerHTML: string, options?: SetHTMLOptions): void;
+ setHTMLUnsafe(html: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/setPointerCapture) */
+ setPointerCapture(pointerId: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/toggleAttribute) */
+ toggleAttribute(name: string, force?: boolean): boolean;
+ /**
+ * @deprecated This is a legacy alias of `matches`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/matches)
+ */
+ webkitMatchesSelector(selector: UTF8String): boolean;
+ addEventListener<K extends keyof ElementEventMap>(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof ElementEventMap>(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var Element: {
+ prototype: Element;
+ new(): Element;
+ isInstance(obj): obj is Element;
+};
+
+interface ElementCSSInlineStyle {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/style) */
+ readonly style: CSSStyleDeclaration;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals) */
+interface ElementInternals extends AccessibilityRole, AriaAttributes {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/form) */
+ readonly form: HTMLFormElement | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/labels) */
+ readonly labels: NodeList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/shadowRoot) */
+ readonly shadowRoot: ShadowRoot | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/states) */
+ readonly states: CustomStateSet;
+ readonly validationAnchor: HTMLElement | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/validationMessage) */
+ readonly validationMessage: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/validity) */
+ readonly validity: ValidityState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/willValidate) */
+ readonly willValidate: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/checkValidity) */
+ checkValidity(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/reportValidity) */
+ reportValidity(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/setFormValue) */
+ setFormValue(value: File | string | FormData | null, state?: File | string | FormData | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ElementInternals/setValidity) */
+ setValidity(flags?: ValidityStateFlags, message?: string, anchor?: HTMLElement): void;
+}
+
+declare var ElementInternals: {
+ prototype: ElementInternals;
+ new(): ElementInternals;
+ isInstance(obj): obj is ElementInternals;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk) */
+interface EncodedVideoChunk {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/byteLength) */
+ readonly byteLength: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/duration) */
+ readonly duration: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/timestamp) */
+ readonly timestamp: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/type) */
+ readonly type: EncodedVideoChunkType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EncodedVideoChunk/copyTo) */
+ copyTo(destination: ArrayBufferView | ArrayBuffer): void;
+}
+
+declare var EncodedVideoChunk: {
+ prototype: EncodedVideoChunk;
+ new(init: EncodedVideoChunkInit): EncodedVideoChunk;
+ isInstance(obj): obj is EncodedVideoChunk;
+};
+
+/**
+ * Events providing information related to errors in scripts or in files.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent)
+ */
+interface ErrorEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/colno) */
+ readonly colno: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/error) */
+ "error": ErrorEvent;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/filename) */
+ readonly filename: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/lineno) */
+ readonly lineno: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ErrorEvent/message) */
+ readonly message: string;
+}
+
+declare var ErrorEvent: {
+ prototype: ErrorEvent;
+ new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent;
+ isInstance(obj): obj is ErrorEvent;
+};
+
+/**
+ * An event which takes place in the DOM.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event)
+ */
+interface Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/bubbles) */
+ readonly bubbles: boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelBubble)
+ */
+ cancelBubble: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelable) */
+ readonly cancelable: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composed) */
+ readonly composed: boolean;
+ readonly composedTarget: EventTarget | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget) */
+ readonly currentTarget: EventTarget | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/defaultPrevented) */
+ readonly defaultPrevented: boolean;
+ readonly defaultPreventedByChrome: boolean;
+ readonly defaultPreventedByContent: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/eventPhase) */
+ readonly eventPhase: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/explicitOriginalTarget) */
+ readonly explicitOriginalTarget: EventTarget | null;
+ readonly isReplyEventFromRemoteContent: boolean;
+ readonly isSynthesized: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/isTrusted) */
+ readonly isTrusted: boolean;
+ readonly isWaitingReplyFromRemoteContent: boolean;
+ readonly multipleActionsPrevented: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/originalTarget) */
+ readonly originalTarget: EventTarget | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/returnValue)
+ */
+ returnValue: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target) */
+ readonly target: EventTarget | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/timeStamp) */
+ readonly timeStamp: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/type) */
+ readonly type: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composedPath) */
+ composedPath(): EventTarget[];
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/initEvent)
+ */
+ initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/preventDefault) */
+ preventDefault(): void;
+ preventMultipleActions(): void;
+ requestReplyFromRemoteContent(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopImmediatePropagation) */
+ stopImmediatePropagation(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopPropagation) */
+ stopPropagation(): void;
+ readonly NONE: 0;
+ readonly CAPTURING_PHASE: 1;
+ readonly AT_TARGET: 2;
+ readonly BUBBLING_PHASE: 3;
+ readonly ALT_MASK: 0x00000001;
+ readonly CONTROL_MASK: 0x00000002;
+ readonly SHIFT_MASK: 0x00000004;
+ readonly META_MASK: 0x00000008;
+}
+
+declare var Event: {
+ prototype: Event;
+ new(type: string, eventInitDict?: EventInit): Event;
+ readonly NONE: 0;
+ readonly CAPTURING_PHASE: 1;
+ readonly AT_TARGET: 2;
+ readonly BUBBLING_PHASE: 3;
+ readonly ALT_MASK: 0x00000001;
+ readonly CONTROL_MASK: 0x00000002;
+ readonly SHIFT_MASK: 0x00000004;
+ readonly META_MASK: 0x00000008;
+ isInstance(obj): obj is Event;
+};
+
+interface EventCallbackDebuggerNotification extends CallbackDebuggerNotification {
+ readonly event: Event;
+ readonly targetType: EventCallbackDebuggerNotificationType;
+}
+
+declare var EventCallbackDebuggerNotification: {
+ prototype: EventCallbackDebuggerNotification;
+ new(): EventCallbackDebuggerNotification;
+ isInstance(obj): obj is EventCallbackDebuggerNotification;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventCounts) */
+interface EventCounts {
+ forEach(callbackfn: (value: number, key: string, parent: EventCounts) => void, thisArg?: any): void;
+}
+
+declare var EventCounts: {
+ prototype: EventCounts;
+ new(): EventCounts;
+ isInstance(obj): obj is EventCounts;
+};
+
+interface EventSourceEventMap {
+ "error": ErrorEvent;
+ "message": Event;
+ "open": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource) */
+interface EventSource extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/error_event) */
+ onerror: OnErrorEventHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/message_event) */
+ onmessage: ((this: EventSource, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/open_event) */
+ onopen: ((this: EventSource, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/readyState) */
+ readonly readyState: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/url) */
+ readonly url: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/withCredentials) */
+ readonly withCredentials: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/close) */
+ close(): void;
+ readonly CONNECTING: 0;
+ readonly OPEN: 1;
+ readonly CLOSED: 2;
+ addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var EventSource: {
+ prototype: EventSource;
+ new(url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource;
+ readonly CONNECTING: 0;
+ readonly OPEN: 1;
+ readonly CLOSED: 2;
+ isInstance(obj): obj is EventSource;
+};
+
+/**
+ * EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget)
+ */
+interface EventTarget {
+ readonly ownerGlobal: WindowProxy | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener) */
+ addEventListener(type: string, listener: EventListener | null, options?: AddEventListenerOptions | boolean, wantsUntrusted?: boolean | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent) */
+ dispatchEvent(event: Event): boolean;
+ getEventHandler(type: string): EventHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener) */
+ removeEventListener(type: string, listener: EventListener | null, options?: EventListenerOptions | boolean): void;
+ setEventHandler(type: string, handler: EventHandler): void;
+}
+
+declare var EventTarget: {
+ prototype: EventTarget;
+ new(): EventTarget;
+ isInstance(obj): obj is EventTarget;
+};
+
+interface Exception extends ExceptionMembers {
+ readonly message: string;
+ readonly name: string;
+ toString(): string;
+}
+
+interface ExceptionMembers {
+ readonly columnNumber: number;
+ readonly data: nsISupports | null;
+ readonly filename: string;
+ readonly lineNumber: number;
+ readonly location: StackFrame | null;
+ readonly result: number;
+ stack?: string;
+}
+
+/**
+ * Extends the lifetime of the install and activate events dispatched on the global scope as part of the service worker lifecycle. This ensures that any functional events (like FetchEvent) are not dispatched until it upgrades database schemas and deletes the outdated cache entries.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableEvent)
+ */
+interface ExtendableEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableEvent/waitUntil) */
+ waitUntil(p: any): void;
+}
+
+declare var ExtendableEvent: {
+ prototype: ExtendableEvent;
+ new(type: string, eventInitDict?: ExtendableEventInit): ExtendableEvent;
+ isInstance(obj): obj is ExtendableEvent;
+};
+
+/**
+ * This ServiceWorker API interface represents the event object of a message event fired on a service worker (when a channel message is received on the ServiceWorkerGlobalScope from another context) — extends the lifetime of such events.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent)
+ */
+interface ExtendableMessageEvent extends ExtendableEvent {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/data) */
+ readonly data: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/lastEventId) */
+ readonly lastEventId: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/origin) */
+ readonly origin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/ports) */
+ readonly ports: MessagePort[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ExtendableMessageEvent/source) */
+ readonly source: Client | ServiceWorker | MessagePort | null;
+}
+
+declare var ExtendableMessageEvent: {
+ prototype: ExtendableMessageEvent;
+ new(type: string, eventInitDict?: ExtendableMessageEventInit): ExtendableMessageEvent;
+ isInstance(obj): obj is ExtendableMessageEvent;
+};
+
+interface ExtensionAlarms {
+ readonly onAlarm: ExtensionEventManager;
+ clear(name: string, callback?: Function): any;
+ clear(callback?: Function): any;
+ clearAll(callback?: Function): any;
+ create(name: string, alarmInfo: any): void;
+ create(alarmInfo: any): void;
+ get(name: string, callback?: Function): any;
+ get(callback?: Function): any;
+ getAll(callback?: Function): any;
+}
+
+interface ExtensionBrowser {
+ readonly alarms: ExtensionAlarms;
+ readonly browserSettings: ExtensionBrowserSettings;
+ readonly dns: ExtensionDns;
+ readonly mockExtensionAPI: ExtensionMockAPI;
+ readonly proxy: ExtensionProxy;
+ readonly runtime: ExtensionRuntime;
+ readonly scripting: ExtensionScripting;
+ readonly test: ExtensionTest;
+}
+
+interface ExtensionBrowserSettings {
+ readonly allowPopupsForUserEvents: ExtensionSetting;
+ readonly cacheEnabled: ExtensionSetting;
+ readonly closeTabsByDoubleClick: ExtensionSetting;
+ readonly colorManagement: ExtensionBrowserSettingsColorManagement;
+ readonly contextMenuShowEvent: ExtensionSetting;
+ readonly ftpProtocolEnabled: ExtensionSetting;
+ readonly homepageOverride: ExtensionSetting;
+ readonly imageAnimationBehavior: ExtensionSetting;
+ readonly newTabPageOverride: ExtensionSetting;
+ readonly newTabPosition: ExtensionSetting;
+ readonly openBookmarksInNewTabs: ExtensionSetting;
+ readonly openSearchResultsInNewTabs: ExtensionSetting;
+ readonly openUrlbarResultsInNewTabs: ExtensionSetting;
+ readonly overrideContentColorScheme: ExtensionSetting;
+ readonly overrideDocumentColors: ExtensionSetting;
+ readonly useDocumentFonts: ExtensionSetting;
+ readonly webNotificationsDisabled: ExtensionSetting;
+ readonly zoomFullPage: ExtensionSetting;
+ readonly zoomSiteSpecific: ExtensionSetting;
+}
+
+interface ExtensionBrowserSettingsColorManagement {
+ readonly mode: ExtensionSetting;
+ readonly useNativeSRGB: ExtensionSetting;
+ readonly useWebRenderCompositor: ExtensionSetting;
+}
+
+interface ExtensionDns {
+ resolve(...args: any[]): any;
+}
+
+interface ExtensionEventManager {
+ addListener(callback: Function, listenerOptions?: any): void;
+ hasListener(callback: Function): boolean;
+ hasListeners(): boolean;
+ removeListener(callback: Function): void;
+}
+
+interface ExtensionGlobalsMixin {
+ readonly browser: ExtensionBrowser;
+}
+
+interface ExtensionMockAPI {
+ readonly onTestEvent: ExtensionEventManager;
+ readonly propertyAsErrorObject: any;
+ readonly propertyAsString: string;
+ methodAmbiguousArgsAsync(...args: any[]): any;
+ methodAsync(arg0: any, cb?: Function): any;
+ methodNoReturn(...args: any[]): void;
+ methodReturnsPort(testName: string): ExtensionPort;
+ methodSyncWithReturn(...args: any[]): any;
+}
+
+interface ExtensionPort {
+ "error": ErrorEvent;
+ readonly name: string;
+ readonly onDisconnect: ExtensionEventManager;
+ readonly onMessage: ExtensionEventManager;
+ readonly sender: any;
+ disconnect(): void;
+ postMessage(message: any): void;
+}
+
+interface ExtensionProxy {
+ readonly onError: ExtensionEventManager;
+ readonly onRequest: ExtensionEventManager;
+ readonly settings: ExtensionSetting;
+}
+
+interface ExtensionRuntime {
+ readonly id: string;
+ readonly lastError: any;
+ readonly onConnect: ExtensionEventManager;
+ readonly onConnectExternal: ExtensionEventManager;
+ readonly onInstalled: ExtensionEventManager;
+ readonly onMessage: ExtensionEventManager;
+ readonly onMessageExternal: ExtensionEventManager;
+ readonly onStartup: ExtensionEventManager;
+ readonly onUpdateAvailable: ExtensionEventManager;
+ connect(extensionId: string, connectInfo: any): ExtensionPort;
+ connect(connectInfo: any): ExtensionPort;
+ connect(): ExtensionPort;
+ connectNative(application: string): ExtensionPort;
+ getBrowserInfo(callback?: Function): any;
+ getManifest(): any;
+ getPlatformInfo(callback?: Function): any;
+ getURL(path: string): string;
+ openOptionsPage(callback?: Function): any;
+ reload(): void;
+ sendMessage(...args: any[]): any;
+ sendNativeMessage(application: string, message: any, responseCallback?: Function): any;
+ setUninstallURL(url: string, callback?: Function): any;
+ setUninstallURL(callback?: Function): any;
+}
+
+interface ExtensionScripting {
+ executeScript(injection: any, callback?: Function): any;
+ getRegisteredContentScripts(...args: any[]): any;
+ insertCSS(injection: any, callback?: Function): any;
+ registerContentScripts(scripts: any, callback?: Function): any;
+ removeCSS(injection: any, callback?: Function): any;
+ unregisterContentScripts(...args: any[]): any;
+ updateContentScripts(scripts: any, callback?: Function): any;
+}
+
+interface ExtensionSetting {
+ readonly onChange: ExtensionEventManager;
+ clear(details: any, callback?: Function): any;
+ get(details: any, callback?: Function): any;
+ set(details: any, callback?: Function): any;
+}
+
+interface ExtensionTest {
+ readonly onMessage: ExtensionEventManager;
+ assertDeepEq(...args: any[]): void;
+ assertEq(...args: any[]): void;
+ assertFalse(...args: any[]): void;
+ assertRejects(promise: any, expectedError: any, message: string, callback?: Function): any;
+ assertRejects(promise: any, expectedError: any, callback?: Function): any;
+ assertThrows(func: Function, expectedError: any, message: string): void;
+ assertThrows(func: Function, expectedError: any): void;
+ assertTrue(...args: any[]): void;
+ fail(message: any): void;
+ fail(): void;
+ log(message: string): void;
+ notifyFail(message: string): void;
+ notifyPass(message: string): void;
+ notifyPass(): void;
+ sendMessage(...args: any[]): void;
+ succeed(message: any): void;
+ succeed(): void;
+ withHandlingUserInput(callback: Function): void;
+}
+
+/**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/External)
+ */
+interface External {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/External/AddSearchProvider)
+ */
+ AddSearchProvider(): void;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/External/IsSearchProviderInstalled)
+ */
+ IsSearchProviderInstalled(): void;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FeaturePolicy) */
+interface FeaturePolicy {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FeaturePolicy/allowedFeatures) */
+ allowedFeatures(): string[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FeaturePolicy/allowsFeature) */
+ allowsFeature(feature: string, origin?: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FeaturePolicy/features) */
+ features(): string[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FeaturePolicy/getAllowlistForFeature) */
+ getAllowlistForFeature(feature: string): string[];
+}
+
+interface FeaturePolicyViolationReportBody extends ReportBody {
+ readonly columnNumber: number | null;
+ readonly disposition: string;
+ readonly featureId: string;
+ readonly lineNumber: number | null;
+ readonly sourceFile: string | null;
+}
+
+declare var FeaturePolicyViolationReportBody: {
+ prototype: FeaturePolicyViolationReportBody;
+ new(): FeaturePolicyViolationReportBody;
+ isInstance(obj): obj is FeaturePolicyViolationReportBody;
+};
+
+/**
+ * This is the event type for fetch events dispatched on the service worker global scope. It contains information about the fetch, including the request and how the receiver will treat the response. It provides the event.respondWith() method, which allows us to provide a response to this fetch.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent)
+ */
+interface FetchEvent extends ExtendableEvent {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/clientId) */
+ readonly clientId: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/handled) */
+ readonly handled: Promise<undefined>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/preloadResponse) */
+ readonly preloadResponse: Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/request) */
+ readonly request: Request;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/resultingClientId) */
+ readonly resultingClientId: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FetchEvent/respondWith) */
+ respondWith(r: Response | PromiseLike<Response>): void;
+}
+
+declare var FetchEvent: {
+ prototype: FetchEvent;
+ new(type: string, eventInitDict: FetchEventInit): FetchEvent;
+ isInstance(obj): obj is FetchEvent;
+};
+
+interface FetchObserverEventMap {
+ "requestprogress": Event;
+ "responseprogress": Event;
+ "statechange": Event;
+}
+
+interface FetchObserver extends EventTarget {
+ onrequestprogress: ((this: FetchObserver, ev: Event) => any) | null;
+ onresponseprogress: ((this: FetchObserver, ev: Event) => any) | null;
+ onstatechange: ((this: FetchObserver, ev: Event) => any) | null;
+ readonly state: FetchState;
+ addEventListener<K extends keyof FetchObserverEventMap>(type: K, listener: (this: FetchObserver, ev: FetchObserverEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof FetchObserverEventMap>(type: K, listener: (this: FetchObserver, ev: FetchObserverEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var FetchObserver: {
+ prototype: FetchObserver;
+ new(): FetchObserver;
+ isInstance(obj): obj is FetchObserver;
+};
+
+/**
+ * Provides information about files and allows JavaScript in a web page to access their content.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/File)
+ */
+interface File extends Blob {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/lastModified) */
+ readonly lastModified: number;
+ readonly mozFullPath: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/name) */
+ readonly name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/File/webkitRelativePath) */
+ readonly webkitRelativePath: string;
+}
+
+declare var File: {
+ prototype: File;
+ new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File;
+ createFromFileName(fileName: string, options?: ChromeFilePropertyBag): Promise<File>;
+ createFromNsIFile(file: nsIFile, options?: ChromeFilePropertyBag): Promise<File>;
+ isInstance(obj): obj is File;
+};
+
+/**
+ * An object of this type is returned by the files property of the HTML <input> element; this lets you access the list of files selected with the <input type="file"> element. It's also used for a list of files dropped into web content when using the drag and drop API; see the DataTransfer object for details on this usage.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList)
+ */
+interface FileList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileList/item) */
+ item(index: number): File | null;
+ [index: number]: File;
+}
+
+declare var FileList: {
+ prototype: FileList;
+ new(): FileList;
+ isInstance(obj): obj is FileList;
+};
+
+interface FileReaderEventMap {
+ "abort": Event;
+ "error": ErrorEvent;
+ "load": Event;
+ "loadend": Event;
+ "loadstart": Event;
+ "progress": Event;
+}
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader)
+ */
+interface FileReader extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/error) */
+ "error": ErrorEvent;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/abort_event) */
+ onabort: ((this: FileReader, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/error_event) */
+ onerror: OnErrorEventHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/load_event) */
+ onload: ((this: FileReader, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/loadend_event) */
+ onloadend: ((this: FileReader, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/loadstart_event) */
+ onloadstart: ((this: FileReader, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/progress_event) */
+ onprogress: ((this: FileReader, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readyState) */
+ readonly readyState: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/result) */
+ readonly result: string | ArrayBuffer | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/abort) */
+ abort(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsArrayBuffer) */
+ readAsArrayBuffer(blob: Blob): void;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsBinaryString)
+ */
+ readAsBinaryString(filedata: Blob): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsDataURL) */
+ readAsDataURL(blob: Blob): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReader/readAsText) */
+ readAsText(blob: Blob, label?: string): void;
+ readonly EMPTY: 0;
+ readonly LOADING: 1;
+ readonly DONE: 2;
+ addEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof FileReaderEventMap>(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var FileReader: {
+ prototype: FileReader;
+ new(): FileReader;
+ readonly EMPTY: 0;
+ readonly LOADING: 1;
+ readonly DONE: 2;
+ isInstance(obj): obj is FileReader;
+};
+
+/**
+ * Allows to read File or Blob objects in a synchronous way.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync)
+ */
+interface FileReaderSync {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsArrayBuffer) */
+ readAsArrayBuffer(blob: Blob): ArrayBuffer;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsBinaryString)
+ */
+ readAsBinaryString(blob: Blob): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsDataURL) */
+ readAsDataURL(blob: Blob): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileReaderSync/readAsText) */
+ readAsText(blob: Blob, encoding?: string): string;
+}
+
+declare var FileReaderSync: {
+ prototype: FileReaderSync;
+ new(): FileReaderSync;
+ isInstance(obj): obj is FileReaderSync;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystem) */
+interface FileSystem {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystem/name) */
+ readonly name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystem/root) */
+ readonly root: FileSystemDirectoryEntry;
+}
+
+declare var FileSystem: {
+ prototype: FileSystem;
+ new(): FileSystem;
+ isInstance(obj): obj is FileSystem;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry) */
+interface FileSystemDirectoryEntry extends FileSystemEntry {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry/createReader) */
+ createReader(): FileSystemDirectoryReader;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry/getDirectory) */
+ getDirectory(path?: string | null, options?: FileSystemFlags, successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryEntry/getFile) */
+ getFile(path?: string | null, options?: FileSystemFlags, successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;
+}
+
+declare var FileSystemDirectoryEntry: {
+ prototype: FileSystemDirectoryEntry;
+ new(): FileSystemDirectoryEntry;
+ isInstance(obj): obj is FileSystemDirectoryEntry;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle)
+ */
+interface FileSystemDirectoryHandle extends FileSystemHandle {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/getDirectoryHandle) */
+ getDirectoryHandle(name: string, options?: FileSystemGetDirectoryOptions): Promise<FileSystemDirectoryHandle>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/getFileHandle) */
+ getFileHandle(name: string, options?: FileSystemGetFileOptions): Promise<FileSystemFileHandle>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/removeEntry) */
+ removeEntry(name: string, options?: FileSystemRemoveOptions): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryHandle/resolve) */
+ resolve(possibleDescendant: FileSystemHandle): Promise<string[] | null>;
+}
+
+declare var FileSystemDirectoryHandle: {
+ prototype: FileSystemDirectoryHandle;
+ new(): FileSystemDirectoryHandle;
+ isInstance(obj): obj is FileSystemDirectoryHandle;
+};
+
+/** Available only in secure contexts. */
+interface FileSystemDirectoryIterator {
+ next(): Promise<any>;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryReader) */
+interface FileSystemDirectoryReader {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemDirectoryReader/readEntries) */
+ readEntries(successCallback: FileSystemEntriesCallback, errorCallback?: ErrorCallback): void;
+}
+
+declare var FileSystemDirectoryReader: {
+ prototype: FileSystemDirectoryReader;
+ new(): FileSystemDirectoryReader;
+ isInstance(obj): obj is FileSystemDirectoryReader;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry) */
+interface FileSystemEntry {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/filesystem) */
+ readonly filesystem: FileSystem;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/fullPath) */
+ readonly fullPath: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/isDirectory) */
+ readonly isDirectory: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/isFile) */
+ readonly isFile: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/name) */
+ readonly name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemEntry/getParent) */
+ getParent(successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void;
+}
+
+declare var FileSystemEntry: {
+ prototype: FileSystemEntry;
+ new(): FileSystemEntry;
+ isInstance(obj): obj is FileSystemEntry;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileEntry) */
+interface FileSystemFileEntry extends FileSystemEntry {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileEntry/file) */
+ file(successCallback: FileCallback, errorCallback?: ErrorCallback): void;
+}
+
+declare var FileSystemFileEntry: {
+ prototype: FileSystemFileEntry;
+ new(): FileSystemFileEntry;
+ isInstance(obj): obj is FileSystemFileEntry;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle)
+ */
+interface FileSystemFileHandle extends FileSystemHandle {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/createSyncAccessHandle) */
+ createSyncAccessHandle(): Promise<FileSystemSyncAccessHandle>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/createWritable) */
+ createWritable(options?: FileSystemCreateWritableOptions): Promise<FileSystemWritableFileStream>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemFileHandle/getFile) */
+ getFile(): Promise<File>;
+}
+
+declare var FileSystemFileHandle: {
+ prototype: FileSystemFileHandle;
+ new(): FileSystemFileHandle;
+ isInstance(obj): obj is FileSystemFileHandle;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle)
+ */
+interface FileSystemHandle {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/kind) */
+ readonly kind: FileSystemHandleKind;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/name) */
+ readonly name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemHandle/isSameEntry) */
+ isSameEntry(other: FileSystemHandle): Promise<boolean>;
+ move(name: string): Promise<void>;
+ move(parent: FileSystemDirectoryHandle): Promise<void>;
+ move(parent: FileSystemDirectoryHandle, name: string): Promise<void>;
+}
+
+declare var FileSystemHandle: {
+ prototype: FileSystemHandle;
+ new(): FileSystemHandle;
+ isInstance(obj): obj is FileSystemHandle;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle)
+ */
+interface FileSystemSyncAccessHandle {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/close) */
+ close(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/flush) */
+ flush(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/getSize) */
+ getSize(): number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/read) */
+ read(buffer: ArrayBufferView | ArrayBuffer, options?: FileSystemReadWriteOptions): number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/truncate) */
+ truncate(size: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemSyncAccessHandle/write) */
+ write(buffer: ArrayBufferView | ArrayBuffer, options?: FileSystemReadWriteOptions): number;
+}
+
+declare var FileSystemSyncAccessHandle: {
+ prototype: FileSystemSyncAccessHandle;
+ new(): FileSystemSyncAccessHandle;
+ isInstance(obj): obj is FileSystemSyncAccessHandle;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream)
+ */
+interface FileSystemWritableFileStream extends WritableStream {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/seek) */
+ seek(position: number): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/truncate) */
+ truncate(size: number): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FileSystemWritableFileStream/write) */
+ write(data: FileSystemWriteChunkType): Promise<void>;
+}
+
+declare var FileSystemWritableFileStream: {
+ prototype: FileSystemWritableFileStream;
+ new(): FileSystemWritableFileStream;
+ isInstance(obj): obj is FileSystemWritableFileStream;
+};
+
+interface Flex {
+ readonly crossAxisDirection: FlexPhysicalDirection;
+ readonly mainAxisDirection: FlexPhysicalDirection;
+ getLines(): FlexLineValues[];
+}
+
+declare var Flex: {
+ prototype: Flex;
+ new(): Flex;
+ isInstance(obj): obj is Flex;
+};
+
+interface FlexItemValues {
+ readonly clampState: FlexItemClampState;
+ readonly crossMaxSize: number;
+ readonly crossMinSize: number;
+ readonly frameRect: DOMRectReadOnly;
+ readonly mainBaseSize: number;
+ readonly mainDeltaSize: number;
+ readonly mainMaxSize: number;
+ readonly mainMinSize: number;
+ readonly node: Node | null;
+}
+
+declare var FlexItemValues: {
+ prototype: FlexItemValues;
+ new(): FlexItemValues;
+ isInstance(obj): obj is FlexItemValues;
+};
+
+interface FlexLineValues {
+ readonly crossSize: number;
+ readonly crossStart: number;
+ readonly firstBaselineOffset: number;
+ readonly growthState: FlexLineGrowthState;
+ readonly lastBaselineOffset: number;
+ getItems(): FlexItemValues[];
+}
+
+declare var FlexLineValues: {
+ prototype: FlexLineValues;
+ new(): FlexLineValues;
+ isInstance(obj): obj is FlexLineValues;
+};
+
+interface FluentBundle {
+ readonly locales: UTF8String[];
+ addResource(aResource: FluentResource, aOptions?: FluentBundleAddResourceOptions): void;
+ formatPattern(pattern: FluentPattern, aArgs?: L10nArgs | null, aErrors?: any): UTF8String;
+ getMessage(id: UTF8String): FluentMessage | null;
+ hasMessage(id: UTF8String): boolean;
+}
+
+declare var FluentBundle: {
+ prototype: FluentBundle;
+ new(aLocales: UTF8String | UTF8String[], aOptions?: FluentBundleOptions): FluentBundle;
+ isInstance(obj): obj is FluentBundle;
+};
+
+interface FluentBundleAsyncIterator {
+ next(): Promise<FluentBundleIteratorResult>;
+ values(): FluentBundleAsyncIterator;
+}
+
+interface FluentBundleIterator {
+ next(): FluentBundleIteratorResult;
+ values(): FluentBundleIterator;
+}
+
+interface FluentPattern {
+}
+
+declare var FluentPattern: {
+ prototype: FluentPattern;
+ new(): FluentPattern;
+ isInstance(obj): obj is FluentPattern;
+};
+
+interface FluentResource {
+ textElements(): FluentTextElementItem[];
+}
+
+declare var FluentResource: {
+ prototype: FluentResource;
+ new(source: UTF8String): FluentResource;
+ isInstance(obj): obj is FluentResource;
+};
+
+/**
+ * Focus-related events like focus, blur, focusin, or focusout.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FocusEvent)
+ */
+interface FocusEvent extends UIEvent {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FocusEvent/relatedTarget) */
+ readonly relatedTarget: EventTarget | null;
+}
+
+declare var FocusEvent: {
+ prototype: FocusEvent;
+ new(typeArg: string, focusEventInitDict?: FocusEventInit): FocusEvent;
+ isInstance(obj): obj is FocusEvent;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace) */
+interface FontFace {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/ascentOverride) */
+ ascentOverride: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/descentOverride) */
+ descentOverride: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/display) */
+ display: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/family) */
+ family: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/featureSettings) */
+ featureSettings: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/lineGapOverride) */
+ lineGapOverride: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/loaded) */
+ readonly loaded: Promise<FontFace>;
+ sizeAdjust: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/status) */
+ readonly status: FontFaceLoadStatus;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/stretch) */
+ stretch: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/style) */
+ style: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/unicodeRange) */
+ unicodeRange: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/variant) */
+ variant: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/variationSettings) */
+ variationSettings: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/weight) */
+ weight: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFace/load) */
+ load(): Promise<FontFace>;
+}
+
+declare var FontFace: {
+ prototype: FontFace;
+ new(family: UTF8String, source: UTF8String | BinaryData, descriptors?: FontFaceDescriptors): FontFace;
+ isInstance(obj): obj is FontFace;
+};
+
+interface FontFaceSetEventMap {
+ "loading": Event;
+ "loadingdone": Event;
+ "loadingerror": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet) */
+interface FontFaceSet extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loading_event) */
+ onloading: ((this: FontFaceSet, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loadingdone_event) */
+ onloadingdone: ((this: FontFaceSet, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/loadingerror_event) */
+ onloadingerror: ((this: FontFaceSet, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/ready) */
+ readonly ready: Promise<undefined>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/size) */
+ readonly size: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/status) */
+ readonly status: FontFaceSetLoadStatus;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/add) */
+ add(font: FontFace): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/check) */
+ check(font: UTF8String, text?: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/clear) */
+ clear(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/delete) */
+ delete(font: FontFace): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/entries) */
+ entries(): FontFaceSetIterator;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/forEach) */
+ forEach(cb: FontFaceSetForEachCallback, thisArg?: any): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/has) */
+ has(font: FontFace): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/load) */
+ load(font: UTF8String, text?: string): Promise<FontFace[]>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSet/values) */
+ values(): FontFaceSetIterator;
+ addEventListener<K extends keyof FontFaceSetEventMap>(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof FontFaceSetEventMap>(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var FontFaceSet: {
+ prototype: FontFaceSet;
+ new(): FontFaceSet;
+ isInstance(obj): obj is FontFaceSet;
+};
+
+interface FontFaceSetIterator {
+ next(): FontFaceSetIteratorResult;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSetLoadEvent) */
+interface FontFaceSetLoadEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FontFaceSetLoadEvent/fontfaces) */
+ readonly fontfaces: FontFace[];
+}
+
+declare var FontFaceSetLoadEvent: {
+ prototype: FontFaceSetLoadEvent;
+ new(type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent;
+ isInstance(obj): obj is FontFaceSetLoadEvent;
+};
+
+interface FontFaceSource {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/fonts) */
+ readonly fonts: FontFaceSet;
+}
+
+/**
+ * Provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to "multipart/form-data".
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData)
+ */
+interface FormData {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/append) */
+ append(name: string, value: Blob, filename?: string): void;
+ append(name: string, value: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/delete) */
+ delete(name: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/get) */
+ get(name: string): FormDataEntryValue | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/getAll) */
+ getAll(name: string): FormDataEntryValue[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/has) */
+ has(name: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormData/set) */
+ set(name: string, value: Blob, filename?: string): void;
+ set(name: string, value: string): void;
+ forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any): void;
+}
+
+declare var FormData: {
+ prototype: FormData;
+ new(form?: HTMLFormElement, submitter?: HTMLElement | null): FormData;
+ isInstance(obj): obj is FormData;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormDataEvent) */
+interface FormDataEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/FormDataEvent/formData) */
+ readonly formData: FormData;
+}
+
+declare var FormDataEvent: {
+ prototype: FormDataEvent;
+ new(type: string, eventInitDict?: FormDataEventInit): FormDataEvent;
+ isInstance(obj): obj is FormDataEvent;
+};
+
+interface FrameCrashedEvent extends Event {
+ readonly browsingContextId: number;
+ readonly childID: number;
+ readonly isTopFrame: boolean;
+}
+
+declare var FrameCrashedEvent: {
+ prototype: FrameCrashedEvent;
+ new(type: string, eventInitDict?: FrameCrashedEventInit): FrameCrashedEvent;
+ isInstance(obj): obj is FrameCrashedEvent;
+};
+
+interface FrameLoader extends WebBrowserPersistable {
+ readonly browsingContext: BrowsingContext | null;
+ readonly childID: number;
+ readonly depthTooGreat: boolean;
+ readonly docShell: nsIDocShell | null;
+ readonly isDead: boolean;
+ readonly isRemoteFrame: boolean;
+ readonly lazyHeight: number;
+ readonly lazyWidth: number;
+ readonly loadContext: LoadContext | null;
+ readonly messageManager: MessageSender | null;
+ readonly ownerElement: Element | null;
+ readonly ownerIsMozBrowserFrame: boolean;
+ readonly remoteTab: RemoteTab | null;
+ exitPrintPreview(): void;
+ printPreview(aPrintSettings: nsIPrintSettings, aSourceBrowsingContext: BrowsingContext | null): Promise<number>;
+ requestEpochUpdate(aEpoch: number): void;
+ requestSHistoryUpdate(): void;
+ requestTabStateFlush(): Promise<void>;
+ requestUpdatePosition(): void;
+}
+
+declare var FrameLoader: {
+ prototype: FrameLoader;
+ new(): FrameLoader;
+ isInstance(obj): obj is FrameLoader;
+};
+
+interface FrameScriptLoader {
+ getDelayedFrameScripts(): any[][];
+ loadFrameScript(url: string, allowDelayedLoad: boolean, runInGlobalScope?: boolean): void;
+ removeDelayedFrameScript(url: string): void;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPU)
+ */
+interface GPU {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPU/getPreferredCanvasFormat) */
+ getPreferredCanvasFormat(): GPUTextureFormat;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPU/requestAdapter) */
+ requestAdapter(options?: GPURequestAdapterOptions): Promise<GPUAdapter | null>;
+}
+
+declare var GPU: {
+ prototype: GPU;
+ new(): GPU;
+ isInstance(obj): obj is GPU;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapter)
+ */
+interface GPUAdapter {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapter/features) */
+ readonly features: GPUSupportedFeatures;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapter/isFallbackAdapter) */
+ readonly isFallbackAdapter: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapter/limits) */
+ readonly limits: GPUSupportedLimits;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapter/requestAdapterInfo) */
+ requestAdapterInfo(unmaskHints?: string[]): Promise<GPUAdapterInfo>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapter/requestDevice) */
+ requestDevice(descriptor?: GPUDeviceDescriptor): Promise<GPUDevice>;
+}
+
+declare var GPUAdapter: {
+ prototype: GPUAdapter;
+ new(): GPUAdapter;
+ isInstance(obj): obj is GPUAdapter;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapterInfo)
+ */
+interface GPUAdapterInfo {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapterInfo/architecture) */
+ readonly architecture: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapterInfo/description) */
+ readonly description: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapterInfo/device) */
+ readonly device: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUAdapterInfo/vendor) */
+ readonly vendor: string;
+ readonly wgpuBackend: string;
+ readonly wgpuDevice: number;
+ readonly wgpuDeviceType: string;
+ readonly wgpuDriver: string;
+ readonly wgpuDriverInfo: string;
+ readonly wgpuName: string;
+ readonly wgpuVendor: number;
+}
+
+declare var GPUAdapterInfo: {
+ prototype: GPUAdapterInfo;
+ new(): GPUAdapterInfo;
+ isInstance(obj): obj is GPUAdapterInfo;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBindGroup)
+ */
+interface GPUBindGroup extends GPUObjectBase {
+}
+
+declare var GPUBindGroup: {
+ prototype: GPUBindGroup;
+ new(): GPUBindGroup;
+ isInstance(obj): obj is GPUBindGroup;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBindGroupLayout)
+ */
+interface GPUBindGroupLayout extends GPUObjectBase {
+}
+
+declare var GPUBindGroupLayout: {
+ prototype: GPUBindGroupLayout;
+ new(): GPUBindGroupLayout;
+ isInstance(obj): obj is GPUBindGroupLayout;
+};
+
+interface GPUBindingCommandsMixin {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePassEncoder/setBindGroup) */
+ setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup, dynamicOffsets?: GPUBufferDynamicOffset[]): void;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer)
+ */
+interface GPUBuffer extends GPUObjectBase {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer/mapState) */
+ readonly mapState: GPUBufferMapState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer/size) */
+ readonly size: GPUSize64Out;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer/usage) */
+ readonly usage: GPUFlagsConstant;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer/destroy) */
+ destroy(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer/getMappedRange) */
+ getMappedRange(offset?: GPUSize64, size?: GPUSize64): ArrayBuffer;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer/mapAsync) */
+ mapAsync(mode: GPUMapModeFlags, offset?: GPUSize64, size?: GPUSize64): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBuffer/unmap) */
+ unmap(): void;
+}
+
+declare var GPUBuffer: {
+ prototype: GPUBuffer;
+ new(): GPUBuffer;
+ isInstance(obj): obj is GPUBuffer;
+};
+
+/** Available only in secure contexts. */
+interface GPUBufferUsage {
+ readonly MAP_READ: 0x0001;
+ readonly MAP_WRITE: 0x0002;
+ readonly COPY_SRC: 0x0004;
+ readonly COPY_DST: 0x0008;
+ readonly INDEX: 0x0010;
+ readonly VERTEX: 0x0020;
+ readonly UNIFORM: 0x0040;
+ readonly STORAGE: 0x0080;
+ readonly INDIRECT: 0x0100;
+ readonly QUERY_RESOLVE: 0x0200;
+}
+
+declare var GPUBufferUsage: {
+ prototype: GPUBufferUsage;
+ new(): GPUBufferUsage;
+ readonly MAP_READ: 0x0001;
+ readonly MAP_WRITE: 0x0002;
+ readonly COPY_SRC: 0x0004;
+ readonly COPY_DST: 0x0008;
+ readonly INDEX: 0x0010;
+ readonly VERTEX: 0x0020;
+ readonly UNIFORM: 0x0040;
+ readonly STORAGE: 0x0080;
+ readonly INDIRECT: 0x0100;
+ readonly QUERY_RESOLVE: 0x0200;
+ isInstance(obj): obj is GPUBufferUsage;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCanvasContext)
+ */
+interface GPUCanvasContext {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCanvasContext/canvas) */
+ readonly canvas: HTMLCanvasElement | OffscreenCanvas;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCanvasContext/configure) */
+ configure(configuration: GPUCanvasConfiguration): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCanvasContext/getCurrentTexture) */
+ getCurrentTexture(): GPUTexture;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCanvasContext/unconfigure) */
+ unconfigure(): void;
+}
+
+declare var GPUCanvasContext: {
+ prototype: GPUCanvasContext;
+ new(): GPUCanvasContext;
+ isInstance(obj): obj is GPUCanvasContext;
+};
+
+/** Available only in secure contexts. */
+interface GPUColorWrite {
+ readonly RED: 0x1;
+ readonly GREEN: 0x2;
+ readonly BLUE: 0x4;
+ readonly ALPHA: 0x8;
+ readonly ALL: 0xF;
+}
+
+declare var GPUColorWrite: {
+ prototype: GPUColorWrite;
+ new(): GPUColorWrite;
+ readonly RED: 0x1;
+ readonly GREEN: 0x2;
+ readonly BLUE: 0x4;
+ readonly ALPHA: 0x8;
+ readonly ALL: 0xF;
+ isInstance(obj): obj is GPUColorWrite;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandBuffer)
+ */
+interface GPUCommandBuffer extends GPUObjectBase {
+}
+
+declare var GPUCommandBuffer: {
+ prototype: GPUCommandBuffer;
+ new(): GPUCommandBuffer;
+ isInstance(obj): obj is GPUCommandBuffer;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder)
+ */
+interface GPUCommandEncoder extends GPUDebugCommandsMixin, GPUObjectBase {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder/beginComputePass) */
+ beginComputePass(descriptor?: GPUComputePassDescriptor): GPUComputePassEncoder;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder/beginRenderPass) */
+ beginRenderPass(descriptor: GPURenderPassDescriptor): GPURenderPassEncoder;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder/clearBuffer) */
+ clearBuffer(buffer: GPUBuffer, offset?: GPUSize64, size?: GPUSize64): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder/copyBufferToBuffer) */
+ copyBufferToBuffer(source: GPUBuffer, sourceOffset: GPUSize64, destination: GPUBuffer, destinationOffset: GPUSize64, size: GPUSize64): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder/copyBufferToTexture) */
+ copyBufferToTexture(source: GPUImageCopyBuffer, destination: GPUImageCopyTexture, copySize: GPUExtent3D): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder/copyTextureToBuffer) */
+ copyTextureToBuffer(source: GPUImageCopyTexture, destination: GPUImageCopyBuffer, copySize: GPUExtent3D): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder/copyTextureToTexture) */
+ copyTextureToTexture(source: GPUImageCopyTexture, destination: GPUImageCopyTexture, copySize: GPUExtent3D): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder/finish) */
+ finish(descriptor?: GPUCommandBufferDescriptor): GPUCommandBuffer;
+}
+
+declare var GPUCommandEncoder: {
+ prototype: GPUCommandEncoder;
+ new(): GPUCommandEncoder;
+ isInstance(obj): obj is GPUCommandEncoder;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCompilationInfo)
+ */
+interface GPUCompilationInfo {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCompilationInfo/messages) */
+ readonly messages: GPUCompilationMessage[];
+}
+
+declare var GPUCompilationInfo: {
+ prototype: GPUCompilationInfo;
+ new(): GPUCompilationInfo;
+ isInstance(obj): obj is GPUCompilationInfo;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCompilationMessage)
+ */
+interface GPUCompilationMessage {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCompilationMessage/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCompilationMessage/lineNum) */
+ readonly lineNum: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCompilationMessage/linePos) */
+ readonly linePos: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCompilationMessage/message) */
+ readonly message: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCompilationMessage/offset) */
+ readonly offset: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCompilationMessage/type) */
+ readonly type: GPUCompilationMessageType;
+}
+
+declare var GPUCompilationMessage: {
+ prototype: GPUCompilationMessage;
+ new(): GPUCompilationMessage;
+ isInstance(obj): obj is GPUCompilationMessage;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePassEncoder)
+ */
+interface GPUComputePassEncoder extends GPUBindingCommandsMixin, GPUDebugCommandsMixin, GPUObjectBase {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePassEncoder/dispatchWorkgroups) */
+ dispatchWorkgroups(workgroupCountX: GPUSize32, workgroupCountY?: GPUSize32, workgroupCountZ?: GPUSize32): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePassEncoder/dispatchWorkgroupsIndirect) */
+ dispatchWorkgroupsIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePassEncoder/end) */
+ end(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePassEncoder/setPipeline) */
+ setPipeline(pipeline: GPUComputePipeline): void;
+}
+
+declare var GPUComputePassEncoder: {
+ prototype: GPUComputePassEncoder;
+ new(): GPUComputePassEncoder;
+ isInstance(obj): obj is GPUComputePassEncoder;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePipeline)
+ */
+interface GPUComputePipeline extends GPUObjectBase, GPUPipelineBase {
+}
+
+declare var GPUComputePipeline: {
+ prototype: GPUComputePipeline;
+ new(): GPUComputePipeline;
+ isInstance(obj): obj is GPUComputePipeline;
+};
+
+interface GPUDebugCommandsMixin {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder/insertDebugMarker) */
+ insertDebugMarker(markerLabel: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder/popDebugGroup) */
+ popDebugGroup(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUCommandEncoder/pushDebugGroup) */
+ pushDebugGroup(groupLabel: string): void;
+}
+
+interface GPUDeviceEventMap {
+ "uncapturederror": Event;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice)
+ */
+interface GPUDevice extends EventTarget, GPUObjectBase {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/features) */
+ readonly features: GPUSupportedFeatures;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/limits) */
+ readonly limits: GPUSupportedLimits;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/lost) */
+ readonly lost: Promise<GPUDeviceLostInfo>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/uncapturederror_event) */
+ onuncapturederror: ((this: GPUDevice, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/queue) */
+ readonly queue: GPUQueue;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroup) */
+ createBindGroup(descriptor: GPUBindGroupDescriptor): GPUBindGroup;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBindGroupLayout) */
+ createBindGroupLayout(descriptor: GPUBindGroupLayoutDescriptor): GPUBindGroupLayout;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createBuffer) */
+ createBuffer(descriptor: GPUBufferDescriptor): GPUBuffer;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createCommandEncoder) */
+ createCommandEncoder(descriptor?: GPUCommandEncoderDescriptor): GPUCommandEncoder;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createComputePipeline) */
+ createComputePipeline(descriptor: GPUComputePipelineDescriptor): GPUComputePipeline;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createComputePipelineAsync) */
+ createComputePipelineAsync(descriptor: GPUComputePipelineDescriptor): Promise<GPUComputePipeline>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createPipelineLayout) */
+ createPipelineLayout(descriptor: GPUPipelineLayoutDescriptor): GPUPipelineLayout;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createRenderBundleEncoder) */
+ createRenderBundleEncoder(descriptor: GPURenderBundleEncoderDescriptor): GPURenderBundleEncoder;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createRenderPipeline) */
+ createRenderPipeline(descriptor: GPURenderPipelineDescriptor): GPURenderPipeline;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createRenderPipelineAsync) */
+ createRenderPipelineAsync(descriptor: GPURenderPipelineDescriptor): Promise<GPURenderPipeline>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createSampler) */
+ createSampler(descriptor?: GPUSamplerDescriptor): GPUSampler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createShaderModule) */
+ createShaderModule(descriptor: GPUShaderModuleDescriptor): GPUShaderModule;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/createTexture) */
+ createTexture(descriptor: GPUTextureDescriptor): GPUTexture;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/destroy) */
+ destroy(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/popErrorScope) */
+ popErrorScope(): Promise<GPUError | null>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDevice/pushErrorScope) */
+ pushErrorScope(filter: GPUErrorFilter): void;
+ addEventListener<K extends keyof GPUDeviceEventMap>(type: K, listener: (this: GPUDevice, ev: GPUDeviceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof GPUDeviceEventMap>(type: K, listener: (this: GPUDevice, ev: GPUDeviceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var GPUDevice: {
+ prototype: GPUDevice;
+ new(): GPUDevice;
+ isInstance(obj): obj is GPUDevice;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDeviceLostInfo)
+ */
+interface GPUDeviceLostInfo {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDeviceLostInfo/message) */
+ readonly message: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUDeviceLostInfo/reason) */
+ readonly reason: any;
+}
+
+declare var GPUDeviceLostInfo: {
+ prototype: GPUDeviceLostInfo;
+ new(): GPUDeviceLostInfo;
+ isInstance(obj): obj is GPUDeviceLostInfo;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUError)
+ */
+interface GPUError {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUError/message) */
+ readonly message: string;
+}
+
+declare var GPUError: {
+ prototype: GPUError;
+ new(): GPUError;
+ isInstance(obj): obj is GPUError;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUInternalError)
+ */
+interface GPUInternalError extends GPUError {
+}
+
+declare var GPUInternalError: {
+ prototype: GPUInternalError;
+ new(message: string): GPUInternalError;
+ isInstance(obj): obj is GPUInternalError;
+};
+
+/** Available only in secure contexts. */
+interface GPUMapMode {
+ readonly READ: 0x0001;
+ readonly WRITE: 0x0002;
+}
+
+declare var GPUMapMode: {
+ prototype: GPUMapMode;
+ new(): GPUMapMode;
+ readonly READ: 0x0001;
+ readonly WRITE: 0x0002;
+ isInstance(obj): obj is GPUMapMode;
+};
+
+interface GPUObjectBase {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUBindGroup/label) */
+ label: string | null;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUOutOfMemoryError)
+ */
+interface GPUOutOfMemoryError extends GPUError {
+}
+
+declare var GPUOutOfMemoryError: {
+ prototype: GPUOutOfMemoryError;
+ new(message: string): GPUOutOfMemoryError;
+ isInstance(obj): obj is GPUOutOfMemoryError;
+};
+
+interface GPUPipelineBase {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUComputePipeline/getBindGroupLayout) */
+ getBindGroupLayout(index: number): GPUBindGroupLayout;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUPipelineLayout)
+ */
+interface GPUPipelineLayout extends GPUObjectBase {
+}
+
+declare var GPUPipelineLayout: {
+ prototype: GPUPipelineLayout;
+ new(): GPUPipelineLayout;
+ isInstance(obj): obj is GPUPipelineLayout;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQuerySet)
+ */
+interface GPUQuerySet extends GPUObjectBase {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQuerySet/destroy) */
+ destroy(): void;
+}
+
+declare var GPUQuerySet: {
+ prototype: GPUQuerySet;
+ new(): GPUQuerySet;
+ isInstance(obj): obj is GPUQuerySet;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQueue)
+ */
+interface GPUQueue extends GPUObjectBase {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQueue/copyExternalImageToTexture) */
+ copyExternalImageToTexture(source: GPUImageCopyExternalImage, destination: GPUImageCopyTextureTagged, copySize: GPUExtent3D): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQueue/onSubmittedWorkDone) */
+ onSubmittedWorkDone(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQueue/submit) */
+ submit(buffers: GPUCommandBuffer[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQueue/writeBuffer) */
+ writeBuffer(buffer: GPUBuffer, bufferOffset: GPUSize64, data: BufferSource, dataOffset?: GPUSize64, size?: GPUSize64): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUQueue/writeTexture) */
+ writeTexture(destination: GPUImageCopyTexture, data: BufferSource, dataLayout: GPUImageDataLayout, size: GPUExtent3D): void;
+}
+
+declare var GPUQueue: {
+ prototype: GPUQueue;
+ new(): GPUQueue;
+ isInstance(obj): obj is GPUQueue;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderBundle)
+ */
+interface GPURenderBundle extends GPUObjectBase {
+}
+
+declare var GPURenderBundle: {
+ prototype: GPURenderBundle;
+ new(): GPURenderBundle;
+ isInstance(obj): obj is GPURenderBundle;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderBundleEncoder)
+ */
+interface GPURenderBundleEncoder extends GPUBindingCommandsMixin, GPUDebugCommandsMixin, GPUObjectBase, GPURenderCommandsMixin {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderBundleEncoder/finish) */
+ finish(descriptor?: GPURenderBundleDescriptor): GPURenderBundle;
+}
+
+declare var GPURenderBundleEncoder: {
+ prototype: GPURenderBundleEncoder;
+ new(): GPURenderBundleEncoder;
+ isInstance(obj): obj is GPURenderBundleEncoder;
+};
+
+interface GPURenderCommandsMixin {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderBundleEncoder/draw) */
+ draw(vertexCount: GPUSize32, instanceCount?: GPUSize32, firstVertex?: GPUSize32, firstInstance?: GPUSize32): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderBundleEncoder/drawIndexed) */
+ drawIndexed(indexCount: GPUSize32, instanceCount?: GPUSize32, firstIndex?: GPUSize32, baseVertex?: GPUSignedOffset32, firstInstance?: GPUSize32): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderBundleEncoder/drawIndexedIndirect) */
+ drawIndexedIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderBundleEncoder/drawIndirect) */
+ drawIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderBundleEncoder/setIndexBuffer) */
+ setIndexBuffer(buffer: GPUBuffer, indexFormat: GPUIndexFormat, offset?: GPUSize64, size?: GPUSize64): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderBundleEncoder/setPipeline) */
+ setPipeline(pipeline: GPURenderPipeline): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderBundleEncoder/setVertexBuffer) */
+ setVertexBuffer(slot: GPUIndex32, buffer: GPUBuffer, offset?: GPUSize64, size?: GPUSize64): void;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderPassEncoder)
+ */
+interface GPURenderPassEncoder extends GPUBindingCommandsMixin, GPUDebugCommandsMixin, GPUObjectBase, GPURenderCommandsMixin {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderPassEncoder/end) */
+ end(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderPassEncoder/executeBundles) */
+ executeBundles(bundles: GPURenderBundle[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderPassEncoder/setBlendConstant) */
+ setBlendConstant(color: GPUColor): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderPassEncoder/setScissorRect) */
+ setScissorRect(x: GPUIntegerCoordinate, y: GPUIntegerCoordinate, width: GPUIntegerCoordinate, height: GPUIntegerCoordinate): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderPassEncoder/setStencilReference) */
+ setStencilReference(reference: GPUStencilValue): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderPassEncoder/setViewport) */
+ setViewport(x: number, y: number, width: number, height: number, minDepth: number, maxDepth: number): void;
+}
+
+declare var GPURenderPassEncoder: {
+ prototype: GPURenderPassEncoder;
+ new(): GPURenderPassEncoder;
+ isInstance(obj): obj is GPURenderPassEncoder;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPURenderPipeline)
+ */
+interface GPURenderPipeline extends GPUObjectBase, GPUPipelineBase {
+}
+
+declare var GPURenderPipeline: {
+ prototype: GPURenderPipeline;
+ new(): GPURenderPipeline;
+ isInstance(obj): obj is GPURenderPipeline;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUSampler)
+ */
+interface GPUSampler extends GPUObjectBase {
+}
+
+declare var GPUSampler: {
+ prototype: GPUSampler;
+ new(): GPUSampler;
+ isInstance(obj): obj is GPUSampler;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUShaderModule)
+ */
+interface GPUShaderModule extends GPUObjectBase {
+ compilationInfo(): Promise<GPUCompilationInfo>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUShaderModule/getCompilationInfo) */
+ getCompilationInfo(): Promise<GPUCompilationInfo>;
+}
+
+declare var GPUShaderModule: {
+ prototype: GPUShaderModule;
+ new(): GPUShaderModule;
+ isInstance(obj): obj is GPUShaderModule;
+};
+
+/** Available only in secure contexts. */
+interface GPUShaderStage {
+ readonly VERTEX: 0x1;
+ readonly FRAGMENT: 0x2;
+ readonly COMPUTE: 0x4;
+}
+
+declare var GPUShaderStage: {
+ prototype: GPUShaderStage;
+ new(): GPUShaderStage;
+ readonly VERTEX: 0x1;
+ readonly FRAGMENT: 0x2;
+ readonly COMPUTE: 0x4;
+ isInstance(obj): obj is GPUShaderStage;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUSupportedFeatures)
+ */
+interface GPUSupportedFeatures {
+ forEach(callbackfn: (value: string, key: string, parent: GPUSupportedFeatures) => void, thisArg?: any): void;
+}
+
+declare var GPUSupportedFeatures: {
+ prototype: GPUSupportedFeatures;
+ new(): GPUSupportedFeatures;
+ isInstance(obj): obj is GPUSupportedFeatures;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUSupportedLimits)
+ */
+interface GPUSupportedLimits {
+ readonly maxBindGroups: number;
+ readonly maxBindGroupsPlusVertexBuffers: number;
+ readonly maxBindingsPerBindGroup: number;
+ readonly maxBufferSize: number;
+ readonly maxColorAttachmentBytesPerSample: number;
+ readonly maxColorAttachments: number;
+ readonly maxComputeInvocationsPerWorkgroup: number;
+ readonly maxComputeWorkgroupSizeX: number;
+ readonly maxComputeWorkgroupSizeY: number;
+ readonly maxComputeWorkgroupSizeZ: number;
+ readonly maxComputeWorkgroupStorageSize: number;
+ readonly maxComputeWorkgroupsPerDimension: number;
+ readonly maxDynamicStorageBuffersPerPipelineLayout: number;
+ readonly maxDynamicUniformBuffersPerPipelineLayout: number;
+ readonly maxInterStageShaderComponents: number;
+ readonly maxInterStageShaderVariables: number;
+ readonly maxSampledTexturesPerShaderStage: number;
+ readonly maxSamplersPerShaderStage: number;
+ readonly maxStorageBufferBindingSize: number;
+ readonly maxStorageBuffersPerShaderStage: number;
+ readonly maxStorageTexturesPerShaderStage: number;
+ readonly maxTextureArrayLayers: number;
+ readonly maxTextureDimension1D: number;
+ readonly maxTextureDimension2D: number;
+ readonly maxTextureDimension3D: number;
+ readonly maxUniformBufferBindingSize: number;
+ readonly maxUniformBuffersPerShaderStage: number;
+ readonly maxVertexAttributes: number;
+ readonly maxVertexBufferArrayStride: number;
+ readonly maxVertexBuffers: number;
+ readonly minStorageBufferOffsetAlignment: number;
+ readonly minUniformBufferOffsetAlignment: number;
+}
+
+declare var GPUSupportedLimits: {
+ prototype: GPUSupportedLimits;
+ new(): GPUSupportedLimits;
+ isInstance(obj): obj is GPUSupportedLimits;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUTexture)
+ */
+interface GPUTexture extends GPUObjectBase {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUTexture/depthOrArrayLayers) */
+ readonly depthOrArrayLayers: GPUIntegerCoordinateOut;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUTexture/dimension) */
+ readonly dimension: GPUTextureDimension;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUTexture/format) */
+ readonly format: GPUTextureFormat;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUTexture/height) */
+ readonly height: GPUIntegerCoordinateOut;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUTexture/mipLevelCount) */
+ readonly mipLevelCount: GPUIntegerCoordinateOut;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUTexture/sampleCount) */
+ readonly sampleCount: GPUSize32Out;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUTexture/usage) */
+ readonly usage: GPUFlagsConstant;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUTexture/width) */
+ readonly width: GPUIntegerCoordinateOut;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUTexture/createView) */
+ createView(descriptor?: GPUTextureViewDescriptor): GPUTextureView;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUTexture/destroy) */
+ destroy(): void;
+}
+
+declare var GPUTexture: {
+ prototype: GPUTexture;
+ new(): GPUTexture;
+ isInstance(obj): obj is GPUTexture;
+};
+
+/** Available only in secure contexts. */
+interface GPUTextureUsage {
+ readonly COPY_SRC: 0x01;
+ readonly COPY_DST: 0x02;
+ readonly TEXTURE_BINDING: 0x04;
+ readonly STORAGE_BINDING: 0x08;
+ readonly RENDER_ATTACHMENT: 0x10;
+}
+
+declare var GPUTextureUsage: {
+ prototype: GPUTextureUsage;
+ new(): GPUTextureUsage;
+ readonly COPY_SRC: 0x01;
+ readonly COPY_DST: 0x02;
+ readonly TEXTURE_BINDING: 0x04;
+ readonly STORAGE_BINDING: 0x08;
+ readonly RENDER_ATTACHMENT: 0x10;
+ isInstance(obj): obj is GPUTextureUsage;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUTextureView)
+ */
+interface GPUTextureView extends GPUObjectBase {
+}
+
+declare var GPUTextureView: {
+ prototype: GPUTextureView;
+ new(): GPUTextureView;
+ isInstance(obj): obj is GPUTextureView;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUUncapturedErrorEvent)
+ */
+interface GPUUncapturedErrorEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUUncapturedErrorEvent/error) */
+ "error": ErrorEvent;
+}
+
+declare var GPUUncapturedErrorEvent: {
+ prototype: GPUUncapturedErrorEvent;
+ new(type: string, gpuUncapturedErrorEventInitDict: GPUUncapturedErrorEventInit): GPUUncapturedErrorEvent;
+ isInstance(obj): obj is GPUUncapturedErrorEvent;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GPUValidationError)
+ */
+interface GPUValidationError extends GPUError {
+}
+
+declare var GPUValidationError: {
+ prototype: GPUValidationError;
+ new(message: string): GPUValidationError;
+ isInstance(obj): obj is GPUValidationError;
+};
+
+/**
+ * A change in volume. It is an AudioNode audio-processing module that causes a given gain to be applied to the input data before its propagation to the output. A GainNode always has exactly one input and one output, both with the same number of channels.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GainNode)
+ */
+interface GainNode extends AudioNode, AudioNodePassThrough {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GainNode/gain) */
+ readonly gain: AudioParam;
+}
+
+declare var GainNode: {
+ prototype: GainNode;
+ new(context: BaseAudioContext, options?: GainOptions): GainNode;
+ isInstance(obj): obj is GainNode;
+};
+
+/**
+ * This Gamepad API interface defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id.
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad)
+ */
+interface Gamepad {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/axes) */
+ readonly axes: number[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/buttons) */
+ readonly buttons: GamepadButton[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/connected) */
+ readonly connected: boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/displayId)
+ */
+ readonly displayId: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/hand) */
+ readonly hand: GamepadHand;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/hapticActuators) */
+ readonly hapticActuators: GamepadHapticActuator[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/id) */
+ readonly id: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/index) */
+ readonly index: number;
+ readonly lightIndicators: GamepadLightIndicator[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/mapping) */
+ readonly mapping: GamepadMappingType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/pose) */
+ readonly pose: GamepadPose | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Gamepad/timestamp) */
+ readonly timestamp: DOMHighResTimeStamp;
+ readonly touchEvents: GamepadTouch[];
+}
+
+declare var Gamepad: {
+ prototype: Gamepad;
+ new(): Gamepad;
+ isInstance(obj): obj is Gamepad;
+};
+
+/** Available only in secure contexts. */
+interface GamepadAxisMoveEvent extends GamepadEvent {
+ readonly axis: number;
+ readonly value: number;
+}
+
+declare var GamepadAxisMoveEvent: {
+ prototype: GamepadAxisMoveEvent;
+ new(type: string, eventInitDict?: GamepadAxisMoveEventInit): GamepadAxisMoveEvent;
+ isInstance(obj): obj is GamepadAxisMoveEvent;
+};
+
+/**
+ * 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.
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton)
+ */
+interface GamepadButton {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton/pressed) */
+ readonly pressed: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton/touched) */
+ readonly touched: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadButton/value) */
+ readonly value: number;
+}
+
+declare var GamepadButton: {
+ prototype: GamepadButton;
+ new(): GamepadButton;
+ isInstance(obj): obj is GamepadButton;
+};
+
+/** Available only in secure contexts. */
+interface GamepadButtonEvent extends GamepadEvent {
+ readonly button: number;
+}
+
+declare var GamepadButtonEvent: {
+ prototype: GamepadButtonEvent;
+ new(type: string, eventInitDict?: GamepadButtonEventInit): GamepadButtonEvent;
+ isInstance(obj): obj is GamepadButtonEvent;
+};
+
+/**
+ * This Gamepad API interface contains references to gamepads connected to the system, which is what the gamepad events Window.gamepadconnected and Window.gamepaddisconnected are fired in response to.
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadEvent)
+ */
+interface GamepadEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadEvent/gamepad) */
+ readonly gamepad: Gamepad | null;
+}
+
+declare var GamepadEvent: {
+ prototype: GamepadEvent;
+ new(type: string, eventInitDict?: GamepadEventInit): GamepadEvent;
+ isInstance(obj): obj is GamepadEvent;
+};
+
+/**
+ * This Gamepad API interface represents hardware in the controller designed to provide haptic feedback to the user (if available), most commonly vibration hardware.
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadHapticActuator)
+ */
+interface GamepadHapticActuator {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadHapticActuator/type) */
+ readonly type: GamepadHapticActuatorType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadHapticActuator/pulse) */
+ pulse(value: number, duration: number): Promise<boolean>;
+}
+
+declare var GamepadHapticActuator: {
+ prototype: GamepadHapticActuator;
+ new(): GamepadHapticActuator;
+ isInstance(obj): obj is GamepadHapticActuator;
+};
+
+/** Available only in secure contexts. */
+interface GamepadLightIndicator {
+ readonly type: GamepadLightIndicatorType;
+ setColor(color: GamepadLightColor): Promise<boolean>;
+}
+
+declare var GamepadLightIndicator: {
+ prototype: GamepadLightIndicator;
+ new(): GamepadLightIndicator;
+ isInstance(obj): obj is GamepadLightIndicator;
+};
+
+/**
+ * This Gamepad API interface represents the pose of a WebVR controller at a given timestamp (which includes orientation, position, velocity, and acceleration information.)
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadPose)
+ */
+interface GamepadPose {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadPose/angularAcceleration) */
+ readonly angularAcceleration: Float32Array | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadPose/angularVelocity) */
+ readonly angularVelocity: Float32Array | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadPose/hasOrientation) */
+ readonly hasOrientation: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadPose/hasPosition) */
+ readonly hasPosition: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadPose/linearAcceleration) */
+ readonly linearAcceleration: Float32Array | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadPose/linearVelocity) */
+ readonly linearVelocity: Float32Array | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadPose/orientation) */
+ readonly orientation: Float32Array | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GamepadPose/position) */
+ readonly position: Float32Array | null;
+}
+
+declare var GamepadPose: {
+ prototype: GamepadPose;
+ new(): GamepadPose;
+ isInstance(obj): obj is GamepadPose;
+};
+
+interface GamepadServiceTest {
+ readonly leftHand: GamepadHand;
+ readonly noHand: GamepadHand;
+ readonly noMapping: GamepadMappingType;
+ readonly rightHand: GamepadHand;
+ readonly standardMapping: GamepadMappingType;
+ addGamepad(id: string, mapping: GamepadMappingType, hand: GamepadHand, numButtons: number, numAxes: number, numHaptics: number, numLightIndicator: number, numTouchEvents: number): Promise<number>;
+ newAxisMoveEvent(index: number, axis: number, value: number): Promise<number>;
+ newButtonEvent(index: number, button: number, pressed: boolean, touched: boolean): Promise<number>;
+ newButtonValueEvent(index: number, button: number, pressed: boolean, touched: boolean, value: number): Promise<number>;
+ newPoseMove(index: number, orient: Float32Array | null, pos: Float32Array | null, angVelocity: Float32Array | null, angAcceleration: Float32Array | null, linVelocity: Float32Array | null, linAcceleration: Float32Array | null): Promise<number>;
+ newTouch(index: number, aTouchArrayIndex: number, touchId: number, surfaceId: number, position: Float32Array, surfaceDimension: Float32Array | null): Promise<number>;
+ removeGamepad(index: number): Promise<number>;
+}
+
+declare var GamepadServiceTest: {
+ prototype: GamepadServiceTest;
+ new(): GamepadServiceTest;
+ isInstance(obj): obj is GamepadServiceTest;
+};
+
+/** Available only in secure contexts. */
+interface GamepadTouch {
+ readonly position: Float32Array;
+ readonly surfaceDimensions: Uint32Array | null;
+ readonly surfaceId: number;
+ readonly touchId: number;
+}
+
+declare var GamepadTouch: {
+ prototype: GamepadTouch;
+ new(): GamepadTouch;
+ isInstance(obj): obj is GamepadTouch;
+};
+
+interface GenericTransformStream {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream/readable) */
+ readonly readable: ReadableStream;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CompressionStream/writable) */
+ readonly writable: WritableStream;
+}
+
+/**
+ * An object able to programmatically obtain the position of the device. It gives Web content access to the location of the device. This allows a Web site or app to offer customized results based on the user's location.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation)
+ */
+interface Geolocation {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation/clearWatch) */
+ clearWatch(watchId: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation/getCurrentPosition) */
+ getCurrentPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Geolocation/watchPosition) */
+ watchPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions): number;
+}
+
+declare var Geolocation: {
+ prototype: Geolocation;
+ new(): Geolocation;
+ isInstance(obj): obj is Geolocation;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates)
+ */
+interface GeolocationCoordinates {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/accuracy) */
+ readonly accuracy: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/altitude) */
+ readonly altitude: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/altitudeAccuracy) */
+ readonly altitudeAccuracy: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/heading) */
+ readonly heading: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/latitude) */
+ readonly latitude: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/longitude) */
+ readonly longitude: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationCoordinates/speed) */
+ readonly speed: number | null;
+}
+
+declare var GeolocationCoordinates: {
+ prototype: GeolocationCoordinates;
+ new(): GeolocationCoordinates;
+ isInstance(obj): obj is GeolocationCoordinates;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPosition)
+ */
+interface GeolocationPosition {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPosition/coords) */
+ readonly coords: GeolocationCoordinates;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPosition/timestamp) */
+ readonly timestamp: EpochTimeStamp;
+}
+
+declare var GeolocationPosition: {
+ prototype: GeolocationPosition;
+ new(): GeolocationPosition;
+ isInstance(obj): obj is GeolocationPosition;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPositionError) */
+interface GeolocationPositionError {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPositionError/code) */
+ readonly code: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/GeolocationPositionError/message) */
+ readonly message: string;
+ readonly PERMISSION_DENIED: 1;
+ readonly POSITION_UNAVAILABLE: 2;
+ readonly TIMEOUT: 3;
+}
+
+declare var GeolocationPositionError: {
+ prototype: GeolocationPositionError;
+ new(): GeolocationPositionError;
+ readonly PERMISSION_DENIED: 1;
+ readonly POSITION_UNAVAILABLE: 2;
+ readonly TIMEOUT: 3;
+ isInstance(obj): obj is GeolocationPositionError;
+};
+
+interface GeometryUtils {
+ convertPointFromNode(point: DOMPointInit, from: GeometryNode, options?: ConvertCoordinateOptions): DOMPoint;
+ convertQuadFromNode(quad: DOMQuad, from: GeometryNode, options?: ConvertCoordinateOptions): DOMQuad;
+ convertRectFromNode(rect: DOMRectReadOnly, from: GeometryNode, options?: ConvertCoordinateOptions): DOMQuad;
+ getBoxQuads(options?: BoxQuadOptions): DOMQuad[];
+ getBoxQuadsFromWindowOrigin(options?: BoxQuadOptions): DOMQuad[];
+}
+
+interface GetUserMediaRequest {
+ readonly callID: string;
+ readonly devices: nsIMediaDevice[];
+ readonly innerWindowID: number;
+ readonly isHandlingUserInput: boolean;
+ readonly isSecure: boolean;
+ readonly mediaSource: string;
+ readonly rawID: string;
+ readonly type: GetUserMediaRequestType;
+ readonly windowID: number;
+ getAudioOutputOptions(): AudioOutputOptions;
+ getConstraints(): MediaStreamConstraints;
+}
+
+interface GleanBoolean extends GleanMetric {
+ set(value: boolean): void;
+ testGetValue(aPingName?: UTF8String): boolean | null;
+}
+
+declare var GleanBoolean: {
+ prototype: GleanBoolean;
+ new(): GleanBoolean;
+ isInstance(obj): obj is GleanBoolean;
+};
+
+interface GleanCategory {
+ [identifier: string]: GleanMetric;
+}
+
+declare var GleanCategory: {
+ prototype: GleanCategory;
+ new(): GleanCategory;
+ isInstance(obj): obj is GleanCategory;
+};
+
+interface GleanCounter extends GleanMetric {
+ add(aAmount?: number): void;
+ testGetValue(aPingName?: UTF8String): number | null;
+}
+
+declare var GleanCounter: {
+ prototype: GleanCounter;
+ new(): GleanCounter;
+ isInstance(obj): obj is GleanCounter;
+};
+
+interface GleanCustomDistribution extends GleanMetric {
+ accumulateSamples(aSamples: number[]): void;
+ testGetValue(aPingName?: UTF8String): GleanDistributionData | null;
+}
+
+declare var GleanCustomDistribution: {
+ prototype: GleanCustomDistribution;
+ new(): GleanCustomDistribution;
+ isInstance(obj): obj is GleanCustomDistribution;
+};
+
+interface GleanDatetime extends GleanMetric {
+ set(aValue?: number): void;
+ testGetValue(aPingName?: UTF8String): any;
+}
+
+declare var GleanDatetime: {
+ prototype: GleanDatetime;
+ new(): GleanDatetime;
+ isInstance(obj): obj is GleanDatetime;
+};
+
+interface GleanDenominator extends GleanMetric {
+ add(aAmount?: number): void;
+ testGetValue(aPingName?: UTF8String): number | null;
+}
+
+declare var GleanDenominator: {
+ prototype: GleanDenominator;
+ new(): GleanDenominator;
+ isInstance(obj): obj is GleanDenominator;
+};
+
+interface GleanEvent extends GleanMetric {
+ record(aExtra?: Record<UTF8String, UTF8String | null>): void;
+ testGetValue(aPingName?: UTF8String): GleanEventRecord[] | null;
+}
+
+declare var GleanEvent: {
+ prototype: GleanEvent;
+ new(): GleanEvent;
+ isInstance(obj): obj is GleanEvent;
+};
+
+interface GleanImpl {
+ [identifier: string]: GleanCategory;
+}
+
+declare var GleanImpl: {
+ prototype: GleanImpl;
+ new(): GleanImpl;
+ isInstance(obj): obj is GleanImpl;
+};
+
+interface GleanLabeled {
+ [identifier: string]: GleanMetric;
+}
+
+declare var GleanLabeled: {
+ prototype: GleanLabeled;
+ new(): GleanLabeled;
+ isInstance(obj): obj is GleanLabeled;
+};
+
+interface GleanMemoryDistribution extends GleanMetric {
+ accumulate(aSample: number): void;
+ testGetValue(aPingName?: UTF8String): GleanDistributionData | null;
+}
+
+declare var GleanMemoryDistribution: {
+ prototype: GleanMemoryDistribution;
+ new(): GleanMemoryDistribution;
+ isInstance(obj): obj is GleanMemoryDistribution;
+};
+
+interface GleanMetric {
+}
+
+declare var GleanMetric: {
+ prototype: GleanMetric;
+ new(): GleanMetric;
+ isInstance(obj): obj is GleanMetric;
+};
+
+interface GleanNumerator extends GleanMetric {
+ addToNumerator(aAmount?: number): void;
+ testGetValue(aPingName?: UTF8String): GleanRateData | null;
+}
+
+declare var GleanNumerator: {
+ prototype: GleanNumerator;
+ new(): GleanNumerator;
+ isInstance(obj): obj is GleanNumerator;
+};
+
+interface GleanPingsImpl {
+ [identifier: string]: nsIGleanPing;
+}
+
+declare var GleanPingsImpl: {
+ prototype: GleanPingsImpl;
+ new(): GleanPingsImpl;
+ isInstance(obj): obj is GleanPingsImpl;
+};
+
+interface GleanQuantity extends GleanMetric {
+ set(aValue: number): void;
+ testGetValue(aPingName?: UTF8String): number | null;
+}
+
+declare var GleanQuantity: {
+ prototype: GleanQuantity;
+ new(): GleanQuantity;
+ isInstance(obj): obj is GleanQuantity;
+};
+
+interface GleanRate extends GleanMetric {
+ addToDenominator(aAmount?: number): void;
+ addToNumerator(aAmount?: number): void;
+ testGetValue(aPingName?: UTF8String): GleanRateData | null;
+}
+
+declare var GleanRate: {
+ prototype: GleanRate;
+ new(): GleanRate;
+ isInstance(obj): obj is GleanRate;
+};
+
+interface GleanString extends GleanMetric {
+ set(aValue: UTF8String | null): void;
+ testGetValue(aPingName?: UTF8String): UTF8String | null;
+}
+
+declare var GleanString: {
+ prototype: GleanString;
+ new(): GleanString;
+ isInstance(obj): obj is GleanString;
+};
+
+interface GleanStringList extends GleanMetric {
+ add(value: UTF8String): void;
+ set(aValue: UTF8String[]): void;
+ testGetValue(aPingName?: UTF8String): UTF8String[] | null;
+}
+
+declare var GleanStringList: {
+ prototype: GleanStringList;
+ new(): GleanStringList;
+ isInstance(obj): obj is GleanStringList;
+};
+
+interface GleanText extends GleanMetric {
+ set(aValue: UTF8String): void;
+ testGetValue(aPingName?: UTF8String): UTF8String | null;
+}
+
+declare var GleanText: {
+ prototype: GleanText;
+ new(): GleanText;
+ isInstance(obj): obj is GleanText;
+};
+
+interface GleanTimespan extends GleanMetric {
+ cancel(): void;
+ setRaw(aDuration: number): void;
+ start(): void;
+ stop(): void;
+ testGetValue(aPingName?: UTF8String): number | null;
+}
+
+declare var GleanTimespan: {
+ prototype: GleanTimespan;
+ new(): GleanTimespan;
+ isInstance(obj): obj is GleanTimespan;
+};
+
+interface GleanTimingDistribution extends GleanMetric {
+ cancel(aId: number): void;
+ start(): number;
+ stopAndAccumulate(aId: number): void;
+ testAccumulateRawMillis(aSample: number): void;
+ testGetValue(aPingName?: UTF8String): GleanDistributionData | null;
+}
+
+declare var GleanTimingDistribution: {
+ prototype: GleanTimingDistribution;
+ new(): GleanTimingDistribution;
+ isInstance(obj): obj is GleanTimingDistribution;
+};
+
+interface GleanUrl extends GleanMetric {
+ set(aValue: UTF8String): void;
+ testGetValue(aPingName?: UTF8String): UTF8String | null;
+}
+
+declare var GleanUrl: {
+ prototype: GleanUrl;
+ new(): GleanUrl;
+ isInstance(obj): obj is GleanUrl;
+};
+
+interface GleanUuid extends GleanMetric {
+ generateAndSet(): void;
+ set(aValue: UTF8String): void;
+ testGetValue(aPingName?: UTF8String): UTF8String | null;
+}
+
+declare var GleanUuid: {
+ prototype: GleanUuid;
+ new(): GleanUuid;
+ isInstance(obj): obj is GleanUuid;
+};
+
+interface GlobalCrypto {
+ readonly crypto: Crypto;
+}
+
+interface GlobalEventHandlersEventMap {
+ "abort": Event;
+ "animationcancel": Event;
+ "animationend": Event;
+ "animationiteration": Event;
+ "animationstart": Event;
+ "auxclick": Event;
+ "beforeinput": Event;
+ "beforetoggle": Event;
+ "blur": Event;
+ "cancel": Event;
+ "canplay": Event;
+ "canplaythrough": Event;
+ "change": Event;
+ "click": Event;
+ "close": Event;
+ "contextmenu": Event;
+ "copy": Event;
+ "cuechange": Event;
+ "cut": Event;
+ "dblclick": Event;
+ "drag": Event;
+ "dragend": Event;
+ "dragenter": Event;
+ "dragexit": Event;
+ "dragleave": Event;
+ "dragover": Event;
+ "dragstart": Event;
+ "drop": Event;
+ "durationchange": Event;
+ "emptied": Event;
+ "ended": Event;
+ "focus": Event;
+ "formdata": Event;
+ "gotpointercapture": Event;
+ "input": Event;
+ "invalid": Event;
+ "keydown": Event;
+ "keypress": Event;
+ "keyup": Event;
+ "load": Event;
+ "loadeddata": Event;
+ "loadedmetadata": Event;
+ "loadstart": Event;
+ "lostpointercapture": Event;
+ "mousedown": Event;
+ "mouseenter": Event;
+ "mouseleave": Event;
+ "mousemove": Event;
+ "mouseout": Event;
+ "mouseover": Event;
+ "mouseup": Event;
+ "mozfullscreenchange": Event;
+ "mozfullscreenerror": Event;
+ "paste": Event;
+ "pause": Event;
+ "play": Event;
+ "playing": Event;
+ "pointercancel": Event;
+ "pointerdown": Event;
+ "pointerenter": Event;
+ "pointerleave": Event;
+ "pointermove": Event;
+ "pointerout": Event;
+ "pointerover": Event;
+ "pointerup": Event;
+ "progress": Event;
+ "ratechange": Event;
+ "reset": Event;
+ "resize": Event;
+ "scroll": Event;
+ "scrollend": Event;
+ "securitypolicyviolation": Event;
+ "seeked": Event;
+ "seeking": Event;
+ "select": Event;
+ "selectionchange": Event;
+ "selectstart": Event;
+ "slotchange": Event;
+ "stalled": Event;
+ "submit": Event;
+ "suspend": Event;
+ "timeupdate": Event;
+ "toggle": Event;
+ "transitioncancel": Event;
+ "transitionend": Event;
+ "transitionrun": Event;
+ "transitionstart": Event;
+ "volumechange": Event;
+ "waiting": Event;
+ "webkitanimationend": Event;
+ "webkitanimationiteration": Event;
+ "webkitanimationstart": Event;
+ "webkittransitionend": Event;
+ "wheel": Event;
+}
+
+interface GlobalEventHandlers {
+ /**
+ * Fires when the user aborts the download.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/abort_event)
+ */
+ onabort: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationcancel_event) */
+ onanimationcancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationend_event) */
+ onanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationiteration_event) */
+ onanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationstart_event) */
+ onanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/auxclick_event) */
+ onauxclick: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/beforeinput_event) */
+ onbeforeinput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/beforetoggle_event) */
+ onbeforetoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the object loses the input focus.
+ * @param ev The focus event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/blur_event)
+ */
+ onblur: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/cancel_event) */
+ oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when playback is possible, but would require further buffering.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplay_event)
+ */
+ oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canplaythrough_event) */
+ oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the contents of the object or selection have changed.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/change_event)
+ */
+ onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the user clicks the left mouse button on the object
+ * @param ev The mouse event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/click_event)
+ */
+ onclick: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/close_event) */
+ onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the user clicks the right mouse button in the client area, opening the context menu.
+ * @param ev The mouse event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/contextmenu_event)
+ */
+ oncontextmenu: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/copy_event) */
+ oncopy: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/cuechange_event) */
+ oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/cut_event) */
+ oncut: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the user double-clicks the object.
+ * @param ev The mouse event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/dblclick_event)
+ */
+ ondblclick: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires on the source object continuously during a drag operation.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drag_event)
+ */
+ ondrag: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires on the source object when the user releases the mouse at the close of a drag operation.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragend_event)
+ */
+ ondragend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires on the target element when the user drags the object to a valid drop target.
+ * @param ev The drag event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragenter_event)
+ */
+ ondragenter: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ ondragexit: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation.
+ * @param ev The drag event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragleave_event)
+ */
+ ondragleave: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires on the target element continuously while the user drags the object over a valid drop target.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragover_event)
+ */
+ ondragover: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires on the source object when the user starts to drag a text selection or selected object.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dragstart_event)
+ */
+ ondragstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/drop_event) */
+ ondrop: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when the duration attribute is updated.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/durationchange_event)
+ */
+ ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when the media element is reset to its initial state.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/emptied_event)
+ */
+ onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when the end of playback is reached.
+ * @param ev The event
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event)
+ */
+ onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when an error occurs during object loading.
+ * @param ev The event.
+ */
+ onerror: OnErrorEventHandler;
+ /**
+ * Fires when the object receives focus.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event)
+ */
+ onfocus: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */
+ onformdata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/gotpointercapture_event) */
+ ongotpointercapture: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/input_event) */
+ oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/invalid_event) */
+ oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the user presses a key.
+ * @param ev The keyboard event
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keydown_event)
+ */
+ onkeydown: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the user presses an alphanumeric key.
+ * @param ev The event.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keypress_event)
+ */
+ onkeypress: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the user releases a key.
+ * @param ev The keyboard event
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/keyup_event)
+ */
+ onkeyup: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires immediately after the browser loads the object.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGElement/load_event)
+ */
+ onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when media data is loaded at the current playback position.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadeddata_event)
+ */
+ onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when the duration and dimensions of the media have been determined.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadedmetadata_event)
+ */
+ onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when Internet Explorer begins looking for media data.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loadstart_event)
+ */
+ onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/lostpointercapture_event) */
+ onlostpointercapture: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the user clicks the object with either mouse button.
+ * @param ev The mouse event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousedown_event)
+ */
+ onmousedown: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseenter_event) */
+ onmouseenter: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseleave_event) */
+ onmouseleave: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the user moves the mouse over the object.
+ * @param ev The mouse event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mousemove_event)
+ */
+ onmousemove: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the user moves the mouse pointer outside the boundaries of the object.
+ * @param ev The mouse event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseout_event)
+ */
+ onmouseout: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the user moves the mouse pointer into the object.
+ * @param ev The mouse event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseover_event)
+ */
+ onmouseover: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the user releases a mouse button while the mouse is over the object.
+ * @param ev The mouse event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/mouseup_event)
+ */
+ onmouseup: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ onmozfullscreenchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ onmozfullscreenerror: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/paste_event) */
+ onpaste: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when playback is paused.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause_event)
+ */
+ onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when the play method is requested.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play_event)
+ */
+ onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when the audio or video has started playing.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/playing_event)
+ */
+ onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointercancel_event) */
+ onpointercancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerdown_event) */
+ onpointerdown: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerenter_event) */
+ onpointerenter: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerleave_event) */
+ onpointerleave: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointermove_event) */
+ onpointermove: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerout_event) */
+ onpointerout: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerover_event) */
+ onpointerover: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/pointerup_event) */
+ onpointerup: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs to indicate progress while downloading media data.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/progress_event)
+ */
+ onprogress: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when the playback rate is increased or decreased.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ratechange_event)
+ */
+ onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the user resets a form.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/reset_event)
+ */
+ onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/resize_event) */
+ onresize: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the user repositions the scroll box in the scroll bar on the object.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scroll_event)
+ */
+ onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/scrollend_event) */
+ onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/securitypolicyviolation_event) */
+ onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when the seek operation ends.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeked_event)
+ */
+ onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when the current playback position is moved.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeking_event)
+ */
+ onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Fires when the current selection changes.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/select_event)
+ */
+ onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/selectionchange_event) */
+ onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/selectstart_event) */
+ onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/slotchange_event) */
+ onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when the download has stopped.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/stalled_event)
+ */
+ onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/submit_event) */
+ onsubmit: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs if the load operation has been intentionally halted.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/suspend_event)
+ */
+ onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs to indicate the current playback position.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/timeupdate_event)
+ */
+ ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement/toggle_event) */
+ ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitioncancel_event) */
+ ontransitioncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionend_event) */
+ ontransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionrun_event) */
+ ontransitionrun: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionstart_event) */
+ ontransitionstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when the volume is changed, or playback is muted or unmuted.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/volumechange_event)
+ */
+ onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * Occurs when playback stops because the next frame of a video resource is not available.
+ * @param ev The event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/waiting_event)
+ */
+ onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * @deprecated This is a legacy alias of `onanimationend`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationend_event)
+ */
+ onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * @deprecated This is a legacy alias of `onanimationiteration`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationiteration_event)
+ */
+ onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * @deprecated This is a legacy alias of `onanimationstart`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animationstart_event)
+ */
+ onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /**
+ * @deprecated This is a legacy alias of `ontransitionend`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/transitionend_event)
+ */
+ onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/wheel_event) */
+ onwheel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
+ addEventListener<K extends keyof GlobalEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof GlobalEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+interface GlobalPrivacyControl {
+ readonly globalPrivacyControl: boolean;
+}
+
+interface GlobalProcessScriptLoader {
+ readonly initialProcessData: any;
+ readonly sharedData: MozWritableSharedMap;
+}
+
+interface Grid {
+ readonly areas: GridArea[];
+ readonly cols: GridDimension;
+ readonly rows: GridDimension;
+}
+
+declare var Grid: {
+ prototype: Grid;
+ new(): Grid;
+ isInstance(obj): obj is Grid;
+};
+
+interface GridArea {
+ readonly columnEnd: number;
+ readonly columnStart: number;
+ readonly name: string;
+ readonly rowEnd: number;
+ readonly rowStart: number;
+ readonly type: GridDeclaration;
+}
+
+declare var GridArea: {
+ prototype: GridArea;
+ new(): GridArea;
+ isInstance(obj): obj is GridArea;
+};
+
+interface GridDimension {
+ readonly lines: GridLines;
+ readonly tracks: GridTracks;
+}
+
+declare var GridDimension: {
+ prototype: GridDimension;
+ new(): GridDimension;
+ isInstance(obj): obj is GridDimension;
+};
+
+interface GridLine {
+ readonly breadth: number;
+ readonly names: string[];
+ readonly negativeNumber: number;
+ readonly number: number;
+ readonly start: number;
+ readonly type: GridDeclaration;
+}
+
+declare var GridLine: {
+ prototype: GridLine;
+ new(): GridLine;
+ isInstance(obj): obj is GridLine;
+};
+
+interface GridLines {
+ readonly length: number;
+ item(index: number): GridLine | null;
+ [index: number]: GridLine;
+}
+
+declare var GridLines: {
+ prototype: GridLines;
+ new(): GridLines;
+ isInstance(obj): obj is GridLines;
+};
+
+interface GridTrack {
+ readonly breadth: number;
+ readonly start: number;
+ readonly state: GridTrackState;
+ readonly type: GridDeclaration;
+}
+
+declare var GridTrack: {
+ prototype: GridTrack;
+ new(): GridTrack;
+ isInstance(obj): obj is GridTrack;
+};
+
+interface GridTracks {
+ readonly length: number;
+ item(index: number): GridTrack | null;
+ [index: number]: GridTrack;
+}
+
+declare var GridTracks: {
+ prototype: GridTracks;
+ new(): GridTracks;
+ isInstance(obj): obj is GridTracks;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection) */
+interface HTMLAllCollection {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection/item) */
+ item(nameOrIndex?: string): HTMLCollection | Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAllCollection/namedItem) */
+ namedItem(name: string): HTMLCollection | Element | null;
+ [index: number]: Element;
+}
+
+declare var HTMLAllCollection: {
+ prototype: HTMLAllCollection;
+ new(): HTMLAllCollection;
+ isInstance(obj): obj is HTMLAllCollection;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement)
+ */
+interface HTMLAnchorElement extends HTMLElement, HTMLHyperlinkElementUtils {
+ /**
+ * Sets or retrieves the character set used to encode the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/charset)
+ */
+ charset: string;
+ /**
+ * Sets or retrieves the coordinates of the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/coords)
+ */
+ coords: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/download) */
+ download: string;
+ /**
+ * Sets or retrieves the language code of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/hreflang)
+ */
+ hreflang: string;
+ /**
+ * Sets or retrieves the shape of the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/name)
+ */
+ name: string;
+ ping: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/referrerPolicy) */
+ referrerPolicy: string;
+ /**
+ * Sets or retrieves the relationship between the object and the destination of the link.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/rel)
+ */
+ rel: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/relList) */
+ readonly relList: DOMTokenList;
+ /**
+ * Sets or retrieves the relationship between the object and the destination of the link.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/rev)
+ */
+ rev: string;
+ /**
+ * Sets or retrieves the shape of the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/shape)
+ */
+ shape: string;
+ /**
+ * Sets or retrieves the window or frame at which to target content.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/target)
+ */
+ target: string;
+ /**
+ * Retrieves or sets the text of the object as a string.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/text)
+ */
+ text: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/type) */
+ type: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLAnchorElement: {
+ prototype: HTMLAnchorElement;
+ new(): HTMLAnchorElement;
+ isInstance(obj): obj is HTMLAnchorElement;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement)
+ */
+interface HTMLAreaElement extends HTMLElement, HTMLHyperlinkElementUtils {
+ /**
+ * Sets or retrieves a text alternative to the graphic.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/alt)
+ */
+ alt: string;
+ /**
+ * Sets or retrieves the coordinates of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/coords)
+ */
+ coords: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/download) */
+ download: string;
+ /**
+ * Sets or gets whether clicks in this region cause action.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/noHref)
+ */
+ noHref: boolean;
+ ping: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/referrerPolicy) */
+ referrerPolicy: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/rel) */
+ rel: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/relList) */
+ readonly relList: DOMTokenList;
+ /**
+ * Sets or retrieves the shape of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/shape)
+ */
+ shape: string;
+ /**
+ * Sets or retrieves the window or frame at which to target content.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAreaElement/target)
+ */
+ target: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLAreaElement: {
+ prototype: HTMLAreaElement;
+ new(): HTMLAreaElement;
+ isInstance(obj): obj is HTMLAreaElement;
+};
+
+/**
+ * Provides access to the properties of <audio> elements, as well as methods to manipulate them. It derives from the HTMLMediaElement interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAudioElement)
+ */
+interface HTMLAudioElement extends HTMLMediaElement {
+ addEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLAudioElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLAudioElement: {
+ prototype: HTMLAudioElement;
+ new(): HTMLAudioElement;
+ isInstance(obj): obj is HTMLAudioElement;
+};
+
+/**
+ * A HTML line break element (<br>). It inherits from HTMLElement.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBRElement)
+ */
+interface HTMLBRElement extends HTMLElement {
+ /**
+ * Sets or retrieves the side on which floating objects are not to be positioned when any IHTMLBlockElement is inserted into the document.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBRElement/clear)
+ */
+ clear: string;
+ readonly isPaddingForEmptyEditor: boolean;
+ readonly isPaddingForEmptyLastLine: boolean;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLBRElement: {
+ prototype: HTMLBRElement;
+ new(): HTMLBRElement;
+ isInstance(obj): obj is HTMLBRElement;
+};
+
+/**
+ * Contains the base URI for a document. This object inherits all of the properties and methods as described in the HTMLElement interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBaseElement)
+ */
+interface HTMLBaseElement extends HTMLElement {
+ /**
+ * Gets or sets the baseline URL on which relative links are based.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBaseElement/href)
+ */
+ href: string;
+ /**
+ * Sets or retrieves the window or frame at which to target content.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBaseElement/target)
+ */
+ target: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLBaseElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLBaseElement: {
+ prototype: HTMLBaseElement;
+ new(): HTMLBaseElement;
+ isInstance(obj): obj is HTMLBaseElement;
+};
+
+interface HTMLBodyElementEventMap extends HTMLElementEventMap, WindowEventHandlersEventMap {
+}
+
+/**
+ * Provides special properties (beyond those inherited from the regular HTMLElement interface) for manipulating <body> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement)
+ */
+interface HTMLBodyElement extends HTMLElement, WindowEventHandlers {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement/aLink)
+ */
+ aLink: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement/background)
+ */
+ background: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement/bgColor)
+ */
+ bgColor: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement/link)
+ */
+ link: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement/text)
+ */
+ text: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLBodyElement/vLink)
+ */
+ vLink: string;
+ addEventListener<K extends keyof HTMLBodyElementEventMap>(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLBodyElementEventMap>(type: K, listener: (this: HTMLBodyElement, ev: HTMLBodyElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLBodyElement: {
+ prototype: HTMLBodyElement;
+ new(): HTMLBodyElement;
+ isInstance(obj): obj is HTMLBodyElement;
+};
+
+/**
+ * Provides properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <button> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement)
+ */
+interface HTMLButtonElement extends HTMLElement, InvokerElement, PopoverInvokerElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/disabled) */
+ disabled: boolean;
+ /**
+ * Retrieves a reference to the form that the object is embedded in.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/form)
+ */
+ readonly form: HTMLFormElement | null;
+ /**
+ * Overrides the action attribute (where the data on a form is sent) on the parent form element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formAction)
+ */
+ formAction: string;
+ /**
+ * Used to override the encoding (formEnctype attribute) specified on the form element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formEnctype)
+ */
+ formEnctype: string;
+ /**
+ * Overrides the submit method attribute previously specified on a form element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formMethod)
+ */
+ formMethod: string;
+ /**
+ * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a "save draft"-type submit option.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formNoValidate)
+ */
+ formNoValidate: boolean;
+ /**
+ * Overrides the target attribute on a form element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/formTarget)
+ */
+ formTarget: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/labels) */
+ readonly labels: NodeList;
+ /**
+ * Sets or retrieves the name of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/name)
+ */
+ name: string;
+ /**
+ * Gets the classification and default behavior of the button.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/type)
+ */
+ type: string;
+ /**
+ * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/validationMessage)
+ */
+ readonly validationMessage: string;
+ /**
+ * Returns a ValidityState object that represents the validity states of an element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/validity)
+ */
+ readonly validity: ValidityState;
+ /**
+ * Sets or retrieves the default or selected value of the control.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/value)
+ */
+ value: string;
+ /**
+ * Returns whether an element will successfully validate based on forms validation rules and constraints.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/willValidate)
+ */
+ readonly willValidate: boolean;
+ /** Returns whether a form will validate when it is submitted, without having to submit it. */
+ checkValidity(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/reportValidity) */
+ reportValidity(): boolean;
+ /**
+ * Sets a custom error message that is displayed when a form is submitted.
+ * @param error Sets a custom error message that is displayed when a form is submitted.
+ */
+ setCustomValidity(error: string): void;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLButtonElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLButtonElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLButtonElement: {
+ prototype: HTMLButtonElement;
+ new(): HTMLButtonElement;
+ isInstance(obj): obj is HTMLButtonElement;
+};
+
+/**
+ * Provides properties and methods for manipulating the layout and presentation of <canvas> elements. The HTMLCanvasElement interface also inherits the properties and methods of the HTMLElement interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement)
+ */
+interface HTMLCanvasElement extends HTMLElement {
+ /**
+ * Gets or sets the height of a canvas element on a document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/height)
+ */
+ height: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/mozOpaque)
+ */
+ mozOpaque: boolean;
+ mozPrintCallback: PrintCallback | null;
+ /**
+ * Gets or sets the width of a canvas element on a document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/width)
+ */
+ width: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/captureStream) */
+ captureStream(frameRate?: number): CanvasCaptureMediaStream;
+ /**
+ * Returns an object that provides methods and properties for drawing and manipulating images and graphics on a canvas element in a document. A context object includes information about colors, line widths, fonts, and other graphic parameters that can be drawn on a canvas.
+ * @param contextId The identifier (ID) of the type of canvas to create. Internet Explorer 9 and Internet Explorer 10 support only a 2-D context using canvas.getContext("2d"); IE11 Preview also supports 3-D or WebGL context using canvas.getContext("experimental-webgl");
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/getContext)
+ */
+ getContext(contextId: string, contextOptions?: any): nsISupports | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/toBlob) */
+ toBlob(callback: BlobCallback, type?: string, encoderOptions?: any): void;
+ /**
+ * Returns the content of the current canvas as an image that you can use as a source for another canvas or an HTML element.
+ * @param type The standard MIME type for the image format to return. If you do not specify this parameter, the default value is a PNG format image.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/toDataURL)
+ */
+ toDataURL(type?: string, encoderOptions?: any): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/transferControlToOffscreen) */
+ transferControlToOffscreen(): OffscreenCanvas;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLCanvasElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLCanvasElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLCanvasElement: {
+ prototype: HTMLCanvasElement;
+ new(): HTMLCanvasElement;
+ isInstance(obj): obj is HTMLCanvasElement;
+};
+
+/**
+ * A generic collection (array-like object similar to arguments) of elements (in document order) and offers methods and properties for selecting from the list.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection)
+ */
+interface HTMLCollectionBase {
+ /**
+ * Sets or retrieves the number of objects in a collection.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/length)
+ */
+ readonly length: number;
+ /**
+ * Retrieves an object from various collections.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/item)
+ */
+ item(index: number): Element | null;
+ [index: number]: Element;
+}
+
+interface HTMLCollection extends HTMLCollectionBase {
+ /**
+ * Retrieves a select object or an object from an options collection.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/namedItem)
+ */
+ namedItem(name: string): Element | null;
+}
+
+declare var HTMLCollection: {
+ prototype: HTMLCollection;
+ new(): HTMLCollection;
+ isInstance(obj): obj is HTMLCollection;
+};
+
+/**
+ * Provides special properties (beyond those of the regular HTMLElement interface it also has available to it by inheritance) for manipulating definition list (<dl>) elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDListElement)
+ */
+interface HTMLDListElement extends HTMLElement {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDListElement/compact)
+ */
+ compact: boolean;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLDListElement: {
+ prototype: HTMLDListElement;
+ new(): HTMLDListElement;
+ isInstance(obj): obj is HTMLDListElement;
+};
+
+/**
+ * Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <data> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDataElement)
+ */
+interface HTMLDataElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDataElement/value) */
+ value: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLDataElement: {
+ prototype: HTMLDataElement;
+ new(): HTMLDataElement;
+ isInstance(obj): obj is HTMLDataElement;
+};
+
+/**
+ * Provides special properties (beyond the HTMLElement object interface it also has available to it by inheritance) to manipulate <datalist> elements and their content.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDataListElement)
+ */
+interface HTMLDataListElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDataListElement/options) */
+ readonly options: HTMLCollection;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDataListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLDataListElement: {
+ prototype: HTMLDataListElement;
+ new(): HTMLDataListElement;
+ isInstance(obj): obj is HTMLDataListElement;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement) */
+interface HTMLDetailsElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement/open) */
+ open: boolean;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDetailsElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDetailsElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLDetailsElement: {
+ prototype: HTMLDetailsElement;
+ new(): HTMLDetailsElement;
+ isInstance(obj): obj is HTMLDetailsElement;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement) */
+interface HTMLDialogElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/open) */
+ open: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/returnValue) */
+ returnValue: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/close) */
+ close(returnValue?: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/show) */
+ show(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDialogElement/showModal) */
+ showModal(): void;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDialogElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDialogElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLDialogElement: {
+ prototype: HTMLDialogElement;
+ new(): HTMLDialogElement;
+ isInstance(obj): obj is HTMLDialogElement;
+};
+
+/** @deprecated */
+interface HTMLDirectoryElement extends HTMLElement {
+ /** @deprecated */
+ compact: boolean;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDirectoryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDirectoryElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+/** @deprecated */
+declare var HTMLDirectoryElement: {
+ prototype: HTMLDirectoryElement;
+ new(): HTMLDirectoryElement;
+ isInstance(obj): obj is HTMLDirectoryElement;
+};
+
+/**
+ * Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <div> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDivElement)
+ */
+interface HTMLDivElement extends HTMLElement {
+ /**
+ * Sets or retrieves how the object is aligned with adjacent text.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDivElement/align)
+ */
+ align: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLDivElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLDivElement: {
+ prototype: HTMLDivElement;
+ new(): HTMLDivElement;
+ isInstance(obj): obj is HTMLDivElement;
+};
+
+/**
+ * The HTMLDocument property of Window objects is an alias that browsers expose for the Document interface object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDocument)
+ */
+interface HTMLDocument extends Document {
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: HTMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: HTMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+ [name: string]: any;
+}
+
+declare var HTMLDocument: {
+ prototype: HTMLDocument;
+ new(): HTMLDocument;
+ isInstance(obj): obj is HTMLDocument;
+};
+
+interface HTMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap, OnErrorEventHandlerForNodesEventMap, TouchEventHandlersEventMap {
+}
+
+/**
+ * Any HTML element. Some elements directly implement this interface, while others implement it via an interface that inherits it.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement)
+ */
+interface HTMLElement extends Element, ElementCSSInlineStyle, GlobalEventHandlers, HTMLOrForeignElement, OnErrorEventHandlerForNodes, TouchEventHandlers {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/accessKey) */
+ accessKey: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/accessKeyLabel) */
+ readonly accessKeyLabel: string;
+ autocapitalize: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/contentEditable) */
+ contentEditable: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/dir) */
+ dir: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/draggable) */
+ draggable: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/enterKeyHint) */
+ enterKeyHint: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidden) */
+ hidden: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/inert) */
+ inert: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/innerText) */
+ innerText: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/inputMode) */
+ inputMode: string;
+ readonly internals: ElementInternals | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/isContentEditable) */
+ readonly isContentEditable: boolean;
+ readonly isFormAssociatedCustomElements: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/lang) */
+ lang: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/nonce) */
+ nonce: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetHeight) */
+ readonly offsetHeight: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetLeft) */
+ readonly offsetLeft: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetParent) */
+ readonly offsetParent: Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetTop) */
+ readonly offsetTop: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/offsetWidth) */
+ readonly offsetWidth: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/outerText) */
+ outerText: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/popover) */
+ popover: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/spellcheck) */
+ spellcheck: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/title) */
+ title: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/translate) */
+ translate: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/attachInternals) */
+ attachInternals(): ElementInternals;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/click) */
+ click(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/hidePopover) */
+ hidePopover(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/showPopover) */
+ showPopover(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/togglePopover) */
+ togglePopover(force?: boolean): boolean;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLElement: {
+ prototype: HTMLElement;
+ new(): HTMLElement;
+ isInstance(obj): obj is HTMLElement;
+};
+
+/**
+ * Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <embed> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLEmbedElement)
+ */
+interface HTMLEmbedElement extends HTMLElement, MozFrameLoaderOwner, MozImageLoadingContent, MozObjectLoadingContent {
+ /** @deprecated */
+ align: string;
+ /** Sets or retrieves the height of the object. */
+ height: string;
+ /**
+ * Sets or retrieves the name of the object.
+ * @deprecated
+ */
+ name: string;
+ /** Sets or retrieves a URL to be loaded by the object. */
+ src: string;
+ type: string;
+ /** Sets or retrieves the width of the object. */
+ width: string;
+ getSVGDocument(): Document | null;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLEmbedElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLEmbedElement: {
+ prototype: HTMLEmbedElement;
+ new(): HTMLEmbedElement;
+ readonly UNKNOWN_REQUEST: -1;
+ readonly CURRENT_REQUEST: 0;
+ readonly PENDING_REQUEST: 1;
+ readonly TYPE_LOADING: 0;
+ readonly TYPE_IMAGE: 1;
+ readonly TYPE_FALLBACK: 2;
+ readonly TYPE_FAKE_PLUGIN: 3;
+ readonly TYPE_DOCUMENT: 4;
+ readonly TYPE_NULL: 5;
+ isInstance(obj): obj is HTMLEmbedElement;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFencedFrameElement) */
+interface HTMLFencedFrameElement {
+}
+
+declare var HTMLFencedFrameElement: {
+ prototype: HTMLFencedFrameElement;
+ new(): HTMLFencedFrameElement;
+ isInstance(obj): obj is HTMLFencedFrameElement;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement)
+ */
+interface HTMLFieldSetElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/disabled) */
+ disabled: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/elements) */
+ readonly elements: HTMLCollection;
+ /**
+ * Retrieves a reference to the form that the object is embedded in.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/form)
+ */
+ readonly form: HTMLFormElement | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/name) */
+ name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/type) */
+ readonly type: string;
+ /**
+ * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/validationMessage)
+ */
+ readonly validationMessage: string;
+ /**
+ * Returns a ValidityState object that represents the validity states of an element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/validity)
+ */
+ readonly validity: ValidityState;
+ /**
+ * Returns whether an element will successfully validate based on forms validation rules and constraints.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/willValidate)
+ */
+ readonly willValidate: boolean;
+ /** Returns whether a form will validate when it is submitted, without having to submit it. */
+ checkValidity(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFieldSetElement/reportValidity) */
+ reportValidity(): boolean;
+ /**
+ * Sets a custom error message that is displayed when a form is submitted.
+ * @param error Sets a custom error message that is displayed when a form is submitted.
+ */
+ setCustomValidity(error: string): void;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFieldSetElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFieldSetElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLFieldSetElement: {
+ prototype: HTMLFieldSetElement;
+ new(): HTMLFieldSetElement;
+ isInstance(obj): obj is HTMLFieldSetElement;
+};
+
+/**
+ * Implements the document object model (DOM) representation of the font element. The HTML Font Element <font> defines the font size, font face and color of text.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFontElement)
+ */
+interface HTMLFontElement extends HTMLElement {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFontElement/color)
+ */
+ color: string;
+ /**
+ * Sets or retrieves the current typeface family.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFontElement/face)
+ */
+ face: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFontElement/size)
+ */
+ size: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFontElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+/** @deprecated */
+declare var HTMLFontElement: {
+ prototype: HTMLFontElement;
+ new(): HTMLFontElement;
+ isInstance(obj): obj is HTMLFontElement;
+};
+
+/**
+ * A collection of HTML form control elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormControlsCollection)
+ */
+interface HTMLFormControlsCollection extends HTMLCollectionBase {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormControlsCollection/namedItem) */
+ namedItem(name: string): RadioNodeList | Element | null;
+}
+
+declare var HTMLFormControlsCollection: {
+ prototype: HTMLFormControlsCollection;
+ new(): HTMLFormControlsCollection;
+ isInstance(obj): obj is HTMLFormControlsCollection;
+};
+
+/**
+ * A <form> element in the DOM; it allows access to and in some cases modification of aspects of the form, as well as access to its component elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement)
+ */
+interface HTMLFormElement extends HTMLElement {
+ /**
+ * Sets or retrieves a list of character encodings for input data that must be accepted by the server processing the form.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/acceptCharset)
+ */
+ acceptCharset: string;
+ /**
+ * Sets or retrieves the URL to which the form content is sent for processing.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/action)
+ */
+ action: string;
+ /**
+ * Specifies whether autocomplete is applied to an editable text field.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/autocomplete)
+ */
+ autocomplete: string;
+ /**
+ * Retrieves a collection, in source order, of all controls in a given form.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/elements)
+ */
+ readonly elements: HTMLFormControlsCollection;
+ /**
+ * Sets or retrieves the MIME encoding for the form.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/encoding)
+ */
+ encoding: string;
+ /**
+ * Sets or retrieves the encoding type for the form.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/enctype)
+ */
+ enctype: string;
+ /**
+ * Sets or retrieves the number of objects in a collection.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/length)
+ */
+ readonly length: number;
+ /**
+ * Sets or retrieves how to send the form data to the server.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/method)
+ */
+ method: string;
+ /**
+ * Sets or retrieves the name of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/name)
+ */
+ name: string;
+ /**
+ * Designates a form that is not validated when submitted.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/noValidate)
+ */
+ noValidate: boolean;
+ rel: string;
+ readonly relList: DOMTokenList;
+ /**
+ * Sets or retrieves the window or frame at which to target content.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/target)
+ */
+ target: string;
+ /**
+ * Returns whether a form will validate when it is submitted, without having to submit it.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/checkValidity)
+ */
+ checkValidity(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/reportValidity) */
+ reportValidity(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/requestSubmit) */
+ requestSubmit(submitter?: HTMLElement | null): void;
+ /**
+ * Fires when the user resets a form.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/reset)
+ */
+ reset(): void;
+ /**
+ * Fires when a FORM is about to be submitted.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/submit)
+ */
+ submit(): void;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFormElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFormElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+ [index: number]: Element;
+}
+
+declare var HTMLFormElement: {
+ prototype: HTMLFormElement;
+ new(): HTMLFormElement;
+ isInstance(obj): obj is HTMLFormElement;
+};
+
+/**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement)
+ */
+interface HTMLFrameElement extends HTMLElement, MozFrameLoaderOwner {
+ /**
+ * Retrieves the document object of the page or frame.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/contentDocument)
+ */
+ readonly contentDocument: Document | null;
+ /**
+ * Retrieves the object of the specified.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/contentWindow)
+ */
+ readonly contentWindow: WindowProxy | null;
+ /**
+ * Sets or retrieves whether to display a border for the frame.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/frameBorder)
+ */
+ frameBorder: string;
+ /**
+ * Sets or retrieves a URI to a long description of the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/longDesc)
+ */
+ longDesc: string;
+ /**
+ * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/marginHeight)
+ */
+ marginHeight: string;
+ /**
+ * Sets or retrieves the left and right margin widths before displaying the text in a frame.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/marginWidth)
+ */
+ marginWidth: string;
+ /**
+ * Sets or retrieves the frame name.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/name)
+ */
+ name: string;
+ /**
+ * Sets or retrieves whether the user can resize the frame.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/noResize)
+ */
+ noResize: boolean;
+ /**
+ * Sets or retrieves whether the frame can be scrolled.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/scrolling)
+ */
+ scrolling: string;
+ /**
+ * Sets or retrieves a URL to be loaded by the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameElement/src)
+ */
+ src: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+/** @deprecated */
+declare var HTMLFrameElement: {
+ prototype: HTMLFrameElement;
+ new(): HTMLFrameElement;
+ isInstance(obj): obj is HTMLFrameElement;
+};
+
+interface HTMLFrameSetElementEventMap extends HTMLElementEventMap, WindowEventHandlersEventMap {
+}
+
+/**
+ * Provides special properties (beyond those of the regular HTMLElement interface they also inherit) for manipulating <frameset> elements.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFrameSetElement)
+ */
+interface HTMLFrameSetElement extends HTMLElement, WindowEventHandlers {
+ /**
+ * Sets or retrieves the frame widths of the object.
+ * @deprecated
+ */
+ cols: string;
+ /**
+ * Sets or retrieves the frame heights of the object.
+ * @deprecated
+ */
+ rows: string;
+ addEventListener<K extends keyof HTMLFrameSetElementEventMap>(type: K, listener: (this: HTMLFrameSetElement, ev: HTMLFrameSetElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLFrameSetElementEventMap>(type: K, listener: (this: HTMLFrameSetElement, ev: HTMLFrameSetElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+/** @deprecated */
+declare var HTMLFrameSetElement: {
+ prototype: HTMLFrameSetElement;
+ new(): HTMLFrameSetElement;
+ isInstance(obj): obj is HTMLFrameSetElement;
+};
+
+/**
+ * Provides special properties (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating <hr> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHRElement)
+ */
+interface HTMLHRElement extends HTMLElement {
+ /**
+ * Sets or retrieves how the object is aligned with adjacent text.
+ * @deprecated
+ */
+ align: string;
+ /** @deprecated */
+ color: string;
+ /**
+ * Sets or retrieves whether the horizontal rule is drawn with 3-D shading.
+ * @deprecated
+ */
+ noShade: boolean;
+ /** @deprecated */
+ size: string;
+ /**
+ * Sets or retrieves the width of the object.
+ * @deprecated
+ */
+ width: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHRElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLHRElement: {
+ prototype: HTMLHRElement;
+ new(): HTMLHRElement;
+ isInstance(obj): obj is HTMLHRElement;
+};
+
+/**
+ * Contains the descriptive information, or metadata, for a document. This object inherits all of the properties and methods described in the HTMLElement interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHeadElement)
+ */
+interface HTMLHeadElement extends HTMLElement {
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLHeadElement: {
+ prototype: HTMLHeadElement;
+ new(): HTMLHeadElement;
+ isInstance(obj): obj is HTMLHeadElement;
+};
+
+/**
+ * The different heading elements. It inherits methods and properties from the HTMLElement interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHeadingElement)
+ */
+interface HTMLHeadingElement extends HTMLElement {
+ /**
+ * Sets or retrieves a value that indicates the table alignment.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHeadingElement/align)
+ */
+ align: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadingElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHeadingElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLHeadingElement: {
+ prototype: HTMLHeadingElement;
+ new(): HTMLHeadingElement;
+ isInstance(obj): obj is HTMLHeadingElement;
+};
+
+/**
+ * Serves as the root node for a given HTML document. This object inherits the properties and methods described in the HTMLElement interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHtmlElement)
+ */
+interface HTMLHtmlElement extends HTMLElement {
+ /**
+ * Sets or retrieves the DTD version that governs the current document.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLHtmlElement/version)
+ */
+ version: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHtmlElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLHtmlElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLHtmlElement: {
+ prototype: HTMLHtmlElement;
+ new(): HTMLHtmlElement;
+ isInstance(obj): obj is HTMLHtmlElement;
+};
+
+interface HTMLHyperlinkElementUtils {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/hash) */
+ hash: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/host) */
+ host: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/hostname) */
+ hostname: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/href) */
+ href: string;
+ toString(): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/origin) */
+ readonly origin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/password) */
+ password: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/pathname) */
+ pathname: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/port) */
+ port: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/protocol) */
+ protocol: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/search) */
+ search: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/username) */
+ username: string;
+}
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement)
+ */
+interface HTMLIFrameElement extends HTMLElement, MozFrameLoaderOwner {
+ /**
+ * Sets or retrieves how the object is aligned with adjacent text.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/align)
+ */
+ align: string;
+ allow: string;
+ allowFullscreen: boolean;
+ /**
+ * Retrieves the document object of the page or frame.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/contentDocument)
+ */
+ readonly contentDocument: Document | null;
+ /**
+ * Retrieves the object of the specified.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/contentWindow)
+ */
+ readonly contentWindow: WindowProxy | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/featurePolicy) */
+ readonly featurePolicy: FeaturePolicy;
+ /**
+ * Sets or retrieves whether to display a border for the frame.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/frameBorder)
+ */
+ frameBorder: string;
+ /**
+ * Sets or retrieves the height of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/height)
+ */
+ height: string;
+ loading: string;
+ /**
+ * Sets or retrieves a URI to a long description of the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/longDesc)
+ */
+ longDesc: string;
+ /**
+ * Sets or retrieves the top and bottom margin heights before displaying the text in a frame.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/marginHeight)
+ */
+ marginHeight: string;
+ /**
+ * Sets or retrieves the left and right margin widths before displaying the text in a frame.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/marginWidth)
+ */
+ marginWidth: string;
+ /**
+ * Sets or retrieves the frame name.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/name)
+ */
+ name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/referrerPolicy) */
+ referrerPolicy: string;
+ readonly sandbox: DOMTokenList;
+ /**
+ * Sets or retrieves whether the frame can be scrolled.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/scrolling)
+ */
+ scrolling: string;
+ /**
+ * Sets or retrieves a URL to be loaded by the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/src)
+ */
+ src: string;
+ /**
+ * Sets or retrives the content of the page that is to contain.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/srcdoc)
+ */
+ srcdoc: string;
+ /**
+ * Sets or retrieves the width of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLIFrameElement/width)
+ */
+ width: string;
+ getSVGDocument(): Document | null;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLIFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLIFrameElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLIFrameElement: {
+ prototype: HTMLIFrameElement;
+ new(): HTMLIFrameElement;
+ isInstance(obj): obj is HTMLIFrameElement;
+};
+
+/**
+ * Provides special properties and methods for manipulating <img> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement)
+ */
+interface HTMLImageElement extends HTMLElement, MozImageLoadingContent {
+ /**
+ * Sets or retrieves how the object is aligned with adjacent text.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/align)
+ */
+ align: string;
+ /**
+ * Sets or retrieves a text alternative to the graphic.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/alt)
+ */
+ alt: string;
+ /**
+ * Specifies the properties of a border drawn around an object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/border)
+ */
+ border: string;
+ /**
+ * Retrieves whether the object is fully loaded.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/complete)
+ */
+ readonly complete: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/crossOrigin) */
+ crossOrigin: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/currentSrc) */
+ readonly currentSrc: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/decoding) */
+ decoding: string;
+ /**
+ * Sets or retrieves the height of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/height)
+ */
+ height: number;
+ /**
+ * Sets or retrieves the width of the border to draw around the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/hspace)
+ */
+ hspace: number;
+ /**
+ * Sets or retrieves whether the image is a server-side image map.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/isMap)
+ */
+ isMap: boolean;
+ /**
+ * Sets or retrieves the policy for loading image elements that are outside the viewport.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/loading)
+ */
+ loading: string;
+ /**
+ * Sets or retrieves a Uniform Resource Identifier (URI) to a long description of the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/longDesc)
+ */
+ longDesc: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/lowsrc)
+ */
+ lowsrc: string;
+ /**
+ * Sets or retrieves the name of the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/name)
+ */
+ name: string;
+ /**
+ * The original height of the image resource before sizing.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/naturalHeight)
+ */
+ readonly naturalHeight: number;
+ /**
+ * The original width of the image resource before sizing.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/naturalWidth)
+ */
+ readonly naturalWidth: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/referrerPolicy) */
+ referrerPolicy: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/sizes) */
+ sizes: string;
+ /**
+ * The address or URL of the a media resource that is to be considered.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/src)
+ */
+ src: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/srcset) */
+ srcset: string;
+ /**
+ * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/useMap)
+ */
+ useMap: string;
+ /**
+ * Sets or retrieves the vertical margin for the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/vspace)
+ */
+ vspace: number;
+ /**
+ * Sets or retrieves the width of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/width)
+ */
+ width: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/x) */
+ readonly x: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/y) */
+ readonly y: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLImageElement/decode) */
+ decode(): Promise<void>;
+ recognizeCurrentImageText(): Promise<ImageText[]>;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLImageElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLImageElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLImageElement: {
+ prototype: HTMLImageElement;
+ new(): HTMLImageElement;
+ readonly UNKNOWN_REQUEST: -1;
+ readonly CURRENT_REQUEST: 0;
+ readonly PENDING_REQUEST: 1;
+ isInstance(obj): obj is HTMLImageElement;
+};
+
+/**
+ * Provides special properties and methods for manipulating the options, layout, and presentation of <input> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement)
+ */
+interface HTMLInputElement extends HTMLElement, InvokerElement, MozEditableElement, MozImageLoadingContent, PopoverInvokerElement {
+ /** Sets or retrieves a comma-separated list of content types. */
+ accept: string;
+ /**
+ * Sets or retrieves how the object is aligned with adjacent text.
+ * @deprecated
+ */
+ align: string;
+ /** Sets or retrieves a text alternative to the graphic. */
+ alt: string;
+ /**
+ * Specifies whether autocomplete is applied to an editable text field.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/autocomplete)
+ */
+ autocomplete: string;
+ capture: string;
+ /** Sets or retrieves the state of the check box or radio button. */
+ checked: boolean;
+ readonly controllers: XULControllers | null;
+ readonly dateTimeBoxElement: Element | null;
+ /** Sets or retrieves the state of the check box or radio button. */
+ defaultChecked: boolean;
+ /** Sets or retrieves the initial contents of the object. */
+ defaultValue: string;
+ dirName: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/disabled) */
+ disabled: boolean;
+ /**
+ * Returns a FileList object on a file type input object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/files)
+ */
+ files: FileList | null;
+ /** Retrieves a reference to the form that the object is embedded in. */
+ readonly form: HTMLFormElement | null;
+ /**
+ * Overrides the action attribute (where the data on a form is sent) on the parent form element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formAction)
+ */
+ formAction: string;
+ /**
+ * Used to override the encoding (formEnctype attribute) specified on the form element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formEnctype)
+ */
+ formEnctype: string;
+ /**
+ * Overrides the submit method attribute previously specified on a form element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formMethod)
+ */
+ formMethod: string;
+ /**
+ * Overrides any validation or required attributes on a form or form elements to allow it to be submitted without validation. This can be used to create a "save draft"-type submit option.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formNoValidate)
+ */
+ formNoValidate: boolean;
+ /**
+ * Overrides the target attribute on a form element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/formTarget)
+ */
+ formTarget: string;
+ readonly hasBeenTypePassword: boolean;
+ /**
+ * Sets or retrieves the height of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/height)
+ */
+ height: number;
+ indeterminate: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/labels) */
+ readonly labels: NodeList | null;
+ readonly lastInteractiveValue: string;
+ /**
+ * Specifies the ID of a pre-defined datalist of options for an input element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/list)
+ */
+ readonly list: HTMLDataListElement | null;
+ /** Defines the maximum acceptable value for an input element with type="number".When used with the min and step attributes, lets you control the range and increment (such as only even numbers) that the user can enter into an input field. */
+ max: string;
+ /** Sets or retrieves the maximum number of characters that the user can enter in a text control. */
+ maxLength: number;
+ /** Defines the minimum acceptable value for an input element with type="number". When used with the max and step attributes, lets you control the range and increment (such as even numbers only) that the user can enter into an input field. */
+ min: string;
+ minLength: number;
+ /**
+ * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/multiple)
+ */
+ multiple: boolean;
+ /** Sets or retrieves the name of the object. */
+ name: string;
+ /**
+ * Gets or sets a string containing a regular expression that the user's input must match.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/pattern)
+ */
+ pattern: string;
+ /**
+ * Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/placeholder)
+ */
+ placeholder: string;
+ previewValue: string;
+ readOnly: boolean;
+ /**
+ * When present, marks an element that can't be submitted without a value.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/required)
+ */
+ required: boolean;
+ revealPassword: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/selectionDirection) */
+ selectionDirection: string | null;
+ /** Gets or sets the end position or offset of a text selection. */
+ selectionEnd: number | null;
+ /** Gets or sets the starting position or offset of a text selection. */
+ selectionStart: number | null;
+ size: number;
+ /** The address or URL of the a media resource that is to be considered. */
+ src: string;
+ /** Defines an increment or jump between values that you want to allow the user to enter. When used with the max and min attributes, lets you control the range and increment (for example, allow only even numbers) that the user can enter into an input field. */
+ step: string;
+ readonly textLength: number;
+ /** Returns the content type of the object. */
+ type: string;
+ /**
+ * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.
+ * @deprecated
+ */
+ useMap: string;
+ /**
+ * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/validationMessage)
+ */
+ readonly validationMessage: string;
+ /**
+ * Returns a ValidityState object that represents the validity states of an element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/validity)
+ */
+ readonly validity: ValidityState;
+ /** Returns the value of the data at the cursor's current position. */
+ value: string;
+ /** Returns a Date object representing the form control's value, if applicable; otherwise, returns null. Can be set, to change the value. Throws an "InvalidStateError" DOMException if the control isn't date- or time-based. */
+ valueAsDate: any;
+ /** Returns the input field value as a number. */
+ valueAsNumber: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/webkitEntries) */
+ readonly webkitEntries: FileSystemEntry[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/webkitdirectory) */
+ webkitdirectory: boolean;
+ /**
+ * Sets or retrieves the width of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/width)
+ */
+ width: number;
+ /**
+ * Returns whether an element will successfully validate based on forms validation rules and constraints.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/willValidate)
+ */
+ readonly willValidate: boolean;
+ /**
+ * Returns whether a form will validate when it is submitted, without having to submit it.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/checkValidity)
+ */
+ checkValidity(): boolean;
+ closeDateTimePicker(): void;
+ getAutocompleteInfo(): AutocompleteInfo | null;
+ getDateTimeInputBoxValue(): DateTimeValue;
+ getFilesAndDirectories(): Promise<(File | Directory)[]>;
+ getMaximum(): number;
+ getMinimum(): number;
+ getStep(): number;
+ getStepBase(): number;
+ mozGetFileNameArray(): string[];
+ mozIsTextField(aExcludePassword: boolean): boolean;
+ mozSetDirectory(directoryPath: string): void;
+ mozSetDndFilesAndDirectories(list: (File | Directory)[]): void;
+ mozSetFileArray(files: File[]): void;
+ mozSetFileNameArray(fileNames: string[]): void;
+ openDateTimePicker(initialValue?: DateTimeValue): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/reportValidity) */
+ reportValidity(): boolean;
+ /**
+ * Makes the selection equal to the current object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/select)
+ */
+ select(): void;
+ /**
+ * Sets a custom error message that is displayed when a form is submitted.
+ * @param error Sets a custom error message that is displayed when a form is submitted.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setCustomValidity)
+ */
+ setCustomValidity(error: string): void;
+ setFocusState(aIsFocused: boolean): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setRangeText) */
+ setRangeText(replacement: string): void;
+ setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;
+ /**
+ * Sets the start and end positions of a selection in a text field.
+ * @param start The offset into the text field for the start of the selection.
+ * @param end The offset into the text field for the end of the selection.
+ * @param direction The direction in which the selection is performed.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/setSelectionRange)
+ */
+ setSelectionRange(start: number, end: number, direction?: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/showPicker) */
+ showPicker(): void;
+ /**
+ * Decrements a range input control's value by the value given by the Step attribute. If the optional parameter is used, it will decrement the input control's step value multiplied by the parameter's value.
+ * @param n Value to decrement the value by.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/stepDown)
+ */
+ stepDown(n?: number): void;
+ /**
+ * Increments a range input control's value by the value given by the Step attribute. If the optional parameter is used, will increment the input control's value by that value.
+ * @param n Value to increment the value by.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLInputElement/stepUp)
+ */
+ stepUp(n?: number): void;
+ updateDateTimePicker(value?: DateTimeValue): void;
+ updateValidityState(): void;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLInputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLInputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLInputElement: {
+ prototype: HTMLInputElement;
+ new(): HTMLInputElement;
+ readonly UNKNOWN_REQUEST: -1;
+ readonly CURRENT_REQUEST: 0;
+ readonly PENDING_REQUEST: 1;
+ isInstance(obj): obj is HTMLInputElement;
+};
+
+/**
+ * Exposes specific properties and methods (beyond those defined by regular HTMLElement interface it also has available to it by inheritance) for manipulating list elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLIElement)
+ */
+interface HTMLLIElement extends HTMLElement {
+ /** @deprecated */
+ type: string;
+ /** Sets or retrieves the value of a list item. */
+ value: number;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLIElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLIElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLLIElement: {
+ prototype: HTMLLIElement;
+ new(): HTMLLIElement;
+ isInstance(obj): obj is HTMLLIElement;
+};
+
+/**
+ * Gives access to properties specific to <label> elements. It inherits methods and properties from the base HTMLElement interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLabelElement)
+ */
+interface HTMLLabelElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLabelElement/control) */
+ readonly control: HTMLElement | null;
+ /**
+ * Retrieves a reference to the form that the object is embedded in.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLabelElement/form)
+ */
+ readonly form: HTMLFormElement | null;
+ /**
+ * Sets or retrieves the object to which the given label object is assigned.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLabelElement/htmlFor)
+ */
+ htmlFor: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLabelElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLabelElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLLabelElement: {
+ prototype: HTMLLabelElement;
+ new(): HTMLLabelElement;
+ isInstance(obj): obj is HTMLLabelElement;
+};
+
+/**
+ * The HTMLLegendElement is an interface allowing to access properties of the <legend> elements. It inherits properties and methods from the HTMLElement interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLegendElement)
+ */
+interface HTMLLegendElement extends HTMLElement {
+ /** @deprecated */
+ align: string;
+ /** Retrieves a reference to the form that the object is embedded in. */
+ readonly form: HTMLFormElement | null;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLegendElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLegendElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLLegendElement: {
+ prototype: HTMLLegendElement;
+ new(): HTMLLegendElement;
+ isInstance(obj): obj is HTMLLegendElement;
+};
+
+/**
+ * Reference information for external resources and the relationship of those resources to a document and vice-versa. This object inherits all of the properties and methods of the HTMLElement interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement)
+ */
+interface HTMLLinkElement extends HTMLElement, LinkStyle {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/as) */
+ as: string;
+ /**
+ * Sets or retrieves the character set used to encode the object.
+ * @deprecated
+ */
+ charset: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/crossOrigin) */
+ crossOrigin: string | null;
+ disabled: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/fetchPriority) */
+ fetchPriority: string;
+ /**
+ * Sets or retrieves a destination URL or an anchor point.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/href)
+ */
+ href: string;
+ /**
+ * Sets or retrieves the language code of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/hreflang)
+ */
+ hreflang: string;
+ imageSizes: string;
+ imageSrcset: string;
+ integrity: string;
+ /** Sets or retrieves the media type. */
+ media: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/referrerPolicy) */
+ referrerPolicy: string;
+ /**
+ * Sets or retrieves the relationship between the object and the destination of the link.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/rel)
+ */
+ rel: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/relList) */
+ readonly relList: DOMTokenList;
+ /**
+ * Sets or retrieves the relationship between the object and the destination of the link.
+ * @deprecated
+ */
+ rev: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/sizes) */
+ readonly sizes: DOMTokenList;
+ /**
+ * Sets or retrieves the window or frame at which to target content.
+ * @deprecated
+ */
+ target: string;
+ /** Sets or retrieves the MIME type of the object. */
+ type: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLinkElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLLinkElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLLinkElement: {
+ prototype: HTMLLinkElement;
+ new(): HTMLLinkElement;
+ isInstance(obj): obj is HTMLLinkElement;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMapElement)
+ */
+interface HTMLMapElement extends HTMLElement {
+ /**
+ * Retrieves a collection of the area objects defined for the given map object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMapElement/areas)
+ */
+ readonly areas: HTMLCollection;
+ /**
+ * Sets or retrieves the name of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMapElement/name)
+ */
+ name: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMapElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMapElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLMapElement: {
+ prototype: HTMLMapElement;
+ new(): HTMLMapElement;
+ isInstance(obj): obj is HTMLMapElement;
+};
+
+interface HTMLMarqueeElementEventMap extends HTMLElementEventMap {
+ "bounce": Event;
+ "finish": Event;
+ "start": Event;
+}
+
+/**
+ * Provides methods to manipulate <marquee> elements.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMarqueeElement)
+ */
+interface HTMLMarqueeElement extends HTMLElement {
+ /** @deprecated */
+ behavior: string;
+ /** @deprecated */
+ bgColor: string;
+ /** @deprecated */
+ direction: string;
+ /** @deprecated */
+ height: string;
+ /** @deprecated */
+ hspace: number;
+ /** @deprecated */
+ loop: number;
+ /** @deprecated */
+ onbounce: ((this: HTMLMarqueeElement, ev: Event) => any) | null;
+ /** @deprecated */
+ onfinish: ((this: HTMLMarqueeElement, ev: Event) => any) | null;
+ /** @deprecated */
+ onstart: ((this: HTMLMarqueeElement, ev: Event) => any) | null;
+ /** @deprecated */
+ scrollAmount: number;
+ /** @deprecated */
+ scrollDelay: number;
+ /** @deprecated */
+ trueSpeed: boolean;
+ /** @deprecated */
+ vspace: number;
+ /** @deprecated */
+ width: string;
+ /** @deprecated */
+ start(): void;
+ /** @deprecated */
+ stop(): void;
+ addEventListener<K extends keyof HTMLMarqueeElementEventMap>(type: K, listener: (this: HTMLMarqueeElement, ev: HTMLMarqueeElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLMarqueeElementEventMap>(type: K, listener: (this: HTMLMarqueeElement, ev: HTMLMarqueeElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+/** @deprecated */
+declare var HTMLMarqueeElement: {
+ prototype: HTMLMarqueeElement;
+ new(): HTMLMarqueeElement;
+ isInstance(obj): obj is HTMLMarqueeElement;
+};
+
+interface HTMLMediaElementEventMap extends HTMLElementEventMap {
+ "encrypted": Event;
+ "waitingforkey": Event;
+}
+
+/**
+ * Adds to HTMLElement the properties and methods needed to support basic media-related capabilities that are common to audio and video.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement)
+ */
+interface HTMLMediaElement extends HTMLElement {
+ readonly allowedToPlay: boolean;
+ readonly audiblePlayTime: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/audioTracks) */
+ readonly audioTracks: AudioTrackList;
+ /**
+ * Gets or sets a value that indicates whether to start playing the media automatically.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/autoplay)
+ */
+ autoplay: boolean;
+ /**
+ * Gets a collection of buffered time ranges.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/buffered)
+ */
+ readonly buffered: TimeRanges;
+ readonly computedMuted: boolean;
+ readonly computedVolume: number;
+ /**
+ * Gets or sets a flag that indicates whether the client provides a set of controls for the media (in case the developer does not include controls for the player).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/controls)
+ */
+ controls: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/crossOrigin) */
+ crossOrigin: string | null;
+ /**
+ * Gets the address or URL of the current media resource that is selected by IHTMLMediaElement.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/currentSrc)
+ */
+ readonly currentSrc: string;
+ /**
+ * Gets or sets the current playback position, in seconds.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/currentTime)
+ */
+ currentTime: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/defaultMuted) */
+ defaultMuted: boolean;
+ /**
+ * Gets or sets the default playback rate when the user is not using fast forward or reverse for a video or audio resource.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/defaultPlaybackRate)
+ */
+ defaultPlaybackRate: number;
+ /**
+ * Returns the duration in seconds of the current media resource. A NaN value is returned if duration is not available, or Infinity if the media resource is streaming.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/duration)
+ */
+ readonly duration: number;
+ /**
+ * Gets information about whether the playback has ended or not.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended)
+ */
+ readonly ended: boolean;
+ /**
+ * Returns an object representing the current error state of the audio or video element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/error)
+ */
+ "error": ErrorEvent;
+ readonly inaudiblePlayTime: number;
+ readonly invisiblePlayTime: number;
+ readonly isEncrypted: boolean;
+ readonly isInViewPort: boolean;
+ readonly isSuspendedByInactiveDocOrDocShell: boolean;
+ readonly isVideoDecodingSuspended: boolean;
+ /**
+ * Gets or sets a flag to specify whether playback should restart after it completes.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/loop)
+ */
+ loop: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/mediaKeys) */
+ readonly mediaKeys: MediaKeys | null;
+ mozAllowCasting: boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/mozAudioCaptured)
+ */
+ readonly mozAudioCaptured: boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/mozFragmentEnd)
+ */
+ readonly mozFragmentEnd: number;
+ mozIsCasting: boolean;
+ readonly mozMediaSourceObject: MediaSource | null;
+ /**
+ * Gets or sets a flag that indicates whether the audio (either audio or the audio track on video media) is muted.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/muted)
+ */
+ muted: boolean;
+ readonly mutedPlayTime: number;
+ /**
+ * Gets the current network activity for the element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/networkState)
+ */
+ readonly networkState: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/encrypted_event) */
+ onencrypted: ((this: HTMLMediaElement, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/waitingforkey_event) */
+ onwaitingforkey: ((this: HTMLMediaElement, ev: Event) => any) | null;
+ /**
+ * Gets a flag that specifies whether playback is paused.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/paused)
+ */
+ readonly paused: boolean;
+ /**
+ * Gets or sets the current rate of speed for the media resource to play. This speed is expressed as a multiple of the normal speed of the media resource.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/playbackRate)
+ */
+ playbackRate: number;
+ /**
+ * Gets TimeRanges for the current media resource that has been played.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/played)
+ */
+ readonly played: TimeRanges;
+ /**
+ * Gets or sets a value indicating what data should be preloaded, if any.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/preload)
+ */
+ preload: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/preservesPitch) */
+ preservesPitch: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/readyState) */
+ readonly readyState: number;
+ /**
+ * Returns a TimeRanges object that represents the ranges of the current media resource that can be seeked.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seekable)
+ */
+ readonly seekable: TimeRanges;
+ /**
+ * Gets a flag that indicates whether the client is currently moving to a new playback position in the media resource.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seeking)
+ */
+ readonly seeking: boolean;
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/sinkId)
+ */
+ readonly sinkId: string;
+ /**
+ * The address or URL of the a media resource that is to be considered.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/src)
+ */
+ src: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/srcObject) */
+ srcObject: MediaStream | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/textTracks) */
+ readonly textTracks: TextTrackList | null;
+ readonly totalAudioPlayTime: number;
+ readonly totalVideoHDRPlayTime: number;
+ readonly totalVideoPlayTime: number;
+ readonly videoDecodeSuspendedTime: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/videoTracks) */
+ readonly videoTracks: VideoTrackList;
+ readonly visiblePlayTime: number;
+ /**
+ * Gets or sets the volume level for audio portions of the media element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/volume)
+ */
+ volume: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/addTextTrack) */
+ addTextTrack(kind: TextTrackKind, label?: string, language?: string): TextTrack;
+ /**
+ * Returns a string that specifies whether the client can play a given media resource type.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/canPlayType)
+ */
+ canPlayType(type: string): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/fastSeek) */
+ fastSeek(time: number): void;
+ hasSuspendTaint(): boolean;
+ /**
+ * Resets the audio or video object and loads a new media resource.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/load)
+ */
+ load(): void;
+ /**
+ * @deprecated This is a legacy alias of `captureStream`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/captureStream)
+ */
+ mozCaptureStream(): MediaStream;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/mozCaptureStreamUntilEnded)
+ */
+ mozCaptureStreamUntilEnded(): MediaStream;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/mozGetMetadata)
+ */
+ mozGetMetadata(): any;
+ mozRequestDebugInfo(): Promise<HTMLMediaElementDebugInfo>;
+ mozRequestDebugLog(): Promise<string>;
+ /**
+ * Pauses the current playback and sets paused to TRUE.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/pause)
+ */
+ pause(): void;
+ /**
+ * Loads and starts playback of a media resource.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/play)
+ */
+ play(): Promise<void>;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/seekToNextFrame)
+ */
+ seekToNextFrame(): Promise<void>;
+ setAudioSinkFailedStartup(): void;
+ setDecodeError(error: string): void;
+ setFormatDiagnosticsReportForMimeType(mimeType: string, error: DecoderDoctorReportType): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/setMediaKeys) */
+ setMediaKeys(mediaKeys: MediaKeys | null): Promise<void>;
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/setSinkId)
+ */
+ setSinkId(sinkId: string): Promise<void>;
+ setVisible(aVisible: boolean): void;
+ readonly NETWORK_EMPTY: 0;
+ readonly NETWORK_IDLE: 1;
+ readonly NETWORK_LOADING: 2;
+ readonly NETWORK_NO_SOURCE: 3;
+ readonly HAVE_NOTHING: 0;
+ readonly HAVE_METADATA: 1;
+ readonly HAVE_CURRENT_DATA: 2;
+ readonly HAVE_FUTURE_DATA: 3;
+ readonly HAVE_ENOUGH_DATA: 4;
+ addEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLMediaElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLMediaElement: {
+ prototype: HTMLMediaElement;
+ new(): HTMLMediaElement;
+ readonly NETWORK_EMPTY: 0;
+ readonly NETWORK_IDLE: 1;
+ readonly NETWORK_LOADING: 2;
+ readonly NETWORK_NO_SOURCE: 3;
+ readonly HAVE_NOTHING: 0;
+ readonly HAVE_METADATA: 1;
+ readonly HAVE_CURRENT_DATA: 2;
+ readonly HAVE_FUTURE_DATA: 3;
+ readonly HAVE_ENOUGH_DATA: 4;
+ mozEnableDebugLog(): void;
+ isInstance(obj): obj is HTMLMediaElement;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMenuElement) */
+interface HTMLMenuElement extends HTMLElement {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMenuElement/compact)
+ */
+ compact: boolean;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMenuElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMenuElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLMenuElement: {
+ prototype: HTMLMenuElement;
+ new(): HTMLMenuElement;
+ isInstance(obj): obj is HTMLMenuElement;
+};
+
+/**
+ * Contains descriptive metadata about a document. It inherits all of the properties and methods described in the HTMLElement interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMetaElement)
+ */
+interface HTMLMetaElement extends HTMLElement {
+ /** Gets or sets meta-information to associate with httpEquiv or name. */
+ content: string;
+ /** Gets or sets information used to bind the value of a content attribute of a meta element to an HTTP response header. */
+ httpEquiv: string;
+ media: string;
+ /** Sets or retrieves the value specified in the content attribute of the meta object. */
+ name: string;
+ /**
+ * Sets or retrieves a scheme to be used in interpreting the value of a property specified for the object.
+ * @deprecated
+ */
+ scheme: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMetaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMetaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLMetaElement: {
+ prototype: HTMLMetaElement;
+ new(): HTMLMetaElement;
+ isInstance(obj): obj is HTMLMetaElement;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement)
+ */
+interface HTMLMeterElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/high) */
+ high: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/labels) */
+ readonly labels: NodeList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/low) */
+ low: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/max) */
+ max: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/min) */
+ min: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/optimum) */
+ optimum: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMeterElement/value) */
+ value: number;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMeterElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLMeterElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLMeterElement: {
+ prototype: HTMLMeterElement;
+ new(): HTMLMeterElement;
+ isInstance(obj): obj is HTMLMeterElement;
+};
+
+/**
+ * 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>.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLModElement)
+ */
+interface HTMLModElement extends HTMLElement {
+ /**
+ * Sets or retrieves reference information about the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLModElement/cite)
+ */
+ cite: string;
+ /**
+ * Sets or retrieves the date and time of a modification to the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLModElement/dateTime)
+ */
+ dateTime: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLModElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLModElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLModElement: {
+ prototype: HTMLModElement;
+ new(): HTMLModElement;
+ isInstance(obj): obj is HTMLModElement;
+};
+
+interface HTMLModelElement {
+}
+
+declare var HTMLModelElement: {
+ prototype: HTMLModelElement;
+ new(): HTMLModelElement;
+ isInstance(obj): obj is HTMLModelElement;
+};
+
+/**
+ * Provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating ordered list elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOListElement)
+ */
+interface HTMLOListElement extends HTMLElement {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOListElement/compact)
+ */
+ compact: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOListElement/reversed) */
+ reversed: boolean;
+ /**
+ * The starting number.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOListElement/start)
+ */
+ start: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOListElement/type) */
+ type: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLOListElement: {
+ prototype: HTMLOListElement;
+ new(): HTMLOListElement;
+ isInstance(obj): obj is HTMLOListElement;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement)
+ */
+interface HTMLObjectElement extends HTMLElement, MozFrameLoaderOwner, MozImageLoadingContent, MozObjectLoadingContent {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/align)
+ */
+ align: string;
+ /**
+ * Sets or retrieves a character string that can be used to implement your own archive functionality for the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/archive)
+ */
+ archive: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/border)
+ */
+ border: string;
+ /**
+ * Sets or retrieves the URL of the file containing the compiled Java class.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/code)
+ */
+ code: string;
+ /**
+ * Sets or retrieves the URL of the component.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/codeBase)
+ */
+ codeBase: string;
+ /**
+ * Sets or retrieves the Internet media type for the code associated with the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/codeType)
+ */
+ codeType: string;
+ /**
+ * Retrieves the document object of the page or frame.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/contentDocument)
+ */
+ readonly contentDocument: Document | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/contentWindow) */
+ readonly contentWindow: WindowProxy | null;
+ /**
+ * Sets or retrieves the URL that references the data of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/data)
+ */
+ data: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/declare)
+ */
+ declare: boolean;
+ /**
+ * Retrieves a reference to the form that the object is embedded in.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/form)
+ */
+ readonly form: HTMLFormElement | null;
+ /**
+ * Sets or retrieves the height of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/height)
+ */
+ height: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/hspace)
+ */
+ hspace: number;
+ /**
+ * Sets or retrieves the name of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/name)
+ */
+ name: string;
+ /**
+ * Sets or retrieves a message to be displayed while an object is loading.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/standby)
+ */
+ standby: string;
+ /**
+ * Sets or retrieves the MIME type of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/type)
+ */
+ type: string;
+ /**
+ * Sets or retrieves the URL, often with a bookmark extension (#name), to use as a client-side image map.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/useMap)
+ */
+ useMap: string;
+ /**
+ * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/validationMessage)
+ */
+ readonly validationMessage: string;
+ /**
+ * Returns a ValidityState object that represents the validity states of an element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/validity)
+ */
+ readonly validity: ValidityState;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/vspace)
+ */
+ vspace: number;
+ /**
+ * Sets or retrieves the width of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/width)
+ */
+ width: string;
+ /**
+ * Returns whether an element will successfully validate based on forms validation rules and constraints.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/willValidate)
+ */
+ readonly willValidate: boolean;
+ /**
+ * Returns whether a form will validate when it is submitted, without having to submit it.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/checkValidity)
+ */
+ checkValidity(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/getSVGDocument) */
+ getSVGDocument(): Document | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/reportValidity) */
+ reportValidity(): boolean;
+ /**
+ * Sets a custom error message that is displayed when a form is submitted.
+ * @param error Sets a custom error message that is displayed when a form is submitted.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLObjectElement/setCustomValidity)
+ */
+ setCustomValidity(error: string): void;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLObjectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLObjectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLObjectElement: {
+ prototype: HTMLObjectElement;
+ new(): HTMLObjectElement;
+ readonly UNKNOWN_REQUEST: -1;
+ readonly CURRENT_REQUEST: 0;
+ readonly PENDING_REQUEST: 1;
+ readonly TYPE_LOADING: 0;
+ readonly TYPE_IMAGE: 1;
+ readonly TYPE_FALLBACK: 2;
+ readonly TYPE_FAKE_PLUGIN: 3;
+ readonly TYPE_DOCUMENT: 4;
+ readonly TYPE_NULL: 5;
+ isInstance(obj): obj is HTMLObjectElement;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptGroupElement)
+ */
+interface HTMLOptGroupElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptGroupElement/disabled) */
+ disabled: boolean;
+ /**
+ * Sets or retrieves a value that you can use to implement your own label functionality for the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptGroupElement/label)
+ */
+ label: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptGroupElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptGroupElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLOptGroupElement: {
+ prototype: HTMLOptGroupElement;
+ new(): HTMLOptGroupElement;
+ isInstance(obj): obj is HTMLOptGroupElement;
+};
+
+/**
+ * <option> elements and inherits all classes and methods of the HTMLElement interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement)
+ */
+interface HTMLOptionElement extends HTMLElement {
+ /**
+ * Sets or retrieves the status of an option.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/defaultSelected)
+ */
+ defaultSelected: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/disabled) */
+ disabled: boolean;
+ /**
+ * Retrieves a reference to the form that the object is embedded in.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/form)
+ */
+ readonly form: HTMLFormElement | null;
+ /**
+ * Sets or retrieves the ordinal position of an option in a list box.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/index)
+ */
+ readonly index: number;
+ /**
+ * Sets or retrieves a value that you can use to implement your own label functionality for the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/label)
+ */
+ label: string;
+ /**
+ * Sets or retrieves whether the option in the list box is the default item.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/selected)
+ */
+ selected: boolean;
+ /**
+ * Sets or retrieves the text string specified by the option tag.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/text)
+ */
+ text: string;
+ /**
+ * Sets or retrieves the value which is returned to the server when the form control is submitted.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionElement/value)
+ */
+ value: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLOptionElement: {
+ prototype: HTMLOptionElement;
+ new(): HTMLOptionElement;
+ isInstance(obj): obj is HTMLOptionElement;
+};
+
+/**
+ * HTMLOptionsCollection is an interface representing a collection of HTML option elements (in document order) and offers methods and properties for traversing the list as well as optionally altering its items. This type is returned solely by the "options" property of select.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection)
+ */
+interface HTMLOptionsCollection extends HTMLCollectionBase {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection/length) */
+ length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection/selectedIndex) */
+ selectedIndex: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection/add) */
+ add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOptionsCollection/remove) */
+ remove(index: number): void;
+}
+
+declare var HTMLOptionsCollection: {
+ prototype: HTMLOptionsCollection;
+ new(): HTMLOptionsCollection;
+ isInstance(obj): obj is HTMLOptionsCollection;
+};
+
+interface HTMLOrForeignElement {
+ autofocus: boolean;
+ readonly dataset: DOMStringMap;
+ tabIndex: number;
+ blur(): void;
+ focus(options?: FocusOptions): void;
+}
+
+/**
+ * Provides properties and methods (beyond those inherited from HTMLElement) for manipulating the layout and presentation of <output> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement)
+ */
+interface HTMLOutputElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/defaultValue) */
+ defaultValue: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/form) */
+ readonly form: HTMLFormElement | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/htmlFor) */
+ readonly htmlFor: DOMTokenList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/labels) */
+ readonly labels: NodeList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/name) */
+ name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/type) */
+ readonly type: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/validationMessage) */
+ readonly validationMessage: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/validity) */
+ readonly validity: ValidityState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/value) */
+ value: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/willValidate) */
+ readonly willValidate: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/checkValidity) */
+ checkValidity(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/reportValidity) */
+ reportValidity(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLOutputElement/setCustomValidity) */
+ setCustomValidity(error: string): void;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOutputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLOutputElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLOutputElement: {
+ prototype: HTMLOutputElement;
+ new(): HTMLOutputElement;
+ isInstance(obj): obj is HTMLOutputElement;
+};
+
+/**
+ * Provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating <p> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParagraphElement)
+ */
+interface HTMLParagraphElement extends HTMLElement {
+ /**
+ * Sets or retrieves how the object is aligned with adjacent text.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParagraphElement/align)
+ */
+ align: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParagraphElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParagraphElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLParagraphElement: {
+ prototype: HTMLParagraphElement;
+ new(): HTMLParagraphElement;
+ isInstance(obj): obj is HTMLParagraphElement;
+};
+
+/**
+ * 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.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParamElement)
+ */
+interface HTMLParamElement extends HTMLElement {
+ /**
+ * Sets or retrieves the name of an input parameter for an element.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParamElement/name)
+ */
+ name: string;
+ /**
+ * Sets or retrieves the content type of the resource designated by the value attribute.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParamElement/type)
+ */
+ type: string;
+ /**
+ * Sets or retrieves the value of an input parameter for an element.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParamElement/value)
+ */
+ value: string;
+ /**
+ * Sets or retrieves the data type of the value attribute.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLParamElement/valueType)
+ */
+ valueType: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParamElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLParamElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+/** @deprecated */
+declare var HTMLParamElement: {
+ prototype: HTMLParamElement;
+ new(): HTMLParamElement;
+ isInstance(obj): obj is HTMLParamElement;
+};
+
+/**
+ * A <picture> HTML element. It doesn't implement specific properties or methods.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLPictureElement)
+ */
+interface HTMLPictureElement extends HTMLElement {
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPictureElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLPictureElement: {
+ prototype: HTMLPictureElement;
+ new(): HTMLPictureElement;
+ isInstance(obj): obj is HTMLPictureElement;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLPortalElement) */
+interface HTMLPortalElement {
+}
+
+declare var HTMLPortalElement: {
+ prototype: HTMLPortalElement;
+ new(): HTMLPortalElement;
+ isInstance(obj): obj is HTMLPortalElement;
+};
+
+/**
+ * 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>).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLPreElement)
+ */
+interface HTMLPreElement extends HTMLElement {
+ /**
+ * Sets or gets a value that you can use to implement your own width functionality for the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLPreElement/width)
+ */
+ width: number;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPreElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLPreElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLPreElement: {
+ prototype: HTMLPreElement;
+ new(): HTMLPreElement;
+ isInstance(obj): obj is HTMLPreElement;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement)
+ */
+interface HTMLProgressElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement/labels) */
+ readonly labels: NodeList;
+ /**
+ * Defines the maximum, or "done" value for a progress element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement/max)
+ */
+ max: number;
+ /**
+ * Returns the quotient of value/max when the value attribute is set (determinate progress bar), or -1 when the value attribute is missing (indeterminate progress bar).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement/position)
+ */
+ readonly position: number;
+ /**
+ * Sets or gets the current value of a progress element. The value must be a non-negative number between 0 and the max value.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLProgressElement/value)
+ */
+ value: number;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLProgressElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLProgressElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLProgressElement: {
+ prototype: HTMLProgressElement;
+ new(): HTMLProgressElement;
+ isInstance(obj): obj is HTMLProgressElement;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLQuoteElement)
+ */
+interface HTMLQuoteElement extends HTMLElement {
+ /**
+ * Sets or retrieves reference information about the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLQuoteElement/cite)
+ */
+ cite: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLQuoteElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLQuoteElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLQuoteElement: {
+ prototype: HTMLQuoteElement;
+ new(): HTMLQuoteElement;
+ isInstance(obj): obj is HTMLQuoteElement;
+};
+
+/**
+ * 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).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement)
+ */
+interface HTMLScriptElement extends HTMLElement {
+ async: boolean;
+ /**
+ * Sets or retrieves the character set used to encode the object.
+ * @deprecated
+ */
+ charset: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/crossOrigin) */
+ crossOrigin: string | null;
+ /** Sets or retrieves the status of the script. */
+ defer: boolean;
+ /**
+ * Sets or retrieves the event for which the script is written.
+ * @deprecated
+ */
+ event: string;
+ fetchPriority: string;
+ /**
+ * Sets or retrieves the object that is bound to the event script.
+ * @deprecated
+ */
+ htmlFor: string;
+ integrity: string;
+ noModule: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/referrerPolicy) */
+ referrerPolicy: string;
+ /** Retrieves the URL to an external file that contains the source code or data. */
+ src: string;
+ /** Retrieves or sets the text of the object as a string. */
+ text: string;
+ /** Sets or retrieves the MIME type for the associated scripting engine. */
+ type: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLScriptElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLScriptElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLScriptElement: {
+ prototype: HTMLScriptElement;
+ new(): HTMLScriptElement;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLScriptElement/supports_static) */
+ supports(type: string): boolean;
+ isInstance(obj): obj is HTMLScriptElement;
+};
+
+/**
+ * A <select> HTML Element. These elements also share all of the properties and methods of other HTML elements via the HTMLElement interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement)
+ */
+interface HTMLSelectElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/autocomplete) */
+ autocomplete: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/disabled) */
+ disabled: boolean;
+ /**
+ * Retrieves a reference to the form that the object is embedded in.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/form)
+ */
+ readonly form: HTMLFormElement | null;
+ readonly isCombobox: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/labels) */
+ readonly labels: NodeList;
+ /**
+ * Sets or retrieves the number of objects in a collection.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/length)
+ */
+ length: number;
+ /**
+ * Sets or retrieves the Boolean value indicating whether multiple items can be selected from a list.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/multiple)
+ */
+ multiple: boolean;
+ /**
+ * Sets or retrieves the name of the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/name)
+ */
+ name: string;
+ openInParentProcess: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/options) */
+ readonly options: HTMLOptionsCollection;
+ previewValue: string;
+ /**
+ * When present, marks an element that can't be submitted without a value.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/required)
+ */
+ required: boolean;
+ /**
+ * Sets or retrieves the index of the selected option in a select object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/selectedIndex)
+ */
+ selectedIndex: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/selectedOptions) */
+ readonly selectedOptions: HTMLCollection;
+ /**
+ * Sets or retrieves the number of rows in the list box.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/size)
+ */
+ size: number;
+ /**
+ * Retrieves the type of select control based on the value of the MULTIPLE attribute.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/type)
+ */
+ readonly type: string;
+ /**
+ * Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/validationMessage)
+ */
+ readonly validationMessage: string;
+ /**
+ * Returns a ValidityState object that represents the validity states of an element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/validity)
+ */
+ readonly validity: ValidityState;
+ /**
+ * Sets or retrieves the value which is returned to the server when the form control is submitted.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/value)
+ */
+ value: string;
+ /**
+ * Returns whether an element will successfully validate based on forms validation rules and constraints.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/willValidate)
+ */
+ readonly willValidate: boolean;
+ /**
+ * Adds an element to the areas, controlRange, or options collection.
+ * @param element Variant of type Number that specifies the index position in the collection where the element is placed. If no value is given, the method places the element at the end of the collection.
+ * @param before Variant of type Object that specifies an element to insert before, or null to append the object to the collection.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/add)
+ */
+ add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number | null): void;
+ /**
+ * Returns whether a form will validate when it is submitted, without having to submit it.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/checkValidity)
+ */
+ checkValidity(): boolean;
+ getAutocompleteInfo(): AutocompleteInfo;
+ /**
+ * Retrieves a select object or an object from an options collection.
+ * @param name Variant of type Number or String that specifies the object or collection to retrieve. If this parameter is an integer, it is the zero-based index of the object. If this parameter is a string, all objects with matching name or id properties are retrieved, and a collection is returned if more than one match is made.
+ * @param index Variant of type Number that specifies the zero-based index of the object to retrieve when a collection is returned.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/item)
+ */
+ item(index: number): Element | null;
+ /**
+ * Retrieves a select object or an object from an options collection.
+ * @param namedItem A String that specifies the name or id property of the object to retrieve. A collection is returned if more than one match is made.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/namedItem)
+ */
+ namedItem(name: string): HTMLOptionElement | null;
+ /**
+ * Removes an element from the collection.
+ * @param index Number that specifies the zero-based index of the element to remove from the collection.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/remove)
+ */
+ remove(index: number): void;
+ remove(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/reportValidity) */
+ reportValidity(): boolean;
+ /**
+ * Sets a custom error message that is displayed when a form is submitted.
+ * @param error Sets a custom error message that is displayed when a form is submitted.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/setCustomValidity)
+ */
+ setCustomValidity(error: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSelectElement/showPicker) */
+ showPicker(): void;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSelectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSelectElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+ [index: number]: Element;
+}
+
+declare var HTMLSelectElement: {
+ prototype: HTMLSelectElement;
+ new(): HTMLSelectElement;
+ isInstance(obj): obj is HTMLSelectElement;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement) */
+interface HTMLSlotElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/name) */
+ name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/assign) */
+ assign(...nodes: (Element | Text)[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/assignedElements) */
+ assignedElements(options?: AssignedNodesOptions): Element[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSlotElement/assignedNodes) */
+ assignedNodes(options?: AssignedNodesOptions): Node[];
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLSlotElement: {
+ prototype: HTMLSlotElement;
+ new(): HTMLSlotElement;
+ isInstance(obj): obj is HTMLSlotElement;
+};
+
+/**
+ * Provides special properties (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating <source> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement)
+ */
+interface HTMLSourceElement extends HTMLElement {
+ height: number;
+ /**
+ * Gets or sets the intended media type of the media source.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/media)
+ */
+ media: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/sizes) */
+ sizes: string;
+ /**
+ * The address or URL of the a media resource that is to be considered.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/src)
+ */
+ src: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/srcset) */
+ srcset: string;
+ /**
+ * Gets or sets the MIME type of a media resource.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSourceElement/type)
+ */
+ type: string;
+ width: number;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLSourceElement: {
+ prototype: HTMLSourceElement;
+ new(): HTMLSourceElement;
+ isInstance(obj): obj is HTMLSourceElement;
+};
+
+/**
+ * A <span> element and derives from the HTMLElement interface, but without implementing any additional properties or methods.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLSpanElement)
+ */
+interface HTMLSpanElement extends HTMLElement {
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSpanElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLSpanElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLSpanElement: {
+ prototype: HTMLSpanElement;
+ new(): HTMLSpanElement;
+ isInstance(obj): obj is HTMLSpanElement;
+};
+
+/**
+ * A <style> element. It inherits properties and methods from its parent, HTMLElement, and from LinkStyle.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLStyleElement)
+ */
+interface HTMLStyleElement extends HTMLElement, LinkStyle {
+ /**
+ * Enables or disables the style sheet.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLStyleElement/disabled)
+ */
+ disabled: boolean;
+ /**
+ * Sets or retrieves the media type.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLStyleElement/media)
+ */
+ media: string;
+ /**
+ * Retrieves the CSS language in which the style sheet is written.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLStyleElement/type)
+ */
+ type: string;
+ setDevtoolsAsTriggeringPrincipal(): void;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLStyleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLStyleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLStyleElement: {
+ prototype: HTMLStyleElement;
+ new(): HTMLStyleElement;
+ isInstance(obj): obj is HTMLStyleElement;
+};
+
+/**
+ * Special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating table caption elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCaptionElement)
+ */
+interface HTMLTableCaptionElement extends HTMLElement {
+ /**
+ * Sets or retrieves the alignment of the caption or legend.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCaptionElement/align)
+ */
+ align: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCaptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCaptionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLTableCaptionElement: {
+ prototype: HTMLTableCaptionElement;
+ new(): HTMLTableCaptionElement;
+ isInstance(obj): obj is HTMLTableCaptionElement;
+};
+
+/**
+ * Provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of table cells, either header or data cells, in an HTML document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement)
+ */
+interface HTMLTableCellElement extends HTMLElement {
+ /**
+ * Sets or retrieves abbreviated text for the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/abbr)
+ */
+ abbr: string;
+ /**
+ * Sets or retrieves how the object is aligned with adjacent text.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/align)
+ */
+ align: string;
+ /**
+ * Sets or retrieves a comma-delimited list of conceptual categories associated with the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/axis)
+ */
+ axis: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/bgColor)
+ */
+ bgColor: string;
+ /**
+ * Retrieves the position of the object in the cells collection of a row.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/cellIndex)
+ */
+ readonly cellIndex: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/ch)
+ */
+ ch: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/chOff)
+ */
+ chOff: string;
+ /**
+ * Sets or retrieves the number columns in the table that the object should span.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/colSpan)
+ */
+ colSpan: number;
+ /**
+ * Sets or retrieves a list of header cells that provide information for the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/headers)
+ */
+ headers: string;
+ /**
+ * Sets or retrieves the height of the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/height)
+ */
+ height: string;
+ /**
+ * Sets or retrieves whether the browser automatically performs wordwrap.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/noWrap)
+ */
+ noWrap: boolean;
+ /**
+ * Sets or retrieves how many rows in a table the cell should span.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/rowSpan)
+ */
+ rowSpan: number;
+ /**
+ * Sets or retrieves the group of cells in a table to which the object's information applies.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/scope)
+ */
+ scope: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/vAlign)
+ */
+ vAlign: string;
+ /**
+ * Sets or retrieves the width of the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableCellElement/width)
+ */
+ width: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableCellElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLTableCellElement: {
+ prototype: HTMLTableCellElement;
+ new(): HTMLTableCellElement;
+ isInstance(obj): obj is HTMLTableCellElement;
+};
+
+/**
+ * Provides special properties (beyond the HTMLElement interface it also has available to it inheritance) for manipulating single or grouped table column elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement)
+ */
+interface HTMLTableColElement extends HTMLElement {
+ /**
+ * Sets or retrieves the alignment of the object relative to the display or table.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/align)
+ */
+ align: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/ch)
+ */
+ ch: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/chOff)
+ */
+ chOff: string;
+ /**
+ * Sets or retrieves the number of columns in the group.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/span)
+ */
+ span: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/vAlign)
+ */
+ vAlign: string;
+ /**
+ * Sets or retrieves the width of the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableColElement/width)
+ */
+ width: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableColElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableColElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLTableColElement: {
+ prototype: HTMLTableColElement;
+ new(): HTMLTableColElement;
+ isInstance(obj): obj is HTMLTableColElement;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement)
+ */
+interface HTMLTableElement extends HTMLElement {
+ /**
+ * Sets or retrieves a value that indicates the table alignment.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/align)
+ */
+ align: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/bgColor)
+ */
+ bgColor: string;
+ /**
+ * Sets or retrieves the width of the border to draw around the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/border)
+ */
+ border: string;
+ /**
+ * Retrieves the caption object of a table.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/caption)
+ */
+ caption: HTMLTableCaptionElement | null;
+ /**
+ * Sets or retrieves the amount of space between the border of the cell and the content of the cell.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/cellPadding)
+ */
+ cellPadding: string;
+ /**
+ * Sets or retrieves the amount of space between cells in a table.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/cellSpacing)
+ */
+ cellSpacing: string;
+ /**
+ * Sets or retrieves the way the border frame around the table is displayed.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/frame)
+ */
+ frame: string;
+ /**
+ * Sets or retrieves the number of horizontal rows contained in the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/rows)
+ */
+ readonly rows: HTMLCollection;
+ /**
+ * Sets or retrieves which dividing lines (inner borders) are displayed.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/rules)
+ */
+ rules: string;
+ /**
+ * Sets or retrieves a description and/or structure of the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/summary)
+ */
+ summary: string;
+ /**
+ * Retrieves a collection of all tBody objects in the table. Objects in this collection are in source order.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/tBodies)
+ */
+ readonly tBodies: HTMLCollection;
+ /**
+ * Retrieves the tFoot object of the table.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/tFoot)
+ */
+ tFoot: HTMLTableSectionElement | null;
+ /**
+ * Retrieves the tHead object of the table.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/tHead)
+ */
+ tHead: HTMLTableSectionElement | null;
+ /**
+ * Sets or retrieves the width of the object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/width)
+ */
+ width: string;
+ /**
+ * Creates an empty caption element in the table.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/createCaption)
+ */
+ createCaption(): HTMLElement;
+ /**
+ * Creates an empty tBody element in the table.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/createTBody)
+ */
+ createTBody(): HTMLElement;
+ /**
+ * Creates an empty tFoot element in the table.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/createTFoot)
+ */
+ createTFoot(): HTMLElement;
+ /**
+ * Returns the tHead element object if successful, or null otherwise.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/createTHead)
+ */
+ createTHead(): HTMLElement;
+ /**
+ * Deletes the caption element and its contents from the table.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/deleteCaption)
+ */
+ deleteCaption(): void;
+ /**
+ * Removes the specified row (tr) from the element and from the rows collection.
+ * @param index Number that specifies the zero-based position in the rows collection of the row to remove.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/deleteRow)
+ */
+ deleteRow(index: number): void;
+ /**
+ * Deletes the tFoot element and its contents from the table.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/deleteTFoot)
+ */
+ deleteTFoot(): void;
+ /**
+ * Deletes the tHead element and its contents from the table.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/deleteTHead)
+ */
+ deleteTHead(): void;
+ /**
+ * Creates a new row (tr) in the table, and adds the row to the rows collection.
+ * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableElement/insertRow)
+ */
+ insertRow(index?: number): HTMLElement;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLTableElement: {
+ prototype: HTMLTableElement;
+ new(): HTMLTableElement;
+ isInstance(obj): obj is HTMLTableElement;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement)
+ */
+interface HTMLTableRowElement extends HTMLElement {
+ /**
+ * Sets or retrieves how the object is aligned with adjacent text.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/align)
+ */
+ align: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/bgColor)
+ */
+ bgColor: string;
+ /**
+ * Retrieves a collection of all cells in the table row.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/cells)
+ */
+ readonly cells: HTMLCollection;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/ch)
+ */
+ ch: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/chOff)
+ */
+ chOff: string;
+ /**
+ * Retrieves the position of the object in the rows collection for the table.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/rowIndex)
+ */
+ readonly rowIndex: number;
+ /**
+ * Retrieves the position of the object in the collection.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/sectionRowIndex)
+ */
+ readonly sectionRowIndex: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/vAlign)
+ */
+ vAlign: string;
+ /**
+ * Removes the specified cell from the table row, as well as from the cells collection.
+ * @param index Number that specifies the zero-based position of the cell to remove from the table row. If no value is provided, the last cell in the cells collection is deleted.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/deleteCell)
+ */
+ deleteCell(index: number): void;
+ /**
+ * Creates a new cell in the table row, and adds the cell to the cells collection.
+ * @param index Number that specifies where to insert the cell in the tr. The default value is -1, which appends the new cell to the end of the cells collection.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableRowElement/insertCell)
+ */
+ insertCell(index?: number): HTMLElement;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableRowElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableRowElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLTableRowElement: {
+ prototype: HTMLTableRowElement;
+ new(): HTMLTableRowElement;
+ isInstance(obj): obj is HTMLTableRowElement;
+};
+
+/**
+ * Provides special properties and methods (beyond the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of sections, that is headers, footers and bodies, in an HTML table.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement)
+ */
+interface HTMLTableSectionElement extends HTMLElement {
+ /**
+ * Sets or retrieves a value that indicates the table alignment.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/align)
+ */
+ align: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/ch)
+ */
+ ch: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/chOff)
+ */
+ chOff: string;
+ /**
+ * Sets or retrieves the number of horizontal rows contained in the object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/rows)
+ */
+ readonly rows: HTMLCollection;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/vAlign)
+ */
+ vAlign: string;
+ /**
+ * Removes the specified row (tr) from the element and from the rows collection.
+ * @param index Number that specifies the zero-based position in the rows collection of the row to remove.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/deleteRow)
+ */
+ deleteRow(index: number): void;
+ /**
+ * Creates a new row (tr) in the table, and adds the row to the rows collection.
+ * @param index Number that specifies where to insert the row in the rows collection. The default value is -1, which appends the new row to the end of the rows collection.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTableSectionElement/insertRow)
+ */
+ insertRow(index?: number): HTMLElement;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableSectionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTableSectionElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLTableSectionElement: {
+ prototype: HTMLTableSectionElement;
+ new(): HTMLTableSectionElement;
+ isInstance(obj): obj is HTMLTableSectionElement;
+};
+
+/**
+ * Enables access to the contents of an HTML <template> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTemplateElement)
+ */
+interface HTMLTemplateElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTemplateElement/content) */
+ readonly content: DocumentFragment;
+ shadowRootDelegatesFocus: boolean;
+ shadowRootMode: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTemplateElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTemplateElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLTemplateElement: {
+ prototype: HTMLTemplateElement;
+ new(): HTMLTemplateElement;
+ isInstance(obj): obj is HTMLTemplateElement;
+};
+
+/**
+ * Provides special properties and methods for manipulating the layout and presentation of <textarea> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement)
+ */
+interface HTMLTextAreaElement extends HTMLElement, MozEditableElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/autocomplete) */
+ autocomplete: string;
+ /** Sets or retrieves the width of the object. */
+ cols: number;
+ readonly controllers: XULControllers;
+ /** Sets or retrieves the initial contents of the object. */
+ defaultValue: string;
+ dirName: string;
+ disabled: boolean;
+ /** Retrieves a reference to the form that the object is embedded in. */
+ readonly form: HTMLFormElement | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/labels) */
+ readonly labels: NodeList;
+ /** Sets or retrieves the maximum number of characters that the user can enter in a text control. */
+ maxLength: number;
+ minLength: number;
+ /** Sets or retrieves the name of the object. */
+ name: string;
+ /** Gets or sets a text string that is displayed in an input field as a hint or prompt to users as the format or type of information they need to enter.The text appears in an input field until the user puts focus on the field. */
+ placeholder: string;
+ previewValue: string;
+ /** Sets or retrieves the value indicated whether the content of the object is read-only. */
+ readOnly: boolean;
+ /** When present, marks an element that can't be submitted without a value. */
+ required: boolean;
+ /** Sets or retrieves the number of horizontal rows contained in the object. */
+ rows: number;
+ selectionDirection: string | null;
+ /** Gets or sets the end position or offset of a text selection. */
+ selectionEnd: number | null;
+ /** Gets or sets the starting position or offset of a text selection. */
+ selectionStart: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/textLength) */
+ readonly textLength: number;
+ /** Retrieves the type of control. */
+ readonly type: string;
+ /** Returns the error message that would be displayed if the user submits the form, or an empty string if no error message. It also triggers the standard error message, such as "this is a required field". The result is that the user sees validation messages without actually submitting. */
+ readonly validationMessage: string;
+ /** Returns a ValidityState object that represents the validity states of an element. */
+ readonly validity: ValidityState;
+ /** Retrieves or sets the text in the entry field of the textArea element. */
+ value: string;
+ /** Returns whether an element will successfully validate based on forms validation rules and constraints. */
+ readonly willValidate: boolean;
+ /** Sets or retrieves how to handle wordwrapping in the object. */
+ wrap: string;
+ /** Returns whether a form will validate when it is submitted, without having to submit it. */
+ checkValidity(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTextAreaElement/reportValidity) */
+ reportValidity(): boolean;
+ /** Highlights the input area of a form element. */
+ select(): void;
+ /**
+ * Sets a custom error message that is displayed when a form is submitted.
+ * @param error Sets a custom error message that is displayed when a form is submitted.
+ */
+ setCustomValidity(error: string): void;
+ setRangeText(replacement: string): void;
+ setRangeText(replacement: string, start: number, end: number, selectionMode?: SelectionMode): void;
+ /**
+ * Sets the start and end positions of a selection in a text field.
+ * @param start The offset into the text field for the start of the selection.
+ * @param end The offset into the text field for the end of the selection.
+ * @param direction The direction in which the selection is performed.
+ */
+ setSelectionRange(start: number, end: number, direction?: string): void;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTextAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTextAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLTextAreaElement: {
+ prototype: HTMLTextAreaElement;
+ new(): HTMLTextAreaElement;
+ isInstance(obj): obj is HTMLTextAreaElement;
+};
+
+/**
+ * Provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating <time> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTimeElement)
+ */
+interface HTMLTimeElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTimeElement/dateTime) */
+ dateTime: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTimeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTimeElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLTimeElement: {
+ prototype: HTMLTimeElement;
+ new(): HTMLTimeElement;
+ isInstance(obj): obj is HTMLTimeElement;
+};
+
+/**
+ * Contains the title for a document. This element inherits all of the properties and methods of the HTMLElement interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTitleElement)
+ */
+interface HTMLTitleElement extends HTMLElement {
+ /**
+ * Retrieves or sets the text of the object as a string.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTitleElement/text)
+ */
+ text: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTitleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTitleElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLTitleElement: {
+ prototype: HTMLTitleElement;
+ new(): HTMLTitleElement;
+ isInstance(obj): obj is HTMLTitleElement;
+};
+
+/**
+ * The HTMLTrackElement
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement)
+ */
+interface HTMLTrackElement extends HTMLElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/default) */
+ default: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/kind) */
+ kind: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/label) */
+ label: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/readyState) */
+ readonly readyState: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/src) */
+ src: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/srclang) */
+ srclang: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLTrackElement/track) */
+ readonly track: TextTrack | null;
+ readonly NONE: 0;
+ readonly LOADING: 1;
+ readonly LOADED: 2;
+ readonly ERROR: 3;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTrackElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLTrackElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLTrackElement: {
+ prototype: HTMLTrackElement;
+ new(): HTMLTrackElement;
+ readonly NONE: 0;
+ readonly LOADING: 1;
+ readonly LOADED: 2;
+ readonly ERROR: 3;
+ isInstance(obj): obj is HTMLTrackElement;
+};
+
+/**
+ * Provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating unordered list elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLUListElement)
+ */
+interface HTMLUListElement extends HTMLElement {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLUListElement/compact)
+ */
+ compact: boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLUListElement/type)
+ */
+ type: string;
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUListElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLUListElement: {
+ prototype: HTMLUListElement;
+ new(): HTMLUListElement;
+ isInstance(obj): obj is HTMLUListElement;
+};
+
+/**
+ * An invalid HTML element and derives from the HTMLElement interface, but without implementing any additional properties or methods.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLUnknownElement)
+ */
+interface HTMLUnknownElement extends HTMLElement {
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUnknownElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLUnknownElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLUnknownElement: {
+ prototype: HTMLUnknownElement;
+ new(): HTMLUnknownElement;
+ isInstance(obj): obj is HTMLUnknownElement;
+};
+
+/**
+ * Provides special properties and methods for manipulating video objects. It also inherits properties and methods of HTMLMediaElement and HTMLElement.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement)
+ */
+interface HTMLVideoElement extends HTMLMediaElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/disablePictureInPicture) */
+ disablePictureInPicture: boolean;
+ /**
+ * Gets or sets the height of the video element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/height)
+ */
+ height: number;
+ readonly isCloningElementVisually: boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/mozDecodedFrames)
+ */
+ readonly mozDecodedFrames: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/mozFrameDelay)
+ */
+ readonly mozFrameDelay: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/mozHasAudio)
+ */
+ readonly mozHasAudio: boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/mozPaintedFrames)
+ */
+ readonly mozPaintedFrames: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/mozParsedFrames)
+ */
+ readonly mozParsedFrames: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/mozPresentedFrames)
+ */
+ readonly mozPresentedFrames: number;
+ /** Gets or sets the playsinline of the video element. for example, On iPhone, video elements will now be allowed to play inline, and will not automatically enter fullscreen mode when playback begins. */
+ playsInline: unknown;
+ /**
+ * Gets or sets a URL of an image to display, for example, like a movie poster. This can be a still frame from the video, or another image if no video data is available.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/poster)
+ */
+ poster: string;
+ /**
+ * Gets the intrinsic height of a video in CSS pixels, or zero if the dimensions are not known.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/videoHeight)
+ */
+ readonly videoHeight: number;
+ /**
+ * Gets the intrinsic width of a video in CSS pixels, or zero if the dimensions are not known.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/videoWidth)
+ */
+ readonly videoWidth: number;
+ /**
+ * Gets or sets the width of the video element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/width)
+ */
+ width: number;
+ cloneElementVisually(target: HTMLVideoElement): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement/getVideoPlaybackQuality) */
+ getVideoPlaybackQuality(): VideoPlaybackQuality;
+ stopCloningElementVisually(): void;
+ addEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLVideoElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (this: HTMLVideoElement, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var HTMLVideoElement: {
+ prototype: HTMLVideoElement;
+ new(): HTMLVideoElement;
+ isInstance(obj): obj is HTMLVideoElement;
+};
+
+/**
+ * Events that fire when the fragment identifier of the URL has changed.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HashChangeEvent)
+ */
+interface HashChangeEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HashChangeEvent/newURL) */
+ readonly newURL: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HashChangeEvent/oldURL) */
+ readonly oldURL: string;
+ initHashChangeEvent(typeArg: string, canBubbleArg?: boolean, cancelableArg?: boolean, oldURLArg?: string, newURLArg?: string): void;
+}
+
+declare var HashChangeEvent: {
+ prototype: HashChangeEvent;
+ new(type: string, eventInitDict?: HashChangeEventInit): HashChangeEvent;
+ isInstance(obj): obj is HashChangeEvent;
+};
+
+/**
+ * This Fetch API interface allows you to perform various actions on HTTP request and response headers. These actions include retrieving, setting, adding to, and removing. A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.  You can add to this using methods like append() (see Examples.) In all methods of this interface, header names are matched by case-insensitive byte sequence.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers)
+ */
+interface Headers {
+ guard: HeadersGuardEnum;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/append) */
+ append(name: string, value: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/delete) */
+ delete(name: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/get) */
+ get(name: string): string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/getSetCookie) */
+ getSetCookie(): string[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/has) */
+ has(name: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/set) */
+ set(name: string, value: string): void;
+ forEach(callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any): void;
+}
+
+declare var Headers: {
+ prototype: Headers;
+ new(init?: HeadersInit): Headers;
+ isInstance(obj): obj is Headers;
+};
+
+interface HeapSnapshot {
+ readonly creationTime: number | null;
+ computeDominatorTree(): DominatorTree;
+ computeShortestPaths(start: NodeId, targets: NodeId[], maxNumPaths: number): any;
+ describeNode(breakdown: any, node: NodeId): any;
+ takeCensus(options: any): any;
+}
+
+declare var HeapSnapshot: {
+ prototype: HeapSnapshot;
+ new(): HeapSnapshot;
+ isInstance(obj): obj is HeapSnapshot;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Highlight) */
+interface Highlight {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Highlight/priority) */
+ priority: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Highlight/type) */
+ type: HighlightType;
+ forEach(callbackfn: (value: AbstractRange, key: AbstractRange, parent: Highlight) => void, thisArg?: any): void;
+}
+
+declare var Highlight: {
+ prototype: Highlight;
+ new(...initialRanges: AbstractRange[]): Highlight;
+ isInstance(obj): obj is Highlight;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HighlightRegistry) */
+interface HighlightRegistry {
+ forEach(callbackfn: (value: Highlight, key: string, parent: HighlightRegistry) => void, thisArg?: any): void;
+}
+
+declare var HighlightRegistry: {
+ prototype: HighlightRegistry;
+ new(): HighlightRegistry;
+ isInstance(obj): obj is HighlightRegistry;
+};
+
+/**
+ * Allows manipulation of the browser session history, that is the pages visited in the tab or frame that the current page is loaded in.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/History)
+ */
+interface History {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/scrollRestoration) */
+ scrollRestoration: ScrollRestoration;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/state) */
+ readonly state: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/back) */
+ back(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/forward) */
+ forward(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/go) */
+ go(delta?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/pushState) */
+ pushState(data: any, title: string, url?: string | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/History/replaceState) */
+ replaceState(data: any, title: string, url?: string | null): void;
+}
+
+declare var History: {
+ prototype: History;
+ new(): History;
+ isInstance(obj): obj is History;
+};
+
+/**
+ * This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor)
+ */
+interface IDBCursor {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/direction) */
+ readonly direction: IDBCursorDirection;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/key) */
+ readonly key: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/primaryKey) */
+ readonly primaryKey: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/request) */
+ readonly request: IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/source) */
+ readonly source: IDBObjectStore | IDBIndex;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/advance) */
+ advance(count: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/continue) */
+ continue(key?: any): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/continuePrimaryKey) */
+ continuePrimaryKey(key: any, primaryKey: any): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/delete) */
+ delete(): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursor/update) */
+ update(value: any): IDBRequest;
+}
+
+declare var IDBCursor: {
+ prototype: IDBCursor;
+ new(): IDBCursor;
+ isInstance(obj): obj is IDBCursor;
+};
+
+/**
+ * This IndexedDB API interface represents a cursor for traversing or iterating over multiple records in a database. It is the same as the IDBCursor, except that it includes the value property.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursorWithValue)
+ */
+interface IDBCursorWithValue extends IDBCursor {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBCursorWithValue/value) */
+ readonly value: any;
+}
+
+declare var IDBCursorWithValue: {
+ prototype: IDBCursorWithValue;
+ new(): IDBCursorWithValue;
+ isInstance(obj): obj is IDBCursorWithValue;
+};
+
+interface IDBDatabaseEventMap {
+ "abort": Event;
+ "close": Event;
+ "error": ErrorEvent;
+ "versionchange": Event;
+}
+
+/**
+ * This IndexedDB API interface provides a connection to a database; you can use an IDBDatabase object to open a transaction on your database then create, manipulate, and delete objects (data) in that database. The interface provides the only way to get and manage versions of the database.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase)
+ */
+interface IDBDatabase extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/name) */
+ readonly name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/objectStoreNames) */
+ readonly objectStoreNames: DOMStringList;
+ onabort: ((this: IDBDatabase, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/close_event) */
+ onclose: ((this: IDBDatabase, ev: Event) => any) | null;
+ onerror: OnErrorEventHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/versionchange_event) */
+ onversionchange: ((this: IDBDatabase, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/version) */
+ readonly version: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/close) */
+ close(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/createObjectStore) */
+ createObjectStore(name: string, options?: IDBObjectStoreParameters): IDBObjectStore;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/deleteObjectStore) */
+ deleteObjectStore(name: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBDatabase/transaction) */
+ transaction(storeNames: string | string[], mode?: IDBTransactionMode): IDBTransaction;
+ addEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof IDBDatabaseEventMap>(type: K, listener: (this: IDBDatabase, ev: IDBDatabaseEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var IDBDatabase: {
+ prototype: IDBDatabase;
+ new(): IDBDatabase;
+ isInstance(obj): obj is IDBDatabase;
+};
+
+/**
+ * In the following code snippet, we make a request to open a database, and include handlers for the success and error cases. For a full working example, see our To-do Notifications app (view example live.)
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory)
+ */
+interface IDBFactory {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/cmp) */
+ cmp(first: any, second: any): number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/deleteDatabase) */
+ deleteDatabase(name: string, options?: IDBOpenDBOptions): IDBOpenDBRequest;
+ deleteForPrincipal(principal: Principal, name: string, options?: IDBOpenDBOptions): IDBOpenDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBFactory/open) */
+ open(name: string, version: number): IDBOpenDBRequest;
+ open(name: string, options?: IDBOpenDBOptions): IDBOpenDBRequest;
+ openForPrincipal(principal: Principal, name: string, version: number): IDBOpenDBRequest;
+ openForPrincipal(principal: Principal, name: string, options?: IDBOpenDBOptions): IDBOpenDBRequest;
+}
+
+declare var IDBFactory: {
+ prototype: IDBFactory;
+ new(): IDBFactory;
+ isInstance(obj): obj is IDBFactory;
+};
+
+/**
+ * IDBIndex interface of the IndexedDB API provides asynchronous access to an index in a database. An index is a kind of object store for looking up records in another object store, called the referenced object store. You use this interface to retrieve data.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex)
+ */
+interface IDBIndex {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/isAutoLocale) */
+ readonly isAutoLocale: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/keyPath) */
+ readonly keyPath: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/locale) */
+ readonly locale: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/multiEntry) */
+ readonly multiEntry: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/name) */
+ name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/objectStore) */
+ readonly objectStore: IDBObjectStore;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/unique) */
+ readonly unique: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/count) */
+ count(query?: any): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/get) */
+ get(query: any): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getAll) */
+ getAll(query?: any, count?: number): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getAllKeys) */
+ getAllKeys(query?: any, count?: number): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/getKey) */
+ getKey(query: any): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/openCursor) */
+ openCursor(query?: any, direction?: IDBCursorDirection): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBIndex/openKeyCursor) */
+ openKeyCursor(query?: any, direction?: IDBCursorDirection): IDBRequest;
+}
+
+declare var IDBIndex: {
+ prototype: IDBIndex;
+ new(): IDBIndex;
+ isInstance(obj): obj is IDBIndex;
+};
+
+/**
+ * A key range can be a single value or a range with upper and lower bounds or endpoints. If the key range has both upper and lower bounds, then it is bounded; if it has no bounds, it is unbounded. A bounded key range can either be open (the endpoints are excluded) or closed (the endpoints are included). To retrieve all keys within a certain range, you can use the following code constructs:
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange)
+ */
+interface IDBKeyRange {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lower) */
+ readonly lower: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lowerOpen) */
+ readonly lowerOpen: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upper) */
+ readonly upper: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upperOpen) */
+ readonly upperOpen: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/includes) */
+ includes(key: any): boolean;
+}
+
+declare var IDBKeyRange: {
+ prototype: IDBKeyRange;
+ new(): IDBKeyRange;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/bound_static) */
+ bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/lowerBound_static) */
+ lowerBound(lower: any, open?: boolean): IDBKeyRange;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/only_static) */
+ only(value: any): IDBKeyRange;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBKeyRange/upperBound_static) */
+ upperBound(upper: any, open?: boolean): IDBKeyRange;
+ isInstance(obj): obj is IDBKeyRange;
+};
+
+/**
+ * This example shows a variety of different uses of object stores, from updating the data structure with IDBObjectStore.createIndex inside an onupgradeneeded function, to adding a new item to our object store with IDBObjectStore.add. For a full working example, see our To-do Notifications app (view example live.)
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore)
+ */
+interface IDBObjectStore {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/autoIncrement) */
+ readonly autoIncrement: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/indexNames) */
+ readonly indexNames: DOMStringList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/keyPath) */
+ readonly keyPath: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/name) */
+ name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/transaction) */
+ readonly transaction: IDBTransaction;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/add) */
+ add(value: any, key?: any): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/clear) */
+ clear(): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/count) */
+ count(key?: any): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/createIndex) */
+ createIndex(name: string, keyPath: string | string[], optionalParameters?: IDBIndexParameters): IDBIndex;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/delete) */
+ delete(key: any): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/deleteIndex) */
+ deleteIndex(indexName: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/get) */
+ get(key: any): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getAll) */
+ getAll(query?: any, count?: number): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getAllKeys) */
+ getAllKeys(query?: any, count?: number): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/getKey) */
+ getKey(key: any): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/index) */
+ index(name: string): IDBIndex;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/openCursor) */
+ openCursor(range?: any, direction?: IDBCursorDirection): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/openKeyCursor) */
+ openKeyCursor(query?: any, direction?: IDBCursorDirection): IDBRequest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBObjectStore/put) */
+ put(value: any, key?: any): IDBRequest;
+}
+
+declare var IDBObjectStore: {
+ prototype: IDBObjectStore;
+ new(): IDBObjectStore;
+ isInstance(obj): obj is IDBObjectStore;
+};
+
+interface IDBOpenDBRequestEventMap extends IDBRequestEventMap {
+ "blocked": Event;
+ "upgradeneeded": Event;
+}
+
+/**
+ * Also inherits methods from its parents IDBRequest and EventTarget.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest)
+ */
+interface IDBOpenDBRequest extends IDBRequest {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest/blocked_event) */
+ onblocked: ((this: IDBOpenDBRequest, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBOpenDBRequest/upgradeneeded_event) */
+ onupgradeneeded: ((this: IDBOpenDBRequest, ev: Event) => any) | null;
+ addEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof IDBOpenDBRequestEventMap>(type: K, listener: (this: IDBOpenDBRequest, ev: IDBOpenDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var IDBOpenDBRequest: {
+ prototype: IDBOpenDBRequest;
+ new(): IDBOpenDBRequest;
+ isInstance(obj): obj is IDBOpenDBRequest;
+};
+
+interface IDBRequestEventMap {
+ "error": ErrorEvent;
+ "success": Event;
+}
+
+/**
+ * The request object does not initially contain any information about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the IDBRequest instance.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest)
+ */
+interface IDBRequest extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/error) */
+ "error": ErrorEvent;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/error_event) */
+ onerror: OnErrorEventHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/success_event) */
+ onsuccess: ((this: IDBRequest, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/readyState) */
+ readonly readyState: IDBRequestReadyState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/result) */
+ readonly result: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/source) */
+ readonly source: IDBObjectStore | IDBIndex | IDBCursor | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBRequest/transaction) */
+ readonly transaction: IDBTransaction | null;
+ addEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest, ev: IDBRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof IDBRequestEventMap>(type: K, listener: (this: IDBRequest, ev: IDBRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var IDBRequest: {
+ prototype: IDBRequest;
+ new(): IDBRequest;
+ isInstance(obj): obj is IDBRequest;
+};
+
+interface IDBTransactionEventMap {
+ "abort": Event;
+ "complete": Event;
+ "error": ErrorEvent;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction) */
+interface IDBTransaction extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/db) */
+ readonly db: IDBDatabase;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/error) */
+ "error": ErrorEvent;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/mode) */
+ readonly mode: IDBTransactionMode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/objectStoreNames) */
+ readonly objectStoreNames: DOMStringList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/abort_event) */
+ onabort: ((this: IDBTransaction, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/complete_event) */
+ oncomplete: ((this: IDBTransaction, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/error_event) */
+ onerror: OnErrorEventHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/abort) */
+ abort(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/commit) */
+ commit(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBTransaction/objectStore) */
+ objectStore(name: string): IDBObjectStore;
+ addEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof IDBTransactionEventMap>(type: K, listener: (this: IDBTransaction, ev: IDBTransactionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var IDBTransaction: {
+ prototype: IDBTransaction;
+ new(): IDBTransaction;
+ isInstance(obj): obj is IDBTransaction;
+};
+
+/**
+ * This IndexedDB API interface indicates that the version of the database has changed, as the result of an IDBOpenDBRequest.onupgradeneeded event handler function.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent)
+ */
+interface IDBVersionChangeEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent/newVersion) */
+ readonly newVersion: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IDBVersionChangeEvent/oldVersion) */
+ readonly oldVersion: number;
+}
+
+declare var IDBVersionChangeEvent: {
+ prototype: IDBVersionChangeEvent;
+ new(type: string, eventInitDict?: IDBVersionChangeEventInit): IDBVersionChangeEvent;
+ isInstance(obj): obj is IDBVersionChangeEvent;
+};
+
+/**
+ * The IIRFilterNode interface of the Web Audio API is a AudioNode processor which implements a general infinite impulse response (IIR)  filter; this type of filter can be used to implement tone control devices and graphic equalizers as well. It lets the parameters of the filter response be specified, so that it can be tuned as needed.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IIRFilterNode)
+ */
+interface IIRFilterNode extends AudioNode, AudioNodePassThrough {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IIRFilterNode/getFrequencyResponse) */
+ getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void;
+}
+
+declare var IIRFilterNode: {
+ prototype: IIRFilterNode;
+ new(context: BaseAudioContext, options: IIRFilterOptions): IIRFilterNode;
+ isInstance(obj): obj is IIRFilterNode;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IdentityCredential)
+ */
+interface IdentityCredential extends Credential {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IdentityCredential/token) */
+ readonly token: string | null;
+}
+
+declare var IdentityCredential: {
+ prototype: IdentityCredential;
+ new(): IdentityCredential;
+ logoutRPs(logoutRequests: IdentityCredentialLogoutRPsRequest[]): Promise<void>;
+ isInstance(obj): obj is IdentityCredential;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IdleDeadline) */
+interface IdleDeadline {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IdleDeadline/didTimeout) */
+ readonly didTimeout: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IdleDeadline/timeRemaining) */
+ timeRemaining(): DOMHighResTimeStamp;
+}
+
+declare var IdleDeadline: {
+ prototype: IdleDeadline;
+ new(): IdleDeadline;
+ isInstance(obj): obj is IdleDeadline;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap) */
+interface ImageBitmap {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/height) */
+ readonly height: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/width) */
+ readonly width: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmap/close) */
+ close(): void;
+}
+
+declare var ImageBitmap: {
+ prototype: ImageBitmap;
+ new(): ImageBitmap;
+ isInstance(obj): obj is ImageBitmap;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmapRenderingContext) */
+interface ImageBitmapRenderingContext {
+ readonly canvas: CanvasSource | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmapRenderingContext/transferFromImageBitmap) */
+ transferFromImageBitmap(bitmap: ImageBitmap | null): void;
+ /**
+ * @deprecated This is a legacy alias of `transferFromImageBitmap`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageBitmapRenderingContext/transferFromImageBitmap)
+ */
+ transferImageBitmap(bitmap: ImageBitmap): void;
+}
+
+declare var ImageBitmapRenderingContext: {
+ prototype: ImageBitmapRenderingContext;
+ new(): ImageBitmapRenderingContext;
+ isInstance(obj): obj is ImageBitmapRenderingContext;
+};
+
+interface ImageCaptureEventMap {
+ "error": ErrorEvent;
+ "photo": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageCapture) */
+interface ImageCapture extends EventTarget {
+ onerror: OnErrorEventHandler;
+ onphoto: ((this: ImageCapture, ev: Event) => any) | null;
+ /**
+ * @deprecated This is a legacy alias of `track`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageCapture/track)
+ */
+ readonly videoStreamTrack: MediaStreamTrack;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageCapture/takePhoto) */
+ takePhoto(): void;
+ addEventListener<K extends keyof ImageCaptureEventMap>(type: K, listener: (this: ImageCapture, ev: ImageCaptureEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof ImageCaptureEventMap>(type: K, listener: (this: ImageCapture, ev: ImageCaptureEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var ImageCapture: {
+ prototype: ImageCapture;
+ new(track: MediaStreamTrack): ImageCapture;
+ isInstance(obj): obj is ImageCapture;
+};
+
+interface ImageCaptureError {
+ readonly code: number;
+ readonly message: string;
+ readonly FRAME_GRAB_ERROR: 1;
+ readonly SETTINGS_ERROR: 2;
+ readonly PHOTO_ERROR: 3;
+ readonly ERROR_UNKNOWN: 4;
+}
+
+interface ImageCaptureErrorEvent extends Event {
+ readonly imageCaptureError: ImageCaptureError | null;
+}
+
+declare var ImageCaptureErrorEvent: {
+ prototype: ImageCaptureErrorEvent;
+ new(type: string, imageCaptureErrorInitDict?: ImageCaptureErrorEventInit): ImageCaptureErrorEvent;
+ isInstance(obj): obj is ImageCaptureErrorEvent;
+};
+
+/**
+ * The underlying pixel data of an area of a <canvas> element. It is created using the ImageData() constructor or creator methods on the CanvasRenderingContext2D object associated with a canvas: createImageData() and getImageData(). It can also be used to set a part of the canvas by using putImageData().
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData)
+ */
+interface ImageData {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/data) */
+ readonly data: Uint8ClampedArray;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/height) */
+ readonly height: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ImageData/width) */
+ readonly width: number;
+}
+
+declare var ImageData: {
+ prototype: ImageData;
+ new(sw: number, sh: number): ImageData;
+ new(data: Uint8ClampedArray, sw: number, sh?: number): ImageData;
+ isInstance(obj): obj is ImageData;
+};
+
+interface ImageDocument extends HTMLDocument {
+ readonly imageIsOverflowing: boolean;
+ readonly imageIsResized: boolean;
+ restoreImage(): void;
+ shrinkToFit(): void;
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: ImageDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: ImageDocument, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var ImageDocument: {
+ prototype: ImageDocument;
+ new(): ImageDocument;
+ isInstance(obj): obj is ImageDocument;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent) */
+interface InputEvent extends UIEvent {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/data) */
+ readonly data: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/dataTransfer) */
+ readonly dataTransfer: DataTransfer | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/inputType) */
+ readonly inputType: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/isComposing) */
+ readonly isComposing: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/InputEvent/getTargetRanges) */
+ getTargetRanges(): StaticRange[];
+}
+
+declare var InputEvent: {
+ prototype: InputEvent;
+ new(type: string, eventInitDict?: InputEventInit): InputEvent;
+ isInstance(obj): obj is InputEvent;
+};
+
+interface InspectorFontFace {
+ readonly CSSFamilyName: string;
+ readonly CSSGeneric: string;
+ readonly URI: string;
+ readonly format: string;
+ readonly fromFontGroup: boolean;
+ readonly fromLanguagePrefs: boolean;
+ readonly fromSystemFallback: boolean;
+ readonly localName: string;
+ readonly metadata: string;
+ readonly name: string;
+ readonly ranges: Range[];
+ readonly rule: CSSFontFaceRule | null;
+ readonly srcIndex: number;
+ getFeatures(): InspectorFontFeature[];
+ getVariationAxes(): InspectorVariationAxis[];
+ getVariationInstances(): InspectorVariationInstance[];
+}
+
+declare var InspectorFontFace: {
+ prototype: InspectorFontFace;
+ new(): InspectorFontFace;
+ isInstance(obj): obj is InspectorFontFace;
+};
+
+interface InstallTriggerImpl {
+ enabled(): boolean;
+ install(installs: Record<string, string | InstallTriggerData>, callback?: InstallTriggerCallback): boolean;
+ installChrome(type: number, url: string, skin: string): boolean;
+ startSoftwareUpdate(url: string, flags?: number): boolean;
+ updateEnabled(): boolean;
+ readonly SKIN: 1;
+ readonly LOCALE: 2;
+ readonly CONTENT: 4;
+ readonly PACKAGE: 7;
+}
+
+declare var InstallTriggerImpl: {
+ prototype: InstallTriggerImpl;
+ new(): InstallTriggerImpl;
+ readonly SKIN: 1;
+ readonly LOCALE: 2;
+ readonly CONTENT: 4;
+ readonly PACKAGE: 7;
+ isInstance(obj): obj is InstallTriggerImpl;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver)
+ */
+interface IntersectionObserver {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/root) */
+ readonly root: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/rootMargin) */
+ readonly rootMargin: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/thresholds) */
+ readonly thresholds: number[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/disconnect) */
+ disconnect(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/observe) */
+ observe(target: Element): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/takeRecords) */
+ takeRecords(): IntersectionObserverEntry[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserver/unobserve) */
+ unobserve(target: Element): void;
+}
+
+declare var IntersectionObserver: {
+ prototype: IntersectionObserver;
+ new(intersectionCallback: IntersectionCallback, options?: IntersectionObserverInit): IntersectionObserver;
+ isInstance(obj): obj is IntersectionObserver;
+};
+
+/**
+ * This Intersection Observer API interface describes the intersection between the target element and its root container at a specific moment of transition.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry)
+ */
+interface IntersectionObserverEntry {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/boundingClientRect) */
+ readonly boundingClientRect: DOMRectReadOnly;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/intersectionRatio) */
+ readonly intersectionRatio: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/intersectionRect) */
+ readonly intersectionRect: DOMRectReadOnly;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/isIntersecting) */
+ readonly isIntersecting: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/rootBounds) */
+ readonly rootBounds: DOMRectReadOnly | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/target) */
+ readonly target: Element;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/IntersectionObserverEntry/time) */
+ readonly time: DOMHighResTimeStamp;
+}
+
+declare var IntersectionObserverEntry: {
+ prototype: IntersectionObserverEntry;
+ new(): IntersectionObserverEntry;
+ isInstance(obj): obj is IntersectionObserverEntry;
+};
+
+interface IntlUtils {
+ getDisplayNames(locales: string[], options?: DisplayNameOptions): DisplayNameResult;
+ isAppLocaleRTL(): boolean;
+}
+
+interface InvokeEvent extends Event {
+ readonly action: string;
+ readonly invoker: Element | null;
+}
+
+declare var InvokeEvent: {
+ prototype: InvokeEvent;
+ new(type: string, eventInitDict?: InvokeEventInit): InvokeEvent;
+ isInstance(obj): obj is InvokeEvent;
+};
+
+interface InvokerElement {
+ invokeAction: string;
+ invokeTargetElement: Element | null;
+}
+
+interface JSActor {
+ readonly name: UTF8String;
+ sendAsyncMessage(messageName: string, obj?: any, transferables?: any): void;
+ sendQuery(messageName: string, obj?: any): Promise<any>;
+}
+
+interface JSProcessActorChild extends JSActor {
+ readonly manager: nsIDOMProcessChild;
+}
+
+declare var JSProcessActorChild: {
+ prototype: JSProcessActorChild;
+ new(): JSProcessActorChild;
+ isInstance(obj): obj is JSProcessActorChild;
+};
+
+interface JSProcessActorParent extends JSActor {
+ readonly manager: nsIDOMProcessParent;
+}
+
+declare var JSProcessActorParent: {
+ prototype: JSProcessActorParent;
+ new(): JSProcessActorParent;
+ isInstance(obj): obj is JSProcessActorParent;
+};
+
+interface JSWindowActorChild extends JSActor {
+ readonly browsingContext: BrowsingContext | null;
+ readonly contentWindow: WindowProxy | null;
+ readonly docShell: nsIDocShell | null;
+ readonly document: Document | null;
+ readonly manager: WindowGlobalChild | null;
+ readonly windowContext: WindowContext | null;
+}
+
+declare var JSWindowActorChild: {
+ prototype: JSWindowActorChild;
+ new(): JSWindowActorChild;
+ isInstance(obj): obj is JSWindowActorChild;
+};
+
+interface JSWindowActorParent extends JSActor {
+ readonly browsingContext: CanonicalBrowsingContext | null;
+ readonly manager: WindowGlobalParent | null;
+ readonly windowContext: WindowContext | null;
+}
+
+declare var JSWindowActorParent: {
+ prototype: JSWindowActorParent;
+ new(): JSWindowActorParent;
+ isInstance(obj): obj is JSWindowActorParent;
+};
+
+interface KeyEvent extends KeyEventMixin {
+}
+
+declare var KeyEvent: {
+ prototype: KeyEvent;
+ new(): KeyEvent;
+ readonly DOM_VK_CANCEL: 0x03;
+ readonly DOM_VK_HELP: 0x06;
+ readonly DOM_VK_BACK_SPACE: 0x08;
+ readonly DOM_VK_TAB: 0x09;
+ readonly DOM_VK_CLEAR: 0x0C;
+ readonly DOM_VK_RETURN: 0x0D;
+ readonly DOM_VK_SHIFT: 0x10;
+ readonly DOM_VK_CONTROL: 0x11;
+ readonly DOM_VK_ALT: 0x12;
+ readonly DOM_VK_PAUSE: 0x13;
+ readonly DOM_VK_CAPS_LOCK: 0x14;
+ readonly DOM_VK_KANA: 0x15;
+ readonly DOM_VK_HANGUL: 0x15;
+ readonly DOM_VK_EISU: 0x16;
+ readonly DOM_VK_JUNJA: 0x17;
+ readonly DOM_VK_FINAL: 0x18;
+ readonly DOM_VK_HANJA: 0x19;
+ readonly DOM_VK_KANJI: 0x19;
+ readonly DOM_VK_ESCAPE: 0x1B;
+ readonly DOM_VK_CONVERT: 0x1C;
+ readonly DOM_VK_NONCONVERT: 0x1D;
+ readonly DOM_VK_ACCEPT: 0x1E;
+ readonly DOM_VK_MODECHANGE: 0x1F;
+ readonly DOM_VK_SPACE: 0x20;
+ readonly DOM_VK_PAGE_UP: 0x21;
+ readonly DOM_VK_PAGE_DOWN: 0x22;
+ readonly DOM_VK_END: 0x23;
+ readonly DOM_VK_HOME: 0x24;
+ readonly DOM_VK_LEFT: 0x25;
+ readonly DOM_VK_UP: 0x26;
+ readonly DOM_VK_RIGHT: 0x27;
+ readonly DOM_VK_DOWN: 0x28;
+ readonly DOM_VK_SELECT: 0x29;
+ readonly DOM_VK_PRINT: 0x2A;
+ readonly DOM_VK_EXECUTE: 0x2B;
+ readonly DOM_VK_PRINTSCREEN: 0x2C;
+ readonly DOM_VK_INSERT: 0x2D;
+ readonly DOM_VK_DELETE: 0x2E;
+ readonly DOM_VK_0: 0x30;
+ readonly DOM_VK_1: 0x31;
+ readonly DOM_VK_2: 0x32;
+ readonly DOM_VK_3: 0x33;
+ readonly DOM_VK_4: 0x34;
+ readonly DOM_VK_5: 0x35;
+ readonly DOM_VK_6: 0x36;
+ readonly DOM_VK_7: 0x37;
+ readonly DOM_VK_8: 0x38;
+ readonly DOM_VK_9: 0x39;
+ readonly DOM_VK_COLON: 0x3A;
+ readonly DOM_VK_SEMICOLON: 0x3B;
+ readonly DOM_VK_LESS_THAN: 0x3C;
+ readonly DOM_VK_EQUALS: 0x3D;
+ readonly DOM_VK_GREATER_THAN: 0x3E;
+ readonly DOM_VK_QUESTION_MARK: 0x3F;
+ readonly DOM_VK_AT: 0x40;
+ readonly DOM_VK_A: 0x41;
+ readonly DOM_VK_B: 0x42;
+ readonly DOM_VK_C: 0x43;
+ readonly DOM_VK_D: 0x44;
+ readonly DOM_VK_E: 0x45;
+ readonly DOM_VK_F: 0x46;
+ readonly DOM_VK_G: 0x47;
+ readonly DOM_VK_H: 0x48;
+ readonly DOM_VK_I: 0x49;
+ readonly DOM_VK_J: 0x4A;
+ readonly DOM_VK_K: 0x4B;
+ readonly DOM_VK_L: 0x4C;
+ readonly DOM_VK_M: 0x4D;
+ readonly DOM_VK_N: 0x4E;
+ readonly DOM_VK_O: 0x4F;
+ readonly DOM_VK_P: 0x50;
+ readonly DOM_VK_Q: 0x51;
+ readonly DOM_VK_R: 0x52;
+ readonly DOM_VK_S: 0x53;
+ readonly DOM_VK_T: 0x54;
+ readonly DOM_VK_U: 0x55;
+ readonly DOM_VK_V: 0x56;
+ readonly DOM_VK_W: 0x57;
+ readonly DOM_VK_X: 0x58;
+ readonly DOM_VK_Y: 0x59;
+ readonly DOM_VK_Z: 0x5A;
+ readonly DOM_VK_WIN: 0x5B;
+ readonly DOM_VK_CONTEXT_MENU: 0x5D;
+ readonly DOM_VK_SLEEP: 0x5F;
+ readonly DOM_VK_NUMPAD0: 0x60;
+ readonly DOM_VK_NUMPAD1: 0x61;
+ readonly DOM_VK_NUMPAD2: 0x62;
+ readonly DOM_VK_NUMPAD3: 0x63;
+ readonly DOM_VK_NUMPAD4: 0x64;
+ readonly DOM_VK_NUMPAD5: 0x65;
+ readonly DOM_VK_NUMPAD6: 0x66;
+ readonly DOM_VK_NUMPAD7: 0x67;
+ readonly DOM_VK_NUMPAD8: 0x68;
+ readonly DOM_VK_NUMPAD9: 0x69;
+ readonly DOM_VK_MULTIPLY: 0x6A;
+ readonly DOM_VK_ADD: 0x6B;
+ readonly DOM_VK_SEPARATOR: 0x6C;
+ readonly DOM_VK_SUBTRACT: 0x6D;
+ readonly DOM_VK_DECIMAL: 0x6E;
+ readonly DOM_VK_DIVIDE: 0x6F;
+ readonly DOM_VK_F1: 0x70;
+ readonly DOM_VK_F2: 0x71;
+ readonly DOM_VK_F3: 0x72;
+ readonly DOM_VK_F4: 0x73;
+ readonly DOM_VK_F5: 0x74;
+ readonly DOM_VK_F6: 0x75;
+ readonly DOM_VK_F7: 0x76;
+ readonly DOM_VK_F8: 0x77;
+ readonly DOM_VK_F9: 0x78;
+ readonly DOM_VK_F10: 0x79;
+ readonly DOM_VK_F11: 0x7A;
+ readonly DOM_VK_F12: 0x7B;
+ readonly DOM_VK_F13: 0x7C;
+ readonly DOM_VK_F14: 0x7D;
+ readonly DOM_VK_F15: 0x7E;
+ readonly DOM_VK_F16: 0x7F;
+ readonly DOM_VK_F17: 0x80;
+ readonly DOM_VK_F18: 0x81;
+ readonly DOM_VK_F19: 0x82;
+ readonly DOM_VK_F20: 0x83;
+ readonly DOM_VK_F21: 0x84;
+ readonly DOM_VK_F22: 0x85;
+ readonly DOM_VK_F23: 0x86;
+ readonly DOM_VK_F24: 0x87;
+ readonly DOM_VK_NUM_LOCK: 0x90;
+ readonly DOM_VK_SCROLL_LOCK: 0x91;
+ readonly DOM_VK_WIN_OEM_FJ_JISHO: 0x92;
+ readonly DOM_VK_WIN_OEM_FJ_MASSHOU: 0x93;
+ readonly DOM_VK_WIN_OEM_FJ_TOUROKU: 0x94;
+ readonly DOM_VK_WIN_OEM_FJ_LOYA: 0x95;
+ readonly DOM_VK_WIN_OEM_FJ_ROYA: 0x96;
+ readonly DOM_VK_CIRCUMFLEX: 0xA0;
+ readonly DOM_VK_EXCLAMATION: 0xA1;
+ readonly DOM_VK_DOUBLE_QUOTE: 0xA2;
+ readonly DOM_VK_HASH: 0xA3;
+ readonly DOM_VK_DOLLAR: 0xA4;
+ readonly DOM_VK_PERCENT: 0xA5;
+ readonly DOM_VK_AMPERSAND: 0xA6;
+ readonly DOM_VK_UNDERSCORE: 0xA7;
+ readonly DOM_VK_OPEN_PAREN: 0xA8;
+ readonly DOM_VK_CLOSE_PAREN: 0xA9;
+ readonly DOM_VK_ASTERISK: 0xAA;
+ readonly DOM_VK_PLUS: 0xAB;
+ readonly DOM_VK_PIPE: 0xAC;
+ readonly DOM_VK_HYPHEN_MINUS: 0xAD;
+ readonly DOM_VK_OPEN_CURLY_BRACKET: 0xAE;
+ readonly DOM_VK_CLOSE_CURLY_BRACKET: 0xAF;
+ readonly DOM_VK_TILDE: 0xB0;
+ readonly DOM_VK_VOLUME_MUTE: 0xB5;
+ readonly DOM_VK_VOLUME_DOWN: 0xB6;
+ readonly DOM_VK_VOLUME_UP: 0xB7;
+ readonly DOM_VK_COMMA: 0xBC;
+ readonly DOM_VK_PERIOD: 0xBE;
+ readonly DOM_VK_SLASH: 0xBF;
+ readonly DOM_VK_BACK_QUOTE: 0xC0;
+ readonly DOM_VK_OPEN_BRACKET: 0xDB;
+ readonly DOM_VK_BACK_SLASH: 0xDC;
+ readonly DOM_VK_CLOSE_BRACKET: 0xDD;
+ readonly DOM_VK_QUOTE: 0xDE;
+ readonly DOM_VK_META: 0xE0;
+ readonly DOM_VK_ALTGR: 0xE1;
+ readonly DOM_VK_WIN_ICO_HELP: 0xE3;
+ readonly DOM_VK_WIN_ICO_00: 0xE4;
+ readonly DOM_VK_PROCESSKEY: 0xE5;
+ readonly DOM_VK_WIN_ICO_CLEAR: 0xE6;
+ readonly DOM_VK_WIN_OEM_RESET: 0xE9;
+ readonly DOM_VK_WIN_OEM_JUMP: 0xEA;
+ readonly DOM_VK_WIN_OEM_PA1: 0xEB;
+ readonly DOM_VK_WIN_OEM_PA2: 0xEC;
+ readonly DOM_VK_WIN_OEM_PA3: 0xED;
+ readonly DOM_VK_WIN_OEM_WSCTRL: 0xEE;
+ readonly DOM_VK_WIN_OEM_CUSEL: 0xEF;
+ readonly DOM_VK_WIN_OEM_ATTN: 0xF0;
+ readonly DOM_VK_WIN_OEM_FINISH: 0xF1;
+ readonly DOM_VK_WIN_OEM_COPY: 0xF2;
+ readonly DOM_VK_WIN_OEM_AUTO: 0xF3;
+ readonly DOM_VK_WIN_OEM_ENLW: 0xF4;
+ readonly DOM_VK_WIN_OEM_BACKTAB: 0xF5;
+ readonly DOM_VK_ATTN: 0xF6;
+ readonly DOM_VK_CRSEL: 0xF7;
+ readonly DOM_VK_EXSEL: 0xF8;
+ readonly DOM_VK_EREOF: 0xF9;
+ readonly DOM_VK_PLAY: 0xFA;
+ readonly DOM_VK_ZOOM: 0xFB;
+ readonly DOM_VK_PA1: 0xFD;
+ readonly DOM_VK_WIN_OEM_CLEAR: 0xFE;
+ isInstance(obj): obj is KeyEvent;
+};
+
+interface KeyEventMixin {
+ initKeyEvent(type: string, canBubble?: boolean, cancelable?: boolean, view?: Window | null, ctrlKey?: boolean, altKey?: boolean, shiftKey?: boolean, metaKey?: boolean, keyCode?: number, charCode?: number): void;
+ readonly DOM_VK_CANCEL: 0x03;
+ readonly DOM_VK_HELP: 0x06;
+ readonly DOM_VK_BACK_SPACE: 0x08;
+ readonly DOM_VK_TAB: 0x09;
+ readonly DOM_VK_CLEAR: 0x0C;
+ readonly DOM_VK_RETURN: 0x0D;
+ readonly DOM_VK_SHIFT: 0x10;
+ readonly DOM_VK_CONTROL: 0x11;
+ readonly DOM_VK_ALT: 0x12;
+ readonly DOM_VK_PAUSE: 0x13;
+ readonly DOM_VK_CAPS_LOCK: 0x14;
+ readonly DOM_VK_KANA: 0x15;
+ readonly DOM_VK_HANGUL: 0x15;
+ readonly DOM_VK_EISU: 0x16;
+ readonly DOM_VK_JUNJA: 0x17;
+ readonly DOM_VK_FINAL: 0x18;
+ readonly DOM_VK_HANJA: 0x19;
+ readonly DOM_VK_KANJI: 0x19;
+ readonly DOM_VK_ESCAPE: 0x1B;
+ readonly DOM_VK_CONVERT: 0x1C;
+ readonly DOM_VK_NONCONVERT: 0x1D;
+ readonly DOM_VK_ACCEPT: 0x1E;
+ readonly DOM_VK_MODECHANGE: 0x1F;
+ readonly DOM_VK_SPACE: 0x20;
+ readonly DOM_VK_PAGE_UP: 0x21;
+ readonly DOM_VK_PAGE_DOWN: 0x22;
+ readonly DOM_VK_END: 0x23;
+ readonly DOM_VK_HOME: 0x24;
+ readonly DOM_VK_LEFT: 0x25;
+ readonly DOM_VK_UP: 0x26;
+ readonly DOM_VK_RIGHT: 0x27;
+ readonly DOM_VK_DOWN: 0x28;
+ readonly DOM_VK_SELECT: 0x29;
+ readonly DOM_VK_PRINT: 0x2A;
+ readonly DOM_VK_EXECUTE: 0x2B;
+ readonly DOM_VK_PRINTSCREEN: 0x2C;
+ readonly DOM_VK_INSERT: 0x2D;
+ readonly DOM_VK_DELETE: 0x2E;
+ readonly DOM_VK_0: 0x30;
+ readonly DOM_VK_1: 0x31;
+ readonly DOM_VK_2: 0x32;
+ readonly DOM_VK_3: 0x33;
+ readonly DOM_VK_4: 0x34;
+ readonly DOM_VK_5: 0x35;
+ readonly DOM_VK_6: 0x36;
+ readonly DOM_VK_7: 0x37;
+ readonly DOM_VK_8: 0x38;
+ readonly DOM_VK_9: 0x39;
+ readonly DOM_VK_COLON: 0x3A;
+ readonly DOM_VK_SEMICOLON: 0x3B;
+ readonly DOM_VK_LESS_THAN: 0x3C;
+ readonly DOM_VK_EQUALS: 0x3D;
+ readonly DOM_VK_GREATER_THAN: 0x3E;
+ readonly DOM_VK_QUESTION_MARK: 0x3F;
+ readonly DOM_VK_AT: 0x40;
+ readonly DOM_VK_A: 0x41;
+ readonly DOM_VK_B: 0x42;
+ readonly DOM_VK_C: 0x43;
+ readonly DOM_VK_D: 0x44;
+ readonly DOM_VK_E: 0x45;
+ readonly DOM_VK_F: 0x46;
+ readonly DOM_VK_G: 0x47;
+ readonly DOM_VK_H: 0x48;
+ readonly DOM_VK_I: 0x49;
+ readonly DOM_VK_J: 0x4A;
+ readonly DOM_VK_K: 0x4B;
+ readonly DOM_VK_L: 0x4C;
+ readonly DOM_VK_M: 0x4D;
+ readonly DOM_VK_N: 0x4E;
+ readonly DOM_VK_O: 0x4F;
+ readonly DOM_VK_P: 0x50;
+ readonly DOM_VK_Q: 0x51;
+ readonly DOM_VK_R: 0x52;
+ readonly DOM_VK_S: 0x53;
+ readonly DOM_VK_T: 0x54;
+ readonly DOM_VK_U: 0x55;
+ readonly DOM_VK_V: 0x56;
+ readonly DOM_VK_W: 0x57;
+ readonly DOM_VK_X: 0x58;
+ readonly DOM_VK_Y: 0x59;
+ readonly DOM_VK_Z: 0x5A;
+ readonly DOM_VK_WIN: 0x5B;
+ readonly DOM_VK_CONTEXT_MENU: 0x5D;
+ readonly DOM_VK_SLEEP: 0x5F;
+ readonly DOM_VK_NUMPAD0: 0x60;
+ readonly DOM_VK_NUMPAD1: 0x61;
+ readonly DOM_VK_NUMPAD2: 0x62;
+ readonly DOM_VK_NUMPAD3: 0x63;
+ readonly DOM_VK_NUMPAD4: 0x64;
+ readonly DOM_VK_NUMPAD5: 0x65;
+ readonly DOM_VK_NUMPAD6: 0x66;
+ readonly DOM_VK_NUMPAD7: 0x67;
+ readonly DOM_VK_NUMPAD8: 0x68;
+ readonly DOM_VK_NUMPAD9: 0x69;
+ readonly DOM_VK_MULTIPLY: 0x6A;
+ readonly DOM_VK_ADD: 0x6B;
+ readonly DOM_VK_SEPARATOR: 0x6C;
+ readonly DOM_VK_SUBTRACT: 0x6D;
+ readonly DOM_VK_DECIMAL: 0x6E;
+ readonly DOM_VK_DIVIDE: 0x6F;
+ readonly DOM_VK_F1: 0x70;
+ readonly DOM_VK_F2: 0x71;
+ readonly DOM_VK_F3: 0x72;
+ readonly DOM_VK_F4: 0x73;
+ readonly DOM_VK_F5: 0x74;
+ readonly DOM_VK_F6: 0x75;
+ readonly DOM_VK_F7: 0x76;
+ readonly DOM_VK_F8: 0x77;
+ readonly DOM_VK_F9: 0x78;
+ readonly DOM_VK_F10: 0x79;
+ readonly DOM_VK_F11: 0x7A;
+ readonly DOM_VK_F12: 0x7B;
+ readonly DOM_VK_F13: 0x7C;
+ readonly DOM_VK_F14: 0x7D;
+ readonly DOM_VK_F15: 0x7E;
+ readonly DOM_VK_F16: 0x7F;
+ readonly DOM_VK_F17: 0x80;
+ readonly DOM_VK_F18: 0x81;
+ readonly DOM_VK_F19: 0x82;
+ readonly DOM_VK_F20: 0x83;
+ readonly DOM_VK_F21: 0x84;
+ readonly DOM_VK_F22: 0x85;
+ readonly DOM_VK_F23: 0x86;
+ readonly DOM_VK_F24: 0x87;
+ readonly DOM_VK_NUM_LOCK: 0x90;
+ readonly DOM_VK_SCROLL_LOCK: 0x91;
+ readonly DOM_VK_WIN_OEM_FJ_JISHO: 0x92;
+ readonly DOM_VK_WIN_OEM_FJ_MASSHOU: 0x93;
+ readonly DOM_VK_WIN_OEM_FJ_TOUROKU: 0x94;
+ readonly DOM_VK_WIN_OEM_FJ_LOYA: 0x95;
+ readonly DOM_VK_WIN_OEM_FJ_ROYA: 0x96;
+ readonly DOM_VK_CIRCUMFLEX: 0xA0;
+ readonly DOM_VK_EXCLAMATION: 0xA1;
+ readonly DOM_VK_DOUBLE_QUOTE: 0xA2;
+ readonly DOM_VK_HASH: 0xA3;
+ readonly DOM_VK_DOLLAR: 0xA4;
+ readonly DOM_VK_PERCENT: 0xA5;
+ readonly DOM_VK_AMPERSAND: 0xA6;
+ readonly DOM_VK_UNDERSCORE: 0xA7;
+ readonly DOM_VK_OPEN_PAREN: 0xA8;
+ readonly DOM_VK_CLOSE_PAREN: 0xA9;
+ readonly DOM_VK_ASTERISK: 0xAA;
+ readonly DOM_VK_PLUS: 0xAB;
+ readonly DOM_VK_PIPE: 0xAC;
+ readonly DOM_VK_HYPHEN_MINUS: 0xAD;
+ readonly DOM_VK_OPEN_CURLY_BRACKET: 0xAE;
+ readonly DOM_VK_CLOSE_CURLY_BRACKET: 0xAF;
+ readonly DOM_VK_TILDE: 0xB0;
+ readonly DOM_VK_VOLUME_MUTE: 0xB5;
+ readonly DOM_VK_VOLUME_DOWN: 0xB6;
+ readonly DOM_VK_VOLUME_UP: 0xB7;
+ readonly DOM_VK_COMMA: 0xBC;
+ readonly DOM_VK_PERIOD: 0xBE;
+ readonly DOM_VK_SLASH: 0xBF;
+ readonly DOM_VK_BACK_QUOTE: 0xC0;
+ readonly DOM_VK_OPEN_BRACKET: 0xDB;
+ readonly DOM_VK_BACK_SLASH: 0xDC;
+ readonly DOM_VK_CLOSE_BRACKET: 0xDD;
+ readonly DOM_VK_QUOTE: 0xDE;
+ readonly DOM_VK_META: 0xE0;
+ readonly DOM_VK_ALTGR: 0xE1;
+ readonly DOM_VK_WIN_ICO_HELP: 0xE3;
+ readonly DOM_VK_WIN_ICO_00: 0xE4;
+ readonly DOM_VK_PROCESSKEY: 0xE5;
+ readonly DOM_VK_WIN_ICO_CLEAR: 0xE6;
+ readonly DOM_VK_WIN_OEM_RESET: 0xE9;
+ readonly DOM_VK_WIN_OEM_JUMP: 0xEA;
+ readonly DOM_VK_WIN_OEM_PA1: 0xEB;
+ readonly DOM_VK_WIN_OEM_PA2: 0xEC;
+ readonly DOM_VK_WIN_OEM_PA3: 0xED;
+ readonly DOM_VK_WIN_OEM_WSCTRL: 0xEE;
+ readonly DOM_VK_WIN_OEM_CUSEL: 0xEF;
+ readonly DOM_VK_WIN_OEM_ATTN: 0xF0;
+ readonly DOM_VK_WIN_OEM_FINISH: 0xF1;
+ readonly DOM_VK_WIN_OEM_COPY: 0xF2;
+ readonly DOM_VK_WIN_OEM_AUTO: 0xF3;
+ readonly DOM_VK_WIN_OEM_ENLW: 0xF4;
+ readonly DOM_VK_WIN_OEM_BACKTAB: 0xF5;
+ readonly DOM_VK_ATTN: 0xF6;
+ readonly DOM_VK_CRSEL: 0xF7;
+ readonly DOM_VK_EXSEL: 0xF8;
+ readonly DOM_VK_EREOF: 0xF9;
+ readonly DOM_VK_PLAY: 0xFA;
+ readonly DOM_VK_ZOOM: 0xFB;
+ readonly DOM_VK_PA1: 0xFD;
+ readonly DOM_VK_WIN_OEM_CLEAR: 0xFE;
+}
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent)
+ */
+interface KeyboardEvent extends UIEvent, KeyEventMixin {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/altKey) */
+ readonly altKey: boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/charCode)
+ */
+ readonly charCode: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/code) */
+ readonly code: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/ctrlKey) */
+ readonly ctrlKey: boolean;
+ readonly initDict: KeyboardEventInit;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/isComposing) */
+ readonly isComposing: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/key) */
+ readonly key: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/keyCode)
+ */
+ readonly keyCode: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/location) */
+ readonly location: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/metaKey) */
+ readonly metaKey: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/repeat) */
+ readonly repeat: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/shiftKey) */
+ readonly shiftKey: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/getModifierState) */
+ getModifierState(key: string): boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyboardEvent/initKeyboardEvent)
+ */
+ initKeyboardEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, viewArg?: Window | null, keyArg?: string, locationArg?: number, ctrlKey?: boolean, altKey?: boolean, shiftKey?: boolean, metaKey?: boolean): void;
+ readonly DOM_KEY_LOCATION_STANDARD: 0x00;
+ readonly DOM_KEY_LOCATION_LEFT: 0x01;
+ readonly DOM_KEY_LOCATION_RIGHT: 0x02;
+ readonly DOM_KEY_LOCATION_NUMPAD: 0x03;
+}
+
+declare var KeyboardEvent: {
+ prototype: KeyboardEvent;
+ new(typeArg: string, keyboardEventInitDict?: KeyboardEventInit): KeyboardEvent;
+ readonly DOM_KEY_LOCATION_STANDARD: 0x00;
+ readonly DOM_KEY_LOCATION_LEFT: 0x01;
+ readonly DOM_KEY_LOCATION_RIGHT: 0x02;
+ readonly DOM_KEY_LOCATION_NUMPAD: 0x03;
+ readonly DOM_VK_CANCEL: 0x03;
+ readonly DOM_VK_HELP: 0x06;
+ readonly DOM_VK_BACK_SPACE: 0x08;
+ readonly DOM_VK_TAB: 0x09;
+ readonly DOM_VK_CLEAR: 0x0C;
+ readonly DOM_VK_RETURN: 0x0D;
+ readonly DOM_VK_SHIFT: 0x10;
+ readonly DOM_VK_CONTROL: 0x11;
+ readonly DOM_VK_ALT: 0x12;
+ readonly DOM_VK_PAUSE: 0x13;
+ readonly DOM_VK_CAPS_LOCK: 0x14;
+ readonly DOM_VK_KANA: 0x15;
+ readonly DOM_VK_HANGUL: 0x15;
+ readonly DOM_VK_EISU: 0x16;
+ readonly DOM_VK_JUNJA: 0x17;
+ readonly DOM_VK_FINAL: 0x18;
+ readonly DOM_VK_HANJA: 0x19;
+ readonly DOM_VK_KANJI: 0x19;
+ readonly DOM_VK_ESCAPE: 0x1B;
+ readonly DOM_VK_CONVERT: 0x1C;
+ readonly DOM_VK_NONCONVERT: 0x1D;
+ readonly DOM_VK_ACCEPT: 0x1E;
+ readonly DOM_VK_MODECHANGE: 0x1F;
+ readonly DOM_VK_SPACE: 0x20;
+ readonly DOM_VK_PAGE_UP: 0x21;
+ readonly DOM_VK_PAGE_DOWN: 0x22;
+ readonly DOM_VK_END: 0x23;
+ readonly DOM_VK_HOME: 0x24;
+ readonly DOM_VK_LEFT: 0x25;
+ readonly DOM_VK_UP: 0x26;
+ readonly DOM_VK_RIGHT: 0x27;
+ readonly DOM_VK_DOWN: 0x28;
+ readonly DOM_VK_SELECT: 0x29;
+ readonly DOM_VK_PRINT: 0x2A;
+ readonly DOM_VK_EXECUTE: 0x2B;
+ readonly DOM_VK_PRINTSCREEN: 0x2C;
+ readonly DOM_VK_INSERT: 0x2D;
+ readonly DOM_VK_DELETE: 0x2E;
+ readonly DOM_VK_0: 0x30;
+ readonly DOM_VK_1: 0x31;
+ readonly DOM_VK_2: 0x32;
+ readonly DOM_VK_3: 0x33;
+ readonly DOM_VK_4: 0x34;
+ readonly DOM_VK_5: 0x35;
+ readonly DOM_VK_6: 0x36;
+ readonly DOM_VK_7: 0x37;
+ readonly DOM_VK_8: 0x38;
+ readonly DOM_VK_9: 0x39;
+ readonly DOM_VK_COLON: 0x3A;
+ readonly DOM_VK_SEMICOLON: 0x3B;
+ readonly DOM_VK_LESS_THAN: 0x3C;
+ readonly DOM_VK_EQUALS: 0x3D;
+ readonly DOM_VK_GREATER_THAN: 0x3E;
+ readonly DOM_VK_QUESTION_MARK: 0x3F;
+ readonly DOM_VK_AT: 0x40;
+ readonly DOM_VK_A: 0x41;
+ readonly DOM_VK_B: 0x42;
+ readonly DOM_VK_C: 0x43;
+ readonly DOM_VK_D: 0x44;
+ readonly DOM_VK_E: 0x45;
+ readonly DOM_VK_F: 0x46;
+ readonly DOM_VK_G: 0x47;
+ readonly DOM_VK_H: 0x48;
+ readonly DOM_VK_I: 0x49;
+ readonly DOM_VK_J: 0x4A;
+ readonly DOM_VK_K: 0x4B;
+ readonly DOM_VK_L: 0x4C;
+ readonly DOM_VK_M: 0x4D;
+ readonly DOM_VK_N: 0x4E;
+ readonly DOM_VK_O: 0x4F;
+ readonly DOM_VK_P: 0x50;
+ readonly DOM_VK_Q: 0x51;
+ readonly DOM_VK_R: 0x52;
+ readonly DOM_VK_S: 0x53;
+ readonly DOM_VK_T: 0x54;
+ readonly DOM_VK_U: 0x55;
+ readonly DOM_VK_V: 0x56;
+ readonly DOM_VK_W: 0x57;
+ readonly DOM_VK_X: 0x58;
+ readonly DOM_VK_Y: 0x59;
+ readonly DOM_VK_Z: 0x5A;
+ readonly DOM_VK_WIN: 0x5B;
+ readonly DOM_VK_CONTEXT_MENU: 0x5D;
+ readonly DOM_VK_SLEEP: 0x5F;
+ readonly DOM_VK_NUMPAD0: 0x60;
+ readonly DOM_VK_NUMPAD1: 0x61;
+ readonly DOM_VK_NUMPAD2: 0x62;
+ readonly DOM_VK_NUMPAD3: 0x63;
+ readonly DOM_VK_NUMPAD4: 0x64;
+ readonly DOM_VK_NUMPAD5: 0x65;
+ readonly DOM_VK_NUMPAD6: 0x66;
+ readonly DOM_VK_NUMPAD7: 0x67;
+ readonly DOM_VK_NUMPAD8: 0x68;
+ readonly DOM_VK_NUMPAD9: 0x69;
+ readonly DOM_VK_MULTIPLY: 0x6A;
+ readonly DOM_VK_ADD: 0x6B;
+ readonly DOM_VK_SEPARATOR: 0x6C;
+ readonly DOM_VK_SUBTRACT: 0x6D;
+ readonly DOM_VK_DECIMAL: 0x6E;
+ readonly DOM_VK_DIVIDE: 0x6F;
+ readonly DOM_VK_F1: 0x70;
+ readonly DOM_VK_F2: 0x71;
+ readonly DOM_VK_F3: 0x72;
+ readonly DOM_VK_F4: 0x73;
+ readonly DOM_VK_F5: 0x74;
+ readonly DOM_VK_F6: 0x75;
+ readonly DOM_VK_F7: 0x76;
+ readonly DOM_VK_F8: 0x77;
+ readonly DOM_VK_F9: 0x78;
+ readonly DOM_VK_F10: 0x79;
+ readonly DOM_VK_F11: 0x7A;
+ readonly DOM_VK_F12: 0x7B;
+ readonly DOM_VK_F13: 0x7C;
+ readonly DOM_VK_F14: 0x7D;
+ readonly DOM_VK_F15: 0x7E;
+ readonly DOM_VK_F16: 0x7F;
+ readonly DOM_VK_F17: 0x80;
+ readonly DOM_VK_F18: 0x81;
+ readonly DOM_VK_F19: 0x82;
+ readonly DOM_VK_F20: 0x83;
+ readonly DOM_VK_F21: 0x84;
+ readonly DOM_VK_F22: 0x85;
+ readonly DOM_VK_F23: 0x86;
+ readonly DOM_VK_F24: 0x87;
+ readonly DOM_VK_NUM_LOCK: 0x90;
+ readonly DOM_VK_SCROLL_LOCK: 0x91;
+ readonly DOM_VK_WIN_OEM_FJ_JISHO: 0x92;
+ readonly DOM_VK_WIN_OEM_FJ_MASSHOU: 0x93;
+ readonly DOM_VK_WIN_OEM_FJ_TOUROKU: 0x94;
+ readonly DOM_VK_WIN_OEM_FJ_LOYA: 0x95;
+ readonly DOM_VK_WIN_OEM_FJ_ROYA: 0x96;
+ readonly DOM_VK_CIRCUMFLEX: 0xA0;
+ readonly DOM_VK_EXCLAMATION: 0xA1;
+ readonly DOM_VK_DOUBLE_QUOTE: 0xA2;
+ readonly DOM_VK_HASH: 0xA3;
+ readonly DOM_VK_DOLLAR: 0xA4;
+ readonly DOM_VK_PERCENT: 0xA5;
+ readonly DOM_VK_AMPERSAND: 0xA6;
+ readonly DOM_VK_UNDERSCORE: 0xA7;
+ readonly DOM_VK_OPEN_PAREN: 0xA8;
+ readonly DOM_VK_CLOSE_PAREN: 0xA9;
+ readonly DOM_VK_ASTERISK: 0xAA;
+ readonly DOM_VK_PLUS: 0xAB;
+ readonly DOM_VK_PIPE: 0xAC;
+ readonly DOM_VK_HYPHEN_MINUS: 0xAD;
+ readonly DOM_VK_OPEN_CURLY_BRACKET: 0xAE;
+ readonly DOM_VK_CLOSE_CURLY_BRACKET: 0xAF;
+ readonly DOM_VK_TILDE: 0xB0;
+ readonly DOM_VK_VOLUME_MUTE: 0xB5;
+ readonly DOM_VK_VOLUME_DOWN: 0xB6;
+ readonly DOM_VK_VOLUME_UP: 0xB7;
+ readonly DOM_VK_COMMA: 0xBC;
+ readonly DOM_VK_PERIOD: 0xBE;
+ readonly DOM_VK_SLASH: 0xBF;
+ readonly DOM_VK_BACK_QUOTE: 0xC0;
+ readonly DOM_VK_OPEN_BRACKET: 0xDB;
+ readonly DOM_VK_BACK_SLASH: 0xDC;
+ readonly DOM_VK_CLOSE_BRACKET: 0xDD;
+ readonly DOM_VK_QUOTE: 0xDE;
+ readonly DOM_VK_META: 0xE0;
+ readonly DOM_VK_ALTGR: 0xE1;
+ readonly DOM_VK_WIN_ICO_HELP: 0xE3;
+ readonly DOM_VK_WIN_ICO_00: 0xE4;
+ readonly DOM_VK_PROCESSKEY: 0xE5;
+ readonly DOM_VK_WIN_ICO_CLEAR: 0xE6;
+ readonly DOM_VK_WIN_OEM_RESET: 0xE9;
+ readonly DOM_VK_WIN_OEM_JUMP: 0xEA;
+ readonly DOM_VK_WIN_OEM_PA1: 0xEB;
+ readonly DOM_VK_WIN_OEM_PA2: 0xEC;
+ readonly DOM_VK_WIN_OEM_PA3: 0xED;
+ readonly DOM_VK_WIN_OEM_WSCTRL: 0xEE;
+ readonly DOM_VK_WIN_OEM_CUSEL: 0xEF;
+ readonly DOM_VK_WIN_OEM_ATTN: 0xF0;
+ readonly DOM_VK_WIN_OEM_FINISH: 0xF1;
+ readonly DOM_VK_WIN_OEM_COPY: 0xF2;
+ readonly DOM_VK_WIN_OEM_AUTO: 0xF3;
+ readonly DOM_VK_WIN_OEM_ENLW: 0xF4;
+ readonly DOM_VK_WIN_OEM_BACKTAB: 0xF5;
+ readonly DOM_VK_ATTN: 0xF6;
+ readonly DOM_VK_CRSEL: 0xF7;
+ readonly DOM_VK_EXSEL: 0xF8;
+ readonly DOM_VK_EREOF: 0xF9;
+ readonly DOM_VK_PLAY: 0xFA;
+ readonly DOM_VK_ZOOM: 0xFB;
+ readonly DOM_VK_PA1: 0xFD;
+ readonly DOM_VK_WIN_OEM_CLEAR: 0xFE;
+ isInstance(obj): obj is KeyboardEvent;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect) */
+interface KeyframeEffect extends AnimationEffect {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/composite) */
+ composite: CompositeOperation;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/iterationComposite) */
+ iterationComposite: IterationCompositeOperation;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/pseudoElement) */
+ pseudoElement: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/target) */
+ target: Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/getKeyframes) */
+ getKeyframes(): any[];
+ getProperties(): AnimationPropertyDetails[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/KeyframeEffect/setKeyframes) */
+ setKeyframes(keyframes: any): void;
+}
+
+declare var KeyframeEffect: {
+ prototype: KeyframeEffect;
+ new(target: Element | null, keyframes: any, options?: number | KeyframeEffectOptions): KeyframeEffect;
+ new(source: KeyframeEffect): KeyframeEffect;
+ isInstance(obj): obj is KeyframeEffect;
+};
+
+interface L10nFileSource {
+ readonly index: UTF8String[] | null;
+ readonly locales: UTF8String[];
+ readonly metaSource: UTF8String;
+ readonly name: UTF8String;
+ readonly prePath: UTF8String;
+ fetchFile(locale: UTF8String, path: UTF8String): Promise<FluentResource | null>;
+ fetchFileSync(locale: UTF8String, path: UTF8String): FluentResource | null;
+ hasFile(locale: UTF8String, path: UTF8String): L10nFileSourceHasFileStatus;
+}
+
+declare var L10nFileSource: {
+ prototype: L10nFileSource;
+ new(name: UTF8String, metaSource: UTF8String, locales: UTF8String[], prePath: UTF8String, options?: FileSourceOptions, index?: UTF8String[]): L10nFileSource;
+ createMock(name: UTF8String, metasource: UTF8String, locales: UTF8String[], prePath: UTF8String, fs: L10nFileSourceMockFile[]): L10nFileSource;
+ isInstance(obj): obj is L10nFileSource;
+};
+
+interface L10nRegistry {
+ clearSources(): void;
+ generateBundles(aLocales: UTF8String[], aResourceIds: L10nResourceId[]): FluentBundleAsyncIterator;
+ generateBundlesSync(aLocales: UTF8String[], aResourceIds: L10nResourceId[]): FluentBundleIterator;
+ getAvailableLocales(): UTF8String[];
+ getSource(aName: UTF8String): L10nFileSource | null;
+ getSourceNames(): UTF8String[];
+ hasSource(aName: UTF8String): boolean;
+ registerSources(aSources: L10nFileSource[]): void;
+ removeSources(aSources: UTF8String[]): void;
+ updateSources(aSources: L10nFileSource[]): void;
+}
+
+declare var L10nRegistry: {
+ prototype: L10nRegistry;
+ new(aOptions?: L10nRegistryOptions): L10nRegistry;
+ getInstance(): L10nRegistry;
+ isInstance(obj): obj is L10nRegistry;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint) */
+interface LargestContentfulPaint extends PerformanceEntry {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/element) */
+ readonly element: Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/id) */
+ readonly id: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/loadTime) */
+ readonly loadTime: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/renderTime) */
+ readonly renderTime: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/size) */
+ readonly size: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/url) */
+ readonly url: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LargestContentfulPaint/toJSON) */
+ toJSON(): any;
+}
+
+declare var LargestContentfulPaint: {
+ prototype: LargestContentfulPaint;
+ new(): LargestContentfulPaint;
+ isInstance(obj): obj is LargestContentfulPaint;
+};
+
+interface LegacyMozTCPSocket {
+ listen(port: number, options?: ServerSocketOptions, backlog?: number): TCPServerSocket;
+ open(host: string, port: number, options?: SocketOptions): TCPSocket;
+}
+
+interface LinkStyle {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLLinkElement/sheet) */
+ readonly sheet: StyleSheet | null;
+}
+
+interface LoadContextMixin {
+ readonly associatedWindow: WindowProxy | null;
+ readonly isContent: boolean;
+ readonly originAttributes: any;
+ readonly topFrameElement: Element | null;
+ readonly topWindow: WindowProxy | null;
+ usePrivateBrowsing: boolean;
+ readonly useRemoteSubframes: boolean;
+ readonly useRemoteTabs: boolean;
+ useTrackingProtection: boolean;
+}
+
+interface Localization {
+ addResourceIds(aResourceIds: L10nResourceId[]): void;
+ formatMessages(aKeys: L10nKey[]): Promise<(L10nMessage | null)[]>;
+ formatMessagesSync(aKeys: L10nKey[]): (L10nMessage | null)[];
+ formatValue(aId: UTF8String, aArgs?: L10nArgs): Promise<UTF8String | null>;
+ formatValueSync(aId: UTF8String, aArgs?: L10nArgs): UTF8String | null;
+ formatValues(aKeys: L10nKey[]): Promise<(UTF8String | null)[]>;
+ formatValuesSync(aKeys: L10nKey[]): (UTF8String | null)[];
+ removeResourceIds(aResourceIds: L10nResourceId[]): number;
+ setAsync(): void;
+}
+
+declare var Localization: {
+ prototype: Localization;
+ new(aResourceIds: L10nResourceId[], aSync?: boolean, aRegistry?: L10nRegistry, aLocales?: UTF8String[]): Localization;
+ isInstance(obj): obj is Localization;
+};
+
+/**
+ * The location (URL) of the object it is linked to. Changes done on it are reflected on the object it relates to. Both the Document and Window interface have such a linked Location, accessible via Document.location and Window.location respectively.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location)
+ */
+interface Location {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/hash) */
+ hash: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/host) */
+ host: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/hostname) */
+ hostname: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/href) */
+ href: string;
+ toString(): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/origin) */
+ readonly origin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/pathname) */
+ pathname: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/port) */
+ port: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/protocol) */
+ protocol: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/search) */
+ search: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/assign) */
+ assign(url: string | URL): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/reload) */
+ reload(forceget?: boolean): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/replace) */
+ replace(url: string | URL): void;
+}
+
+declare var Location: {
+ prototype: Location;
+ new(): Location;
+ isInstance(obj): obj is Location;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock)
+ */
+interface Lock {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock/mode) */
+ readonly mode: LockMode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Lock/name) */
+ readonly name: string;
+}
+
+declare var Lock: {
+ prototype: Lock;
+ new(): Lock;
+ isInstance(obj): obj is Lock;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager)
+ */
+interface LockManager {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/query) */
+ query(): Promise<LockManagerSnapshot>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/request) */
+ request(name: string, callback: LockGrantedCallback): Promise<any>;
+ request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise<any>;
+}
+
+declare var LockManager: {
+ prototype: LockManager;
+ new(): LockManager;
+ isInstance(obj): obj is LockManager;
+};
+
+interface MIDIAccessEventMap {
+ "statechange": Event;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess)
+ */
+interface MIDIAccess extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess/inputs) */
+ readonly inputs: MIDIInputMap;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess/statechange_event) */
+ onstatechange: ((this: MIDIAccess, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess/outputs) */
+ readonly outputs: MIDIOutputMap;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIAccess/sysexEnabled) */
+ readonly sysexEnabled: boolean;
+ addEventListener<K extends keyof MIDIAccessEventMap>(type: K, listener: (this: MIDIAccess, ev: MIDIAccessEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MIDIAccessEventMap>(type: K, listener: (this: MIDIAccess, ev: MIDIAccessEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var MIDIAccess: {
+ prototype: MIDIAccess;
+ new(): MIDIAccess;
+ isInstance(obj): obj is MIDIAccess;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIConnectionEvent)
+ */
+interface MIDIConnectionEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIConnectionEvent/port) */
+ readonly port: MIDIPort | null;
+}
+
+declare var MIDIConnectionEvent: {
+ prototype: MIDIConnectionEvent;
+ new(type: string, eventInitDict?: MIDIConnectionEventInit): MIDIConnectionEvent;
+ isInstance(obj): obj is MIDIConnectionEvent;
+};
+
+interface MIDIInputEventMap extends MIDIPortEventMap {
+ "midimessage": Event;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIInput)
+ */
+interface MIDIInput extends MIDIPort {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIInput/midimessage_event) */
+ onmidimessage: ((this: MIDIInput, ev: Event) => any) | null;
+ addEventListener<K extends keyof MIDIInputEventMap>(type: K, listener: (this: MIDIInput, ev: MIDIInputEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MIDIInputEventMap>(type: K, listener: (this: MIDIInput, ev: MIDIInputEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var MIDIInput: {
+ prototype: MIDIInput;
+ new(): MIDIInput;
+ isInstance(obj): obj is MIDIInput;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIInputMap)
+ */
+interface MIDIInputMap {
+ forEach(callbackfn: (value: MIDIInput, key: string, parent: MIDIInputMap) => void, thisArg?: any): void;
+}
+
+declare var MIDIInputMap: {
+ prototype: MIDIInputMap;
+ new(): MIDIInputMap;
+ isInstance(obj): obj is MIDIInputMap;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIMessageEvent)
+ */
+interface MIDIMessageEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIMessageEvent/data) */
+ readonly data: Uint8Array;
+}
+
+declare var MIDIMessageEvent: {
+ prototype: MIDIMessageEvent;
+ new(type: string, eventInitDict?: MIDIMessageEventInit): MIDIMessageEvent;
+ isInstance(obj): obj is MIDIMessageEvent;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIOutput)
+ */
+interface MIDIOutput extends MIDIPort {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIOutput/clear) */
+ clear(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIOutput/send) */
+ send(data: number[], timestamp?: DOMHighResTimeStamp): void;
+ addEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIOutput, ev: MIDIPortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIOutput, ev: MIDIPortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var MIDIOutput: {
+ prototype: MIDIOutput;
+ new(): MIDIOutput;
+ isInstance(obj): obj is MIDIOutput;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIOutputMap)
+ */
+interface MIDIOutputMap {
+ forEach(callbackfn: (value: MIDIOutput, key: string, parent: MIDIOutputMap) => void, thisArg?: any): void;
+}
+
+declare var MIDIOutputMap: {
+ prototype: MIDIOutputMap;
+ new(): MIDIOutputMap;
+ isInstance(obj): obj is MIDIOutputMap;
+};
+
+interface MIDIPortEventMap {
+ "statechange": Event;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort)
+ */
+interface MIDIPort extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/connection) */
+ readonly connection: MIDIPortConnectionState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/id) */
+ readonly id: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/manufacturer) */
+ readonly manufacturer: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/name) */
+ readonly name: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/statechange_event) */
+ onstatechange: ((this: MIDIPort, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/state) */
+ readonly state: MIDIPortDeviceState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/type) */
+ readonly type: MIDIPortType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/version) */
+ readonly version: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/close) */
+ close(): Promise<MIDIPort>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/open) */
+ open(): Promise<MIDIPort>;
+ addEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIPort, ev: MIDIPortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MIDIPortEventMap>(type: K, listener: (this: MIDIPort, ev: MIDIPortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var MIDIPort: {
+ prototype: MIDIPort;
+ new(): MIDIPort;
+ isInstance(obj): obj is MIDIPort;
+};
+
+interface MOZ_debug {
+ getParameter(pname: GLenum): any;
+ readonly EXTENSIONS: 0x1F03;
+ readonly WSI_INFO: 0x10000;
+ readonly UNPACK_REQUIRE_FASTPATH: 0x10001;
+ readonly DOES_INDEX_VALIDATION: 0x10002;
+}
+
+interface MatchGlob {
+ readonly glob: UTF8String;
+ matches(string: UTF8String): boolean;
+}
+
+declare var MatchGlob: {
+ prototype: MatchGlob;
+ new(glob: UTF8String, allowQuestion?: boolean): MatchGlob;
+ isInstance(obj): obj is MatchGlob;
+};
+
+interface MatchPattern {
+ readonly matchesAllWebUrls: boolean;
+ readonly pattern: string;
+ matches(uri: URI, explicit?: boolean): boolean;
+ matches(url: string, explicit?: boolean): boolean;
+ matchesCookie(cookie: Cookie): boolean;
+ overlaps(pattern: MatchPattern): boolean;
+ subsumes(pattern: MatchPattern): boolean;
+ subsumesDomain(pattern: MatchPattern): boolean;
+}
+
+declare var MatchPattern: {
+ prototype: MatchPattern;
+ new(pattern: string, options?: MatchPatternOptions): MatchPattern;
+ isInstance(obj): obj is MatchPattern;
+};
+
+interface MatchPatternSet {
+ readonly matchesAllWebUrls: boolean;
+ readonly patterns: MatchPattern[];
+ matches(uri: URI, explicit?: boolean): boolean;
+ matches(url: string, explicit?: boolean): boolean;
+ matchesCookie(cookie: Cookie): boolean;
+ overlaps(pattern: MatchPattern): boolean;
+ overlaps(patternSet: MatchPatternSet): boolean;
+ overlapsAll(patternSet: MatchPatternSet): boolean;
+ subsumes(pattern: MatchPattern): boolean;
+ subsumesDomain(pattern: MatchPattern): boolean;
+}
+
+declare var MatchPatternSet: {
+ prototype: MatchPatternSet;
+ new(patterns: (string | MatchPattern)[], options?: MatchPatternOptions): MatchPatternSet;
+ isInstance(obj): obj is MatchPatternSet;
+};
+
+interface MathMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap, OnErrorEventHandlerForNodesEventMap, TouchEventHandlersEventMap {
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MathMLElement) */
+interface MathMLElement extends Element, ElementCSSInlineStyle, GlobalEventHandlers, HTMLOrForeignElement, OnErrorEventHandlerForNodes, TouchEventHandlers {
+ addEventListener<K extends keyof MathMLElementEventMap>(type: K, listener: (this: MathMLElement, ev: MathMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MathMLElementEventMap>(type: K, listener: (this: MathMLElement, ev: MathMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var MathMLElement: {
+ prototype: MathMLElement;
+ new(): MathMLElement;
+ isInstance(obj): obj is MathMLElement;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities) */
+interface MediaCapabilities {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities/decodingInfo) */
+ decodingInfo(configuration: MediaDecodingConfiguration): Promise<MediaCapabilitiesInfo>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaCapabilities/encodingInfo) */
+ encodingInfo(configuration: MediaEncodingConfiguration): Promise<MediaCapabilitiesInfo>;
+}
+
+declare var MediaCapabilities: {
+ prototype: MediaCapabilities;
+ new(): MediaCapabilities;
+ isInstance(obj): obj is MediaCapabilities;
+};
+
+interface MediaCapabilitiesInfo {
+ readonly powerEfficient: boolean;
+ readonly smooth: boolean;
+ readonly supported: boolean;
+}
+
+declare var MediaCapabilitiesInfo: {
+ prototype: MediaCapabilitiesInfo;
+ new(): MediaCapabilitiesInfo;
+ isInstance(obj): obj is MediaCapabilitiesInfo;
+};
+
+interface MediaControllerEventMap {
+ "activated": Event;
+ "deactivated": Event;
+ "metadatachange": Event;
+ "playbackstatechange": Event;
+ "positionstatechange": Event;
+ "supportedkeyschange": Event;
+}
+
+/** @deprecated */
+interface MediaController extends EventTarget {
+ readonly id: number;
+ readonly isActive: boolean;
+ readonly isAudible: boolean;
+ readonly isPlaying: boolean;
+ onactivated: ((this: MediaController, ev: Event) => any) | null;
+ ondeactivated: ((this: MediaController, ev: Event) => any) | null;
+ onmetadatachange: ((this: MediaController, ev: Event) => any) | null;
+ onplaybackstatechange: ((this: MediaController, ev: Event) => any) | null;
+ onpositionstatechange: ((this: MediaController, ev: Event) => any) | null;
+ onsupportedkeyschange: ((this: MediaController, ev: Event) => any) | null;
+ /** @deprecated */
+ readonly playbackState: MediaSessionPlaybackState;
+ readonly supportedKeys: MediaControlKey[];
+ focus(): void;
+ getMetadata(): MediaMetadataInit;
+ nextTrack(): void;
+ /** @deprecated */
+ pause(): void;
+ /** @deprecated */
+ play(): void;
+ prevTrack(): void;
+ seekBackward(): void;
+ seekForward(): void;
+ seekTo(seekTime: number, fastSeek?: boolean): void;
+ skipAd(): void;
+ stop(): void;
+ addEventListener<K extends keyof MediaControllerEventMap>(type: K, listener: (this: MediaController, ev: MediaControllerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MediaControllerEventMap>(type: K, listener: (this: MediaController, ev: MediaControllerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+/** @deprecated */
+declare var MediaController: {
+ prototype: MediaController;
+ new(): MediaController;
+ isInstance(obj): obj is MediaController;
+};
+
+/**
+ * The MediaDevicesInfo interface contains information that describes a single media input or output device.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo)
+ */
+interface MediaDeviceInfo {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/deviceId) */
+ readonly deviceId: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/groupId) */
+ readonly groupId: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/kind) */
+ readonly kind: MediaDeviceKind;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/label) */
+ readonly label: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDeviceInfo/toJSON) */
+ toJSON(): any;
+}
+
+declare var MediaDeviceInfo: {
+ prototype: MediaDeviceInfo;
+ new(): MediaDeviceInfo;
+ isInstance(obj): obj is MediaDeviceInfo;
+};
+
+interface MediaDevicesEventMap {
+ "devicechange": Event;
+}
+
+/**
+ * Provides access to connected media input devices like cameras and microphones, as well as screen sharing. In essence, it lets you obtain access to any hardware source of media data.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices)
+ */
+interface MediaDevices extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/devicechange_event) */
+ ondevicechange: ((this: MediaDevices, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/enumerateDevices) */
+ enumerateDevices(): Promise<MediaDeviceInfo[]>;
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/getDisplayMedia)
+ */
+ getDisplayMedia(constraints?: DisplayMediaStreamConstraints): Promise<MediaStream>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/getSupportedConstraints) */
+ getSupportedConstraints(): MediaTrackSupportedConstraints;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/getUserMedia) */
+ getUserMedia(constraints?: MediaStreamConstraints): Promise<MediaStream>;
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaDevices/selectAudioOutput)
+ */
+ selectAudioOutput(options?: AudioOutputOptions): Promise<MediaDeviceInfo>;
+ addEventListener<K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MediaDevicesEventMap>(type: K, listener: (this: MediaDevices, ev: MediaDevicesEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var MediaDevices: {
+ prototype: MediaDevices;
+ new(): MediaDevices;
+ isInstance(obj): obj is MediaDevices;
+};
+
+/**
+ * A MediaElementSourceNode has no inputs and exactly one output, and is created using the AudioContext.createMediaElementSource method. The amount of channels in the output equals the number of channels of the audio referenced by the HTMLMediaElement used in the creation of the node, or is 1 if the HTMLMediaElement has no audio.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaElementAudioSourceNode)
+ */
+interface MediaElementAudioSourceNode extends AudioNode, AudioNodePassThrough {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaElementAudioSourceNode/mediaElement) */
+ readonly mediaElement: HTMLMediaElement;
+}
+
+declare var MediaElementAudioSourceNode: {
+ prototype: MediaElementAudioSourceNode;
+ new(context: AudioContext, options: MediaElementAudioSourceOptions): MediaElementAudioSourceNode;
+ isInstance(obj): obj is MediaElementAudioSourceNode;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaEncryptedEvent) */
+interface MediaEncryptedEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaEncryptedEvent/initData) */
+ readonly initData: ArrayBuffer | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaEncryptedEvent/initDataType) */
+ readonly initDataType: string;
+}
+
+declare var MediaEncryptedEvent: {
+ prototype: MediaEncryptedEvent;
+ new(type: string, eventInitDict?: MediaKeyNeededEventInit): MediaEncryptedEvent;
+ isInstance(obj): obj is MediaEncryptedEvent;
+};
+
+/**
+ * An error which occurred while handling media in an HTML media element based on HTMLMediaElement, such as <audio> or <video>.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaError)
+ */
+interface MediaError {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaError/code) */
+ readonly code: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaError/message) */
+ readonly message: string;
+ readonly MEDIA_ERR_ABORTED: 1;
+ readonly MEDIA_ERR_NETWORK: 2;
+ readonly MEDIA_ERR_DECODE: 3;
+ readonly MEDIA_ERR_SRC_NOT_SUPPORTED: 4;
+}
+
+declare var MediaError: {
+ prototype: MediaError;
+ new(): MediaError;
+ readonly MEDIA_ERR_ABORTED: 1;
+ readonly MEDIA_ERR_NETWORK: 2;
+ readonly MEDIA_ERR_DECODE: 3;
+ readonly MEDIA_ERR_SRC_NOT_SUPPORTED: 4;
+ isInstance(obj): obj is MediaError;
+};
+
+interface MediaKeyError extends Event {
+ readonly systemCode: number;
+}
+
+declare var MediaKeyError: {
+ prototype: MediaKeyError;
+ new(): MediaKeyError;
+ isInstance(obj): obj is MediaKeyError;
+};
+
+/**
+ * This EncryptedMediaExtensions API interface contains the content and related data when the content decryption module generates a message for the session.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyMessageEvent)
+ */
+interface MediaKeyMessageEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyMessageEvent/message) */
+ readonly message: ArrayBuffer;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyMessageEvent/messageType) */
+ readonly messageType: MediaKeyMessageType;
+}
+
+declare var MediaKeyMessageEvent: {
+ prototype: MediaKeyMessageEvent;
+ new(type: string, eventInitDict: MediaKeyMessageEventInit): MediaKeyMessageEvent;
+ isInstance(obj): obj is MediaKeyMessageEvent;
+};
+
+interface MediaKeySessionEventMap {
+ "keystatuseschange": Event;
+ "message": Event;
+}
+
+/**
+ * This EncryptedMediaExtensions API interface represents a context for message exchange with a content decryption module (CDM).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession)
+ */
+interface MediaKeySession extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/closed) */
+ readonly closed: Promise<undefined>;
+ "error": ErrorEvent;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/expiration) */
+ readonly expiration: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/keyStatuses) */
+ readonly keyStatuses: MediaKeyStatusMap;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/keystatuseschange_event) */
+ onkeystatuseschange: ((this: MediaKeySession, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/message_event) */
+ onmessage: ((this: MediaKeySession, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/sessionId) */
+ readonly sessionId: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/close) */
+ close(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/generateRequest) */
+ generateRequest(initDataType: string, initData: BufferSource): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/load) */
+ load(sessionId: string): Promise<boolean>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/remove) */
+ remove(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySession/update) */
+ update(response: BufferSource): Promise<void>;
+ addEventListener<K extends keyof MediaKeySessionEventMap>(type: K, listener: (this: MediaKeySession, ev: MediaKeySessionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MediaKeySessionEventMap>(type: K, listener: (this: MediaKeySession, ev: MediaKeySessionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var MediaKeySession: {
+ prototype: MediaKeySession;
+ new(): MediaKeySession;
+ isInstance(obj): obj is MediaKeySession;
+};
+
+/**
+ * This EncryptedMediaExtensions API interface is a read-only map of media key statuses by key IDs.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap)
+ */
+interface MediaKeyStatusMap {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/size) */
+ readonly size: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/get) */
+ get(keyId: BufferSource): MediaKeyStatus | undefined;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeyStatusMap/has) */
+ has(keyId: BufferSource): boolean;
+ forEach(callbackfn: (value: MediaKeyStatus, key: ArrayBuffer, parent: MediaKeyStatusMap) => void, thisArg?: any): void;
+}
+
+declare var MediaKeyStatusMap: {
+ prototype: MediaKeyStatusMap;
+ new(): MediaKeyStatusMap;
+ isInstance(obj): obj is MediaKeyStatusMap;
+};
+
+/**
+ * This EncryptedMediaExtensions API interface provides access to a Key System for decryption and/or a content protection provider. You can request an instance of this object using the Navigator.requestMediaKeySystemAccess method.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySystemAccess)
+ */
+interface MediaKeySystemAccess {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySystemAccess/keySystem) */
+ readonly keySystem: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySystemAccess/createMediaKeys) */
+ createMediaKeys(): Promise<MediaKeys>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeySystemAccess/getConfiguration) */
+ getConfiguration(): MediaKeySystemConfiguration;
+}
+
+declare var MediaKeySystemAccess: {
+ prototype: MediaKeySystemAccess;
+ new(): MediaKeySystemAccess;
+ isInstance(obj): obj is MediaKeySystemAccess;
+};
+
+/**
+ * This EncryptedMediaExtensions API interface the represents a set of keys that an associated HTMLMediaElement can use for decryption of media data during playback.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeys)
+ */
+interface MediaKeys {
+ readonly keySystem: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeys/createSession) */
+ createSession(sessionType?: MediaKeySessionType): MediaKeySession;
+ getStatusForPolicy(policy?: MediaKeysPolicy): Promise<MediaKeyStatus>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaKeys/setServerCertificate) */
+ setServerCertificate(serverCertificate: BufferSource): Promise<void>;
+}
+
+declare var MediaKeys: {
+ prototype: MediaKeys;
+ new(): MediaKeys;
+ isInstance(obj): obj is MediaKeys;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList) */
+interface MediaList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/mediaText) */
+ mediaText: UTF8String;
+ toString(): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/appendMedium) */
+ appendMedium(newMedium: UTF8String): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/deleteMedium) */
+ deleteMedium(oldMedium: UTF8String): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaList/item) */
+ item(index: number): UTF8String | null;
+ [index: number]: UTF8String;
+}
+
+declare var MediaList: {
+ prototype: MediaList;
+ new(): MediaList;
+ isInstance(obj): obj is MediaList;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata) */
+interface MediaMetadata {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata/album) */
+ album: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata/artist) */
+ artist: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata/artwork) */
+ artwork: any[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaMetadata/title) */
+ title: string;
+}
+
+declare var MediaMetadata: {
+ prototype: MediaMetadata;
+ new(init?: MediaMetadataInit): MediaMetadata;
+ isInstance(obj): obj is MediaMetadata;
+};
+
+interface MediaQueryListEventMap {
+ "change": Event;
+}
+
+/**
+ * Stores information on a media query applied to a document, and handles sending notifications to listeners when the media query state change (i.e. when the media query test starts or stops evaluating to true).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList)
+ */
+interface MediaQueryList extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/matches) */
+ readonly matches: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/media) */
+ readonly media: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/change_event) */
+ onchange: ((this: MediaQueryList, ev: Event) => any) | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/addListener)
+ */
+ addListener(listener: EventListener | null): void;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryList/removeListener)
+ */
+ removeListener(listener: EventListener | null): void;
+ addEventListener<K extends keyof MediaQueryListEventMap>(type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MediaQueryListEventMap>(type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var MediaQueryList: {
+ prototype: MediaQueryList;
+ new(): MediaQueryList;
+ isInstance(obj): obj is MediaQueryList;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryListEvent) */
+interface MediaQueryListEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryListEvent/matches) */
+ readonly matches: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaQueryListEvent/media) */
+ readonly media: UTF8String;
+}
+
+declare var MediaQueryListEvent: {
+ prototype: MediaQueryListEvent;
+ new(type: string, eventInitDict?: MediaQueryListEventInit): MediaQueryListEvent;
+ isInstance(obj): obj is MediaQueryListEvent;
+};
+
+interface MediaRecorderEventMap {
+ "dataavailable": Event;
+ "error": ErrorEvent;
+ "pause": Event;
+ "resume": Event;
+ "start": Event;
+ "stop": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder) */
+interface MediaRecorder extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/audioBitsPerSecond) */
+ readonly audioBitsPerSecond: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/mimeType) */
+ readonly mimeType: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/dataavailable_event) */
+ ondataavailable: ((this: MediaRecorder, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/error_event) */
+ onerror: OnErrorEventHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/pause_event) */
+ onpause: ((this: MediaRecorder, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/resume_event) */
+ onresume: ((this: MediaRecorder, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/start_event) */
+ onstart: ((this: MediaRecorder, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/stop_event) */
+ onstop: ((this: MediaRecorder, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/state) */
+ readonly state: RecordingState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/stream) */
+ readonly stream: MediaStream;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/videoBitsPerSecond) */
+ readonly videoBitsPerSecond: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/pause) */
+ pause(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/requestData) */
+ requestData(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/resume) */
+ resume(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/start) */
+ start(timeslice?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/stop) */
+ stop(): void;
+ addEventListener<K extends keyof MediaRecorderEventMap>(type: K, listener: (this: MediaRecorder, ev: MediaRecorderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MediaRecorderEventMap>(type: K, listener: (this: MediaRecorder, ev: MediaRecorderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var MediaRecorder: {
+ prototype: MediaRecorder;
+ new(stream: MediaStream, options?: MediaRecorderOptions): MediaRecorder;
+ new(node: AudioNode, output?: number, options?: MediaRecorderOptions): MediaRecorder;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorder/isTypeSupported_static) */
+ isTypeSupported(type: string): boolean;
+ isInstance(obj): obj is MediaRecorder;
+};
+
+/**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorderErrorEvent)
+ */
+interface MediaRecorderErrorEvent extends Event {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaRecorderErrorEvent/error)
+ */
+ "error": ErrorEvent;
+}
+
+/** @deprecated */
+declare var MediaRecorderErrorEvent: {
+ prototype: MediaRecorderErrorEvent;
+ new(type: string, eventInitDict: MediaRecorderErrorEventInit): MediaRecorderErrorEvent;
+ isInstance(obj): obj is MediaRecorderErrorEvent;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession) */
+interface MediaSession {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession/metadata) */
+ metadata: MediaMetadata | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession/playbackState) */
+ playbackState: MediaSessionPlaybackState;
+ notifyHandler(details: MediaSessionActionDetails): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession/setActionHandler) */
+ setActionHandler(action: MediaSessionAction, handler: MediaSessionActionHandler | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSession/setPositionState) */
+ setPositionState(state?: MediaPositionState): void;
+}
+
+declare var MediaSession: {
+ prototype: MediaSession;
+ new(): MediaSession;
+ isInstance(obj): obj is MediaSession;
+};
+
+interface MediaSourceEventMap {
+ "sourceclose": Event;
+ "sourceended": Event;
+ "sourceopen": Event;
+}
+
+/**
+ * This Media Source Extensions API interface represents a source of media data for an HTMLMediaElement object. A MediaSource object can be attached to a HTMLMediaElement to be played in the user agent.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource)
+ */
+interface MediaSource extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/activeSourceBuffers) */
+ readonly activeSourceBuffers: SourceBufferList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/duration) */
+ duration: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/sourceclose_event) */
+ onsourceclose: ((this: MediaSource, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/sourceended_event) */
+ onsourceended: ((this: MediaSource, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/sourceopen_event) */
+ onsourceopen: ((this: MediaSource, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/readyState) */
+ readonly readyState: MediaSourceReadyState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/sourceBuffers) */
+ readonly sourceBuffers: SourceBufferList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/addSourceBuffer) */
+ addSourceBuffer(type: string): SourceBuffer;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/clearLiveSeekableRange) */
+ clearLiveSeekableRange(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/endOfStream) */
+ endOfStream(error?: MediaSourceEndOfStreamError): void;
+ mozDebugReaderData(): Promise<MediaSourceDecoderDebugInfo>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/removeSourceBuffer) */
+ removeSourceBuffer(sourceBuffer: SourceBuffer): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/setLiveSeekableRange) */
+ setLiveSeekableRange(start: number, end: number): void;
+ addEventListener<K extends keyof MediaSourceEventMap>(type: K, listener: (this: MediaSource, ev: MediaSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MediaSourceEventMap>(type: K, listener: (this: MediaSource, ev: MediaSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var MediaSource: {
+ prototype: MediaSource;
+ new(): MediaSource;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaSource/isTypeSupported_static) */
+ isTypeSupported(type: string): boolean;
+ isInstance(obj): obj is MediaSource;
+};
+
+interface MediaStreamEventMap {
+ "addtrack": Event;
+ "removetrack": Event;
+}
+
+/**
+ * A stream of media content. A stream consists of several tracks such as video or audio tracks. Each track is specified as an instance of MediaStreamTrack.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream)
+ */
+interface MediaStream extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/active) */
+ readonly active: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/id) */
+ readonly id: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/addtrack_event) */
+ onaddtrack: ((this: MediaStream, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/removetrack_event) */
+ onremovetrack: ((this: MediaStream, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/addTrack) */
+ addTrack(track: MediaStreamTrack): void;
+ assignId(id: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/clone) */
+ clone(): MediaStream;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/getAudioTracks) */
+ getAudioTracks(): MediaStreamTrack[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/getTrackById) */
+ getTrackById(trackId: string): MediaStreamTrack | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/getTracks) */
+ getTracks(): MediaStreamTrack[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/getVideoTracks) */
+ getVideoTracks(): MediaStreamTrack[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStream/removeTrack) */
+ removeTrack(track: MediaStreamTrack): void;
+ addEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MediaStreamEventMap>(type: K, listener: (this: MediaStream, ev: MediaStreamEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var MediaStream: {
+ prototype: MediaStream;
+ new(): MediaStream;
+ new(stream: MediaStream): MediaStream;
+ new(tracks: MediaStreamTrack[]): MediaStream;
+ countUnderlyingStreams(): Promise<number>;
+ isInstance(obj): obj is MediaStream;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamAudioDestinationNode) */
+interface MediaStreamAudioDestinationNode extends AudioNode {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamAudioDestinationNode/stream) */
+ readonly stream: MediaStream;
+}
+
+declare var MediaStreamAudioDestinationNode: {
+ prototype: MediaStreamAudioDestinationNode;
+ new(context: AudioContext, options?: AudioNodeOptions): MediaStreamAudioDestinationNode;
+ isInstance(obj): obj is MediaStreamAudioDestinationNode;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamAudioSourceNode)
+ */
+interface MediaStreamAudioSourceNode extends AudioNode, AudioNodePassThrough {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamAudioSourceNode/mediaStream) */
+ readonly mediaStream: MediaStream;
+}
+
+declare var MediaStreamAudioSourceNode: {
+ prototype: MediaStreamAudioSourceNode;
+ new(context: AudioContext, options: MediaStreamAudioSourceOptions): MediaStreamAudioSourceNode;
+ isInstance(obj): obj is MediaStreamAudioSourceNode;
+};
+
+interface MediaStreamError {
+ readonly constraint: string | null;
+ readonly message: string | null;
+ readonly name: string;
+}
+
+/**
+ * Events that occurs in relation to a MediaStream. Two events of this type can be thrown: addstream and removestream.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamEvent)
+ */
+interface MediaStreamEvent extends Event {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamEvent/stream)
+ */
+ readonly stream: MediaStream | null;
+}
+
+/** @deprecated */
+declare var MediaStreamEvent: {
+ prototype: MediaStreamEvent;
+ new(type: string, eventInitDict?: MediaStreamEventInit): MediaStreamEvent;
+ isInstance(obj): obj is MediaStreamEvent;
+};
+
+interface MediaStreamTrackEventMap {
+ "ended": Event;
+ "mute": Event;
+ "unmute": Event;
+}
+
+/**
+ * A single media track within a stream; typically, these are audio or video tracks, but other track types may exist as well.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack)
+ */
+interface MediaStreamTrack extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/enabled) */
+ enabled: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/id) */
+ readonly id: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/kind) */
+ readonly kind: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/label) */
+ readonly label: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/muted) */
+ readonly muted: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/ended_event) */
+ onended: ((this: MediaStreamTrack, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/mute_event) */
+ onmute: ((this: MediaStreamTrack, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/unmute_event) */
+ onunmute: ((this: MediaStreamTrack, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/readyState) */
+ readonly readyState: MediaStreamTrackState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/applyConstraints) */
+ applyConstraints(constraints?: MediaTrackConstraints): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/clone) */
+ clone(): MediaStreamTrack;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/getConstraints) */
+ getConstraints(): MediaTrackConstraints;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/getSettings) */
+ getSettings(): MediaTrackSettings;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrack/stop) */
+ stop(): void;
+ addEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MediaStreamTrackEventMap>(type: K, listener: (this: MediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var MediaStreamTrack: {
+ prototype: MediaStreamTrack;
+ new(): MediaStreamTrack;
+ isInstance(obj): obj is MediaStreamTrack;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrackAudioSourceNode) */
+interface MediaStreamTrackAudioSourceNode extends AudioNode, AudioNodePassThrough {
+}
+
+declare var MediaStreamTrackAudioSourceNode: {
+ prototype: MediaStreamTrackAudioSourceNode;
+ new(context: AudioContext, options: MediaStreamTrackAudioSourceOptions): MediaStreamTrackAudioSourceNode;
+ isInstance(obj): obj is MediaStreamTrackAudioSourceNode;
+};
+
+/**
+ * Events which indicate that a MediaStream has had tracks added to or removed from the stream through calls to Media Stream API methods. These events are sent to the stream when these changes occur.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrackEvent)
+ */
+interface MediaStreamTrackEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MediaStreamTrackEvent/track) */
+ readonly track: MediaStreamTrack;
+}
+
+declare var MediaStreamTrackEvent: {
+ prototype: MediaStreamTrackEvent;
+ new(type: string, eventInitDict: MediaStreamTrackEventInit): MediaStreamTrackEvent;
+ isInstance(obj): obj is MediaStreamTrackEvent;
+};
+
+/**
+ * @deprecated
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MerchantValidationEvent)
+ */
+interface MerchantValidationEvent extends Event {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MerchantValidationEvent/methodName)
+ */
+ readonly methodName: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MerchantValidationEvent/validationURL)
+ */
+ readonly validationURL: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MerchantValidationEvent/complete)
+ */
+ complete(merchantSessionPromise: any): void;
+}
+
+/** @deprecated */
+declare var MerchantValidationEvent: {
+ prototype: MerchantValidationEvent;
+ new(type: string, eventInitDict?: MerchantValidationEventInit): MerchantValidationEvent;
+ isInstance(obj): obj is MerchantValidationEvent;
+};
+
+interface MessageBroadcaster extends MessageListenerManager {
+ readonly childCount: number;
+ broadcastAsyncMessage(messageName?: string | null, obj?: any): void;
+ getChildAt(aIndex: number): MessageListenerManager | null;
+ releaseCachedProcesses(): void;
+}
+
+declare var MessageBroadcaster: {
+ prototype: MessageBroadcaster;
+ new(): MessageBroadcaster;
+ isInstance(obj): obj is MessageBroadcaster;
+};
+
+/**
+ * This Channel Messaging API interface allows us to create a new message channel and send data through it via its two MessagePort properties.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel)
+ */
+interface MessageChannel {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel/port1) */
+ readonly port1: MessagePort;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageChannel/port2) */
+ readonly port2: MessagePort;
+}
+
+declare var MessageChannel: {
+ prototype: MessageChannel;
+ new(): MessageChannel;
+ isInstance(obj): obj is MessageChannel;
+};
+
+/**
+ * A message received by a target object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent)
+ */
+interface MessageEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/data) */
+ readonly data: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/lastEventId) */
+ readonly lastEventId: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/origin) */
+ readonly origin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/ports) */
+ readonly ports: MessagePort[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/source) */
+ readonly source: MessageEventSource | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessageEvent/initMessageEvent)
+ */
+ initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: MessagePort[]): void;
+}
+
+declare var MessageEvent: {
+ prototype: MessageEvent;
+ new(type: string, eventInitDict?: MessageEventInit): MessageEvent;
+ isInstance(obj): obj is MessageEvent;
+};
+
+interface MessageListenerManager extends MessageListenerManagerMixin {
+}
+
+declare var MessageListenerManager: {
+ prototype: MessageListenerManager;
+ new(): MessageListenerManager;
+ isInstance(obj): obj is MessageListenerManager;
+};
+
+interface MessageListenerManagerMixin {
+ addMessageListener(messageName: string, listener: MessageListener, listenWhenClosed?: boolean): void;
+ addWeakMessageListener(messageName: string, listener: MessageListener): void;
+ removeMessageListener(messageName: string, listener: MessageListener): void;
+ removeWeakMessageListener(messageName: string, listener: MessageListener): void;
+}
+
+interface MessageManagerGlobal {
+ atob(asciiString: string): string;
+ btoa(base64Data: string): string;
+ dump(str: string): void;
+}
+
+interface MessagePortEventMap {
+ "message": Event;
+ "messageerror": Event;
+}
+
+/**
+ * This Channel Messaging API interface represents one of the two ports of a MessageChannel, allowing messages to be sent from one port and listening out for them arriving at the other.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort)
+ */
+interface MessagePort extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/message_event) */
+ onmessage: ((this: MessagePort, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/messageerror_event) */
+ onmessageerror: ((this: MessagePort, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/close) */
+ close(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/postMessage) */
+ postMessage(message: any, transferable: any[]): void;
+ postMessage(message: any, options?: StructuredSerializeOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MessagePort/start) */
+ start(): void;
+ addEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof MessagePortEventMap>(type: K, listener: (this: MessagePort, ev: MessagePortEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var MessagePort: {
+ prototype: MessagePort;
+ new(): MessagePort;
+ isInstance(obj): obj is MessagePort;
+};
+
+interface MessageSender extends MessageListenerManager, MessageSenderMixin {
+}
+
+declare var MessageSender: {
+ prototype: MessageSender;
+ new(): MessageSender;
+ isInstance(obj): obj is MessageSender;
+};
+
+interface MessageSenderMixin {
+ readonly processMessageManager: MessageSender | null;
+ readonly remoteType: UTF8String;
+ sendAsyncMessage(messageName?: string | null, obj?: any, transfers?: any): void;
+}
+
+/**
+ * Provides contains information about a MIME type associated with a particular plugin. NavigatorPlugins.mimeTypes returns an array of this object.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeType)
+ */
+interface MimeType {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeType/description)
+ */
+ readonly description: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeType/enabledPlugin)
+ */
+ readonly enabledPlugin: Plugin;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeType/suffixes)
+ */
+ readonly suffixes: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeType/type)
+ */
+ readonly type: string;
+}
+
+/** @deprecated */
+declare var MimeType: {
+ prototype: MimeType;
+ new(): MimeType;
+ isInstance(obj): obj is MimeType;
+};
+
+/**
+ * Returns an array of MimeType instances, each of which contains information about a supported browser plugins. This object is returned by NavigatorPlugins.mimeTypes.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeTypeArray)
+ */
+interface MimeTypeArray {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeTypeArray/length)
+ */
+ readonly length: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeTypeArray/item)
+ */
+ item(index: number): MimeType | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MimeTypeArray/namedItem)
+ */
+ namedItem(name: string): MimeType | null;
+ [index: number]: MimeType;
+}
+
+/** @deprecated */
+declare var MimeTypeArray: {
+ prototype: MimeTypeArray;
+ new(): MimeTypeArray;
+ isInstance(obj): obj is MimeTypeArray;
+};
+
+/**
+ * Events that occur due to the user interacting with a pointing device (such as a mouse). Common events using this interface include click, dblclick, mouseup, mousedown.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent)
+ */
+interface MouseEvent extends UIEvent {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/altKey) */
+ readonly altKey: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/button) */
+ readonly button: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/buttons) */
+ readonly buttons: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/clientX) */
+ readonly clientX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/clientY) */
+ readonly clientY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/ctrlKey) */
+ readonly ctrlKey: boolean;
+ readonly inputSource: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/metaKey) */
+ readonly metaKey: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/movementX) */
+ readonly movementX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/movementY) */
+ readonly movementY: number;
+ readonly mozInputSource: number;
+ readonly mozPressure: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/offsetX) */
+ readonly offsetX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/offsetY) */
+ readonly offsetY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/pageX) */
+ readonly pageX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/pageY) */
+ readonly pageY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/relatedTarget) */
+ readonly relatedTarget: EventTarget | null;
+ readonly screen: nsIScreen | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/screenX) */
+ readonly screenX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/screenY) */
+ readonly screenY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/shiftKey) */
+ readonly shiftKey: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/x) */
+ readonly x: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/y) */
+ readonly y: number;
+ clickEventPrevented(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/getModifierState) */
+ getModifierState(keyArg: string): boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseEvent/initMouseEvent)
+ */
+ initMouseEvent(typeArg: string, canBubbleArg?: boolean, cancelableArg?: boolean, viewArg?: Window | null, detailArg?: number, screenXArg?: number, screenYArg?: number, clientXArg?: number, clientYArg?: number, ctrlKeyArg?: boolean, altKeyArg?: boolean, shiftKeyArg?: boolean, metaKeyArg?: boolean, buttonArg?: number, relatedTargetArg?: EventTarget | null): void;
+ initNSMouseEvent(typeArg: string, canBubbleArg?: boolean, cancelableArg?: boolean, viewArg?: Window | null, detailArg?: number, screenXArg?: number, screenYArg?: number, clientXArg?: number, clientYArg?: number, ctrlKeyArg?: boolean, altKeyArg?: boolean, shiftKeyArg?: boolean, metaKeyArg?: boolean, buttonArg?: number, relatedTargetArg?: EventTarget | null, pressure?: number, inputSourceArg?: number): void;
+ preventClickEvent(): void;
+ readonly MOZ_SOURCE_UNKNOWN: 0;
+ readonly MOZ_SOURCE_MOUSE: 1;
+ readonly MOZ_SOURCE_PEN: 2;
+ readonly MOZ_SOURCE_ERASER: 3;
+ readonly MOZ_SOURCE_CURSOR: 4;
+ readonly MOZ_SOURCE_TOUCH: 5;
+ readonly MOZ_SOURCE_KEYBOARD: 6;
+}
+
+declare var MouseEvent: {
+ prototype: MouseEvent;
+ new(typeArg: string, mouseEventInitDict?: MouseEventInit): MouseEvent;
+ readonly MOZ_SOURCE_UNKNOWN: 0;
+ readonly MOZ_SOURCE_MOUSE: 1;
+ readonly MOZ_SOURCE_PEN: 2;
+ readonly MOZ_SOURCE_ERASER: 3;
+ readonly MOZ_SOURCE_CURSOR: 4;
+ readonly MOZ_SOURCE_TOUCH: 5;
+ readonly MOZ_SOURCE_KEYBOARD: 6;
+ isInstance(obj): obj is MouseEvent;
+};
+
+/**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MouseScrollEvent)
+ */
+interface MouseScrollEvent extends MouseEvent {
+ readonly axis: number;
+ initMouseScrollEvent(type: string, canBubble?: boolean, cancelable?: boolean, view?: Window | null, detail?: number, screenX?: number, screenY?: number, clientX?: number, clientY?: number, ctrlKey?: boolean, altKey?: boolean, shiftKey?: boolean, metaKey?: boolean, button?: number, relatedTarget?: EventTarget | null, axis?: number): void;
+ readonly HORIZONTAL_AXIS: 1;
+ readonly VERTICAL_AXIS: 2;
+}
+
+/** @deprecated */
+declare var MouseScrollEvent: {
+ prototype: MouseScrollEvent;
+ new(): MouseScrollEvent;
+ readonly HORIZONTAL_AXIS: 1;
+ readonly VERTICAL_AXIS: 2;
+ isInstance(obj): obj is MouseScrollEvent;
+};
+
+interface MozApplicationEvent extends Event {
+ readonly application: DOMApplication | null;
+}
+
+declare var MozApplicationEvent: {
+ prototype: MozApplicationEvent;
+ new(type: string, eventInitDict?: MozApplicationEventInit): MozApplicationEvent;
+ isInstance(obj): obj is MozApplicationEvent;
+};
+
+interface MozCanvasPrintState {
+ readonly context: nsISupports;
+ done(): void;
+}
+
+declare var MozCanvasPrintState: {
+ prototype: MozCanvasPrintState;
+ new(): MozCanvasPrintState;
+ isInstance(obj): obj is MozCanvasPrintState;
+};
+
+interface MozDocumentMatcher {
+ readonly allFrames: boolean;
+ readonly checkPermissions: boolean;
+ readonly excludeMatches: MatchPatternSet | null;
+ readonly extension: WebExtensionPolicy | null;
+ readonly frameID: number | null;
+ readonly matchAboutBlank: boolean;
+ readonly matches: MatchPatternSet;
+ readonly originAttributesPatterns: any;
+ matchesURI(uri: URI): boolean;
+ matchesWindowGlobal(windowGlobal: WindowGlobalChild, ignorePermissions?: boolean): boolean;
+}
+
+declare var MozDocumentMatcher: {
+ prototype: MozDocumentMatcher;
+ new(options: MozDocumentMatcherInit): MozDocumentMatcher;
+ isInstance(obj): obj is MozDocumentMatcher;
+};
+
+interface MozDocumentObserver {
+ disconnect(): void;
+ observe(matchers: MozDocumentMatcher[]): void;
+}
+
+declare var MozDocumentObserver: {
+ prototype: MozDocumentObserver;
+ new(callbacks: MozDocumentCallback): MozDocumentObserver;
+ isInstance(obj): obj is MozDocumentObserver;
+};
+
+interface MozEditableElement {
+ readonly editor: nsIEditor | null;
+ readonly hasEditor: boolean;
+ readonly isInputEventTarget: boolean;
+ setUserInput(input: string): void;
+}
+
+interface MozFrameLoaderOwner {
+ readonly browsingContext: BrowsingContext | null;
+ readonly frameLoader: FrameLoader | null;
+ changeRemoteness(aOptions: RemotenessOptions): void;
+ swapFrameLoaders(aOtherLoaderOwner: XULFrameElement): void;
+ swapFrameLoaders(aOtherLoaderOwner: HTMLIFrameElement): void;
+}
+
+interface MozImageLoadingContent {
+ readonly currentRequestFinalURI: URI | null;
+ readonly currentURI: URI | null;
+ loadingEnabled: boolean;
+ addObserver(aObserver: imgINotificationObserver): void;
+ forceReload(aNotify?: boolean): void;
+ getRequest(aRequestType: number): imgIRequest | null;
+ getRequestType(aRequest: imgIRequest): number;
+ removeObserver(aObserver: imgINotificationObserver): void;
+ readonly UNKNOWN_REQUEST: -1;
+ readonly CURRENT_REQUEST: 0;
+ readonly PENDING_REQUEST: 1;
+}
+
+interface MozObjectLoadingContent {
+ readonly actualType: string;
+ readonly displayedType: number;
+ readonly runID: number;
+ readonly srcURI: URI | null;
+ getContentTypeForMIMEType(aMimeType: string): number;
+ getPluginAttributes(): MozPluginParameter[];
+ getPluginParameters(): MozPluginParameter[];
+ reload(aClearActivation: boolean): void;
+ skipFakePlugins(): void;
+ readonly TYPE_LOADING: 0;
+ readonly TYPE_IMAGE: 1;
+ readonly TYPE_FALLBACK: 2;
+ readonly TYPE_FAKE_PLUGIN: 3;
+ readonly TYPE_DOCUMENT: 4;
+ readonly TYPE_NULL: 5;
+}
+
+interface MozObserver {
+}
+
+declare var MozObserver: {
+ prototype: MozObserver;
+ new(): MozObserver;
+ isInstance(obj): obj is MozObserver;
+};
+
+interface MozQueryInterface {
+}
+
+declare var MozQueryInterface: {
+ prototype: MozQueryInterface;
+ new(): MozQueryInterface;
+ isInstance(obj): obj is MozQueryInterface;
+};
+
+interface MozSharedMap extends EventTarget {
+ get(name: string): StructuredClonable;
+ has(name: string): boolean;
+ forEach(callbackfn: (value: StructuredClonable, key: string, parent: MozSharedMap) => void, thisArg?: any): void;
+}
+
+declare var MozSharedMap: {
+ prototype: MozSharedMap;
+ new(): MozSharedMap;
+ isInstance(obj): obj is MozSharedMap;
+};
+
+interface MozSharedMapChangeEvent extends Event {
+ readonly changedKeys: string[];
+}
+
+declare var MozSharedMapChangeEvent: {
+ prototype: MozSharedMapChangeEvent;
+ new(): MozSharedMapChangeEvent;
+ isInstance(obj): obj is MozSharedMapChangeEvent;
+};
+
+interface MozStorageAsyncStatementParams {
+ readonly length: number;
+ [index: number]: any;
+ [name: string]: any;
+}
+
+declare var MozStorageAsyncStatementParams: {
+ prototype: MozStorageAsyncStatementParams;
+ new(): MozStorageAsyncStatementParams;
+ isInstance(obj): obj is MozStorageAsyncStatementParams;
+};
+
+interface MozStorageStatementParams {
+ readonly length: number;
+ [index: number]: any;
+ [name: string]: any;
+}
+
+declare var MozStorageStatementParams: {
+ prototype: MozStorageStatementParams;
+ new(): MozStorageStatementParams;
+ isInstance(obj): obj is MozStorageStatementParams;
+};
+
+interface MozStorageStatementRow {
+ [name: string]: any;
+}
+
+declare var MozStorageStatementRow: {
+ prototype: MozStorageStatementRow;
+ new(): MozStorageStatementRow;
+ isInstance(obj): obj is MozStorageStatementRow;
+};
+
+interface MozWritableSharedMap extends MozSharedMap {
+ delete(name: string): void;
+ flush(): void;
+ set(name: string, value: StructuredClonable): void;
+}
+
+declare var MozWritableSharedMap: {
+ prototype: MozWritableSharedMap;
+ new(): MozWritableSharedMap;
+ isInstance(obj): obj is MozWritableSharedMap;
+};
+
+/**
+ * Provides event properties that are specific to modifications to the Document Object Model (DOM) hierarchy and nodes.
+ * @deprecated DOM4 [DOM] provides a new mechanism using a MutationObserver interface which addresses the use cases that mutation events solve, but in a more performant manner. Thus, this specification describes mutation events for reference and completeness of legacy behavior, but deprecates the use of the MutationEvent interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationEvent)
+ */
+interface MutationEvent extends Event {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationEvent/attrChange)
+ */
+ readonly attrChange: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationEvent/attrName)
+ */
+ readonly attrName: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationEvent/newValue)
+ */
+ readonly newValue: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationEvent/prevValue)
+ */
+ readonly prevValue: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationEvent/relatedNode)
+ */
+ readonly relatedNode: Node | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationEvent/initMutationEvent)
+ */
+ initMutationEvent(type: string, canBubble?: boolean, cancelable?: boolean, relatedNode?: Node | null, prevValue?: string, newValue?: string, attrName?: string, attrChange?: number): void;
+ readonly MODIFICATION: 1;
+ readonly ADDITION: 2;
+ readonly REMOVAL: 3;
+ readonly SMIL: 4;
+}
+
+/** @deprecated */
+declare var MutationEvent: {
+ prototype: MutationEvent;
+ new(): MutationEvent;
+ readonly MODIFICATION: 1;
+ readonly ADDITION: 2;
+ readonly REMOVAL: 3;
+ readonly SMIL: 4;
+ isInstance(obj): obj is MutationEvent;
+};
+
+/**
+ * Provides the ability to watch for changes being made to the DOM tree. It is designed as a replacement for the older Mutation Events feature which was part of the DOM3 Events specification.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationObserver)
+ */
+interface MutationObserver {
+ mergeAttributeRecords: boolean;
+ readonly mutationCallback: MutationCallback;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationObserver/disconnect) */
+ disconnect(): void;
+ getObservingInfo(): (MutationObservingInfo | null)[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationObserver/observe) */
+ observe(target: Node, options?: MutationObserverInit): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationObserver/takeRecords) */
+ takeRecords(): MutationRecord[];
+}
+
+declare var MutationObserver: {
+ prototype: MutationObserver;
+ new(mutationCallback: MutationCallback): MutationObserver;
+ isInstance(obj): obj is MutationObserver;
+};
+
+/**
+ * A MutationRecord represents an individual DOM mutation. It is the object that is passed to MutationObserver's callback.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord)
+ */
+interface MutationRecord {
+ readonly addedAnimations: Animation[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/addedNodes) */
+ readonly addedNodes: NodeList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/attributeName) */
+ readonly attributeName: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/attributeNamespace) */
+ readonly attributeNamespace: string | null;
+ readonly changedAnimations: Animation[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/nextSibling) */
+ readonly nextSibling: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/oldValue) */
+ readonly oldValue: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/previousSibling) */
+ readonly previousSibling: Node | null;
+ readonly removedAnimations: Animation[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/removedNodes) */
+ readonly removedNodes: NodeList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/target) */
+ readonly target: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/MutationRecord/type) */
+ readonly type: string;
+}
+
+declare var MutationRecord: {
+ prototype: MutationRecord;
+ new(): MutationRecord;
+ isInstance(obj): obj is MutationRecord;
+};
+
+/**
+ * A collection of Attr objects. Objects inside a NamedNodeMap are not in any particular order, unlike NodeList, although they may be accessed by an index as in an array.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap)
+ */
+interface NamedNodeMap {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/getNamedItem) */
+ getNamedItem(name: string): Attr | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/getNamedItemNS) */
+ getNamedItemNS(namespaceURI: string | null, localName: string): Attr | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/item) */
+ item(index: number): Attr | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/removeNamedItem) */
+ removeNamedItem(name: string): Attr;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/removeNamedItemNS) */
+ removeNamedItemNS(namespaceURI: string | null, localName: string): Attr;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/setNamedItem) */
+ setNamedItem(arg: Attr): Attr | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NamedNodeMap/setNamedItemNS) */
+ setNamedItemNS(arg: Attr): Attr | null;
+ [index: number]: Attr;
+}
+
+declare var NamedNodeMap: {
+ prototype: NamedNodeMap;
+ new(): NamedNodeMap;
+ isInstance(obj): obj is NamedNodeMap;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager)
+ */
+interface NavigationPreloadManager {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/disable) */
+ disable(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/enable) */
+ enable(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/getState) */
+ getState(): Promise<NavigationPreloadState>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigationPreloadManager/setHeaderValue) */
+ setHeaderValue(value: string): Promise<void>;
+}
+
+declare var NavigationPreloadManager: {
+ prototype: NavigationPreloadManager;
+ new(): NavigationPreloadManager;
+ isInstance(obj): obj is NavigationPreloadManager;
+};
+
+/**
+ * The state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator)
+ */
+interface Navigator extends GlobalPrivacyControl, NavigatorAutomationInformation, NavigatorConcurrentHardware, NavigatorContentUtils, NavigatorGPU, NavigatorGeolocation, NavigatorID, NavigatorLanguage, NavigatorLocks, NavigatorOnLine, NavigatorStorage {
+ /**
+ * @deprecated
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/activeVRDisplays)
+ */
+ readonly activeVRDisplays: VRDisplay[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/buildID) */
+ readonly buildID: string;
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/clipboard)
+ */
+ readonly clipboard: Clipboard;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/connection) */
+ readonly connection: NetworkInformation;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/cookieEnabled) */
+ readonly cookieEnabled: boolean;
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/credentials)
+ */
+ readonly credentials: CredentialsContainer;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/doNotTrack)
+ */
+ readonly doNotTrack: string;
+ readonly isWebVRContentDetected: boolean;
+ readonly isWebVRContentPresenting: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/maxTouchPoints) */
+ readonly maxTouchPoints: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/mediaCapabilities) */
+ readonly mediaCapabilities: MediaCapabilities;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/mediaDevices) */
+ readonly mediaDevices: MediaDevices;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/mediaSession) */
+ readonly mediaSession: MediaSession;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NavigatorPlugins/mimeTypes)
+ */
+ readonly mimeTypes: MimeTypeArray;
+ readonly mozAddonManager: AddonManager;
+ readonly mozTCPSocket: LegacyMozTCPSocket;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/oscpu)
+ */
+ readonly oscpu: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/pdfViewerEnabled) */
+ readonly pdfViewerEnabled: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/permissions) */
+ readonly permissions: Permissions;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/plugins)
+ */
+ readonly plugins: PluginArray;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/productSub)
+ */
+ readonly productSub: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/serviceWorker) */
+ readonly serviceWorker: ServiceWorkerContainer;
+ readonly testTrialGatedAttribute: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/userActivation) */
+ readonly userActivation: UserActivation;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/vendor)
+ */
+ readonly vendor: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/vendorSub)
+ */
+ readonly vendorSub: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/wakeLock) */
+ readonly wakeLock: WakeLock;
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/xr)
+ */
+ readonly xr: XRSystem;
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/canShare)
+ */
+ canShare(data?: ShareData): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/getAutoplayPolicy) */
+ getAutoplayPolicy(type: AutoplayPolicyMediaType): AutoplayPolicy;
+ getAutoplayPolicy(element: HTMLMediaElement): AutoplayPolicy;
+ getAutoplayPolicy(context: AudioContext): AutoplayPolicy;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/getBattery) */
+ getBattery(): Promise<BatteryManager>;
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/getGamepads)
+ */
+ getGamepads(): (Gamepad | null)[];
+ /**
+ * @deprecated
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/getVRDisplays)
+ */
+ getVRDisplays(): Promise<VRDisplay[]>;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/javaEnabled)
+ */
+ javaEnabled(): boolean;
+ /**
+ * @deprecated This is a legacy alias of `getUserMedia`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/getUserMedia)
+ */
+ mozGetUserMedia(constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void;
+ requestGamepadServiceTest(): GamepadServiceTest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/requestMIDIAccess) */
+ requestMIDIAccess(options?: MIDIOptions): Promise<MIDIAccess>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/requestMediaKeySystemAccess) */
+ requestMediaKeySystemAccess(keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]): Promise<MediaKeySystemAccess>;
+ requestVRPresentation(display: VRDisplay): void;
+ requestVRServiceTest(): VRServiceTest;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/sendBeacon) */
+ sendBeacon(url: string, data?: BodyInit | null): boolean;
+ setVibrationPermission(permitted: boolean, persistent?: boolean): void;
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/share)
+ */
+ share(data?: ShareData): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/vibrate) */
+ vibrate(duration: number): boolean;
+ vibrate(pattern: number[]): boolean;
+}
+
+declare var Navigator: {
+ prototype: Navigator;
+ new(): Navigator;
+ isInstance(obj): obj is Navigator;
+};
+
+interface NavigatorAutomationInformation {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/webdriver) */
+ readonly webdriver: boolean;
+}
+
+interface NavigatorConcurrentHardware {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/hardwareConcurrency) */
+ readonly hardwareConcurrency: number;
+}
+
+interface NavigatorContentUtils {
+ checkProtocolHandlerAllowed(scheme: string, handlerURI: URI, documentURI: URI): void;
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/registerProtocolHandler)
+ */
+ registerProtocolHandler(scheme: string, url: string): void;
+}
+
+interface NavigatorGPU {
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/gpu)
+ */
+ readonly gpu: GPU;
+}
+
+interface NavigatorGeolocation {
+ readonly geolocation: Geolocation;
+}
+
+interface NavigatorID {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appCodeName)
+ */
+ readonly appCodeName: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appName)
+ */
+ readonly appName: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/appVersion)
+ */
+ readonly appVersion: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/platform)
+ */
+ readonly platform: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/product)
+ */
+ readonly product: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/userAgent) */
+ readonly userAgent: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/taintEnabled)
+ */
+ taintEnabled(): boolean;
+}
+
+interface NavigatorLanguage {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/language) */
+ readonly language: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/languages) */
+ readonly languages: string[];
+}
+
+/** Available only in secure contexts. */
+interface NavigatorLocks {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/locks) */
+ readonly locks: LockManager;
+}
+
+interface NavigatorOnLine {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/onLine) */
+ readonly onLine: boolean;
+}
+
+/** Available only in secure contexts. */
+interface NavigatorStorage {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Navigator/storage) */
+ readonly storage: StorageManager;
+}
+
+interface NetworkInformationEventMap {
+ "typechange": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NetworkInformation) */
+interface NetworkInformation extends EventTarget {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NetworkInformation/typechange_event)
+ */
+ ontypechange: ((this: NetworkInformation, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NetworkInformation/type) */
+ readonly type: ConnectionType;
+ addEventListener<K extends keyof NetworkInformationEventMap>(type: K, listener: (this: NetworkInformation, ev: NetworkInformationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof NetworkInformationEventMap>(type: K, listener: (this: NetworkInformation, ev: NetworkInformationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var NetworkInformation: {
+ prototype: NetworkInformation;
+ new(): NetworkInformation;
+ isInstance(obj): obj is NetworkInformation;
+};
+
+/**
+ * Node is an interface from which a number of DOM API object types inherit. It allows those types to be treated similarly; for example, inheriting the same set of methods, or being tested in the same way.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node)
+ */
+interface Node extends EventTarget {
+ readonly accessibleNode: AccessibleNode | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/baseURI) */
+ readonly baseURI: string | null;
+ readonly baseURIObject: URI | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/childNodes) */
+ readonly childNodes: NodeList;
+ readonly containingShadowRoot: ShadowRoot | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/firstChild) */
+ readonly firstChild: Node | null;
+ readonly flattenedTreeParentNode: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/isConnected) */
+ readonly isConnected: boolean;
+ readonly isNativeAnonymous: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/lastChild) */
+ readonly lastChild: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/nextSibling) */
+ readonly nextSibling: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/nodeName) */
+ readonly nodeName: string;
+ readonly nodePrincipal: Principal;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/nodeType) */
+ readonly nodeType: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/nodeValue) */
+ nodeValue: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/ownerDocument) */
+ readonly ownerDocument: Document | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/parentElement) */
+ readonly parentElement: Element | null;
+ readonly parentFlexElement: Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/parentNode) */
+ readonly parentNode: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/previousSibling) */
+ readonly previousSibling: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/textContent) */
+ textContent: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/appendChild) */
+ appendChild(node: Node): Node;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/cloneNode) */
+ cloneNode(deep?: boolean): Node;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/compareDocumentPosition) */
+ compareDocumentPosition(other: Node): number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/contains) */
+ contains(other: Node | null): boolean;
+ generateXPath(): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/getRootNode) */
+ getRootNode(options?: GetRootNodeOptions): Node;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/hasChildNodes) */
+ hasChildNodes(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/insertBefore) */
+ insertBefore(node: Node, child: Node | null): Node;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/isDefaultNamespace) */
+ isDefaultNamespace(namespace: string | null): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/isEqualNode) */
+ isEqualNode(node: Node | null): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/isSameNode) */
+ isSameNode(node: Node | null): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/lookupNamespaceURI) */
+ lookupNamespaceURI(prefix: string | null): string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/lookupPrefix) */
+ lookupPrefix(namespace: string | null): string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/normalize) */
+ normalize(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/removeChild) */
+ removeChild(child: Node): Node;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/replaceChild) */
+ replaceChild(node: Node, child: Node): Node;
+ readonly ELEMENT_NODE: 1;
+ readonly ATTRIBUTE_NODE: 2;
+ readonly TEXT_NODE: 3;
+ readonly CDATA_SECTION_NODE: 4;
+ readonly ENTITY_REFERENCE_NODE: 5;
+ readonly ENTITY_NODE: 6;
+ readonly PROCESSING_INSTRUCTION_NODE: 7;
+ readonly COMMENT_NODE: 8;
+ readonly DOCUMENT_NODE: 9;
+ readonly DOCUMENT_TYPE_NODE: 10;
+ readonly DOCUMENT_FRAGMENT_NODE: 11;
+ readonly NOTATION_NODE: 12;
+ readonly DOCUMENT_POSITION_DISCONNECTED: 0x01;
+ readonly DOCUMENT_POSITION_PRECEDING: 0x02;
+ readonly DOCUMENT_POSITION_FOLLOWING: 0x04;
+ readonly DOCUMENT_POSITION_CONTAINS: 0x08;
+ readonly DOCUMENT_POSITION_CONTAINED_BY: 0x10;
+ readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20;
+}
+
+declare var Node: {
+ prototype: Node;
+ new(): Node;
+ readonly ELEMENT_NODE: 1;
+ readonly ATTRIBUTE_NODE: 2;
+ readonly TEXT_NODE: 3;
+ readonly CDATA_SECTION_NODE: 4;
+ readonly ENTITY_REFERENCE_NODE: 5;
+ readonly ENTITY_NODE: 6;
+ readonly PROCESSING_INSTRUCTION_NODE: 7;
+ readonly COMMENT_NODE: 8;
+ readonly DOCUMENT_NODE: 9;
+ readonly DOCUMENT_TYPE_NODE: 10;
+ readonly DOCUMENT_FRAGMENT_NODE: 11;
+ readonly NOTATION_NODE: 12;
+ readonly DOCUMENT_POSITION_DISCONNECTED: 0x01;
+ readonly DOCUMENT_POSITION_PRECEDING: 0x02;
+ readonly DOCUMENT_POSITION_FOLLOWING: 0x04;
+ readonly DOCUMENT_POSITION_CONTAINS: 0x08;
+ readonly DOCUMENT_POSITION_CONTAINED_BY: 0x10;
+ readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20;
+ isInstance(obj): obj is Node;
+};
+
+/**
+ * An iterator over the members of a list of the nodes in a subtree of the DOM. The nodes will be returned in document order.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator)
+ */
+interface NodeIterator {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/filter) */
+ readonly filter: NodeFilter | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/pointerBeforeReferenceNode) */
+ readonly pointerBeforeReferenceNode: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/referenceNode) */
+ readonly referenceNode: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/root) */
+ readonly root: Node;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/whatToShow) */
+ readonly whatToShow: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/detach)
+ */
+ detach(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/nextNode) */
+ nextNode(): Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeIterator/previousNode) */
+ previousNode(): Node | null;
+}
+
+declare var NodeIterator: {
+ prototype: NodeIterator;
+ new(): NodeIterator;
+ isInstance(obj): obj is NodeIterator;
+};
+
+/**
+ * NodeList objects are collections of nodes, usually returned by properties such as Node.childNodes and methods such as document.querySelectorAll().
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList)
+ */
+interface NodeList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/length) */
+ readonly length: number;
+ /**
+ * Performs the specified action for each node in an list.
+ * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the list.
+ * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
+ */
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/item) */
+ item(index: number): Node | null;
+ forEach(callbackfn: (value: Node | null, key: number, parent: NodeList) => void, thisArg?: any): void;
+ [index: number]: Node;
+}
+
+declare var NodeList: {
+ prototype: NodeList;
+ new(): NodeList;
+ isInstance(obj): obj is NodeList;
+};
+
+interface NodeListOf {
+ /**
+ * Performs the specified action for each node in an list.
+ * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the list.
+ * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
+ */
+}
+
+declare var NodeListOf: {
+ prototype: NodeListOf;
+ new(): NodeListOf;
+ isInstance(obj): obj is NodeListOf;
+};
+
+interface NonDocumentTypeChildNode {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/nextElementSibling) */
+ readonly nextElementSibling: Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/previousElementSibling) */
+ readonly previousElementSibling: Element | null;
+}
+
+interface NotificationEventMap {
+ "click": Event;
+ "close": Event;
+ "error": ErrorEvent;
+ "show": Event;
+}
+
+/**
+ * This Notifications API interface is used to configure and display desktop notifications to the user.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification)
+ */
+interface Notification extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/body) */
+ readonly body: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/data) */
+ readonly data: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/dir) */
+ readonly dir: NotificationDirection;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/icon) */
+ readonly icon: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/lang) */
+ readonly lang: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/click_event) */
+ onclick: ((this: Notification, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/close_event) */
+ onclose: ((this: Notification, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/error_event) */
+ onerror: OnErrorEventHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/show_event) */
+ onshow: ((this: Notification, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/requireInteraction) */
+ readonly requireInteraction: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/silent) */
+ readonly silent: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/tag) */
+ readonly tag: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/title) */
+ readonly title: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/vibrate) */
+ readonly vibrate: number[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/close) */
+ close(): void;
+ addEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof NotificationEventMap>(type: K, listener: (this: Notification, ev: NotificationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var Notification: {
+ prototype: Notification;
+ new(title: string, options?: NotificationOptions): Notification;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/permission_static) */
+ readonly permission: NotificationPermission;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Notification/requestPermission_static) */
+ requestPermission(permissionCallback?: NotificationPermissionCallback): Promise<NotificationPermission>;
+ isInstance(obj): obj is Notification;
+};
+
+/**
+ * The parameter passed into the onnotificationclick handler, the NotificationEvent interface represents a notification click event that is dispatched on the ServiceWorkerGlobalScope of a ServiceWorker.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NotificationEvent)
+ */
+interface NotificationEvent extends ExtendableEvent {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/NotificationEvent/notification) */
+ readonly notification: Notification;
+}
+
+declare var NotificationEvent: {
+ prototype: NotificationEvent;
+ new(type: string, eventInitDict: NotificationEventInit): NotificationEvent;
+ isInstance(obj): obj is NotificationEvent;
+};
+
+interface NotifyPaintEvent extends Event {
+ readonly boundingClientRect: DOMRect;
+ readonly clientRects: DOMRectList;
+ readonly paintRequests: PaintRequestList;
+ readonly paintTimeStamp: DOMHighResTimeStamp;
+ readonly transactionId: number;
+}
+
+declare var NotifyPaintEvent: {
+ prototype: NotifyPaintEvent;
+ new(): NotifyPaintEvent;
+ isInstance(obj): obj is NotifyPaintEvent;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed) */
+interface OES_draw_buffers_indexed {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendEquationSeparateiOES) */
+ blendEquationSeparateiOES(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendEquationiOES) */
+ blendEquationiOES(buf: GLuint, mode: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendFuncSeparateiOES) */
+ blendFuncSeparateiOES(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/blendFunciOES) */
+ blendFunciOES(buf: GLuint, src: GLenum, dst: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/colorMaskiOES) */
+ colorMaskiOES(buf: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/disableiOES) */
+ disableiOES(target: GLenum, index: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_draw_buffers_indexed/enableiOES) */
+ enableiOES(target: GLenum, index: GLuint): void;
+}
+
+/**
+ * The OES_element_index_uint extension is part of the WebGL API and adds support for gl.UNSIGNED_INT types to WebGLRenderingContext.drawElements().
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_element_index_uint)
+ */
+interface OES_element_index_uint {
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_fbo_render_mipmap) */
+interface OES_fbo_render_mipmap {
+}
+
+/**
+ * The OES_standard_derivatives extension is part of the WebGL API and adds the GLSL derivative functions dFdx, dFdy, and fwidth.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_standard_derivatives)
+ */
+interface OES_standard_derivatives {
+ readonly FRAGMENT_SHADER_DERIVATIVE_HINT_OES: 0x8B8B;
+}
+
+/**
+ * The OES_texture_float extension is part of the WebGL API and exposes floating-point pixel types for textures.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_float)
+ */
+interface OES_texture_float {
+}
+
+/**
+ * The OES_texture_float_linear extension is part of the WebGL API and allows linear filtering with floating-point pixel types for textures.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_float_linear)
+ */
+interface OES_texture_float_linear {
+}
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_half_float)
+ */
+interface OES_texture_half_float {
+ readonly HALF_FLOAT_OES: 0x8D61;
+}
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_texture_half_float_linear)
+ */
+interface OES_texture_half_float_linear {
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object) */
+interface OES_vertex_array_object {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/bindVertexArrayOES) */
+ bindVertexArrayOES(arrayObject: WebGLVertexArrayObject | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/createVertexArrayOES) */
+ createVertexArrayOES(): WebGLVertexArrayObject | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/deleteVertexArrayOES) */
+ deleteVertexArrayOES(arrayObject: WebGLVertexArrayObject | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OES_vertex_array_object/isVertexArrayOES) */
+ isVertexArrayOES(arrayObject: WebGLVertexArrayObject | null): GLboolean;
+ readonly VERTEX_ARRAY_BINDING_OES: 0x85B5;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OVR_multiview2) */
+interface OVR_multiview2 {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OVR_multiview2/framebufferTextureMultiviewOVR) */
+ framebufferTextureMultiviewOVR(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, baseViewIndex: GLint, numViews: GLsizei): void;
+ readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR: 0x9630;
+ readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR: 0x9632;
+ readonly MAX_VIEWS_OVR: 0x9631;
+ readonly FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: 0x9633;
+}
+
+/**
+ * The Web Audio API OfflineAudioCompletionEvent interface represents events that occur when the processing of an OfflineAudioContext is terminated. The complete event implements this interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioCompletionEvent)
+ */
+interface OfflineAudioCompletionEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioCompletionEvent/renderedBuffer) */
+ readonly renderedBuffer: AudioBuffer;
+}
+
+declare var OfflineAudioCompletionEvent: {
+ prototype: OfflineAudioCompletionEvent;
+ new(type: string, eventInitDict: OfflineAudioCompletionEventInit): OfflineAudioCompletionEvent;
+ isInstance(obj): obj is OfflineAudioCompletionEvent;
+};
+
+interface OfflineAudioContextEventMap extends BaseAudioContextEventMap {
+ "complete": Event;
+}
+
+/**
+ * An AudioContext interface representing an audio-processing graph built from linked together AudioNodes. In contrast with a standard AudioContext, an OfflineAudioContext doesn't render the audio to the device hardware; instead, it generates it, as fast as it can, and outputs the result to an AudioBuffer.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext)
+ */
+interface OfflineAudioContext extends BaseAudioContext {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/complete_event) */
+ oncomplete: ((this: OfflineAudioContext, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OfflineAudioContext/startRendering) */
+ startRendering(): Promise<AudioBuffer>;
+ addEventListener<K extends keyof OfflineAudioContextEventMap>(type: K, listener: (this: OfflineAudioContext, ev: OfflineAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof OfflineAudioContextEventMap>(type: K, listener: (this: OfflineAudioContext, ev: OfflineAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var OfflineAudioContext: {
+ prototype: OfflineAudioContext;
+ new(contextOptions: OfflineAudioContextOptions): OfflineAudioContext;
+ new(numberOfChannels: number, length: number, sampleRate: number): OfflineAudioContext;
+ isInstance(obj): obj is OfflineAudioContext;
+};
+
+interface OffscreenCanvasEventMap {
+ "contextlost": Event;
+ "contextrestored": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas) */
+interface OffscreenCanvas extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/height) */
+ height: number;
+ oncontextlost: ((this: OffscreenCanvas, ev: Event) => any) | null;
+ oncontextrestored: ((this: OffscreenCanvas, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/width) */
+ width: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/convertToBlob) */
+ convertToBlob(options?: ImageEncodeOptions): Promise<Blob>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/getContext) */
+ getContext(contextId: OffscreenRenderingContextId, contextOptions?: any): OffscreenRenderingContext | null;
+ /**
+ * @deprecated This is a legacy alias of `convertToBlob`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/convertToBlob)
+ */
+ toBlob(type?: string, encoderOptions?: any): Promise<Blob>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvas/transferToImageBitmap) */
+ transferToImageBitmap(): ImageBitmap;
+ addEventListener<K extends keyof OffscreenCanvasEventMap>(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof OffscreenCanvasEventMap>(type: K, listener: (this: OffscreenCanvas, ev: OffscreenCanvasEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var OffscreenCanvas: {
+ prototype: OffscreenCanvas;
+ new(width: number, height: number): OffscreenCanvas;
+ isInstance(obj): obj is OffscreenCanvas;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvasRenderingContext2D) */
+interface OffscreenCanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPathDrawingStyles, CanvasPathMethods, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform {
+ readonly canvas: OffscreenCanvas;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OffscreenCanvasRenderingContext2D/commit) */
+ commit(): void;
+}
+
+declare var OffscreenCanvasRenderingContext2D: {
+ prototype: OffscreenCanvasRenderingContext2D;
+ new(): OffscreenCanvasRenderingContext2D;
+ isInstance(obj): obj is OffscreenCanvasRenderingContext2D;
+};
+
+interface OnErrorEventHandlerForNodesEventMap {
+ "error": ErrorEvent;
+}
+
+interface OnErrorEventHandlerForNodes {
+ onerror: OnErrorEventHandler;
+ addEventListener<K extends keyof OnErrorEventHandlerForNodesEventMap>(type: K, listener: (this: OnErrorEventHandlerForNodes, ev: OnErrorEventHandlerForNodesEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof OnErrorEventHandlerForNodesEventMap>(type: K, listener: (this: OnErrorEventHandlerForNodes, ev: OnErrorEventHandlerForNodesEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+interface OnErrorEventHandlerForWindowEventMap {
+ "error": ErrorEvent;
+}
+
+interface OnErrorEventHandlerForWindow {
+ onerror: OnErrorEventHandler;
+ addEventListener<K extends keyof OnErrorEventHandlerForWindowEventMap>(type: K, listener: (this: OnErrorEventHandlerForWindow, ev: OnErrorEventHandlerForWindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof OnErrorEventHandlerForWindowEventMap>(type: K, listener: (this: OnErrorEventHandlerForWindow, ev: OnErrorEventHandlerForWindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+/**
+ * The OscillatorNode interface represents a periodic waveform, such as a sine wave. It is an AudioScheduledSourceNode audio-processing module that causes a specified frequency of a given wave to be created—in effect, a constant tone.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode)
+ */
+interface OscillatorNode extends AudioScheduledSourceNode, AudioNodePassThrough {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode/detune) */
+ readonly detune: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode/frequency) */
+ readonly frequency: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode/type) */
+ type: OscillatorType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/OscillatorNode/setPeriodicWave) */
+ setPeriodicWave(periodicWave: PeriodicWave): void;
+ addEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: OscillatorNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof AudioScheduledSourceNodeEventMap>(type: K, listener: (this: OscillatorNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var OscillatorNode: {
+ prototype: OscillatorNode;
+ new(context: BaseAudioContext, options?: OscillatorOptions): OscillatorNode;
+ isInstance(obj): obj is OscillatorNode;
+};
+
+/**
+ * The PageTransitionEvent is fired when a document is being loaded or unloaded.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PageTransitionEvent)
+ */
+interface PageTransitionEvent extends Event {
+ readonly inFrameSwap: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PageTransitionEvent/persisted) */
+ readonly persisted: boolean;
+}
+
+declare var PageTransitionEvent: {
+ prototype: PageTransitionEvent;
+ new(type: string, eventInitDict?: PageTransitionEventInit): PageTransitionEvent;
+ isInstance(obj): obj is PageTransitionEvent;
+};
+
+interface PaintRequest {
+ readonly clientRect: DOMRect;
+ readonly reason: string;
+}
+
+declare var PaintRequest: {
+ prototype: PaintRequest;
+ new(): PaintRequest;
+ isInstance(obj): obj is PaintRequest;
+};
+
+interface PaintRequestList {
+ readonly length: number;
+ item(index: number): PaintRequest | null;
+ [index: number]: PaintRequest;
+}
+
+declare var PaintRequestList: {
+ prototype: PaintRequestList;
+ new(): PaintRequestList;
+ isInstance(obj): obj is PaintRequestList;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaintWorkletGlobalScope) */
+interface PaintWorkletGlobalScope extends WorkletGlobalScope {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaintWorkletGlobalScope/registerPaint) */
+ registerPaint(name: string, paintCtor: VoidFunction): void;
+}
+
+declare var PaintWorkletGlobalScope: {
+ prototype: PaintWorkletGlobalScope;
+ new(): PaintWorkletGlobalScope;
+ isInstance(obj): obj is PaintWorkletGlobalScope;
+};
+
+/**
+ * A PannerNode always has exactly one input and one output: the input can be mono or stereo but the output is always stereo (2 channels); you can't have panning effects without at least two audio channels!
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode)
+ */
+interface PannerNode extends AudioNode, AudioNodePassThrough {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/coneInnerAngle) */
+ coneInnerAngle: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/coneOuterAngle) */
+ coneOuterAngle: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/coneOuterGain) */
+ coneOuterGain: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/distanceModel) */
+ distanceModel: DistanceModelType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/maxDistance) */
+ maxDistance: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/orientationX) */
+ readonly orientationX: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/orientationY) */
+ readonly orientationY: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/orientationZ) */
+ readonly orientationZ: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/panningModel) */
+ panningModel: PanningModelType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/positionX) */
+ readonly positionX: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/positionY) */
+ readonly positionY: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/positionZ) */
+ readonly positionZ: AudioParam;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/refDistance) */
+ refDistance: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/rolloffFactor) */
+ rolloffFactor: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/setOrientation)
+ */
+ setOrientation(x: number, y: number, z: number): void;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PannerNode/setPosition)
+ */
+ setPosition(x: number, y: number, z: number): void;
+}
+
+declare var PannerNode: {
+ prototype: PannerNode;
+ new(context: BaseAudioContext, options?: PannerOptions): PannerNode;
+ isInstance(obj): obj is PannerNode;
+};
+
+interface ParentNode {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/childElementCount) */
+ readonly childElementCount: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/children) */
+ readonly children: HTMLCollection;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/firstElementChild) */
+ readonly firstElementChild: Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/lastElementChild) */
+ readonly lastElementChild: Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/append) */
+ append(...nodes: (Node | string)[]): void;
+ getElementsByAttribute(name: string, value: string | null): HTMLCollection;
+ getElementsByAttributeNS(namespaceURI: string | null, name: string, value: string | null): HTMLCollection;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/prepend) */
+ prepend(...nodes: (Node | string)[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren) */
+ replaceChildren(...nodes: (Node | string)[]): void;
+}
+
+interface ParentProcessMessageManager extends MessageBroadcaster, GlobalProcessScriptLoader, ProcessScriptLoader {
+}
+
+declare var ParentProcessMessageManager: {
+ prototype: ParentProcessMessageManager;
+ new(): ParentProcessMessageManager;
+ isInstance(obj): obj is ParentProcessMessageManager;
+};
+
+/**
+ * This Canvas 2D API interface is used to declare a path that can then be used on a CanvasRenderingContext2D object. The path methods of the CanvasRenderingContext2D interface are also present on this interface, which gives you the convenience of being able to retain and replay your path whenever desired.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Path2D)
+ */
+interface Path2D extends CanvasPathMethods {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Path2D/addPath) */
+ addPath(path: Path2D, transform?: DOMMatrix2DInit): void;
+}
+
+declare var Path2D: {
+ prototype: Path2D;
+ new(): Path2D;
+ new(other: Path2D): Path2D;
+ new(pathString: string): Path2D;
+ isInstance(obj): obj is Path2D;
+};
+
+/**
+ * This Payment Request API interface is used to store shipping or payment address information.
+ * @deprecated
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentAddress)
+ */
+interface PaymentAddress {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentAddress/addressLine)
+ */
+ readonly addressLine: string[];
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentAddress/city)
+ */
+ readonly city: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentAddress/country)
+ */
+ readonly country: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentAddress/dependentLocality)
+ */
+ readonly dependentLocality: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentAddress/organization)
+ */
+ readonly organization: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentAddress/phone)
+ */
+ readonly phone: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentAddress/postalCode)
+ */
+ readonly postalCode: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentAddress/recipient)
+ */
+ readonly recipient: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentAddress/region)
+ */
+ readonly region: string;
+ readonly regionCode: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentAddress/sortingCode)
+ */
+ readonly sortingCode: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentAddress/toJSON)
+ */
+ toJSON(): any;
+}
+
+/** @deprecated */
+declare var PaymentAddress: {
+ prototype: PaymentAddress;
+ new(): PaymentAddress;
+ isInstance(obj): obj is PaymentAddress;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentMethodChangeEvent)
+ */
+interface PaymentMethodChangeEvent extends PaymentRequestUpdateEvent {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentMethodChangeEvent/methodDetails) */
+ readonly methodDetails: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentMethodChangeEvent/methodName) */
+ readonly methodName: string;
+}
+
+declare var PaymentMethodChangeEvent: {
+ prototype: PaymentMethodChangeEvent;
+ new(type: string, eventInitDict?: PaymentMethodChangeEventInit): PaymentMethodChangeEvent;
+ isInstance(obj): obj is PaymentMethodChangeEvent;
+};
+
+interface PaymentRequestEventMap {
+ "merchantvalidation": Event;
+ "paymentmethodchange": Event;
+ "shippingaddresschange": Event;
+ "shippingoptionchange": Event;
+}
+
+/**
+ * This Payment Request API interface is the primary access point into the API, and lets web content and apps accept payments from the end user.
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest)
+ */
+interface PaymentRequest extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/id) */
+ readonly id: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/merchantvalidation_event)
+ */
+ onmerchantvalidation: ((this: PaymentRequest, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/paymentmethodchange_event) */
+ onpaymentmethodchange: ((this: PaymentRequest, ev: Event) => any) | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/shippingaddresschange_event)
+ */
+ onshippingaddresschange: ((this: PaymentRequest, ev: Event) => any) | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/shippingoptionchange_event)
+ */
+ onshippingoptionchange: ((this: PaymentRequest, ev: Event) => any) | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/shippingAddress)
+ */
+ readonly shippingAddress: PaymentAddress | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/shippingOption)
+ */
+ readonly shippingOption: string | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/shippingType)
+ */
+ readonly shippingType: PaymentShippingType | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/abort) */
+ abort(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/canMakePayment) */
+ canMakePayment(): Promise<boolean>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequest/show) */
+ show(detailsPromise?: PaymentDetailsUpdate | PromiseLike<PaymentDetailsUpdate>): Promise<PaymentResponse>;
+ addEventListener<K extends keyof PaymentRequestEventMap>(type: K, listener: (this: PaymentRequest, ev: PaymentRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof PaymentRequestEventMap>(type: K, listener: (this: PaymentRequest, ev: PaymentRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var PaymentRequest: {
+ prototype: PaymentRequest;
+ new(methodData: PaymentMethodData[], details: PaymentDetailsInit, options?: PaymentOptions): PaymentRequest;
+ isInstance(obj): obj is PaymentRequest;
+};
+
+/**
+ * This Payment Request API interface enables a web page to update the details of a PaymentRequest in response to a user action.
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequestUpdateEvent)
+ */
+interface PaymentRequestUpdateEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequestUpdateEvent/updateWith) */
+ updateWith(detailsPromise: PaymentDetailsUpdate | PromiseLike<PaymentDetailsUpdate>): void;
+}
+
+declare var PaymentRequestUpdateEvent: {
+ prototype: PaymentRequestUpdateEvent;
+ new(type: string, eventInitDict?: PaymentRequestUpdateEventInit): PaymentRequestUpdateEvent;
+ isInstance(obj): obj is PaymentRequestUpdateEvent;
+};
+
+interface PaymentResponseEventMap {
+ "payerdetailchange": Event;
+}
+
+/**
+ * This Payment Request API interface is returned after a user selects a payment method and approves a payment request.
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse)
+ */
+interface PaymentResponse extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/details) */
+ readonly details: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/methodName) */
+ readonly methodName: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/payerdetailchange_event)
+ */
+ onpayerdetailchange: ((this: PaymentResponse, ev: Event) => any) | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/payerEmail)
+ */
+ readonly payerEmail: string | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/payerName)
+ */
+ readonly payerName: string | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/payerPhone)
+ */
+ readonly payerPhone: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/requestId) */
+ readonly requestId: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/shippingAddress)
+ */
+ readonly shippingAddress: PaymentAddress | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/shippingOption)
+ */
+ readonly shippingOption: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/complete) */
+ complete(result?: PaymentComplete): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/retry) */
+ retry(errorFields?: PaymentValidationErrors): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentResponse/toJSON) */
+ toJSON(): any;
+ addEventListener<K extends keyof PaymentResponseEventMap>(type: K, listener: (this: PaymentResponse, ev: PaymentResponseEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof PaymentResponseEventMap>(type: K, listener: (this: PaymentResponse, ev: PaymentResponseEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var PaymentResponse: {
+ prototype: PaymentResponse;
+ new(): PaymentResponse;
+ isInstance(obj): obj is PaymentResponse;
+};
+
+interface PeerConnectionImpl {
+ certificate: RTCCertificate;
+ readonly connectionState: RTCPeerConnectionState;
+ readonly currentLocalDescription: string;
+ readonly currentOfferer: boolean | null;
+ readonly currentRemoteDescription: string;
+ readonly fingerprint: string;
+ readonly iceConnectionState: RTCIceConnectionState;
+ readonly iceGatheringState: RTCIceGatheringState;
+ id: string;
+ peerIdentity: string;
+ readonly pendingLocalDescription: string;
+ readonly pendingOfferer: boolean | null;
+ readonly pendingRemoteDescription: string;
+ readonly privacyRequested: boolean;
+ readonly sctp: RTCSctpTransport | null;
+ readonly signalingState: RTCSignalingState;
+ addIceCandidate(candidate: string, mid: string, ufrag: string, level: number | null): void;
+ addTransceiver(init: RTCRtpTransceiverInit, kind: string, sendTrack: MediaStreamTrack | null, addTrackMagic: boolean): RTCRtpTransceiver;
+ chain(op: ChainedOperation): Promise<any>;
+ close(): void;
+ closeStreams(): void;
+ createAnswer(): void;
+ createDataChannel(label: string, protocol: string, type: number, ordered: boolean, maxTime: number, maxNum: number, externalNegotiated: boolean, stream: number): RTCDataChannel;
+ createOffer(options?: RTCOfferOptions): void;
+ createdSender(sender: RTCRtpSender): boolean;
+ disablePacketDump(level: number, type: mozPacketDumpType, sending: boolean): void;
+ enablePacketDump(level: number, type: mozPacketDumpType, sending: boolean): void;
+ getRemoteStreams(): MediaStream[];
+ getStats(selector: MediaStreamTrack | null): Promise<RTCStatsReport>;
+ getTransceivers(): RTCRtpTransceiver[];
+ initialize(observer: PeerConnectionObserver, window: Window): void;
+ onSetDescriptionError(): void;
+ onSetDescriptionSuccess(type: RTCSdpType, remote: boolean): Promise<void>;
+ pluginCrash(pluginId: number, name: string): boolean;
+ restartIce(): void;
+ restartIceNoRenegotiationNeeded(): void;
+ setConfiguration(config?: RTCConfiguration): void;
+ setLocalDescription(action: number, sdp: string): void;
+ setRemoteDescription(action: number, sdp: string): void;
+ updateNegotiationNeeded(): void;
+}
+
+declare var PeerConnectionImpl: {
+ prototype: PeerConnectionImpl;
+ new(): PeerConnectionImpl;
+ isInstance(obj): obj is PeerConnectionImpl;
+};
+
+interface PeerConnectionObserver {
+ fireNegotiationNeededEvent(): void;
+ fireStreamEvent(stream: MediaStream): void;
+ fireTrackEvent(receiver: RTCRtpReceiver, streams: MediaStream[]): void;
+ notifyDataChannel(channel: RTCDataChannel): void;
+ onAddIceCandidateError(error: PCErrorData): void;
+ onAddIceCandidateSuccess(): void;
+ onCreateAnswerError(error: PCErrorData): void;
+ onCreateAnswerSuccess(answer: string): void;
+ onCreateOfferError(error: PCErrorData): void;
+ onCreateOfferSuccess(offer: string): void;
+ onIceCandidate(level: number, mid: string, candidate: string, ufrag: string): void;
+ onPacket(level: number, type: mozPacketDumpType, sending: boolean, packet: ArrayBuffer): void;
+ onSetDescriptionError(error: PCErrorData): void;
+ onSetDescriptionSuccess(): void;
+ onStateChange(state: PCObserverStateType): void;
+}
+
+declare var PeerConnectionObserver: {
+ prototype: PeerConnectionObserver;
+ new(domPC: RTCPeerConnection): PeerConnectionObserver;
+ isInstance(obj): obj is PeerConnectionObserver;
+};
+
+interface PerformanceEventMap {
+ "resourcetimingbufferfull": Event;
+}
+
+/**
+ * Provides access to performance-related information for the current page. It's part of the High Resolution Time API, but is enhanced by the Performance Timeline API, the Navigation Timing API, the User Timing API, and the Resource Timing API.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance)
+ */
+interface Performance extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/eventCounts) */
+ readonly eventCounts: EventCounts;
+ readonly mozMemory: any;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/navigation)
+ */
+ readonly navigation: PerformanceNavigation;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/resourcetimingbufferfull_event) */
+ onresourcetimingbufferfull: ((this: Performance, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/timeOrigin) */
+ readonly timeOrigin: DOMHighResTimeStamp;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/timing)
+ */
+ readonly timing: PerformanceTiming;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearMarks) */
+ clearMarks(markName?: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearMeasures) */
+ clearMeasures(measureName?: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/clearResourceTimings) */
+ clearResourceTimings(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntries) */
+ getEntries(): PerformanceEntryList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntriesByName) */
+ getEntriesByName(name: string, entryType?: string): PerformanceEntryList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/getEntriesByType) */
+ getEntriesByType(entryType: string): PerformanceEntryList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/mark) */
+ mark(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/measure) */
+ measure(measureName: string, startOrMeasureOptions?: string | PerformanceMeasureOptions, endMark?: string): PerformanceMeasure;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/now) */
+ now(): DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/setResourceTimingBufferSize) */
+ setResourceTimingBufferSize(maxSize: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Performance/toJSON) */
+ toJSON(): any;
+ addEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof PerformanceEventMap>(type: K, listener: (this: Performance, ev: PerformanceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var Performance: {
+ prototype: Performance;
+ new(): Performance;
+ isInstance(obj): obj is Performance;
+};
+
+/**
+ * Encapsulates a single performance metric that is part of the performance timeline. A performance entry can be directly created by making a performance mark or measure (for example by calling the mark() method) at an explicit point in an application. Performance entries are also created in indirect ways such as loading a resource (such as an image).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry)
+ */
+interface PerformanceEntry {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/duration) */
+ readonly duration: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/entryType) */
+ readonly entryType: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/name) */
+ readonly name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/startTime) */
+ readonly startTime: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEntry/toJSON) */
+ toJSON(): any;
+}
+
+declare var PerformanceEntry: {
+ prototype: PerformanceEntry;
+ new(): PerformanceEntry;
+ isInstance(obj): obj is PerformanceEntry;
+};
+
+interface PerformanceEntryEvent extends Event {
+ readonly duration: DOMHighResTimeStamp;
+ readonly entryType: string;
+ readonly epoch: number;
+ readonly name: string;
+ readonly origin: string;
+ readonly startTime: DOMHighResTimeStamp;
+}
+
+declare var PerformanceEntryEvent: {
+ prototype: PerformanceEntryEvent;
+ new(type: string, eventInitDict?: PerformanceEntryEventInit): PerformanceEntryEvent;
+ isInstance(obj): obj is PerformanceEntryEvent;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming) */
+interface PerformanceEventTiming extends PerformanceEntry {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/cancelable) */
+ readonly cancelable: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/processingEnd) */
+ readonly processingEnd: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/processingStart) */
+ readonly processingStart: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/target) */
+ readonly target: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceEventTiming/toJSON) */
+ toJSON(): any;
+}
+
+declare var PerformanceEventTiming: {
+ prototype: PerformanceEventTiming;
+ new(): PerformanceEventTiming;
+ isInstance(obj): obj is PerformanceEventTiming;
+};
+
+/**
+ * PerformanceMark is an abstract interface for PerformanceEntry objects with an entryType of "mark". Entries of this type are created by calling performance.mark() to add a named DOMHighResTimeStamp (the mark) to the browser's performance timeline.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMark)
+ */
+interface PerformanceMark extends PerformanceEntry {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMark/detail) */
+ readonly detail: any;
+}
+
+declare var PerformanceMark: {
+ prototype: PerformanceMark;
+ new(markName: string, markOptions?: PerformanceMarkOptions): PerformanceMark;
+ isInstance(obj): obj is PerformanceMark;
+};
+
+/**
+ * PerformanceMeasure is an abstract interface for PerformanceEntry objects with an entryType of "measure". Entries of this type are created by calling performance.measure() to add a named DOMHighResTimeStamp (the measure) between two marks to the browser's performance timeline.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMeasure)
+ */
+interface PerformanceMeasure extends PerformanceEntry {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceMeasure/detail) */
+ readonly detail: any;
+}
+
+declare var PerformanceMeasure: {
+ prototype: PerformanceMeasure;
+ new(): PerformanceMeasure;
+ isInstance(obj): obj is PerformanceMeasure;
+};
+
+/**
+ * The legacy PerformanceNavigation interface represents information about how the navigation to the current document was done.
+ * @deprecated This interface is deprecated in the Navigation Timing Level 2 specification. Please use the PerformanceNavigationTiming interface instead.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigation)
+ */
+interface PerformanceNavigation {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigation/redirectCount)
+ */
+ readonly redirectCount: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigation/type)
+ */
+ readonly type: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigation/toJSON)
+ */
+ toJSON(): any;
+ readonly TYPE_NAVIGATE: 0;
+ readonly TYPE_RELOAD: 1;
+ readonly TYPE_BACK_FORWARD: 2;
+ readonly TYPE_RESERVED: 255;
+}
+
+/** @deprecated */
+declare var PerformanceNavigation: {
+ prototype: PerformanceNavigation;
+ new(): PerformanceNavigation;
+ readonly TYPE_NAVIGATE: 0;
+ readonly TYPE_RELOAD: 1;
+ readonly TYPE_BACK_FORWARD: 2;
+ readonly TYPE_RESERVED: 255;
+ isInstance(obj): obj is PerformanceNavigation;
+};
+
+/**
+ * Provides methods and properties to store and retrieve metrics regarding the browser's document navigation events. For example, this interface can be used to determine how much time it takes to load or unload a document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming)
+ */
+interface PerformanceNavigationTiming extends PerformanceResourceTiming {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/domComplete) */
+ readonly domComplete: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/domContentLoadedEventEnd) */
+ readonly domContentLoadedEventEnd: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/domContentLoadedEventStart) */
+ readonly domContentLoadedEventStart: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/domInteractive) */
+ readonly domInteractive: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/loadEventEnd) */
+ readonly loadEventEnd: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/loadEventStart) */
+ readonly loadEventStart: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/redirectCount) */
+ readonly redirectCount: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/type) */
+ readonly type: NavigationType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/unloadEventEnd) */
+ readonly unloadEventEnd: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/unloadEventStart) */
+ readonly unloadEventStart: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceNavigationTiming/toJSON) */
+ toJSON(): any;
+}
+
+declare var PerformanceNavigationTiming: {
+ prototype: PerformanceNavigationTiming;
+ new(): PerformanceNavigationTiming;
+ isInstance(obj): obj is PerformanceNavigationTiming;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver) */
+interface PerformanceObserver {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/disconnect) */
+ disconnect(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/observe) */
+ observe(options?: PerformanceObserverInit): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/takeRecords) */
+ takeRecords(): PerformanceEntryList;
+}
+
+declare var PerformanceObserver: {
+ prototype: PerformanceObserver;
+ new(callback: PerformanceObserverCallback): PerformanceObserver;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserver/supportedEntryTypes_static) */
+ readonly supportedEntryTypes: any;
+ isInstance(obj): obj is PerformanceObserver;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList) */
+interface PerformanceObserverEntryList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntries) */
+ getEntries(filter?: PerformanceEntryFilterOptions): PerformanceEntryList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntriesByName) */
+ getEntriesByName(name: string, entryType?: string): PerformanceEntryList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceObserverEntryList/getEntriesByType) */
+ getEntriesByType(entryType: string): PerformanceEntryList;
+}
+
+declare var PerformanceObserverEntryList: {
+ prototype: PerformanceObserverEntryList;
+ new(): PerformanceObserverEntryList;
+ isInstance(obj): obj is PerformanceObserverEntryList;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformancePaintTiming) */
+interface PerformancePaintTiming extends PerformanceEntry {
+}
+
+declare var PerformancePaintTiming: {
+ prototype: PerformancePaintTiming;
+ new(): PerformancePaintTiming;
+ isInstance(obj): obj is PerformancePaintTiming;
+};
+
+/**
+ * Enables retrieval and analysis of detailed network timing data regarding the loading of an application's resources. An application can use the timing metrics to determine, for example, the length of time it takes to fetch a specific resource, such as an XMLHttpRequest, <SVG>, image, or script.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming)
+ */
+interface PerformanceResourceTiming extends PerformanceEntry {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/connectEnd) */
+ readonly connectEnd: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/connectStart) */
+ readonly connectStart: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/decodedBodySize) */
+ readonly decodedBodySize: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/domainLookupEnd) */
+ readonly domainLookupEnd: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/domainLookupStart) */
+ readonly domainLookupStart: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/encodedBodySize) */
+ readonly encodedBodySize: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/fetchStart) */
+ readonly fetchStart: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/initiatorType) */
+ readonly initiatorType: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/nextHopProtocol) */
+ readonly nextHopProtocol: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/redirectEnd) */
+ readonly redirectEnd: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/redirectStart) */
+ readonly redirectStart: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/requestStart) */
+ readonly requestStart: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/responseEnd) */
+ readonly responseEnd: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/responseStart) */
+ readonly responseStart: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/secureConnectionStart) */
+ readonly secureConnectionStart: DOMHighResTimeStamp;
+ /**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/serverTiming)
+ */
+ readonly serverTiming: PerformanceServerTiming[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/transferSize) */
+ readonly transferSize: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/workerStart) */
+ readonly workerStart: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceResourceTiming/toJSON) */
+ toJSON(): any;
+}
+
+declare var PerformanceResourceTiming: {
+ prototype: PerformanceResourceTiming;
+ new(): PerformanceResourceTiming;
+ isInstance(obj): obj is PerformanceResourceTiming;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming)
+ */
+interface PerformanceServerTiming {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/description) */
+ readonly description: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/duration) */
+ readonly duration: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/name) */
+ readonly name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceServerTiming/toJSON) */
+ toJSON(): any;
+}
+
+declare var PerformanceServerTiming: {
+ prototype: PerformanceServerTiming;
+ new(): PerformanceServerTiming;
+ isInstance(obj): obj is PerformanceServerTiming;
+};
+
+/**
+ * A legacy interface kept for backwards compatibility and contains properties that offer performance timing information for various events which occur during the loading and use of the current page. You get a PerformanceTiming object describing your page using the window.performance.timing property.
+ * @deprecated This interface is deprecated in the Navigation Timing Level 2 specification. Please use the PerformanceNavigationTiming interface instead.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming)
+ */
+interface PerformanceTiming {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/connectEnd)
+ */
+ readonly connectEnd: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/connectStart)
+ */
+ readonly connectStart: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domComplete)
+ */
+ readonly domComplete: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domContentLoadedEventEnd)
+ */
+ readonly domContentLoadedEventEnd: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domContentLoadedEventStart)
+ */
+ readonly domContentLoadedEventStart: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domInteractive)
+ */
+ readonly domInteractive: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domLoading)
+ */
+ readonly domLoading: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domainLookupEnd)
+ */
+ readonly domainLookupEnd: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/domainLookupStart)
+ */
+ readonly domainLookupStart: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/fetchStart)
+ */
+ readonly fetchStart: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/loadEventEnd)
+ */
+ readonly loadEventEnd: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/loadEventStart)
+ */
+ readonly loadEventStart: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/navigationStart)
+ */
+ readonly navigationStart: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/redirectEnd)
+ */
+ readonly redirectEnd: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/redirectStart)
+ */
+ readonly redirectStart: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/requestStart)
+ */
+ readonly requestStart: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/responseEnd)
+ */
+ readonly responseEnd: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/responseStart)
+ */
+ readonly responseStart: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/secureConnectionStart)
+ */
+ readonly secureConnectionStart: number;
+ readonly timeToContentfulPaint: number;
+ readonly timeToDOMContentFlushed: number;
+ readonly timeToFirstInteractive: number;
+ readonly timeToNonBlankPaint: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/unloadEventEnd)
+ */
+ readonly unloadEventEnd: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/unloadEventStart)
+ */
+ readonly unloadEventStart: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PerformanceTiming/toJSON)
+ */
+ toJSON(): any;
+}
+
+/** @deprecated */
+declare var PerformanceTiming: {
+ prototype: PerformanceTiming;
+ new(): PerformanceTiming;
+ isInstance(obj): obj is PerformanceTiming;
+};
+
+/**
+ * PeriodicWave has no inputs or outputs; it is used to define custom oscillators when calling OscillatorNode.setPeriodicWave(). The PeriodicWave itself is created/returned by AudioContext.createPeriodicWave().
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PeriodicWave)
+ */
+interface PeriodicWave {
+}
+
+declare var PeriodicWave: {
+ prototype: PeriodicWave;
+ new(context: BaseAudioContext, options?: PeriodicWaveOptions): PeriodicWave;
+ isInstance(obj): obj is PeriodicWave;
+};
+
+interface PermissionStatusEventMap {
+ "change": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus) */
+interface PermissionStatus extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/name) */
+ readonly name: PermissionName;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/change_event) */
+ onchange: ((this: PermissionStatus, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PermissionStatus/state) */
+ readonly state: PermissionState;
+ addEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof PermissionStatusEventMap>(type: K, listener: (this: PermissionStatus, ev: PermissionStatusEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var PermissionStatus: {
+ prototype: PermissionStatus;
+ new(): PermissionStatus;
+ isInstance(obj): obj is PermissionStatus;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Permissions) */
+interface Permissions {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Permissions/query) */
+ query(permission: any): Promise<PermissionStatus>;
+}
+
+declare var Permissions: {
+ prototype: Permissions;
+ new(): Permissions;
+ isInstance(obj): obj is Permissions;
+};
+
+interface PlacesBookmark extends PlacesEvent {
+ readonly guid: string;
+ readonly id: number;
+ readonly isTagging: boolean;
+ readonly itemType: number;
+ readonly parentGuid: string;
+ readonly parentId: number;
+ readonly source: number;
+ readonly url: string;
+}
+
+declare var PlacesBookmark: {
+ prototype: PlacesBookmark;
+ new(): PlacesBookmark;
+ isInstance(obj): obj is PlacesBookmark;
+};
+
+interface PlacesBookmarkAddition extends PlacesBookmark {
+ readonly dateAdded: number;
+ readonly frecency: number;
+ readonly hidden: boolean;
+ readonly index: number;
+ readonly lastVisitDate: number | null;
+ readonly tags: string;
+ readonly targetFolderGuid: string;
+ readonly targetFolderItemId: number;
+ readonly targetFolderTitle: string;
+ readonly title: string;
+ readonly visitCount: number;
+}
+
+declare var PlacesBookmarkAddition: {
+ prototype: PlacesBookmarkAddition;
+ new(initDict: PlacesBookmarkAdditionInit): PlacesBookmarkAddition;
+ isInstance(obj): obj is PlacesBookmarkAddition;
+};
+
+interface PlacesBookmarkChanged extends PlacesBookmark {
+ readonly lastModified: number;
+}
+
+declare var PlacesBookmarkChanged: {
+ prototype: PlacesBookmarkChanged;
+ new(): PlacesBookmarkChanged;
+ isInstance(obj): obj is PlacesBookmarkChanged;
+};
+
+interface PlacesBookmarkGuid extends PlacesBookmarkChanged {
+}
+
+declare var PlacesBookmarkGuid: {
+ prototype: PlacesBookmarkGuid;
+ new(initDict: PlacesBookmarkGuidInit): PlacesBookmarkGuid;
+ isInstance(obj): obj is PlacesBookmarkGuid;
+};
+
+interface PlacesBookmarkKeyword extends PlacesBookmarkChanged {
+ readonly keyword: string;
+}
+
+declare var PlacesBookmarkKeyword: {
+ prototype: PlacesBookmarkKeyword;
+ new(initDict: PlacesBookmarkKeywordInit): PlacesBookmarkKeyword;
+ isInstance(obj): obj is PlacesBookmarkKeyword;
+};
+
+interface PlacesBookmarkMoved extends PlacesBookmark {
+ readonly dateAdded: number;
+ readonly frecency: number;
+ readonly hidden: boolean;
+ readonly index: number;
+ readonly lastVisitDate: number | null;
+ readonly oldIndex: number;
+ readonly oldParentGuid: string;
+ readonly tags: string;
+ readonly title: string;
+ readonly visitCount: number;
+}
+
+declare var PlacesBookmarkMoved: {
+ prototype: PlacesBookmarkMoved;
+ new(initDict: PlacesBookmarkMovedInit): PlacesBookmarkMoved;
+ isInstance(obj): obj is PlacesBookmarkMoved;
+};
+
+interface PlacesBookmarkRemoved extends PlacesBookmark {
+ readonly index: number;
+ readonly isDescendantRemoval: boolean;
+ readonly title: string;
+}
+
+declare var PlacesBookmarkRemoved: {
+ prototype: PlacesBookmarkRemoved;
+ new(initDict: PlacesBookmarkRemovedInit): PlacesBookmarkRemoved;
+ isInstance(obj): obj is PlacesBookmarkRemoved;
+};
+
+interface PlacesBookmarkTags extends PlacesBookmarkChanged {
+ readonly tags: string[];
+}
+
+declare var PlacesBookmarkTags: {
+ prototype: PlacesBookmarkTags;
+ new(initDict: PlacesBookmarkTagsInit): PlacesBookmarkTags;
+ isInstance(obj): obj is PlacesBookmarkTags;
+};
+
+interface PlacesBookmarkTime extends PlacesBookmarkChanged {
+ readonly dateAdded: number;
+}
+
+declare var PlacesBookmarkTime: {
+ prototype: PlacesBookmarkTime;
+ new(initDict: PlacesBookmarkTimeInit): PlacesBookmarkTime;
+ isInstance(obj): obj is PlacesBookmarkTime;
+};
+
+interface PlacesBookmarkTitle extends PlacesBookmarkChanged {
+ readonly title: string;
+}
+
+declare var PlacesBookmarkTitle: {
+ prototype: PlacesBookmarkTitle;
+ new(initDict: PlacesBookmarkTitleInit): PlacesBookmarkTitle;
+ isInstance(obj): obj is PlacesBookmarkTitle;
+};
+
+interface PlacesBookmarkUrl extends PlacesBookmarkChanged {
+}
+
+declare var PlacesBookmarkUrl: {
+ prototype: PlacesBookmarkUrl;
+ new(initDict: PlacesBookmarkUrlInit): PlacesBookmarkUrl;
+ isInstance(obj): obj is PlacesBookmarkUrl;
+};
+
+interface PlacesEvent {
+ readonly type: PlacesEventType;
+}
+
+declare var PlacesEvent: {
+ prototype: PlacesEvent;
+ new(): PlacesEvent;
+ isInstance(obj): obj is PlacesEvent;
+};
+
+interface PlacesFavicon extends PlacesEvent {
+ readonly faviconUrl: string;
+ readonly pageGuid: string;
+ readonly url: string;
+}
+
+declare var PlacesFavicon: {
+ prototype: PlacesFavicon;
+ new(initDict: PlacesFaviconInit): PlacesFavicon;
+ isInstance(obj): obj is PlacesFavicon;
+};
+
+interface PlacesHistoryCleared extends PlacesEvent {
+}
+
+declare var PlacesHistoryCleared: {
+ prototype: PlacesHistoryCleared;
+ new(): PlacesHistoryCleared;
+ isInstance(obj): obj is PlacesHistoryCleared;
+};
+
+interface PlacesPurgeCaches extends PlacesEvent {
+}
+
+declare var PlacesPurgeCaches: {
+ prototype: PlacesPurgeCaches;
+ new(): PlacesPurgeCaches;
+ isInstance(obj): obj is PlacesPurgeCaches;
+};
+
+interface PlacesRanking extends PlacesEvent {
+}
+
+declare var PlacesRanking: {
+ prototype: PlacesRanking;
+ new(): PlacesRanking;
+ isInstance(obj): obj is PlacesRanking;
+};
+
+interface PlacesVisit extends PlacesEvent {
+ readonly frecency: number;
+ readonly hidden: boolean;
+ readonly lastKnownTitle: string | null;
+ readonly pageGuid: string;
+ readonly referringVisitId: number;
+ readonly transitionType: number;
+ readonly typedCount: number;
+ readonly url: string;
+ readonly visitCount: number;
+ readonly visitId: number;
+ readonly visitTime: number;
+}
+
+declare var PlacesVisit: {
+ prototype: PlacesVisit;
+ new(): PlacesVisit;
+ isInstance(obj): obj is PlacesVisit;
+};
+
+interface PlacesVisitRemoved extends PlacesEvent {
+ readonly isPartialVisistsRemoval: boolean;
+ readonly isRemovedFromStore: boolean;
+ readonly pageGuid: string;
+ readonly reason: number;
+ readonly transitionType: number;
+ readonly url: string;
+ readonly REASON_DELETED: 0;
+ readonly REASON_EXPIRED: 1;
+}
+
+declare var PlacesVisitRemoved: {
+ prototype: PlacesVisitRemoved;
+ new(initDict: PlacesVisitRemovedInit): PlacesVisitRemoved;
+ readonly REASON_DELETED: 0;
+ readonly REASON_EXPIRED: 1;
+ isInstance(obj): obj is PlacesVisitRemoved;
+};
+
+interface PlacesVisitTitle extends PlacesEvent {
+ readonly pageGuid: string;
+ readonly title: string;
+ readonly url: string;
+}
+
+declare var PlacesVisitTitle: {
+ prototype: PlacesVisitTitle;
+ new(initDict: PlacesVisitTitleInit): PlacesVisitTitle;
+ isInstance(obj): obj is PlacesVisitTitle;
+};
+
+interface PlacesWeakCallbackWrapper {
+}
+
+declare var PlacesWeakCallbackWrapper: {
+ prototype: PlacesWeakCallbackWrapper;
+ new(callback: PlacesEventCallback): PlacesWeakCallbackWrapper;
+ isInstance(obj): obj is PlacesWeakCallbackWrapper;
+};
+
+/**
+ * Provides information about a browser plugin.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Plugin)
+ */
+interface Plugin {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Plugin/description)
+ */
+ readonly description: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Plugin/filename)
+ */
+ readonly filename: string;
+ /** @deprecated */
+ readonly length: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Plugin/name)
+ */
+ readonly name: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Plugin/item)
+ */
+ item(index: number): MimeType | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Plugin/namedItem)
+ */
+ namedItem(name: string): MimeType | null;
+ [index: number]: MimeType;
+}
+
+/** @deprecated */
+declare var Plugin: {
+ prototype: Plugin;
+ new(): Plugin;
+ isInstance(obj): obj is Plugin;
+};
+
+/**
+ * Used to store a list of Plugin objects describing the available plugins; it's returned by the window.navigator.plugins property. The PluginArray is not a JavaScript array, but has the length property and supports accessing individual items using bracket notation (plugins[2]), as well as via item(index) and namedItem("name") methods.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PluginArray)
+ */
+interface PluginArray {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PluginArray/length)
+ */
+ readonly length: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PluginArray/item)
+ */
+ item(index: number): Plugin | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PluginArray/namedItem)
+ */
+ namedItem(name: string): Plugin | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PluginArray/refresh)
+ */
+ refresh(): void;
+ [index: number]: Plugin;
+}
+
+/** @deprecated */
+declare var PluginArray: {
+ prototype: PluginArray;
+ new(): PluginArray;
+ isInstance(obj): obj is PluginArray;
+};
+
+interface PluginCrashedEvent extends Event {
+ readonly gmpPlugin: boolean;
+ readonly pluginDumpID: string;
+ readonly pluginFilename: string | null;
+ readonly pluginID: number;
+ readonly pluginName: string;
+ readonly submittedCrashReport: boolean;
+}
+
+declare var PluginCrashedEvent: {
+ prototype: PluginCrashedEvent;
+ new(type: string, eventInitDict?: PluginCrashedEventInit): PluginCrashedEvent;
+ isInstance(obj): obj is PluginCrashedEvent;
+};
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent)
+ */
+interface PointerEvent extends MouseEvent {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/height) */
+ readonly height: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/isPrimary) */
+ readonly isPrimary: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/pointerId) */
+ readonly pointerId: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/pointerType) */
+ readonly pointerType: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/pressure) */
+ readonly pressure: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/tangentialPressure) */
+ readonly tangentialPressure: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/tiltX) */
+ readonly tiltX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/tiltY) */
+ readonly tiltY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/twist) */
+ readonly twist: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/width) */
+ readonly width: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/getCoalescedEvents) */
+ getCoalescedEvents(): PointerEvent[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PointerEvent/getPredictedEvents) */
+ getPredictedEvents(): PointerEvent[];
+}
+
+declare var PointerEvent: {
+ prototype: PointerEvent;
+ new(type: string, eventInitDict?: PointerEventInit): PointerEvent;
+ isInstance(obj): obj is PointerEvent;
+};
+
+/**
+ * PopStateEvent is an event handler for the popstate event on the window.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PopStateEvent)
+ */
+interface PopStateEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PopStateEvent/state) */
+ readonly state: any;
+}
+
+declare var PopStateEvent: {
+ prototype: PopStateEvent;
+ new(type: string, eventInitDict?: PopStateEventInit): PopStateEvent;
+ isInstance(obj): obj is PopStateEvent;
+};
+
+interface PopoverInvokerElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/popoverTargetAction) */
+ popoverTargetAction: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLButtonElement/popoverTargetElement) */
+ popoverTargetElement: Element | null;
+}
+
+interface PopupBlockedEvent extends Event {
+ readonly popupWindowFeatures: string | null;
+ readonly popupWindowName: string | null;
+ readonly popupWindowURI: URI | null;
+ readonly requestingWindow: Window | null;
+}
+
+declare var PopupBlockedEvent: {
+ prototype: PopupBlockedEvent;
+ new(type: string, eventInitDict?: PopupBlockedEventInit): PopupBlockedEvent;
+ isInstance(obj): obj is PopupBlockedEvent;
+};
+
+interface PopupPositionedEvent extends Event {
+ readonly alignmentOffset: number;
+ readonly alignmentPosition: string;
+ readonly isAnchored: boolean;
+ readonly popupAlignment: string;
+}
+
+declare var PopupPositionedEvent: {
+ prototype: PopupPositionedEvent;
+ new(type: string, init?: PopupPositionedEventInit): PopupPositionedEvent;
+ isInstance(obj): obj is PopupPositionedEvent;
+};
+
+interface PositionStateEvent extends Event {
+ readonly duration: number;
+ readonly playbackRate: number;
+ readonly position: number;
+}
+
+declare var PositionStateEvent: {
+ prototype: PositionStateEvent;
+ new(type: string, eventInitDict?: PositionStateEventInit): PositionStateEvent;
+ isInstance(obj): obj is PositionStateEvent;
+};
+
+interface PrecompiledScript {
+ readonly hasReturnValue: boolean;
+ readonly url: string;
+ executeInGlobal(global: any, options?: ExecuteInGlobalOptions): any;
+}
+
+declare var PrecompiledScript: {
+ prototype: PrecompiledScript;
+ new(): PrecompiledScript;
+ isInstance(obj): obj is PrecompiledScript;
+};
+
+interface ProcessMessageManager extends MessageSender, ProcessScriptLoader {
+ readonly isInProcess: boolean;
+ readonly osPid: number;
+}
+
+declare var ProcessMessageManager: {
+ prototype: ProcessMessageManager;
+ new(): ProcessMessageManager;
+ isInstance(obj): obj is ProcessMessageManager;
+};
+
+interface ProcessScriptLoader {
+ getDelayedProcessScripts(): any[][];
+ loadProcessScript(url: string, allowDelayedLoad: boolean): void;
+ removeDelayedProcessScript(url: string): void;
+}
+
+/**
+ * A processing instruction embeds application-specific instructions in XML which can be ignored by other applications that don't recognize them.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProcessingInstruction)
+ */
+interface ProcessingInstruction extends CharacterData, LinkStyle {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProcessingInstruction/target) */
+ readonly target: string;
+}
+
+declare var ProcessingInstruction: {
+ prototype: ProcessingInstruction;
+ new(): ProcessingInstruction;
+ isInstance(obj): obj is ProcessingInstruction;
+};
+
+/**
+ * Events measuring progress of an underlying process, like an HTTP request (for an XMLHttpRequest, or the loading of the underlying resource of an <img>, <audio>, <video>, <style> or <link>).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent)
+ */
+interface ProgressEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/lengthComputable) */
+ readonly lengthComputable: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/loaded) */
+ readonly loaded: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ProgressEvent/total) */
+ readonly total: number;
+}
+
+declare var ProgressEvent: {
+ prototype: ProgressEvent;
+ new(type: string, eventInitDict?: ProgressEventInit): ProgressEvent;
+ isInstance(obj): obj is ProgressEvent;
+};
+
+interface PromiseNativeHandler {
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent) */
+interface PromiseRejectionEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent/promise) */
+ readonly promise: Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PromiseRejectionEvent/reason) */
+ readonly reason: any;
+}
+
+declare var PromiseRejectionEvent: {
+ prototype: PromiseRejectionEvent;
+ new(type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent;
+ isInstance(obj): obj is PromiseRejectionEvent;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential)
+ */
+interface PublicKeyCredential extends Credential {
+ readonly authenticatorAttachment: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/rawId) */
+ readonly rawId: ArrayBuffer;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/response) */
+ readonly response: AuthenticatorResponse;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/getClientExtensionResults) */
+ getClientExtensionResults(): AuthenticationExtensionsClientOutputs;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/toJSON) */
+ toJSON(): any;
+}
+
+declare var PublicKeyCredential: {
+ prototype: PublicKeyCredential;
+ new(): PublicKeyCredential;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/isConditionalMediationAvailable) */
+ isConditionalMediationAvailable(): Promise<boolean>;
+ isExternalCTAP2SecurityKeySupported(): Promise<boolean>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/isUserVerifyingPlatformAuthenticatorAvailable_static) */
+ isUserVerifyingPlatformAuthenticatorAvailable(): Promise<boolean>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/parseCreationOptionsFromJSON_static) */
+ parseCreationOptionsFromJSON(options: PublicKeyCredentialCreationOptionsJSON): PublicKeyCredentialCreationOptions;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential/parseRequestOptionsFromJSON_static) */
+ parseRequestOptionsFromJSON(options: PublicKeyCredentialRequestOptionsJSON): PublicKeyCredentialRequestOptions;
+ isInstance(obj): obj is PublicKeyCredential;
+};
+
+/**
+ * This Push API interface represents a push message that has been received. This event is sent to the global scope of a ServiceWorker. It contains the information sent from an application server to a PushSubscription.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushEvent)
+ */
+interface PushEvent extends ExtendableEvent {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushEvent/data) */
+ readonly data: PushMessageData | null;
+}
+
+declare var PushEvent: {
+ prototype: PushEvent;
+ new(type: string, eventInitDict?: PushEventInit): PushEvent;
+ isInstance(obj): obj is PushEvent;
+};
+
+/**
+ * This Push API interface provides a way to receive notifications from third-party servers as well as request URLs for push notifications.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager)
+ */
+interface PushManager {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/getSubscription) */
+ getSubscription(): Promise<PushSubscription | null>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/permissionState) */
+ permissionState(options?: PushSubscriptionOptionsInit): Promise<PermissionState>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushManager/subscribe) */
+ subscribe(options?: PushSubscriptionOptionsInit): Promise<PushSubscription>;
+}
+
+declare var PushManager: {
+ prototype: PushManager;
+ new(scope: string): PushManager;
+ isInstance(obj): obj is PushManager;
+};
+
+interface PushManagerImpl {
+ getSubscription(): Promise<PushSubscription | null>;
+ permissionState(options?: PushSubscriptionOptionsInit): Promise<PermissionState>;
+ subscribe(options?: PushSubscriptionOptionsInit): Promise<PushSubscription>;
+}
+
+declare var PushManagerImpl: {
+ prototype: PushManagerImpl;
+ new(scope: string): PushManagerImpl;
+ isInstance(obj): obj is PushManagerImpl;
+};
+
+/**
+ * This Push API interface provides methods which let you retrieve the push data sent by a server in various formats.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData)
+ */
+interface PushMessageData {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData/arrayBuffer) */
+ arrayBuffer(): ArrayBuffer;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData/blob) */
+ blob(): Blob;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData/json) */
+ json(): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushMessageData/text) */
+ text(): string;
+}
+
+declare var PushMessageData: {
+ prototype: PushMessageData;
+ new(): PushMessageData;
+ isInstance(obj): obj is PushMessageData;
+};
+
+/**
+ * This Push API interface provides a subcription's URL endpoint and allows unsubscription from a push service.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription)
+ */
+interface PushSubscription {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/endpoint) */
+ readonly endpoint: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/expirationTime) */
+ readonly expirationTime: EpochTimeStamp | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/options) */
+ readonly options: PushSubscriptionOptions;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/getKey) */
+ getKey(name: PushEncryptionKeyName): ArrayBuffer | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/toJSON) */
+ toJSON(): PushSubscriptionJSON;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscription/unsubscribe) */
+ unsubscribe(): Promise<boolean>;
+}
+
+declare var PushSubscription: {
+ prototype: PushSubscription;
+ new(initDict: PushSubscriptionInit): PushSubscription;
+ isInstance(obj): obj is PushSubscription;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscriptionOptions) */
+interface PushSubscriptionOptions {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/PushSubscriptionOptions/applicationServerKey) */
+ readonly applicationServerKey: ArrayBuffer | null;
+}
+
+declare var PushSubscriptionOptions: {
+ prototype: PushSubscriptionOptions;
+ new(): PushSubscriptionOptions;
+ isInstance(obj): obj is PushSubscriptionOptions;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCCertificate) */
+interface RTCCertificate {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCCertificate/expires) */
+ readonly expires: DOMTimeStamp;
+}
+
+declare var RTCCertificate: {
+ prototype: RTCCertificate;
+ new(): RTCCertificate;
+ isInstance(obj): obj is RTCCertificate;
+};
+
+interface RTCDTMFSenderEventMap {
+ "tonechange": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender) */
+interface RTCDTMFSender extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/tonechange_event) */
+ ontonechange: ((this: RTCDTMFSender, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/toneBuffer) */
+ readonly toneBuffer: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/insertDTMF) */
+ insertDTMF(tones: string, duration?: number, interToneGap?: number): void;
+ addEventListener<K extends keyof RTCDTMFSenderEventMap>(type: K, listener: (this: RTCDTMFSender, ev: RTCDTMFSenderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof RTCDTMFSenderEventMap>(type: K, listener: (this: RTCDTMFSender, ev: RTCDTMFSenderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var RTCDTMFSender: {
+ prototype: RTCDTMFSender;
+ new(): RTCDTMFSender;
+ isInstance(obj): obj is RTCDTMFSender;
+};
+
+/**
+ * Events sent to indicate that DTMF tones have started or finished playing. This interface is used by the tonechange event.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFToneChangeEvent)
+ */
+interface RTCDTMFToneChangeEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFToneChangeEvent/tone) */
+ readonly tone: string;
+}
+
+declare var RTCDTMFToneChangeEvent: {
+ prototype: RTCDTMFToneChangeEvent;
+ new(type: string, eventInitDict?: RTCDTMFToneChangeEventInit): RTCDTMFToneChangeEvent;
+ isInstance(obj): obj is RTCDTMFToneChangeEvent;
+};
+
+interface RTCDataChannelEventMap {
+ "bufferedamountlow": Event;
+ "close": Event;
+ "error": ErrorEvent;
+ "message": Event;
+ "open": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel) */
+interface RTCDataChannel extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/binaryType) */
+ binaryType: RTCDataChannelType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/bufferedAmount) */
+ readonly bufferedAmount: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/bufferedAmountLowThreshold) */
+ bufferedAmountLowThreshold: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/id) */
+ readonly id: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/label) */
+ readonly label: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/maxPacketLifeTime) */
+ readonly maxPacketLifeTime: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/maxRetransmits) */
+ readonly maxRetransmits: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/negotiated) */
+ readonly negotiated: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/bufferedamountlow_event) */
+ onbufferedamountlow: ((this: RTCDataChannel, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/close_event) */
+ onclose: ((this: RTCDataChannel, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/error_event) */
+ onerror: OnErrorEventHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/message_event) */
+ onmessage: ((this: RTCDataChannel, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/open_event) */
+ onopen: ((this: RTCDataChannel, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/ordered) */
+ readonly ordered: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/protocol) */
+ readonly protocol: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/readyState) */
+ readonly readyState: RTCDataChannelState;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/reliable)
+ */
+ readonly reliable: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/close) */
+ close(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannel/send) */
+ send(data: string): void;
+ send(data: Blob): void;
+ send(data: ArrayBuffer): void;
+ send(data: ArrayBufferView): void;
+ addEventListener<K extends keyof RTCDataChannelEventMap>(type: K, listener: (this: RTCDataChannel, ev: RTCDataChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof RTCDataChannelEventMap>(type: K, listener: (this: RTCDataChannel, ev: RTCDataChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var RTCDataChannel: {
+ prototype: RTCDataChannel;
+ new(): RTCDataChannel;
+ isInstance(obj): obj is RTCDataChannel;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannelEvent) */
+interface RTCDataChannelEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDataChannelEvent/channel) */
+ readonly channel: RTCDataChannel;
+}
+
+declare var RTCDataChannelEvent: {
+ prototype: RTCDataChannelEvent;
+ new(type: string, eventInitDict: RTCDataChannelEventInit): RTCDataChannelEvent;
+ isInstance(obj): obj is RTCDataChannelEvent;
+};
+
+interface RTCDtlsTransportEventMap {
+ "statechange": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDtlsTransport) */
+interface RTCDtlsTransport extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDtlsTransport/statechange_event) */
+ onstatechange: ((this: RTCDtlsTransport, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDtlsTransport/state) */
+ readonly state: RTCDtlsTransportState;
+ addEventListener<K extends keyof RTCDtlsTransportEventMap>(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof RTCDtlsTransportEventMap>(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var RTCDtlsTransport: {
+ prototype: RTCDtlsTransport;
+ new(): RTCDtlsTransport;
+ isInstance(obj): obj is RTCDtlsTransport;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame) */
+interface RTCEncodedAudioFrame {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/data) */
+ data: ArrayBuffer;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/timestamp) */
+ readonly timestamp: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/getMetadata) */
+ getMetadata(): RTCEncodedAudioFrameMetadata;
+}
+
+declare var RTCEncodedAudioFrame: {
+ prototype: RTCEncodedAudioFrame;
+ new(): RTCEncodedAudioFrame;
+ isInstance(obj): obj is RTCEncodedAudioFrame;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame) */
+interface RTCEncodedVideoFrame {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/data) */
+ data: ArrayBuffer;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/timestamp) */
+ readonly timestamp: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/type) */
+ readonly type: RTCEncodedVideoFrameType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/getMetadata) */
+ getMetadata(): RTCEncodedVideoFrameMetadata;
+}
+
+declare var RTCEncodedVideoFrame: {
+ prototype: RTCEncodedVideoFrame;
+ new(): RTCEncodedVideoFrame;
+ isInstance(obj): obj is RTCEncodedVideoFrame;
+};
+
+/**
+ * The RTCIceCandidate interface—part of the WebRTC API—represents a candidate Internet Connectivity Establishment (ICE) configuration which may be used to establish an RTCPeerConnection.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate)
+ */
+interface RTCIceCandidate {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/candidate) */
+ candidate: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/sdpMLineIndex) */
+ sdpMLineIndex: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/sdpMid) */
+ sdpMid: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/usernameFragment) */
+ usernameFragment: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCIceCandidate/toJSON) */
+ toJSON(): any;
+}
+
+declare var RTCIceCandidate: {
+ prototype: RTCIceCandidate;
+ new(candidateInitDict?: RTCIceCandidateInit): RTCIceCandidate;
+ isInstance(obj): obj is RTCIceCandidate;
+};
+
+interface RTCIdentityProviderRegistrar {
+ readonly hasIdp: boolean;
+ generateAssertion(contents: string, origin: string, options?: RTCIdentityProviderOptions): Promise<RTCIdentityAssertionResult>;
+ register(idp: RTCIdentityProvider): void;
+ validateAssertion(assertion: string, origin: string): Promise<RTCIdentityValidationResult>;
+}
+
+interface RTCPeerConnectionEventMap {
+ "addstream": Event;
+ "addtrack": Event;
+ "connectionstatechange": Event;
+ "datachannel": Event;
+ "icecandidate": Event;
+ "iceconnectionstatechange": Event;
+ "icegatheringstatechange": Event;
+ "negotiationneeded": Event;
+ "signalingstatechange": Event;
+ "track": Event;
+}
+
+/**
+ * A WebRTC connection between the local computer and a remote peer. It provides methods to connect to a remote peer, maintain and monitor the connection, and close the connection once it's no longer needed.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection)
+ */
+interface RTCPeerConnection extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/canTrickleIceCandidates) */
+ readonly canTrickleIceCandidates: boolean | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/connectionState) */
+ readonly connectionState: RTCPeerConnectionState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/currentLocalDescription) */
+ readonly currentLocalDescription: RTCSessionDescription | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/currentRemoteDescription) */
+ readonly currentRemoteDescription: RTCSessionDescription | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/iceConnectionState) */
+ readonly iceConnectionState: RTCIceConnectionState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/iceGatheringState) */
+ readonly iceGatheringState: RTCIceGatheringState;
+ id: string;
+ readonly idpLoginUrl: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/localDescription) */
+ readonly localDescription: RTCSessionDescription | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addstream_event)
+ */
+ onaddstream: ((this: RTCPeerConnection, ev: Event) => any) | null;
+ onaddtrack: ((this: RTCPeerConnection, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/connectionstatechange_event) */
+ onconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/datachannel_event) */
+ ondatachannel: ((this: RTCPeerConnection, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/icecandidate_event) */
+ onicecandidate: ((this: RTCPeerConnection, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/iceconnectionstatechange_event) */
+ oniceconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/icegatheringstatechange_event) */
+ onicegatheringstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/negotiationneeded_event) */
+ onnegotiationneeded: ((this: RTCPeerConnection, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/signalingstatechange_event) */
+ onsignalingstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/track_event) */
+ ontrack: ((this: RTCPeerConnection, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/peerIdentity) */
+ readonly peerIdentity: Promise<RTCIdentityAssertion>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/pendingLocalDescription) */
+ readonly pendingLocalDescription: RTCSessionDescription | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/pendingRemoteDescription) */
+ readonly pendingRemoteDescription: RTCSessionDescription | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/remoteDescription) */
+ readonly remoteDescription: RTCSessionDescription | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/sctp) */
+ readonly sctp: RTCSctpTransport | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/signalingState) */
+ readonly signalingState: RTCSignalingState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addIceCandidate) */
+ addIceCandidate(candidate: RTCIceCandidate, successCallback: VoidFunction, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addStream)
+ */
+ addStream(stream: MediaStream): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addTrack) */
+ addTrack(track: MediaStreamTrack, ...streams: MediaStream[]): RTCRtpSender;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/addTransceiver) */
+ addTransceiver(trackOrKind: MediaStreamTrack | string, init?: RTCRtpTransceiverInit): RTCRtpTransceiver;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/close) */
+ close(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createAnswer) */
+ createAnswer(successCallback: RTCSessionDescriptionCallback, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createDataChannel) */
+ createDataChannel(label: string, dataChannelDict?: RTCDataChannelInit): RTCDataChannel;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/createOffer) */
+ createOffer(successCallback: RTCSessionDescriptionCallback, failureCallback: RTCPeerConnectionErrorCallback, options?: RTCOfferOptions): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getConfiguration) */
+ getConfiguration(): RTCConfiguration;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getIdentityAssertion) */
+ getIdentityAssertion(): Promise<string>;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getLocalStreams)
+ */
+ getLocalStreams(): MediaStream[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getReceivers) */
+ getReceivers(): RTCRtpReceiver[];
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getRemoteStreams)
+ */
+ getRemoteStreams(): MediaStream[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getSenders) */
+ getSenders(): RTCRtpSender[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getStats) */
+ getStats(selector?: MediaStreamTrack | null): Promise<RTCStatsReport>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/getTransceivers) */
+ getTransceivers(): RTCRtpTransceiver[];
+ mozDisablePacketDump(level: number, type: mozPacketDumpType, sending: boolean): void;
+ mozEnablePacketDump(level: number, type: mozPacketDumpType, sending: boolean): void;
+ mozSetPacketCallback(callback: mozPacketCallback): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/removeTrack) */
+ removeTrack(sender: RTCRtpSender): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/restartIce) */
+ restartIce(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setConfiguration) */
+ setConfiguration(configuration?: RTCConfiguration): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setIdentityProvider) */
+ setIdentityProvider(provider: string, options?: RTCIdentityProviderOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setLocalDescription) */
+ setLocalDescription(description: RTCSessionDescriptionInit, successCallback: VoidFunction, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/setRemoteDescription) */
+ setRemoteDescription(description: RTCSessionDescriptionInit, successCallback: VoidFunction, failureCallback: RTCPeerConnectionErrorCallback): Promise<void>;
+ addEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: RTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof RTCPeerConnectionEventMap>(type: K, listener: (this: RTCPeerConnection, ev: RTCPeerConnectionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var RTCPeerConnection: {
+ prototype: RTCPeerConnection;
+ new(configuration?: RTCConfiguration, constraints?: any): RTCPeerConnection;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnection/generateCertificate_static) */
+ generateCertificate(keygenAlgorithm: AlgorithmIdentifier): Promise<RTCCertificate>;
+ isInstance(obj): obj is RTCPeerConnection;
+};
+
+/**
+ * Events that occurs in relation to ICE candidates with the target, usually an RTCPeerConnection. Only one event is of this type: icecandidate.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnectionIceEvent)
+ */
+interface RTCPeerConnectionIceEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCPeerConnectionIceEvent/candidate) */
+ readonly candidate: RTCIceCandidate | null;
+}
+
+declare var RTCPeerConnectionIceEvent: {
+ prototype: RTCPeerConnectionIceEvent;
+ new(type: string, eventInitDict?: RTCPeerConnectionIceEventInit): RTCPeerConnectionIceEvent;
+ isInstance(obj): obj is RTCPeerConnectionIceEvent;
+};
+
+interface RTCPeerConnectionStatic {
+ registerPeerConnectionLifecycleCallback(cb: PeerConnectionLifecycleCallback): void;
+}
+
+declare var RTCPeerConnectionStatic: {
+ prototype: RTCPeerConnectionStatic;
+ new(): RTCPeerConnectionStatic;
+ isInstance(obj): obj is RTCPeerConnectionStatic;
+};
+
+/**
+ * This WebRTC API interface manages the reception and decoding of data for a MediaStreamTrack on an RTCPeerConnection.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver)
+ */
+interface RTCRtpReceiver {
+ jitterBufferTarget: DOMHighResTimeStamp | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/track) */
+ readonly track: MediaStreamTrack;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/transform) */
+ transform: RTCRtpTransform | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/transport) */
+ readonly transport: RTCDtlsTransport | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/getContributingSources) */
+ getContributingSources(): RTCRtpContributingSource[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/getStats) */
+ getStats(): Promise<RTCStatsReport>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/getSynchronizationSources) */
+ getSynchronizationSources(): RTCRtpSynchronizationSource[];
+ mozInsertAudioLevelForContributingSource(source: number, timestamp: DOMHighResTimeStamp, rtpTimestamp: number, hasLevel: boolean, level: number): void;
+}
+
+declare var RTCRtpReceiver: {
+ prototype: RTCRtpReceiver;
+ new(): RTCRtpReceiver;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpReceiver/getCapabilities_static) */
+ getCapabilities(kind: string): RTCRtpCapabilities | null;
+ isInstance(obj): obj is RTCRtpReceiver;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransform) */
+interface RTCRtpScriptTransform {
+}
+
+declare var RTCRtpScriptTransform: {
+ prototype: RTCRtpScriptTransform;
+ new(worker: Worker, options?: any, transfer?: any[]): RTCRtpScriptTransform;
+ isInstance(obj): obj is RTCRtpScriptTransform;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer) */
+interface RTCRtpScriptTransformer {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/options) */
+ readonly options: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/readable) */
+ readonly readable: ReadableStream;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/writable) */
+ readonly writable: WritableStream;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/generateKeyFrame) */
+ generateKeyFrame(rid?: string): Promise<number>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpScriptTransformer/sendKeyFrameRequest) */
+ sendKeyFrameRequest(): Promise<void>;
+}
+
+declare var RTCRtpScriptTransformer: {
+ prototype: RTCRtpScriptTransformer;
+ new(): RTCRtpScriptTransformer;
+ isInstance(obj): obj is RTCRtpScriptTransformer;
+};
+
+/**
+ * Provides the ability to control and obtain details about how a particular MediaStreamTrack is encoded and sent to a remote peer.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender)
+ */
+interface RTCRtpSender {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/dtmf) */
+ readonly dtmf: RTCDTMFSender | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/track) */
+ readonly track: MediaStreamTrack | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/transform) */
+ transform: RTCRtpTransform | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/transport) */
+ readonly transport: RTCDtlsTransport | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/getParameters) */
+ getParameters(): RTCRtpSendParameters;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/getStats) */
+ getStats(): Promise<RTCStatsReport>;
+ getStreams(): MediaStream[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/replaceTrack) */
+ replaceTrack(withTrack: MediaStreamTrack | null): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/setParameters) */
+ setParameters(parameters: RTCRtpSendParameters): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/setStreams) */
+ setStreams(...streams: MediaStream[]): void;
+ setStreamsImpl(...streams: MediaStream[]): void;
+ setTrack(track: MediaStreamTrack | null): void;
+}
+
+declare var RTCRtpSender: {
+ prototype: RTCRtpSender;
+ new(): RTCRtpSender;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpSender/getCapabilities_static) */
+ getCapabilities(kind: string): RTCRtpCapabilities | null;
+ isInstance(obj): obj is RTCRtpSender;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver) */
+interface RTCRtpTransceiver {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/currentDirection) */
+ readonly currentDirection: RTCRtpTransceiverDirection | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/direction) */
+ direction: RTCRtpTransceiverDirection;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/mid) */
+ readonly mid: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/receiver) */
+ readonly receiver: RTCRtpReceiver;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/sender) */
+ readonly sender: RTCRtpSender;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/stopped)
+ */
+ readonly stopped: boolean;
+ getKind(): string;
+ hasBeenUsedToSend(): boolean;
+ setDirectionInternal(direction: RTCRtpTransceiverDirection): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCRtpTransceiver/stop) */
+ stop(): void;
+}
+
+declare var RTCRtpTransceiver: {
+ prototype: RTCRtpTransceiver;
+ new(): RTCRtpTransceiver;
+ isInstance(obj): obj is RTCRtpTransceiver;
+};
+
+interface RTCSctpTransportEventMap {
+ "statechange": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport) */
+interface RTCSctpTransport extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport/maxChannels) */
+ readonly maxChannels: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport/maxMessageSize) */
+ readonly maxMessageSize: number;
+ onstatechange: ((this: RTCSctpTransport, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport/state) */
+ readonly state: RTCSctpTransportState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSctpTransport/transport) */
+ readonly transport: RTCDtlsTransport;
+ addEventListener<K extends keyof RTCSctpTransportEventMap>(type: K, listener: (this: RTCSctpTransport, ev: RTCSctpTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof RTCSctpTransportEventMap>(type: K, listener: (this: RTCSctpTransport, ev: RTCSctpTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var RTCSctpTransport: {
+ prototype: RTCSctpTransport;
+ new(): RTCSctpTransport;
+ isInstance(obj): obj is RTCSctpTransport;
+};
+
+/**
+ * One end of a connection—or potential connection—and how it's configured. Each RTCSessionDescription consists of a description type indicating which part of the offer/answer negotiation process it describes and of the SDP descriptor of the session.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSessionDescription)
+ */
+interface RTCSessionDescription {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSessionDescription/sdp) */
+ sdp: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSessionDescription/type) */
+ type: RTCSdpType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCSessionDescription/toJSON) */
+ toJSON(): any;
+}
+
+declare var RTCSessionDescription: {
+ prototype: RTCSessionDescription;
+ new(descriptionInitDict?: RTCSessionDescriptionInit): RTCSessionDescription;
+ isInstance(obj): obj is RTCSessionDescription;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCStatsReport) */
+interface RTCStatsReport {
+ forEach(callbackfn: (value: any, key: string, parent: RTCStatsReport) => void, thisArg?: any): void;
+}
+
+declare var RTCStatsReport: {
+ prototype: RTCStatsReport;
+ new(): RTCStatsReport;
+ isInstance(obj): obj is RTCStatsReport;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent) */
+interface RTCTrackEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent/receiver) */
+ readonly receiver: RTCRtpReceiver;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent/streams) */
+ readonly streams: MediaStream[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent/track) */
+ readonly track: MediaStreamTrack;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTrackEvent/transceiver) */
+ readonly transceiver: RTCRtpTransceiver;
+}
+
+declare var RTCTrackEvent: {
+ prototype: RTCTrackEvent;
+ new(type: string, eventInitDict: RTCTrackEventInit): RTCTrackEvent;
+ isInstance(obj): obj is RTCTrackEvent;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTransformEvent) */
+interface RTCTransformEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCTransformEvent/transformer) */
+ readonly transformer: RTCRtpScriptTransformer;
+}
+
+declare var RTCTransformEvent: {
+ prototype: RTCTransformEvent;
+ new(type: string, eventInitDict: RTCTransformEventInit): RTCTransformEvent;
+ isInstance(obj): obj is RTCTransformEvent;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RadioNodeList) */
+interface RadioNodeList extends NodeList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/RadioNodeList/value) */
+ value: string;
+}
+
+declare var RadioNodeList: {
+ prototype: RadioNodeList;
+ new(): RadioNodeList;
+ isInstance(obj): obj is RadioNodeList;
+};
+
+/**
+ * A fragment of a document that can contain nodes and parts of text nodes.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range)
+ */
+interface Range extends AbstractRange {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/commonAncestorContainer) */
+ readonly commonAncestorContainer: Node;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/cloneContents) */
+ cloneContents(): DocumentFragment;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/cloneRange) */
+ cloneRange(): Range;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/collapse) */
+ collapse(toStart?: boolean): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/compareBoundaryPoints) */
+ compareBoundaryPoints(how: number, sourceRange: Range): number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/comparePoint) */
+ comparePoint(node: Node, offset: number): number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/createContextualFragment) */
+ createContextualFragment(fragment: string): DocumentFragment;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/deleteContents) */
+ deleteContents(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/detach) */
+ detach(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/extractContents) */
+ extractContents(): DocumentFragment;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/getBoundingClientRect) */
+ getBoundingClientRect(): DOMRect;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/getClientRects) */
+ getClientRects(): DOMRectList | null;
+ getClientRectsAndTexts(): ClientRectsAndTexts;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/insertNode) */
+ insertNode(node: Node): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/intersectsNode) */
+ intersectsNode(node: Node): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/isPointInRange) */
+ isPointInRange(node: Node, offset: number): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/selectNode) */
+ selectNode(refNode: Node): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/selectNodeContents) */
+ selectNodeContents(refNode: Node): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setEnd) */
+ setEnd(refNode: Node, offset: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setEndAfter) */
+ setEndAfter(refNode: Node): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setEndBefore) */
+ setEndBefore(refNode: Node): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setStart) */
+ setStart(refNode: Node, offset: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setStartAfter) */
+ setStartAfter(refNode: Node): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/setStartBefore) */
+ setStartBefore(refNode: Node): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Range/surroundContents) */
+ surroundContents(newParent: Node): void;
+ toString(): string;
+ readonly START_TO_START: 0;
+ readonly START_TO_END: 1;
+ readonly END_TO_END: 2;
+ readonly END_TO_START: 3;
+}
+
+declare var Range: {
+ prototype: Range;
+ new(): Range;
+ readonly START_TO_START: 0;
+ readonly START_TO_END: 1;
+ readonly END_TO_END: 2;
+ readonly END_TO_START: 3;
+ isInstance(obj): obj is Range;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController) */
+interface ReadableByteStreamController {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/byobRequest) */
+ readonly byobRequest: ReadableStreamBYOBRequest | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/desiredSize) */
+ readonly desiredSize: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/close) */
+ close(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/enqueue) */
+ enqueue(chunk: ArrayBufferView): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableByteStreamController/error) */
+ error(e?: any): void;
+}
+
+declare var ReadableByteStreamController: {
+ prototype: ReadableByteStreamController;
+ new(): ReadableByteStreamController;
+ isInstance(obj): obj is ReadableByteStreamController;
+};
+
+/**
+ * This Streams API interface represents a readable stream of byte data. The Fetch API offers a concrete instance of a ReadableStream through the body property of a Response object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream)
+ */
+interface ReadableStream {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/locked) */
+ readonly locked: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/cancel) */
+ cancel(reason?: any): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/getReader) */
+ getReader(options?: ReadableStreamGetReaderOptions): ReadableStreamReader;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/pipeThrough) */
+ pipeThrough(transform: ReadableWritablePair, options?: StreamPipeOptions): ReadableStream;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/pipeTo) */
+ pipeTo(destination: WritableStream, options?: StreamPipeOptions): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/tee) */
+ tee(): ReadableStream[];
+}
+
+declare var ReadableStream: {
+ prototype: ReadableStream;
+ new(underlyingSource?: any, strategy?: QueuingStrategy): ReadableStream;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStream/from_static) */
+ from(asyncIterable: any): ReadableStream;
+ isInstance(obj): obj is ReadableStream;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader) */
+interface ReadableStreamBYOBReader extends ReadableStreamGenericReader {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/read) */
+ read(view: ArrayBufferView): Promise<ReadableStreamReadResult>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/releaseLock) */
+ releaseLock(): void;
+}
+
+declare var ReadableStreamBYOBReader: {
+ prototype: ReadableStreamBYOBReader;
+ new(stream: ReadableStream): ReadableStreamBYOBReader;
+ isInstance(obj): obj is ReadableStreamBYOBReader;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest) */
+interface ReadableStreamBYOBRequest {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/view) */
+ readonly view: ArrayBufferView | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/respond) */
+ respond(bytesWritten: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBRequest/respondWithNewView) */
+ respondWithNewView(view: ArrayBufferView): void;
+}
+
+declare var ReadableStreamBYOBRequest: {
+ prototype: ReadableStreamBYOBRequest;
+ new(): ReadableStreamBYOBRequest;
+ isInstance(obj): obj is ReadableStreamBYOBRequest;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController) */
+interface ReadableStreamDefaultController {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/desiredSize) */
+ readonly desiredSize: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/close) */
+ close(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/enqueue) */
+ enqueue(chunk?: any): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultController/error) */
+ error(e?: any): void;
+}
+
+declare var ReadableStreamDefaultController: {
+ prototype: ReadableStreamDefaultController;
+ new(): ReadableStreamDefaultController;
+ isInstance(obj): obj is ReadableStreamDefaultController;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader) */
+interface ReadableStreamDefaultReader extends ReadableStreamGenericReader {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader/read) */
+ read(): Promise<ReadableStreamReadResult>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamDefaultReader/releaseLock) */
+ releaseLock(): void;
+}
+
+declare var ReadableStreamDefaultReader: {
+ prototype: ReadableStreamDefaultReader;
+ new(stream: ReadableStream): ReadableStreamDefaultReader;
+ isInstance(obj): obj is ReadableStreamDefaultReader;
+};
+
+interface ReadableStreamGenericReader {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/closed) */
+ readonly closed: Promise<undefined>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReadableStreamBYOBReader/cancel) */
+ cancel(reason?: any): Promise<void>;
+}
+
+interface ReferrerInfo {
+}
+
+declare var ReferrerInfo: {
+ prototype: ReferrerInfo;
+ new(): ReferrerInfo;
+ isInstance(obj): obj is ReferrerInfo;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report) */
+interface Report {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/body) */
+ readonly body: ReportBody | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/type) */
+ readonly type: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Report/url) */
+ readonly url: string;
+ toJSON(): any;
+}
+
+declare var Report: {
+ prototype: Report;
+ new(): Report;
+ isInstance(obj): obj is Report;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportBody) */
+interface ReportBody {
+ toJSON(): any;
+}
+
+declare var ReportBody: {
+ prototype: ReportBody;
+ new(): ReportBody;
+ isInstance(obj): obj is ReportBody;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver) */
+interface ReportingObserver {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/disconnect) */
+ disconnect(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/observe) */
+ observe(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ReportingObserver/takeRecords) */
+ takeRecords(): ReportList;
+}
+
+declare var ReportingObserver: {
+ prototype: ReportingObserver;
+ new(callback: ReportingObserverCallback, options?: ReportingObserverOptions): ReportingObserver;
+ isInstance(obj): obj is ReportingObserver;
+};
+
+/**
+ * This Fetch API interface represents a resource request.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request)
+ */
+interface Request extends Body {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/cache) */
+ readonly cache: RequestCache;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/credentials) */
+ readonly credentials: RequestCredentials;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/destination) */
+ readonly destination: RequestDestination;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/headers) */
+ readonly headers: Headers;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/integrity) */
+ readonly integrity: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/method) */
+ readonly method: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/mode) */
+ readonly mode: RequestMode;
+ readonly mozErrors: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/redirect) */
+ readonly redirect: RequestRedirect;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/referrer) */
+ readonly referrer: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/referrerPolicy) */
+ readonly referrerPolicy: ReferrerPolicy;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/signal) */
+ readonly signal: AbortSignal;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/url) */
+ readonly url: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/clone) */
+ clone(): Request;
+ overrideContentPolicyType(context: nsContentPolicyType): void;
+}
+
+declare var Request: {
+ prototype: Request;
+ new(input: RequestInfo | URL, init?: RequestInit): Request;
+ isInstance(obj): obj is Request;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserver) */
+interface ResizeObserver {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserver/disconnect) */
+ disconnect(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserver/observe) */
+ observe(target: Element, options?: ResizeObserverOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserver/unobserve) */
+ unobserve(target: Element): void;
+}
+
+declare var ResizeObserver: {
+ prototype: ResizeObserver;
+ new(callback: ResizeObserverCallback): ResizeObserver;
+ isInstance(obj): obj is ResizeObserver;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry) */
+interface ResizeObserverEntry {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry/borderBoxSize) */
+ readonly borderBoxSize: ResizeObserverSize[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry/contentBoxSize) */
+ readonly contentBoxSize: ResizeObserverSize[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry/contentRect) */
+ readonly contentRect: DOMRectReadOnly;
+ readonly devicePixelContentBoxSize: ResizeObserverSize[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverEntry/target) */
+ readonly target: Element;
+}
+
+declare var ResizeObserverEntry: {
+ prototype: ResizeObserverEntry;
+ new(): ResizeObserverEntry;
+ isInstance(obj): obj is ResizeObserverEntry;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverSize) */
+interface ResizeObserverSize {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverSize/blockSize) */
+ readonly blockSize: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ResizeObserverSize/inlineSize) */
+ readonly inlineSize: number;
+}
+
+declare var ResizeObserverSize: {
+ prototype: ResizeObserverSize;
+ new(): ResizeObserverSize;
+ isInstance(obj): obj is ResizeObserverSize;
+};
+
+/**
+ * This Fetch API interface represents the response to a request.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response)
+ */
+// @ts-ignore
+interface Response extends Body {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/body) */
+ readonly body: ReadableStream | null;
+ readonly hasCacheInfoChannel: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/headers) */
+ readonly headers: Headers;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/ok) */
+ readonly ok: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/redirected) */
+ readonly redirected: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/status) */
+ readonly status: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/statusText) */
+ readonly statusText: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/type) */
+ readonly type: ResponseType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/url) */
+ readonly url: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/clone) */
+ clone(): Response;
+ cloneUnfiltered(): Response;
+}
+
+declare var Response: {
+ prototype: Response;
+ new(body?: Blob | BufferSource | FormData | URLSearchParams | ReadableStream | string | null, init?: ResponseInit): Response;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/error_static) */
+ error(): Response;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/json_static) */
+ json(data: any, init?: ResponseInit): Response;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Response/redirect_static) */
+ redirect(url: string | URL, status?: number): Response;
+ isInstance(obj): obj is Response;
+};
+
+/**
+ * Provides access to the properties of <a> element, as well as methods to manipulate them.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAElement)
+ */
+interface SVGAElement extends SVGGraphicsElement, SVGURIReference {
+ download: string;
+ hreflang: string;
+ ping: string;
+ referrerPolicy: string;
+ rel: string;
+ readonly relList: DOMTokenList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAElement/target) */
+ readonly target: SVGAnimatedString;
+ text: string;
+ type: string;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGAElement: {
+ prototype: SVGAElement;
+ new(): SVGAElement;
+ isInstance(obj): obj is SVGAElement;
+};
+
+/**
+ * Used to represent a value that can be an <angle> or <number> value. An SVGAngle reflected through the animVal attribute is always read only.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAngle)
+ */
+interface SVGAngle {
+ readonly unitType: number;
+ value: number;
+ valueAsString: string;
+ valueInSpecifiedUnits: number;
+ convertToSpecifiedUnits(unitType: number): void;
+ newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;
+ readonly SVG_ANGLETYPE_UNKNOWN: 0;
+ readonly SVG_ANGLETYPE_UNSPECIFIED: 1;
+ readonly SVG_ANGLETYPE_DEG: 2;
+ readonly SVG_ANGLETYPE_RAD: 3;
+ readonly SVG_ANGLETYPE_GRAD: 4;
+}
+
+declare var SVGAngle: {
+ prototype: SVGAngle;
+ new(): SVGAngle;
+ readonly SVG_ANGLETYPE_UNKNOWN: 0;
+ readonly SVG_ANGLETYPE_UNSPECIFIED: 1;
+ readonly SVG_ANGLETYPE_DEG: 2;
+ readonly SVG_ANGLETYPE_RAD: 3;
+ readonly SVG_ANGLETYPE_GRAD: 4;
+ isInstance(obj): obj is SVGAngle;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimateElement) */
+interface SVGAnimateElement extends SVGAnimationElement {
+ addEventListener<K extends keyof SVGAnimationElementEventMap>(type: K, listener: (this: SVGAnimateElement, ev: SVGAnimationElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGAnimationElementEventMap>(type: K, listener: (this: SVGAnimateElement, ev: SVGAnimationElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGAnimateElement: {
+ prototype: SVGAnimateElement;
+ new(): SVGAnimateElement;
+ isInstance(obj): obj is SVGAnimateElement;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimateMotionElement) */
+interface SVGAnimateMotionElement extends SVGAnimationElement {
+ addEventListener<K extends keyof SVGAnimationElementEventMap>(type: K, listener: (this: SVGAnimateMotionElement, ev: SVGAnimationElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGAnimationElementEventMap>(type: K, listener: (this: SVGAnimateMotionElement, ev: SVGAnimationElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGAnimateMotionElement: {
+ prototype: SVGAnimateMotionElement;
+ new(): SVGAnimateMotionElement;
+ isInstance(obj): obj is SVGAnimateMotionElement;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimateTransformElement) */
+interface SVGAnimateTransformElement extends SVGAnimationElement {
+ addEventListener<K extends keyof SVGAnimationElementEventMap>(type: K, listener: (this: SVGAnimateTransformElement, ev: SVGAnimationElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGAnimationElementEventMap>(type: K, listener: (this: SVGAnimateTransformElement, ev: SVGAnimationElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGAnimateTransformElement: {
+ prototype: SVGAnimateTransformElement;
+ new(): SVGAnimateTransformElement;
+ isInstance(obj): obj is SVGAnimateTransformElement;
+};
+
+/**
+ * Used for attributes of basic type <angle> which can be animated.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedAngle)
+ */
+interface SVGAnimatedAngle {
+ readonly animVal: SVGAngle;
+ readonly baseVal: SVGAngle;
+}
+
+declare var SVGAnimatedAngle: {
+ prototype: SVGAnimatedAngle;
+ new(): SVGAnimatedAngle;
+ isInstance(obj): obj is SVGAnimatedAngle;
+};
+
+/**
+ * Used for attributes of type boolean which can be animated.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedBoolean)
+ */
+interface SVGAnimatedBoolean {
+ readonly animVal: boolean;
+ baseVal: boolean;
+}
+
+declare var SVGAnimatedBoolean: {
+ prototype: SVGAnimatedBoolean;
+ new(): SVGAnimatedBoolean;
+ isInstance(obj): obj is SVGAnimatedBoolean;
+};
+
+/**
+ * Used for attributes whose value must be a constant from a particular enumeration and which can be animated.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedEnumeration)
+ */
+interface SVGAnimatedEnumeration {
+ readonly animVal: number;
+ baseVal: number;
+}
+
+declare var SVGAnimatedEnumeration: {
+ prototype: SVGAnimatedEnumeration;
+ new(): SVGAnimatedEnumeration;
+ isInstance(obj): obj is SVGAnimatedEnumeration;
+};
+
+/**
+ * Used for attributes of basic type <integer> which can be animated.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedInteger)
+ */
+interface SVGAnimatedInteger {
+ readonly animVal: number;
+ baseVal: number;
+}
+
+declare var SVGAnimatedInteger: {
+ prototype: SVGAnimatedInteger;
+ new(): SVGAnimatedInteger;
+ isInstance(obj): obj is SVGAnimatedInteger;
+};
+
+/**
+ * Used for attributes of basic type <length> which can be animated.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedLength)
+ */
+interface SVGAnimatedLength {
+ readonly animVal: SVGLength;
+ readonly baseVal: SVGLength;
+}
+
+declare var SVGAnimatedLength: {
+ prototype: SVGAnimatedLength;
+ new(): SVGAnimatedLength;
+ isInstance(obj): obj is SVGAnimatedLength;
+};
+
+/**
+ * Used for attributes of type SVGLengthList which can be animated.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedLengthList)
+ */
+interface SVGAnimatedLengthList {
+ readonly animVal: SVGLengthList;
+ readonly baseVal: SVGLengthList;
+}
+
+declare var SVGAnimatedLengthList: {
+ prototype: SVGAnimatedLengthList;
+ new(): SVGAnimatedLengthList;
+ isInstance(obj): obj is SVGAnimatedLengthList;
+};
+
+/**
+ * Used for attributes of basic type <Number> which can be animated.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedNumber)
+ */
+interface SVGAnimatedNumber {
+ readonly animVal: number;
+ baseVal: number;
+}
+
+declare var SVGAnimatedNumber: {
+ prototype: SVGAnimatedNumber;
+ new(): SVGAnimatedNumber;
+ isInstance(obj): obj is SVGAnimatedNumber;
+};
+
+/**
+ * The SVGAnimatedNumber interface is used for attributes which take a list of numbers and which can be animated.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedNumberList)
+ */
+interface SVGAnimatedNumberList {
+ readonly animVal: SVGNumberList;
+ readonly baseVal: SVGNumberList;
+}
+
+declare var SVGAnimatedNumberList: {
+ prototype: SVGAnimatedNumberList;
+ new(): SVGAnimatedNumberList;
+ isInstance(obj): obj is SVGAnimatedNumberList;
+};
+
+interface SVGAnimatedPathData {
+ readonly animatedPathSegList: SVGPathSegList;
+ readonly pathSegList: SVGPathSegList;
+}
+
+interface SVGAnimatedPoints {
+ readonly animatedPoints: SVGPointList;
+ readonly points: SVGPointList;
+}
+
+/**
+ * Used for attributes of type SVGPreserveAspectRatio which can be animated.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedPreserveAspectRatio)
+ */
+interface SVGAnimatedPreserveAspectRatio {
+ readonly animVal: SVGPreserveAspectRatio;
+ readonly baseVal: SVGPreserveAspectRatio;
+}
+
+declare var SVGAnimatedPreserveAspectRatio: {
+ prototype: SVGAnimatedPreserveAspectRatio;
+ new(): SVGAnimatedPreserveAspectRatio;
+ isInstance(obj): obj is SVGAnimatedPreserveAspectRatio;
+};
+
+/**
+ * Used for attributes of basic SVGRect which can be animated.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedRect)
+ */
+interface SVGAnimatedRect {
+ readonly animVal: SVGRect | null;
+ readonly baseVal: SVGRect | null;
+}
+
+declare var SVGAnimatedRect: {
+ prototype: SVGAnimatedRect;
+ new(): SVGAnimatedRect;
+ isInstance(obj): obj is SVGAnimatedRect;
+};
+
+/**
+ * The SVGAnimatedString interface represents string attributes which can be animated from each SVG declaration. You need to create SVG attribute before doing anything else, everything should be declared inside this.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedString)
+ */
+interface SVGAnimatedString {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedString/animVal) */
+ readonly animVal: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedString/baseVal) */
+ baseVal: string;
+}
+
+declare var SVGAnimatedString: {
+ prototype: SVGAnimatedString;
+ new(): SVGAnimatedString;
+ isInstance(obj): obj is SVGAnimatedString;
+};
+
+/**
+ * Used for attributes which take a list of numbers and which can be animated.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimatedTransformList)
+ */
+interface SVGAnimatedTransformList {
+ readonly animVal: SVGTransformList;
+ readonly baseVal: SVGTransformList;
+}
+
+declare var SVGAnimatedTransformList: {
+ prototype: SVGAnimatedTransformList;
+ new(): SVGAnimatedTransformList;
+ isInstance(obj): obj is SVGAnimatedTransformList;
+};
+
+interface SVGAnimationElementEventMap extends SVGElementEventMap {
+ "begin": Event;
+ "end": Event;
+ "repeat": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement) */
+interface SVGAnimationElement extends SVGElement, SVGTests {
+ onbegin: ((this: SVGAnimationElement, ev: Event) => any) | null;
+ onend: ((this: SVGAnimationElement, ev: Event) => any) | null;
+ onrepeat: ((this: SVGAnimationElement, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGAnimationElement/targetElement) */
+ readonly targetElement: SVGElement | null;
+ beginElement(): void;
+ beginElementAt(offset: number): void;
+ endElement(): void;
+ endElementAt(offset: number): void;
+ getCurrentTime(): number;
+ getSimpleDuration(): number;
+ getStartTime(): number;
+ addEventListener<K extends keyof SVGAnimationElementEventMap>(type: K, listener: (this: SVGAnimationElement, ev: SVGAnimationElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGAnimationElementEventMap>(type: K, listener: (this: SVGAnimationElement, ev: SVGAnimationElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGAnimationElement: {
+ prototype: SVGAnimationElement;
+ new(): SVGAnimationElement;
+ isInstance(obj): obj is SVGAnimationElement;
+};
+
+/**
+ * An interface for the <circle> element. The circle element is defined by the cx and cy attributes that denote the coordinates of the centre of the circle.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGCircleElement)
+ */
+interface SVGCircleElement extends SVGGeometryElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGCircleElement/cx) */
+ readonly cx: SVGAnimatedLength;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGCircleElement/cy) */
+ readonly cy: SVGAnimatedLength;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGCircleElement/r) */
+ readonly r: SVGAnimatedLength;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCircleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGCircleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGCircleElement: {
+ prototype: SVGCircleElement;
+ new(): SVGCircleElement;
+ isInstance(obj): obj is SVGCircleElement;
+};
+
+/**
+ * Provides access to the properties of <clipPath> elements, as well as methods to manipulate them.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGClipPathElement)
+ */
+interface SVGClipPathElement extends SVGElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGClipPathElement/clipPathUnits) */
+ readonly clipPathUnits: SVGAnimatedEnumeration;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGClipPathElement/transform) */
+ readonly transform: SVGAnimatedTransformList;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGClipPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGClipPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGClipPathElement: {
+ prototype: SVGClipPathElement;
+ new(): SVGClipPathElement;
+ isInstance(obj): obj is SVGClipPathElement;
+};
+
+/**
+ * A base interface used by the component transfer function interfaces.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGComponentTransferFunctionElement)
+ */
+interface SVGComponentTransferFunctionElement extends SVGElement {
+ readonly amplitude: SVGAnimatedNumber;
+ readonly exponent: SVGAnimatedNumber;
+ readonly intercept: SVGAnimatedNumber;
+ readonly offset: SVGAnimatedNumber;
+ readonly slope: SVGAnimatedNumber;
+ readonly tableValues: SVGAnimatedNumberList;
+ readonly type: SVGAnimatedEnumeration;
+ readonly SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: 0;
+ readonly SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: 1;
+ readonly SVG_FECOMPONENTTRANSFER_TYPE_TABLE: 2;
+ readonly SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: 3;
+ readonly SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: 4;
+ readonly SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: 5;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGComponentTransferFunctionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGComponentTransferFunctionElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGComponentTransferFunctionElement: {
+ prototype: SVGComponentTransferFunctionElement;
+ new(): SVGComponentTransferFunctionElement;
+ readonly SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN: 0;
+ readonly SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY: 1;
+ readonly SVG_FECOMPONENTTRANSFER_TYPE_TABLE: 2;
+ readonly SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE: 3;
+ readonly SVG_FECOMPONENTTRANSFER_TYPE_LINEAR: 4;
+ readonly SVG_FECOMPONENTTRANSFER_TYPE_GAMMA: 5;
+ isInstance(obj): obj is SVGComponentTransferFunctionElement;
+};
+
+/**
+ * Corresponds to the <defs> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGDefsElement)
+ */
+interface SVGDefsElement extends SVGGraphicsElement {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDefsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDefsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGDefsElement: {
+ prototype: SVGDefsElement;
+ new(): SVGDefsElement;
+ isInstance(obj): obj is SVGDefsElement;
+};
+
+/**
+ * Corresponds to the <desc> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGDescElement)
+ */
+interface SVGDescElement extends SVGElement {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDescElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGDescElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGDescElement: {
+ prototype: SVGDescElement;
+ new(): SVGDescElement;
+ isInstance(obj): obj is SVGDescElement;
+};
+
+interface SVGElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap, OnErrorEventHandlerForNodesEventMap, TouchEventHandlersEventMap {
+}
+
+/**
+ * All of the SVG DOM interfaces that correspond directly to elements in the SVG language derive from the SVGElement interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGElement)
+ */
+interface SVGElement extends Element, ElementCSSInlineStyle, GlobalEventHandlers, HTMLOrForeignElement, OnErrorEventHandlerForNodes, TouchEventHandlers {
+ /** @deprecated */
+ //classNme
+ id: string;
+ nonce: string;
+ readonly ownerSVGElement: SVGSVGElement | null;
+ readonly viewportElement: SVGElement | null;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGElement: {
+ prototype: SVGElement;
+ new(): SVGElement;
+ isInstance(obj): obj is SVGElement;
+};
+
+/**
+ * Provides access to the properties of <ellipse> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGEllipseElement)
+ */
+interface SVGEllipseElement extends SVGGeometryElement {
+ readonly cx: SVGAnimatedLength;
+ readonly cy: SVGAnimatedLength;
+ readonly rx: SVGAnimatedLength;
+ readonly ry: SVGAnimatedLength;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGEllipseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGEllipseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGEllipseElement: {
+ prototype: SVGEllipseElement;
+ new(): SVGEllipseElement;
+ isInstance(obj): obj is SVGEllipseElement;
+};
+
+/**
+ * Corresponds to the <feBlend> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEBlendElement)
+ */
+interface SVGFEBlendElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ readonly in1: SVGAnimatedString;
+ readonly in2: SVGAnimatedString;
+ readonly mode: SVGAnimatedEnumeration;
+ readonly SVG_FEBLEND_MODE_UNKNOWN: 0;
+ readonly SVG_FEBLEND_MODE_NORMAL: 1;
+ readonly SVG_FEBLEND_MODE_MULTIPLY: 2;
+ readonly SVG_FEBLEND_MODE_SCREEN: 3;
+ readonly SVG_FEBLEND_MODE_DARKEN: 4;
+ readonly SVG_FEBLEND_MODE_LIGHTEN: 5;
+ readonly SVG_FEBLEND_MODE_OVERLAY: 6;
+ readonly SVG_FEBLEND_MODE_COLOR_DODGE: 7;
+ readonly SVG_FEBLEND_MODE_COLOR_BURN: 8;
+ readonly SVG_FEBLEND_MODE_HARD_LIGHT: 9;
+ readonly SVG_FEBLEND_MODE_SOFT_LIGHT: 10;
+ readonly SVG_FEBLEND_MODE_DIFFERENCE: 11;
+ readonly SVG_FEBLEND_MODE_EXCLUSION: 12;
+ readonly SVG_FEBLEND_MODE_HUE: 13;
+ readonly SVG_FEBLEND_MODE_SATURATION: 14;
+ readonly SVG_FEBLEND_MODE_COLOR: 15;
+ readonly SVG_FEBLEND_MODE_LUMINOSITY: 16;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEBlendElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEBlendElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEBlendElement: {
+ prototype: SVGFEBlendElement;
+ new(): SVGFEBlendElement;
+ readonly SVG_FEBLEND_MODE_UNKNOWN: 0;
+ readonly SVG_FEBLEND_MODE_NORMAL: 1;
+ readonly SVG_FEBLEND_MODE_MULTIPLY: 2;
+ readonly SVG_FEBLEND_MODE_SCREEN: 3;
+ readonly SVG_FEBLEND_MODE_DARKEN: 4;
+ readonly SVG_FEBLEND_MODE_LIGHTEN: 5;
+ readonly SVG_FEBLEND_MODE_OVERLAY: 6;
+ readonly SVG_FEBLEND_MODE_COLOR_DODGE: 7;
+ readonly SVG_FEBLEND_MODE_COLOR_BURN: 8;
+ readonly SVG_FEBLEND_MODE_HARD_LIGHT: 9;
+ readonly SVG_FEBLEND_MODE_SOFT_LIGHT: 10;
+ readonly SVG_FEBLEND_MODE_DIFFERENCE: 11;
+ readonly SVG_FEBLEND_MODE_EXCLUSION: 12;
+ readonly SVG_FEBLEND_MODE_HUE: 13;
+ readonly SVG_FEBLEND_MODE_SATURATION: 14;
+ readonly SVG_FEBLEND_MODE_COLOR: 15;
+ readonly SVG_FEBLEND_MODE_LUMINOSITY: 16;
+ isInstance(obj): obj is SVGFEBlendElement;
+};
+
+/**
+ * Corresponds to the <feColorMatrix> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEColorMatrixElement)
+ */
+interface SVGFEColorMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEColorMatrixElement/in1) */
+ readonly in1: SVGAnimatedString;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEColorMatrixElement/type) */
+ readonly type: SVGAnimatedEnumeration;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEColorMatrixElement/values) */
+ readonly values: SVGAnimatedNumberList;
+ readonly SVG_FECOLORMATRIX_TYPE_UNKNOWN: 0;
+ readonly SVG_FECOLORMATRIX_TYPE_MATRIX: 1;
+ readonly SVG_FECOLORMATRIX_TYPE_SATURATE: 2;
+ readonly SVG_FECOLORMATRIX_TYPE_HUEROTATE: 3;
+ readonly SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: 4;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEColorMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEColorMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEColorMatrixElement: {
+ prototype: SVGFEColorMatrixElement;
+ new(): SVGFEColorMatrixElement;
+ readonly SVG_FECOLORMATRIX_TYPE_UNKNOWN: 0;
+ readonly SVG_FECOLORMATRIX_TYPE_MATRIX: 1;
+ readonly SVG_FECOLORMATRIX_TYPE_SATURATE: 2;
+ readonly SVG_FECOLORMATRIX_TYPE_HUEROTATE: 3;
+ readonly SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA: 4;
+ isInstance(obj): obj is SVGFEColorMatrixElement;
+};
+
+/**
+ * Corresponds to the <feComponentTransfer> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEComponentTransferElement)
+ */
+interface SVGFEComponentTransferElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ readonly in1: SVGAnimatedString;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEComponentTransferElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEComponentTransferElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEComponentTransferElement: {
+ prototype: SVGFEComponentTransferElement;
+ new(): SVGFEComponentTransferElement;
+ isInstance(obj): obj is SVGFEComponentTransferElement;
+};
+
+/**
+ * Corresponds to the <feComposite> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFECompositeElement)
+ */
+interface SVGFECompositeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ readonly in1: SVGAnimatedString;
+ readonly in2: SVGAnimatedString;
+ readonly k1: SVGAnimatedNumber;
+ readonly k2: SVGAnimatedNumber;
+ readonly k3: SVGAnimatedNumber;
+ readonly k4: SVGAnimatedNumber;
+ readonly operator: SVGAnimatedEnumeration;
+ readonly SVG_FECOMPOSITE_OPERATOR_UNKNOWN: 0;
+ readonly SVG_FECOMPOSITE_OPERATOR_OVER: 1;
+ readonly SVG_FECOMPOSITE_OPERATOR_IN: 2;
+ readonly SVG_FECOMPOSITE_OPERATOR_OUT: 3;
+ readonly SVG_FECOMPOSITE_OPERATOR_ATOP: 4;
+ readonly SVG_FECOMPOSITE_OPERATOR_XOR: 5;
+ readonly SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: 6;
+ readonly SVG_FECOMPOSITE_OPERATOR_LIGHTER: 7;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFECompositeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFECompositeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFECompositeElement: {
+ prototype: SVGFECompositeElement;
+ new(): SVGFECompositeElement;
+ readonly SVG_FECOMPOSITE_OPERATOR_UNKNOWN: 0;
+ readonly SVG_FECOMPOSITE_OPERATOR_OVER: 1;
+ readonly SVG_FECOMPOSITE_OPERATOR_IN: 2;
+ readonly SVG_FECOMPOSITE_OPERATOR_OUT: 3;
+ readonly SVG_FECOMPOSITE_OPERATOR_ATOP: 4;
+ readonly SVG_FECOMPOSITE_OPERATOR_XOR: 5;
+ readonly SVG_FECOMPOSITE_OPERATOR_ARITHMETIC: 6;
+ readonly SVG_FECOMPOSITE_OPERATOR_LIGHTER: 7;
+ isInstance(obj): obj is SVGFECompositeElement;
+};
+
+/**
+ * Corresponds to the <feConvolveMatrix> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEConvolveMatrixElement)
+ */
+interface SVGFEConvolveMatrixElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ readonly bias: SVGAnimatedNumber;
+ readonly divisor: SVGAnimatedNumber;
+ readonly edgeMode: SVGAnimatedEnumeration;
+ readonly in1: SVGAnimatedString;
+ readonly kernelMatrix: SVGAnimatedNumberList;
+ readonly kernelUnitLengthX: SVGAnimatedNumber;
+ readonly kernelUnitLengthY: SVGAnimatedNumber;
+ readonly orderX: SVGAnimatedInteger;
+ readonly orderY: SVGAnimatedInteger;
+ readonly preserveAlpha: SVGAnimatedBoolean;
+ readonly targetX: SVGAnimatedInteger;
+ readonly targetY: SVGAnimatedInteger;
+ readonly SVG_EDGEMODE_UNKNOWN: 0;
+ readonly SVG_EDGEMODE_DUPLICATE: 1;
+ readonly SVG_EDGEMODE_WRAP: 2;
+ readonly SVG_EDGEMODE_NONE: 3;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEConvolveMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEConvolveMatrixElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEConvolveMatrixElement: {
+ prototype: SVGFEConvolveMatrixElement;
+ new(): SVGFEConvolveMatrixElement;
+ readonly SVG_EDGEMODE_UNKNOWN: 0;
+ readonly SVG_EDGEMODE_DUPLICATE: 1;
+ readonly SVG_EDGEMODE_WRAP: 2;
+ readonly SVG_EDGEMODE_NONE: 3;
+ isInstance(obj): obj is SVGFEConvolveMatrixElement;
+};
+
+/**
+ * Corresponds to the <feDiffuseLighting> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDiffuseLightingElement)
+ */
+interface SVGFEDiffuseLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ readonly diffuseConstant: SVGAnimatedNumber;
+ readonly in1: SVGAnimatedString;
+ readonly kernelUnitLengthX: SVGAnimatedNumber;
+ readonly kernelUnitLengthY: SVGAnimatedNumber;
+ readonly surfaceScale: SVGAnimatedNumber;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDiffuseLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDiffuseLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEDiffuseLightingElement: {
+ prototype: SVGFEDiffuseLightingElement;
+ new(): SVGFEDiffuseLightingElement;
+ isInstance(obj): obj is SVGFEDiffuseLightingElement;
+};
+
+/**
+ * Corresponds to the <feDisplacementMap> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDisplacementMapElement)
+ */
+interface SVGFEDisplacementMapElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ readonly in1: SVGAnimatedString;
+ readonly in2: SVGAnimatedString;
+ readonly scale: SVGAnimatedNumber;
+ readonly xChannelSelector: SVGAnimatedEnumeration;
+ readonly yChannelSelector: SVGAnimatedEnumeration;
+ readonly SVG_CHANNEL_UNKNOWN: 0;
+ readonly SVG_CHANNEL_R: 1;
+ readonly SVG_CHANNEL_G: 2;
+ readonly SVG_CHANNEL_B: 3;
+ readonly SVG_CHANNEL_A: 4;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDisplacementMapElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDisplacementMapElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEDisplacementMapElement: {
+ prototype: SVGFEDisplacementMapElement;
+ new(): SVGFEDisplacementMapElement;
+ readonly SVG_CHANNEL_UNKNOWN: 0;
+ readonly SVG_CHANNEL_R: 1;
+ readonly SVG_CHANNEL_G: 2;
+ readonly SVG_CHANNEL_B: 3;
+ readonly SVG_CHANNEL_A: 4;
+ isInstance(obj): obj is SVGFEDisplacementMapElement;
+};
+
+/**
+ * Corresponds to the <feDistantLight> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDistantLightElement)
+ */
+interface SVGFEDistantLightElement extends SVGElement {
+ readonly azimuth: SVGAnimatedNumber;
+ readonly elevation: SVGAnimatedNumber;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDistantLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDistantLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEDistantLightElement: {
+ prototype: SVGFEDistantLightElement;
+ new(): SVGFEDistantLightElement;
+ isInstance(obj): obj is SVGFEDistantLightElement;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEDropShadowElement) */
+interface SVGFEDropShadowElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ readonly dx: SVGAnimatedNumber;
+ readonly dy: SVGAnimatedNumber;
+ readonly in1: SVGAnimatedString;
+ readonly stdDeviationX: SVGAnimatedNumber;
+ readonly stdDeviationY: SVGAnimatedNumber;
+ setStdDeviation(stdDeviationX: number, stdDeviationY: number): void;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDropShadowElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEDropShadowElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEDropShadowElement: {
+ prototype: SVGFEDropShadowElement;
+ new(): SVGFEDropShadowElement;
+ isInstance(obj): obj is SVGFEDropShadowElement;
+};
+
+/**
+ * Corresponds to the <feFlood> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFloodElement)
+ */
+interface SVGFEFloodElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFloodElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFloodElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEFloodElement: {
+ prototype: SVGFEFloodElement;
+ new(): SVGFEFloodElement;
+ isInstance(obj): obj is SVGFEFloodElement;
+};
+
+/**
+ * Corresponds to the <feFuncA> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFuncAElement)
+ */
+interface SVGFEFuncAElement extends SVGComponentTransferFunctionElement {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncAElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEFuncAElement: {
+ prototype: SVGFEFuncAElement;
+ new(): SVGFEFuncAElement;
+ isInstance(obj): obj is SVGFEFuncAElement;
+};
+
+/**
+ * Corresponds to the <feFuncB> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFuncBElement)
+ */
+interface SVGFEFuncBElement extends SVGComponentTransferFunctionElement {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncBElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncBElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEFuncBElement: {
+ prototype: SVGFEFuncBElement;
+ new(): SVGFEFuncBElement;
+ isInstance(obj): obj is SVGFEFuncBElement;
+};
+
+/**
+ * Corresponds to the <feFuncG> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFuncGElement)
+ */
+interface SVGFEFuncGElement extends SVGComponentTransferFunctionElement {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEFuncGElement: {
+ prototype: SVGFEFuncGElement;
+ new(): SVGFEFuncGElement;
+ isInstance(obj): obj is SVGFEFuncGElement;
+};
+
+/**
+ * Corresponds to the <feFuncR> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEFuncRElement)
+ */
+interface SVGFEFuncRElement extends SVGComponentTransferFunctionElement {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncRElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEFuncRElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEFuncRElement: {
+ prototype: SVGFEFuncRElement;
+ new(): SVGFEFuncRElement;
+ isInstance(obj): obj is SVGFEFuncRElement;
+};
+
+/**
+ * Corresponds to the <feGaussianBlur> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEGaussianBlurElement)
+ */
+interface SVGFEGaussianBlurElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ readonly in1: SVGAnimatedString;
+ readonly stdDeviationX: SVGAnimatedNumber;
+ readonly stdDeviationY: SVGAnimatedNumber;
+ setStdDeviation(stdDeviationX: number, stdDeviationY: number): void;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEGaussianBlurElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEGaussianBlurElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEGaussianBlurElement: {
+ prototype: SVGFEGaussianBlurElement;
+ new(): SVGFEGaussianBlurElement;
+ isInstance(obj): obj is SVGFEGaussianBlurElement;
+};
+
+/**
+ * Corresponds to the <feImage> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEImageElement)
+ */
+interface SVGFEImageElement extends SVGElement, SVGFilterPrimitiveStandardAttributes, SVGURIReference {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEImageElement) */
+ crossOrigin: string | null;
+ readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEImageElement: {
+ prototype: SVGFEImageElement;
+ new(): SVGFEImageElement;
+ isInstance(obj): obj is SVGFEImageElement;
+};
+
+/**
+ * Corresponds to the <feMerge> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEMergeElement)
+ */
+interface SVGFEMergeElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEMergeElement: {
+ prototype: SVGFEMergeElement;
+ new(): SVGFEMergeElement;
+ isInstance(obj): obj is SVGFEMergeElement;
+};
+
+/**
+ * Corresponds to the <feMergeNode> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEMergeNodeElement)
+ */
+interface SVGFEMergeNodeElement extends SVGElement {
+ readonly in1: SVGAnimatedString;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeNodeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMergeNodeElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEMergeNodeElement: {
+ prototype: SVGFEMergeNodeElement;
+ new(): SVGFEMergeNodeElement;
+ isInstance(obj): obj is SVGFEMergeNodeElement;
+};
+
+/**
+ * Corresponds to the <feMorphology> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEMorphologyElement)
+ */
+interface SVGFEMorphologyElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ readonly in1: SVGAnimatedString;
+ readonly operator: SVGAnimatedEnumeration;
+ readonly radiusX: SVGAnimatedNumber;
+ readonly radiusY: SVGAnimatedNumber;
+ readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: 0;
+ readonly SVG_MORPHOLOGY_OPERATOR_ERODE: 1;
+ readonly SVG_MORPHOLOGY_OPERATOR_DILATE: 2;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMorphologyElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEMorphologyElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEMorphologyElement: {
+ prototype: SVGFEMorphologyElement;
+ new(): SVGFEMorphologyElement;
+ readonly SVG_MORPHOLOGY_OPERATOR_UNKNOWN: 0;
+ readonly SVG_MORPHOLOGY_OPERATOR_ERODE: 1;
+ readonly SVG_MORPHOLOGY_OPERATOR_DILATE: 2;
+ isInstance(obj): obj is SVGFEMorphologyElement;
+};
+
+/**
+ * Corresponds to the <feOffset> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEOffsetElement)
+ */
+interface SVGFEOffsetElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ readonly dx: SVGAnimatedNumber;
+ readonly dy: SVGAnimatedNumber;
+ readonly in1: SVGAnimatedString;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEOffsetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEOffsetElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEOffsetElement: {
+ prototype: SVGFEOffsetElement;
+ new(): SVGFEOffsetElement;
+ isInstance(obj): obj is SVGFEOffsetElement;
+};
+
+/**
+ * Corresponds to the <fePointLight> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFEPointLightElement)
+ */
+interface SVGFEPointLightElement extends SVGElement {
+ readonly x: SVGAnimatedNumber;
+ readonly y: SVGAnimatedNumber;
+ readonly z: SVGAnimatedNumber;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEPointLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFEPointLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFEPointLightElement: {
+ prototype: SVGFEPointLightElement;
+ new(): SVGFEPointLightElement;
+ isInstance(obj): obj is SVGFEPointLightElement;
+};
+
+/**
+ * Corresponds to the <feSpecularLighting> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpecularLightingElement)
+ */
+interface SVGFESpecularLightingElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ readonly in1: SVGAnimatedString;
+ readonly kernelUnitLengthX: SVGAnimatedNumber;
+ readonly kernelUnitLengthY: SVGAnimatedNumber;
+ readonly specularConstant: SVGAnimatedNumber;
+ readonly specularExponent: SVGAnimatedNumber;
+ readonly surfaceScale: SVGAnimatedNumber;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpecularLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpecularLightingElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFESpecularLightingElement: {
+ prototype: SVGFESpecularLightingElement;
+ new(): SVGFESpecularLightingElement;
+ isInstance(obj): obj is SVGFESpecularLightingElement;
+};
+
+/**
+ * Corresponds to the <feSpotLight> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFESpotLightElement)
+ */
+interface SVGFESpotLightElement extends SVGElement {
+ readonly limitingConeAngle: SVGAnimatedNumber;
+ readonly pointsAtX: SVGAnimatedNumber;
+ readonly pointsAtY: SVGAnimatedNumber;
+ readonly pointsAtZ: SVGAnimatedNumber;
+ readonly specularExponent: SVGAnimatedNumber;
+ readonly x: SVGAnimatedNumber;
+ readonly y: SVGAnimatedNumber;
+ readonly z: SVGAnimatedNumber;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpotLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFESpotLightElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFESpotLightElement: {
+ prototype: SVGFESpotLightElement;
+ new(): SVGFESpotLightElement;
+ isInstance(obj): obj is SVGFESpotLightElement;
+};
+
+/**
+ * Corresponds to the <feTile> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFETileElement)
+ */
+interface SVGFETileElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ readonly in1: SVGAnimatedString;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETileElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETileElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFETileElement: {
+ prototype: SVGFETileElement;
+ new(): SVGFETileElement;
+ isInstance(obj): obj is SVGFETileElement;
+};
+
+/**
+ * Corresponds to the <feTurbulence> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFETurbulenceElement)
+ */
+interface SVGFETurbulenceElement extends SVGElement, SVGFilterPrimitiveStandardAttributes {
+ readonly baseFrequencyX: SVGAnimatedNumber;
+ readonly baseFrequencyY: SVGAnimatedNumber;
+ readonly numOctaves: SVGAnimatedInteger;
+ readonly seed: SVGAnimatedNumber;
+ readonly stitchTiles: SVGAnimatedEnumeration;
+ readonly type: SVGAnimatedEnumeration;
+ readonly SVG_TURBULENCE_TYPE_UNKNOWN: 0;
+ readonly SVG_TURBULENCE_TYPE_FRACTALNOISE: 1;
+ readonly SVG_TURBULENCE_TYPE_TURBULENCE: 2;
+ readonly SVG_STITCHTYPE_UNKNOWN: 0;
+ readonly SVG_STITCHTYPE_STITCH: 1;
+ readonly SVG_STITCHTYPE_NOSTITCH: 2;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETurbulenceElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFETurbulenceElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFETurbulenceElement: {
+ prototype: SVGFETurbulenceElement;
+ new(): SVGFETurbulenceElement;
+ readonly SVG_TURBULENCE_TYPE_UNKNOWN: 0;
+ readonly SVG_TURBULENCE_TYPE_FRACTALNOISE: 1;
+ readonly SVG_TURBULENCE_TYPE_TURBULENCE: 2;
+ readonly SVG_STITCHTYPE_UNKNOWN: 0;
+ readonly SVG_STITCHTYPE_STITCH: 1;
+ readonly SVG_STITCHTYPE_NOSTITCH: 2;
+ isInstance(obj): obj is SVGFETurbulenceElement;
+};
+
+/**
+ * Provides access to the properties of <filter> elements, as well as methods to manipulate them.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGFilterElement)
+ */
+interface SVGFilterElement extends SVGElement, SVGURIReference {
+ readonly filterUnits: SVGAnimatedEnumeration;
+ readonly height: SVGAnimatedLength;
+ readonly primitiveUnits: SVGAnimatedEnumeration;
+ readonly width: SVGAnimatedLength;
+ readonly x: SVGAnimatedLength;
+ readonly y: SVGAnimatedLength;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFilterElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGFilterElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGFilterElement: {
+ prototype: SVGFilterElement;
+ new(): SVGFilterElement;
+ isInstance(obj): obj is SVGFilterElement;
+};
+
+interface SVGFilterPrimitiveStandardAttributes {
+ readonly height: SVGAnimatedLength;
+ readonly result: SVGAnimatedString;
+ readonly width: SVGAnimatedLength;
+ readonly x: SVGAnimatedLength;
+ readonly y: SVGAnimatedLength;
+}
+
+interface SVGFitToViewBox {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/preserveAspectRatio) */
+ readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/viewBox) */
+ readonly viewBox: SVGAnimatedRect;
+}
+
+/**
+ * Provides access to the properties of <foreignObject> elements, as well as methods to manipulate them.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGForeignObjectElement)
+ */
+interface SVGForeignObjectElement extends SVGGraphicsElement {
+ readonly height: SVGAnimatedLength;
+ readonly width: SVGAnimatedLength;
+ readonly x: SVGAnimatedLength;
+ readonly y: SVGAnimatedLength;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGForeignObjectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGForeignObjectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGForeignObjectElement: {
+ prototype: SVGForeignObjectElement;
+ new(): SVGForeignObjectElement;
+ isInstance(obj): obj is SVGForeignObjectElement;
+};
+
+/**
+ * Corresponds to the <g> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGElement)
+ */
+interface SVGGElement extends SVGGraphicsElement {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGGElement: {
+ prototype: SVGGElement;
+ new(): SVGGElement;
+ isInstance(obj): obj is SVGGElement;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement) */
+interface SVGGeometryElement extends SVGGraphicsElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/pathLength) */
+ readonly pathLength: SVGAnimatedNumber;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/getPointAtLength) */
+ getPointAtLength(distance: number): SVGPoint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/getTotalLength) */
+ getTotalLength(): number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/isPointInFill) */
+ isPointInFill(point?: DOMPointInit): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGeometryElement/isPointInStroke) */
+ isPointInStroke(point?: DOMPointInit): boolean;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGeometryElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGeometryElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGGeometryElement: {
+ prototype: SVGGeometryElement;
+ new(): SVGGeometryElement;
+ isInstance(obj): obj is SVGGeometryElement;
+};
+
+/**
+ * The SVGGradient interface is a base interface used by SVGLinearGradientElement and SVGRadialGradientElement.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGradientElement)
+ */
+interface SVGGradientElement extends SVGElement, SVGURIReference {
+ readonly gradientTransform: SVGAnimatedTransformList;
+ readonly gradientUnits: SVGAnimatedEnumeration;
+ readonly spreadMethod: SVGAnimatedEnumeration;
+ readonly SVG_SPREADMETHOD_UNKNOWN: 0;
+ readonly SVG_SPREADMETHOD_PAD: 1;
+ readonly SVG_SPREADMETHOD_REFLECT: 2;
+ readonly SVG_SPREADMETHOD_REPEAT: 3;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGGradientElement: {
+ prototype: SVGGradientElement;
+ new(): SVGGradientElement;
+ readonly SVG_SPREADMETHOD_UNKNOWN: 0;
+ readonly SVG_SPREADMETHOD_PAD: 1;
+ readonly SVG_SPREADMETHOD_REFLECT: 2;
+ readonly SVG_SPREADMETHOD_REPEAT: 3;
+ isInstance(obj): obj is SVGGradientElement;
+};
+
+/**
+ * SVG elements whose primary purpose is to directly render graphics into a group.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGraphicsElement)
+ */
+interface SVGGraphicsElement extends SVGElement, SVGTests {
+ readonly farthestViewportElement: SVGElement | null;
+ readonly nearestViewportElement: SVGElement | null;
+ readonly transform: SVGAnimatedTransformList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGGraphicsElement/getBBox) */
+ getBBox(aOptions?: SVGBoundingBoxOptions): SVGRect;
+ getCTM(): SVGMatrix | null;
+ getScreenCTM(): SVGMatrix | null;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGraphicsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGGraphicsElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGGraphicsElement: {
+ prototype: SVGGraphicsElement;
+ new(): SVGGraphicsElement;
+ isInstance(obj): obj is SVGGraphicsElement;
+};
+
+/**
+ * Corresponds to the <image> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement)
+ */
+interface SVGImageElement extends SVGGraphicsElement, MozImageLoadingContent, SVGURIReference {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/crossorigin) */
+ crossOrigin: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/decoding) */
+ decoding: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/height) */
+ readonly height: SVGAnimatedLength;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/preserveAspectRatio) */
+ readonly preserveAspectRatio: SVGAnimatedPreserveAspectRatio;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/width) */
+ readonly width: SVGAnimatedLength;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/x) */
+ readonly x: SVGAnimatedLength;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/y) */
+ readonly y: SVGAnimatedLength;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGImageElement/decode) */
+ decode(): Promise<void>;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGImageElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGImageElement: {
+ prototype: SVGImageElement;
+ new(): SVGImageElement;
+ readonly UNKNOWN_REQUEST: -1;
+ readonly CURRENT_REQUEST: 0;
+ readonly PENDING_REQUEST: 1;
+ isInstance(obj): obj is SVGImageElement;
+};
+
+/**
+ * Correspond to the <length> basic data type.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLength)
+ */
+interface SVGLength {
+ readonly unitType: number;
+ value: number;
+ valueAsString: string;
+ valueInSpecifiedUnits: number;
+ convertToSpecifiedUnits(unitType: number): void;
+ newValueSpecifiedUnits(unitType: number, valueInSpecifiedUnits: number): void;
+ readonly SVG_LENGTHTYPE_UNKNOWN: 0;
+ readonly SVG_LENGTHTYPE_NUMBER: 1;
+ readonly SVG_LENGTHTYPE_PERCENTAGE: 2;
+ readonly SVG_LENGTHTYPE_EMS: 3;
+ readonly SVG_LENGTHTYPE_EXS: 4;
+ readonly SVG_LENGTHTYPE_PX: 5;
+ readonly SVG_LENGTHTYPE_CM: 6;
+ readonly SVG_LENGTHTYPE_MM: 7;
+ readonly SVG_LENGTHTYPE_IN: 8;
+ readonly SVG_LENGTHTYPE_PT: 9;
+ readonly SVG_LENGTHTYPE_PC: 10;
+}
+
+declare var SVGLength: {
+ prototype: SVGLength;
+ new(): SVGLength;
+ readonly SVG_LENGTHTYPE_UNKNOWN: 0;
+ readonly SVG_LENGTHTYPE_NUMBER: 1;
+ readonly SVG_LENGTHTYPE_PERCENTAGE: 2;
+ readonly SVG_LENGTHTYPE_EMS: 3;
+ readonly SVG_LENGTHTYPE_EXS: 4;
+ readonly SVG_LENGTHTYPE_PX: 5;
+ readonly SVG_LENGTHTYPE_CM: 6;
+ readonly SVG_LENGTHTYPE_MM: 7;
+ readonly SVG_LENGTHTYPE_IN: 8;
+ readonly SVG_LENGTHTYPE_PT: 9;
+ readonly SVG_LENGTHTYPE_PC: 10;
+ isInstance(obj): obj is SVGLength;
+};
+
+/**
+ * The SVGLengthList defines a list of SVGLength objects.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLengthList)
+ */
+interface SVGLengthList {
+ readonly length: number;
+ readonly numberOfItems: number;
+ appendItem(newItem: SVGLength): SVGLength;
+ clear(): void;
+ getItem(index: number): SVGLength;
+ initialize(newItem: SVGLength): SVGLength;
+ insertItemBefore(newItem: SVGLength, index: number): SVGLength;
+ removeItem(index: number): SVGLength;
+ replaceItem(newItem: SVGLength, index: number): SVGLength;
+ [index: number]: SVGLength;
+}
+
+declare var SVGLengthList: {
+ prototype: SVGLengthList;
+ new(): SVGLengthList;
+ isInstance(obj): obj is SVGLengthList;
+};
+
+/**
+ * Provides access to the properties of <line> elements, as well as methods to manipulate them.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLineElement)
+ */
+interface SVGLineElement extends SVGGeometryElement {
+ readonly x1: SVGAnimatedLength;
+ readonly x2: SVGAnimatedLength;
+ readonly y1: SVGAnimatedLength;
+ readonly y2: SVGAnimatedLength;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGLineElement: {
+ prototype: SVGLineElement;
+ new(): SVGLineElement;
+ isInstance(obj): obj is SVGLineElement;
+};
+
+/**
+ * Corresponds to the <linearGradient> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGLinearGradientElement)
+ */
+interface SVGLinearGradientElement extends SVGGradientElement {
+ readonly x1: SVGAnimatedLength;
+ readonly x2: SVGAnimatedLength;
+ readonly y1: SVGAnimatedLength;
+ readonly y2: SVGAnimatedLength;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLinearGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGLinearGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGLinearGradientElement: {
+ prototype: SVGLinearGradientElement;
+ new(): SVGLinearGradientElement;
+ isInstance(obj): obj is SVGLinearGradientElement;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMPathElement) */
+interface SVGMPathElement extends SVGElement, SVGURIReference {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGMPathElement: {
+ prototype: SVGMPathElement;
+ new(): SVGMPathElement;
+ isInstance(obj): obj is SVGMPathElement;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement) */
+interface SVGMarkerElement extends SVGElement, SVGFitToViewBox {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/markerHeight) */
+ readonly markerHeight: SVGAnimatedLength;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/markerUnits) */
+ readonly markerUnits: SVGAnimatedEnumeration;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/markerWidth) */
+ readonly markerWidth: SVGAnimatedLength;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/orientAngle) */
+ readonly orientAngle: SVGAnimatedAngle;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/orientType) */
+ readonly orientType: SVGAnimatedEnumeration;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/refX) */
+ readonly refX: SVGAnimatedLength;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/refY) */
+ readonly refY: SVGAnimatedLength;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/setOrientToAngle) */
+ setOrientToAngle(angle: SVGAngle): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMarkerElement/setOrientToAuto) */
+ setOrientToAuto(): void;
+ readonly SVG_MARKERUNITS_UNKNOWN: 0;
+ readonly SVG_MARKERUNITS_USERSPACEONUSE: 1;
+ readonly SVG_MARKERUNITS_STROKEWIDTH: 2;
+ readonly SVG_MARKER_ORIENT_UNKNOWN: 0;
+ readonly SVG_MARKER_ORIENT_AUTO: 1;
+ readonly SVG_MARKER_ORIENT_ANGLE: 2;
+ readonly SVG_MARKER_ORIENT_AUTO_START_REVERSE: 3;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMarkerElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMarkerElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGMarkerElement: {
+ prototype: SVGMarkerElement;
+ new(): SVGMarkerElement;
+ readonly SVG_MARKERUNITS_UNKNOWN: 0;
+ readonly SVG_MARKERUNITS_USERSPACEONUSE: 1;
+ readonly SVG_MARKERUNITS_STROKEWIDTH: 2;
+ readonly SVG_MARKER_ORIENT_UNKNOWN: 0;
+ readonly SVG_MARKER_ORIENT_AUTO: 1;
+ readonly SVG_MARKER_ORIENT_ANGLE: 2;
+ readonly SVG_MARKER_ORIENT_AUTO_START_REVERSE: 3;
+ isInstance(obj): obj is SVGMarkerElement;
+};
+
+/**
+ * Provides access to the properties of <mask> elements, as well as methods to manipulate them.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement)
+ */
+interface SVGMaskElement extends SVGElement {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/height) */
+ readonly height: SVGAnimatedLength;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/maskContentUnits) */
+ readonly maskContentUnits: SVGAnimatedEnumeration;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/maskUnits) */
+ readonly maskUnits: SVGAnimatedEnumeration;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/width) */
+ readonly width: SVGAnimatedLength;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/x) */
+ readonly x: SVGAnimatedLength;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMaskElement/y) */
+ readonly y: SVGAnimatedLength;
+ readonly SVG_MASKTYPE_LUMINANCE: 0;
+ readonly SVG_MASKTYPE_ALPHA: 1;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMaskElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMaskElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGMaskElement: {
+ prototype: SVGMaskElement;
+ new(): SVGMaskElement;
+ readonly SVG_MASKTYPE_LUMINANCE: 0;
+ readonly SVG_MASKTYPE_ALPHA: 1;
+ isInstance(obj): obj is SVGMaskElement;
+};
+
+interface SVGMatrix {
+ a: number;
+ b: number;
+ c: number;
+ d: number;
+ e: number;
+ f: number;
+ flipX(): SVGMatrix;
+ flipY(): SVGMatrix;
+ inverse(): SVGMatrix;
+ multiply(secondMatrix: SVGMatrix): SVGMatrix;
+ rotate(angle: number): SVGMatrix;
+ rotateFromVector(x: number, y: number): SVGMatrix;
+ scale(scaleFactor: number): SVGMatrix;
+ scaleNonUniform(scaleFactorX: number, scaleFactorY: number): SVGMatrix;
+ skewX(angle: number): SVGMatrix;
+ skewY(angle: number): SVGMatrix;
+ translate(x: number, y: number): SVGMatrix;
+}
+
+declare var SVGMatrix: {
+ prototype: SVGMatrix;
+ new(): SVGMatrix;
+ isInstance(obj): obj is SVGMatrix;
+};
+
+/**
+ * Corresponds to the <metadata> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGMetadataElement)
+ */
+interface SVGMetadataElement extends SVGElement {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMetadataElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGMetadataElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGMetadataElement: {
+ prototype: SVGMetadataElement;
+ new(): SVGMetadataElement;
+ isInstance(obj): obj is SVGMetadataElement;
+};
+
+/**
+ * Corresponds to the <number> basic data type.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumber)
+ */
+interface SVGNumber {
+ value: number;
+}
+
+declare var SVGNumber: {
+ prototype: SVGNumber;
+ new(): SVGNumber;
+ isInstance(obj): obj is SVGNumber;
+};
+
+/**
+ * The SVGNumberList defines a list of SVGNumber objects.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGNumberList)
+ */
+interface SVGNumberList {
+ readonly length: number;
+ readonly numberOfItems: number;
+ appendItem(newItem: SVGNumber): SVGNumber;
+ clear(): void;
+ getItem(index: number): SVGNumber;
+ initialize(newItem: SVGNumber): SVGNumber;
+ insertItemBefore(newItem: SVGNumber, index: number): SVGNumber;
+ removeItem(index: number): SVGNumber;
+ replaceItem(newItem: SVGNumber, index: number): SVGNumber;
+ [index: number]: SVGNumber;
+}
+
+declare var SVGNumberList: {
+ prototype: SVGNumberList;
+ new(): SVGNumberList;
+ isInstance(obj): obj is SVGNumberList;
+};
+
+/**
+ * Corresponds to the <path> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPathElement)
+ */
+interface SVGPathElement extends SVGGeometryElement, SVGAnimatedPathData {
+ /** @deprecated */
+ getPathSegAtLength(distance: number): number;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGPathElement: {
+ prototype: SVGPathElement;
+ new(): SVGPathElement;
+ isInstance(obj): obj is SVGPathElement;
+};
+
+interface SVGPathSeg {
+ readonly pathSegType: number;
+ readonly pathSegTypeAsLetter: string;
+ readonly PATHSEG_UNKNOWN: 0;
+ readonly PATHSEG_CLOSEPATH: 1;
+ readonly PATHSEG_MOVETO_ABS: 2;
+ readonly PATHSEG_MOVETO_REL: 3;
+ readonly PATHSEG_LINETO_ABS: 4;
+ readonly PATHSEG_LINETO_REL: 5;
+ readonly PATHSEG_CURVETO_CUBIC_ABS: 6;
+ readonly PATHSEG_CURVETO_CUBIC_REL: 7;
+ readonly PATHSEG_CURVETO_QUADRATIC_ABS: 8;
+ readonly PATHSEG_CURVETO_QUADRATIC_REL: 9;
+ readonly PATHSEG_ARC_ABS: 10;
+ readonly PATHSEG_ARC_REL: 11;
+ readonly PATHSEG_LINETO_HORIZONTAL_ABS: 12;
+ readonly PATHSEG_LINETO_HORIZONTAL_REL: 13;
+ readonly PATHSEG_LINETO_VERTICAL_ABS: 14;
+ readonly PATHSEG_LINETO_VERTICAL_REL: 15;
+ readonly PATHSEG_CURVETO_CUBIC_SMOOTH_ABS: 16;
+ readonly PATHSEG_CURVETO_CUBIC_SMOOTH_REL: 17;
+ readonly PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: 18;
+ readonly PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: 19;
+}
+
+interface SVGPathSegArcAbs extends SVGPathSeg {
+ angle: number;
+ largeArcFlag: boolean;
+ r1: number;
+ r2: number;
+ sweepFlag: boolean;
+ x: number;
+ y: number;
+}
+
+interface SVGPathSegArcRel extends SVGPathSeg {
+ angle: number;
+ largeArcFlag: boolean;
+ r1: number;
+ r2: number;
+ sweepFlag: boolean;
+ x: number;
+ y: number;
+}
+
+interface SVGPathSegClosePath extends SVGPathSeg {
+}
+
+interface SVGPathSegCurvetoCubicAbs extends SVGPathSeg {
+ x: number;
+ x1: number;
+ x2: number;
+ y: number;
+ y1: number;
+ y2: number;
+}
+
+interface SVGPathSegCurvetoCubicRel extends SVGPathSeg {
+ x: number;
+ x1: number;
+ x2: number;
+ y: number;
+ y1: number;
+ y2: number;
+}
+
+interface SVGPathSegCurvetoCubicSmoothAbs extends SVGPathSeg {
+ x: number;
+ x2: number;
+ y: number;
+ y2: number;
+}
+
+interface SVGPathSegCurvetoCubicSmoothRel extends SVGPathSeg {
+ x: number;
+ x2: number;
+ y: number;
+ y2: number;
+}
+
+interface SVGPathSegCurvetoQuadraticAbs extends SVGPathSeg {
+ x: number;
+ x1: number;
+ y: number;
+ y1: number;
+}
+
+interface SVGPathSegCurvetoQuadraticRel extends SVGPathSeg {
+ x: number;
+ x1: number;
+ y: number;
+ y1: number;
+}
+
+interface SVGPathSegCurvetoQuadraticSmoothAbs extends SVGPathSeg {
+ x: number;
+ y: number;
+}
+
+interface SVGPathSegCurvetoQuadraticSmoothRel extends SVGPathSeg {
+ x: number;
+ y: number;
+}
+
+interface SVGPathSegLinetoAbs extends SVGPathSeg {
+ x: number;
+ y: number;
+}
+
+interface SVGPathSegLinetoHorizontalAbs extends SVGPathSeg {
+ x: number;
+}
+
+interface SVGPathSegLinetoHorizontalRel extends SVGPathSeg {
+ x: number;
+}
+
+interface SVGPathSegLinetoRel extends SVGPathSeg {
+ x: number;
+ y: number;
+}
+
+interface SVGPathSegLinetoVerticalAbs extends SVGPathSeg {
+ y: number;
+}
+
+interface SVGPathSegLinetoVerticalRel extends SVGPathSeg {
+ y: number;
+}
+
+interface SVGPathSegList {
+ readonly length: number;
+ readonly numberOfItems: number;
+ getItem(index: number): SVGPathSeg;
+ [index: number]: SVGPathSeg;
+}
+
+declare var SVGPathSegList: {
+ prototype: SVGPathSegList;
+ new(): SVGPathSegList;
+ isInstance(obj): obj is SVGPathSegList;
+};
+
+interface SVGPathSegMovetoAbs extends SVGPathSeg {
+ x: number;
+ y: number;
+}
+
+interface SVGPathSegMovetoRel extends SVGPathSeg {
+ x: number;
+ y: number;
+}
+
+/**
+ * Corresponds to the <pattern> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPatternElement)
+ */
+interface SVGPatternElement extends SVGElement, SVGFitToViewBox, SVGURIReference {
+ readonly height: SVGAnimatedLength;
+ readonly patternContentUnits: SVGAnimatedEnumeration;
+ readonly patternTransform: SVGAnimatedTransformList;
+ readonly patternUnits: SVGAnimatedEnumeration;
+ readonly width: SVGAnimatedLength;
+ readonly x: SVGAnimatedLength;
+ readonly y: SVGAnimatedLength;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPatternElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPatternElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGPatternElement: {
+ prototype: SVGPatternElement;
+ new(): SVGPatternElement;
+ isInstance(obj): obj is SVGPatternElement;
+};
+
+/**
+ * An SVGPoint represents a 2D or 3D point in the SVG coordinate system.
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPoint)
+ */
+interface SVGPoint {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPoint/x)
+ */
+ x: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPoint/y)
+ */
+ y: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPoint/matrixTransform)
+ */
+ matrixTransform(matrix?: DOMMatrix2DInit): SVGPoint;
+}
+
+/** @deprecated */
+declare var SVGPoint: {
+ prototype: SVGPoint;
+ new(): SVGPoint;
+ isInstance(obj): obj is SVGPoint;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList) */
+interface SVGPointList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/numberOfItems) */
+ readonly numberOfItems: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/appendItem) */
+ appendItem(newItem: SVGPoint): SVGPoint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/clear) */
+ clear(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/getItem) */
+ getItem(index: number): SVGPoint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/initialize) */
+ initialize(newItem: SVGPoint): SVGPoint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/insertItemBefore) */
+ insertItemBefore(newItem: SVGPoint, index: number): SVGPoint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/removeItem) */
+ removeItem(index: number): SVGPoint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPointList/replaceItem) */
+ replaceItem(newItem: SVGPoint, index: number): SVGPoint;
+ [index: number]: SVGPoint;
+}
+
+declare var SVGPointList: {
+ prototype: SVGPointList;
+ new(): SVGPointList;
+ isInstance(obj): obj is SVGPointList;
+};
+
+/**
+ * Provides access to the properties of <polygon> elements, as well as methods to manipulate them.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPolygonElement)
+ */
+interface SVGPolygonElement extends SVGGeometryElement, SVGAnimatedPoints {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolygonElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolygonElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGPolygonElement: {
+ prototype: SVGPolygonElement;
+ new(): SVGPolygonElement;
+ isInstance(obj): obj is SVGPolygonElement;
+};
+
+/**
+ * Provides access to the properties of <polyline> elements, as well as methods to manipulate them.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPolylineElement)
+ */
+interface SVGPolylineElement extends SVGGeometryElement, SVGAnimatedPoints {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolylineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGPolylineElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGPolylineElement: {
+ prototype: SVGPolylineElement;
+ new(): SVGPolylineElement;
+ isInstance(obj): obj is SVGPolylineElement;
+};
+
+/**
+ * Corresponds to the preserveAspectRatio attribute, which is available for some of SVG's elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGPreserveAspectRatio)
+ */
+interface SVGPreserveAspectRatio {
+ align: number;
+ meetOrSlice: number;
+ readonly SVG_PRESERVEASPECTRATIO_UNKNOWN: 0;
+ readonly SVG_PRESERVEASPECTRATIO_NONE: 1;
+ readonly SVG_PRESERVEASPECTRATIO_XMINYMIN: 2;
+ readonly SVG_PRESERVEASPECTRATIO_XMIDYMIN: 3;
+ readonly SVG_PRESERVEASPECTRATIO_XMAXYMIN: 4;
+ readonly SVG_PRESERVEASPECTRATIO_XMINYMID: 5;
+ readonly SVG_PRESERVEASPECTRATIO_XMIDYMID: 6;
+ readonly SVG_PRESERVEASPECTRATIO_XMAXYMID: 7;
+ readonly SVG_PRESERVEASPECTRATIO_XMINYMAX: 8;
+ readonly SVG_PRESERVEASPECTRATIO_XMIDYMAX: 9;
+ readonly SVG_PRESERVEASPECTRATIO_XMAXYMAX: 10;
+ readonly SVG_MEETORSLICE_UNKNOWN: 0;
+ readonly SVG_MEETORSLICE_MEET: 1;
+ readonly SVG_MEETORSLICE_SLICE: 2;
+}
+
+declare var SVGPreserveAspectRatio: {
+ prototype: SVGPreserveAspectRatio;
+ new(): SVGPreserveAspectRatio;
+ readonly SVG_PRESERVEASPECTRATIO_UNKNOWN: 0;
+ readonly SVG_PRESERVEASPECTRATIO_NONE: 1;
+ readonly SVG_PRESERVEASPECTRATIO_XMINYMIN: 2;
+ readonly SVG_PRESERVEASPECTRATIO_XMIDYMIN: 3;
+ readonly SVG_PRESERVEASPECTRATIO_XMAXYMIN: 4;
+ readonly SVG_PRESERVEASPECTRATIO_XMINYMID: 5;
+ readonly SVG_PRESERVEASPECTRATIO_XMIDYMID: 6;
+ readonly SVG_PRESERVEASPECTRATIO_XMAXYMID: 7;
+ readonly SVG_PRESERVEASPECTRATIO_XMINYMAX: 8;
+ readonly SVG_PRESERVEASPECTRATIO_XMIDYMAX: 9;
+ readonly SVG_PRESERVEASPECTRATIO_XMAXYMAX: 10;
+ readonly SVG_MEETORSLICE_UNKNOWN: 0;
+ readonly SVG_MEETORSLICE_MEET: 1;
+ readonly SVG_MEETORSLICE_SLICE: 2;
+ isInstance(obj): obj is SVGPreserveAspectRatio;
+};
+
+/**
+ * Corresponds to the <RadialGradient> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRadialGradientElement)
+ */
+interface SVGRadialGradientElement extends SVGGradientElement {
+ readonly cx: SVGAnimatedLength;
+ readonly cy: SVGAnimatedLength;
+ readonly fr: SVGAnimatedLength;
+ readonly fx: SVGAnimatedLength;
+ readonly fy: SVGAnimatedLength;
+ readonly r: SVGAnimatedLength;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRadialGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRadialGradientElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGRadialGradientElement: {
+ prototype: SVGRadialGradientElement;
+ new(): SVGRadialGradientElement;
+ isInstance(obj): obj is SVGRadialGradientElement;
+};
+
+/**
+ * The SVGRect represents a rectangle. Rectangles consist of an x and y coordinate pair identifying a minimum x value, a minimum y value, and a width and height, which are constrained to be non-negative.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRect)
+ */
+interface SVGRect {
+ height: number;
+ width: number;
+ x: number;
+ y: number;
+}
+
+declare var SVGRect: {
+ prototype: SVGRect;
+ new(): SVGRect;
+ isInstance(obj): obj is SVGRect;
+};
+
+/**
+ * Provides access to the properties of <rect> elements, as well as methods to manipulate them.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGRectElement)
+ */
+interface SVGRectElement extends SVGGeometryElement {
+ readonly height: SVGAnimatedLength;
+ readonly rx: SVGAnimatedLength;
+ readonly ry: SVGAnimatedLength;
+ readonly width: SVGAnimatedLength;
+ readonly x: SVGAnimatedLength;
+ readonly y: SVGAnimatedLength;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGRectElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGRectElement: {
+ prototype: SVGRectElement;
+ new(): SVGRectElement;
+ isInstance(obj): obj is SVGRectElement;
+};
+
+/**
+ * Provides access to the properties of <svg> elements, as well as methods to manipulate them. This interface contains also various miscellaneous commonly-used utility methods, such as matrix operations and the ability to control the time of redraw on visual rendering devices.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSVGElement)
+ */
+interface SVGSVGElement extends SVGGraphicsElement, SVGFitToViewBox, SVGZoomAndPan {
+ currentScale: number;
+ readonly currentTranslate: SVGPoint;
+ readonly height: SVGAnimatedLength;
+ readonly width: SVGAnimatedLength;
+ readonly x: SVGAnimatedLength;
+ readonly y: SVGAnimatedLength;
+ animationsPaused(): boolean;
+ createSVGAngle(): SVGAngle;
+ createSVGLength(): SVGLength;
+ createSVGMatrix(): SVGMatrix;
+ createSVGNumber(): SVGNumber;
+ createSVGPoint(): SVGPoint;
+ createSVGRect(): SVGRect;
+ createSVGTransform(): SVGTransform;
+ createSVGTransformFromMatrix(matrix?: DOMMatrix2DInit): SVGTransform;
+ deselectAll(): void;
+ /** @deprecated */
+ forceRedraw(): void;
+ getCurrentTime(): number;
+ getElementById(elementId: string): Element | null;
+ pauseAnimations(): void;
+ setCurrentTime(seconds: number): void;
+ /** @deprecated */
+ suspendRedraw(maxWaitMilliseconds: number): number;
+ unpauseAnimations(): void;
+ /** @deprecated */
+ unsuspendRedraw(suspendHandleID: number): void;
+ /** @deprecated */
+ unsuspendRedrawAll(): void;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGSVGElement: {
+ prototype: SVGSVGElement;
+ new(): SVGSVGElement;
+ readonly SVG_ZOOMANDPAN_UNKNOWN: 0;
+ readonly SVG_ZOOMANDPAN_DISABLE: 1;
+ readonly SVG_ZOOMANDPAN_MAGNIFY: 2;
+ isInstance(obj): obj is SVGSVGElement;
+};
+
+/**
+ * Corresponds to the SVG <script> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGScriptElement)
+ */
+interface SVGScriptElement extends SVGElement, SVGURIReference {
+ async: boolean;
+ crossOrigin: string | null;
+ defer: boolean;
+ type: string;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGScriptElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGScriptElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGScriptElement: {
+ prototype: SVGScriptElement;
+ new(): SVGScriptElement;
+ isInstance(obj): obj is SVGScriptElement;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSetElement) */
+interface SVGSetElement extends SVGAnimationElement {
+ addEventListener<K extends keyof SVGAnimationElementEventMap>(type: K, listener: (this: SVGSetElement, ev: SVGAnimationElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGAnimationElementEventMap>(type: K, listener: (this: SVGSetElement, ev: SVGAnimationElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGSetElement: {
+ prototype: SVGSetElement;
+ new(): SVGSetElement;
+ isInstance(obj): obj is SVGSetElement;
+};
+
+/**
+ * Corresponds to the <stop> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStopElement)
+ */
+interface SVGStopElement extends SVGElement {
+ readonly offset: SVGAnimatedNumber;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStopElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStopElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGStopElement: {
+ prototype: SVGStopElement;
+ new(): SVGStopElement;
+ isInstance(obj): obj is SVGStopElement;
+};
+
+/**
+ * The SVGStringList defines a list of DOMString objects.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStringList)
+ */
+interface SVGStringList {
+ readonly length: number;
+ readonly numberOfItems: number;
+ appendItem(newItem: string): string;
+ clear(): void;
+ getItem(index: number): string;
+ initialize(newItem: string): string;
+ insertItemBefore(newItem: string, index: number): string;
+ removeItem(index: number): string;
+ replaceItem(newItem: string, index: number): string;
+ [index: number]: string;
+}
+
+declare var SVGStringList: {
+ prototype: SVGStringList;
+ new(): SVGStringList;
+ isInstance(obj): obj is SVGStringList;
+};
+
+/**
+ * Corresponds to the SVG <style> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStyleElement)
+ */
+interface SVGStyleElement extends SVGElement, LinkStyle {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStyleElement/disabled) */
+ disabled: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStyleElement/media) */
+ media: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStyleElement/title) */
+ title: string;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGStyleElement/type)
+ */
+ type: string;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStyleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGStyleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGStyleElement: {
+ prototype: SVGStyleElement;
+ new(): SVGStyleElement;
+ isInstance(obj): obj is SVGStyleElement;
+};
+
+/**
+ * Corresponds to the <switch> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSwitchElement)
+ */
+interface SVGSwitchElement extends SVGGraphicsElement {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSwitchElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSwitchElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGSwitchElement: {
+ prototype: SVGSwitchElement;
+ new(): SVGSwitchElement;
+ isInstance(obj): obj is SVGSwitchElement;
+};
+
+/**
+ * Corresponds to the <symbol> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGSymbolElement)
+ */
+interface SVGSymbolElement extends SVGElement, SVGFitToViewBox, SVGTests {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSymbolElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGSymbolElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGSymbolElement: {
+ prototype: SVGSymbolElement;
+ new(): SVGSymbolElement;
+ isInstance(obj): obj is SVGSymbolElement;
+};
+
+/**
+ * A <tspan> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTSpanElement)
+ */
+interface SVGTSpanElement extends SVGTextPositioningElement {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTSpanElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTSpanElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGTSpanElement: {
+ prototype: SVGTSpanElement;
+ new(): SVGTSpanElement;
+ isInstance(obj): obj is SVGTSpanElement;
+};
+
+interface SVGTests {
+ readonly requiredExtensions: SVGStringList;
+ readonly systemLanguage: SVGStringList;
+}
+
+/**
+ * Implemented by elements that support rendering child text content. It is inherited by various text-related interfaces, such as SVGTextElement, SVGTSpanElement, SVGTRefElement, SVGAltGlyphElement and SVGTextPathElement.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextContentElement)
+ */
+interface SVGTextContentElement extends SVGGraphicsElement {
+ readonly lengthAdjust: SVGAnimatedEnumeration;
+ readonly textLength: SVGAnimatedLength;
+ getCharNumAtPosition(point?: DOMPointInit): number;
+ getComputedTextLength(): number;
+ getEndPositionOfChar(charnum: number): SVGPoint;
+ getExtentOfChar(charnum: number): SVGRect;
+ getNumberOfChars(): number;
+ getRotationOfChar(charnum: number): number;
+ getStartPositionOfChar(charnum: number): SVGPoint;
+ getSubStringLength(charnum: number, nchars: number): number;
+ /** @deprecated */
+ selectSubString(charnum: number, nchars: number): void;
+ readonly LENGTHADJUST_UNKNOWN: 0;
+ readonly LENGTHADJUST_SPACING: 1;
+ readonly LENGTHADJUST_SPACINGANDGLYPHS: 2;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextContentElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextContentElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGTextContentElement: {
+ prototype: SVGTextContentElement;
+ new(): SVGTextContentElement;
+ readonly LENGTHADJUST_UNKNOWN: 0;
+ readonly LENGTHADJUST_SPACING: 1;
+ readonly LENGTHADJUST_SPACINGANDGLYPHS: 2;
+ isInstance(obj): obj is SVGTextContentElement;
+};
+
+/**
+ * Corresponds to the <text> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextElement)
+ */
+interface SVGTextElement extends SVGTextPositioningElement {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGTextElement: {
+ prototype: SVGTextElement;
+ new(): SVGTextElement;
+ isInstance(obj): obj is SVGTextElement;
+};
+
+/**
+ * Corresponds to the <textPath> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextPathElement)
+ */
+interface SVGTextPathElement extends SVGTextContentElement, SVGURIReference {
+ readonly method: SVGAnimatedEnumeration;
+ readonly spacing: SVGAnimatedEnumeration;
+ readonly startOffset: SVGAnimatedLength;
+ readonly TEXTPATH_METHODTYPE_UNKNOWN: 0;
+ readonly TEXTPATH_METHODTYPE_ALIGN: 1;
+ readonly TEXTPATH_METHODTYPE_STRETCH: 2;
+ readonly TEXTPATH_SPACINGTYPE_UNKNOWN: 0;
+ readonly TEXTPATH_SPACINGTYPE_AUTO: 1;
+ readonly TEXTPATH_SPACINGTYPE_EXACT: 2;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPathElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGTextPathElement: {
+ prototype: SVGTextPathElement;
+ new(): SVGTextPathElement;
+ readonly TEXTPATH_METHODTYPE_UNKNOWN: 0;
+ readonly TEXTPATH_METHODTYPE_ALIGN: 1;
+ readonly TEXTPATH_METHODTYPE_STRETCH: 2;
+ readonly TEXTPATH_SPACINGTYPE_UNKNOWN: 0;
+ readonly TEXTPATH_SPACINGTYPE_AUTO: 1;
+ readonly TEXTPATH_SPACINGTYPE_EXACT: 2;
+ isInstance(obj): obj is SVGTextPathElement;
+};
+
+/**
+ * Implemented by elements that support attributes that position individual text glyphs. It is inherited by SVGTextElement, SVGTSpanElement, SVGTRefElement and SVGAltGlyphElement.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTextPositioningElement)
+ */
+interface SVGTextPositioningElement extends SVGTextContentElement {
+ readonly dx: SVGAnimatedLengthList;
+ readonly dy: SVGAnimatedLengthList;
+ readonly rotate: SVGAnimatedNumberList;
+ readonly x: SVGAnimatedLengthList;
+ readonly y: SVGAnimatedLengthList;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPositioningElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTextPositioningElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGTextPositioningElement: {
+ prototype: SVGTextPositioningElement;
+ new(): SVGTextPositioningElement;
+ isInstance(obj): obj is SVGTextPositioningElement;
+};
+
+/**
+ * Corresponds to the <title> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTitleElement)
+ */
+interface SVGTitleElement extends SVGElement {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTitleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGTitleElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGTitleElement: {
+ prototype: SVGTitleElement;
+ new(): SVGTitleElement;
+ isInstance(obj): obj is SVGTitleElement;
+};
+
+/**
+ * SVGTransform is the interface for one of the component transformations within an SVGTransformList; thus, an SVGTransform object corresponds to a single component (e.g., scale(…) or matrix(…)) within a transform attribute.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransform)
+ */
+interface SVGTransform {
+ readonly angle: number;
+ readonly matrix: SVGMatrix;
+ readonly type: number;
+ setMatrix(matrix?: DOMMatrix2DInit): void;
+ setRotate(angle: number, cx: number, cy: number): void;
+ setScale(sx: number, sy: number): void;
+ setSkewX(angle: number): void;
+ setSkewY(angle: number): void;
+ setTranslate(tx: number, ty: number): void;
+ readonly SVG_TRANSFORM_UNKNOWN: 0;
+ readonly SVG_TRANSFORM_MATRIX: 1;
+ readonly SVG_TRANSFORM_TRANSLATE: 2;
+ readonly SVG_TRANSFORM_SCALE: 3;
+ readonly SVG_TRANSFORM_ROTATE: 4;
+ readonly SVG_TRANSFORM_SKEWX: 5;
+ readonly SVG_TRANSFORM_SKEWY: 6;
+}
+
+declare var SVGTransform: {
+ prototype: SVGTransform;
+ new(): SVGTransform;
+ readonly SVG_TRANSFORM_UNKNOWN: 0;
+ readonly SVG_TRANSFORM_MATRIX: 1;
+ readonly SVG_TRANSFORM_TRANSLATE: 2;
+ readonly SVG_TRANSFORM_SCALE: 3;
+ readonly SVG_TRANSFORM_ROTATE: 4;
+ readonly SVG_TRANSFORM_SKEWX: 5;
+ readonly SVG_TRANSFORM_SKEWY: 6;
+ isInstance(obj): obj is SVGTransform;
+};
+
+/**
+ * The SVGTransformList defines a list of SVGTransform objects.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGTransformList)
+ */
+interface SVGTransformList {
+ readonly length: number;
+ readonly numberOfItems: number;
+ appendItem(newItem: SVGTransform): SVGTransform;
+ clear(): void;
+ consolidate(): SVGTransform | null;
+ createSVGTransformFromMatrix(matrix?: DOMMatrix2DInit): SVGTransform;
+ getItem(index: number): SVGTransform;
+ initialize(newItem: SVGTransform): SVGTransform;
+ insertItemBefore(newItem: SVGTransform, index: number): SVGTransform;
+ removeItem(index: number): SVGTransform;
+ replaceItem(newItem: SVGTransform, index: number): SVGTransform;
+ [index: number]: SVGTransform;
+}
+
+declare var SVGTransformList: {
+ prototype: SVGTransformList;
+ new(): SVGTransformList;
+ isInstance(obj): obj is SVGTransformList;
+};
+
+interface SVGURIReference {
+ readonly href: SVGAnimatedString;
+}
+
+/**
+ * A commonly used set of constants used for reflecting gradientUnits, patternContentUnits and other similar attributes.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGUnitTypes)
+ */
+interface SVGUnitTypes {
+ readonly SVG_UNIT_TYPE_UNKNOWN: 0;
+ readonly SVG_UNIT_TYPE_USERSPACEONUSE: 1;
+ readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: 2;
+}
+
+declare var SVGUnitTypes: {
+ prototype: SVGUnitTypes;
+ new(): SVGUnitTypes;
+ readonly SVG_UNIT_TYPE_UNKNOWN: 0;
+ readonly SVG_UNIT_TYPE_USERSPACEONUSE: 1;
+ readonly SVG_UNIT_TYPE_OBJECTBOUNDINGBOX: 2;
+ isInstance(obj): obj is SVGUnitTypes;
+};
+
+/**
+ * Corresponds to the <use> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGUseElement)
+ */
+interface SVGUseElement extends SVGGraphicsElement, SVGURIReference {
+ readonly height: SVGAnimatedLength;
+ readonly width: SVGAnimatedLength;
+ readonly x: SVGAnimatedLength;
+ readonly y: SVGAnimatedLength;
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGUseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGUseElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGUseElement: {
+ prototype: SVGUseElement;
+ new(): SVGUseElement;
+ isInstance(obj): obj is SVGUseElement;
+};
+
+/**
+ * Provides access to the properties of <view> elements, as well as methods to manipulate them.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGViewElement)
+ */
+interface SVGViewElement extends SVGElement, SVGFitToViewBox, SVGZoomAndPan {
+ addEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGViewElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SVGElementEventMap>(type: K, listener: (this: SVGViewElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SVGViewElement: {
+ prototype: SVGViewElement;
+ new(): SVGViewElement;
+ readonly SVG_ZOOMANDPAN_UNKNOWN: 0;
+ readonly SVG_ZOOMANDPAN_DISABLE: 1;
+ readonly SVG_ZOOMANDPAN_MAGNIFY: 2;
+ isInstance(obj): obj is SVGViewElement;
+};
+
+interface SVGZoomAndPan {
+ zoomAndPan: number;
+ readonly SVG_ZOOMANDPAN_UNKNOWN: 0;
+ readonly SVG_ZOOMANDPAN_DISABLE: 1;
+ readonly SVG_ZOOMANDPAN_MAGNIFY: 2;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Sanitizer)
+ */
+interface Sanitizer {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Sanitizer/sanitize) */
+ sanitize(input: SanitizerInput): DocumentFragment;
+}
+
+declare var Sanitizer: {
+ prototype: Sanitizer;
+ new(sanitizerConfig?: SanitizerConfig): Sanitizer;
+ isInstance(obj): obj is Sanitizer;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Scheduler) */
+interface Scheduler {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Scheduler/postTask) */
+ postTask(callback: SchedulerPostTaskCallback, options?: SchedulerPostTaskOptions): Promise<any>;
+}
+
+declare var Scheduler: {
+ prototype: Scheduler;
+ new(): Scheduler;
+ isInstance(obj): obj is Scheduler;
+};
+
+interface ScreenEventMap {
+ "change": Event;
+ "mozorientationchange": Event;
+}
+
+/**
+ * A screen, usually the one on which the current window is being rendered, and is obtained using window.screen.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen)
+ */
+interface Screen extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/availHeight) */
+ readonly availHeight: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/availLeft) */
+ readonly availLeft: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/availTop) */
+ readonly availTop: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/availWidth) */
+ readonly availWidth: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/colorDepth) */
+ readonly colorDepth: number;
+ readonly colorGamut: ScreenColorGamut;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/height) */
+ readonly height: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/left) */
+ readonly left: number;
+ readonly luminance: ScreenLuminance | null;
+ /**
+ * @deprecated This is a legacy alias of `orientation`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/orientation)
+ */
+ readonly mozOrientation: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/change_event) */
+ onchange: ((this: Screen, ev: Event) => any) | null;
+ /**
+ * @deprecated This is a legacy alias of `onorientationchange`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/orientationchange_event)
+ */
+ onmozorientationchange: ((this: Screen, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/orientation) */
+ readonly orientation: ScreenOrientation;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/pixelDepth) */
+ readonly pixelDepth: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/top)
+ */
+ readonly top: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/width) */
+ readonly width: number;
+ /**
+ * @deprecated This is a legacy alias of `lockOrientation`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/lockOrientation)
+ */
+ mozLockOrientation(orientation: string): boolean;
+ mozLockOrientation(orientation: string[]): boolean;
+ /**
+ * @deprecated This is a legacy alias of `unlockOrientation`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Screen/unlockOrientation)
+ */
+ mozUnlockOrientation(): void;
+ addEventListener<K extends keyof ScreenEventMap>(type: K, listener: (this: Screen, ev: ScreenEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof ScreenEventMap>(type: K, listener: (this: Screen, ev: ScreenEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var Screen: {
+ prototype: Screen;
+ new(): Screen;
+ isInstance(obj): obj is Screen;
+};
+
+interface ScreenLuminance {
+ readonly max: number;
+ readonly maxAverage: number;
+ readonly min: number;
+}
+
+declare var ScreenLuminance: {
+ prototype: ScreenLuminance;
+ new(): ScreenLuminance;
+ isInstance(obj): obj is ScreenLuminance;
+};
+
+interface ScreenOrientationEventMap {
+ "change": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScreenOrientation) */
+interface ScreenOrientation extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScreenOrientation/angle) */
+ readonly angle: number;
+ onchange: ((this: ScreenOrientation, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScreenOrientation/type) */
+ readonly type: OrientationType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScreenOrientation/lock) */
+ lock(orientation: OrientationLockType): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScreenOrientation/unlock) */
+ unlock(): void;
+ addEventListener<K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof ScreenOrientationEventMap>(type: K, listener: (this: ScreenOrientation, ev: ScreenOrientationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var ScreenOrientation: {
+ prototype: ScreenOrientation;
+ new(): ScreenOrientation;
+ isInstance(obj): obj is ScreenOrientation;
+};
+
+interface ScriptProcessorNodeEventMap {
+ "audioprocess": Event;
+}
+
+/**
+ * Allows the generation, processing, or analyzing of audio using JavaScript.
+ * @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).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScriptProcessorNode)
+ */
+interface ScriptProcessorNode extends AudioNode, AudioNodePassThrough {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScriptProcessorNode/bufferSize)
+ */
+ readonly bufferSize: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ScriptProcessorNode/audioprocess_event)
+ */
+ onaudioprocess: ((this: ScriptProcessorNode, ev: Event) => any) | null;
+ addEventListener<K extends keyof ScriptProcessorNodeEventMap>(type: K, listener: (this: ScriptProcessorNode, ev: ScriptProcessorNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof ScriptProcessorNodeEventMap>(type: K, listener: (this: ScriptProcessorNode, ev: ScriptProcessorNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+/** @deprecated */
+declare var ScriptProcessorNode: {
+ prototype: ScriptProcessorNode;
+ new(): ScriptProcessorNode;
+ isInstance(obj): obj is ScriptProcessorNode;
+};
+
+interface ScrollAreaEvent extends UIEvent {
+ readonly height: number;
+ readonly width: number;
+ readonly x: number;
+ readonly y: number;
+ initScrollAreaEvent(type: string, canBubble?: boolean, cancelable?: boolean, view?: Window | null, detail?: number, x?: number, y?: number, width?: number, height?: number): void;
+}
+
+declare var ScrollAreaEvent: {
+ prototype: ScrollAreaEvent;
+ new(): ScrollAreaEvent;
+ isInstance(obj): obj is ScrollAreaEvent;
+};
+
+interface ScrollViewChangeEvent extends Event {
+ readonly state: ScrollState;
+}
+
+declare var ScrollViewChangeEvent: {
+ prototype: ScrollViewChangeEvent;
+ new(type: string, eventInit?: ScrollViewChangeEventInit): ScrollViewChangeEvent;
+ isInstance(obj): obj is ScrollViewChangeEvent;
+};
+
+/**
+ * Inherits from Event, and represents the event object of an event sent on a document or worker when its content security policy is violated.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent)
+ */
+interface SecurityPolicyViolationEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/blockedURI) */
+ readonly blockedURI: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/columnNumber) */
+ readonly columnNumber: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/disposition) */
+ readonly disposition: SecurityPolicyViolationEventDisposition;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/documentURI) */
+ readonly documentURI: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/effectiveDirective) */
+ readonly effectiveDirective: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/lineNumber) */
+ readonly lineNumber: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/originalPolicy) */
+ readonly originalPolicy: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/referrer) */
+ readonly referrer: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/sample) */
+ readonly sample: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/sourceFile) */
+ readonly sourceFile: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/statusCode) */
+ readonly statusCode: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SecurityPolicyViolationEvent/violatedDirective) */
+ readonly violatedDirective: string;
+}
+
+declare var SecurityPolicyViolationEvent: {
+ prototype: SecurityPolicyViolationEvent;
+ new(type: string, eventInitDict?: SecurityPolicyViolationEventInit): SecurityPolicyViolationEvent;
+ isInstance(obj): obj is SecurityPolicyViolationEvent;
+};
+
+/**
+ * A Selection object represents the range of text selected by the user or the current position of the caret. To obtain a Selection object for examination or modification, call Window.getSelection().
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection)
+ */
+interface Selection {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/anchorNode) */
+ readonly anchorNode: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/anchorOffset) */
+ readonly anchorOffset: number;
+ caretBidiLevel: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/focusNode) */
+ readonly focusNode: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/focusOffset) */
+ readonly focusOffset: number;
+ interlinePosition: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/isCollapsed) */
+ readonly isCollapsed: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/rangeCount) */
+ readonly rangeCount: number;
+ readonly selectionType: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/type) */
+ readonly type: string;
+ GetRangesForInterval(beginNode: Node, beginOffset: number, endNode: Node, endOffset: number, allowAdjacent: boolean): Range[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/addRange) */
+ addRange(range: Range): void;
+ addSelectionListener(newListener: nsISelectionListener): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/collapse) */
+ collapse(node: Node | null, offset?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/collapseToEnd) */
+ collapseToEnd(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/collapseToStart) */
+ collapseToStart(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/containsNode) */
+ containsNode(node: Node, allowPartialContainment?: boolean): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/deleteFromDocument) */
+ deleteFromDocument(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/removeAllRanges) */
+ empty(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/extend) */
+ extend(node: Node, offset?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/getRangeAt) */
+ getRangeAt(index: number): Range;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/modify) */
+ modify(alter: string, direction: string, granularity: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/removeAllRanges) */
+ removeAllRanges(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/removeRange) */
+ removeRange(range: Range): void;
+ removeSelectionListener(listenerToRemove: nsISelectionListener): void;
+ resetColors(): void;
+ scrollIntoView(aRegion: number, aIsSynchronous: boolean, aVPercent: number, aHPercent: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/selectAllChildren) */
+ selectAllChildren(node: Node): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/setBaseAndExtent) */
+ setBaseAndExtent(anchorNode: Node, anchorOffset: number, focusNode: Node, focusOffset: number): void;
+ setColors(aForegroundColor: string, aBackgroundColor: string, aAltForegroundColor: string, aAltBackgroundColor: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Selection/collapse) */
+ setPosition(node: Node | null, offset?: number): void;
+ toStringWithFormat(formatType: string, flags: number, wrapColumn: number): string;
+ toString(): string;
+}
+
+declare var Selection: {
+ prototype: Selection;
+ new(): Selection;
+ isInstance(obj): obj is Selection;
+};
+
+interface ServiceWorkerEventMap extends AbstractWorkerEventMap {
+ "statechange": Event;
+}
+
+/**
+ * This ServiceWorker API interface provides a reference to a service worker. Multiple browsing contexts (e.g. pages, workers, etc.) can be associated with the same service worker, each through a unique ServiceWorker object.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker)
+ */
+interface ServiceWorker extends EventTarget, AbstractWorker {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/statechange_event) */
+ onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/scriptURL) */
+ readonly scriptURL: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/state) */
+ readonly state: ServiceWorkerState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/postMessage) */
+ postMessage(message: any, transferable: any[]): void;
+ postMessage(message: any, options?: StructuredSerializeOptions): void;
+ addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var ServiceWorker: {
+ prototype: ServiceWorker;
+ new(): ServiceWorker;
+ isInstance(obj): obj is ServiceWorker;
+};
+
+interface ServiceWorkerContainerEventMap {
+ "controllerchange": Event;
+ "message": Event;
+ "messageerror": Event;
+}
+
+/**
+ * The ServiceWorkerContainer interface of the ServiceWorker API provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer)
+ */
+interface ServiceWorkerContainer extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/controller) */
+ readonly controller: ServiceWorker | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/controllerchange_event) */
+ oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/message_event) */
+ onmessage: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/messageerror_event) */
+ onmessageerror: ((this: ServiceWorkerContainer, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/ready) */
+ readonly ready: Promise<ServiceWorkerRegistration>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/getRegistration) */
+ getRegistration(documentURL?: string | URL): Promise<ServiceWorkerRegistration | undefined>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/getRegistrations) */
+ getRegistrations(): Promise<ServiceWorkerRegistration[]>;
+ getScopeForUrl(url: string): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/register) */
+ register(scriptURL: string | URL, options?: RegistrationOptions): Promise<ServiceWorkerRegistration>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerContainer/startMessages) */
+ startMessages(): void;
+ addEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof ServiceWorkerContainerEventMap>(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var ServiceWorkerContainer: {
+ prototype: ServiceWorkerContainer;
+ new(): ServiceWorkerContainer;
+ isInstance(obj): obj is ServiceWorkerContainer;
+};
+
+interface ServiceWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {
+ "activate": Event;
+ "fetch": Event;
+ "install": Event;
+ "message": Event;
+ "messageerror": Event;
+ "notificationclick": Event;
+ "notificationclose": Event;
+ "push": Event;
+ "pushsubscriptionchange": Event;
+}
+
+/**
+ * This ServiceWorker API interface represents the global execution context of a service worker.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope)
+ */
+interface ServiceWorkerGlobalScope extends WorkerGlobalScope, ExtensionGlobalsMixin {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/clients) */
+ readonly clients: Clients;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/activate_event) */
+ onactivate: ((this: ServiceWorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/fetch_event) */
+ onfetch: ((this: ServiceWorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/install_event) */
+ oninstall: ((this: ServiceWorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/message_event) */
+ onmessage: ((this: ServiceWorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/messageerror_event) */
+ onmessageerror: ((this: ServiceWorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/notificationclick_event) */
+ onnotificationclick: ((this: ServiceWorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/notificationclose_event) */
+ onnotificationclose: ((this: ServiceWorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/push_event) */
+ onpush: ((this: ServiceWorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/pushsubscriptionchange_event) */
+ onpushsubscriptionchange: ((this: ServiceWorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/registration) */
+ readonly registration: ServiceWorkerRegistration;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerGlobalScope/skipWaiting) */
+ skipWaiting(): Promise<void>;
+ addEventListener<K extends keyof ServiceWorkerGlobalScopeEventMap>(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof ServiceWorkerGlobalScopeEventMap>(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var ServiceWorkerGlobalScope: {
+ prototype: ServiceWorkerGlobalScope;
+ new(): ServiceWorkerGlobalScope;
+ isInstance(obj): obj is ServiceWorkerGlobalScope;
+};
+
+interface ServiceWorkerRegistrationEventMap {
+ "updatefound": Event;
+}
+
+/**
+ * This ServiceWorker API interface represents the service worker registration. You register a service worker to control one or more pages that share the same origin.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration)
+ */
+interface ServiceWorkerRegistration extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/active) */
+ readonly active: ServiceWorker | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/installing) */
+ readonly installing: ServiceWorker | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/navigationPreload) */
+ readonly navigationPreload: NavigationPreloadManager;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/updatefound_event) */
+ onupdatefound: ((this: ServiceWorkerRegistration, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/pushManager) */
+ readonly pushManager: PushManager;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/scope) */
+ readonly scope: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/updateViaCache) */
+ readonly updateViaCache: ServiceWorkerUpdateViaCache;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/waiting) */
+ readonly waiting: ServiceWorker | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/getNotifications) */
+ getNotifications(filter?: GetNotificationOptions): Promise<Notification[]>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/showNotification) */
+ showNotification(title: string, options?: NotificationOptions): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/unregister) */
+ unregister(): Promise<boolean>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorkerRegistration/update) */
+ update(): Promise<void>;
+ addEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof ServiceWorkerRegistrationEventMap>(type: K, listener: (this: ServiceWorkerRegistration, ev: ServiceWorkerRegistrationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var ServiceWorkerRegistration: {
+ prototype: ServiceWorkerRegistration;
+ new(): ServiceWorkerRegistration;
+ isInstance(obj): obj is ServiceWorkerRegistration;
+};
+
+interface SessionStoreFormData {
+ readonly children: (SessionStoreFormData | null)[] | null;
+ readonly id: Record<string, FormDataValue> | null;
+ readonly innerHTML: string | null;
+ readonly url: string | null;
+ readonly xpath: Record<string, FormDataValue> | null;
+ toJSON(): any;
+}
+
+declare var SessionStoreFormData: {
+ prototype: SessionStoreFormData;
+ new(): SessionStoreFormData;
+ isInstance(obj): obj is SessionStoreFormData;
+};
+
+interface SessionStoreScrollData {
+ readonly children: (SessionStoreScrollData | null)[] | null;
+ readonly scroll: string | null;
+ toJSON(): any;
+}
+
+declare var SessionStoreScrollData: {
+ prototype: SessionStoreScrollData;
+ new(): SessionStoreScrollData;
+ isInstance(obj): obj is SessionStoreScrollData;
+};
+
+interface ShadowRealmGlobalScope {
+}
+
+interface ShadowRootEventMap {
+ "slotchange": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot) */
+interface ShadowRoot extends DocumentFragment, DocumentOrShadowRoot {
+ readonly clonable: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/delegatesFocus) */
+ readonly delegatesFocus: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/host) */
+ readonly host: Element;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/innerHTML) */
+ innerHTML: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/mode) */
+ readonly mode: ShadowRootMode;
+ onslotchange: ((this: ShadowRoot, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ShadowRoot/slotAssignment) */
+ readonly slotAssignment: SlotAssignmentMode;
+ /** Throws a "NotSupportedError" DOMException if context object is a shadow root. */
+ createElementAndAppendChildAt(parentNode: Node, localName: string): Node;
+ getElementById(elementId: string): Element | null;
+ importNodeAndAppendChildAt(parentNode: Node, node: Node, deep?: boolean): Node;
+ isUAWidget(): boolean;
+ setHTMLUnsafe(html: string): void;
+ setIsUAWidget(): void;
+ addEventListener<K extends keyof ShadowRootEventMap>(type: K, listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof ShadowRootEventMap>(type: K, listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var ShadowRoot: {
+ prototype: ShadowRoot;
+ new(): ShadowRoot;
+ isInstance(obj): obj is ShadowRoot;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorker) */
+interface SharedWorker extends EventTarget, AbstractWorker {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorker/port) */
+ readonly port: MessagePort;
+ addEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: SharedWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof AbstractWorkerEventMap>(type: K, listener: (this: SharedWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SharedWorker: {
+ prototype: SharedWorker;
+ new(scriptURL: string | URL, options?: string | WorkerOptions): SharedWorker;
+ isInstance(obj): obj is SharedWorker;
+};
+
+interface SharedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {
+ "connect": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorkerGlobalScope) */
+interface SharedWorkerGlobalScope extends WorkerGlobalScope {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorkerGlobalScope/name) */
+ readonly name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorkerGlobalScope/connect_event) */
+ onconnect: ((this: SharedWorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SharedWorkerGlobalScope/close) */
+ close(): void;
+ addEventListener<K extends keyof SharedWorkerGlobalScopeEventMap>(type: K, listener: (this: SharedWorkerGlobalScope, ev: SharedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SharedWorkerGlobalScopeEventMap>(type: K, listener: (this: SharedWorkerGlobalScope, ev: SharedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SharedWorkerGlobalScope: {
+ prototype: SharedWorkerGlobalScope;
+ new(): SharedWorkerGlobalScope;
+ isInstance(obj): obj is SharedWorkerGlobalScope;
+};
+
+interface SimpleGestureEvent extends MouseEvent {
+ allowedDirections: number;
+ readonly clickCount: number;
+ readonly delta: number;
+ readonly direction: number;
+ initSimpleGestureEvent(typeArg: string, canBubbleArg?: boolean, cancelableArg?: boolean, viewArg?: Window | null, detailArg?: number, screenXArg?: number, screenYArg?: number, clientXArg?: number, clientYArg?: number, ctrlKeyArg?: boolean, altKeyArg?: boolean, shiftKeyArg?: boolean, metaKeyArg?: boolean, buttonArg?: number, relatedTargetArg?: EventTarget | null, allowedDirectionsArg?: number, directionArg?: number, deltaArg?: number, clickCount?: number): void;
+ readonly DIRECTION_UP: 1;
+ readonly DIRECTION_DOWN: 2;
+ readonly DIRECTION_LEFT: 4;
+ readonly DIRECTION_RIGHT: 8;
+ readonly ROTATION_COUNTERCLOCKWISE: 1;
+ readonly ROTATION_CLOCKWISE: 2;
+}
+
+declare var SimpleGestureEvent: {
+ prototype: SimpleGestureEvent;
+ new(): SimpleGestureEvent;
+ readonly DIRECTION_UP: 1;
+ readonly DIRECTION_DOWN: 2;
+ readonly DIRECTION_LEFT: 4;
+ readonly DIRECTION_RIGHT: 8;
+ readonly ROTATION_COUNTERCLOCKWISE: 1;
+ readonly ROTATION_CLOCKWISE: 2;
+ isInstance(obj): obj is SimpleGestureEvent;
+};
+
+interface SourceBufferEventMap {
+ "abort": Event;
+ "error": ErrorEvent;
+ "update": Event;
+ "updateend": Event;
+ "updatestart": Event;
+}
+
+/**
+ * A chunk of media to be passed into an HTMLMediaElement and played, via a MediaSource object. This can be made up of one or several media segments.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer)
+ */
+interface SourceBuffer extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/appendWindowEnd) */
+ appendWindowEnd: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/appendWindowStart) */
+ appendWindowStart: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/buffered) */
+ readonly buffered: TimeRanges;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/mode) */
+ mode: SourceBufferAppendMode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/abort_event) */
+ onabort: ((this: SourceBuffer, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/error_event) */
+ onerror: OnErrorEventHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/update_event) */
+ onupdate: ((this: SourceBuffer, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/updateend_event) */
+ onupdateend: ((this: SourceBuffer, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/updatestart_event) */
+ onupdatestart: ((this: SourceBuffer, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/timestampOffset) */
+ timestampOffset: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/updating) */
+ readonly updating: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/abort) */
+ abort(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/appendBuffer) */
+ appendBuffer(data: ArrayBuffer): void;
+ appendBuffer(data: ArrayBufferView): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/appendBufferAsync) */
+ appendBufferAsync(data: ArrayBuffer): Promise<void>;
+ appendBufferAsync(data: ArrayBufferView): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/changeType) */
+ changeType(type: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/remove) */
+ remove(start: number, end: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBuffer/removeAsync) */
+ removeAsync(start: number, end: number): Promise<void>;
+ addEventListener<K extends keyof SourceBufferEventMap>(type: K, listener: (this: SourceBuffer, ev: SourceBufferEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SourceBufferEventMap>(type: K, listener: (this: SourceBuffer, ev: SourceBufferEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SourceBuffer: {
+ prototype: SourceBuffer;
+ new(): SourceBuffer;
+ isInstance(obj): obj is SourceBuffer;
+};
+
+interface SourceBufferListEventMap {
+ "addsourcebuffer": Event;
+ "removesourcebuffer": Event;
+}
+
+/**
+ * A simple container list for multiple SourceBuffer objects.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBufferList)
+ */
+interface SourceBufferList extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBufferList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBufferList/addsourcebuffer_event) */
+ onaddsourcebuffer: ((this: SourceBufferList, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SourceBufferList/removesourcebuffer_event) */
+ onremovesourcebuffer: ((this: SourceBufferList, ev: Event) => any) | null;
+ addEventListener<K extends keyof SourceBufferListEventMap>(type: K, listener: (this: SourceBufferList, ev: SourceBufferListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SourceBufferListEventMap>(type: K, listener: (this: SourceBufferList, ev: SourceBufferListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+ [index: number]: SourceBuffer;
+}
+
+declare var SourceBufferList: {
+ prototype: SourceBufferList;
+ new(): SourceBufferList;
+ isInstance(obj): obj is SourceBufferList;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechGrammar) */
+interface SpeechGrammar {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechGrammar/src) */
+ src: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechGrammar/weight) */
+ weight: number;
+}
+
+declare var SpeechGrammar: {
+ prototype: SpeechGrammar;
+ new(): SpeechGrammar;
+ isInstance(obj): obj is SpeechGrammar;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechGrammarList) */
+interface SpeechGrammarList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechGrammarList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechGrammarList/addFromString) */
+ addFromString(string: string, weight?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechGrammarList/addFromURI) */
+ addFromURI(src: string, weight?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechGrammarList/item) */
+ item(index: number): SpeechGrammar;
+ [index: number]: SpeechGrammar;
+}
+
+declare var SpeechGrammarList: {
+ prototype: SpeechGrammarList;
+ new(): SpeechGrammarList;
+ isInstance(obj): obj is SpeechGrammarList;
+};
+
+interface SpeechRecognitionEventMap {
+ "audioend": Event;
+ "audiostart": Event;
+ "end": Event;
+ "error": ErrorEvent;
+ "nomatch": Event;
+ "result": Event;
+ "soundend": Event;
+ "soundstart": Event;
+ "speechend": Event;
+ "speechstart": Event;
+ "start": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition) */
+interface SpeechRecognition extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/continuous) */
+ continuous: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/grammars) */
+ grammars: SpeechGrammarList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/interimResults) */
+ interimResults: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/lang) */
+ lang: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/maxAlternatives) */
+ maxAlternatives: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/audioend_event) */
+ onaudioend: ((this: SpeechRecognition, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/audiostart_event) */
+ onaudiostart: ((this: SpeechRecognition, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/end_event) */
+ onend: ((this: SpeechRecognition, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/error_event) */
+ onerror: OnErrorEventHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/nomatch_event) */
+ onnomatch: ((this: SpeechRecognition, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/result_event) */
+ onresult: ((this: SpeechRecognition, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/soundend_event) */
+ onsoundend: ((this: SpeechRecognition, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/soundstart_event) */
+ onsoundstart: ((this: SpeechRecognition, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/speechend_event) */
+ onspeechend: ((this: SpeechRecognition, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/speechstart_event) */
+ onspeechstart: ((this: SpeechRecognition, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/start_event) */
+ onstart: ((this: SpeechRecognition, ev: Event) => any) | null;
+ serviceURI: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/abort) */
+ abort(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/start) */
+ start(stream?: MediaStream): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognition/stop) */
+ stop(): void;
+ addEventListener<K extends keyof SpeechRecognitionEventMap>(type: K, listener: (this: SpeechRecognition, ev: SpeechRecognitionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SpeechRecognitionEventMap>(type: K, listener: (this: SpeechRecognition, ev: SpeechRecognitionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SpeechRecognition: {
+ prototype: SpeechRecognition;
+ new(): SpeechRecognition;
+ isInstance(obj): obj is SpeechRecognition;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionAlternative) */
+interface SpeechRecognitionAlternative {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionAlternative/confidence) */
+ readonly confidence: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionAlternative/transcript) */
+ readonly transcript: string;
+}
+
+declare var SpeechRecognitionAlternative: {
+ prototype: SpeechRecognitionAlternative;
+ new(): SpeechRecognitionAlternative;
+ isInstance(obj): obj is SpeechRecognitionAlternative;
+};
+
+interface SpeechRecognitionError extends Event {
+ "error": ErrorEvent;
+ readonly message: string | null;
+}
+
+declare var SpeechRecognitionError: {
+ prototype: SpeechRecognitionError;
+ new(type: string, eventInitDict?: SpeechRecognitionErrorInit): SpeechRecognitionError;
+ isInstance(obj): obj is SpeechRecognitionError;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionEvent) */
+interface SpeechRecognitionEvent extends Event {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionEvent/emma)
+ */
+ readonly emma: Document | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionEvent/interpretation)
+ */
+ readonly interpretation: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionEvent/resultIndex) */
+ readonly resultIndex: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionEvent/results) */
+ readonly results: SpeechRecognitionResultList | null;
+}
+
+declare var SpeechRecognitionEvent: {
+ prototype: SpeechRecognitionEvent;
+ new(type: string, eventInitDict?: SpeechRecognitionEventInit): SpeechRecognitionEvent;
+ isInstance(obj): obj is SpeechRecognitionEvent;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResult) */
+interface SpeechRecognitionResult {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResult/isFinal) */
+ readonly isFinal: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResult/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResult/item) */
+ item(index: number): SpeechRecognitionAlternative;
+ [index: number]: SpeechRecognitionAlternative;
+}
+
+declare var SpeechRecognitionResult: {
+ prototype: SpeechRecognitionResult;
+ new(): SpeechRecognitionResult;
+ isInstance(obj): obj is SpeechRecognitionResult;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResultList) */
+interface SpeechRecognitionResultList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResultList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechRecognitionResultList/item) */
+ item(index: number): SpeechRecognitionResult;
+ [index: number]: SpeechRecognitionResult;
+}
+
+declare var SpeechRecognitionResultList: {
+ prototype: SpeechRecognitionResultList;
+ new(): SpeechRecognitionResultList;
+ isInstance(obj): obj is SpeechRecognitionResultList;
+};
+
+interface SpeechSynthesisEventMap {
+ "voiceschanged": Event;
+}
+
+/**
+ * This Web Speech API interface is the controller interface for the speech service; this can be used to retrieve information about the synthesis voices available on the device, start and pause speech, and other commands besides.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis)
+ */
+interface SpeechSynthesis extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/voiceschanged_event) */
+ onvoiceschanged: ((this: SpeechSynthesis, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/paused) */
+ readonly paused: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/pending) */
+ readonly pending: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/speaking) */
+ readonly speaking: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/cancel) */
+ cancel(): void;
+ forceEnd(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/getVoices) */
+ getVoices(): SpeechSynthesisVoice[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/pause) */
+ pause(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/resume) */
+ resume(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesis/speak) */
+ speak(utterance: SpeechSynthesisUtterance): void;
+ addEventListener<K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SpeechSynthesisEventMap>(type: K, listener: (this: SpeechSynthesis, ev: SpeechSynthesisEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SpeechSynthesis: {
+ prototype: SpeechSynthesis;
+ new(): SpeechSynthesis;
+ isInstance(obj): obj is SpeechSynthesis;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisErrorEvent) */
+interface SpeechSynthesisErrorEvent extends SpeechSynthesisEvent {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisErrorEvent/error) */
+ "error": ErrorEvent;
+}
+
+declare var SpeechSynthesisErrorEvent: {
+ prototype: SpeechSynthesisErrorEvent;
+ new(type: string, eventInitDict: SpeechSynthesisErrorEventInit): SpeechSynthesisErrorEvent;
+ isInstance(obj): obj is SpeechSynthesisErrorEvent;
+};
+
+/**
+ * This Web Speech API interface contains information about the current state of SpeechSynthesisUtterance objects that have been processed in the speech service.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent)
+ */
+interface SpeechSynthesisEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/charIndex) */
+ readonly charIndex: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/charLength) */
+ readonly charLength: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/elapsedTime) */
+ readonly elapsedTime: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/name) */
+ readonly name: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisEvent/utterance) */
+ readonly utterance: SpeechSynthesisUtterance;
+}
+
+declare var SpeechSynthesisEvent: {
+ prototype: SpeechSynthesisEvent;
+ new(type: string, eventInitDict: SpeechSynthesisEventInit): SpeechSynthesisEvent;
+ isInstance(obj): obj is SpeechSynthesisEvent;
+};
+
+interface SpeechSynthesisGetter {
+ readonly speechSynthesis: SpeechSynthesis;
+}
+
+interface SpeechSynthesisUtteranceEventMap {
+ "boundary": Event;
+ "end": Event;
+ "error": ErrorEvent;
+ "mark": Event;
+ "pause": Event;
+ "resume": Event;
+ "start": Event;
+}
+
+/**
+ * This Web Speech API interface represents a speech request. It contains the content the speech service should read and information about how to read it (e.g. language, pitch and volume.)
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance)
+ */
+interface SpeechSynthesisUtterance extends EventTarget {
+ readonly chosenVoiceURI: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/lang) */
+ lang: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/boundary_event) */
+ onboundary: ((this: SpeechSynthesisUtterance, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/end_event) */
+ onend: ((this: SpeechSynthesisUtterance, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/error_event) */
+ onerror: OnErrorEventHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/mark_event) */
+ onmark: ((this: SpeechSynthesisUtterance, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/pause_event) */
+ onpause: ((this: SpeechSynthesisUtterance, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/resume_event) */
+ onresume: ((this: SpeechSynthesisUtterance, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/start_event) */
+ onstart: ((this: SpeechSynthesisUtterance, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/pitch) */
+ pitch: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/rate) */
+ rate: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/text) */
+ text: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/voice) */
+ voice: SpeechSynthesisVoice | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisUtterance/volume) */
+ volume: number;
+ addEventListener<K extends keyof SpeechSynthesisUtteranceEventMap>(type: K, listener: (this: SpeechSynthesisUtterance, ev: SpeechSynthesisUtteranceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof SpeechSynthesisUtteranceEventMap>(type: K, listener: (this: SpeechSynthesisUtterance, ev: SpeechSynthesisUtteranceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var SpeechSynthesisUtterance: {
+ prototype: SpeechSynthesisUtterance;
+ new(): SpeechSynthesisUtterance;
+ new(text: string): SpeechSynthesisUtterance;
+ isInstance(obj): obj is SpeechSynthesisUtterance;
+};
+
+/**
+ * This Web Speech API interface represents a voice that the system supports. Every SpeechSynthesisVoice has its own relative speech service including information about language, name and URI.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice)
+ */
+interface SpeechSynthesisVoice {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/default) */
+ readonly default: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/lang) */
+ readonly lang: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/localService) */
+ readonly localService: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/name) */
+ readonly name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/voiceURI) */
+ readonly voiceURI: string;
+}
+
+declare var SpeechSynthesisVoice: {
+ prototype: SpeechSynthesisVoice;
+ new(): SpeechSynthesisVoice;
+ isInstance(obj): obj is SpeechSynthesisVoice;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StaticRange) */
+interface StaticRange extends AbstractRange {
+}
+
+declare var StaticRange: {
+ prototype: StaticRange;
+ new(init: StaticRangeInit): StaticRange;
+ isInstance(obj): obj is StaticRange;
+};
+
+/**
+ * The pan property takes a unitless value between -1 (full left pan) and 1 (full right pan). This interface was introduced as a much simpler way to apply a simple panning effect than having to use a full PannerNode.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StereoPannerNode)
+ */
+interface StereoPannerNode extends AudioNode, AudioNodePassThrough {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StereoPannerNode/pan) */
+ readonly pan: AudioParam;
+}
+
+declare var StereoPannerNode: {
+ prototype: StereoPannerNode;
+ new(context: BaseAudioContext, options?: StereoPannerOptions): StereoPannerNode;
+ isInstance(obj): obj is StereoPannerNode;
+};
+
+/**
+ * This Web Storage API interface provides access to a particular domain's session or local storage. It allows, for example, the addition, modification, or deletion of stored data items.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage)
+ */
+interface Storage {
+ readonly hasSnapshot: boolean;
+ readonly isSessionOnly: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/length) */
+ readonly length: number;
+ readonly snapshotUsage: number;
+ beginExplicitSnapshot(): void;
+ checkpointExplicitSnapshot(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/clear) */
+ clear(): void;
+ close(): void;
+ endExplicitSnapshot(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/getItem) */
+ getItem(key: string): string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/key) */
+ key(index: number): string | null;
+ open(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/removeItem) */
+ removeItem(key: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Storage/setItem) */
+ setItem(key: string, value: string): void;
+}
+
+declare var Storage: {
+ prototype: Storage;
+ new(): Storage;
+ isInstance(obj): obj is Storage;
+};
+
+/**
+ * A StorageEvent is sent to a window when a storage area it has access to is changed within the context of another document.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent)
+ */
+interface StorageEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/key) */
+ readonly key: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/newValue) */
+ readonly newValue: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/oldValue) */
+ readonly oldValue: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/storageArea) */
+ readonly storageArea: Storage | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/url) */
+ readonly url: string | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageEvent/initStorageEvent)
+ */
+ initStorageEvent(type: string, canBubble?: boolean, cancelable?: boolean, key?: string | null, oldValue?: string | null, newValue?: string | null, url?: string | null, storageArea?: Storage | null): void;
+}
+
+declare var StorageEvent: {
+ prototype: StorageEvent;
+ new(type: string, eventInitDict?: StorageEventInit): StorageEvent;
+ isInstance(obj): obj is StorageEvent;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager)
+ */
+interface StorageManager {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/estimate) */
+ estimate(): Promise<StorageEstimate>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/getDirectory) */
+ getDirectory(): Promise<FileSystemDirectoryHandle>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/persist) */
+ persist(): Promise<boolean>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StorageManager/persisted) */
+ persisted(): Promise<boolean>;
+ shutdown(): void;
+}
+
+declare var StorageManager: {
+ prototype: StorageManager;
+ new(): StorageManager;
+ isInstance(obj): obj is StorageManager;
+};
+
+interface StreamFilterEventMap {
+ "data": Event;
+ "error": ErrorEvent;
+ "start": Event;
+ "stop": Event;
+}
+
+interface StreamFilter extends EventTarget {
+ "error": ErrorEvent;
+ ondata: ((this: StreamFilter, ev: Event) => any) | null;
+ onerror: OnErrorEventHandler;
+ onstart: ((this: StreamFilter, ev: Event) => any) | null;
+ onstop: ((this: StreamFilter, ev: Event) => any) | null;
+ readonly status: StreamFilterStatus;
+ close(): void;
+ disconnect(): void;
+ resume(): void;
+ suspend(): void;
+ write(data: ArrayBuffer | Uint8Array): void;
+ addEventListener<K extends keyof StreamFilterEventMap>(type: K, listener: (this: StreamFilter, ev: StreamFilterEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof StreamFilterEventMap>(type: K, listener: (this: StreamFilter, ev: StreamFilterEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var StreamFilter: {
+ prototype: StreamFilter;
+ new(): StreamFilter;
+ create(requestId: number, addonId: string): StreamFilter;
+ isInstance(obj): obj is StreamFilter;
+};
+
+interface StreamFilterDataEvent extends Event {
+ readonly data: ArrayBuffer;
+}
+
+declare var StreamFilterDataEvent: {
+ prototype: StreamFilterDataEvent;
+ new(type: string, eventInitDict?: StreamFilterDataEventInit): StreamFilterDataEvent;
+ isInstance(obj): obj is StreamFilterDataEvent;
+};
+
+interface StructuredCloneHolder {
+ deserialize(global: any, keepData?: boolean): any;
+}
+
+declare var StructuredCloneHolder: {
+ prototype: StructuredCloneHolder;
+ new(name: UTF8String, anonymizedName: UTF8String | null, data: any, global?: any): StructuredCloneHolder;
+ isInstance(obj): obj is StructuredCloneHolder;
+};
+
+interface StructuredCloneTester {
+ readonly deserializable: boolean;
+ readonly serializable: boolean;
+}
+
+declare var StructuredCloneTester: {
+ prototype: StructuredCloneTester;
+ new(serializable: boolean, deserializable: boolean): StructuredCloneTester;
+ isInstance(obj): obj is StructuredCloneTester;
+};
+
+/**
+ * A single style sheet. CSS style sheets will further implement the more specialized CSSStyleSheet interface.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet)
+ */
+interface StyleSheet {
+ readonly associatedDocument: Document | null;
+ readonly constructed: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/disabled) */
+ disabled: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/href) */
+ readonly href: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/media) */
+ readonly media: MediaList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/ownerNode) */
+ readonly ownerNode: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/parentStyleSheet) */
+ readonly parentStyleSheet: StyleSheet | null;
+ readonly sourceMapURL: UTF8String;
+ readonly sourceURL: UTF8String;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/title) */
+ readonly title: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheet/type) */
+ readonly type: string;
+}
+
+declare var StyleSheet: {
+ prototype: StyleSheet;
+ new(): StyleSheet;
+ isInstance(obj): obj is StyleSheet;
+};
+
+interface StyleSheetApplicableStateChangeEvent extends Event {
+ readonly applicable: boolean;
+ readonly stylesheet: CSSStyleSheet | null;
+}
+
+declare var StyleSheetApplicableStateChangeEvent: {
+ prototype: StyleSheetApplicableStateChangeEvent;
+ new(type: string, eventInitDict?: StyleSheetApplicableStateChangeEventInit): StyleSheetApplicableStateChangeEvent;
+ isInstance(obj): obj is StyleSheetApplicableStateChangeEvent;
+};
+
+/**
+ * A list of StyleSheet.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheetList)
+ */
+interface StyleSheetList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheetList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/StyleSheetList/item) */
+ item(index: number): CSSStyleSheet | null;
+ [index: number]: CSSStyleSheet;
+}
+
+declare var StyleSheetList: {
+ prototype: StyleSheetList;
+ new(): StyleSheetList;
+ isInstance(obj): obj is StyleSheetList;
+};
+
+interface StyleSheetRemovedEvent extends Event {
+ readonly stylesheet: CSSStyleSheet | null;
+}
+
+declare var StyleSheetRemovedEvent: {
+ prototype: StyleSheetRemovedEvent;
+ new(type: string, eventInitDict?: StyleSheetRemovedEventInit): StyleSheetRemovedEvent;
+ isInstance(obj): obj is StyleSheetRemovedEvent;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubmitEvent) */
+interface SubmitEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubmitEvent/submitter) */
+ readonly submitter: HTMLElement | null;
+}
+
+declare var SubmitEvent: {
+ prototype: SubmitEvent;
+ new(type: string, eventInitDict?: SubmitEventInit): SubmitEvent;
+ isInstance(obj): obj is SubmitEvent;
+};
+
+/**
+ * This Web Crypto API interface provides a number of low-level cryptographic functions. It is accessed via the Crypto.subtle properties available in a window context (via Window.crypto).
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto)
+ */
+interface SubtleCrypto {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/decrypt) */
+ decrypt(algorithm: AlgorithmIdentifier, key: CryptoKey, data: BufferSource): Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveBits) */
+ deriveBits(algorithm: AlgorithmIdentifier, baseKey: CryptoKey, length: number): Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/deriveKey) */
+ deriveKey(algorithm: AlgorithmIdentifier, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/digest) */
+ digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/encrypt) */
+ encrypt(algorithm: AlgorithmIdentifier, key: CryptoKey, data: BufferSource): Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/exportKey) */
+ exportKey(format: KeyFormat, key: CryptoKey): Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/generateKey) */
+ generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/importKey) */
+ importKey(format: KeyFormat, keyData: any, algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/sign) */
+ sign(algorithm: AlgorithmIdentifier, key: CryptoKey, data: BufferSource): Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/unwrapKey) */
+ unwrapKey(format: KeyFormat, wrappedKey: BufferSource, unwrappingKey: CryptoKey, unwrapAlgorithm: AlgorithmIdentifier, unwrappedKeyAlgorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/verify) */
+ verify(algorithm: AlgorithmIdentifier, key: CryptoKey, signature: BufferSource, data: BufferSource): Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/SubtleCrypto/wrapKey) */
+ wrapKey(format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier): Promise<any>;
+}
+
+declare var SubtleCrypto: {
+ prototype: SubtleCrypto;
+ new(): SubtleCrypto;
+ isInstance(obj): obj is SubtleCrypto;
+};
+
+interface SyncMessageSender extends MessageSender, SyncMessageSenderMixin {
+}
+
+declare var SyncMessageSender: {
+ prototype: SyncMessageSender;
+ new(): SyncMessageSender;
+ isInstance(obj): obj is SyncMessageSender;
+};
+
+interface SyncMessageSenderMixin {
+ sendSyncMessage(messageName?: string | null, obj?: any): any[];
+}
+
+interface SyncReadFile {
+ readonly size: number;
+ close(): void;
+ readBytesInto(dest: Uint8Array, offset: number): void;
+}
+
+declare var SyncReadFile: {
+ prototype: SyncReadFile;
+ new(): SyncReadFile;
+ isInstance(obj): obj is SyncReadFile;
+};
+
+interface TCPServerSocketEventMap {
+ "connect": Event;
+ "error": ErrorEvent;
+}
+
+interface TCPServerSocket extends EventTarget {
+ readonly localPort: number;
+ onconnect: ((this: TCPServerSocket, ev: Event) => any) | null;
+ onerror: OnErrorEventHandler;
+ close(): void;
+ addEventListener<K extends keyof TCPServerSocketEventMap>(type: K, listener: (this: TCPServerSocket, ev: TCPServerSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof TCPServerSocketEventMap>(type: K, listener: (this: TCPServerSocket, ev: TCPServerSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var TCPServerSocket: {
+ prototype: TCPServerSocket;
+ new(port: number, options?: ServerSocketOptions, backlog?: number): TCPServerSocket;
+ isInstance(obj): obj is TCPServerSocket;
+};
+
+interface TCPServerSocketEvent extends Event {
+ readonly socket: TCPSocket;
+}
+
+declare var TCPServerSocketEvent: {
+ prototype: TCPServerSocketEvent;
+ new(type: string, eventInitDict?: TCPServerSocketEventInit): TCPServerSocketEvent;
+ isInstance(obj): obj is TCPServerSocketEvent;
+};
+
+interface TCPSocketEventMap {
+ "close": Event;
+ "data": Event;
+ "drain": Event;
+ "error": ErrorEvent;
+ "open": Event;
+}
+
+interface TCPSocket extends EventTarget {
+ readonly binaryType: TCPSocketBinaryType;
+ readonly bufferedAmount: number;
+ readonly host: string;
+ onclose: ((this: TCPSocket, ev: Event) => any) | null;
+ ondata: ((this: TCPSocket, ev: Event) => any) | null;
+ ondrain: ((this: TCPSocket, ev: Event) => any) | null;
+ onerror: OnErrorEventHandler;
+ onopen: ((this: TCPSocket, ev: Event) => any) | null;
+ readonly port: number;
+ readonly readyState: TCPReadyState;
+ readonly ssl: boolean;
+ readonly transport: nsISocketTransport | null;
+ close(): void;
+ closeImmediately(): void;
+ resume(): void;
+ send(data: string): boolean;
+ send(data: ArrayBuffer, byteOffset?: number, byteLength?: number): boolean;
+ suspend(): void;
+ upgradeToSecure(): void;
+ addEventListener<K extends keyof TCPSocketEventMap>(type: K, listener: (this: TCPSocket, ev: TCPSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof TCPSocketEventMap>(type: K, listener: (this: TCPSocket, ev: TCPSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var TCPSocket: {
+ prototype: TCPSocket;
+ new(host: string, port: number, options?: SocketOptions): TCPSocket;
+ isInstance(obj): obj is TCPSocket;
+};
+
+interface TCPSocketErrorEvent extends Event {
+ readonly errorCode: number;
+ readonly message: string;
+ readonly name: string;
+}
+
+declare var TCPSocketErrorEvent: {
+ prototype: TCPSocketErrorEvent;
+ new(type: string, eventInitDict?: TCPSocketErrorEventInit): TCPSocketErrorEvent;
+ isInstance(obj): obj is TCPSocketErrorEvent;
+};
+
+interface TCPSocketEvent extends Event {
+ readonly data: any;
+}
+
+declare var TCPSocketEvent: {
+ prototype: TCPSocketEvent;
+ new(type: string, eventInitDict?: TCPSocketEventInit): TCPSocketEvent;
+ isInstance(obj): obj is TCPSocketEvent;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TaskController) */
+interface TaskController extends AbortController {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TaskController/setPriority) */
+ setPriority(priority: TaskPriority): void;
+}
+
+declare var TaskController: {
+ prototype: TaskController;
+ new(init?: TaskControllerInit): TaskController;
+ isInstance(obj): obj is TaskController;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TaskPriorityChangeEvent) */
+interface TaskPriorityChangeEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TaskPriorityChangeEvent/previousPriority) */
+ readonly previousPriority: TaskPriority;
+}
+
+declare var TaskPriorityChangeEvent: {
+ prototype: TaskPriorityChangeEvent;
+ new(type: string, priorityChangeEventInitDict: TaskPriorityChangeEventInit): TaskPriorityChangeEvent;
+ isInstance(obj): obj is TaskPriorityChangeEvent;
+};
+
+interface TaskSignalEventMap extends AbortSignalEventMap {
+ "prioritychange": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TaskSignal) */
+interface TaskSignal extends AbortSignal {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TaskSignal/prioritychange_event) */
+ onprioritychange: ((this: TaskSignal, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TaskSignal/priority) */
+ readonly priority: TaskPriority;
+ addEventListener<K extends keyof TaskSignalEventMap>(type: K, listener: (this: TaskSignal, ev: TaskSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof TaskSignalEventMap>(type: K, listener: (this: TaskSignal, ev: TaskSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var TaskSignal: {
+ prototype: TaskSignal;
+ new(): TaskSignal;
+ isInstance(obj): obj is TaskSignal;
+};
+
+interface TestFunctions {
+ allowSharedArrayBuffer: ArrayBuffer;
+ allowSharedArrayBufferView: ArrayBufferView;
+ arrayBuffer: ArrayBuffer;
+ arrayBufferView: ArrayBufferView;
+ clampedNullableOctet: number | null;
+ enforcedNullableOctet: number | null;
+ readonly one: number;
+ sequenceOfAllowSharedArrayBuffer: ArrayBuffer[];
+ sequenceOfAllowSharedArrayBufferView: ArrayBufferView[];
+ sequenceOfArrayBuffer: ArrayBuffer[];
+ sequenceOfArrayBufferView: ArrayBufferView[];
+ readonly two: number;
+ readonly wrapperCachedNonISupportsObject: WrapperCachedNonISupportsTestInterface;
+ getLongLiteralString(): string;
+ getMediumLiteralString(): string;
+ getShortLiteralString(): string;
+ getStringDataAsAString(): string;
+ getStringDataAsAString(length: number): string;
+ getStringDataAsDOMString(length?: number): string;
+ getStringType(str: string): StringType;
+ getStringbufferString(input: string): string;
+ setStringData(arg: string): void;
+ staticAndNonStaticOverload(): boolean;
+ staticAndNonStaticOverload(foo?: number): boolean;
+ stringbufferMatchesStored(str: string): boolean;
+ testAllowShared(buffer: ArrayBufferView): void;
+ testAllowShared(buffer: ArrayBuffer): void;
+ testDictWithAllowShared(buffer?: DictWithAllowSharedBufferSource): void;
+ testNotAllowShared(buffer: ArrayBufferView): void;
+ testNotAllowShared(buffer: ArrayBuffer): void;
+ testNotAllowShared(buffer: string): void;
+ testThrowNsresult(): void;
+ testThrowNsresultFromNative(): void;
+ testUnionOfAllowSharedBuffferSource(foo: ArrayBuffer | ArrayBufferView): void;
+ testUnionOfBuffferSource(foo: ArrayBuffer | ArrayBufferView | string): void;
+ toJSON(): any;
+}
+
+declare var TestFunctions: {
+ prototype: TestFunctions;
+ new(): TestFunctions;
+ passThroughCallbackPromise(callback: PromiseReturner): Promise<any>;
+ passThroughPromise(arg: any): Promise<any>;
+ throwToRejectPromise(): Promise<any>;
+ throwUncatchableException(): void;
+ isInstance(obj): obj is TestFunctions;
+};
+
+interface TestInterfaceAsyncIterableDouble {
+}
+
+declare var TestInterfaceAsyncIterableDouble: {
+ prototype: TestInterfaceAsyncIterableDouble;
+ new(): TestInterfaceAsyncIterableDouble;
+ isInstance(obj): obj is TestInterfaceAsyncIterableDouble;
+};
+
+interface TestInterfaceAsyncIterableDoubleUnion {
+}
+
+declare var TestInterfaceAsyncIterableDoubleUnion: {
+ prototype: TestInterfaceAsyncIterableDoubleUnion;
+ new(): TestInterfaceAsyncIterableDoubleUnion;
+ isInstance(obj): obj is TestInterfaceAsyncIterableDoubleUnion;
+};
+
+interface TestInterfaceAsyncIterableSingle {
+}
+
+declare var TestInterfaceAsyncIterableSingle: {
+ prototype: TestInterfaceAsyncIterableSingle;
+ new(options?: TestInterfaceAsyncIterableSingleOptions): TestInterfaceAsyncIterableSingle;
+ isInstance(obj): obj is TestInterfaceAsyncIterableSingle;
+};
+
+interface TestInterfaceAsyncIterableSingleWithArgs {
+ readonly returnCallCount: number;
+ readonly returnLastCalledWith: any;
+}
+
+declare var TestInterfaceAsyncIterableSingleWithArgs: {
+ prototype: TestInterfaceAsyncIterableSingleWithArgs;
+ new(): TestInterfaceAsyncIterableSingleWithArgs;
+ isInstance(obj): obj is TestInterfaceAsyncIterableSingleWithArgs;
+};
+
+interface TestInterfaceIterableDouble {
+ forEach(callbackfn: (value: string, key: string, parent: TestInterfaceIterableDouble) => void, thisArg?: any): void;
+}
+
+declare var TestInterfaceIterableDouble: {
+ prototype: TestInterfaceIterableDouble;
+ new(): TestInterfaceIterableDouble;
+ isInstance(obj): obj is TestInterfaceIterableDouble;
+};
+
+interface TestInterfaceIterableDoubleUnion {
+ forEach(callbackfn: (value: string | number, key: string, parent: TestInterfaceIterableDoubleUnion) => void, thisArg?: any): void;
+}
+
+declare var TestInterfaceIterableDoubleUnion: {
+ prototype: TestInterfaceIterableDoubleUnion;
+ new(): TestInterfaceIterableDoubleUnion;
+ isInstance(obj): obj is TestInterfaceIterableDoubleUnion;
+};
+
+interface TestInterfaceIterableSingle {
+ readonly length: number;
+ forEach(callbackfn: (value: number, key: number, parent: TestInterfaceIterableSingle) => void, thisArg?: any): void;
+ [index: number]: number;
+}
+
+declare var TestInterfaceIterableSingle: {
+ prototype: TestInterfaceIterableSingle;
+ new(): TestInterfaceIterableSingle;
+ isInstance(obj): obj is TestInterfaceIterableSingle;
+};
+
+interface TestInterfaceJSEventMap {
+ "something": Event;
+}
+
+interface TestInterfaceJS extends EventTarget {
+ readonly anyArg: any;
+ anyAttr: any;
+ readonly objectArg: any;
+ objectAttr: any;
+ onsomething: ((this: TestInterfaceJS, ev: Event) => any) | null;
+ anySequenceLength(seq: any[]): number;
+ convertSVS(svs: string): string;
+ getCallerPrincipal(): string;
+ getDictionaryArg(): TestInterfaceJSDictionary;
+ getDictionaryAttr(): TestInterfaceJSDictionary;
+ objectSequenceLength(seq: any[]): number;
+ pingPongAny(arg: any): any;
+ pingPongDictionary(dict?: TestInterfaceJSDictionary): TestInterfaceJSDictionary;
+ pingPongDictionaryOrLong(dictOrLong?: TestInterfaceJSUnionableDictionary | number): number;
+ pingPongNullableUnion(something: TestInterfaceJS | number | null): TestInterfaceJS | number | null;
+ pingPongObject(obj: any): any;
+ pingPongObjectOrString(objOrString: any): any;
+ pingPongRecord(rec: Record<string, any>): string;
+ pingPongUnion(something: TestInterfaceJS | number): TestInterfaceJS | number;
+ pingPongUnionContainingNull(something: TestInterfaceJS | string): string | TestInterfaceJS;
+ returnBadUnion(): Location | TestInterfaceJS;
+ setDictionaryAttr(dict?: TestInterfaceJSDictionary): void;
+ testPromiseWithDOMExceptionThrowingPromiseInit(): Promise<void>;
+ testPromiseWithDOMExceptionThrowingThenFunction(): Promise<void>;
+ testPromiseWithDOMExceptionThrowingThenable(): Promise<void>;
+ testPromiseWithThrowingChromePromiseInit(): Promise<void>;
+ testPromiseWithThrowingChromeThenFunction(): Promise<void>;
+ testPromiseWithThrowingChromeThenable(): Promise<void>;
+ testPromiseWithThrowingContentPromiseInit(func: Function): Promise<void>;
+ testPromiseWithThrowingContentThenFunction(func: AnyCallback): Promise<void>;
+ testPromiseWithThrowingContentThenable(thenable: any): Promise<void>;
+ testSequenceOverload(arg: string[]): void;
+ testSequenceOverload(arg: string): void;
+ testSequenceUnion(arg: string[] | string): void;
+ testThrowCallbackError(callback: Function): void;
+ testThrowDOMException(): void;
+ testThrowError(): void;
+ testThrowSelfHosted(): void;
+ testThrowTypeError(): void;
+ testThrowXraySelfHosted(): void;
+ addEventListener<K extends keyof TestInterfaceJSEventMap>(type: K, listener: (this: TestInterfaceJS, ev: TestInterfaceJSEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof TestInterfaceJSEventMap>(type: K, listener: (this: TestInterfaceJS, ev: TestInterfaceJSEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var TestInterfaceJS: {
+ prototype: TestInterfaceJS;
+ new(anyArg?: any, objectArg?: any, dictionaryArg?: TestInterfaceJSDictionary): TestInterfaceJS;
+ isInstance(obj): obj is TestInterfaceJS;
+};
+
+interface TestInterfaceLength {
+}
+
+declare var TestInterfaceLength: {
+ prototype: TestInterfaceLength;
+ new(arg: boolean): TestInterfaceLength;
+ isInstance(obj): obj is TestInterfaceLength;
+};
+
+interface TestInterfaceMaplike {
+ clearInternal(): void;
+ deleteInternal(aKey: string): boolean;
+ getInternal(aKey: string): number;
+ hasInternal(aKey: string): boolean;
+ setInternal(aKey: string, aValue: number): void;
+ forEach(callbackfn: (value: number, key: string, parent: TestInterfaceMaplike) => void, thisArg?: any): void;
+}
+
+declare var TestInterfaceMaplike: {
+ prototype: TestInterfaceMaplike;
+ new(): TestInterfaceMaplike;
+ isInstance(obj): obj is TestInterfaceMaplike;
+};
+
+interface TestInterfaceMaplikeJSObject {
+ clearInternal(): void;
+ deleteInternal(aKey: string): boolean;
+ getInternal(aKey: string): any;
+ hasInternal(aKey: string): boolean;
+ setInternal(aKey: string, aObject: any): void;
+ forEach(callbackfn: (value: any, key: string, parent: TestInterfaceMaplikeJSObject) => void, thisArg?: any): void;
+}
+
+declare var TestInterfaceMaplikeJSObject: {
+ prototype: TestInterfaceMaplikeJSObject;
+ new(): TestInterfaceMaplikeJSObject;
+ isInstance(obj): obj is TestInterfaceMaplikeJSObject;
+};
+
+interface TestInterfaceMaplikeObject {
+ clearInternal(): void;
+ deleteInternal(aKey: string): boolean;
+ getInternal(aKey: string): TestInterfaceMaplike | null;
+ hasInternal(aKey: string): boolean;
+ setInternal(aKey: string): void;
+ forEach(callbackfn: (value: TestInterfaceMaplike, key: string, parent: TestInterfaceMaplikeObject) => void, thisArg?: any): void;
+}
+
+declare var TestInterfaceMaplikeObject: {
+ prototype: TestInterfaceMaplikeObject;
+ new(): TestInterfaceMaplikeObject;
+ isInstance(obj): obj is TestInterfaceMaplikeObject;
+};
+
+interface TestInterfaceObservableArray {
+ observableArrayBoolean: boolean[];
+ observableArrayInterface: TestInterfaceObservableArray[];
+ observableArrayObject: any[];
+ booleanAppendElementInternal(value: boolean): void;
+ booleanElementAtInternal(index: number): boolean;
+ booleanLengthInternal(): number;
+ booleanRemoveLastElementInternal(): void;
+ booleanReplaceElementAtInternal(index: number, value: boolean): void;
+ interfaceAppendElementInternal(value: TestInterfaceObservableArray): void;
+ interfaceElementAtInternal(index: number): TestInterfaceObservableArray;
+ interfaceLengthInternal(): number;
+ interfaceRemoveLastElementInternal(): void;
+ interfaceReplaceElementAtInternal(index: number, value: TestInterfaceObservableArray): void;
+ objectAppendElementInternal(value: any): void;
+ objectElementAtInternal(index: number): any;
+ objectLengthInternal(): number;
+ objectRemoveLastElementInternal(): void;
+ objectReplaceElementAtInternal(index: number, value: any): void;
+}
+
+declare var TestInterfaceObservableArray: {
+ prototype: TestInterfaceObservableArray;
+ new(callbacks?: ObservableArrayCallbacks): TestInterfaceObservableArray;
+ isInstance(obj): obj is TestInterfaceObservableArray;
+};
+
+interface TestInterfaceSetlike {
+ forEach(callbackfn: (value: string, key: string, parent: TestInterfaceSetlike) => void, thisArg?: any): void;
+}
+
+declare var TestInterfaceSetlike: {
+ prototype: TestInterfaceSetlike;
+ new(): TestInterfaceSetlike;
+ isInstance(obj): obj is TestInterfaceSetlike;
+};
+
+interface TestInterfaceSetlikeNode {
+ forEach(callbackfn: (value: Node, key: Node, parent: TestInterfaceSetlikeNode) => void, thisArg?: any): void;
+}
+
+declare var TestInterfaceSetlikeNode: {
+ prototype: TestInterfaceSetlikeNode;
+ new(): TestInterfaceSetlikeNode;
+ isInstance(obj): obj is TestInterfaceSetlikeNode;
+};
+
+interface TestTrialInterface {
+}
+
+declare var TestTrialInterface: {
+ prototype: TestTrialInterface;
+ new(): TestTrialInterface;
+ isInstance(obj): obj is TestTrialInterface;
+};
+
+interface TestingDeprecatedInterface {
+ readonly deprecatedAttribute: boolean;
+ deprecatedMethod(): void;
+}
+
+declare var TestingDeprecatedInterface: {
+ prototype: TestingDeprecatedInterface;
+ new(): TestingDeprecatedInterface;
+ isInstance(obj): obj is TestingDeprecatedInterface;
+};
+
+/**
+ * The textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element's text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Text)
+ */
+interface Text extends CharacterData, GeometryUtils {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Text/assignedSlot) */
+ readonly assignedSlot: HTMLSlotElement | null;
+ readonly openOrClosedAssignedSlot: HTMLSlotElement | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Text/wholeText) */
+ readonly wholeText: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Text/splitText) */
+ splitText(offset: number): Text;
+}
+
+declare var Text: {
+ prototype: Text;
+ new(data?: string): Text;
+ isInstance(obj): obj is Text;
+};
+
+interface TextClause {
+ readonly endOffset: number;
+ readonly isCaret: boolean;
+ readonly isTargetClause: boolean;
+ readonly startOffset: number;
+}
+
+declare var TextClause: {
+ prototype: TextClause;
+ new(): TextClause;
+ isInstance(obj): obj is TextClause;
+};
+
+/**
+ * A decoder for a specific method, that is a specific character encoding, like utf-8, iso-8859-2, koi8, cp1261, gbk, etc. A decoder takes a stream of bytes as input and emits a stream of code points. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder)
+ */
+interface TextDecoder extends TextDecoderCommon {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/decode) */
+ decode(input?: BufferSource, options?: TextDecodeOptions): string;
+}
+
+declare var TextDecoder: {
+ prototype: TextDecoder;
+ new(label?: string, options?: TextDecoderOptions): TextDecoder;
+ isInstance(obj): obj is TextDecoder;
+};
+
+interface TextDecoderCommon {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/encoding) */
+ readonly encoding: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/fatal) */
+ readonly fatal: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoder/ignoreBOM) */
+ readonly ignoreBOM: boolean;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextDecoderStream) */
+interface TextDecoderStream extends GenericTransformStream, TextDecoderCommon {
+}
+
+declare var TextDecoderStream: {
+ prototype: TextDecoderStream;
+ new(label?: string, options?: TextDecoderOptions): TextDecoderStream;
+ isInstance(obj): obj is TextDecoderStream;
+};
+
+/**
+ * TextEncoder takes a stream of code points as input and emits a stream of bytes. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder)
+ */
+interface TextEncoder extends TextEncoderCommon {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encode) */
+ encode(input?: UTF8String): Uint8Array;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encodeInto) */
+ encodeInto(source: JSString, destination: Uint8Array): TextEncoderEncodeIntoResult;
+}
+
+declare var TextEncoder: {
+ prototype: TextEncoder;
+ new(): TextEncoder;
+ isInstance(obj): obj is TextEncoder;
+};
+
+interface TextEncoderCommon {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoder/encoding) */
+ readonly encoding: string;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextEncoderStream) */
+interface TextEncoderStream extends GenericTransformStream, TextEncoderCommon {
+}
+
+declare var TextEncoderStream: {
+ prototype: TextEncoderStream;
+ new(): TextEncoderStream;
+ isInstance(obj): obj is TextEncoderStream;
+};
+
+/**
+ * The dimensions of a piece of text in the canvas, as created by the CanvasRenderingContext2D.measureText() method.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics)
+ */
+interface TextMetrics {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxAscent) */
+ readonly actualBoundingBoxAscent: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxDescent) */
+ readonly actualBoundingBoxDescent: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxLeft) */
+ readonly actualBoundingBoxLeft: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/actualBoundingBoxRight) */
+ readonly actualBoundingBoxRight: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/alphabeticBaseline) */
+ readonly alphabeticBaseline: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/emHeightAscent) */
+ readonly emHeightAscent: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/emHeightDescent) */
+ readonly emHeightDescent: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/fontBoundingBoxAscent) */
+ readonly fontBoundingBoxAscent: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/fontBoundingBoxDescent) */
+ readonly fontBoundingBoxDescent: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/hangingBaseline) */
+ readonly hangingBaseline: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/ideographicBaseline) */
+ readonly ideographicBaseline: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextMetrics/width) */
+ readonly width: number;
+}
+
+declare var TextMetrics: {
+ prototype: TextMetrics;
+ new(): TextMetrics;
+ isInstance(obj): obj is TextMetrics;
+};
+
+interface TextTrackEventMap {
+ "cuechange": Event;
+}
+
+/**
+ * This interface also inherits properties from EventTarget.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack)
+ */
+interface TextTrack extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/activeCues) */
+ readonly activeCues: TextTrackCueList | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/cues) */
+ readonly cues: TextTrackCueList | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/id) */
+ readonly id: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/inBandMetadataTrackDispatchType) */
+ readonly inBandMetadataTrackDispatchType: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/kind) */
+ readonly kind: TextTrackKind;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/label) */
+ readonly label: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/language) */
+ readonly language: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/mode) */
+ mode: TextTrackMode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/cuechange_event) */
+ oncuechange: ((this: TextTrack, ev: Event) => any) | null;
+ readonly textTrackList: TextTrackList | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/addCue) */
+ addCue(cue: VTTCue): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrack/removeCue) */
+ removeCue(cue: VTTCue): void;
+ addEventListener<K extends keyof TextTrackEventMap>(type: K, listener: (this: TextTrack, ev: TextTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof TextTrackEventMap>(type: K, listener: (this: TextTrack, ev: TextTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var TextTrack: {
+ prototype: TextTrack;
+ new(): TextTrack;
+ isInstance(obj): obj is TextTrack;
+};
+
+interface TextTrackCueEventMap {
+ "enter": Event;
+ "exit": Event;
+}
+
+/**
+ * TextTrackCues represent a string of text that will be displayed for some duration of time on a TextTrack. This includes the start and end times that the cue will be displayed. A TextTrackCue cannot be used directly, instead one of the derived types (e.g. VTTCue) must be used.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue)
+ */
+interface TextTrackCue extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/endTime) */
+ endTime: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/id) */
+ id: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/enter_event) */
+ onenter: ((this: TextTrackCue, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/exit_event) */
+ onexit: ((this: TextTrackCue, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/pauseOnExit) */
+ pauseOnExit: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/startTime) */
+ startTime: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCue/track) */
+ readonly track: TextTrack | null;
+ addEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: TextTrackCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: TextTrackCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var TextTrackCue: {
+ prototype: TextTrackCue;
+ new(): TextTrackCue;
+ isInstance(obj): obj is TextTrackCue;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCueList) */
+interface TextTrackCueList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCueList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackCueList/getCueById) */
+ getCueById(id: string): VTTCue | null;
+ [index: number]: VTTCue;
+}
+
+declare var TextTrackCueList: {
+ prototype: TextTrackCueList;
+ new(): TextTrackCueList;
+ isInstance(obj): obj is TextTrackCueList;
+};
+
+interface TextTrackListEventMap {
+ "addtrack": Event;
+ "change": Event;
+ "removetrack": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList) */
+interface TextTrackList extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/length) */
+ readonly length: number;
+ readonly mediaElement: HTMLMediaElement | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/addtrack_event) */
+ onaddtrack: ((this: TextTrackList, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/change_event) */
+ onchange: ((this: TextTrackList, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/removetrack_event) */
+ onremovetrack: ((this: TextTrackList, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TextTrackList/getTrackById) */
+ getTrackById(id: string): TextTrack | null;
+ addEventListener<K extends keyof TextTrackListEventMap>(type: K, listener: (this: TextTrackList, ev: TextTrackListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof TextTrackListEventMap>(type: K, listener: (this: TextTrackList, ev: TextTrackListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+ [index: number]: TextTrack;
+}
+
+declare var TextTrackList: {
+ prototype: TextTrackList;
+ new(): TextTrackList;
+ isInstance(obj): obj is TextTrackList;
+};
+
+interface TimeEvent extends Event {
+ readonly detail: number;
+ readonly view: WindowProxy | null;
+ initTimeEvent(aType: string, aView?: Window | null, aDetail?: number): void;
+}
+
+declare var TimeEvent: {
+ prototype: TimeEvent;
+ new(): TimeEvent;
+ isInstance(obj): obj is TimeEvent;
+};
+
+/**
+ * Used to represent a set of time ranges, primarily for the purpose of tracking which portions of media have been buffered when loading it for use by the <audio> and <video> elements.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TimeRanges)
+ */
+interface TimeRanges {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TimeRanges/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TimeRanges/end) */
+ end(index: number): number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TimeRanges/start) */
+ start(index: number): number;
+}
+
+declare var TimeRanges: {
+ prototype: TimeRanges;
+ new(): TimeRanges;
+ isInstance(obj): obj is TimeRanges;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent) */
+interface ToggleEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent/newState) */
+ readonly newState: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ToggleEvent/oldState) */
+ readonly oldState: string;
+}
+
+declare var ToggleEvent: {
+ prototype: ToggleEvent;
+ new(type: string, eventInitDict?: ToggleEventInit): ToggleEvent;
+ isInstance(obj): obj is ToggleEvent;
+};
+
+/**
+ * A single contact point on a touch-sensitive device. The contact point is commonly a finger or stylus and the device may be a touchscreen or trackpad.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch)
+ */
+interface Touch {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/clientX) */
+ readonly clientX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/clientY) */
+ readonly clientY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/force) */
+ readonly force: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/identifier) */
+ readonly identifier: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/pageX) */
+ readonly pageX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/pageY) */
+ readonly pageY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/radiusX) */
+ readonly radiusX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/radiusY) */
+ readonly radiusY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/rotationAngle) */
+ readonly rotationAngle: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/screenX) */
+ readonly screenX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/screenY) */
+ readonly screenY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Touch/target) */
+ readonly target: EventTarget | null;
+}
+
+declare var Touch: {
+ prototype: Touch;
+ new(touchInitDict: TouchInit): Touch;
+ isInstance(obj): obj is Touch;
+};
+
+/**
+ * An event sent when the state of contacts with a touch-sensitive surface changes. This surface can be a touch screen or trackpad, for example. The event can describe one or more points of contact with the screen and includes support for detecting movement, addition and removal of contact points, and so forth.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent)
+ */
+interface TouchEvent extends UIEvent {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/altKey) */
+ readonly altKey: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/changedTouches) */
+ readonly changedTouches: TouchList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/ctrlKey) */
+ readonly ctrlKey: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/metaKey) */
+ readonly metaKey: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/shiftKey) */
+ readonly shiftKey: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/targetTouches) */
+ readonly targetTouches: TouchList;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchEvent/touches) */
+ readonly touches: TouchList;
+ initTouchEvent(type: string, canBubble?: boolean, cancelable?: boolean, view?: Window | null, detail?: number, ctrlKey?: boolean, altKey?: boolean, shiftKey?: boolean, metaKey?: boolean, touches?: TouchList | null, targetTouches?: TouchList | null, changedTouches?: TouchList | null): void;
+}
+
+declare var TouchEvent: {
+ prototype: TouchEvent;
+ new(type: string, eventInitDict?: TouchEventInit): TouchEvent;
+ isInstance(obj): obj is TouchEvent;
+};
+
+interface TouchEventHandlersEventMap {
+ touchcancel: TouchEvent;
+ touchend: TouchEvent;
+ touchmove: TouchEvent;
+ touchstart: TouchEvent;
+}
+
+interface TouchEventHandlers {
+ ontouchcancel: ((this: TouchEventHandlers, ev: Event) => any) | null;
+ ontouchend: ((this: TouchEventHandlers, ev: Event) => any) | null;
+ ontouchmove: ((this: TouchEventHandlers, ev: Event) => any) | null;
+ ontouchstart: ((this: TouchEventHandlers, ev: Event) => any) | null;
+ addEventListener<K extends keyof TouchEventHandlersEventMap>(type: K, listener: (this: TouchEventHandlers, ev: TouchEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof TouchEventHandlersEventMap>(type: K, listener: (this: TouchEventHandlers, ev: TouchEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+/**
+ * A list of contact points on a touch surface. For example, if the user has three fingers on the touch surface (such as a screen or trackpad), the corresponding TouchList object would have one Touch object for each finger, for a total of three entries.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchList)
+ */
+interface TouchList {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TouchList/item) */
+ item(index: number): Touch | null;
+ [index: number]: Touch;
+}
+
+declare var TouchList: {
+ prototype: TouchList;
+ new(): TouchList;
+ isInstance(obj): obj is TouchList;
+};
+
+/**
+ * The TrackEvent interface, part of the HTML DOM specification, is used for events which represent changes to the set of available tracks on an HTML media element; these events are addtrack and removetrack.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TrackEvent)
+ */
+interface TrackEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TrackEvent/track) */
+ readonly track: VideoTrack | AudioTrack | TextTrack | null;
+}
+
+declare var TrackEvent: {
+ prototype: TrackEvent;
+ new(type: string, eventInitDict?: TrackEventInit): TrackEvent;
+ isInstance(obj): obj is TrackEvent;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream) */
+interface TransformStream {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream/readable) */
+ readonly readable: ReadableStream;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStream/writable) */
+ readonly writable: WritableStream;
+}
+
+declare var TransformStream: {
+ prototype: TransformStream;
+ new(transformer?: any, writableStrategy?: QueuingStrategy, readableStrategy?: QueuingStrategy): TransformStream;
+ isInstance(obj): obj is TransformStream;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController) */
+interface TransformStreamDefaultController {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/desiredSize) */
+ readonly desiredSize: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/enqueue) */
+ enqueue(chunk?: any): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/error) */
+ error(reason?: any): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransformStreamDefaultController/terminate) */
+ terminate(): void;
+}
+
+declare var TransformStreamDefaultController: {
+ prototype: TransformStreamDefaultController;
+ new(): TransformStreamDefaultController;
+ isInstance(obj): obj is TransformStreamDefaultController;
+};
+
+/**
+ * Events providing information related to transitions.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransitionEvent)
+ */
+interface TransitionEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransitionEvent/elapsedTime) */
+ readonly elapsedTime: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransitionEvent/propertyName) */
+ readonly propertyName: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TransitionEvent/pseudoElement) */
+ readonly pseudoElement: string;
+}
+
+declare var TransitionEvent: {
+ prototype: TransitionEvent;
+ new(type: string, eventInitDict?: TransitionEventInit): TransitionEvent;
+ isInstance(obj): obj is TransitionEvent;
+};
+
+interface TreeColumn {
+ readonly columns: TreeColumns | null;
+ readonly cycler: boolean;
+ readonly editable: boolean;
+ readonly element: Element;
+ readonly id: string;
+ readonly index: number;
+ readonly previousColumn: TreeColumn | null;
+ readonly primary: boolean;
+ readonly type: number;
+ readonly width: number;
+ readonly x: number;
+ getNext(): TreeColumn | null;
+ getPrevious(): TreeColumn | null;
+ invalidate(): void;
+ readonly TYPE_TEXT: 1;
+ readonly TYPE_CHECKBOX: 2;
+}
+
+declare var TreeColumn: {
+ prototype: TreeColumn;
+ new(): TreeColumn;
+ readonly TYPE_TEXT: 1;
+ readonly TYPE_CHECKBOX: 2;
+ isInstance(obj): obj is TreeColumn;
+};
+
+interface TreeColumns {
+ readonly count: number;
+ readonly length: number;
+ readonly tree: XULTreeElement | null;
+ getColumnAt(index: number): TreeColumn | null;
+ getColumnFor(element: Element | null): TreeColumn | null;
+ getFirstColumn(): TreeColumn | null;
+ getKeyColumn(): TreeColumn | null;
+ getLastColumn(): TreeColumn | null;
+ getNamedColumn(name: string): TreeColumn | null;
+ getPrimaryColumn(): TreeColumn | null;
+ getSortedColumn(): TreeColumn | null;
+ invalidateColumns(): void;
+ [index: number]: TreeColumn;
+}
+
+declare var TreeColumns: {
+ prototype: TreeColumns;
+ new(): TreeColumns;
+ isInstance(obj): obj is TreeColumns;
+};
+
+interface TreeContentView extends TreeView {
+ getIndexOfItem(item: Element | null): number;
+ getItemAtIndex(row: number): Element | null;
+}
+
+declare var TreeContentView: {
+ prototype: TreeContentView;
+ new(): TreeContentView;
+ readonly DROP_BEFORE: -1;
+ readonly DROP_ON: 0;
+ readonly DROP_AFTER: 1;
+ isInstance(obj): obj is TreeContentView;
+};
+
+interface TreeView {
+ readonly rowCount: number;
+ selection: nsITreeSelection | null;
+ canDrop(row: number, orientation: number, dataTransfer: DataTransfer | null): boolean;
+ cycleCell(row: number, column: TreeColumn): void;
+ cycleHeader(column: TreeColumn): void;
+ drop(row: number, orientation: number, dataTransfer: DataTransfer | null): void;
+ getCellProperties(row: number, column: TreeColumn): string;
+ getCellText(row: number, column: TreeColumn): string;
+ getCellValue(row: number, column: TreeColumn): string;
+ getColumnProperties(column: TreeColumn): string;
+ getImageSrc(row: number, column: TreeColumn): string;
+ getLevel(row: number): number;
+ getParentIndex(row: number): number;
+ getRowProperties(row: number): string;
+ hasNextSibling(row: number, afterIndex: number): boolean;
+ isContainer(row: number): boolean;
+ isContainerEmpty(row: number): boolean;
+ isContainerOpen(row: number): boolean;
+ isEditable(row: number, column: TreeColumn): boolean;
+ isSeparator(row: number): boolean;
+ isSorted(): boolean;
+ selectionChanged(): void;
+ setCellText(row: number, column: TreeColumn, value: string): void;
+ setCellValue(row: number, column: TreeColumn, value: string): void;
+ setTree(tree: XULTreeElement | null): void;
+ toggleOpenState(row: number): void;
+ readonly DROP_BEFORE: -1;
+ readonly DROP_ON: 0;
+ readonly DROP_AFTER: 1;
+}
+
+/**
+ * The nodes of a document subtree and a position within them.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker)
+ */
+interface TreeWalker {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/currentNode) */
+ currentNode: Node;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/filter) */
+ readonly filter: NodeFilter | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/root) */
+ readonly root: Node;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/whatToShow) */
+ readonly whatToShow: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/firstChild) */
+ firstChild(): Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/lastChild) */
+ lastChild(): Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/nextNode) */
+ nextNode(): Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/nextSibling) */
+ nextSibling(): Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/parentNode) */
+ parentNode(): Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/previousNode) */
+ previousNode(): Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/TreeWalker/previousSibling) */
+ previousSibling(): Node | null;
+}
+
+declare var TreeWalker: {
+ prototype: TreeWalker;
+ new(): TreeWalker;
+ isInstance(obj): obj is TreeWalker;
+};
+
+interface UDPMessageEvent extends Event {
+ readonly data: any;
+ readonly remoteAddress: string;
+ readonly remotePort: number;
+}
+
+declare var UDPMessageEvent: {
+ prototype: UDPMessageEvent;
+ new(type: string, eventInitDict?: UDPMessageEventInit): UDPMessageEvent;
+ isInstance(obj): obj is UDPMessageEvent;
+};
+
+interface UDPSocketEventMap {
+ "message": Event;
+}
+
+interface UDPSocket extends EventTarget {
+ readonly addressReuse: boolean;
+ readonly closed: Promise<undefined>;
+ readonly localAddress: string | null;
+ readonly localPort: number | null;
+ readonly loopback: boolean;
+ onmessage: ((this: UDPSocket, ev: Event) => any) | null;
+ readonly opened: Promise<undefined>;
+ readonly readyState: SocketReadyState;
+ readonly remoteAddress: string | null;
+ readonly remotePort: number | null;
+ close(): Promise<void>;
+ joinMulticastGroup(multicastGroupAddress: string): void;
+ leaveMulticastGroup(multicastGroupAddress: string): void;
+ send(data: string | Blob | ArrayBuffer | ArrayBufferView, remoteAddress?: string | null, remotePort?: number | null): boolean;
+ addEventListener<K extends keyof UDPSocketEventMap>(type: K, listener: (this: UDPSocket, ev: UDPSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof UDPSocketEventMap>(type: K, listener: (this: UDPSocket, ev: UDPSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var UDPSocket: {
+ prototype: UDPSocket;
+ new(options?: UDPOptions): UDPSocket;
+ isInstance(obj): obj is UDPSocket;
+};
+
+/**
+ * Simple user interface events.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent)
+ */
+interface UIEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent/detail) */
+ readonly detail: number;
+ readonly layerX: number;
+ readonly layerY: number;
+ readonly rangeOffset: number;
+ readonly rangeParent: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent/view) */
+ readonly view: WindowProxy | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent/which)
+ */
+ readonly which: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/UIEvent/initUIEvent)
+ */
+ initUIEvent(aType: string, aCanBubble?: boolean, aCancelable?: boolean, aView?: Window | null, aDetail?: number): void;
+ readonly SCROLL_PAGE_UP: -32768;
+ readonly SCROLL_PAGE_DOWN: 32768;
+}
+
+declare var UIEvent: {
+ prototype: UIEvent;
+ new(type: string, eventInitDict?: UIEventInit): UIEvent;
+ readonly SCROLL_PAGE_UP: -32768;
+ readonly SCROLL_PAGE_DOWN: 32768;
+ isInstance(obj): obj is UIEvent;
+};
+
+/**
+ * The URL interface represents an object providing static methods used for creating object URLs.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL)
+ */
+interface URL {
+ readonly URI: URI;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/hash) */
+ hash: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/host) */
+ host: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/hostname) */
+ hostname: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/href) */
+ href: string;
+ toString(): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/origin) */
+ readonly origin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/password) */
+ password: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/pathname) */
+ pathname: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/port) */
+ port: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/protocol) */
+ protocol: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/search) */
+ search: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/searchParams) */
+ readonly searchParams: URLSearchParams;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/username) */
+ username: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/toJSON) */
+ toJSON(): string;
+}
+
+declare var URL: {
+ prototype: URL;
+ new(url: string | URL, base?: string): URL;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/canParse_static) */
+ canParse(url: string | URL, base?: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/createObjectURL_static) */
+ createObjectURL(blob: Blob): string;
+ createObjectURL(source: MediaSource): string;
+ fromURI(uri: URI): URL;
+ isValidObjectURL(url: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URL/revokeObjectURL_static) */
+ revokeObjectURL(url: string): void;
+ isInstance(obj): obj is URL;
+};
+
+type webkitURL = URL;
+declare var webkitURL: typeof URL;
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams) */
+interface URLSearchParams {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/size) */
+ readonly size: number;
+ /**
+ * Appends a specified key/value pair as a new search parameter.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/append)
+ */
+ append(name: string, value: string): void;
+ /**
+ * Deletes the given search parameter, and its associated value, from the list of all search parameters.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/delete)
+ */
+ delete(name: string, value?: string): void;
+ /**
+ * Returns the first value associated to the given search parameter.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/get)
+ */
+ get(name: string): string | null;
+ /**
+ * Returns all the values association with a given search parameter.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/getAll)
+ */
+ getAll(name: string): string[];
+ /**
+ * Returns a Boolean indicating if such a search parameter exists.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/has)
+ */
+ has(name: string, value?: string): boolean;
+ /**
+ * Sets the value associated to a given search parameter to the given value. If there were several values, delete the others.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/set)
+ */
+ set(name: string, value: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/URLSearchParams/sort) */
+ sort(): void;
+ /** Returns a string containing a query string suitable for use in a URL. Does not include the question mark. */
+ toString(): string;
+ forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void;
+}
+
+declare var URLSearchParams: {
+ prototype: URLSearchParams;
+ new(init?: string[][] | Record<string, string> | string): URLSearchParams;
+ isInstance(obj): obj is URLSearchParams;
+};
+
+interface UniFFIPointer {
+}
+
+declare var UniFFIPointer: {
+ prototype: UniFFIPointer;
+ new(): UniFFIPointer;
+ isInstance(obj): obj is UniFFIPointer;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/UserActivation) */
+interface UserActivation {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/UserActivation/hasBeenActive) */
+ readonly hasBeenActive: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/UserActivation/hasBeenActive) */
+ readonly isActive: boolean;
+}
+
+declare var UserActivation: {
+ prototype: UserActivation;
+ new(): UserActivation;
+ isInstance(obj): obj is UserActivation;
+};
+
+interface UserProximityEvent extends Event {
+ readonly near: boolean;
+}
+
+declare var UserProximityEvent: {
+ prototype: UserProximityEvent;
+ new(type: string, eventInitDict?: UserProximityEventInit): UserProximityEvent;
+ isInstance(obj): obj is UserProximityEvent;
+};
+
+/**
+ * This WebVR API interface represents any VR device supported by this API. It includes generic information such as device IDs and descriptions, as well as methods for starting to present a VR scene, retrieving eye parameters and display capabilities, and other important functionality.
+ * @deprecated
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay)
+ */
+interface VRDisplay extends EventTarget {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/capabilities)
+ */
+ readonly capabilities: VRDisplayCapabilities;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/depthFar)
+ */
+ depthFar: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/depthNear)
+ */
+ depthNear: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/displayId)
+ */
+ readonly displayId: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/displayName)
+ */
+ readonly displayName: string;
+ groupMask: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/isConnected)
+ */
+ readonly isConnected: boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/isPresenting)
+ */
+ readonly isPresenting: boolean;
+ readonly presentingGroups: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/stageParameters)
+ */
+ readonly stageParameters: VRStageParameters | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/cancelAnimationFrame)
+ */
+ cancelAnimationFrame(handle: number): void;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/exitPresent)
+ */
+ exitPresent(): Promise<void>;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/getEyeParameters)
+ */
+ getEyeParameters(whichEye: VREye): VREyeParameters;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/getFrameData)
+ */
+ getFrameData(frameData: VRFrameData): boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/getLayers)
+ */
+ getLayers(): VRLayer[];
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/getPose)
+ */
+ getPose(): VRPose;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/requestAnimationFrame)
+ */
+ requestAnimationFrame(callback: FrameRequestCallback): number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/requestPresent)
+ */
+ requestPresent(layers: VRLayer[]): Promise<void>;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/resetPose)
+ */
+ resetPose(): void;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplay/submitFrame)
+ */
+ submitFrame(): void;
+}
+
+/** @deprecated */
+declare var VRDisplay: {
+ prototype: VRDisplay;
+ new(): VRDisplay;
+ isInstance(obj): obj is VRDisplay;
+};
+
+/**
+ * This WebVR API interface describes the capabilities of a VRDisplay — its features can be used to perform VR device capability tests, for example can it return position information.
+ * @deprecated
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplayCapabilities)
+ */
+interface VRDisplayCapabilities {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplayCapabilities/canPresent)
+ */
+ readonly canPresent: boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplayCapabilities/hasExternalDisplay)
+ */
+ readonly hasExternalDisplay: boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplayCapabilities/hasOrientation)
+ */
+ readonly hasOrientation: boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplayCapabilities/hasPosition)
+ */
+ readonly hasPosition: boolean;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplayCapabilities/maxLayers)
+ */
+ readonly maxLayers: number;
+}
+
+/** @deprecated */
+declare var VRDisplayCapabilities: {
+ prototype: VRDisplayCapabilities;
+ new(): VRDisplayCapabilities;
+ isInstance(obj): obj is VRDisplayCapabilities;
+};
+
+/**
+ * This WebVR API interface represents represents the event object of WebVR-related events (see the list of WebVR window extensions).
+ * @deprecated
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplayEvent)
+ */
+interface VRDisplayEvent extends Event {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplayEvent/display)
+ */
+ readonly display: VRDisplay;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRDisplayEvent/reason)
+ */
+ readonly reason: VRDisplayEventReason | null;
+}
+
+/** @deprecated */
+declare var VRDisplayEvent: {
+ prototype: VRDisplayEvent;
+ new(type: string, eventInitDict: VRDisplayEventInit): VRDisplayEvent;
+ isInstance(obj): obj is VRDisplayEvent;
+};
+
+/**
+ * This WebVR API interface represents all the information required to correctly render a scene for a given eye, including field of view information.
+ * @deprecated
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VREyeParameters)
+ */
+interface VREyeParameters {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VREyeParameters/fieldOfView)
+ */
+ readonly fieldOfView: VRFieldOfView;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VREyeParameters/offset)
+ */
+ readonly offset: Float32Array;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VREyeParameters/renderHeight)
+ */
+ readonly renderHeight: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VREyeParameters/renderWidth)
+ */
+ readonly renderWidth: number;
+}
+
+/** @deprecated */
+declare var VREyeParameters: {
+ prototype: VREyeParameters;
+ new(): VREyeParameters;
+ isInstance(obj): obj is VREyeParameters;
+};
+
+/**
+ * This WebVR API interface represents a field of view defined by 4 different degree values describing the view from a center point.
+ * @deprecated
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRFieldOfView)
+ */
+interface VRFieldOfView {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRFieldOfView/downDegrees)
+ */
+ readonly downDegrees: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRFieldOfView/leftDegrees)
+ */
+ readonly leftDegrees: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRFieldOfView/rightDegrees)
+ */
+ readonly rightDegrees: number;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRFieldOfView/upDegrees)
+ */
+ readonly upDegrees: number;
+}
+
+/** @deprecated */
+declare var VRFieldOfView: {
+ prototype: VRFieldOfView;
+ new(): VRFieldOfView;
+ isInstance(obj): obj is VRFieldOfView;
+};
+
+/**
+ * This WebVR API interface represents all the information needed to render a single frame of a VR scene; constructed by VRDisplay.getFrameData().
+ * @deprecated
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRFrameData)
+ */
+interface VRFrameData {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRFrameData/leftProjectionMatrix)
+ */
+ readonly leftProjectionMatrix: Float32Array;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRFrameData/leftViewMatrix)
+ */
+ readonly leftViewMatrix: Float32Array;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRFrameData/pose)
+ */
+ readonly pose: VRPose;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRFrameData/rightProjectionMatrix)
+ */
+ readonly rightProjectionMatrix: Float32Array;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRFrameData/rightViewMatrix)
+ */
+ readonly rightViewMatrix: Float32Array;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRFrameData/timestamp)
+ */
+ readonly timestamp: DOMHighResTimeStamp;
+}
+
+/** @deprecated */
+declare var VRFrameData: {
+ prototype: VRFrameData;
+ new(): VRFrameData;
+ isInstance(obj): obj is VRFrameData;
+};
+
+interface VRMockController {
+ axisCount: number;
+ buttonCount: number;
+ capAngularAcceleration: boolean;
+ capLinearAcceleration: boolean;
+ capOrientation: boolean;
+ capPosition: boolean;
+ hand: GamepadHand;
+ hapticCount: number;
+ clear(): void;
+ create(): void;
+ setAxisValue(axisIdx: number, value: number): void;
+ setButtonPressed(buttonIdx: number, pressed: boolean): void;
+ setButtonTouched(buttonIdx: number, touched: boolean): void;
+ setButtonTrigger(buttonIdx: number, trigger: number): void;
+ setPose(position: Float32Array | null, linearVelocity: Float32Array | null, linearAcceleration: Float32Array | null, orientation: Float32Array | null, angularVelocity: Float32Array | null, angularAcceleration: Float32Array | null): void;
+}
+
+declare var VRMockController: {
+ prototype: VRMockController;
+ new(): VRMockController;
+ isInstance(obj): obj is VRMockController;
+};
+
+interface VRMockDisplay {
+ capAngularAcceleration: boolean;
+ capExternal: boolean;
+ capLinearAcceleration: boolean;
+ capMountDetection: boolean;
+ capOrientation: boolean;
+ capPosition: boolean;
+ capPositionEmulated: boolean;
+ capPresent: boolean;
+ capStageParameters: boolean;
+ create(): void;
+ setConnected(connected: boolean): void;
+ setEyeFOV(eye: VREye, upDegree: number, rightDegree: number, downDegree: number, leftDegree: number): void;
+ setEyeOffset(eye: VREye, offsetX: number, offsetY: number, offsetZ: number): void;
+ setEyeResolution(renderWidth: number, renderHeight: number): void;
+ setMounted(mounted: boolean): void;
+ setPose(position: Float32Array | null, linearVelocity: Float32Array | null, linearAcceleration: Float32Array | null, orientation: Float32Array | null, angularVelocity: Float32Array | null, angularAcceleration: Float32Array | null): void;
+ setSittingToStandingTransform(sittingToStandingTransform: Float32Array): void;
+ setStageSize(width: number, height: number): void;
+}
+
+declare var VRMockDisplay: {
+ prototype: VRMockDisplay;
+ new(): VRMockDisplay;
+ isInstance(obj): obj is VRMockDisplay;
+};
+
+/**
+ * This WebVR API interface represents the state of a VR sensor at a given timestamp (which includes orientation, position, velocity, and acceleration information.)
+ * @deprecated
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRPose)
+ */
+interface VRPose {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRPose/angularAcceleration)
+ */
+ readonly angularAcceleration: Float32Array | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRPose/angularVelocity)
+ */
+ readonly angularVelocity: Float32Array | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRPose/linearAcceleration)
+ */
+ readonly linearAcceleration: Float32Array | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRPose/linearVelocity)
+ */
+ readonly linearVelocity: Float32Array | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRPose/orientation)
+ */
+ readonly orientation: Float32Array | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRPose/position)
+ */
+ readonly position: Float32Array | null;
+}
+
+/** @deprecated */
+declare var VRPose: {
+ prototype: VRPose;
+ new(): VRPose;
+ isInstance(obj): obj is VRPose;
+};
+
+interface VRServiceTest {
+ acknowledgeFrame(): void;
+ captureFrame(): void;
+ clearAll(): void;
+ commit(): void;
+ end(): void;
+ getVRController(controllerIdx: number): VRMockController;
+ getVRDisplay(): VRMockDisplay;
+ rejectFrame(): void;
+ reset(): Promise<void>;
+ run(): Promise<void>;
+ startTimer(): void;
+ stopTimer(): void;
+ timeout(duration: number): void;
+ wait(duration: number): void;
+ waitHapticIntensity(controllerIdx: number, hapticIdx: number, intensity: number): void;
+ waitPresentationEnd(): void;
+ waitPresentationStart(): void;
+ waitSubmit(): void;
+}
+
+declare var VRServiceTest: {
+ prototype: VRServiceTest;
+ new(): VRServiceTest;
+ isInstance(obj): obj is VRServiceTest;
+};
+
+/**
+ * @deprecated
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRStageParameters)
+ */
+interface VRStageParameters {
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRStageParameters/sittingToStandingTransform)
+ */
+ readonly sittingToStandingTransform: Float32Array;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VRStageParameters/sizeX)
+ */
+ readonly sizeX: number;
+ readonly sizeZ: number;
+}
+
+/** @deprecated */
+declare var VRStageParameters: {
+ prototype: VRStageParameters;
+ new(): VRStageParameters;
+ isInstance(obj): obj is VRStageParameters;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue) */
+interface VTTCue extends TextTrackCue {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/align) */
+ align: AlignSetting;
+ readonly computedLine: number;
+ readonly computedPosition: number;
+ readonly computedPositionAlign: PositionAlignSetting;
+ displayState: HTMLDivElement | null;
+ readonly getActive: boolean;
+ readonly hasBeenReset: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/line) */
+ line: number | AutoKeyword;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/lineAlign) */
+ lineAlign: LineAlignSetting;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/position) */
+ position: number | AutoKeyword;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/positionAlign) */
+ positionAlign: PositionAlignSetting;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/region) */
+ region: VTTRegion | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/size) */
+ size: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/snapToLines) */
+ snapToLines: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/text) */
+ text: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/vertical) */
+ vertical: DirectionSetting;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTCue/getCueAsHTML) */
+ getCueAsHTML(): DocumentFragment;
+ addEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: VTTCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof TextTrackCueEventMap>(type: K, listener: (this: VTTCue, ev: TextTrackCueEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var VTTCue: {
+ prototype: VTTCue;
+ new(startTime: number, endTime: number, text: string): VTTCue;
+ isInstance(obj): obj is VTTCue;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion) */
+interface VTTRegion {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/id) */
+ id: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/lines) */
+ lines: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/regionAnchorX) */
+ regionAnchorX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/regionAnchorY) */
+ regionAnchorY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/scroll) */
+ scroll: ScrollSetting;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/viewportAnchorX) */
+ viewportAnchorX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/viewportAnchorY) */
+ viewportAnchorY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VTTRegion/width) */
+ width: number;
+}
+
+declare var VTTRegion: {
+ prototype: VTTRegion;
+ new(): VTTRegion;
+ isInstance(obj): obj is VTTRegion;
+};
+
+/**
+ * The validity states that an element can be in, with respect to constraint validation. Together, they help explain why an element's value fails to validate, if it's not valid.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState)
+ */
+interface ValidityState {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/badInput) */
+ readonly badInput: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/customError) */
+ readonly customError: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/patternMismatch) */
+ readonly patternMismatch: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/rangeOverflow) */
+ readonly rangeOverflow: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/rangeUnderflow) */
+ readonly rangeUnderflow: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/stepMismatch) */
+ readonly stepMismatch: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/tooLong) */
+ readonly tooLong: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/tooShort) */
+ readonly tooShort: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/typeMismatch) */
+ readonly typeMismatch: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/valid) */
+ readonly valid: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ValidityState/valueMissing) */
+ readonly valueMissing: boolean;
+}
+
+declare var ValidityState: {
+ prototype: ValidityState;
+ new(): ValidityState;
+ isInstance(obj): obj is ValidityState;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace) */
+interface VideoColorSpace {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/fullRange) */
+ readonly fullRange: boolean | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/matrix) */
+ readonly matrix: VideoMatrixCoefficients | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/primaries) */
+ readonly primaries: VideoColorPrimaries | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/transfer) */
+ readonly transfer: VideoTransferCharacteristics | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoColorSpace/toJSON) */
+ toJSON(): any;
+}
+
+declare var VideoColorSpace: {
+ prototype: VideoColorSpace;
+ new(init?: VideoColorSpaceInit): VideoColorSpace;
+ isInstance(obj): obj is VideoColorSpace;
+};
+
+interface VideoDecoderEventMap {
+ "dequeue": Event;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder)
+ */
+interface VideoDecoder extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/decodeQueueSize) */
+ readonly decodeQueueSize: number;
+ ondequeue: ((this: VideoDecoder, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/state) */
+ readonly state: CodecState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/close) */
+ close(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/configure) */
+ configure(config: VideoDecoderConfig): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/decode) */
+ decode(chunk: EncodedVideoChunk): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/flush) */
+ flush(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoDecoder/reset) */
+ reset(): void;
+ addEventListener<K extends keyof VideoDecoderEventMap>(type: K, listener: (this: VideoDecoder, ev: VideoDecoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof VideoDecoderEventMap>(type: K, listener: (this: VideoDecoder, ev: VideoDecoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var VideoDecoder: {
+ prototype: VideoDecoder;
+ new(init: VideoDecoderInit): VideoDecoder;
+ isConfigSupported(config: VideoDecoderConfig): Promise<VideoDecoderSupport>;
+ isInstance(obj): obj is VideoDecoder;
+};
+
+interface VideoEncoderEventMap {
+ "dequeue": Event;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder)
+ */
+interface VideoEncoder extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/encodeQueueSize) */
+ readonly encodeQueueSize: number;
+ ondequeue: ((this: VideoEncoder, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/state) */
+ readonly state: CodecState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/close) */
+ close(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/configure) */
+ configure(config: VideoEncoderConfig): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/encode) */
+ encode(frame: VideoFrame, options?: VideoEncoderEncodeOptions): void;
+ flush(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoEncoder/reset) */
+ reset(): void;
+ addEventListener<K extends keyof VideoEncoderEventMap>(type: K, listener: (this: VideoEncoder, ev: VideoEncoderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof VideoEncoderEventMap>(type: K, listener: (this: VideoEncoder, ev: VideoEncoderEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var VideoEncoder: {
+ prototype: VideoEncoder;
+ new(init: VideoEncoderInit): VideoEncoder;
+ isConfigSupported(config: VideoEncoderConfig): Promise<VideoEncoderSupport>;
+ isInstance(obj): obj is VideoEncoder;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame) */
+interface VideoFrame {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedHeight) */
+ readonly codedHeight: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedRect) */
+ readonly codedRect: DOMRectReadOnly | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/codedWidth) */
+ readonly codedWidth: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/colorSpace) */
+ readonly colorSpace: VideoColorSpace;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/displayHeight) */
+ readonly displayHeight: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/displayWidth) */
+ readonly displayWidth: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/duration) */
+ readonly duration: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/format) */
+ readonly format: VideoPixelFormat | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/timestamp) */
+ readonly timestamp: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/visibleRect) */
+ readonly visibleRect: DOMRectReadOnly | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/allocationSize) */
+ allocationSize(options?: VideoFrameCopyToOptions): number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/clone) */
+ clone(): VideoFrame;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoFrame/close) */
+ close(): void;
+ copyTo(destination: ArrayBufferView | ArrayBuffer, options?: VideoFrameCopyToOptions): Promise<PlaneLayout[]>;
+}
+
+declare var VideoFrame: {
+ prototype: VideoFrame;
+ new(imageElement: HTMLImageElement, init?: VideoFrameInit): VideoFrame;
+ new(svgImageElement: SVGImageElement, init?: VideoFrameInit): VideoFrame;
+ new(canvasElement: HTMLCanvasElement, init?: VideoFrameInit): VideoFrame;
+ new(videoElement: HTMLVideoElement, init?: VideoFrameInit): VideoFrame;
+ new(offscreenCanvas: OffscreenCanvas, init?: VideoFrameInit): VideoFrame;
+ new(imageBitmap: ImageBitmap, init?: VideoFrameInit): VideoFrame;
+ new(videoFrame: VideoFrame, init?: VideoFrameInit): VideoFrame;
+ new(bufferView: ArrayBufferView, init: VideoFrameBufferInit): VideoFrame;
+ new(buffer: ArrayBuffer, init: VideoFrameBufferInit): VideoFrame;
+ isInstance(obj): obj is VideoFrame;
+};
+
+/**
+ * Returned by the HTMLVideoElement.getVideoPlaybackQuality() method and contains metrics that can be used to determine the playback quality of a video.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality)
+ */
+interface VideoPlaybackQuality {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality/creationTime) */
+ readonly creationTime: DOMHighResTimeStamp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality/droppedVideoFrames) */
+ readonly droppedVideoFrames: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoPlaybackQuality/totalVideoFrames) */
+ readonly totalVideoFrames: number;
+}
+
+declare var VideoPlaybackQuality: {
+ prototype: VideoPlaybackQuality;
+ new(): VideoPlaybackQuality;
+ isInstance(obj): obj is VideoPlaybackQuality;
+};
+
+/**
+ * A single video track from a <video> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoTrack)
+ */
+interface VideoTrack {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoTrack/id) */
+ readonly id: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoTrack/kind) */
+ readonly kind: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoTrack/label) */
+ readonly label: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoTrack/language) */
+ readonly language: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoTrack/selected) */
+ selected: boolean;
+}
+
+declare var VideoTrack: {
+ prototype: VideoTrack;
+ new(): VideoTrack;
+ isInstance(obj): obj is VideoTrack;
+};
+
+interface VideoTrackListEventMap {
+ "addtrack": Event;
+ "change": Event;
+ "removetrack": Event;
+}
+
+/**
+ * Used to represent a list of the video tracks contained within a <video> element, with each track represented by a separate VideoTrack object in the list.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoTrackList)
+ */
+interface VideoTrackList extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoTrackList/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoTrackList/addtrack_event) */
+ onaddtrack: ((this: VideoTrackList, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoTrackList/change_event) */
+ onchange: ((this: VideoTrackList, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoTrackList/removetrack_event) */
+ onremovetrack: ((this: VideoTrackList, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoTrackList/selectedIndex) */
+ readonly selectedIndex: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VideoTrackList/getTrackById) */
+ getTrackById(id: string): VideoTrack | null;
+ addEventListener<K extends keyof VideoTrackListEventMap>(type: K, listener: (this: VideoTrackList, ev: VideoTrackListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof VideoTrackListEventMap>(type: K, listener: (this: VideoTrackList, ev: VideoTrackListEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+ [index: number]: VideoTrack;
+}
+
+declare var VideoTrackList: {
+ prototype: VideoTrackList;
+ new(): VideoTrackList;
+ isInstance(obj): obj is VideoTrackList;
+};
+
+interface VisualViewportEventMap {
+ "resize": Event;
+ "scroll": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport) */
+interface VisualViewport extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/height) */
+ readonly height: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/offsetLeft) */
+ readonly offsetLeft: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/offsetTop) */
+ readonly offsetTop: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/resize_event) */
+ onresize: ((this: VisualViewport, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/scroll_event) */
+ onscroll: ((this: VisualViewport, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/pageLeft) */
+ readonly pageLeft: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/pageTop) */
+ readonly pageTop: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/scale) */
+ readonly scale: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/VisualViewport/width) */
+ readonly width: number;
+ addEventListener<K extends keyof VisualViewportEventMap>(type: K, listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof VisualViewportEventMap>(type: K, listener: (this: VisualViewport, ev: VisualViewportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var VisualViewport: {
+ prototype: VisualViewport;
+ new(): VisualViewport;
+ isInstance(obj): obj is VisualViewport;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_color_buffer_float) */
+interface WEBGL_color_buffer_float {
+ readonly RGBA32F_EXT: 0x8814;
+ readonly RGB32F_EXT: 0x8815;
+ readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: 0x8211;
+ readonly UNSIGNED_NORMALIZED_EXT: 0x8C17;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_astc) */
+interface WEBGL_compressed_texture_astc {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_astc/getSupportedProfiles) */
+ getSupportedProfiles(): string[] | null;
+ readonly COMPRESSED_RGBA_ASTC_4x4_KHR: 0x93B0;
+ readonly COMPRESSED_RGBA_ASTC_5x4_KHR: 0x93B1;
+ readonly COMPRESSED_RGBA_ASTC_5x5_KHR: 0x93B2;
+ readonly COMPRESSED_RGBA_ASTC_6x5_KHR: 0x93B3;
+ readonly COMPRESSED_RGBA_ASTC_6x6_KHR: 0x93B4;
+ readonly COMPRESSED_RGBA_ASTC_8x5_KHR: 0x93B5;
+ readonly COMPRESSED_RGBA_ASTC_8x6_KHR: 0x93B6;
+ readonly COMPRESSED_RGBA_ASTC_8x8_KHR: 0x93B7;
+ readonly COMPRESSED_RGBA_ASTC_10x5_KHR: 0x93B8;
+ readonly COMPRESSED_RGBA_ASTC_10x6_KHR: 0x93B9;
+ readonly COMPRESSED_RGBA_ASTC_10x8_KHR: 0x93BA;
+ readonly COMPRESSED_RGBA_ASTC_10x10_KHR: 0x93BB;
+ readonly COMPRESSED_RGBA_ASTC_12x10_KHR: 0x93BC;
+ readonly COMPRESSED_RGBA_ASTC_12x12_KHR: 0x93BD;
+ readonly COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR: 0x93D0;
+ readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR: 0x93D1;
+ readonly COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR: 0x93D2;
+ readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR: 0x93D3;
+ readonly COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR: 0x93D4;
+ readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR: 0x93D5;
+ readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR: 0x93D6;
+ readonly COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR: 0x93D7;
+ readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR: 0x93D8;
+ readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR: 0x93D9;
+ readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR: 0x93DA;
+ readonly COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR: 0x93DB;
+ readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR: 0x93DC;
+ readonly COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR: 0x93DD;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_etc) */
+interface WEBGL_compressed_texture_etc {
+ readonly COMPRESSED_R11_EAC: 0x9270;
+ readonly COMPRESSED_SIGNED_R11_EAC: 0x9271;
+ readonly COMPRESSED_RG11_EAC: 0x9272;
+ readonly COMPRESSED_SIGNED_RG11_EAC: 0x9273;
+ readonly COMPRESSED_RGB8_ETC2: 0x9274;
+ readonly COMPRESSED_SRGB8_ETC2: 0x9275;
+ readonly COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9276;
+ readonly COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9277;
+ readonly COMPRESSED_RGBA8_ETC2_EAC: 0x9278;
+ readonly COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 0x9279;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_etc1) */
+interface WEBGL_compressed_texture_etc1 {
+ readonly COMPRESSED_RGB_ETC1_WEBGL: 0x8D64;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_pvrtc) */
+interface WEBGL_compressed_texture_pvrtc {
+ readonly COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 0x8C00;
+ readonly COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 0x8C01;
+ readonly COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 0x8C02;
+ readonly COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 0x8C03;
+}
+
+/**
+ * The WEBGL_compressed_texture_s3tc extension is part of the WebGL API and exposes four S3TC compressed texture formats.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_s3tc)
+ */
+interface WEBGL_compressed_texture_s3tc {
+ readonly COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83F0;
+ readonly COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83F1;
+ readonly COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83F2;
+ readonly COMPRESSED_RGBA_S3TC_DXT5_EXT: 0x83F3;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_compressed_texture_s3tc_srgb) */
+interface WEBGL_compressed_texture_s3tc_srgb {
+ readonly COMPRESSED_SRGB_S3TC_DXT1_EXT: 0x8C4C;
+ readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 0x8C4D;
+ readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 0x8C4E;
+ readonly COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 0x8C4F;
+}
+
+/**
+ * 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.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_renderer_info)
+ */
+interface WEBGL_debug_renderer_info {
+ readonly UNMASKED_VENDOR_WEBGL: 0x9245;
+ readonly UNMASKED_RENDERER_WEBGL: 0x9246;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_shaders) */
+interface WEBGL_debug_shaders {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_debug_shaders/getTranslatedShaderSource) */
+ getTranslatedShaderSource(shader: WebGLShader): string;
+}
+
+/**
+ * The WEBGL_depth_texture extension is part of the WebGL API and defines 2D depth and depth-stencil textures.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_depth_texture)
+ */
+interface WEBGL_depth_texture {
+ readonly UNSIGNED_INT_24_8_WEBGL: 0x84FA;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_draw_buffers) */
+interface WEBGL_draw_buffers {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_draw_buffers/drawBuffersWEBGL) */
+ drawBuffersWEBGL(buffers: GLenum[]): void;
+ readonly COLOR_ATTACHMENT0_WEBGL: 0x8CE0;
+ readonly COLOR_ATTACHMENT1_WEBGL: 0x8CE1;
+ readonly COLOR_ATTACHMENT2_WEBGL: 0x8CE2;
+ readonly COLOR_ATTACHMENT3_WEBGL: 0x8CE3;
+ readonly COLOR_ATTACHMENT4_WEBGL: 0x8CE4;
+ readonly COLOR_ATTACHMENT5_WEBGL: 0x8CE5;
+ readonly COLOR_ATTACHMENT6_WEBGL: 0x8CE6;
+ readonly COLOR_ATTACHMENT7_WEBGL: 0x8CE7;
+ readonly COLOR_ATTACHMENT8_WEBGL: 0x8CE8;
+ readonly COLOR_ATTACHMENT9_WEBGL: 0x8CE9;
+ readonly COLOR_ATTACHMENT10_WEBGL: 0x8CEA;
+ readonly COLOR_ATTACHMENT11_WEBGL: 0x8CEB;
+ readonly COLOR_ATTACHMENT12_WEBGL: 0x8CEC;
+ readonly COLOR_ATTACHMENT13_WEBGL: 0x8CED;
+ readonly COLOR_ATTACHMENT14_WEBGL: 0x8CEE;
+ readonly COLOR_ATTACHMENT15_WEBGL: 0x8CEF;
+ readonly DRAW_BUFFER0_WEBGL: 0x8825;
+ readonly DRAW_BUFFER1_WEBGL: 0x8826;
+ readonly DRAW_BUFFER2_WEBGL: 0x8827;
+ readonly DRAW_BUFFER3_WEBGL: 0x8828;
+ readonly DRAW_BUFFER4_WEBGL: 0x8829;
+ readonly DRAW_BUFFER5_WEBGL: 0x882A;
+ readonly DRAW_BUFFER6_WEBGL: 0x882B;
+ readonly DRAW_BUFFER7_WEBGL: 0x882C;
+ readonly DRAW_BUFFER8_WEBGL: 0x882D;
+ readonly DRAW_BUFFER9_WEBGL: 0x882E;
+ readonly DRAW_BUFFER10_WEBGL: 0x882F;
+ readonly DRAW_BUFFER11_WEBGL: 0x8830;
+ readonly DRAW_BUFFER12_WEBGL: 0x8831;
+ readonly DRAW_BUFFER13_WEBGL: 0x8832;
+ readonly DRAW_BUFFER14_WEBGL: 0x8833;
+ readonly DRAW_BUFFER15_WEBGL: 0x8834;
+ readonly MAX_COLOR_ATTACHMENTS_WEBGL: 0x8CDF;
+ readonly MAX_DRAW_BUFFERS_WEBGL: 0x8824;
+}
+
+interface WEBGL_explicit_present {
+ present(): void;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context) */
+interface WEBGL_lose_context {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context/loseContext) */
+ loseContext(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WEBGL_lose_context/restoreContext) */
+ restoreContext(): void;
+}
+
+interface WEBGL_provoking_vertex {
+ provokingVertexWEBGL(provokeMode: GLenum): void;
+ readonly FIRST_VERTEX_CONVENTION_WEBGL: 0x8E4D;
+ readonly LAST_VERTEX_CONVENTION_WEBGL: 0x8E4E;
+ readonly PROVOKING_VERTEX_WEBGL: 0x8E4F;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLock)
+ */
+interface WakeLock {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLock/request) */
+ request(type?: WakeLockType): Promise<WakeLockSentinel>;
+}
+
+declare var WakeLock: {
+ prototype: WakeLock;
+ new(): WakeLock;
+ isInstance(obj): obj is WakeLock;
+};
+
+interface WakeLockSentinelEventMap {
+ "release": Event;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel)
+ */
+interface WakeLockSentinel extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel/release_event) */
+ onrelease: ((this: WakeLockSentinel, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel/released) */
+ readonly released: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel/type) */
+ readonly type: WakeLockType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WakeLockSentinel/release) */
+ release(): Promise<void>;
+ addEventListener<K extends keyof WakeLockSentinelEventMap>(type: K, listener: (this: WakeLockSentinel, ev: WakeLockSentinelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof WakeLockSentinelEventMap>(type: K, listener: (this: WakeLockSentinel, ev: WakeLockSentinelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var WakeLockSentinel: {
+ prototype: WakeLockSentinel;
+ new(): WakeLockSentinel;
+ isInstance(obj): obj is WakeLockSentinel;
+};
+
+/**
+ * A WaveShaperNode always has exactly one input and one output.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WaveShaperNode)
+ */
+interface WaveShaperNode extends AudioNode, AudioNodePassThrough {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WaveShaperNode/curve) */
+ curve: Float32Array | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WaveShaperNode/oversample) */
+ oversample: OverSampleType;
+}
+
+declare var WaveShaperNode: {
+ prototype: WaveShaperNode;
+ new(context: BaseAudioContext, options?: WaveShaperOptions): WaveShaperNode;
+ isInstance(obj): obj is WaveShaperNode;
+};
+
+interface WebBrowserPersistable {
+ startPersistence(aContext: BrowsingContext | null, aRecv: nsIWebBrowserPersistDocumentReceiver): void;
+}
+
+interface WebExtensionContentScript extends MozDocumentMatcher {
+ readonly cssPaths: string[];
+ readonly jsPaths: string[];
+ readonly runAt: ContentScriptRunAt;
+}
+
+declare var WebExtensionContentScript: {
+ prototype: WebExtensionContentScript;
+ new(extension: WebExtensionPolicy, options: WebExtensionContentScriptInit): WebExtensionContentScript;
+ isInstance(obj): obj is WebExtensionContentScript;
+};
+
+interface WebExtensionPolicy {
+ active: boolean;
+ allowedOrigins: MatchPatternSet;
+ readonly baseCSP: string;
+ readonly baseURL: string;
+ readonly browsingContextGroupId: number;
+ readonly contentScripts: WebExtensionContentScript[];
+ readonly extensionPageCSP: string;
+ readonly id: string;
+ ignoreQuarantine: boolean;
+ readonly isPrivileged: boolean;
+ readonly manifestVersion: number;
+ readonly mozExtensionHostname: string;
+ readonly name: string;
+ permissions: string[];
+ readonly privateBrowsingAllowed: boolean;
+ readonly readyPromise: any;
+ readonly temporarilyInstalled: boolean;
+ readonly type: string;
+ canAccessURI(uri: URI, explicit?: boolean): boolean;
+ canAccessWindow(window: WindowProxy): boolean;
+ getURL(path?: string): string;
+ hasPermission(permission: string): boolean;
+ injectContentScripts(): void;
+ isManifestBackgroundWorker(workerURL: string): boolean;
+ isWebAccessiblePath(pathname: UTF8String): boolean;
+ localize(unlocalizedText: string): string;
+ quarantinedFromURI(uri: URI): boolean;
+ registerContentScript(script: WebExtensionContentScript): void;
+ sourceMayAccessPath(sourceURI: URI, pathname: UTF8String): boolean;
+ unregisterContentScript(script: WebExtensionContentScript): void;
+}
+
+declare var WebExtensionPolicy: {
+ prototype: WebExtensionPolicy;
+ new(options: WebExtensionInit): WebExtensionPolicy;
+ readonly backgroundServiceWorkerEnabled: boolean;
+ readonly isExtensionProcess: boolean;
+ readonly quarantinedDomainsEnabled: boolean;
+ readonly useRemoteWebExtensions: boolean;
+ getActiveExtensions(): WebExtensionPolicy[];
+ getByHostname(hostname: string): WebExtensionPolicy | null;
+ getByID(id: string): WebExtensionPolicy | null;
+ getByURI(uri: URI): WebExtensionPolicy | null;
+ isQuarantinedURI(uri: URI): boolean;
+ isRestrictedURI(uri: URI): boolean;
+ isInstance(obj): obj is WebExtensionPolicy;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext) */
+interface WebGL2RenderingContext extends WebGL2RenderingContextBase, WebGLRenderingContextBase {
+}
+
+declare var WebGL2RenderingContext: {
+ prototype: WebGL2RenderingContext;
+ new(): WebGL2RenderingContext;
+ readonly READ_BUFFER: 0x0C02;
+ readonly UNPACK_ROW_LENGTH: 0x0CF2;
+ readonly UNPACK_SKIP_ROWS: 0x0CF3;
+ readonly UNPACK_SKIP_PIXELS: 0x0CF4;
+ readonly PACK_ROW_LENGTH: 0x0D02;
+ readonly PACK_SKIP_ROWS: 0x0D03;
+ readonly PACK_SKIP_PIXELS: 0x0D04;
+ readonly COLOR: 0x1800;
+ readonly DEPTH: 0x1801;
+ readonly STENCIL: 0x1802;
+ readonly RED: 0x1903;
+ readonly RGB8: 0x8051;
+ readonly RGBA8: 0x8058;
+ readonly RGB10_A2: 0x8059;
+ readonly TEXTURE_BINDING_3D: 0x806A;
+ readonly UNPACK_SKIP_IMAGES: 0x806D;
+ readonly UNPACK_IMAGE_HEIGHT: 0x806E;
+ readonly TEXTURE_3D: 0x806F;
+ readonly TEXTURE_WRAP_R: 0x8072;
+ readonly MAX_3D_TEXTURE_SIZE: 0x8073;
+ readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;
+ readonly MAX_ELEMENTS_VERTICES: 0x80E8;
+ readonly MAX_ELEMENTS_INDICES: 0x80E9;
+ readonly TEXTURE_MIN_LOD: 0x813A;
+ readonly TEXTURE_MAX_LOD: 0x813B;
+ readonly TEXTURE_BASE_LEVEL: 0x813C;
+ readonly TEXTURE_MAX_LEVEL: 0x813D;
+ readonly MIN: 0x8007;
+ readonly MAX: 0x8008;
+ readonly DEPTH_COMPONENT24: 0x81A6;
+ readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;
+ readonly TEXTURE_COMPARE_MODE: 0x884C;
+ readonly TEXTURE_COMPARE_FUNC: 0x884D;
+ readonly CURRENT_QUERY: 0x8865;
+ readonly QUERY_RESULT: 0x8866;
+ readonly QUERY_RESULT_AVAILABLE: 0x8867;
+ readonly STREAM_READ: 0x88E1;
+ readonly STREAM_COPY: 0x88E2;
+ readonly STATIC_READ: 0x88E5;
+ readonly STATIC_COPY: 0x88E6;
+ readonly DYNAMIC_READ: 0x88E9;
+ readonly DYNAMIC_COPY: 0x88EA;
+ readonly MAX_DRAW_BUFFERS: 0x8824;
+ readonly DRAW_BUFFER0: 0x8825;
+ readonly DRAW_BUFFER1: 0x8826;
+ readonly DRAW_BUFFER2: 0x8827;
+ readonly DRAW_BUFFER3: 0x8828;
+ readonly DRAW_BUFFER4: 0x8829;
+ readonly DRAW_BUFFER5: 0x882A;
+ readonly DRAW_BUFFER6: 0x882B;
+ readonly DRAW_BUFFER7: 0x882C;
+ readonly DRAW_BUFFER8: 0x882D;
+ readonly DRAW_BUFFER9: 0x882E;
+ readonly DRAW_BUFFER10: 0x882F;
+ readonly DRAW_BUFFER11: 0x8830;
+ readonly DRAW_BUFFER12: 0x8831;
+ readonly DRAW_BUFFER13: 0x8832;
+ readonly DRAW_BUFFER14: 0x8833;
+ readonly DRAW_BUFFER15: 0x8834;
+ readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;
+ readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;
+ readonly SAMPLER_3D: 0x8B5F;
+ readonly SAMPLER_2D_SHADOW: 0x8B62;
+ readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;
+ readonly PIXEL_PACK_BUFFER: 0x88EB;
+ readonly PIXEL_UNPACK_BUFFER: 0x88EC;
+ readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;
+ readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;
+ readonly FLOAT_MAT2x3: 0x8B65;
+ readonly FLOAT_MAT2x4: 0x8B66;
+ readonly FLOAT_MAT3x2: 0x8B67;
+ readonly FLOAT_MAT3x4: 0x8B68;
+ readonly FLOAT_MAT4x2: 0x8B69;
+ readonly FLOAT_MAT4x3: 0x8B6A;
+ readonly SRGB: 0x8C40;
+ readonly SRGB8: 0x8C41;
+ readonly SRGB8_ALPHA8: 0x8C43;
+ readonly COMPARE_REF_TO_TEXTURE: 0x884E;
+ readonly RGBA32F: 0x8814;
+ readonly RGB32F: 0x8815;
+ readonly RGBA16F: 0x881A;
+ readonly RGB16F: 0x881B;
+ readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;
+ readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;
+ readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;
+ readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;
+ readonly MAX_VARYING_COMPONENTS: 0x8B4B;
+ readonly TEXTURE_2D_ARRAY: 0x8C1A;
+ readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;
+ readonly R11F_G11F_B10F: 0x8C3A;
+ readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;
+ readonly RGB9_E5: 0x8C3D;
+ readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;
+ readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;
+ readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;
+ readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;
+ readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;
+ readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;
+ readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;
+ readonly RASTERIZER_DISCARD: 0x8C89;
+ readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;
+ readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;
+ readonly INTERLEAVED_ATTRIBS: 0x8C8C;
+ readonly SEPARATE_ATTRIBS: 0x8C8D;
+ readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;
+ readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;
+ readonly RGBA32UI: 0x8D70;
+ readonly RGB32UI: 0x8D71;
+ readonly RGBA16UI: 0x8D76;
+ readonly RGB16UI: 0x8D77;
+ readonly RGBA8UI: 0x8D7C;
+ readonly RGB8UI: 0x8D7D;
+ readonly RGBA32I: 0x8D82;
+ readonly RGB32I: 0x8D83;
+ readonly RGBA16I: 0x8D88;
+ readonly RGB16I: 0x8D89;
+ readonly RGBA8I: 0x8D8E;
+ readonly RGB8I: 0x8D8F;
+ readonly RED_INTEGER: 0x8D94;
+ readonly RGB_INTEGER: 0x8D98;
+ readonly RGBA_INTEGER: 0x8D99;
+ readonly SAMPLER_2D_ARRAY: 0x8DC1;
+ readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;
+ readonly SAMPLER_CUBE_SHADOW: 0x8DC5;
+ readonly UNSIGNED_INT_VEC2: 0x8DC6;
+ readonly UNSIGNED_INT_VEC3: 0x8DC7;
+ readonly UNSIGNED_INT_VEC4: 0x8DC8;
+ readonly INT_SAMPLER_2D: 0x8DCA;
+ readonly INT_SAMPLER_3D: 0x8DCB;
+ readonly INT_SAMPLER_CUBE: 0x8DCC;
+ readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;
+ readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;
+ readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;
+ readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;
+ readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;
+ readonly DEPTH_COMPONENT32F: 0x8CAC;
+ readonly DEPTH32F_STENCIL8: 0x8CAD;
+ readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;
+ readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;
+ readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;
+ readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;
+ readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;
+ readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;
+ readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;
+ readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;
+ readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;
+ readonly FRAMEBUFFER_DEFAULT: 0x8218;
+ readonly UNSIGNED_INT_24_8: 0x84FA;
+ readonly DEPTH24_STENCIL8: 0x88F0;
+ readonly UNSIGNED_NORMALIZED: 0x8C17;
+ readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6;
+ readonly READ_FRAMEBUFFER: 0x8CA8;
+ readonly DRAW_FRAMEBUFFER: 0x8CA9;
+ readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;
+ readonly RENDERBUFFER_SAMPLES: 0x8CAB;
+ readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;
+ readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;
+ readonly COLOR_ATTACHMENT1: 0x8CE1;
+ readonly COLOR_ATTACHMENT2: 0x8CE2;
+ readonly COLOR_ATTACHMENT3: 0x8CE3;
+ readonly COLOR_ATTACHMENT4: 0x8CE4;
+ readonly COLOR_ATTACHMENT5: 0x8CE5;
+ readonly COLOR_ATTACHMENT6: 0x8CE6;
+ readonly COLOR_ATTACHMENT7: 0x8CE7;
+ readonly COLOR_ATTACHMENT8: 0x8CE8;
+ readonly COLOR_ATTACHMENT9: 0x8CE9;
+ readonly COLOR_ATTACHMENT10: 0x8CEA;
+ readonly COLOR_ATTACHMENT11: 0x8CEB;
+ readonly COLOR_ATTACHMENT12: 0x8CEC;
+ readonly COLOR_ATTACHMENT13: 0x8CED;
+ readonly COLOR_ATTACHMENT14: 0x8CEE;
+ readonly COLOR_ATTACHMENT15: 0x8CEF;
+ readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;
+ readonly MAX_SAMPLES: 0x8D57;
+ readonly HALF_FLOAT: 0x140B;
+ readonly RG: 0x8227;
+ readonly RG_INTEGER: 0x8228;
+ readonly R8: 0x8229;
+ readonly RG8: 0x822B;
+ readonly R16F: 0x822D;
+ readonly R32F: 0x822E;
+ readonly RG16F: 0x822F;
+ readonly RG32F: 0x8230;
+ readonly R8I: 0x8231;
+ readonly R8UI: 0x8232;
+ readonly R16I: 0x8233;
+ readonly R16UI: 0x8234;
+ readonly R32I: 0x8235;
+ readonly R32UI: 0x8236;
+ readonly RG8I: 0x8237;
+ readonly RG8UI: 0x8238;
+ readonly RG16I: 0x8239;
+ readonly RG16UI: 0x823A;
+ readonly RG32I: 0x823B;
+ readonly RG32UI: 0x823C;
+ readonly VERTEX_ARRAY_BINDING: 0x85B5;
+ readonly R8_SNORM: 0x8F94;
+ readonly RG8_SNORM: 0x8F95;
+ readonly RGB8_SNORM: 0x8F96;
+ readonly RGBA8_SNORM: 0x8F97;
+ readonly SIGNED_NORMALIZED: 0x8F9C;
+ readonly COPY_READ_BUFFER: 0x8F36;
+ readonly COPY_WRITE_BUFFER: 0x8F37;
+ readonly COPY_READ_BUFFER_BINDING: 0x8F36;
+ readonly COPY_WRITE_BUFFER_BINDING: 0x8F37;
+ readonly UNIFORM_BUFFER: 0x8A11;
+ readonly UNIFORM_BUFFER_BINDING: 0x8A28;
+ readonly UNIFORM_BUFFER_START: 0x8A29;
+ readonly UNIFORM_BUFFER_SIZE: 0x8A2A;
+ readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;
+ readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;
+ readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;
+ readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;
+ readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;
+ readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;
+ readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;
+ readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;
+ readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;
+ readonly UNIFORM_TYPE: 0x8A37;
+ readonly UNIFORM_SIZE: 0x8A38;
+ readonly UNIFORM_BLOCK_INDEX: 0x8A3A;
+ readonly UNIFORM_OFFSET: 0x8A3B;
+ readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;
+ readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;
+ readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;
+ readonly UNIFORM_BLOCK_BINDING: 0x8A3F;
+ readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;
+ readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;
+ readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;
+ readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;
+ readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;
+ readonly INVALID_INDEX: 0xFFFFFFFF;
+ readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;
+ readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;
+ readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;
+ readonly OBJECT_TYPE: 0x9112;
+ readonly SYNC_CONDITION: 0x9113;
+ readonly SYNC_STATUS: 0x9114;
+ readonly SYNC_FLAGS: 0x9115;
+ readonly SYNC_FENCE: 0x9116;
+ readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;
+ readonly UNSIGNALED: 0x9118;
+ readonly SIGNALED: 0x9119;
+ readonly ALREADY_SIGNALED: 0x911A;
+ readonly TIMEOUT_EXPIRED: 0x911B;
+ readonly CONDITION_SATISFIED: 0x911C;
+ readonly WAIT_FAILED: 0x911D;
+ readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;
+ readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;
+ readonly ANY_SAMPLES_PASSED: 0x8C2F;
+ readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;
+ readonly SAMPLER_BINDING: 0x8919;
+ readonly RGB10_A2UI: 0x906F;
+ readonly INT_2_10_10_10_REV: 0x8D9F;
+ readonly TRANSFORM_FEEDBACK: 0x8E22;
+ readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;
+ readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;
+ readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;
+ readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;
+ readonly MAX_ELEMENT_INDEX: 0x8D6B;
+ readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;
+ readonly TIMEOUT_IGNORED: -1;
+ readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;
+ readonly DEPTH_BUFFER_BIT: 0x00000100;
+ readonly STENCIL_BUFFER_BIT: 0x00000400;
+ readonly COLOR_BUFFER_BIT: 0x00004000;
+ readonly POINTS: 0x0000;
+ readonly LINES: 0x0001;
+ readonly LINE_LOOP: 0x0002;
+ readonly LINE_STRIP: 0x0003;
+ readonly TRIANGLES: 0x0004;
+ readonly TRIANGLE_STRIP: 0x0005;
+ readonly TRIANGLE_FAN: 0x0006;
+ readonly ZERO: 0;
+ readonly ONE: 1;
+ readonly SRC_COLOR: 0x0300;
+ readonly ONE_MINUS_SRC_COLOR: 0x0301;
+ readonly SRC_ALPHA: 0x0302;
+ readonly ONE_MINUS_SRC_ALPHA: 0x0303;
+ readonly DST_ALPHA: 0x0304;
+ readonly ONE_MINUS_DST_ALPHA: 0x0305;
+ readonly DST_COLOR: 0x0306;
+ readonly ONE_MINUS_DST_COLOR: 0x0307;
+ readonly SRC_ALPHA_SATURATE: 0x0308;
+ readonly FUNC_ADD: 0x8006;
+ readonly BLEND_EQUATION: 0x8009;
+ readonly BLEND_EQUATION_RGB: 0x8009;
+ readonly BLEND_EQUATION_ALPHA: 0x883D;
+ readonly FUNC_SUBTRACT: 0x800A;
+ readonly FUNC_REVERSE_SUBTRACT: 0x800B;
+ readonly BLEND_DST_RGB: 0x80C8;
+ readonly BLEND_SRC_RGB: 0x80C9;
+ readonly BLEND_DST_ALPHA: 0x80CA;
+ readonly BLEND_SRC_ALPHA: 0x80CB;
+ readonly CONSTANT_COLOR: 0x8001;
+ readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;
+ readonly CONSTANT_ALPHA: 0x8003;
+ readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;
+ readonly BLEND_COLOR: 0x8005;
+ readonly ARRAY_BUFFER: 0x8892;
+ readonly ELEMENT_ARRAY_BUFFER: 0x8893;
+ readonly ARRAY_BUFFER_BINDING: 0x8894;
+ readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;
+ readonly STREAM_DRAW: 0x88E0;
+ readonly STATIC_DRAW: 0x88E4;
+ readonly DYNAMIC_DRAW: 0x88E8;
+ readonly BUFFER_SIZE: 0x8764;
+ readonly BUFFER_USAGE: 0x8765;
+ readonly CURRENT_VERTEX_ATTRIB: 0x8626;
+ readonly FRONT: 0x0404;
+ readonly BACK: 0x0405;
+ readonly FRONT_AND_BACK: 0x0408;
+ readonly CULL_FACE: 0x0B44;
+ readonly BLEND: 0x0BE2;
+ readonly DITHER: 0x0BD0;
+ readonly STENCIL_TEST: 0x0B90;
+ readonly DEPTH_TEST: 0x0B71;
+ readonly SCISSOR_TEST: 0x0C11;
+ readonly POLYGON_OFFSET_FILL: 0x8037;
+ readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;
+ readonly SAMPLE_COVERAGE: 0x80A0;
+ readonly NO_ERROR: 0;
+ readonly INVALID_ENUM: 0x0500;
+ readonly INVALID_VALUE: 0x0501;
+ readonly INVALID_OPERATION: 0x0502;
+ readonly OUT_OF_MEMORY: 0x0505;
+ readonly CW: 0x0900;
+ readonly CCW: 0x0901;
+ readonly LINE_WIDTH: 0x0B21;
+ readonly ALIASED_POINT_SIZE_RANGE: 0x846D;
+ readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;
+ readonly CULL_FACE_MODE: 0x0B45;
+ readonly FRONT_FACE: 0x0B46;
+ readonly DEPTH_RANGE: 0x0B70;
+ readonly DEPTH_WRITEMASK: 0x0B72;
+ readonly DEPTH_CLEAR_VALUE: 0x0B73;
+ readonly DEPTH_FUNC: 0x0B74;
+ readonly STENCIL_CLEAR_VALUE: 0x0B91;
+ readonly STENCIL_FUNC: 0x0B92;
+ readonly STENCIL_FAIL: 0x0B94;
+ readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;
+ readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;
+ readonly STENCIL_REF: 0x0B97;
+ readonly STENCIL_VALUE_MASK: 0x0B93;
+ readonly STENCIL_WRITEMASK: 0x0B98;
+ readonly STENCIL_BACK_FUNC: 0x8800;
+ readonly STENCIL_BACK_FAIL: 0x8801;
+ readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
+ readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
+ readonly STENCIL_BACK_REF: 0x8CA3;
+ readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;
+ readonly STENCIL_BACK_WRITEMASK: 0x8CA5;
+ readonly VIEWPORT: 0x0BA2;
+ readonly SCISSOR_BOX: 0x0C10;
+ readonly COLOR_CLEAR_VALUE: 0x0C22;
+ readonly COLOR_WRITEMASK: 0x0C23;
+ readonly UNPACK_ALIGNMENT: 0x0CF5;
+ readonly PACK_ALIGNMENT: 0x0D05;
+ readonly MAX_TEXTURE_SIZE: 0x0D33;
+ readonly MAX_VIEWPORT_DIMS: 0x0D3A;
+ readonly SUBPIXEL_BITS: 0x0D50;
+ readonly RED_BITS: 0x0D52;
+ readonly GREEN_BITS: 0x0D53;
+ readonly BLUE_BITS: 0x0D54;
+ readonly ALPHA_BITS: 0x0D55;
+ readonly DEPTH_BITS: 0x0D56;
+ readonly STENCIL_BITS: 0x0D57;
+ readonly POLYGON_OFFSET_UNITS: 0x2A00;
+ readonly POLYGON_OFFSET_FACTOR: 0x8038;
+ readonly TEXTURE_BINDING_2D: 0x8069;
+ readonly SAMPLE_BUFFERS: 0x80A8;
+ readonly SAMPLES: 0x80A9;
+ readonly SAMPLE_COVERAGE_VALUE: 0x80AA;
+ readonly SAMPLE_COVERAGE_INVERT: 0x80AB;
+ readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;
+ readonly DONT_CARE: 0x1100;
+ readonly FASTEST: 0x1101;
+ readonly NICEST: 0x1102;
+ readonly GENERATE_MIPMAP_HINT: 0x8192;
+ readonly BYTE: 0x1400;
+ readonly UNSIGNED_BYTE: 0x1401;
+ readonly SHORT: 0x1402;
+ readonly UNSIGNED_SHORT: 0x1403;
+ readonly INT: 0x1404;
+ readonly UNSIGNED_INT: 0x1405;
+ readonly FLOAT: 0x1406;
+ readonly DEPTH_COMPONENT: 0x1902;
+ readonly ALPHA: 0x1906;
+ readonly RGB: 0x1907;
+ readonly RGBA: 0x1908;
+ readonly LUMINANCE: 0x1909;
+ readonly LUMINANCE_ALPHA: 0x190A;
+ readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;
+ readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;
+ readonly UNSIGNED_SHORT_5_6_5: 0x8363;
+ readonly FRAGMENT_SHADER: 0x8B30;
+ readonly VERTEX_SHADER: 0x8B31;
+ readonly MAX_VERTEX_ATTRIBS: 0x8869;
+ readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;
+ readonly MAX_VARYING_VECTORS: 0x8DFC;
+ readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;
+ readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;
+ readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;
+ readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;
+ readonly SHADER_TYPE: 0x8B4F;
+ readonly DELETE_STATUS: 0x8B80;
+ readonly LINK_STATUS: 0x8B82;
+ readonly VALIDATE_STATUS: 0x8B83;
+ readonly ATTACHED_SHADERS: 0x8B85;
+ readonly ACTIVE_UNIFORMS: 0x8B86;
+ readonly ACTIVE_ATTRIBUTES: 0x8B89;
+ readonly SHADING_LANGUAGE_VERSION: 0x8B8C;
+ readonly CURRENT_PROGRAM: 0x8B8D;
+ readonly NEVER: 0x0200;
+ readonly LESS: 0x0201;
+ readonly EQUAL: 0x0202;
+ readonly LEQUAL: 0x0203;
+ readonly GREATER: 0x0204;
+ readonly NOTEQUAL: 0x0205;
+ readonly GEQUAL: 0x0206;
+ readonly ALWAYS: 0x0207;
+ readonly KEEP: 0x1E00;
+ readonly REPLACE: 0x1E01;
+ readonly INCR: 0x1E02;
+ readonly DECR: 0x1E03;
+ readonly INVERT: 0x150A;
+ readonly INCR_WRAP: 0x8507;
+ readonly DECR_WRAP: 0x8508;
+ readonly VENDOR: 0x1F00;
+ readonly RENDERER: 0x1F01;
+ readonly VERSION: 0x1F02;
+ readonly NEAREST: 0x2600;
+ readonly LINEAR: 0x2601;
+ readonly NEAREST_MIPMAP_NEAREST: 0x2700;
+ readonly LINEAR_MIPMAP_NEAREST: 0x2701;
+ readonly NEAREST_MIPMAP_LINEAR: 0x2702;
+ readonly LINEAR_MIPMAP_LINEAR: 0x2703;
+ readonly TEXTURE_MAG_FILTER: 0x2800;
+ readonly TEXTURE_MIN_FILTER: 0x2801;
+ readonly TEXTURE_WRAP_S: 0x2802;
+ readonly TEXTURE_WRAP_T: 0x2803;
+ readonly TEXTURE_2D: 0x0DE1;
+ readonly TEXTURE: 0x1702;
+ readonly TEXTURE_CUBE_MAP: 0x8513;
+ readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;
+ readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
+ readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
+ readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
+ readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
+ readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
+ readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;
+ readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;
+ readonly TEXTURE0: 0x84C0;
+ readonly TEXTURE1: 0x84C1;
+ readonly TEXTURE2: 0x84C2;
+ readonly TEXTURE3: 0x84C3;
+ readonly TEXTURE4: 0x84C4;
+ readonly TEXTURE5: 0x84C5;
+ readonly TEXTURE6: 0x84C6;
+ readonly TEXTURE7: 0x84C7;
+ readonly TEXTURE8: 0x84C8;
+ readonly TEXTURE9: 0x84C9;
+ readonly TEXTURE10: 0x84CA;
+ readonly TEXTURE11: 0x84CB;
+ readonly TEXTURE12: 0x84CC;
+ readonly TEXTURE13: 0x84CD;
+ readonly TEXTURE14: 0x84CE;
+ readonly TEXTURE15: 0x84CF;
+ readonly TEXTURE16: 0x84D0;
+ readonly TEXTURE17: 0x84D1;
+ readonly TEXTURE18: 0x84D2;
+ readonly TEXTURE19: 0x84D3;
+ readonly TEXTURE20: 0x84D4;
+ readonly TEXTURE21: 0x84D5;
+ readonly TEXTURE22: 0x84D6;
+ readonly TEXTURE23: 0x84D7;
+ readonly TEXTURE24: 0x84D8;
+ readonly TEXTURE25: 0x84D9;
+ readonly TEXTURE26: 0x84DA;
+ readonly TEXTURE27: 0x84DB;
+ readonly TEXTURE28: 0x84DC;
+ readonly TEXTURE29: 0x84DD;
+ readonly TEXTURE30: 0x84DE;
+ readonly TEXTURE31: 0x84DF;
+ readonly ACTIVE_TEXTURE: 0x84E0;
+ readonly REPEAT: 0x2901;
+ readonly CLAMP_TO_EDGE: 0x812F;
+ readonly MIRRORED_REPEAT: 0x8370;
+ readonly FLOAT_VEC2: 0x8B50;
+ readonly FLOAT_VEC3: 0x8B51;
+ readonly FLOAT_VEC4: 0x8B52;
+ readonly INT_VEC2: 0x8B53;
+ readonly INT_VEC3: 0x8B54;
+ readonly INT_VEC4: 0x8B55;
+ readonly BOOL: 0x8B56;
+ readonly BOOL_VEC2: 0x8B57;
+ readonly BOOL_VEC3: 0x8B58;
+ readonly BOOL_VEC4: 0x8B59;
+ readonly FLOAT_MAT2: 0x8B5A;
+ readonly FLOAT_MAT3: 0x8B5B;
+ readonly FLOAT_MAT4: 0x8B5C;
+ readonly SAMPLER_2D: 0x8B5E;
+ readonly SAMPLER_CUBE: 0x8B60;
+ readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
+ readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
+ readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
+ readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
+ readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;
+ readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
+ readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;
+ readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;
+ readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;
+ readonly COMPILE_STATUS: 0x8B81;
+ readonly LOW_FLOAT: 0x8DF0;
+ readonly MEDIUM_FLOAT: 0x8DF1;
+ readonly HIGH_FLOAT: 0x8DF2;
+ readonly LOW_INT: 0x8DF3;
+ readonly MEDIUM_INT: 0x8DF4;
+ readonly HIGH_INT: 0x8DF5;
+ readonly FRAMEBUFFER: 0x8D40;
+ readonly RENDERBUFFER: 0x8D41;
+ readonly RGBA4: 0x8056;
+ readonly RGB5_A1: 0x8057;
+ readonly RGB565: 0x8D62;
+ readonly DEPTH_COMPONENT16: 0x81A5;
+ readonly STENCIL_INDEX8: 0x8D48;
+ readonly DEPTH_STENCIL: 0x84F9;
+ readonly RENDERBUFFER_WIDTH: 0x8D42;
+ readonly RENDERBUFFER_HEIGHT: 0x8D43;
+ readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;
+ readonly RENDERBUFFER_RED_SIZE: 0x8D50;
+ readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;
+ readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;
+ readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;
+ readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;
+ readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;
+ readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;
+ readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;
+ readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;
+ readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;
+ readonly COLOR_ATTACHMENT0: 0x8CE0;
+ readonly DEPTH_ATTACHMENT: 0x8D00;
+ readonly STENCIL_ATTACHMENT: 0x8D20;
+ readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;
+ readonly NONE: 0;
+ readonly FRAMEBUFFER_COMPLETE: 0x8CD5;
+ readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;
+ readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;
+ readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;
+ readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;
+ readonly FRAMEBUFFER_BINDING: 0x8CA6;
+ readonly RENDERBUFFER_BINDING: 0x8CA7;
+ readonly MAX_RENDERBUFFER_SIZE: 0x84E8;
+ readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;
+ readonly UNPACK_FLIP_Y_WEBGL: 0x9240;
+ readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
+ readonly CONTEXT_LOST_WEBGL: 0x9242;
+ readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
+ readonly BROWSER_DEFAULT_WEBGL: 0x9244;
+ isInstance(obj): obj is WebGL2RenderingContext;
+};
+
+interface WebGL2RenderingContextBase {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/beginQuery) */
+ beginQuery(target: GLenum, query: WebGLQuery): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/beginTransformFeedback) */
+ beginTransformFeedback(primitiveMode: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindBufferBase) */
+ bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindBufferRange) */
+ bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer | null, offset: GLintptr, size: GLsizeiptr): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindSampler) */
+ bindSampler(unit: GLuint, sampler: WebGLSampler | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindTransformFeedback) */
+ bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/bindVertexArray) */
+ bindVertexArray(array: WebGLVertexArrayObject | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/blitFramebuffer) */
+ blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum): void;
+ bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;
+ bufferData(target: GLenum, srcData: ArrayBuffer | null, usage: GLenum): void;
+ bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum): void;
+ bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: GLuint, length?: GLuint): void;
+ bufferSubData(target: GLenum, offset: GLintptr, srcData: ArrayBuffer): void;
+ bufferSubData(target: GLenum, offset: GLintptr, srcData: ArrayBufferView): void;
+ bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: GLuint, length?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */
+ clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */
+ clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */
+ clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clearBuffer) */
+ clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/clientWaitSync) */
+ clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64): GLenum;
+ compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;
+ compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/compressedTexImage3D) */
+ compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr): void;
+ compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;
+ compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;
+ compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/compressedTexSubImage3D) */
+ compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr): void;
+ compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/copyBufferSubData) */
+ copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/copyTexSubImage3D) */
+ copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createQuery) */
+ createQuery(): WebGLQuery | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createSampler) */
+ createSampler(): WebGLSampler | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createTransformFeedback) */
+ createTransformFeedback(): WebGLTransformFeedback | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/createVertexArray) */
+ createVertexArray(): WebGLVertexArrayObject | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteQuery) */
+ deleteQuery(query: WebGLQuery | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteSampler) */
+ deleteSampler(sampler: WebGLSampler | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteSync) */
+ deleteSync(sync: WebGLSync | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteTransformFeedback) */
+ deleteTransformFeedback(tf: WebGLTransformFeedback | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/deleteVertexArray) */
+ deleteVertexArray(vertexArray: WebGLVertexArrayObject | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawArraysInstanced) */
+ drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawBuffers) */
+ drawBuffers(buffers: GLenum[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawElementsInstanced) */
+ drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/drawRangeElements) */
+ drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/endQuery) */
+ endQuery(target: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/endTransformFeedback) */
+ endTransformFeedback(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/fenceSync) */
+ fenceSync(condition: GLenum, flags: GLbitfield): WebGLSync | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/framebufferTextureLayer) */
+ framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture | null, level: GLint, layer: GLint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniformBlockName) */
+ getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint): string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniformBlockParameter) */
+ getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getActiveUniforms) */
+ getActiveUniforms(program: WebGLProgram, uniformIndices: GLuint[], pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getBufferSubData) */
+ getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstData: ArrayBufferView, dstOffset?: GLuint, length?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getFragDataLocation) */
+ getFragDataLocation(program: WebGLProgram, name: string): GLint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getIndexedParameter) */
+ getIndexedParameter(target: GLenum, index: GLuint): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getInternalformatParameter) */
+ getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getQuery) */
+ getQuery(target: GLenum, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getQueryParameter) */
+ getQueryParameter(query: WebGLQuery, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getSamplerParameter) */
+ getSamplerParameter(sampler: WebGLSampler, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getSyncParameter) */
+ getSyncParameter(sync: WebGLSync, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getTransformFeedbackVarying) */
+ getTransformFeedbackVarying(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getUniformBlockIndex) */
+ getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): GLuint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/getUniformIndices) */
+ getUniformIndices(program: WebGLProgram, uniformNames: string[]): GLuint[] | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateFramebuffer) */
+ invalidateFramebuffer(target: GLenum, attachments: GLenum[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/invalidateSubFramebuffer) */
+ invalidateSubFramebuffer(target: GLenum, attachments: GLenum[], x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isQuery) */
+ isQuery(query: WebGLQuery | null): GLboolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isSampler) */
+ isSampler(sampler: WebGLSampler | null): GLboolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isSync) */
+ isSync(sync: WebGLSync | null): GLboolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isTransformFeedback) */
+ isTransformFeedback(tf: WebGLTransformFeedback | null): GLboolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/isVertexArray) */
+ isVertexArray(vertexArray: WebGLVertexArrayObject | null): GLboolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/pauseTransformFeedback) */
+ pauseTransformFeedback(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/readBuffer) */
+ readBuffer(src: GLenum): void;
+ readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView | null): void;
+ readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr): void;
+ readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/renderbufferStorageMultisample) */
+ renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/resumeTransformFeedback) */
+ resumeTransformFeedback(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/samplerParameter) */
+ samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/samplerParameter) */
+ samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: HTMLCanvasElement): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: HTMLImageElement): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: HTMLVideoElement): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: ImageBitmap): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: ImageData): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: OffscreenCanvas): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: VideoFrame): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: HTMLCanvasElement): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: HTMLImageElement): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: HTMLVideoElement): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: ImageBitmap): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: ImageData): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: OffscreenCanvas): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: VideoFrame): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texImage3D) */
+ texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
+ texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: HTMLCanvasElement): void;
+ texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: HTMLImageElement): void;
+ texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: HTMLVideoElement): void;
+ texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: ImageBitmap): void;
+ texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: ImageData): void;
+ texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: OffscreenCanvas): void;
+ texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: VideoFrame): void;
+ texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView | null): void;
+ texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texStorage2D) */
+ texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texStorage3D) */
+ texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: HTMLCanvasElement): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: HTMLImageElement): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: HTMLVideoElement): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: ImageBitmap): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: ImageData): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: OffscreenCanvas): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: VideoFrame): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: HTMLCanvasElement): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: HTMLImageElement): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: HTMLVideoElement): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: ImageBitmap): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: ImageData): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: OffscreenCanvas): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: VideoFrame): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/texSubImage3D) */
+ texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void;
+ texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: HTMLCanvasElement): void;
+ texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: HTMLImageElement): void;
+ texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: HTMLVideoElement): void;
+ texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: ImageBitmap): void;
+ texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: ImageData): void;
+ texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: OffscreenCanvas): void;
+ texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: VideoFrame): void;
+ texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView | null, srcOffset?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/transformFeedbackVaryings) */
+ transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: GLenum): void;
+ uniform1fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ uniform1iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
+ uniform1ui(location: WebGLUniformLocation | null, v0: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
+ uniform1uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ uniform2fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ uniform2iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
+ uniform2ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
+ uniform2uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ uniform3fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ uniform3iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
+ uniform3ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
+ uniform3uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ uniform4fv(location: WebGLUniformLocation | null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ uniform4iv(location: WebGLUniformLocation | null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
+ uniform4ui(location: WebGLUniformLocation | null, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniform) */
+ uniform4uiv(location: WebGLUniformLocation | null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformBlockBinding) */
+ uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint): void;
+ uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */
+ uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */
+ uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */
+ uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */
+ uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */
+ uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/uniformMatrix) */
+ uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribDivisor) */
+ vertexAttribDivisor(index: GLuint, divisor: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */
+ vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */
+ vertexAttribI4iv(index: GLuint, values: Int32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */
+ vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribI) */
+ vertexAttribI4uiv(index: GLuint, values: Uint32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/vertexAttribIPointer) */
+ vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGL2RenderingContext/waitSync) */
+ waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64): void;
+ readonly READ_BUFFER: 0x0C02;
+ readonly UNPACK_ROW_LENGTH: 0x0CF2;
+ readonly UNPACK_SKIP_ROWS: 0x0CF3;
+ readonly UNPACK_SKIP_PIXELS: 0x0CF4;
+ readonly PACK_ROW_LENGTH: 0x0D02;
+ readonly PACK_SKIP_ROWS: 0x0D03;
+ readonly PACK_SKIP_PIXELS: 0x0D04;
+ readonly COLOR: 0x1800;
+ readonly DEPTH: 0x1801;
+ readonly STENCIL: 0x1802;
+ readonly RED: 0x1903;
+ readonly RGB8: 0x8051;
+ readonly RGBA8: 0x8058;
+ readonly RGB10_A2: 0x8059;
+ readonly TEXTURE_BINDING_3D: 0x806A;
+ readonly UNPACK_SKIP_IMAGES: 0x806D;
+ readonly UNPACK_IMAGE_HEIGHT: 0x806E;
+ readonly TEXTURE_3D: 0x806F;
+ readonly TEXTURE_WRAP_R: 0x8072;
+ readonly MAX_3D_TEXTURE_SIZE: 0x8073;
+ readonly UNSIGNED_INT_2_10_10_10_REV: 0x8368;
+ readonly MAX_ELEMENTS_VERTICES: 0x80E8;
+ readonly MAX_ELEMENTS_INDICES: 0x80E9;
+ readonly TEXTURE_MIN_LOD: 0x813A;
+ readonly TEXTURE_MAX_LOD: 0x813B;
+ readonly TEXTURE_BASE_LEVEL: 0x813C;
+ readonly TEXTURE_MAX_LEVEL: 0x813D;
+ readonly MIN: 0x8007;
+ readonly MAX: 0x8008;
+ readonly DEPTH_COMPONENT24: 0x81A6;
+ readonly MAX_TEXTURE_LOD_BIAS: 0x84FD;
+ readonly TEXTURE_COMPARE_MODE: 0x884C;
+ readonly TEXTURE_COMPARE_FUNC: 0x884D;
+ readonly CURRENT_QUERY: 0x8865;
+ readonly QUERY_RESULT: 0x8866;
+ readonly QUERY_RESULT_AVAILABLE: 0x8867;
+ readonly STREAM_READ: 0x88E1;
+ readonly STREAM_COPY: 0x88E2;
+ readonly STATIC_READ: 0x88E5;
+ readonly STATIC_COPY: 0x88E6;
+ readonly DYNAMIC_READ: 0x88E9;
+ readonly DYNAMIC_COPY: 0x88EA;
+ readonly MAX_DRAW_BUFFERS: 0x8824;
+ readonly DRAW_BUFFER0: 0x8825;
+ readonly DRAW_BUFFER1: 0x8826;
+ readonly DRAW_BUFFER2: 0x8827;
+ readonly DRAW_BUFFER3: 0x8828;
+ readonly DRAW_BUFFER4: 0x8829;
+ readonly DRAW_BUFFER5: 0x882A;
+ readonly DRAW_BUFFER6: 0x882B;
+ readonly DRAW_BUFFER7: 0x882C;
+ readonly DRAW_BUFFER8: 0x882D;
+ readonly DRAW_BUFFER9: 0x882E;
+ readonly DRAW_BUFFER10: 0x882F;
+ readonly DRAW_BUFFER11: 0x8830;
+ readonly DRAW_BUFFER12: 0x8831;
+ readonly DRAW_BUFFER13: 0x8832;
+ readonly DRAW_BUFFER14: 0x8833;
+ readonly DRAW_BUFFER15: 0x8834;
+ readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: 0x8B49;
+ readonly MAX_VERTEX_UNIFORM_COMPONENTS: 0x8B4A;
+ readonly SAMPLER_3D: 0x8B5F;
+ readonly SAMPLER_2D_SHADOW: 0x8B62;
+ readonly FRAGMENT_SHADER_DERIVATIVE_HINT: 0x8B8B;
+ readonly PIXEL_PACK_BUFFER: 0x88EB;
+ readonly PIXEL_UNPACK_BUFFER: 0x88EC;
+ readonly PIXEL_PACK_BUFFER_BINDING: 0x88ED;
+ readonly PIXEL_UNPACK_BUFFER_BINDING: 0x88EF;
+ readonly FLOAT_MAT2x3: 0x8B65;
+ readonly FLOAT_MAT2x4: 0x8B66;
+ readonly FLOAT_MAT3x2: 0x8B67;
+ readonly FLOAT_MAT3x4: 0x8B68;
+ readonly FLOAT_MAT4x2: 0x8B69;
+ readonly FLOAT_MAT4x3: 0x8B6A;
+ readonly SRGB: 0x8C40;
+ readonly SRGB8: 0x8C41;
+ readonly SRGB8_ALPHA8: 0x8C43;
+ readonly COMPARE_REF_TO_TEXTURE: 0x884E;
+ readonly RGBA32F: 0x8814;
+ readonly RGB32F: 0x8815;
+ readonly RGBA16F: 0x881A;
+ readonly RGB16F: 0x881B;
+ readonly VERTEX_ATTRIB_ARRAY_INTEGER: 0x88FD;
+ readonly MAX_ARRAY_TEXTURE_LAYERS: 0x88FF;
+ readonly MIN_PROGRAM_TEXEL_OFFSET: 0x8904;
+ readonly MAX_PROGRAM_TEXEL_OFFSET: 0x8905;
+ readonly MAX_VARYING_COMPONENTS: 0x8B4B;
+ readonly TEXTURE_2D_ARRAY: 0x8C1A;
+ readonly TEXTURE_BINDING_2D_ARRAY: 0x8C1D;
+ readonly R11F_G11F_B10F: 0x8C3A;
+ readonly UNSIGNED_INT_10F_11F_11F_REV: 0x8C3B;
+ readonly RGB9_E5: 0x8C3D;
+ readonly UNSIGNED_INT_5_9_9_9_REV: 0x8C3E;
+ readonly TRANSFORM_FEEDBACK_BUFFER_MODE: 0x8C7F;
+ readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: 0x8C80;
+ readonly TRANSFORM_FEEDBACK_VARYINGS: 0x8C83;
+ readonly TRANSFORM_FEEDBACK_BUFFER_START: 0x8C84;
+ readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: 0x8C85;
+ readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: 0x8C88;
+ readonly RASTERIZER_DISCARD: 0x8C89;
+ readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: 0x8C8A;
+ readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: 0x8C8B;
+ readonly INTERLEAVED_ATTRIBS: 0x8C8C;
+ readonly SEPARATE_ATTRIBS: 0x8C8D;
+ readonly TRANSFORM_FEEDBACK_BUFFER: 0x8C8E;
+ readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: 0x8C8F;
+ readonly RGBA32UI: 0x8D70;
+ readonly RGB32UI: 0x8D71;
+ readonly RGBA16UI: 0x8D76;
+ readonly RGB16UI: 0x8D77;
+ readonly RGBA8UI: 0x8D7C;
+ readonly RGB8UI: 0x8D7D;
+ readonly RGBA32I: 0x8D82;
+ readonly RGB32I: 0x8D83;
+ readonly RGBA16I: 0x8D88;
+ readonly RGB16I: 0x8D89;
+ readonly RGBA8I: 0x8D8E;
+ readonly RGB8I: 0x8D8F;
+ readonly RED_INTEGER: 0x8D94;
+ readonly RGB_INTEGER: 0x8D98;
+ readonly RGBA_INTEGER: 0x8D99;
+ readonly SAMPLER_2D_ARRAY: 0x8DC1;
+ readonly SAMPLER_2D_ARRAY_SHADOW: 0x8DC4;
+ readonly SAMPLER_CUBE_SHADOW: 0x8DC5;
+ readonly UNSIGNED_INT_VEC2: 0x8DC6;
+ readonly UNSIGNED_INT_VEC3: 0x8DC7;
+ readonly UNSIGNED_INT_VEC4: 0x8DC8;
+ readonly INT_SAMPLER_2D: 0x8DCA;
+ readonly INT_SAMPLER_3D: 0x8DCB;
+ readonly INT_SAMPLER_CUBE: 0x8DCC;
+ readonly INT_SAMPLER_2D_ARRAY: 0x8DCF;
+ readonly UNSIGNED_INT_SAMPLER_2D: 0x8DD2;
+ readonly UNSIGNED_INT_SAMPLER_3D: 0x8DD3;
+ readonly UNSIGNED_INT_SAMPLER_CUBE: 0x8DD4;
+ readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: 0x8DD7;
+ readonly DEPTH_COMPONENT32F: 0x8CAC;
+ readonly DEPTH32F_STENCIL8: 0x8CAD;
+ readonly FLOAT_32_UNSIGNED_INT_24_8_REV: 0x8DAD;
+ readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: 0x8210;
+ readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: 0x8211;
+ readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: 0x8212;
+ readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: 0x8213;
+ readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: 0x8214;
+ readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: 0x8215;
+ readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: 0x8216;
+ readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: 0x8217;
+ readonly FRAMEBUFFER_DEFAULT: 0x8218;
+ readonly UNSIGNED_INT_24_8: 0x84FA;
+ readonly DEPTH24_STENCIL8: 0x88F0;
+ readonly UNSIGNED_NORMALIZED: 0x8C17;
+ readonly DRAW_FRAMEBUFFER_BINDING: 0x8CA6;
+ readonly READ_FRAMEBUFFER: 0x8CA8;
+ readonly DRAW_FRAMEBUFFER: 0x8CA9;
+ readonly READ_FRAMEBUFFER_BINDING: 0x8CAA;
+ readonly RENDERBUFFER_SAMPLES: 0x8CAB;
+ readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: 0x8CD4;
+ readonly MAX_COLOR_ATTACHMENTS: 0x8CDF;
+ readonly COLOR_ATTACHMENT1: 0x8CE1;
+ readonly COLOR_ATTACHMENT2: 0x8CE2;
+ readonly COLOR_ATTACHMENT3: 0x8CE3;
+ readonly COLOR_ATTACHMENT4: 0x8CE4;
+ readonly COLOR_ATTACHMENT5: 0x8CE5;
+ readonly COLOR_ATTACHMENT6: 0x8CE6;
+ readonly COLOR_ATTACHMENT7: 0x8CE7;
+ readonly COLOR_ATTACHMENT8: 0x8CE8;
+ readonly COLOR_ATTACHMENT9: 0x8CE9;
+ readonly COLOR_ATTACHMENT10: 0x8CEA;
+ readonly COLOR_ATTACHMENT11: 0x8CEB;
+ readonly COLOR_ATTACHMENT12: 0x8CEC;
+ readonly COLOR_ATTACHMENT13: 0x8CED;
+ readonly COLOR_ATTACHMENT14: 0x8CEE;
+ readonly COLOR_ATTACHMENT15: 0x8CEF;
+ readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: 0x8D56;
+ readonly MAX_SAMPLES: 0x8D57;
+ readonly HALF_FLOAT: 0x140B;
+ readonly RG: 0x8227;
+ readonly RG_INTEGER: 0x8228;
+ readonly R8: 0x8229;
+ readonly RG8: 0x822B;
+ readonly R16F: 0x822D;
+ readonly R32F: 0x822E;
+ readonly RG16F: 0x822F;
+ readonly RG32F: 0x8230;
+ readonly R8I: 0x8231;
+ readonly R8UI: 0x8232;
+ readonly R16I: 0x8233;
+ readonly R16UI: 0x8234;
+ readonly R32I: 0x8235;
+ readonly R32UI: 0x8236;
+ readonly RG8I: 0x8237;
+ readonly RG8UI: 0x8238;
+ readonly RG16I: 0x8239;
+ readonly RG16UI: 0x823A;
+ readonly RG32I: 0x823B;
+ readonly RG32UI: 0x823C;
+ readonly VERTEX_ARRAY_BINDING: 0x85B5;
+ readonly R8_SNORM: 0x8F94;
+ readonly RG8_SNORM: 0x8F95;
+ readonly RGB8_SNORM: 0x8F96;
+ readonly RGBA8_SNORM: 0x8F97;
+ readonly SIGNED_NORMALIZED: 0x8F9C;
+ readonly COPY_READ_BUFFER: 0x8F36;
+ readonly COPY_WRITE_BUFFER: 0x8F37;
+ readonly COPY_READ_BUFFER_BINDING: 0x8F36;
+ readonly COPY_WRITE_BUFFER_BINDING: 0x8F37;
+ readonly UNIFORM_BUFFER: 0x8A11;
+ readonly UNIFORM_BUFFER_BINDING: 0x8A28;
+ readonly UNIFORM_BUFFER_START: 0x8A29;
+ readonly UNIFORM_BUFFER_SIZE: 0x8A2A;
+ readonly MAX_VERTEX_UNIFORM_BLOCKS: 0x8A2B;
+ readonly MAX_FRAGMENT_UNIFORM_BLOCKS: 0x8A2D;
+ readonly MAX_COMBINED_UNIFORM_BLOCKS: 0x8A2E;
+ readonly MAX_UNIFORM_BUFFER_BINDINGS: 0x8A2F;
+ readonly MAX_UNIFORM_BLOCK_SIZE: 0x8A30;
+ readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: 0x8A31;
+ readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: 0x8A33;
+ readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: 0x8A34;
+ readonly ACTIVE_UNIFORM_BLOCKS: 0x8A36;
+ readonly UNIFORM_TYPE: 0x8A37;
+ readonly UNIFORM_SIZE: 0x8A38;
+ readonly UNIFORM_BLOCK_INDEX: 0x8A3A;
+ readonly UNIFORM_OFFSET: 0x8A3B;
+ readonly UNIFORM_ARRAY_STRIDE: 0x8A3C;
+ readonly UNIFORM_MATRIX_STRIDE: 0x8A3D;
+ readonly UNIFORM_IS_ROW_MAJOR: 0x8A3E;
+ readonly UNIFORM_BLOCK_BINDING: 0x8A3F;
+ readonly UNIFORM_BLOCK_DATA_SIZE: 0x8A40;
+ readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: 0x8A42;
+ readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: 0x8A43;
+ readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: 0x8A44;
+ readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: 0x8A46;
+ readonly INVALID_INDEX: 0xFFFFFFFF;
+ readonly MAX_VERTEX_OUTPUT_COMPONENTS: 0x9122;
+ readonly MAX_FRAGMENT_INPUT_COMPONENTS: 0x9125;
+ readonly MAX_SERVER_WAIT_TIMEOUT: 0x9111;
+ readonly OBJECT_TYPE: 0x9112;
+ readonly SYNC_CONDITION: 0x9113;
+ readonly SYNC_STATUS: 0x9114;
+ readonly SYNC_FLAGS: 0x9115;
+ readonly SYNC_FENCE: 0x9116;
+ readonly SYNC_GPU_COMMANDS_COMPLETE: 0x9117;
+ readonly UNSIGNALED: 0x9118;
+ readonly SIGNALED: 0x9119;
+ readonly ALREADY_SIGNALED: 0x911A;
+ readonly TIMEOUT_EXPIRED: 0x911B;
+ readonly CONDITION_SATISFIED: 0x911C;
+ readonly WAIT_FAILED: 0x911D;
+ readonly SYNC_FLUSH_COMMANDS_BIT: 0x00000001;
+ readonly VERTEX_ATTRIB_ARRAY_DIVISOR: 0x88FE;
+ readonly ANY_SAMPLES_PASSED: 0x8C2F;
+ readonly ANY_SAMPLES_PASSED_CONSERVATIVE: 0x8D6A;
+ readonly SAMPLER_BINDING: 0x8919;
+ readonly RGB10_A2UI: 0x906F;
+ readonly INT_2_10_10_10_REV: 0x8D9F;
+ readonly TRANSFORM_FEEDBACK: 0x8E22;
+ readonly TRANSFORM_FEEDBACK_PAUSED: 0x8E23;
+ readonly TRANSFORM_FEEDBACK_ACTIVE: 0x8E24;
+ readonly TRANSFORM_FEEDBACK_BINDING: 0x8E25;
+ readonly TEXTURE_IMMUTABLE_FORMAT: 0x912F;
+ readonly MAX_ELEMENT_INDEX: 0x8D6B;
+ readonly TEXTURE_IMMUTABLE_LEVELS: 0x82DF;
+ readonly TIMEOUT_IGNORED: -1;
+ readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: 0x9247;
+}
+
+/**
+ * Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getActiveAttrib() and WebGLRenderingContext.getActiveUniform() methods.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo)
+ */
+interface WebGLActiveInfo {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/name) */
+ readonly name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/size) */
+ readonly size: GLint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLActiveInfo/type) */
+ readonly type: GLenum;
+}
+
+declare var WebGLActiveInfo: {
+ prototype: WebGLActiveInfo;
+ new(): WebGLActiveInfo;
+ isInstance(obj): obj is WebGLActiveInfo;
+};
+
+/**
+ * Part of the WebGL API and represents an opaque buffer object storing data such as vertices or colors.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLBuffer)
+ */
+interface WebGLBuffer {
+}
+
+declare var WebGLBuffer: {
+ prototype: WebGLBuffer;
+ new(): WebGLBuffer;
+ isInstance(obj): obj is WebGLBuffer;
+};
+
+/**
+ * The WebContextEvent interface is part of the WebGL API and is an interface for an event that is generated in response to a status change to the WebGL rendering context.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLContextEvent)
+ */
+interface WebGLContextEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLContextEvent/statusMessage) */
+ readonly statusMessage: string;
+}
+
+declare var WebGLContextEvent: {
+ prototype: WebGLContextEvent;
+ new(type: string, eventInit?: WebGLContextEventInit): WebGLContextEvent;
+ isInstance(obj): obj is WebGLContextEvent;
+};
+
+/**
+ * Part of the WebGL API and represents a collection of buffers that serve as a rendering destination.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLFramebuffer)
+ */
+interface WebGLFramebuffer {
+}
+
+declare var WebGLFramebuffer: {
+ prototype: WebGLFramebuffer;
+ new(): WebGLFramebuffer;
+ isInstance(obj): obj is WebGLFramebuffer;
+};
+
+/**
+ * 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).
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLProgram)
+ */
+interface WebGLProgram {
+}
+
+declare var WebGLProgram: {
+ prototype: WebGLProgram;
+ new(): WebGLProgram;
+ isInstance(obj): obj is WebGLProgram;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLQuery) */
+interface WebGLQuery {
+}
+
+declare var WebGLQuery: {
+ prototype: WebGLQuery;
+ new(): WebGLQuery;
+ isInstance(obj): obj is WebGLQuery;
+};
+
+/**
+ * Part of the WebGL API and represents a buffer that can contain an image, or can be source or target of an rendering operation.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderbuffer)
+ */
+interface WebGLRenderbuffer {
+}
+
+declare var WebGLRenderbuffer: {
+ prototype: WebGLRenderbuffer;
+ new(): WebGLRenderbuffer;
+ isInstance(obj): obj is WebGLRenderbuffer;
+};
+
+/**
+ * Provides an interface to the OpenGL ES 2.0 graphics rendering context for the drawing surface of an HTML <canvas> element.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext)
+ */
+interface WebGLRenderingContext extends WebGLRenderingContextBase {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bufferData) */
+ bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum): void;
+ bufferData(target: GLenum, data: ArrayBuffer | null, usage: GLenum): void;
+ bufferData(target: GLenum, data: ArrayBufferView, usage: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bufferSubData) */
+ bufferSubData(target: GLenum, offset: GLintptr, data: ArrayBuffer): void;
+ bufferSubData(target: GLenum, offset: GLintptr, data: ArrayBufferView): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexImage2D) */
+ compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: ArrayBufferView): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compressedTexSubImage2D) */
+ compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: ArrayBufferView): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/readPixels) */
+ readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texImage2D) */
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, pixels: ImageBitmap): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, pixels: ImageData): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, image: HTMLImageElement): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, canvas: HTMLCanvasElement): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, video: HTMLVideoElement): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, canvas: OffscreenCanvas): void;
+ texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, videoFrame: VideoFrame): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texSubImage2D) */
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, pixels: ImageBitmap): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, pixels: ImageData): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, image: HTMLImageElement): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, canvas: HTMLCanvasElement): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, video: HTMLVideoElement): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, canvas: OffscreenCanvas): void;
+ texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, videoFrame: VideoFrame): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform1fv(location: WebGLUniformLocation | null, data: Float32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform1iv(location: WebGLUniformLocation | null, data: Int32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform2fv(location: WebGLUniformLocation | null, data: Float32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform2iv(location: WebGLUniformLocation | null, data: Int32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform3fv(location: WebGLUniformLocation | null, data: Float32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform3iv(location: WebGLUniformLocation | null, data: Int32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform4fv(location: WebGLUniformLocation | null, data: Float32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform4iv(location: WebGLUniformLocation | null, data: Int32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */
+ uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */
+ uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniformMatrix) */
+ uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: GLboolean, data: Float32List): void;
+}
+
+declare var WebGLRenderingContext: {
+ prototype: WebGLRenderingContext;
+ new(): WebGLRenderingContext;
+ readonly DEPTH_BUFFER_BIT: 0x00000100;
+ readonly STENCIL_BUFFER_BIT: 0x00000400;
+ readonly COLOR_BUFFER_BIT: 0x00004000;
+ readonly POINTS: 0x0000;
+ readonly LINES: 0x0001;
+ readonly LINE_LOOP: 0x0002;
+ readonly LINE_STRIP: 0x0003;
+ readonly TRIANGLES: 0x0004;
+ readonly TRIANGLE_STRIP: 0x0005;
+ readonly TRIANGLE_FAN: 0x0006;
+ readonly ZERO: 0;
+ readonly ONE: 1;
+ readonly SRC_COLOR: 0x0300;
+ readonly ONE_MINUS_SRC_COLOR: 0x0301;
+ readonly SRC_ALPHA: 0x0302;
+ readonly ONE_MINUS_SRC_ALPHA: 0x0303;
+ readonly DST_ALPHA: 0x0304;
+ readonly ONE_MINUS_DST_ALPHA: 0x0305;
+ readonly DST_COLOR: 0x0306;
+ readonly ONE_MINUS_DST_COLOR: 0x0307;
+ readonly SRC_ALPHA_SATURATE: 0x0308;
+ readonly FUNC_ADD: 0x8006;
+ readonly BLEND_EQUATION: 0x8009;
+ readonly BLEND_EQUATION_RGB: 0x8009;
+ readonly BLEND_EQUATION_ALPHA: 0x883D;
+ readonly FUNC_SUBTRACT: 0x800A;
+ readonly FUNC_REVERSE_SUBTRACT: 0x800B;
+ readonly BLEND_DST_RGB: 0x80C8;
+ readonly BLEND_SRC_RGB: 0x80C9;
+ readonly BLEND_DST_ALPHA: 0x80CA;
+ readonly BLEND_SRC_ALPHA: 0x80CB;
+ readonly CONSTANT_COLOR: 0x8001;
+ readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;
+ readonly CONSTANT_ALPHA: 0x8003;
+ readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;
+ readonly BLEND_COLOR: 0x8005;
+ readonly ARRAY_BUFFER: 0x8892;
+ readonly ELEMENT_ARRAY_BUFFER: 0x8893;
+ readonly ARRAY_BUFFER_BINDING: 0x8894;
+ readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;
+ readonly STREAM_DRAW: 0x88E0;
+ readonly STATIC_DRAW: 0x88E4;
+ readonly DYNAMIC_DRAW: 0x88E8;
+ readonly BUFFER_SIZE: 0x8764;
+ readonly BUFFER_USAGE: 0x8765;
+ readonly CURRENT_VERTEX_ATTRIB: 0x8626;
+ readonly FRONT: 0x0404;
+ readonly BACK: 0x0405;
+ readonly FRONT_AND_BACK: 0x0408;
+ readonly CULL_FACE: 0x0B44;
+ readonly BLEND: 0x0BE2;
+ readonly DITHER: 0x0BD0;
+ readonly STENCIL_TEST: 0x0B90;
+ readonly DEPTH_TEST: 0x0B71;
+ readonly SCISSOR_TEST: 0x0C11;
+ readonly POLYGON_OFFSET_FILL: 0x8037;
+ readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;
+ readonly SAMPLE_COVERAGE: 0x80A0;
+ readonly NO_ERROR: 0;
+ readonly INVALID_ENUM: 0x0500;
+ readonly INVALID_VALUE: 0x0501;
+ readonly INVALID_OPERATION: 0x0502;
+ readonly OUT_OF_MEMORY: 0x0505;
+ readonly CW: 0x0900;
+ readonly CCW: 0x0901;
+ readonly LINE_WIDTH: 0x0B21;
+ readonly ALIASED_POINT_SIZE_RANGE: 0x846D;
+ readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;
+ readonly CULL_FACE_MODE: 0x0B45;
+ readonly FRONT_FACE: 0x0B46;
+ readonly DEPTH_RANGE: 0x0B70;
+ readonly DEPTH_WRITEMASK: 0x0B72;
+ readonly DEPTH_CLEAR_VALUE: 0x0B73;
+ readonly DEPTH_FUNC: 0x0B74;
+ readonly STENCIL_CLEAR_VALUE: 0x0B91;
+ readonly STENCIL_FUNC: 0x0B92;
+ readonly STENCIL_FAIL: 0x0B94;
+ readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;
+ readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;
+ readonly STENCIL_REF: 0x0B97;
+ readonly STENCIL_VALUE_MASK: 0x0B93;
+ readonly STENCIL_WRITEMASK: 0x0B98;
+ readonly STENCIL_BACK_FUNC: 0x8800;
+ readonly STENCIL_BACK_FAIL: 0x8801;
+ readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
+ readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
+ readonly STENCIL_BACK_REF: 0x8CA3;
+ readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;
+ readonly STENCIL_BACK_WRITEMASK: 0x8CA5;
+ readonly VIEWPORT: 0x0BA2;
+ readonly SCISSOR_BOX: 0x0C10;
+ readonly COLOR_CLEAR_VALUE: 0x0C22;
+ readonly COLOR_WRITEMASK: 0x0C23;
+ readonly UNPACK_ALIGNMENT: 0x0CF5;
+ readonly PACK_ALIGNMENT: 0x0D05;
+ readonly MAX_TEXTURE_SIZE: 0x0D33;
+ readonly MAX_VIEWPORT_DIMS: 0x0D3A;
+ readonly SUBPIXEL_BITS: 0x0D50;
+ readonly RED_BITS: 0x0D52;
+ readonly GREEN_BITS: 0x0D53;
+ readonly BLUE_BITS: 0x0D54;
+ readonly ALPHA_BITS: 0x0D55;
+ readonly DEPTH_BITS: 0x0D56;
+ readonly STENCIL_BITS: 0x0D57;
+ readonly POLYGON_OFFSET_UNITS: 0x2A00;
+ readonly POLYGON_OFFSET_FACTOR: 0x8038;
+ readonly TEXTURE_BINDING_2D: 0x8069;
+ readonly SAMPLE_BUFFERS: 0x80A8;
+ readonly SAMPLES: 0x80A9;
+ readonly SAMPLE_COVERAGE_VALUE: 0x80AA;
+ readonly SAMPLE_COVERAGE_INVERT: 0x80AB;
+ readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;
+ readonly DONT_CARE: 0x1100;
+ readonly FASTEST: 0x1101;
+ readonly NICEST: 0x1102;
+ readonly GENERATE_MIPMAP_HINT: 0x8192;
+ readonly BYTE: 0x1400;
+ readonly UNSIGNED_BYTE: 0x1401;
+ readonly SHORT: 0x1402;
+ readonly UNSIGNED_SHORT: 0x1403;
+ readonly INT: 0x1404;
+ readonly UNSIGNED_INT: 0x1405;
+ readonly FLOAT: 0x1406;
+ readonly DEPTH_COMPONENT: 0x1902;
+ readonly ALPHA: 0x1906;
+ readonly RGB: 0x1907;
+ readonly RGBA: 0x1908;
+ readonly LUMINANCE: 0x1909;
+ readonly LUMINANCE_ALPHA: 0x190A;
+ readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;
+ readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;
+ readonly UNSIGNED_SHORT_5_6_5: 0x8363;
+ readonly FRAGMENT_SHADER: 0x8B30;
+ readonly VERTEX_SHADER: 0x8B31;
+ readonly MAX_VERTEX_ATTRIBS: 0x8869;
+ readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;
+ readonly MAX_VARYING_VECTORS: 0x8DFC;
+ readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;
+ readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;
+ readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;
+ readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;
+ readonly SHADER_TYPE: 0x8B4F;
+ readonly DELETE_STATUS: 0x8B80;
+ readonly LINK_STATUS: 0x8B82;
+ readonly VALIDATE_STATUS: 0x8B83;
+ readonly ATTACHED_SHADERS: 0x8B85;
+ readonly ACTIVE_UNIFORMS: 0x8B86;
+ readonly ACTIVE_ATTRIBUTES: 0x8B89;
+ readonly SHADING_LANGUAGE_VERSION: 0x8B8C;
+ readonly CURRENT_PROGRAM: 0x8B8D;
+ readonly NEVER: 0x0200;
+ readonly LESS: 0x0201;
+ readonly EQUAL: 0x0202;
+ readonly LEQUAL: 0x0203;
+ readonly GREATER: 0x0204;
+ readonly NOTEQUAL: 0x0205;
+ readonly GEQUAL: 0x0206;
+ readonly ALWAYS: 0x0207;
+ readonly KEEP: 0x1E00;
+ readonly REPLACE: 0x1E01;
+ readonly INCR: 0x1E02;
+ readonly DECR: 0x1E03;
+ readonly INVERT: 0x150A;
+ readonly INCR_WRAP: 0x8507;
+ readonly DECR_WRAP: 0x8508;
+ readonly VENDOR: 0x1F00;
+ readonly RENDERER: 0x1F01;
+ readonly VERSION: 0x1F02;
+ readonly NEAREST: 0x2600;
+ readonly LINEAR: 0x2601;
+ readonly NEAREST_MIPMAP_NEAREST: 0x2700;
+ readonly LINEAR_MIPMAP_NEAREST: 0x2701;
+ readonly NEAREST_MIPMAP_LINEAR: 0x2702;
+ readonly LINEAR_MIPMAP_LINEAR: 0x2703;
+ readonly TEXTURE_MAG_FILTER: 0x2800;
+ readonly TEXTURE_MIN_FILTER: 0x2801;
+ readonly TEXTURE_WRAP_S: 0x2802;
+ readonly TEXTURE_WRAP_T: 0x2803;
+ readonly TEXTURE_2D: 0x0DE1;
+ readonly TEXTURE: 0x1702;
+ readonly TEXTURE_CUBE_MAP: 0x8513;
+ readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;
+ readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
+ readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
+ readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
+ readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
+ readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
+ readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;
+ readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;
+ readonly TEXTURE0: 0x84C0;
+ readonly TEXTURE1: 0x84C1;
+ readonly TEXTURE2: 0x84C2;
+ readonly TEXTURE3: 0x84C3;
+ readonly TEXTURE4: 0x84C4;
+ readonly TEXTURE5: 0x84C5;
+ readonly TEXTURE6: 0x84C6;
+ readonly TEXTURE7: 0x84C7;
+ readonly TEXTURE8: 0x84C8;
+ readonly TEXTURE9: 0x84C9;
+ readonly TEXTURE10: 0x84CA;
+ readonly TEXTURE11: 0x84CB;
+ readonly TEXTURE12: 0x84CC;
+ readonly TEXTURE13: 0x84CD;
+ readonly TEXTURE14: 0x84CE;
+ readonly TEXTURE15: 0x84CF;
+ readonly TEXTURE16: 0x84D0;
+ readonly TEXTURE17: 0x84D1;
+ readonly TEXTURE18: 0x84D2;
+ readonly TEXTURE19: 0x84D3;
+ readonly TEXTURE20: 0x84D4;
+ readonly TEXTURE21: 0x84D5;
+ readonly TEXTURE22: 0x84D6;
+ readonly TEXTURE23: 0x84D7;
+ readonly TEXTURE24: 0x84D8;
+ readonly TEXTURE25: 0x84D9;
+ readonly TEXTURE26: 0x84DA;
+ readonly TEXTURE27: 0x84DB;
+ readonly TEXTURE28: 0x84DC;
+ readonly TEXTURE29: 0x84DD;
+ readonly TEXTURE30: 0x84DE;
+ readonly TEXTURE31: 0x84DF;
+ readonly ACTIVE_TEXTURE: 0x84E0;
+ readonly REPEAT: 0x2901;
+ readonly CLAMP_TO_EDGE: 0x812F;
+ readonly MIRRORED_REPEAT: 0x8370;
+ readonly FLOAT_VEC2: 0x8B50;
+ readonly FLOAT_VEC3: 0x8B51;
+ readonly FLOAT_VEC4: 0x8B52;
+ readonly INT_VEC2: 0x8B53;
+ readonly INT_VEC3: 0x8B54;
+ readonly INT_VEC4: 0x8B55;
+ readonly BOOL: 0x8B56;
+ readonly BOOL_VEC2: 0x8B57;
+ readonly BOOL_VEC3: 0x8B58;
+ readonly BOOL_VEC4: 0x8B59;
+ readonly FLOAT_MAT2: 0x8B5A;
+ readonly FLOAT_MAT3: 0x8B5B;
+ readonly FLOAT_MAT4: 0x8B5C;
+ readonly SAMPLER_2D: 0x8B5E;
+ readonly SAMPLER_CUBE: 0x8B60;
+ readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
+ readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
+ readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
+ readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
+ readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;
+ readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
+ readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;
+ readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;
+ readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;
+ readonly COMPILE_STATUS: 0x8B81;
+ readonly LOW_FLOAT: 0x8DF0;
+ readonly MEDIUM_FLOAT: 0x8DF1;
+ readonly HIGH_FLOAT: 0x8DF2;
+ readonly LOW_INT: 0x8DF3;
+ readonly MEDIUM_INT: 0x8DF4;
+ readonly HIGH_INT: 0x8DF5;
+ readonly FRAMEBUFFER: 0x8D40;
+ readonly RENDERBUFFER: 0x8D41;
+ readonly RGBA4: 0x8056;
+ readonly RGB5_A1: 0x8057;
+ readonly RGB565: 0x8D62;
+ readonly DEPTH_COMPONENT16: 0x81A5;
+ readonly STENCIL_INDEX8: 0x8D48;
+ readonly DEPTH_STENCIL: 0x84F9;
+ readonly RENDERBUFFER_WIDTH: 0x8D42;
+ readonly RENDERBUFFER_HEIGHT: 0x8D43;
+ readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;
+ readonly RENDERBUFFER_RED_SIZE: 0x8D50;
+ readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;
+ readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;
+ readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;
+ readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;
+ readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;
+ readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;
+ readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;
+ readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;
+ readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;
+ readonly COLOR_ATTACHMENT0: 0x8CE0;
+ readonly DEPTH_ATTACHMENT: 0x8D00;
+ readonly STENCIL_ATTACHMENT: 0x8D20;
+ readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;
+ readonly NONE: 0;
+ readonly FRAMEBUFFER_COMPLETE: 0x8CD5;
+ readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;
+ readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;
+ readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;
+ readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;
+ readonly FRAMEBUFFER_BINDING: 0x8CA6;
+ readonly RENDERBUFFER_BINDING: 0x8CA7;
+ readonly MAX_RENDERBUFFER_SIZE: 0x84E8;
+ readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;
+ readonly UNPACK_FLIP_Y_WEBGL: 0x9240;
+ readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
+ readonly CONTEXT_LOST_WEBGL: 0x9242;
+ readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
+ readonly BROWSER_DEFAULT_WEBGL: 0x9244;
+ isInstance(obj): obj is WebGLRenderingContext;
+};
+
+interface WebGLRenderingContextBase {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/canvas) */
+ readonly canvas: CanvasSource | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawingBufferHeight) */
+ readonly drawingBufferHeight: GLsizei;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawingBufferWidth) */
+ readonly drawingBufferWidth: GLsizei;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/activeTexture) */
+ activeTexture(texture: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/attachShader) */
+ attachShader(program: WebGLProgram, shader: WebGLShader): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindAttribLocation) */
+ bindAttribLocation(program: WebGLProgram, index: GLuint, name: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindBuffer) */
+ bindBuffer(target: GLenum, buffer: WebGLBuffer | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindFramebuffer) */
+ bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindRenderbuffer) */
+ bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/bindTexture) */
+ bindTexture(target: GLenum, texture: WebGLTexture | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendColor) */
+ blendColor(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendEquation) */
+ blendEquation(mode: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendEquationSeparate) */
+ blendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendFunc) */
+ blendFunc(sfactor: GLenum, dfactor: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/blendFuncSeparate) */
+ blendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/checkFramebufferStatus) */
+ checkFramebufferStatus(target: GLenum): GLenum;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clear) */
+ clear(mask: GLbitfield): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearColor) */
+ clearColor(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearDepth) */
+ clearDepth(depth: GLclampf): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/clearStencil) */
+ clearStencil(s: GLint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/colorMask) */
+ colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/compileShader) */
+ compileShader(shader: WebGLShader): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/copyTexImage2D) */
+ copyTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/copyTexSubImage2D) */
+ copyTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createBuffer) */
+ createBuffer(): WebGLBuffer | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createFramebuffer) */
+ createFramebuffer(): WebGLFramebuffer | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createProgram) */
+ createProgram(): WebGLProgram | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createRenderbuffer) */
+ createRenderbuffer(): WebGLRenderbuffer | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createShader) */
+ createShader(type: GLenum): WebGLShader | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/createTexture) */
+ createTexture(): WebGLTexture | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/cullFace) */
+ cullFace(mode: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteBuffer) */
+ deleteBuffer(buffer: WebGLBuffer | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteFramebuffer) */
+ deleteFramebuffer(framebuffer: WebGLFramebuffer | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteProgram) */
+ deleteProgram(program: WebGLProgram | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteRenderbuffer) */
+ deleteRenderbuffer(renderbuffer: WebGLRenderbuffer | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteShader) */
+ deleteShader(shader: WebGLShader | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/deleteTexture) */
+ deleteTexture(texture: WebGLTexture | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthFunc) */
+ depthFunc(func: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthMask) */
+ depthMask(flag: GLboolean): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/depthRange) */
+ depthRange(zNear: GLclampf, zFar: GLclampf): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/detachShader) */
+ detachShader(program: WebGLProgram, shader: WebGLShader): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/disable) */
+ disable(cap: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/disableVertexAttribArray) */
+ disableVertexAttribArray(index: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawArrays) */
+ drawArrays(mode: GLenum, first: GLint, count: GLsizei): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/drawElements) */
+ drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/enable) */
+ enable(cap: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/enableVertexAttribArray) */
+ enableVertexAttribArray(index: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/finish) */
+ finish(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/flush) */
+ flush(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/framebufferRenderbuffer) */
+ framebufferRenderbuffer(target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: WebGLRenderbuffer | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/framebufferTexture2D) */
+ framebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLenum, texture: WebGLTexture | null, level: GLint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/frontFace) */
+ frontFace(mode: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/generateMipmap) */
+ generateMipmap(target: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getActiveAttrib) */
+ getActiveAttrib(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getActiveUniform) */
+ getActiveUniform(program: WebGLProgram, index: GLuint): WebGLActiveInfo | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getAttachedShaders) */
+ getAttachedShaders(program: WebGLProgram): WebGLShader[] | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getAttribLocation) */
+ getAttribLocation(program: WebGLProgram, name: string): GLint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getBufferParameter) */
+ getBufferParameter(target: GLenum, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getContextAttributes) */
+ getContextAttributes(): WebGLContextAttributes | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getError) */
+ getError(): GLenum;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getExtension) */
+ getExtension(name: string): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getFramebufferAttachmentParameter) */
+ getFramebufferAttachmentParameter(target: GLenum, attachment: GLenum, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getParameter) */
+ getParameter(pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getProgramInfoLog) */
+ getProgramInfoLog(program: WebGLProgram): string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getProgramParameter) */
+ getProgramParameter(program: WebGLProgram, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getRenderbufferParameter) */
+ getRenderbufferParameter(target: GLenum, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderInfoLog) */
+ getShaderInfoLog(shader: WebGLShader): string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderParameter) */
+ getShaderParameter(shader: WebGLShader, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderPrecisionFormat) */
+ getShaderPrecisionFormat(shadertype: GLenum, precisiontype: GLenum): WebGLShaderPrecisionFormat | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getShaderSource) */
+ getShaderSource(shader: WebGLShader): string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getSupportedExtensions) */
+ getSupportedExtensions(): string[] | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getTexParameter) */
+ getTexParameter(target: GLenum, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getUniform) */
+ getUniform(program: WebGLProgram, location: WebGLUniformLocation): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getUniformLocation) */
+ getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getVertexAttrib) */
+ getVertexAttrib(index: GLuint, pname: GLenum): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/getVertexAttribOffset) */
+ getVertexAttribOffset(index: GLuint, pname: GLenum): GLintptr;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/hint) */
+ hint(target: GLenum, mode: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isBuffer) */
+ isBuffer(buffer: WebGLBuffer | null): GLboolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isContextLost) */
+ isContextLost(): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isEnabled) */
+ isEnabled(cap: GLenum): GLboolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isFramebuffer) */
+ isFramebuffer(framebuffer: WebGLFramebuffer | null): GLboolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isProgram) */
+ isProgram(program: WebGLProgram | null): GLboolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isRenderbuffer) */
+ isRenderbuffer(renderbuffer: WebGLRenderbuffer | null): GLboolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isShader) */
+ isShader(shader: WebGLShader | null): GLboolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/isTexture) */
+ isTexture(texture: WebGLTexture | null): GLboolean;
+ lineWidth(width: GLfloat): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/linkProgram) */
+ linkProgram(program: WebGLProgram): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/makeXRCompatible) */
+ makeXRCompatible(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/pixelStorei) */
+ pixelStorei(pname: GLenum, param: GLint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/polygonOffset) */
+ polygonOffset(factor: GLfloat, units: GLfloat): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/renderbufferStorage) */
+ renderbufferStorage(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/sampleCoverage) */
+ sampleCoverage(value: GLclampf, invert: GLboolean): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/scissor) */
+ scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/shaderSource) */
+ shaderSource(shader: WebGLShader, source: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilFunc) */
+ stencilFunc(func: GLenum, ref: GLint, mask: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilFuncSeparate) */
+ stencilFuncSeparate(face: GLenum, func: GLenum, ref: GLint, mask: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilMask) */
+ stencilMask(mask: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilMaskSeparate) */
+ stencilMaskSeparate(face: GLenum, mask: GLuint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilOp) */
+ stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/stencilOpSeparate) */
+ stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texParameter) */
+ texParameterf(target: GLenum, pname: GLenum, param: GLfloat): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/texParameter) */
+ texParameteri(target: GLenum, pname: GLenum, param: GLint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform1f(location: WebGLUniformLocation | null, x: GLfloat): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform1i(location: WebGLUniformLocation | null, x: GLint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform2f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform2i(location: WebGLUniformLocation | null, x: GLint, y: GLint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform3f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform3i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform4f(location: WebGLUniformLocation | null, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/uniform) */
+ uniform4i(location: WebGLUniformLocation | null, x: GLint, y: GLint, z: GLint, w: GLint): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/useProgram) */
+ useProgram(program: WebGLProgram | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/validateProgram) */
+ validateProgram(program: WebGLProgram): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
+ vertexAttrib1f(indx: GLuint, x: GLfloat): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
+ vertexAttrib1fv(indx: GLuint, values: Float32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
+ vertexAttrib2f(indx: GLuint, x: GLfloat, y: GLfloat): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
+ vertexAttrib2fv(indx: GLuint, values: Float32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
+ vertexAttrib3f(indx: GLuint, x: GLfloat, y: GLfloat, z: GLfloat): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
+ vertexAttrib3fv(indx: GLuint, values: Float32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
+ vertexAttrib4f(indx: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttrib) */
+ vertexAttrib4fv(indx: GLuint, values: Float32List): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/vertexAttribPointer) */
+ vertexAttribPointer(indx: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLRenderingContext/viewport) */
+ viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
+ readonly DEPTH_BUFFER_BIT: 0x00000100;
+ readonly STENCIL_BUFFER_BIT: 0x00000400;
+ readonly COLOR_BUFFER_BIT: 0x00004000;
+ readonly POINTS: 0x0000;
+ readonly LINES: 0x0001;
+ readonly LINE_LOOP: 0x0002;
+ readonly LINE_STRIP: 0x0003;
+ readonly TRIANGLES: 0x0004;
+ readonly TRIANGLE_STRIP: 0x0005;
+ readonly TRIANGLE_FAN: 0x0006;
+ readonly ZERO: 0;
+ readonly ONE: 1;
+ readonly SRC_COLOR: 0x0300;
+ readonly ONE_MINUS_SRC_COLOR: 0x0301;
+ readonly SRC_ALPHA: 0x0302;
+ readonly ONE_MINUS_SRC_ALPHA: 0x0303;
+ readonly DST_ALPHA: 0x0304;
+ readonly ONE_MINUS_DST_ALPHA: 0x0305;
+ readonly DST_COLOR: 0x0306;
+ readonly ONE_MINUS_DST_COLOR: 0x0307;
+ readonly SRC_ALPHA_SATURATE: 0x0308;
+ readonly FUNC_ADD: 0x8006;
+ readonly BLEND_EQUATION: 0x8009;
+ readonly BLEND_EQUATION_RGB: 0x8009;
+ readonly BLEND_EQUATION_ALPHA: 0x883D;
+ readonly FUNC_SUBTRACT: 0x800A;
+ readonly FUNC_REVERSE_SUBTRACT: 0x800B;
+ readonly BLEND_DST_RGB: 0x80C8;
+ readonly BLEND_SRC_RGB: 0x80C9;
+ readonly BLEND_DST_ALPHA: 0x80CA;
+ readonly BLEND_SRC_ALPHA: 0x80CB;
+ readonly CONSTANT_COLOR: 0x8001;
+ readonly ONE_MINUS_CONSTANT_COLOR: 0x8002;
+ readonly CONSTANT_ALPHA: 0x8003;
+ readonly ONE_MINUS_CONSTANT_ALPHA: 0x8004;
+ readonly BLEND_COLOR: 0x8005;
+ readonly ARRAY_BUFFER: 0x8892;
+ readonly ELEMENT_ARRAY_BUFFER: 0x8893;
+ readonly ARRAY_BUFFER_BINDING: 0x8894;
+ readonly ELEMENT_ARRAY_BUFFER_BINDING: 0x8895;
+ readonly STREAM_DRAW: 0x88E0;
+ readonly STATIC_DRAW: 0x88E4;
+ readonly DYNAMIC_DRAW: 0x88E8;
+ readonly BUFFER_SIZE: 0x8764;
+ readonly BUFFER_USAGE: 0x8765;
+ readonly CURRENT_VERTEX_ATTRIB: 0x8626;
+ readonly FRONT: 0x0404;
+ readonly BACK: 0x0405;
+ readonly FRONT_AND_BACK: 0x0408;
+ readonly CULL_FACE: 0x0B44;
+ readonly BLEND: 0x0BE2;
+ readonly DITHER: 0x0BD0;
+ readonly STENCIL_TEST: 0x0B90;
+ readonly DEPTH_TEST: 0x0B71;
+ readonly SCISSOR_TEST: 0x0C11;
+ readonly POLYGON_OFFSET_FILL: 0x8037;
+ readonly SAMPLE_ALPHA_TO_COVERAGE: 0x809E;
+ readonly SAMPLE_COVERAGE: 0x80A0;
+ readonly NO_ERROR: 0;
+ readonly INVALID_ENUM: 0x0500;
+ readonly INVALID_VALUE: 0x0501;
+ readonly INVALID_OPERATION: 0x0502;
+ readonly OUT_OF_MEMORY: 0x0505;
+ readonly CW: 0x0900;
+ readonly CCW: 0x0901;
+ readonly LINE_WIDTH: 0x0B21;
+ readonly ALIASED_POINT_SIZE_RANGE: 0x846D;
+ readonly ALIASED_LINE_WIDTH_RANGE: 0x846E;
+ readonly CULL_FACE_MODE: 0x0B45;
+ readonly FRONT_FACE: 0x0B46;
+ readonly DEPTH_RANGE: 0x0B70;
+ readonly DEPTH_WRITEMASK: 0x0B72;
+ readonly DEPTH_CLEAR_VALUE: 0x0B73;
+ readonly DEPTH_FUNC: 0x0B74;
+ readonly STENCIL_CLEAR_VALUE: 0x0B91;
+ readonly STENCIL_FUNC: 0x0B92;
+ readonly STENCIL_FAIL: 0x0B94;
+ readonly STENCIL_PASS_DEPTH_FAIL: 0x0B95;
+ readonly STENCIL_PASS_DEPTH_PASS: 0x0B96;
+ readonly STENCIL_REF: 0x0B97;
+ readonly STENCIL_VALUE_MASK: 0x0B93;
+ readonly STENCIL_WRITEMASK: 0x0B98;
+ readonly STENCIL_BACK_FUNC: 0x8800;
+ readonly STENCIL_BACK_FAIL: 0x8801;
+ readonly STENCIL_BACK_PASS_DEPTH_FAIL: 0x8802;
+ readonly STENCIL_BACK_PASS_DEPTH_PASS: 0x8803;
+ readonly STENCIL_BACK_REF: 0x8CA3;
+ readonly STENCIL_BACK_VALUE_MASK: 0x8CA4;
+ readonly STENCIL_BACK_WRITEMASK: 0x8CA5;
+ readonly VIEWPORT: 0x0BA2;
+ readonly SCISSOR_BOX: 0x0C10;
+ readonly COLOR_CLEAR_VALUE: 0x0C22;
+ readonly COLOR_WRITEMASK: 0x0C23;
+ readonly UNPACK_ALIGNMENT: 0x0CF5;
+ readonly PACK_ALIGNMENT: 0x0D05;
+ readonly MAX_TEXTURE_SIZE: 0x0D33;
+ readonly MAX_VIEWPORT_DIMS: 0x0D3A;
+ readonly SUBPIXEL_BITS: 0x0D50;
+ readonly RED_BITS: 0x0D52;
+ readonly GREEN_BITS: 0x0D53;
+ readonly BLUE_BITS: 0x0D54;
+ readonly ALPHA_BITS: 0x0D55;
+ readonly DEPTH_BITS: 0x0D56;
+ readonly STENCIL_BITS: 0x0D57;
+ readonly POLYGON_OFFSET_UNITS: 0x2A00;
+ readonly POLYGON_OFFSET_FACTOR: 0x8038;
+ readonly TEXTURE_BINDING_2D: 0x8069;
+ readonly SAMPLE_BUFFERS: 0x80A8;
+ readonly SAMPLES: 0x80A9;
+ readonly SAMPLE_COVERAGE_VALUE: 0x80AA;
+ readonly SAMPLE_COVERAGE_INVERT: 0x80AB;
+ readonly COMPRESSED_TEXTURE_FORMATS: 0x86A3;
+ readonly DONT_CARE: 0x1100;
+ readonly FASTEST: 0x1101;
+ readonly NICEST: 0x1102;
+ readonly GENERATE_MIPMAP_HINT: 0x8192;
+ readonly BYTE: 0x1400;
+ readonly UNSIGNED_BYTE: 0x1401;
+ readonly SHORT: 0x1402;
+ readonly UNSIGNED_SHORT: 0x1403;
+ readonly INT: 0x1404;
+ readonly UNSIGNED_INT: 0x1405;
+ readonly FLOAT: 0x1406;
+ readonly DEPTH_COMPONENT: 0x1902;
+ readonly ALPHA: 0x1906;
+ readonly RGB: 0x1907;
+ readonly RGBA: 0x1908;
+ readonly LUMINANCE: 0x1909;
+ readonly LUMINANCE_ALPHA: 0x190A;
+ readonly UNSIGNED_SHORT_4_4_4_4: 0x8033;
+ readonly UNSIGNED_SHORT_5_5_5_1: 0x8034;
+ readonly UNSIGNED_SHORT_5_6_5: 0x8363;
+ readonly FRAGMENT_SHADER: 0x8B30;
+ readonly VERTEX_SHADER: 0x8B31;
+ readonly MAX_VERTEX_ATTRIBS: 0x8869;
+ readonly MAX_VERTEX_UNIFORM_VECTORS: 0x8DFB;
+ readonly MAX_VARYING_VECTORS: 0x8DFC;
+ readonly MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0x8B4D;
+ readonly MAX_VERTEX_TEXTURE_IMAGE_UNITS: 0x8B4C;
+ readonly MAX_TEXTURE_IMAGE_UNITS: 0x8872;
+ readonly MAX_FRAGMENT_UNIFORM_VECTORS: 0x8DFD;
+ readonly SHADER_TYPE: 0x8B4F;
+ readonly DELETE_STATUS: 0x8B80;
+ readonly LINK_STATUS: 0x8B82;
+ readonly VALIDATE_STATUS: 0x8B83;
+ readonly ATTACHED_SHADERS: 0x8B85;
+ readonly ACTIVE_UNIFORMS: 0x8B86;
+ readonly ACTIVE_ATTRIBUTES: 0x8B89;
+ readonly SHADING_LANGUAGE_VERSION: 0x8B8C;
+ readonly CURRENT_PROGRAM: 0x8B8D;
+ readonly NEVER: 0x0200;
+ readonly LESS: 0x0201;
+ readonly EQUAL: 0x0202;
+ readonly LEQUAL: 0x0203;
+ readonly GREATER: 0x0204;
+ readonly NOTEQUAL: 0x0205;
+ readonly GEQUAL: 0x0206;
+ readonly ALWAYS: 0x0207;
+ readonly KEEP: 0x1E00;
+ readonly REPLACE: 0x1E01;
+ readonly INCR: 0x1E02;
+ readonly DECR: 0x1E03;
+ readonly INVERT: 0x150A;
+ readonly INCR_WRAP: 0x8507;
+ readonly DECR_WRAP: 0x8508;
+ readonly VENDOR: 0x1F00;
+ readonly RENDERER: 0x1F01;
+ readonly VERSION: 0x1F02;
+ readonly NEAREST: 0x2600;
+ readonly LINEAR: 0x2601;
+ readonly NEAREST_MIPMAP_NEAREST: 0x2700;
+ readonly LINEAR_MIPMAP_NEAREST: 0x2701;
+ readonly NEAREST_MIPMAP_LINEAR: 0x2702;
+ readonly LINEAR_MIPMAP_LINEAR: 0x2703;
+ readonly TEXTURE_MAG_FILTER: 0x2800;
+ readonly TEXTURE_MIN_FILTER: 0x2801;
+ readonly TEXTURE_WRAP_S: 0x2802;
+ readonly TEXTURE_WRAP_T: 0x2803;
+ readonly TEXTURE_2D: 0x0DE1;
+ readonly TEXTURE: 0x1702;
+ readonly TEXTURE_CUBE_MAP: 0x8513;
+ readonly TEXTURE_BINDING_CUBE_MAP: 0x8514;
+ readonly TEXTURE_CUBE_MAP_POSITIVE_X: 0x8515;
+ readonly TEXTURE_CUBE_MAP_NEGATIVE_X: 0x8516;
+ readonly TEXTURE_CUBE_MAP_POSITIVE_Y: 0x8517;
+ readonly TEXTURE_CUBE_MAP_NEGATIVE_Y: 0x8518;
+ readonly TEXTURE_CUBE_MAP_POSITIVE_Z: 0x8519;
+ readonly TEXTURE_CUBE_MAP_NEGATIVE_Z: 0x851A;
+ readonly MAX_CUBE_MAP_TEXTURE_SIZE: 0x851C;
+ readonly TEXTURE0: 0x84C0;
+ readonly TEXTURE1: 0x84C1;
+ readonly TEXTURE2: 0x84C2;
+ readonly TEXTURE3: 0x84C3;
+ readonly TEXTURE4: 0x84C4;
+ readonly TEXTURE5: 0x84C5;
+ readonly TEXTURE6: 0x84C6;
+ readonly TEXTURE7: 0x84C7;
+ readonly TEXTURE8: 0x84C8;
+ readonly TEXTURE9: 0x84C9;
+ readonly TEXTURE10: 0x84CA;
+ readonly TEXTURE11: 0x84CB;
+ readonly TEXTURE12: 0x84CC;
+ readonly TEXTURE13: 0x84CD;
+ readonly TEXTURE14: 0x84CE;
+ readonly TEXTURE15: 0x84CF;
+ readonly TEXTURE16: 0x84D0;
+ readonly TEXTURE17: 0x84D1;
+ readonly TEXTURE18: 0x84D2;
+ readonly TEXTURE19: 0x84D3;
+ readonly TEXTURE20: 0x84D4;
+ readonly TEXTURE21: 0x84D5;
+ readonly TEXTURE22: 0x84D6;
+ readonly TEXTURE23: 0x84D7;
+ readonly TEXTURE24: 0x84D8;
+ readonly TEXTURE25: 0x84D9;
+ readonly TEXTURE26: 0x84DA;
+ readonly TEXTURE27: 0x84DB;
+ readonly TEXTURE28: 0x84DC;
+ readonly TEXTURE29: 0x84DD;
+ readonly TEXTURE30: 0x84DE;
+ readonly TEXTURE31: 0x84DF;
+ readonly ACTIVE_TEXTURE: 0x84E0;
+ readonly REPEAT: 0x2901;
+ readonly CLAMP_TO_EDGE: 0x812F;
+ readonly MIRRORED_REPEAT: 0x8370;
+ readonly FLOAT_VEC2: 0x8B50;
+ readonly FLOAT_VEC3: 0x8B51;
+ readonly FLOAT_VEC4: 0x8B52;
+ readonly INT_VEC2: 0x8B53;
+ readonly INT_VEC3: 0x8B54;
+ readonly INT_VEC4: 0x8B55;
+ readonly BOOL: 0x8B56;
+ readonly BOOL_VEC2: 0x8B57;
+ readonly BOOL_VEC3: 0x8B58;
+ readonly BOOL_VEC4: 0x8B59;
+ readonly FLOAT_MAT2: 0x8B5A;
+ readonly FLOAT_MAT3: 0x8B5B;
+ readonly FLOAT_MAT4: 0x8B5C;
+ readonly SAMPLER_2D: 0x8B5E;
+ readonly SAMPLER_CUBE: 0x8B60;
+ readonly VERTEX_ATTRIB_ARRAY_ENABLED: 0x8622;
+ readonly VERTEX_ATTRIB_ARRAY_SIZE: 0x8623;
+ readonly VERTEX_ATTRIB_ARRAY_STRIDE: 0x8624;
+ readonly VERTEX_ATTRIB_ARRAY_TYPE: 0x8625;
+ readonly VERTEX_ATTRIB_ARRAY_NORMALIZED: 0x886A;
+ readonly VERTEX_ATTRIB_ARRAY_POINTER: 0x8645;
+ readonly VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: 0x889F;
+ readonly IMPLEMENTATION_COLOR_READ_TYPE: 0x8B9A;
+ readonly IMPLEMENTATION_COLOR_READ_FORMAT: 0x8B9B;
+ readonly COMPILE_STATUS: 0x8B81;
+ readonly LOW_FLOAT: 0x8DF0;
+ readonly MEDIUM_FLOAT: 0x8DF1;
+ readonly HIGH_FLOAT: 0x8DF2;
+ readonly LOW_INT: 0x8DF3;
+ readonly MEDIUM_INT: 0x8DF4;
+ readonly HIGH_INT: 0x8DF5;
+ readonly FRAMEBUFFER: 0x8D40;
+ readonly RENDERBUFFER: 0x8D41;
+ readonly RGBA4: 0x8056;
+ readonly RGB5_A1: 0x8057;
+ readonly RGB565: 0x8D62;
+ readonly DEPTH_COMPONENT16: 0x81A5;
+ readonly STENCIL_INDEX8: 0x8D48;
+ readonly DEPTH_STENCIL: 0x84F9;
+ readonly RENDERBUFFER_WIDTH: 0x8D42;
+ readonly RENDERBUFFER_HEIGHT: 0x8D43;
+ readonly RENDERBUFFER_INTERNAL_FORMAT: 0x8D44;
+ readonly RENDERBUFFER_RED_SIZE: 0x8D50;
+ readonly RENDERBUFFER_GREEN_SIZE: 0x8D51;
+ readonly RENDERBUFFER_BLUE_SIZE: 0x8D52;
+ readonly RENDERBUFFER_ALPHA_SIZE: 0x8D53;
+ readonly RENDERBUFFER_DEPTH_SIZE: 0x8D54;
+ readonly RENDERBUFFER_STENCIL_SIZE: 0x8D55;
+ readonly FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: 0x8CD0;
+ readonly FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: 0x8CD1;
+ readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: 0x8CD2;
+ readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: 0x8CD3;
+ readonly COLOR_ATTACHMENT0: 0x8CE0;
+ readonly DEPTH_ATTACHMENT: 0x8D00;
+ readonly STENCIL_ATTACHMENT: 0x8D20;
+ readonly DEPTH_STENCIL_ATTACHMENT: 0x821A;
+ readonly NONE: 0;
+ readonly FRAMEBUFFER_COMPLETE: 0x8CD5;
+ readonly FRAMEBUFFER_INCOMPLETE_ATTACHMENT: 0x8CD6;
+ readonly FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: 0x8CD7;
+ readonly FRAMEBUFFER_INCOMPLETE_DIMENSIONS: 0x8CD9;
+ readonly FRAMEBUFFER_UNSUPPORTED: 0x8CDD;
+ readonly FRAMEBUFFER_BINDING: 0x8CA6;
+ readonly RENDERBUFFER_BINDING: 0x8CA7;
+ readonly MAX_RENDERBUFFER_SIZE: 0x84E8;
+ readonly INVALID_FRAMEBUFFER_OPERATION: 0x0506;
+ readonly UNPACK_FLIP_Y_WEBGL: 0x9240;
+ readonly UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241;
+ readonly CONTEXT_LOST_WEBGL: 0x9242;
+ readonly UNPACK_COLORSPACE_CONVERSION_WEBGL: 0x9243;
+ readonly BROWSER_DEFAULT_WEBGL: 0x9244;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLSampler) */
+interface WebGLSampler {
+}
+
+declare var WebGLSampler: {
+ prototype: WebGLSampler;
+ new(): WebGLSampler;
+ isInstance(obj): obj is WebGLSampler;
+};
+
+/**
+ * The WebGLShader is part of the WebGL API and can either be a vertex or a fragment shader. A WebGLProgram requires both types of shaders.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShader)
+ */
+interface WebGLShader {
+}
+
+declare var WebGLShader: {
+ prototype: WebGLShader;
+ new(): WebGLShader;
+ isInstance(obj): obj is WebGLShader;
+};
+
+/**
+ * Part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getShaderPrecisionFormat() method.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat)
+ */
+interface WebGLShaderPrecisionFormat {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/precision) */
+ readonly precision: GLint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/rangeMax) */
+ readonly rangeMax: GLint;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLShaderPrecisionFormat/rangeMin) */
+ readonly rangeMin: GLint;
+}
+
+declare var WebGLShaderPrecisionFormat: {
+ prototype: WebGLShaderPrecisionFormat;
+ new(): WebGLShaderPrecisionFormat;
+ isInstance(obj): obj is WebGLShaderPrecisionFormat;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLSync) */
+interface WebGLSync {
+}
+
+declare var WebGLSync: {
+ prototype: WebGLSync;
+ new(): WebGLSync;
+ isInstance(obj): obj is WebGLSync;
+};
+
+/**
+ * Part of the WebGL API and represents an opaque texture object providing storage and state for texturing operations.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLTexture)
+ */
+interface WebGLTexture {
+}
+
+declare var WebGLTexture: {
+ prototype: WebGLTexture;
+ new(): WebGLTexture;
+ isInstance(obj): obj is WebGLTexture;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLTransformFeedback) */
+interface WebGLTransformFeedback {
+}
+
+declare var WebGLTransformFeedback: {
+ prototype: WebGLTransformFeedback;
+ new(): WebGLTransformFeedback;
+ isInstance(obj): obj is WebGLTransformFeedback;
+};
+
+/**
+ * Part of the WebGL API and represents the location of a uniform variable in a shader program.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLUniformLocation)
+ */
+interface WebGLUniformLocation {
+}
+
+declare var WebGLUniformLocation: {
+ prototype: WebGLUniformLocation;
+ new(): WebGLUniformLocation;
+ isInstance(obj): obj is WebGLUniformLocation;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebGLVertexArrayObject) */
+interface WebGLVertexArrayObject {
+}
+
+declare var WebGLVertexArrayObject: {
+ prototype: WebGLVertexArrayObject;
+ new(): WebGLVertexArrayObject;
+ isInstance(obj): obj is WebGLVertexArrayObject;
+};
+
+interface WebSocketEventMap {
+ "close": Event;
+ "error": ErrorEvent;
+ "message": Event;
+ "open": Event;
+}
+
+/**
+ * Provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket)
+ */
+interface WebSocket extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/binaryType) */
+ binaryType: BinaryType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/bufferedAmount) */
+ readonly bufferedAmount: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/extensions) */
+ readonly extensions: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/close_event) */
+ onclose: ((this: WebSocket, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/error_event) */
+ onerror: OnErrorEventHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/message_event) */
+ onmessage: ((this: WebSocket, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/open_event) */
+ onopen: ((this: WebSocket, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/protocol) */
+ readonly protocol: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/readyState) */
+ readonly readyState: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/url) */
+ readonly url: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/close) */
+ close(code?: number, reason?: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebSocket/send) */
+ send(data: string): void;
+ send(data: Blob): void;
+ send(data: ArrayBuffer): void;
+ send(data: ArrayBufferView): void;
+ readonly CONNECTING: 0;
+ readonly OPEN: 1;
+ readonly CLOSING: 2;
+ readonly CLOSED: 3;
+ addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var WebSocket: {
+ prototype: WebSocket;
+ new(url: string, protocols?: string | string[]): WebSocket;
+ readonly CONNECTING: 0;
+ readonly OPEN: 1;
+ readonly CLOSING: 2;
+ readonly CLOSED: 3;
+ createServerWebSocket(url: string, protocols: string[], transportProvider: nsITransportProvider, negotiatedExtensions: string): WebSocket;
+ isInstance(obj): obj is WebSocket;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport)
+ */
+interface WebTransport {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/closed) */
+ readonly closed: Promise<WebTransportCloseInfo>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/congestionControl) */
+ readonly congestionControl: WebTransportCongestionControl;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/datagrams) */
+ readonly datagrams: WebTransportDatagramDuplexStream;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/incomingBidirectionalStreams) */
+ readonly incomingBidirectionalStreams: ReadableStream;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/incomingUnidirectionalStreams) */
+ readonly incomingUnidirectionalStreams: ReadableStream;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/ready) */
+ readonly ready: Promise<undefined>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/reliability) */
+ readonly reliability: WebTransportReliabilityMode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/close) */
+ close(closeInfo?: WebTransportCloseInfo): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/createBidirectionalStream) */
+ createBidirectionalStream(options?: WebTransportSendStreamOptions): Promise<WebTransportBidirectionalStream>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/createUnidirectionalStream) */
+ createUnidirectionalStream(options?: WebTransportSendStreamOptions): Promise<WritableStream>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransport/getStats) */
+ getStats(): Promise<WebTransportStats>;
+}
+
+declare var WebTransport: {
+ prototype: WebTransport;
+ new(url: string | URL, options?: WebTransportOptions): WebTransport;
+ isInstance(obj): obj is WebTransport;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream)
+ */
+interface WebTransportBidirectionalStream {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream/readable) */
+ readonly readable: WebTransportReceiveStream;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportBidirectionalStream/writable) */
+ readonly writable: WebTransportSendStream;
+}
+
+declare var WebTransportBidirectionalStream: {
+ prototype: WebTransportBidirectionalStream;
+ new(): WebTransportBidirectionalStream;
+ isInstance(obj): obj is WebTransportBidirectionalStream;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream)
+ */
+interface WebTransportDatagramDuplexStream {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/incomingHighWaterMark) */
+ incomingHighWaterMark: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/incomingMaxAge) */
+ incomingMaxAge: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/maxDatagramSize) */
+ readonly maxDatagramSize: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/outgoingHighWaterMark) */
+ outgoingHighWaterMark: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/outgoingMaxAge) */
+ outgoingMaxAge: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/readable) */
+ readonly readable: ReadableStream;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/writable) */
+ readonly writable: WritableStream;
+}
+
+declare var WebTransportDatagramDuplexStream: {
+ prototype: WebTransportDatagramDuplexStream;
+ new(): WebTransportDatagramDuplexStream;
+ isInstance(obj): obj is WebTransportDatagramDuplexStream;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError)
+ */
+interface WebTransportError extends DOMException {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError/source) */
+ readonly source: WebTransportErrorSource;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportError/streamErrorCode) */
+ readonly streamErrorCode: number | null;
+}
+
+declare var WebTransportError: {
+ prototype: WebTransportError;
+ new(init?: WebTransportErrorInit): WebTransportError;
+ isInstance(obj): obj is WebTransportError;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportReceiveStream)
+ */
+interface WebTransportReceiveStream extends ReadableStream {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WebTransportReceiveStream/getStats) */
+ getStats(): Promise<WebTransportReceiveStreamStats>;
+}
+
+declare var WebTransportReceiveStream: {
+ prototype: WebTransportReceiveStream;
+ new(): WebTransportReceiveStream;
+ isInstance(obj): obj is WebTransportReceiveStream;
+};
+
+/** Available only in secure contexts. */
+interface WebTransportSendStream extends WritableStream {
+ sendOrder: number | null;
+ getStats(): Promise<WebTransportSendStreamStats>;
+}
+
+declare var WebTransportSendStream: {
+ prototype: WebTransportSendStream;
+ new(): WebTransportSendStream;
+ isInstance(obj): obj is WebTransportSendStream;
+};
+
+/**
+ * Events that occur due to the user moving a mouse wheel or similar input device.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent)
+ */
+interface WheelEvent extends MouseEvent {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent/deltaMode) */
+ readonly deltaMode: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent/deltaX) */
+ readonly deltaX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent/deltaY) */
+ readonly deltaY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WheelEvent/deltaZ) */
+ readonly deltaZ: number;
+ /** @deprecated */
+ readonly wheelDelta: number;
+ /** @deprecated */
+ readonly wheelDeltaX: number;
+ /** @deprecated */
+ readonly wheelDeltaY: number;
+ readonly DOM_DELTA_PIXEL: 0x00;
+ readonly DOM_DELTA_LINE: 0x01;
+ readonly DOM_DELTA_PAGE: 0x02;
+}
+
+declare var WheelEvent: {
+ prototype: WheelEvent;
+ new(type: string, eventInitDict?: WheelEventInit): WheelEvent;
+ readonly DOM_DELTA_PIXEL: 0x00;
+ readonly DOM_DELTA_LINE: 0x01;
+ readonly DOM_DELTA_PAGE: 0x02;
+ isInstance(obj): obj is WheelEvent;
+};
+
+interface WindowEventMap extends GlobalEventHandlersEventMap, OnErrorEventHandlerForWindowEventMap, TouchEventHandlersEventMap, WindowEventHandlersEventMap {
+ "devicelight": Event;
+ "devicemotion": Event;
+ "deviceorientation": Event;
+ "deviceorientationabsolute": Event;
+ "orientationchange": Event;
+ "userproximity": Event;
+ "vrdisplayactivate": Event;
+ "vrdisplayconnect": Event;
+ "vrdisplaydeactivate": Event;
+ "vrdisplaydisconnect": Event;
+ "vrdisplaypresentchange": Event;
+}
+
+/**
+ * A window containing a DOM document; the document property points to the DOM document loaded in that window.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window)
+ */
+interface Window extends EventTarget, AnimationFrameProvider, GlobalCrypto, GlobalEventHandlers, OnErrorEventHandlerForWindow, SpeechSynthesisGetter, TouchEventHandlers, WindowEventHandlers, WindowLocalStorage, WindowOrWorkerGlobalScope, WindowSessionStorage {
+ readonly Glean: GleanImpl;
+ readonly GleanPings: GleanPingsImpl;
+ readonly InstallTrigger: InstallTriggerImpl | null;
+ browserDOMWindow: nsIBrowserDOMWindow | null;
+ readonly browsingContext: BrowsingContext;
+ /**
+ * @deprecated This is a legacy alias of `navigator`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/navigator)
+ */
+ readonly clientInformation: Navigator;
+ readonly clientPrincipal: Principal | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/closed) */
+ readonly closed: boolean;
+ readonly content: any;
+ readonly controllers: XULControllers;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/customElements) */
+ readonly customElements: CustomElementRegistry;
+ readonly desktopToDeviceScale: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/devicePixelRatio) */
+ readonly devicePixelRatio: number;
+ readonly docShell: nsIDocShell | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/document) */
+ readonly document: Document | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/event)
+ */
+ readonly event: Event | undefined;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/external)
+ */
+ readonly external: External;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/frameElement) */
+ readonly frameElement: Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/frames) */
+ readonly frames: WindowProxy;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/fullScreen) */
+ fullScreen: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/history) */
+ readonly history: History;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/innerHeight) */
+ readonly innerHeight: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/innerWidth) */
+ readonly innerWidth: number;
+ readonly intlUtils: IntlUtils;
+ readonly isChromeWindow: boolean;
+ readonly isFullyOccluded: boolean;
+ readonly isInFullScreenTransition: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/length) */
+ readonly length: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/location) */
+ readonly location: Location;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/locationbar) */
+ readonly locationbar: BarProp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/menubar) */
+ readonly menubar: BarProp;
+ readonly messageManager: ChromeMessageBroadcaster;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/mozInnerScreenX) */
+ readonly mozInnerScreenX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/mozInnerScreenY) */
+ readonly mozInnerScreenY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/name) */
+ name: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/navigator) */
+ readonly navigator: Navigator;
+ ondevicelight: ((this: Window, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/devicemotion_event) */
+ ondevicemotion: ((this: Window, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/deviceorientation_event) */
+ ondeviceorientation: ((this: Window, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/deviceorientationabsolute_event) */
+ ondeviceorientationabsolute: ((this: Window, ev: Event) => any) | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/orientationchange_event)
+ */
+ onorientationchange: ((this: Window, ev: Event) => any) | null;
+ onuserproximity: ((this: Window, ev: Event) => any) | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/vrdisplayactivate_event)
+ */
+ onvrdisplayactivate: ((this: Window, ev: Event) => any) | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/vrdisplayconnect_event)
+ */
+ onvrdisplayconnect: ((this: Window, ev: Event) => any) | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/vrdisplaydeactivate_event)
+ */
+ onvrdisplaydeactivate: ((this: Window, ev: Event) => any) | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/vrdisplaydisconnect_event)
+ */
+ onvrdisplaydisconnect: ((this: Window, ev: Event) => any) | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/vrdisplaypresentchange_event)
+ */
+ onvrdisplaypresentchange: ((this: Window, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/opener) */
+ opener: any;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/orientation)
+ */
+ readonly orientation: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/outerHeight) */
+ readonly outerHeight: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/outerWidth) */
+ readonly outerWidth: number;
+ /**
+ * @deprecated This is a legacy alias of `scrollX`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollX)
+ */
+ readonly pageXOffset: number;
+ /**
+ * @deprecated This is a legacy alias of `scrollY`.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollY)
+ */
+ readonly pageYOffset: number;
+ readonly paintWorklet: Worklet;
+ /**
+ * Refers to either the parent WindowProxy, or itself.
+ *
+ * It can rarely be null e.g. for contentWindow of an iframe that is already removed from the parent.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/parent)
+ */
+ readonly parent: WindowProxy | null;
+ readonly performance: Performance | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/personalbar) */
+ readonly personalbar: BarProp;
+ readonly realFrameElement: Element | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screen) */
+ readonly screen: Screen;
+ readonly screenEdgeSlopX: number;
+ readonly screenEdgeSlopY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenLeft) */
+ readonly screenLeft: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenTop) */
+ readonly screenTop: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenX) */
+ readonly screenX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenY) */
+ readonly screenY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollMaxX) */
+ readonly scrollMaxX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollMaxY) */
+ readonly scrollMaxY: number;
+ readonly scrollMinX: number;
+ readonly scrollMinY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollX) */
+ readonly scrollX: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollY) */
+ readonly scrollY: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollbars) */
+ readonly scrollbars: BarProp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/self) */
+ readonly self: WindowProxy;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/status)
+ */
+ status: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/statusbar) */
+ readonly statusbar: BarProp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/toolbar) */
+ readonly toolbar: BarProp;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/top) */
+ readonly top: WindowProxy | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/visualViewport) */
+ readonly visualViewport: VisualViewport;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window) */
+ readonly window: WindowProxy;
+ readonly windowGlobalChild: WindowGlobalChild | null;
+ readonly windowRoot: WindowRoot | null;
+ readonly windowState: number;
+ readonly windowUtils: nsIDOMWindowUtils;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/alert) */
+ alert(): void;
+ alert(message: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/blur) */
+ blur(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/cancelIdleCallback) */
+ cancelIdleCallback(handle: number): void;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/captureEvents)
+ */
+ captureEvents(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/close) */
+ close(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/confirm) */
+ confirm(message?: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/dump) */
+ dump(str: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/find) */
+ find(str?: string, caseSensitive?: boolean, backwards?: boolean, wrapAround?: boolean, wholeWord?: boolean, searchInFrames?: boolean, showDialog?: boolean): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/focus) */
+ focus(): void;
+ getAttention(): void;
+ getAttentionWithCycleCount(aCycleCount: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/getComputedStyle) */
+ getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/getDefaultComputedStyle) */
+ getDefaultComputedStyle(elt: Element, pseudoElt?: string): CSSStyleDeclaration | null;
+ getGroupMessageManager(aGroup: string): ChromeMessageBroadcaster;
+ getInterface(iid: any): any;
+ getRegionalPrefsLocales(): string[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/getSelection) */
+ getSelection(): Selection | null;
+ getWebExposedLocales(): string[];
+ getWorkspaceID(): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/matchMedia) */
+ matchMedia(query: UTF8String): MediaQueryList | null;
+ maximize(): void;
+ minimize(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/moveBy) */
+ moveBy(x: number, y: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/moveTo) */
+ moveTo(x: number, y: number): void;
+ moveToWorkspace(workspaceID: string): void;
+ mozScrollSnap(): void;
+ notifyDefaultButtonLoaded(defaultButton: Element): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/open) */
+ open(url?: string | URL, target?: string, features?: string): WindowProxy | null;
+ openDialog(url?: string, name?: string, options?: string, ...extraArguments: any[]): WindowProxy | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/postMessage) */
+ postMessage(message: any, targetOrigin: string, transfer?: any[]): void;
+ postMessage(message: any, options?: WindowPostMessageOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/print) */
+ print(): void;
+ printPreview(settings?: nsIPrintSettings | null, listener?: nsIWebProgressListener | null, docShellToPreviewInto?: nsIDocShell | null): WindowProxy | null;
+ promiseDocumentFlushed(callback: PromiseDocumentFlushedCallback): Promise<any>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/prompt) */
+ prompt(message?: string, _default?: string): string | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/releaseEvents)
+ */
+ releaseEvents(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/requestIdleCallback) */
+ requestIdleCallback(callback: IdleRequestCallback, options?: IdleRequestOptions): number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/resizeBy) */
+ resizeBy(x: number, y: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/resizeTo) */
+ resizeTo(x: number, y: number): void;
+ restore(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scroll) */
+ scroll(x: number, y: number): void;
+ scroll(options?: ScrollToOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollBy) */
+ scrollBy(x: number, y: number): void;
+ scrollBy(options?: ScrollToOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollByLines) */
+ scrollByLines(numLines: number, options?: ScrollOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollByPages) */
+ scrollByPages(numPages: number, options?: ScrollOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollTo) */
+ scrollTo(x: number, y: number): void;
+ scrollTo(options?: ScrollToOptions): void;
+ setCursor(cursor: UTF8String): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/setResizable) */
+ setResizable(resizable: boolean): void;
+ setScrollMarks(marks: number[], onHorizontalScrollbar?: boolean): void;
+ shouldReportForServiceWorkerScope(aScope: string): boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/sizeToContent) */
+ sizeToContent(): void;
+ sizeToContentConstrained(constraints?: SizeToContentConstraints): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/stop) */
+ stop(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/updateCommands) */
+ updateCommands(action: string): void;
+ readonly STATE_MAXIMIZED: 1;
+ readonly STATE_MINIMIZED: 2;
+ readonly STATE_NORMAL: 3;
+ readonly STATE_FULLSCREEN: 4;
+ addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+ [name: string]: any;
+}
+
+declare var Window: {
+ prototype: Window;
+ new(): Window;
+ readonly STATE_MAXIMIZED: 1;
+ readonly STATE_MINIMIZED: 2;
+ readonly STATE_NORMAL: 3;
+ readonly STATE_FULLSCREEN: 4;
+ isInstance(obj): obj is Window;
+};
+
+/**
+ * This ServiceWorker API interface represents the scope of a service worker client that is a document in a browser context, controlled by an active worker. The service worker client independently selects and uses a service worker for its own loading and sub-resources.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient)
+ */
+interface WindowClient extends Client {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient/focused) */
+ readonly focused: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient/visibilityState) */
+ readonly visibilityState: VisibilityState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient/focus) */
+ focus(): Promise<WindowClient>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WindowClient/navigate) */
+ navigate(url: string | URL): Promise<WindowClient>;
+}
+
+declare var WindowClient: {
+ prototype: WindowClient;
+ new(): WindowClient;
+ isInstance(obj): obj is WindowClient;
+};
+
+interface WindowContext {
+ allowJavascript: boolean;
+ readonly browsingContext: BrowsingContext | null;
+ readonly hasBeforeUnload: boolean;
+ readonly innerWindowId: number;
+ readonly isInBFCache: boolean;
+ readonly isInProcess: boolean;
+ readonly isLocalIP: boolean;
+ readonly overriddenFingerprintingSettings: number | null;
+ readonly parentWindowContext: WindowContext | null;
+ readonly shouldResistFingerprinting: boolean;
+ readonly topWindowContext: WindowContext;
+ readonly windowGlobalChild: WindowGlobalChild | null;
+}
+
+declare var WindowContext: {
+ prototype: WindowContext;
+ new(): WindowContext;
+ isInstance(obj): obj is WindowContext;
+};
+
+interface WindowEventHandlersEventMap {
+ "afterprint": Event;
+ "beforeprint": Event;
+ "beforeunload": Event;
+ "gamepadconnected": Event;
+ "gamepaddisconnected": Event;
+ "hashchange": Event;
+ "languagechange": Event;
+ "message": Event;
+ "messageerror": Event;
+ "offline": Event;
+ "online": Event;
+ "pagehide": Event;
+ "pageshow": Event;
+ "popstate": Event;
+ "rejectionhandled": Event;
+ "storage": Event;
+ "unhandledrejection": Event;
+ "unload": Event;
+}
+
+interface WindowEventHandlers {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/afterprint_event) */
+ onafterprint: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/beforeprint_event) */
+ onbeforeprint: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/beforeunload_event) */
+ onbeforeunload: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/gamepadconnected_event) */
+ ongamepadconnected: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/gamepaddisconnected_event) */
+ ongamepaddisconnected: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/hashchange_event) */
+ onhashchange: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/languagechange_event) */
+ onlanguagechange: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/message_event) */
+ onmessage: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/messageerror_event) */
+ onmessageerror: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/offline_event) */
+ onoffline: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/online_event) */
+ ononline: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pagehide_event) */
+ onpagehide: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/pageshow_event) */
+ onpageshow: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/popstate_event) */
+ onpopstate: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/rejectionhandled_event) */
+ onrejectionhandled: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/storage_event) */
+ onstorage: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unhandledrejection_event) */
+ onunhandledrejection: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/unload_event)
+ */
+ onunload: ((this: WindowEventHandlers, ev: Event) => any) | null;
+ addEventListener<K extends keyof WindowEventHandlersEventMap>(type: K, listener: (this: WindowEventHandlers, ev: WindowEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof WindowEventHandlersEventMap>(type: K, listener: (this: WindowEventHandlers, ev: WindowEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+interface WindowGlobalChild {
+ readonly browsingContext: BrowsingContext;
+ readonly contentParentId: number;
+ readonly innerWindowId: number;
+ readonly isClosed: boolean;
+ readonly isCurrentGlobal: boolean;
+ readonly isInProcess: boolean;
+ readonly isProcessRoot: boolean;
+ readonly outerWindowId: number;
+ readonly parentActor: WindowGlobalParent | null;
+ readonly sameOriginWithTop: boolean;
+ readonly windowContext: WindowContext;
+ findBrowsingContextWithName(name: string): BrowsingContext | null;
+ getActor(name: UTF8String): JSWindowActorChild;
+ getExistingActor(name: UTF8String): JSWindowActorChild | null;
+}
+
+declare var WindowGlobalChild: {
+ prototype: WindowGlobalChild;
+ new(): WindowGlobalChild;
+ getByInnerWindowId(innerWIndowId: number): WindowGlobalChild | null;
+ isInstance(obj): obj is WindowGlobalChild;
+};
+
+interface WindowGlobalParent extends WindowContext {
+ readonly childActor: WindowGlobalChild | null;
+ readonly contentBlockingAllowListPrincipal: Principal | null;
+ readonly contentBlockingEvents: number;
+ readonly contentBlockingLog: string;
+ readonly contentParentId: number;
+ readonly cookieJarSettings: nsICookieJarSettings | null;
+ readonly documentPrincipal: Principal;
+ readonly documentStoragePrincipal: Principal;
+ readonly documentTitle: string;
+ readonly documentURI: URI | null;
+ readonly domProcess: nsIDOMProcessParent | null;
+ fullscreen: boolean;
+ readonly isClosed: boolean;
+ readonly isCurrentGlobal: boolean;
+ readonly isInitialDocument: boolean;
+ readonly isProcessRoot: boolean;
+ readonly osPid: number;
+ readonly outerWindowId: number;
+ readonly rootFrameLoader: FrameLoader | null;
+ drawSnapshot(rect: DOMRect | null, scale: number, backgroundColor: UTF8String, resetScrollPosition?: boolean): Promise<ImageBitmap>;
+ getActor(name: UTF8String): JSWindowActorParent;
+ getExistingActor(name: UTF8String): JSWindowActorParent | null;
+ hasActivePeerConnections(): boolean;
+ permitUnload(action?: PermitUnloadAction, timeout?: number): Promise<boolean>;
+}
+
+declare var WindowGlobalParent: {
+ prototype: WindowGlobalParent;
+ new(): WindowGlobalParent;
+ getByInnerWindowId(innerWindowId: number): WindowGlobalParent | null;
+ isInstance(obj): obj is WindowGlobalParent;
+};
+
+interface WindowLocalStorage {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/localStorage) */
+ readonly localStorage: Storage | null;
+}
+
+interface WindowOrWorkerGlobalScope {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/caches) */
+ readonly caches: CacheStorage;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/crossOriginIsolated) */
+ readonly crossOriginIsolated: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/indexedDB) */
+ readonly indexedDB: IDBFactory | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/isSecureContext) */
+ readonly isSecureContext: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/origin) */
+ readonly origin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scheduler) */
+ readonly scheduler: Scheduler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/atob) */
+ atob(atob: string): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/btoa) */
+ btoa(btoa: string): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/clearInterval) */
+ clearInterval(handle?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/clearTimeout) */
+ clearTimeout(handle?: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/createImageBitmap) */
+ createImageBitmap(aImage: ImageBitmapSource, aOptions?: ImageBitmapOptions): Promise<ImageBitmap>;
+ createImageBitmap(aImage: ImageBitmapSource, aSx: number, aSy: number, aSw: number, aSh: number, aOptions?: ImageBitmapOptions): Promise<ImageBitmap>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/fetch) */
+ fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/queueMicrotask) */
+ queueMicrotask(callback: VoidFunction): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/reportError) */
+ reportError(e: any): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/setInterval) */
+ setInterval(handler: Function, timeout?: number, ...arguments: any[]): number;
+ setInterval(handler: string, timeout?: number, ...unused: any[]): number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/setTimeout) */
+ setTimeout(handler: Function, timeout?: number, ...arguments: any[]): number;
+ setTimeout(handler: string, timeout?: number, ...unused: any[]): number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/structuredClone) */
+ structuredClone(value: any, options?: StructuredSerializeOptions): any;
+}
+
+interface WindowRoot extends EventTarget {
+}
+
+declare var WindowRoot: {
+ prototype: WindowRoot;
+ new(): WindowRoot;
+ isInstance(obj): obj is WindowRoot;
+};
+
+interface WindowSessionStorage {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/sessionStorage) */
+ readonly sessionStorage: Storage | null;
+}
+
+interface WorkerEventMap extends AbstractWorkerEventMap {
+ "message": Event;
+ "messageerror": Event;
+}
+
+/**
+ * This Web Workers API interface represents a background task that can be easily created and can send messages back to its creator. Creating a worker is as simple as calling the Worker() constructor and specifying a script to be run in the worker thread.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker)
+ */
+interface Worker extends EventTarget, AbstractWorker {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/message_event) */
+ onmessage: ((this: Worker, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/messageerror_event) */
+ onmessageerror: ((this: Worker, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/postMessage) */
+ postMessage(message: any, transfer: any[]): void;
+ postMessage(message: any, aOptions?: StructuredSerializeOptions): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worker/terminate) */
+ terminate(): void;
+ addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var Worker: {
+ prototype: Worker;
+ new(scriptURL: string | URL, options?: WorkerOptions): Worker;
+ isInstance(obj): obj is Worker;
+};
+
+interface WorkerDebuggerGlobalScopeEventMap {
+ "message": Event;
+ "messageerror": Event;
+}
+
+interface WorkerDebuggerGlobalScope extends EventTarget {
+ readonly global: any;
+ onmessage: ((this: WorkerDebuggerGlobalScope, ev: Event) => any) | null;
+ onmessageerror: ((this: WorkerDebuggerGlobalScope, ev: Event) => any) | null;
+ atob(atob: string): string;
+ btoa(btoa: string): string;
+ clearConsoleEvents(): void;
+ createSandbox(name: string, prototype: any): any;
+ dump(string?: string): void;
+ enterEventLoop(): void;
+ leaveEventLoop(): void;
+ loadSubScript(url: string, sandbox?: any): void;
+ postMessage(message: string): void;
+ reportError(message: string): void;
+ retrieveConsoleEvents(): any[];
+ setConsoleEventHandler(handler: AnyCallback | null): void;
+ setImmediate(handler: Function): void;
+ addEventListener<K extends keyof WorkerDebuggerGlobalScopeEventMap>(type: K, listener: (this: WorkerDebuggerGlobalScope, ev: WorkerDebuggerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof WorkerDebuggerGlobalScopeEventMap>(type: K, listener: (this: WorkerDebuggerGlobalScope, ev: WorkerDebuggerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var WorkerDebuggerGlobalScope: {
+ prototype: WorkerDebuggerGlobalScope;
+ new(): WorkerDebuggerGlobalScope;
+ isInstance(obj): obj is WorkerDebuggerGlobalScope;
+};
+
+interface WorkerGlobalScopeEventMap {
+ "error": ErrorEvent;
+ "languagechange": Event;
+ "offline": Event;
+ "online": Event;
+ "rejectionhandled": Event;
+ "unhandledrejection": Event;
+}
+
+/**
+ * This Web Workers API interface is an interface representing the scope of any worker. Workers have no browsing context; this scope contains the information usually conveyed by Window objects — in this case event handlers, the console or the associated WorkerNavigator object. Each WorkerGlobalScope has its own event loop.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope)
+ */
+interface WorkerGlobalScope extends EventTarget, FontFaceSource, GlobalCrypto, WindowOrWorkerGlobalScope {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/location) */
+ readonly location: WorkerLocation;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/navigator) */
+ readonly navigator: WorkerNavigator;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/error_event) */
+ onerror: OnErrorEventHandler;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/languagechange_event) */
+ onlanguagechange: ((this: WorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/offline_event) */
+ onoffline: ((this: WorkerGlobalScope, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/online_event) */
+ ononline: ((this: WorkerGlobalScope, ev: Event) => any) | null;
+ onrejectionhandled: ((this: WorkerGlobalScope, ev: Event) => any) | null;
+ onunhandledrejection: ((this: WorkerGlobalScope, ev: Event) => any) | null;
+ readonly performance: Performance;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/self) */
+ readonly self: WorkerGlobalScope;
+ /**
+ * @deprecated
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/dump)
+ */
+ dump(str?: string): void;
+ getJSTestingFunctions(): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerGlobalScope/importScripts) */
+ importScripts(...urls: string[]): void;
+ addEventListener<K extends keyof WorkerGlobalScopeEventMap>(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof WorkerGlobalScopeEventMap>(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var WorkerGlobalScope: {
+ prototype: WorkerGlobalScope;
+ new(): WorkerGlobalScope;
+ isInstance(obj): obj is WorkerGlobalScope;
+};
+
+/**
+ * The absolute location of the script executed by the Worker. Such an object is initialized for each worker and is available via the WorkerGlobalScope.location property obtained by calling self.location.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation)
+ */
+interface WorkerLocation {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/hash) */
+ readonly hash: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/host) */
+ readonly host: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/hostname) */
+ readonly hostname: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/href) */
+ readonly href: string;
+ toString(): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/origin) */
+ readonly origin: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/pathname) */
+ readonly pathname: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/port) */
+ readonly port: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/protocol) */
+ readonly protocol: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerLocation/search) */
+ readonly search: string;
+}
+
+declare var WorkerLocation: {
+ prototype: WorkerLocation;
+ new(): WorkerLocation;
+ isInstance(obj): obj is WorkerLocation;
+};
+
+/**
+ * A subset of the Navigator interface allowed to be accessed from a Worker. Such an object is initialized for each worker and is available via the WorkerGlobalScope.navigator property obtained by calling window.self.navigator.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerNavigator)
+ */
+interface WorkerNavigator extends GlobalPrivacyControl, NavigatorConcurrentHardware, NavigatorGPU, NavigatorID, NavigatorLanguage, NavigatorLocks, NavigatorOnLine, NavigatorStorage {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerNavigator/connection) */
+ readonly connection: NetworkInformation;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkerNavigator/mediaCapabilities) */
+ readonly mediaCapabilities: MediaCapabilities;
+}
+
+declare var WorkerNavigator: {
+ prototype: WorkerNavigator;
+ new(): WorkerNavigator;
+ isInstance(obj): obj is WorkerNavigator;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worklet)
+ */
+interface Worklet {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Worklet/addModule) */
+ addModule(moduleURL: string | URL, options?: WorkletOptions): Promise<void>;
+}
+
+declare var Worklet: {
+ prototype: Worklet;
+ new(): Worklet;
+ isInstance(obj): obj is Worklet;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WorkletGlobalScope) */
+interface WorkletGlobalScope {
+ dump(str?: string): void;
+}
+
+declare var WorkletGlobalScope: {
+ prototype: WorkletGlobalScope;
+ new(): WorkletGlobalScope;
+ isInstance(obj): obj is WorkletGlobalScope;
+};
+
+interface WrapperCachedNonISupportsTestInterface {
+}
+
+declare var WrapperCachedNonISupportsTestInterface: {
+ prototype: WrapperCachedNonISupportsTestInterface;
+ new(): WrapperCachedNonISupportsTestInterface;
+ isInstance(obj): obj is WrapperCachedNonISupportsTestInterface;
+};
+
+/**
+ * This Streams API interface provides a standard abstraction for writing streaming data to a destination, known as a sink. This object comes with built-in backpressure and queuing.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream)
+ */
+interface WritableStream {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/locked) */
+ readonly locked: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/abort) */
+ abort(reason?: any): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/close) */
+ close(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStream/getWriter) */
+ getWriter(): WritableStreamDefaultWriter;
+}
+
+declare var WritableStream: {
+ prototype: WritableStream;
+ new(underlyingSink?: any, strategy?: QueuingStrategy): WritableStream;
+ isInstance(obj): obj is WritableStream;
+};
+
+/**
+ * This Streams API interface represents a controller allowing control of a WritableStream's state. When constructing a WritableStream, the underlying sink is given a corresponding WritableStreamDefaultController instance to manipulate.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController)
+ */
+interface WritableStreamDefaultController {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController/signal) */
+ readonly signal: AbortSignal;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultController/error) */
+ error(e?: any): void;
+}
+
+declare var WritableStreamDefaultController: {
+ prototype: WritableStreamDefaultController;
+ new(): WritableStreamDefaultController;
+ isInstance(obj): obj is WritableStreamDefaultController;
+};
+
+/**
+ * This Streams API interface is the object returned by WritableStream.getWriter() and once created locks the < writer to the WritableStream ensuring that no other streams can write to the underlying sink.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter)
+ */
+interface WritableStreamDefaultWriter {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/closed) */
+ readonly closed: Promise<undefined>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/desiredSize) */
+ readonly desiredSize: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/ready) */
+ readonly ready: Promise<undefined>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/abort) */
+ abort(reason?: any): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/close) */
+ close(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/releaseLock) */
+ releaseLock(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/WritableStreamDefaultWriter/write) */
+ write(chunk?: any): Promise<void>;
+}
+
+declare var WritableStreamDefaultWriter: {
+ prototype: WritableStreamDefaultWriter;
+ new(stream: WritableStream): WritableStreamDefaultWriter;
+ isInstance(obj): obj is WritableStreamDefaultWriter;
+};
+
+/**
+ * An XML document. It inherits from the generic Document and does not add any specific methods or properties to it: nevertheless, several algorithms behave differently with the two types of documents.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLDocument)
+ */
+interface XMLDocument extends Document {
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: XMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: XMLDocument, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XMLDocument: {
+ prototype: XMLDocument;
+ new(): XMLDocument;
+ isInstance(obj): obj is XMLDocument;
+};
+
+interface XMLHttpRequestEventMap extends XMLHttpRequestEventTargetEventMap {
+ "readystatechange": Event;
+}
+
+/**
+ * Use XMLHttpRequest (XHR) objects to interact with servers. You can retrieve data from a URL without having to do a full page refresh. This enables a Web page to update just part of a page without disrupting what the user is doing.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest)
+ */
+interface XMLHttpRequest extends XMLHttpRequestEventTarget {
+ readonly channel: MozChannel | null;
+ readonly errorCode: number;
+ readonly mozAnon: boolean;
+ mozBackgroundRequest: boolean;
+ readonly mozSystem: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/readystatechange_event) */
+ onreadystatechange: ((this: XMLHttpRequest, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/readyState) */
+ readonly readyState: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/response) */
+ readonly response: any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseText) */
+ readonly responseText: string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseType) */
+ responseType: XMLHttpRequestResponseType;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseURL) */
+ readonly responseURL: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/responseXML) */
+ readonly responseXML: Document | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/status) */
+ readonly status: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/statusText) */
+ readonly statusText: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/timeout) */
+ timeout: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/upload) */
+ readonly upload: XMLHttpRequestUpload;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/withCredentials) */
+ withCredentials: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/abort) */
+ abort(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getAllResponseHeaders) */
+ getAllResponseHeaders(): string;
+ getInterface(iid: any): any;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/getResponseHeader) */
+ getResponseHeader(header: string): string | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/open) */
+ open(method: string, url: string | URL): void;
+ open(method: string, url: string | URL, async: boolean, user?: string | null, password?: string | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/overrideMimeType) */
+ overrideMimeType(mime: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/send) */
+ send(body?: Document | XMLHttpRequestBodyInit | null): void;
+ sendInputStream(body: InputStream): void;
+ setOriginAttributes(originAttributes?: OriginAttributesDictionary): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/setRequestHeader) */
+ setRequestHeader(header: string, value: string): void;
+ readonly UNSENT: 0;
+ readonly OPENED: 1;
+ readonly HEADERS_RECEIVED: 2;
+ readonly LOADING: 3;
+ readonly DONE: 4;
+ addEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof XMLHttpRequestEventMap>(type: K, listener: (this: XMLHttpRequest, ev: XMLHttpRequestEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XMLHttpRequest: {
+ prototype: XMLHttpRequest;
+ new(params?: MozXMLHttpRequestParameters): XMLHttpRequest;
+ new(ignored: string): XMLHttpRequest;
+ readonly UNSENT: 0;
+ readonly OPENED: 1;
+ readonly HEADERS_RECEIVED: 2;
+ readonly LOADING: 3;
+ readonly DONE: 4;
+ isInstance(obj): obj is XMLHttpRequest;
+};
+
+interface XMLHttpRequestEventTargetEventMap {
+ "abort": Event;
+ "error": ErrorEvent;
+ "load": Event;
+ "loadend": Event;
+ "loadstart": Event;
+ "progress": Event;
+ "timeout": Event;
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequestEventTarget) */
+interface XMLHttpRequestEventTarget extends EventTarget {
+ onabort: ((this: XMLHttpRequestEventTarget, ev: Event) => any) | null;
+ onerror: OnErrorEventHandler;
+ onload: ((this: XMLHttpRequestEventTarget, ev: Event) => any) | null;
+ onloadend: ((this: XMLHttpRequestEventTarget, ev: Event) => any) | null;
+ onloadstart: ((this: XMLHttpRequestEventTarget, ev: Event) => any) | null;
+ onprogress: ((this: XMLHttpRequestEventTarget, ev: Event) => any) | null;
+ ontimeout: ((this: XMLHttpRequestEventTarget, ev: Event) => any) | null;
+ addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestEventTarget, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XMLHttpRequestEventTarget: {
+ prototype: XMLHttpRequestEventTarget;
+ new(): XMLHttpRequestEventTarget;
+ isInstance(obj): obj is XMLHttpRequestEventTarget;
+};
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLHttpRequestUpload) */
+interface XMLHttpRequestUpload extends XMLHttpRequestEventTarget {
+ addEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof XMLHttpRequestEventTargetEventMap>(type: K, listener: (this: XMLHttpRequestUpload, ev: XMLHttpRequestEventTargetEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XMLHttpRequestUpload: {
+ prototype: XMLHttpRequestUpload;
+ new(): XMLHttpRequestUpload;
+ isInstance(obj): obj is XMLHttpRequestUpload;
+};
+
+/**
+ * Provides the serializeToString() method to construct an XML string representing a DOM tree.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLSerializer)
+ */
+interface XMLSerializer {
+ serializeToStream(root: Node, stream: OutputStream, charset: string | null): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XMLSerializer/serializeToString) */
+ serializeToString(root: Node): string;
+}
+
+declare var XMLSerializer: {
+ prototype: XMLSerializer;
+ new(): XMLSerializer;
+ isInstance(obj): obj is XMLSerializer;
+};
+
+/**
+ * The XPathEvaluator interface allows to compile and evaluate XPath expressions.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathEvaluator)
+ */
+interface XPathEvaluator extends XPathEvaluatorMixin {
+}
+
+declare var XPathEvaluator: {
+ prototype: XPathEvaluator;
+ new(): XPathEvaluator;
+ isInstance(obj): obj is XPathEvaluator;
+};
+
+interface XPathEvaluatorMixin {
+ createExpression(expression: string, resolver?: XPathNSResolver | null): XPathExpression;
+ createNSResolver(nodeResolver: Node): Node;
+ evaluate(expression: string, contextNode: Node, resolver?: XPathNSResolver | null, type?: number, result?: any): XPathResult;
+}
+
+/**
+ * This interface is a compiled XPath expression that can be evaluated on a document or specific node to return information its DOM tree.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathExpression)
+ */
+interface XPathExpression {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathExpression/evaluate) */
+ evaluate(contextNode: Node, type?: number, result?: any): XPathResult;
+ evaluateWithContext(contextNode: Node, contextPosition: number, contextSize: number, type?: number, result?: any): XPathResult;
+}
+
+declare var XPathExpression: {
+ prototype: XPathExpression;
+ new(): XPathExpression;
+ isInstance(obj): obj is XPathExpression;
+};
+
+/**
+ * The results generated by evaluating an XPath expression within the context of a given node.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult)
+ */
+interface XPathResult {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/booleanValue) */
+ readonly booleanValue: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/invalidIteratorState) */
+ readonly invalidIteratorState: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/numberValue) */
+ readonly numberValue: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/resultType) */
+ readonly resultType: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/singleNodeValue) */
+ readonly singleNodeValue: Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/snapshotLength) */
+ readonly snapshotLength: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/stringValue) */
+ readonly stringValue: string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/iterateNext) */
+ iterateNext(): Node | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XPathResult/snapshotItem) */
+ snapshotItem(index: number): Node | null;
+ readonly ANY_TYPE: 0;
+ readonly NUMBER_TYPE: 1;
+ readonly STRING_TYPE: 2;
+ readonly BOOLEAN_TYPE: 3;
+ readonly UNORDERED_NODE_ITERATOR_TYPE: 4;
+ readonly ORDERED_NODE_ITERATOR_TYPE: 5;
+ readonly UNORDERED_NODE_SNAPSHOT_TYPE: 6;
+ readonly ORDERED_NODE_SNAPSHOT_TYPE: 7;
+ readonly ANY_UNORDERED_NODE_TYPE: 8;
+ readonly FIRST_ORDERED_NODE_TYPE: 9;
+}
+
+declare var XPathResult: {
+ prototype: XPathResult;
+ new(): XPathResult;
+ readonly ANY_TYPE: 0;
+ readonly NUMBER_TYPE: 1;
+ readonly STRING_TYPE: 2;
+ readonly BOOLEAN_TYPE: 3;
+ readonly UNORDERED_NODE_ITERATOR_TYPE: 4;
+ readonly ORDERED_NODE_ITERATOR_TYPE: 5;
+ readonly UNORDERED_NODE_SNAPSHOT_TYPE: 6;
+ readonly ORDERED_NODE_SNAPSHOT_TYPE: 7;
+ readonly ANY_UNORDERED_NODE_TYPE: 8;
+ readonly FIRST_ORDERED_NODE_TYPE: 9;
+ isInstance(obj): obj is XPathResult;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRBoundedReferenceSpace)
+ */
+interface XRBoundedReferenceSpace extends XRReferenceSpace {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRBoundedReferenceSpace/boundsGeometry) */
+ readonly boundsGeometry: DOMPointReadOnly[];
+ addEventListener<K extends keyof XRReferenceSpaceEventMap>(type: K, listener: (this: XRBoundedReferenceSpace, ev: XRReferenceSpaceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof XRReferenceSpaceEventMap>(type: K, listener: (this: XRBoundedReferenceSpace, ev: XRReferenceSpaceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XRBoundedReferenceSpace: {
+ prototype: XRBoundedReferenceSpace;
+ new(): XRBoundedReferenceSpace;
+ isInstance(obj): obj is XRBoundedReferenceSpace;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRFrame)
+ */
+interface XRFrame {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRFrame/session) */
+ readonly session: XRSession;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRFrame/getPose) */
+ getPose(space: XRSpace, baseSpace: XRSpace): XRPose | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRFrame/getViewerPose) */
+ getViewerPose(referenceSpace: XRReferenceSpace): XRViewerPose | null;
+}
+
+declare var XRFrame: {
+ prototype: XRFrame;
+ new(): XRFrame;
+ isInstance(obj): obj is XRFrame;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSource)
+ */
+interface XRInputSource {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSource/gamepad) */
+ readonly gamepad: Gamepad | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSource/gripSpace) */
+ readonly gripSpace: XRSpace | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSource/handedness) */
+ readonly handedness: XRHandedness;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSource/profiles) */
+ readonly profiles: string[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSource/targetRayMode) */
+ readonly targetRayMode: XRTargetRayMode;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSource/targetRaySpace) */
+ readonly targetRaySpace: XRSpace;
+}
+
+declare var XRInputSource: {
+ prototype: XRInputSource;
+ new(): XRInputSource;
+ isInstance(obj): obj is XRInputSource;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSourceArray)
+ */
+interface XRInputSourceArray {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSourceArray/length) */
+ readonly length: number;
+ forEach(callbackfn: (value: XRInputSource, key: number, parent: XRInputSourceArray) => void, thisArg?: any): void;
+ [index: number]: XRInputSource;
+}
+
+declare var XRInputSourceArray: {
+ prototype: XRInputSourceArray;
+ new(): XRInputSourceArray;
+ isInstance(obj): obj is XRInputSourceArray;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSourceEvent)
+ */
+interface XRInputSourceEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSourceEvent/frame) */
+ readonly frame: XRFrame;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSourceEvent/inputSource) */
+ readonly inputSource: XRInputSource;
+}
+
+declare var XRInputSourceEvent: {
+ prototype: XRInputSourceEvent;
+ new(type: string, eventInitDict: XRInputSourceEventInit): XRInputSourceEvent;
+ isInstance(obj): obj is XRInputSourceEvent;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSourcesChangeEvent)
+ */
+interface XRInputSourcesChangeEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSourcesChangeEvent/added) */
+ readonly added: XRInputSource[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSourcesChangeEvent/removed) */
+ readonly removed: XRInputSource[];
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRInputSourcesChangeEvent/session) */
+ readonly session: XRSession;
+}
+
+declare var XRInputSourcesChangeEvent: {
+ prototype: XRInputSourcesChangeEvent;
+ new(type: string, eventInitDict: XRInputSourcesChangeEventInit): XRInputSourcesChangeEvent;
+ isInstance(obj): obj is XRInputSourcesChangeEvent;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRPose)
+ */
+interface XRPose {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRPose/emulatedPosition) */
+ readonly emulatedPosition: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRPose/transform) */
+ readonly transform: XRRigidTransform;
+}
+
+declare var XRPose: {
+ prototype: XRPose;
+ new(): XRPose;
+ isInstance(obj): obj is XRPose;
+};
+
+interface XRReferenceSpaceEventMap {
+ "reset": Event;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRReferenceSpace)
+ */
+interface XRReferenceSpace extends XRSpace {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRReferenceSpace/reset_event) */
+ onreset: ((this: XRReferenceSpace, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRReferenceSpace/getOffsetReferenceSpace) */
+ getOffsetReferenceSpace(originOffset: XRRigidTransform): XRReferenceSpace;
+ addEventListener<K extends keyof XRReferenceSpaceEventMap>(type: K, listener: (this: XRReferenceSpace, ev: XRReferenceSpaceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof XRReferenceSpaceEventMap>(type: K, listener: (this: XRReferenceSpace, ev: XRReferenceSpaceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XRReferenceSpace: {
+ prototype: XRReferenceSpace;
+ new(): XRReferenceSpace;
+ isInstance(obj): obj is XRReferenceSpace;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRReferenceSpaceEvent)
+ */
+interface XRReferenceSpaceEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRReferenceSpaceEvent/referenceSpace) */
+ readonly referenceSpace: XRReferenceSpace;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRReferenceSpaceEvent/transform) */
+ readonly transform: XRRigidTransform | null;
+}
+
+declare var XRReferenceSpaceEvent: {
+ prototype: XRReferenceSpaceEvent;
+ new(type: string, eventInitDict: XRReferenceSpaceEventInit): XRReferenceSpaceEvent;
+ isInstance(obj): obj is XRReferenceSpaceEvent;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRRenderState)
+ */
+interface XRRenderState {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRRenderState/baseLayer) */
+ readonly baseLayer: XRWebGLLayer | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRRenderState/depthFar) */
+ readonly depthFar: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRRenderState/depthNear) */
+ readonly depthNear: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRRenderState/inlineVerticalFieldOfView) */
+ readonly inlineVerticalFieldOfView: number | null;
+}
+
+declare var XRRenderState: {
+ prototype: XRRenderState;
+ new(): XRRenderState;
+ isInstance(obj): obj is XRRenderState;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRRigidTransform)
+ */
+interface XRRigidTransform {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRRigidTransform/inverse) */
+ readonly inverse: XRRigidTransform;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRRigidTransform/matrix) */
+ readonly matrix: Float32Array;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRRigidTransform/orientation) */
+ readonly orientation: DOMPointReadOnly;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRRigidTransform/position) */
+ readonly position: DOMPointReadOnly;
+}
+
+declare var XRRigidTransform: {
+ prototype: XRRigidTransform;
+ new(position?: DOMPointInit, orientation?: DOMPointInit): XRRigidTransform;
+ isInstance(obj): obj is XRRigidTransform;
+};
+
+interface XRSessionEventMap {
+ "end": Event;
+ "inputsourceschange": Event;
+ "select": Event;
+ "selectend": Event;
+ "selectstart": Event;
+ "squeeze": Event;
+ "squeezeend": Event;
+ "squeezestart": Event;
+ "visibilitychange": Event;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession)
+ */
+interface XRSession extends EventTarget {
+ readonly frameRate: number | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/inputSources) */
+ readonly inputSources: XRInputSourceArray;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/end_event) */
+ onend: ((this: XRSession, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/inputsourceschange_event) */
+ oninputsourceschange: ((this: XRSession, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/select_event) */
+ onselect: ((this: XRSession, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/selectend_event) */
+ onselectend: ((this: XRSession, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/selectstart_event) */
+ onselectstart: ((this: XRSession, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/squeeze_event) */
+ onsqueeze: ((this: XRSession, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/squeezeend_event) */
+ onsqueezeend: ((this: XRSession, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/squeezestart_event) */
+ onsqueezestart: ((this: XRSession, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/visibilitychange_event) */
+ onvisibilitychange: ((this: XRSession, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/renderState) */
+ readonly renderState: XRRenderState;
+ readonly supportedFrameRates: Float32Array | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/visibilityState) */
+ readonly visibilityState: XRVisibilityState;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/cancelAnimationFrame) */
+ cancelAnimationFrame(handle: number): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/end) */
+ end(): Promise<void>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/requestAnimationFrame) */
+ requestAnimationFrame(callback: XRFrameRequestCallback): number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/requestReferenceSpace) */
+ requestReferenceSpace(type: XRReferenceSpaceType): Promise<XRReferenceSpace>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSession/updateRenderState) */
+ updateRenderState(state?: XRRenderStateInit): void;
+ updateTargetFrameRate(rate: number): Promise<void>;
+ addEventListener<K extends keyof XRSessionEventMap>(type: K, listener: (this: XRSession, ev: XRSessionEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof XRSessionEventMap>(type: K, listener: (this: XRSession, ev: XRSessionEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XRSession: {
+ prototype: XRSession;
+ new(): XRSession;
+ isInstance(obj): obj is XRSession;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSessionEvent)
+ */
+interface XRSessionEvent extends Event {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSessionEvent/session) */
+ readonly session: XRSession;
+}
+
+declare var XRSessionEvent: {
+ prototype: XRSessionEvent;
+ new(type: string, eventInitDict: XRSessionEventInit): XRSessionEvent;
+ isInstance(obj): obj is XRSessionEvent;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSpace)
+ */
+interface XRSpace extends EventTarget {
+}
+
+declare var XRSpace: {
+ prototype: XRSpace;
+ new(): XRSpace;
+ isInstance(obj): obj is XRSpace;
+};
+
+interface XRSystemEventMap {
+ "devicechange": Event;
+}
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSystem)
+ */
+interface XRSystem extends EventTarget {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSystem/devicechange_event) */
+ ondevicechange: ((this: XRSystem, ev: Event) => any) | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSystem/isSessionSupported) */
+ isSessionSupported(mode: XRSessionMode): Promise<boolean>;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRSystem/requestSession) */
+ requestSession(mode: XRSessionMode, options?: XRSessionInit): Promise<XRSession>;
+ addEventListener<K extends keyof XRSystemEventMap>(type: K, listener: (this: XRSystem, ev: XRSystemEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof XRSystemEventMap>(type: K, listener: (this: XRSystem, ev: XRSystemEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XRSystem: {
+ prototype: XRSystem;
+ new(): XRSystem;
+ isInstance(obj): obj is XRSystem;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRView)
+ */
+interface XRView {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRView/eye) */
+ readonly eye: XREye;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRView/projectionMatrix) */
+ readonly projectionMatrix: Float32Array;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRView/transform) */
+ readonly transform: XRRigidTransform;
+}
+
+declare var XRView: {
+ prototype: XRView;
+ new(): XRView;
+ isInstance(obj): obj is XRView;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRViewerPose)
+ */
+interface XRViewerPose extends XRPose {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRViewerPose/views) */
+ readonly views: XRView[];
+}
+
+declare var XRViewerPose: {
+ prototype: XRViewerPose;
+ new(): XRViewerPose;
+ isInstance(obj): obj is XRViewerPose;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRViewport)
+ */
+interface XRViewport {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRViewport/height) */
+ readonly height: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRViewport/width) */
+ readonly width: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRViewport/x) */
+ readonly x: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRViewport/y) */
+ readonly y: number;
+}
+
+declare var XRViewport: {
+ prototype: XRViewport;
+ new(): XRViewport;
+ isInstance(obj): obj is XRViewport;
+};
+
+/**
+ * Available only in secure contexts.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRWebGLLayer)
+ */
+interface XRWebGLLayer {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRWebGLLayer/antialias) */
+ readonly antialias: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRWebGLLayer/framebuffer) */
+ readonly framebuffer: WebGLFramebuffer | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRWebGLLayer/framebufferHeight) */
+ readonly framebufferHeight: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRWebGLLayer/framebufferWidth) */
+ readonly framebufferWidth: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRWebGLLayer/ignoreDepthValues) */
+ readonly ignoreDepthValues: boolean;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRWebGLLayer/getViewport) */
+ getViewport(view: XRView): XRViewport | null;
+}
+
+declare var XRWebGLLayer: {
+ prototype: XRWebGLLayer;
+ new(session: XRSession, context: XRWebGLRenderingContext, layerInit?: XRWebGLLayerInit): XRWebGLLayer;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XRWebGLLayer/getNativeFramebufferScaleFactor_static) */
+ getNativeFramebufferScaleFactor(session: XRSession): number;
+ isInstance(obj): obj is XRWebGLLayer;
+};
+
+/**
+ * An XSLTProcessor applies an XSLT stylesheet transformation to an XML document to produce a new XML document as output. It has methods to load the XSLT stylesheet, to manipulate <xsl:param> parameter values, and to apply the transformation to documents.
+ *
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor)
+ */
+interface XSLTProcessor {
+ flags: number;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/clearParameters) */
+ clearParameters(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/getParameter) */
+ getParameter(namespaceURI: string | null, localName: string): XSLTParameterValue | null;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/importStylesheet) */
+ importStylesheet(style: Node): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/removeParameter) */
+ removeParameter(namespaceURI: string | null, localName: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/reset) */
+ reset(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/setParameter) */
+ setParameter(namespaceURI: string | null, localName: string, value: XSLTParameterValue): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/transformToDocument) */
+ transformToDocument(source: Node): Document;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/XSLTProcessor/transformToFragment) */
+ transformToFragment(source: Node, output: Document): DocumentFragment;
+ readonly DISABLE_ALL_LOADS: 1;
+}
+
+declare var XSLTProcessor: {
+ prototype: XSLTProcessor;
+ new(): XSLTProcessor;
+ readonly DISABLE_ALL_LOADS: 1;
+ isInstance(obj): obj is XSLTProcessor;
+};
+
+interface XULCommandDispatcher {
+}
+
+declare var XULCommandDispatcher: {
+ prototype: XULCommandDispatcher;
+ new(): XULCommandDispatcher;
+ isInstance(obj): obj is XULCommandDispatcher;
+};
+
+interface XULCommandEvent extends UIEvent {
+ readonly altKey: boolean;
+ readonly button: number;
+ readonly ctrlKey: boolean;
+ readonly inputSource: number;
+ readonly metaKey: boolean;
+ readonly shiftKey: boolean;
+ readonly sourceEvent: Event | null;
+ initCommandEvent(type: string, canBubble?: boolean, cancelable?: boolean, view?: Window | null, detail?: number, ctrlKey?: boolean, altKey?: boolean, shiftKey?: boolean, metaKey?: boolean, buttonArg?: number, sourceEvent?: Event | null, inputSource?: number): void;
+}
+
+declare var XULCommandEvent: {
+ prototype: XULCommandEvent;
+ new(): XULCommandEvent;
+ isInstance(obj): obj is XULCommandEvent;
+};
+
+interface XULElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap, OnErrorEventHandlerForNodesEventMap, TouchEventHandlersEventMap {
+}
+
+interface XULElement extends Element, ElementCSSInlineStyle, GlobalEventHandlers, HTMLOrForeignElement, OnErrorEventHandlerForNodes, TouchEventHandlers {
+ collapsed: boolean;
+ contextMenu: string;
+ readonly controllers: XULControllers;
+ hidden: boolean;
+ menu: string;
+ observes: string;
+ src: string;
+ tooltip: string;
+ tooltipText: string;
+ click(): void;
+ doCommand(): void;
+ hasMenu(): boolean;
+ openMenu(open: boolean): void;
+ addEventListener<K extends keyof XULElementEventMap>(type: K, listener: (this: XULElement, ev: XULElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof XULElementEventMap>(type: K, listener: (this: XULElement, ev: XULElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XULElement: {
+ prototype: XULElement;
+ new(): XULElement;
+ isInstance(obj): obj is XULElement;
+};
+
+interface XULFrameElement extends XULElement, MozFrameLoaderOwner {
+ readonly browserId: number;
+ readonly contentDocument: Document | null;
+ readonly contentWindow: WindowProxy | null;
+ readonly docShell: nsIDocShell | null;
+ openWindowInfo: nsIOpenWindowInfo | null;
+ readonly webNavigation: nsIWebNavigation | null;
+ addEventListener<K extends keyof XULElementEventMap>(type: K, listener: (this: XULFrameElement, ev: XULElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof XULElementEventMap>(type: K, listener: (this: XULFrameElement, ev: XULElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XULFrameElement: {
+ prototype: XULFrameElement;
+ new(): XULFrameElement;
+ isInstance(obj): obj is XULFrameElement;
+};
+
+interface XULMenuElement extends XULElement {
+ activeChild: Element | null;
+ readonly openedWithKey: boolean;
+ handleKeyPress(keyEvent: KeyboardEvent): boolean;
+ addEventListener<K extends keyof XULElementEventMap>(type: K, listener: (this: XULMenuElement, ev: XULElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof XULElementEventMap>(type: K, listener: (this: XULMenuElement, ev: XULElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XULMenuElement: {
+ prototype: XULMenuElement;
+ new(): XULMenuElement;
+ isInstance(obj): obj is XULMenuElement;
+};
+
+interface XULPopupElement extends XULElement {
+ readonly anchorNode: Element | null;
+ readonly isWaylandDragSource: boolean;
+ readonly isWaylandPopup: boolean;
+ label: string;
+ position: string;
+ readonly state: string;
+ readonly triggerNode: Node | null;
+ activateItem(itemElement: Element, options?: ActivateMenuItemOptions): void;
+ getOuterScreenRect(): DOMRect;
+ hidePopup(cancel?: boolean): void;
+ moveTo(left: number, top: number): void;
+ moveToAnchor(anchorElement?: Element | null, position?: string, x?: number, y?: number, attributesOverride?: boolean): void;
+ openPopup(anchorElement?: Element | null, options?: StringOrOpenPopupOptions, x?: number, y?: number, isContextMenu?: boolean, attributesOverride?: boolean, triggerEvent?: Event | null): void;
+ openPopupAtScreen(x?: number, y?: number, isContextMenu?: boolean, triggerEvent?: Event | null): void;
+ openPopupAtScreenRect(position?: string, x?: number, y?: number, width?: number, height?: number, isContextMenu?: boolean, attributesOverride?: boolean, triggerEvent?: Event | null): void;
+ setConstraintRect(rect: DOMRectReadOnly): void;
+ sizeTo(width: number, height: number): void;
+ addEventListener<K extends keyof XULElementEventMap>(type: K, listener: (this: XULPopupElement, ev: XULElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof XULElementEventMap>(type: K, listener: (this: XULPopupElement, ev: XULElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XULPopupElement: {
+ prototype: XULPopupElement;
+ new(): XULPopupElement;
+ isInstance(obj): obj is XULPopupElement;
+};
+
+interface XULResizerElement extends XULElement {
+ addEventListener<K extends keyof XULElementEventMap>(type: K, listener: (this: XULResizerElement, ev: XULElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof XULElementEventMap>(type: K, listener: (this: XULResizerElement, ev: XULElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XULResizerElement: {
+ prototype: XULResizerElement;
+ new(): XULResizerElement;
+ isInstance(obj): obj is XULResizerElement;
+};
+
+interface XULTextElement extends XULElement {
+ accessKey: string;
+ disabled: boolean;
+ value: string;
+ addEventListener<K extends keyof XULElementEventMap>(type: K, listener: (this: XULTextElement, ev: XULElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof XULElementEventMap>(type: K, listener: (this: XULTextElement, ev: XULElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XULTextElement: {
+ prototype: XULTextElement;
+ new(): XULTextElement;
+ isInstance(obj): obj is XULTextElement;
+};
+
+interface XULTreeElement extends XULElement {
+ readonly columns: TreeColumns | null;
+ focused: boolean;
+ readonly horizontalPosition: number;
+ readonly rowHeight: number;
+ readonly rowWidth: number;
+ readonly treeBody: Element | null;
+ view: MozTreeView | null;
+ beginUpdateBatch(): void;
+ clearStyleAndImageCaches(): void;
+ endUpdateBatch(): void;
+ ensureCellIsVisible(row: number, col: TreeColumn | null): void;
+ ensureRowIsVisible(index: number): void;
+ getCellAt(x: number, y: number): TreeCellInfo;
+ getCoordsForCellItem(row: number, col: TreeColumn, element: string): DOMRect | null;
+ getFirstVisibleRow(): number;
+ getLastVisibleRow(): number;
+ getPageLength(): number;
+ getRowAt(x: number, y: number): number;
+ invalidate(): void;
+ invalidateCell(row: number, col: TreeColumn | null): void;
+ invalidateColumn(col: TreeColumn | null): void;
+ invalidateRange(startIndex: number, endIndex: number): void;
+ invalidateRow(index: number): void;
+ isCellCropped(row: number, col: TreeColumn | null): boolean;
+ removeImageCacheEntry(row: number, col: TreeColumn): void;
+ rowCountChanged(index: number, count: number): void;
+ scrollByLines(numLines: number): void;
+ scrollByPages(numPages: number): void;
+ scrollToRow(index: number): void;
+ addEventListener<K extends keyof XULElementEventMap>(type: K, listener: (this: XULTreeElement, ev: XULElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
+ removeEventListener<K extends keyof XULElementEventMap>(type: K, listener: (this: XULTreeElement, ev: XULElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
+}
+
+declare var XULTreeElement: {
+ prototype: XULTreeElement;
+ new(): XULTreeElement;
+ isInstance(obj): obj is XULTreeElement;
+};
+
+interface imgINotificationObserver {
+}
+
+declare var imgINotificationObserver: {
+ prototype: imgINotificationObserver;
+ new(): imgINotificationObserver;
+ isInstance(obj): obj is imgINotificationObserver;
+};
+
+interface imgIRequest {
+}
+
+declare var imgIRequest: {
+ prototype: imgIRequest;
+ new(): imgIRequest;
+ isInstance(obj): obj is imgIRequest;
+};
+
+interface nsIBrowserDOMWindow {
+}
+
+declare var nsIBrowserDOMWindow: {
+ prototype: nsIBrowserDOMWindow;
+ new(): nsIBrowserDOMWindow;
+ isInstance(obj): obj is nsIBrowserDOMWindow;
+};
+
+interface nsICookieJarSettings {
+}
+
+declare var nsICookieJarSettings: {
+ prototype: nsICookieJarSettings;
+ new(): nsICookieJarSettings;
+ isInstance(obj): obj is nsICookieJarSettings;
+};
+
+interface nsIDOMProcessChild {
+}
+
+declare var nsIDOMProcessChild: {
+ prototype: nsIDOMProcessChild;
+ new(): nsIDOMProcessChild;
+ isInstance(obj): obj is nsIDOMProcessChild;
+};
+
+interface nsIDOMProcessParent {
+}
+
+declare var nsIDOMProcessParent: {
+ prototype: nsIDOMProcessParent;
+ new(): nsIDOMProcessParent;
+ isInstance(obj): obj is nsIDOMProcessParent;
+};
+
+interface nsIDOMWindowUtils {
+}
+
+declare var nsIDOMWindowUtils: {
+ prototype: nsIDOMWindowUtils;
+ new(): nsIDOMWindowUtils;
+ isInstance(obj): obj is nsIDOMWindowUtils;
+};
+
+interface nsIDocShell {
+}
+
+interface nsIEditor {
+}
+
+declare var nsIEditor: {
+ prototype: nsIEditor;
+ new(): nsIEditor;
+ isInstance(obj): obj is nsIEditor;
+};
+
+interface nsIEventTarget {
+}
+
+declare var nsIEventTarget: {
+ prototype: nsIEventTarget;
+ new(): nsIEventTarget;
+ isInstance(obj): obj is nsIEventTarget;
+};
+
+interface nsIFile {
+}
+
+declare var nsIFile: {
+ prototype: nsIFile;
+ new(): nsIFile;
+ isInstance(obj): obj is nsIFile;
+};
+
+interface nsIGleanPing {
+}
+
+declare var nsIGleanPing: {
+ prototype: nsIGleanPing;
+ new(): nsIGleanPing;
+ isInstance(obj): obj is nsIGleanPing;
+};
+
+interface nsILoadGroup {
+}
+
+declare var nsILoadGroup: {
+ prototype: nsILoadGroup;
+ new(): nsILoadGroup;
+ isInstance(obj): obj is nsILoadGroup;
+};
+
+interface nsIMediaDevice {
+}
+
+declare var nsIMediaDevice: {
+ prototype: nsIMediaDevice;
+ new(): nsIMediaDevice;
+ isInstance(obj): obj is nsIMediaDevice;
+};
+
+interface nsIOpenWindowInfo {
+}
+
+declare var nsIOpenWindowInfo: {
+ prototype: nsIOpenWindowInfo;
+ new(): nsIOpenWindowInfo;
+ isInstance(obj): obj is nsIOpenWindowInfo;
+};
+
+interface nsIPermissionDelegateHandler {
+}
+
+declare var nsIPermissionDelegateHandler: {
+ prototype: nsIPermissionDelegateHandler;
+ new(): nsIPermissionDelegateHandler;
+ isInstance(obj): obj is nsIPermissionDelegateHandler;
+};
+
+interface nsISHEntry {
+}
+
+declare var nsISHEntry: {
+ prototype: nsISHEntry;
+ new(): nsISHEntry;
+ isInstance(obj): obj is nsISHEntry;
+};
+
+interface nsISHistory {
+}
+
+declare var nsISHistory: {
+ prototype: nsISHistory;
+ new(): nsISHistory;
+ isInstance(obj): obj is nsISHistory;
+};
+
+interface nsIScreen {
+}
+
+declare var nsIScreen: {
+ prototype: nsIScreen;
+ new(): nsIScreen;
+ isInstance(obj): obj is nsIScreen;
+};
+
+interface nsISecureBrowserUI {
+}
+
+declare var nsISecureBrowserUI: {
+ prototype: nsISecureBrowserUI;
+ new(): nsISecureBrowserUI;
+ isInstance(obj): obj is nsISecureBrowserUI;
+};
+
+interface nsISelectionListener {
+}
+
+declare var nsISelectionListener: {
+ prototype: nsISelectionListener;
+ new(): nsISelectionListener;
+ isInstance(obj): obj is nsISelectionListener;
+};
+
+interface nsISessionStoreRestoreData {
+}
+
+declare var nsISessionStoreRestoreData: {
+ prototype: nsISessionStoreRestoreData;
+ new(): nsISessionStoreRestoreData;
+ isInstance(obj): obj is nsISessionStoreRestoreData;
+};
+
+interface nsISocketTransport {
+}
+
+declare var nsISocketTransport: {
+ prototype: nsISocketTransport;
+ new(): nsISocketTransport;
+ isInstance(obj): obj is nsISocketTransport;
+};
+
+interface nsIStreamListener {
+}
+
+declare var nsIStreamListener: {
+ prototype: nsIStreamListener;
+ new(): nsIStreamListener;
+ isInstance(obj): obj is nsIStreamListener;
+};
+
+interface nsITransportProvider {
+}
+
+declare var nsITransportProvider: {
+ prototype: nsITransportProvider;
+ new(): nsITransportProvider;
+ isInstance(obj): obj is nsITransportProvider;
+};
+
+interface nsITreeSelection {
+}
+
+declare var nsITreeSelection: {
+ prototype: nsITreeSelection;
+ new(): nsITreeSelection;
+ isInstance(obj): obj is nsITreeSelection;
+};
+
+interface nsIWebBrowserPersistDocumentReceiver {
+}
+
+declare var nsIWebBrowserPersistDocumentReceiver: {
+ prototype: nsIWebBrowserPersistDocumentReceiver;
+ new(): nsIWebBrowserPersistDocumentReceiver;
+ isInstance(obj): obj is nsIWebBrowserPersistDocumentReceiver;
+};
+
+interface nsIWebNavigation {
+}
+
+declare var nsIWebNavigation: {
+ prototype: nsIWebNavigation;
+ new(): nsIWebNavigation;
+ isInstance(obj): obj is nsIWebNavigation;
+};
+
+interface nsIWebProgress {
+}
+
+declare var nsIWebProgress: {
+ prototype: nsIWebProgress;
+ new(): nsIWebProgress;
+ isInstance(obj): obj is nsIWebProgress;
+};
+
+interface nsIWebProgressListener {
+}
+
+declare var nsIWebProgressListener: {
+ prototype: nsIWebProgressListener;
+ new(): nsIWebProgressListener;
+ isInstance(obj): obj is nsIWebProgressListener;
+};
+
+declare namespace AddonManagerPermissions {
+ function isHostPermitted(host: string): boolean;
+}
+
+declare namespace APZHitResultFlags {
+}
+
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console) */
+interface Console {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/assert_static) */
+ assert(condition?: boolean, ...data: any[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/clear_static) */
+ clear(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/count_static) */
+ count(label?: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/countReset_static) */
+ countReset(label?: string): void;
+ createInstance(options?: ConsoleInstanceOptions): ConsoleInstance;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/debug_static) */
+ debug(...data: any[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/dir_static) */
+ dir(...data: any[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/dirxml_static) */
+ dirxml(...data: any[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/error_static) */
+ error(...data: any[]): void;
+ /** @deprecated */
+ exception(...data: any[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/group_static) */
+ group(...data: any[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/groupCollapsed_static) */
+ groupCollapsed(...data: any[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/groupEnd_static) */
+ groupEnd(): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/info_static) */
+ info(...data: any[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/log_static) */
+ log(...data: any[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/profile_static) */
+ profile(...data: any[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/profileEnd_static) */
+ profileEnd(...data: any[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/table_static) */
+ table(...data: any[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/time_static) */
+ time(label?: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeEnd_static) */
+ timeEnd(label?: string): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeLog_static) */
+ timeLog(label?: string, ...data: any[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/timeStamp_static) */
+ timeStamp(data?: any): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/trace_static) */
+ trace(...data: any[]): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/console/warn_static) */
+ warn(...data: any[]): void;
+}
+
+declare var console: Console;
+
+/** Holds useful CSS-related methods. No object with this interface are implemented: it contains only static methods and therefore is a utilitarian interface. */
+declare namespace CSS {
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/highlights_static) */
+ var highlights: HighlightRegistry;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/escape_static) */
+ function escape(ident: string): string;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/registerProperty_static) */
+ function registerProperty(definition: PropertyDefinition): void;
+ /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSS/supports_static) */
+ function supports(property: UTF8String, value: UTF8String): boolean;
+ function supports(conditionText: UTF8String): boolean;
+}
+
+declare namespace FuzzingFunctions {
+ function crash(reason?: string): void;
+ function cycleCollect(): void;
+ function enableAccessibility(): void;
+ function garbageCollect(): void;
+ function garbageCollectCompacting(): void;
+ function memoryPressure(): void;
+ function signalIPCReady(): void;
+ function synthesizeKeyboardEvents(aKeyValue: string, aDictionary?: KeyboardEventInit): void;
+}
+
+declare namespace TestUtils {
+ function gc(): Promise<void>;
+}
+
+declare namespace WebrtcGlobalInformation {
+ var aecDebug: boolean;
+ var aecDebugLogDir: string;
+ function clearAllStats(): void;
+ function clearLogging(): void;
+ function getAllStats(callback: WebrtcGlobalStatisticsCallback, pcIdFilter?: string): void;
+ function getLogging(pattern: string, callback: WebrtcGlobalLoggingCallback): void;
+ function getMediaContext(): WebrtcGlobalMediaContext;
+ function getStatsHistoryPcIds(callback: WebrtcGlobalStatisticsHistoryPcIdsCallback): void;
+ function getStatsHistorySince(callback: WebrtcGlobalStatisticsHistoryCallback, pcIdFilter: string, after?: DOMHighResTimeStamp, sdpAfter?: DOMHighResTimeStamp): void;
+}
+
+declare namespace WorkerTestUtils {
+ function currentTimerNestingLevel(): number;
+}
+
+// @ts-ignore
+declare namespace ChromeUtils {
+ var aliveUtilityProcesses: number;
+ var domProcessChild: nsIDOMProcessChild | null;
+ var recentJSDevError: any;
+ function CreateOriginAttributesFromOriginSuffix(suffix: string): OriginAttributesDictionary;
+ function addProfilerMarker(name: UTF8String, options?: ProfilerMarkerOptions | DOMHighResTimeStamp, text?: UTF8String): void;
+ function base64URLDecode(string: string, options: Base64URLDecodeOptions): ArrayBuffer;
+ function base64URLEncode(source: BufferSource, options: Base64URLEncodeOptions): string;
+ function clearRecentJSDevError(): void;
+ function clearStyleSheetCache(): void;
+ function clearStyleSheetCacheByBaseDomain(baseDomain: UTF8String): void;
+ function clearStyleSheetCacheByPrincipal(principal: Principal): void;
+ function collectPerfStats(): Promise<string>;
+ function collectScrollingData(): Promise<InteractionData>;
+ function compileScript(url: string, options?: CompileScriptOptionsDictionary): Promise<PrecompiledScript>;
+ function consumeInteractionData(): Record<string, InteractionData>;
+ function createError(message: string, stack?: any): any;
+ function createOriginAttributesFromOrigin(origin: string): OriginAttributesDictionary;
+ function dateNow(): number;
+ function defineESModuleGetters(target: any, modules: any): void;
+ function defineLazyGetter(aTarget: any, aName: any, aLambda: any): void;
+ function defineModuleGetter(target: any, id: string, resourceURI: string): void;
+ function endWheelTransaction(): void;
+ function ensureJSOracleStarted(): void;
+ function fillNonDefaultOriginAttributes(originAttrs?: OriginAttributesDictionary): OriginAttributesDictionary;
+ function generateQI(interfaces: any[]): MozQueryInterface;
+ function getAllDOMProcesses(): nsIDOMProcessParent[];
+ function getAllPossibleUtilityActorNames(): UTF8String[];
+ function getBaseDomainFromPartitionKey(partitionKey: string): string;
+ function getCallerLocation(principal: Principal): any;
+ function getClassName(obj: any, unwrap?: boolean): string;
+ function getFormAutofillConfidences(elements: Element[]): FormAutofillConfidences[];
+ function getGMPContentDecryptionModuleInformation(): Promise<CDMInformation[]>;
+ function getLibcConstants(): LibcConstants;
+ function getObjectNodeId(obj: any): NodeId;
+ function getPartitionKeyFromURL(url: string): string;
+ function getPopupControlState(): PopupBlockerState;
+ function getWMFContentDecryptionModuleInformation(): Promise<CDMInformation[]>;
+ function getXPCOMErrorName(aErrorCode: number): UTF8String;
+ function hasReportingHeaderForOrigin(aOrigin: string): boolean;
+ function idleDispatch(callback: IdleRequestCallback, options?: IdleRequestOptions): void;
+ function _import_(aResourceURI: UTF8String, aTargetObj?: any): any;
+ function importESModule(aResourceURI: string, options?: ImportESModuleOptionsDictionary): any;
+ function isClassifierBlockingErrorCode(aError: number): boolean;
+ function isDOMObject(obj: any, unwrap?: boolean): boolean;
+ function isDarkBackground(element: Element): boolean;
+ function isDevToolsOpened(): boolean;
+ function isISOStyleDate(str: UTF8String): boolean;
+ function isOriginAttributesEqual(aA?: OriginAttributesDictionary, aB?: OriginAttributesDictionary): boolean;
+ function lastExternalProtocolIframeAllowed(): number;
+ function nondeterministicGetWeakMapKeys(map: any): any;
+ function nondeterministicGetWeakSetKeys(aSet: any): any;
+ function notifyDevToolsClosed(): void;
+ function notifyDevToolsOpened(): void;
+ function originAttributesMatchPattern(originAttrs?: OriginAttributesDictionary, pattern?: OriginAttributesPatternDictionary): boolean;
+ function originAttributesToSuffix(originAttrs?: OriginAttributesDictionary): string;
+ function privateNoteIntentionalCrash(): void;
+ function readHeapSnapshot(filePath: string): HeapSnapshot;
+ function registerProcessActor(aName: UTF8String, aOptions?: ProcessActorOptions): void;
+ function registerWindowActor(aName: UTF8String, aOptions?: WindowActorOptions): void;
+ function releaseAssert(condition: boolean, message?: string): void;
+ function requestIOActivity(): Promise<IOActivityDataDictionary[]>;
+ function requestProcInfo(): Promise<ParentProcInfoDictionary>;
+ function resetLastExternalProtocolIframeAllowed(): void;
+ function saveHeapSnapshot(boundaries?: HeapSnapshotBoundaries): string;
+ function saveHeapSnapshotGetId(boundaries?: HeapSnapshotBoundaries): string;
+ function setPerfStatsCollectionMask(aCollectionMask: number): void;
+ function shallowClone(obj: any, target?: any): any;
+ function shouldResistFingerprinting(target: JSRFPTarget, overriddenFingerprintingSettings: number | null): boolean;
+ function unregisterProcessActor(aName: UTF8String): void;
+ function unregisterWindowActor(aName: UTF8String): void;
+ function unwaiveXrays(val: any): any;
+ function vsyncEnabled(): boolean;
+ function waiveXrays(val: any): any;
+}
+
+// @ts-ignore
+declare namespace InspectorUtils {
+ function addPseudoClassLock(element: Element, pseudoClass: string, enabled?: boolean): void;
+ function clearPseudoClassLocks(element: Element): void;
+ function colorToRGBA(colorString: UTF8String, doc?: Document | null): InspectorRGBATuple | null;
+ function containingBlockOf(element: Element): Element | null;
+ function cssPropertyIsShorthand(property: UTF8String): boolean;
+ function cssPropertySupportsType(property: UTF8String, type: InspectorPropertyType): boolean;
+ function getAllStyleSheetCSSStyleRules(sheet: CSSStyleSheet): CSSRule[];
+ function getAllStyleSheets(document: Document, documentOnly?: boolean): StyleSheet[];
+ function getBlockLineCounts(element: Element): number[] | null;
+ function getCSSPropertyNames(options?: PropertyNamesOptions): string[];
+ function getCSSPropertyPrefs(): PropertyPref[];
+ function getCSSPseudoElementNames(): string[];
+ function getCSSRegisteredProperties(document: Document): InspectorCSSPropertyDefinition[];
+ function getCSSStyleRules(element: Element, pseudo?: string, relevantLinkVisited?: boolean): CSSStyleRule[];
+ function getCSSValuesForProperty(property: UTF8String): string[];
+ function getChildrenForNode(node: Node, showingAnonymousContent: boolean, includeAssignedNodes: boolean): Node[];
+ function getContentState(element: Element): number;
+ function getOverflowingChildrenOfElement(element: Element): NodeList;
+ function getParentForNode(node: Node, showingAnonymousContent: boolean): Node | null;
+ function getRegisteredCssHighlights(document: Document, activeOnly?: boolean): string[];
+ function getRelativeRuleLine(rule: CSSRule): number;
+ function getRuleColumn(rule: CSSRule): number;
+ function getRuleLine(rule: CSSRule): number;
+ function getSubpropertiesForCSSProperty(property: UTF8String): string[];
+ function getUsedFontFaces(range: Range, maxRanges?: number, skipCollapsedWhitespace?: boolean): InspectorFontFace[];
+ function hasPseudoClassLock(element: Element, pseudoClass: string): boolean;
+ function hasRulesModifiedByCSSOM(sheet: CSSStyleSheet): boolean;
+ function isCustomElementName(name: string | null, namespaceURI: string | null): boolean;
+ function isElementThemed(element: Element): boolean;
+ function isIgnorableWhitespace(dataNode: CharacterData): boolean;
+ function isInheritedProperty(document: Document, property: UTF8String): boolean;
+ function isValidCSSColor(colorString: UTF8String): boolean;
+ function parseStyleSheet(sheet: CSSStyleSheet, input: UTF8String): void;
+ function removeContentState(element: Element, state: number, clearActiveDocument?: boolean): boolean;
+ function removePseudoClassLock(element: Element, pseudoClass: string): void;
+ function rgbToColorName(r: number, g: number, b: number): UTF8String;
+ function setContentState(element: Element, state: number): boolean;
+ function supports(conditionText: UTF8String, options?: SupportsOptions): boolean;
+}
+
+// @ts-ignore
+declare namespace IOUtils {
+ var profileBeforeChange: any;
+ var sendTelemetry: any;
+ function computeHexDigest(path: string, method: HashAlgorithm): Promise<UTF8String>;
+ function copy(sourcePath: string, destPath: string, options?: CopyOptions): Promise<void>;
+ function createUniqueDirectory(parent: string, prefix: string, permissions?: number): Promise<string>;
+ function createUniqueFile(parent: string, prefix: string, permissions?: number): Promise<string>;
+ function delMacXAttr(path: string, attr: UTF8String): Promise<void>;
+ function exists(path: string): Promise<boolean>;
+ function getChildren(path: string, options?: GetChildrenOptions): Promise<string[]>;
+ function getDirectory(...components: string[]): Promise<nsIFile>;
+ function getFile(...components: string[]): Promise<nsIFile>;
+ function getMacXAttr(path: string, attr: UTF8String): Promise<Uint8Array>;
+ function getWindowsAttributes(path: string): Promise<WindowsFileAttributes>;
+ function hasMacXAttr(path: string, attr: UTF8String): Promise<boolean>;
+ function launchProcess(argv: UnixString[], options: LaunchOptions): number;
+ function makeDirectory(path: string, options?: MakeDirectoryOptions): Promise<void>;
+ function move(sourcePath: string, destPath: string, options?: MoveOptions): Promise<void>;
+ function openFileForSyncReading(path: string): SyncReadFile;
+ function read(path: string, opts?: ReadOptions): Promise<Uint8Array>;
+ function readJSON(path: string, opts?: ReadUTF8Options): Promise<any>;
+ function readUTF8(path: string, opts?: ReadUTF8Options): Promise<UTF8String>;
+ function remove(path: string, options?: RemoveOptions): Promise<void>;
+ function setAccessTime(path: string, access?: number): Promise<number>;
+ function setMacXAttr(path: string, attr: UTF8String, value: Uint8Array): Promise<void>;
+ function setModificationTime(path: string, modification?: number): Promise<number>;
+ function setPermissions(path: string, permissions: number, honorUmask?: boolean): Promise<void>;
+ function setWindowsAttributes(path: string, attrs?: WindowsFileAttributes): Promise<void>;
+ function stat(path: string): Promise<FileInfo>;
+ function write(path: string, data: Uint8Array, options?: WriteOptions): Promise<number>;
+ function writeJSON(path: string, value: any, options?: WriteOptions): Promise<number>;
+ function writeUTF8(path: string, string: UTF8String, options?: WriteOptions): Promise<number>;
+}
+
+declare namespace L10nOverlays {
+ function translateElement(element: Element, translation?: L10nMessage): L10nOverlaysError[] | null;
+}
+
+declare namespace MediaControlService {
+ function generateMediaControlKey(aKey: MediaControlKey): void;
+ function getCurrentActiveMediaMetadata(): MediaMetadataInit;
+ function getCurrentMediaSessionPlaybackState(): MediaSessionPlaybackState;
+}
+
+// @ts-ignore
+declare namespace PathUtils {
+ var localProfileDir: string;
+ var profileDir: string;
+ var tempDir: string;
+ var xulLibraryPath: string;
+ function filename(path: string): string;
+ function getLocalProfileDir(): Promise<string>;
+ function getProfileDir(): Promise<string>;
+ function getTempDir(): Promise<string>;
+ function getXulLibraryPath(): Promise<string>;
+ function isAbsolute(path: string): boolean;
+ function join(...components: string[]): string;
+ function joinRelative(base: string, relativePath: string): string;
+ function normalize(path: string): string;
+ function parent(path: string, depth?: number): string | null;
+ function split(path: string): string[];
+ function splitRelative(path: string, options?: SplitRelativeOptions): string[];
+ function toExtendedWindowsPath(path: string): string;
+ function toFileURI(path: string): UTF8String;
+}
+
+declare namespace PlacesObservers {
+ function addListener(eventTypes: PlacesEventType[], listener: PlacesEventCallback): void;
+ function addListener(eventTypes: PlacesEventType[], listener: PlacesWeakCallbackWrapper): void;
+ function notifyListeners(events: PlacesEvent[]): void;
+ function removeListener(eventTypes: PlacesEventType[], listener: PlacesEventCallback): void;
+ function removeListener(eventTypes: PlacesEventType[], listener: PlacesWeakCallbackWrapper): void;
+}
+
+declare namespace PromiseDebugging {
+ function addUncaughtRejectionObserver(o: UncaughtRejectionObserver): void;
+ function getAllocationStack(p: any): any;
+ function getFullfillmentStack(p: any): any;
+ function getPromiseID(p: any): string;
+ function getRejectionStack(p: any): any;
+ function getState(p: any): PromiseDebuggingStateHolder;
+ function removeUncaughtRejectionObserver(o: UncaughtRejectionObserver): boolean;
+}
+
+declare namespace SessionStoreUtils {
+ function addDynamicFrameFilteredListener(target: EventTarget, type: string, listener: any, useCapture: boolean, mozSystemGroup?: boolean): nsISupports | null;
+ function collectDocShellCapabilities(docShell: nsIDocShell): string;
+ function collectFormData(window: WindowProxy): CollectedData | null;
+ function collectScrollPosition(window: WindowProxy): CollectedData | null;
+ function constructSessionStoreRestoreData(): nsISessionStoreRestoreData;
+ function forEachNonDynamicChildFrame(window: WindowProxy, callback: SessionStoreUtilsFrameCallback): void;
+ function initializeRestore(browsingContext: CanonicalBrowsingContext, data: nsISessionStoreRestoreData | null): Promise<void>;
+ function removeDynamicFrameFilteredListener(target: EventTarget, type: string, listener: nsISupports, useCapture: boolean, mozSystemGroup?: boolean): void;
+ function restoreDocShellCapabilities(docShell: nsIDocShell, disallowCapabilities: string): void;
+ function restoreDocShellState(browsingContext: CanonicalBrowsingContext, url: UTF8String | null, docShellCaps: string | null): Promise<void>;
+ function restoreFormData(document: Document, data?: CollectedData): boolean;
+ function restoreScrollPosition(frame: Window, data?: CollectedData): void;
+ function restoreSessionStorageFromParent(browsingContext: CanonicalBrowsingContext, sessionStorage: Record<UTF8String, Record<string, string>>): void;
+}
+
+// @ts-ignore
+declare namespace TelemetryStopwatch {
+ function cancel(histogram: HistogramID, obj?: any): boolean;
+ function cancelKeyed(histogram: HistogramID, key: HistogramKey, obj?: any): boolean;
+ function finish(histogram: HistogramID, obj?: any, canceledOkay?: boolean): boolean;
+ function finishKeyed(histogram: HistogramID, key: HistogramKey, obj?: any, canceledOkay?: boolean): boolean;
+ function running(histogram: HistogramID, obj?: any): boolean;
+ function runningKeyed(histogram: HistogramID, key: HistogramKey, obj?: any): boolean;
+ function setTestModeEnabled(testing?: boolean): void;
+ function start(histogram: HistogramID, obj?: any, options?: TelemetryStopwatchOptions): boolean;
+ function startKeyed(histogram: HistogramID, key: HistogramKey, obj?: any, options?: TelemetryStopwatchOptions): boolean;
+ function timeElapsed(histogram: HistogramID, obj?: any, canceledOkay?: boolean): number;
+ function timeElapsedKeyed(histogram: HistogramID, key: HistogramKey, obj?: any, canceledOkay?: boolean): number;
+}
+
+declare namespace UniFFIScaffolding {
+ function callAsync(id: UniFFIFunctionId, ...args: UniFFIScaffoldingType[]): Promise<UniFFIScaffoldingCallResult>;
+ function callSync(id: UniFFIFunctionId, ...args: UniFFIScaffoldingType[]): UniFFIScaffoldingCallResult;
+ function deregisterCallbackHandler(interfaceId: UniFFICallbackInterfaceId): void;
+ function readPointer(id: UniFFIPointerId, buff: ArrayBuffer, position: number): UniFFIPointer;
+ function registerCallbackHandler(interfaceId: UniFFICallbackInterfaceId, handler: UniFFICallbackHandler): void;
+ function writePointer(id: UniFFIPointerId, ptr: UniFFIPointer, buff: ArrayBuffer, position: number): void;
+}
+
+declare namespace UserInteraction {
+ function cancel(id: string, obj?: any): boolean;
+ function finish(id: string, obj?: any, additionalText?: UTF8String): boolean;
+ function running(id: string, obj?: any): boolean;
+ function start(id: string, value: UTF8String, obj?: any): boolean;
+ function update(id: string, value: UTF8String, obj?: any): boolean;
+}
+
+interface AnyCallback {
+ (value: any): any;
+}
+
+interface AudioWorkletProcessorConstructor {
+ (options: any): AudioWorkletProcessor;
+}
+
+interface BlobCallback {
+ (blob: Blob | null): void;
+}
+
+interface ChainedOperation {
+ (): any;
+}
+
+interface ConsoleInstanceDumpCallback {
+ (message: string): void;
+}
+
+interface CustomElementConstructor {
+ (): any;
+}
+
+interface CustomElementCreationCallback {
+ (name: string): void;
+}
+
+interface DebuggerNotificationCallback {
+ (n: DebuggerNotification): void;
+}
+
+interface DecodeErrorCallback {
+ (error: DOMException): void;
+}
+
+interface DecodeSuccessCallback {
+ (decodedData: AudioBuffer): void;
+}
+
+interface EncodedVideoChunkOutputCallback {
+ (chunk: EncodedVideoChunk, metadata?: EncodedVideoChunkMetadata): void;
+}
+
+interface ErrorCallback {
+ (err: DOMException): void;
+}
+
+interface FileCallback {
+ (file: File): void;
+}
+
+interface FileSystemEntriesCallback {
+ (entries: FileSystemEntry[]): void;
+}
+
+interface FileSystemEntryCallback {
+ (entry: FileSystemEntry): void;
+}
+
+interface FontFaceSetForEachCallback {
+ (value: FontFace, key: FontFace, set: FontFaceSet): void;
+}
+
+interface FrameRequestCallback {
+ (time: DOMHighResTimeStamp): void;
+}
+
+interface FunctionStringCallback {
+ (data: string): void;
+}
+
+interface GenerateAssertionCallback {
+ (contents: string, origin: string, options: RTCIdentityProviderOptions): RTCIdentityAssertionResult | PromiseLike<RTCIdentityAssertionResult>;
+}
+
+interface IdleRequestCallback {
+ (deadline: IdleDeadline): void;
+}
+
+interface InstallTriggerCallback {
+ (url: string, status: number): void;
+}
+
+interface IntersectionCallback {
+ (entries: IntersectionObserverEntry[], observer: IntersectionObserver): void;
+}
+
+interface LockGrantedCallback {
+ (lock: Lock | null): any;
+}
+
+interface MediaSessionActionHandler {
+ (details: MediaSessionActionDetails): void;
+}
+
+interface MutationCallback {
+ (mutations: MutationRecord[], observer: MutationObserver): void;
+}
+
+interface NavigatorUserMediaErrorCallback {
+ (error: MediaStreamError): void;
+}
+
+interface NavigatorUserMediaSuccessCallback {
+ (stream: MediaStream): void;
+}
+
+interface NotificationPermissionCallback {
+ (permission: NotificationPermission): void;
+}
+
+interface OnBeforeUnloadEventHandlerNonNull {
+ (event: Event): string | null;
+}
+
+interface OnErrorEventHandlerNonNull {
+ (event: Event | string, source?: string, lineno?: number, column?: number, error?: any): any;
+}
+
+interface PeerConnectionLifecycleCallback {
+ (pc: RTCPeerConnection, windowId: number, eventType: RTCLifecycleEvent): void;
+}
+
+interface PerformanceObserverCallback {
+ (entries: PerformanceObserverEntryList, observer: PerformanceObserver): void;
+}
+
+interface PlacesEventCallback {
+ (events: PlacesEvent[]): void;
+}
+
+interface PositionCallback {
+ (position: GeolocationPosition): void;
+}
+
+interface PositionErrorCallback {
+ (positionError: GeolocationPositionError): void;
+}
+
+interface PrintCallback {
+ (ctx: MozCanvasPrintState): void;
+}
+
+interface PromiseDocumentFlushedCallback {
+ (): any;
+}
+
+interface PromiseReturner {
+ (): any;
+}
+
+interface QueuingStrategySize {
+ (chunk?: any): number;
+}
+
+interface RTCPeerConnectionErrorCallback {
+ (error: DOMException): void;
+}
+
+interface RTCSessionDescriptionCallback {
+ (description: RTCSessionDescriptionInit): void;
+}
+
+interface ReportingObserverCallback {
+ (reports: Report[], observer: ReportingObserver): void;
+}
+
+interface ResizeObserverCallback {
+ (entries: ResizeObserverEntry[], observer: ResizeObserver): void;
+}
+
+interface SchedulerPostTaskCallback {
+ (): any;
+}
+
+interface SessionStoreUtilsFrameCallback {
+ (frame: WindowProxy, index: number): void;
+}
+
+interface SetDeleteBooleanCallback {
+ (value: boolean, index: number): void;
+}
+
+interface SetDeleteInterfaceCallback {
+ (value: TestInterfaceObservableArray, index: number): void;
+}
+
+interface SetDeleteObjectCallback {
+ (value: any, index: number): void;
+}
+
+interface TestThrowingCallback {
+ (): void;
+}
+
+interface UniFFICallbackHandler {
+ (objectId: UniFFICallbackObjectHandle, methodId: UniFFICallbackMethodId, aArgs: ArrayBuffer): void;
+}
+
+interface ValidateAssertionCallback {
+ (assertion: string, origin: string): RTCIdentityValidationResult | PromiseLike<RTCIdentityValidationResult>;
+}
+
+interface VideoFrameOutputCallback {
+ (output: VideoFrame): void;
+}
+
+interface VoidFunction {
+ (): void;
+}
+
+interface WebCodecsErrorCallback {
+ (error: DOMException): void;
+}
+
+interface WebExtensionLocalizeCallback {
+ (unlocalizedText: string): string;
+}
+
+interface WebrtcGlobalLoggingCallback {
+ (logMessages: string[]): void;
+}
+
+interface WebrtcGlobalStatisticsCallback {
+ (reports: WebrtcGlobalStatisticsReport): void;
+}
+
+interface WebrtcGlobalStatisticsHistoryCallback {
+ (reports: WebrtcGlobalStatisticsReport): void;
+}
+
+interface WebrtcGlobalStatisticsHistoryPcIdsCallback {
+ (pcIds: string[]): void;
+}
+
+interface XRFrameRequestCallback {
+ (time: DOMHighResTimeStamp, frame: XRFrame): void;
+}
+
+interface mozPacketCallback {
+ (level: number, type: mozPacketDumpType, sending: boolean, packet: ArrayBuffer): void;
+}
+
+interface HTMLElementTagNameMap {
+ "a": HTMLAnchorElement;
+ "abbr": HTMLElement;
+ "address": HTMLElement;
+ "area": HTMLAreaElement;
+ "article": HTMLElement;
+ "aside": HTMLElement;
+ "audio": HTMLAudioElement;
+ "b": HTMLElement;
+ "base": HTMLBaseElement;
+ "bdi": HTMLElement;
+ "bdo": HTMLElement;
+ "blockquote": HTMLQuoteElement;
+ "body": HTMLBodyElement;
+ "br": HTMLBRElement;
+ "button": HTMLButtonElement;
+ "canvas": HTMLCanvasElement;
+ "caption": HTMLTableCaptionElement;
+ "cite": HTMLElement;
+ "code": HTMLElement;
+ "col": HTMLTableColElement;
+ "colgroup": HTMLTableColElement;
+ "data": HTMLDataElement;
+ "datalist": HTMLDataListElement;
+ "dd": HTMLElement;
+ "del": HTMLModElement;
+ "details": HTMLDetailsElement;
+ "dfn": HTMLElement;
+ "dialog": HTMLDialogElement;
+ "div": HTMLDivElement;
+ "dl": HTMLDListElement;
+ "dt": HTMLElement;
+ "em": HTMLElement;
+ "embed": HTMLEmbedElement;
+ "fencedframe": HTMLFencedFrameElement;
+ "fieldset": HTMLFieldSetElement;
+ "figcaption": HTMLElement;
+ "figure": HTMLElement;
+ "footer": HTMLElement;
+ "form": HTMLFormElement;
+ "h1": HTMLHeadingElement;
+ "h2": HTMLHeadingElement;
+ "h3": HTMLHeadingElement;
+ "h4": HTMLHeadingElement;
+ "h5": HTMLHeadingElement;
+ "h6": HTMLHeadingElement;
+ "head": HTMLHeadElement;
+ "header": HTMLElement;
+ "hgroup": HTMLElement;
+ "hr": HTMLHRElement;
+ "html": HTMLHtmlElement;
+ "i": HTMLElement;
+ "iframe": HTMLIFrameElement;
+ "img": HTMLImageElement;
+ "input": HTMLInputElement;
+ "ins": HTMLModElement;
+ "kbd": HTMLElement;
+ "label": HTMLLabelElement;
+ "legend": HTMLLegendElement;
+ "li": HTMLLIElement;
+ "link": HTMLLinkElement;
+ "main": HTMLElement;
+ "map": HTMLMapElement;
+ "mark": HTMLElement;
+ "menu": HTMLMenuElement;
+ "meta": HTMLMetaElement;
+ "meter": HTMLMeterElement;
+ "model": HTMLModelElement;
+ "nav": HTMLElement;
+ "noscript": HTMLElement;
+ "object": HTMLObjectElement;
+ "ol": HTMLOListElement;
+ "optgroup": HTMLOptGroupElement;
+ "option": HTMLOptionElement;
+ "output": HTMLOutputElement;
+ "p": HTMLParagraphElement;
+ "picture": HTMLPictureElement;
+ "portal": HTMLPortalElement;
+ "pre": HTMLPreElement;
+ "progress": HTMLProgressElement;
+ "q": HTMLQuoteElement;
+ "rp": HTMLElement;
+ "rt": HTMLElement;
+ "ruby": HTMLElement;
+ "s": HTMLElement;
+ "samp": HTMLElement;
+ "script": HTMLScriptElement;
+ "search": HTMLElement;
+ "section": HTMLElement;
+ "select": HTMLSelectElement;
+ "slot": HTMLSlotElement;
+ "small": HTMLElement;
+ "source": HTMLSourceElement;
+ "span": HTMLSpanElement;
+ "strong": HTMLElement;
+ "style": HTMLStyleElement;
+ "sub": HTMLElement;
+ "summary": HTMLElement;
+ "sup": HTMLElement;
+ "table": HTMLTableElement;
+ "tbody": HTMLTableSectionElement;
+ "td": HTMLTableCellElement;
+ "template": HTMLTemplateElement;
+ "textarea": HTMLTextAreaElement;
+ "tfoot": HTMLTableSectionElement;
+ "th": HTMLTableCellElement;
+ "thead": HTMLTableSectionElement;
+ "time": HTMLTimeElement;
+ "title": HTMLTitleElement;
+ "tr": HTMLTableRowElement;
+ "track": HTMLTrackElement;
+ "u": HTMLElement;
+ "ul": HTMLUListElement;
+ "var": HTMLElement;
+ "video": HTMLVideoElement;
+ "wbr": HTMLElement;
+}
+
+interface HTMLElementDeprecatedTagNameMap {
+ "acronym": HTMLElement;
+ "applet": HTMLUnknownElement;
+ "basefont": HTMLElement;
+ "bgsound": HTMLUnknownElement;
+ "big": HTMLElement;
+ "blink": HTMLUnknownElement;
+ "center": HTMLElement;
+ "dir": HTMLDirectoryElement;
+ "font": HTMLFontElement;
+ "frame": HTMLFrameElement;
+ "frameset": HTMLFrameSetElement;
+ "isindex": HTMLUnknownElement;
+ "keygen": HTMLUnknownElement;
+ "listing": HTMLPreElement;
+ "marquee": HTMLMarqueeElement;
+ "menuitem": HTMLElement;
+ "multicol": HTMLUnknownElement;
+ "nextid": HTMLUnknownElement;
+ "nobr": HTMLElement;
+ "noembed": HTMLElement;
+ "noframes": HTMLElement;
+ "param": HTMLParamElement;
+ "plaintext": HTMLElement;
+ "rb": HTMLElement;
+ "rtc": HTMLElement;
+ "spacer": HTMLUnknownElement;
+ "strike": HTMLElement;
+ "tt": HTMLElement;
+ "xmp": HTMLPreElement;
+}
+
+interface SVGElementTagNameMap {
+ "a": SVGAElement;
+ "animate": SVGAnimateElement;
+ "animateMotion": SVGAnimateMotionElement;
+ "animateTransform": SVGAnimateTransformElement;
+ "circle": SVGCircleElement;
+ "clipPath": SVGClipPathElement;
+ "defs": SVGDefsElement;
+ "desc": SVGDescElement;
+ "ellipse": SVGEllipseElement;
+ "feBlend": SVGFEBlendElement;
+ "feColorMatrix": SVGFEColorMatrixElement;
+ "feComponentTransfer": SVGFEComponentTransferElement;
+ "feComposite": SVGFECompositeElement;
+ "feConvolveMatrix": SVGFEConvolveMatrixElement;
+ "feDiffuseLighting": SVGFEDiffuseLightingElement;
+ "feDisplacementMap": SVGFEDisplacementMapElement;
+ "feDistantLight": SVGFEDistantLightElement;
+ "feDropShadow": SVGFEDropShadowElement;
+ "feFlood": SVGFEFloodElement;
+ "feFuncA": SVGFEFuncAElement;
+ "feFuncB": SVGFEFuncBElement;
+ "feFuncG": SVGFEFuncGElement;
+ "feFuncR": SVGFEFuncRElement;
+ "feGaussianBlur": SVGFEGaussianBlurElement;
+ "feImage": SVGFEImageElement;
+ "feMerge": SVGFEMergeElement;
+ "feMergeNode": SVGFEMergeNodeElement;
+ "feMorphology": SVGFEMorphologyElement;
+ "feOffset": SVGFEOffsetElement;
+ "fePointLight": SVGFEPointLightElement;
+ "feSpecularLighting": SVGFESpecularLightingElement;
+ "feSpotLight": SVGFESpotLightElement;
+ "feTile": SVGFETileElement;
+ "feTurbulence": SVGFETurbulenceElement;
+ "filter": SVGFilterElement;
+ "foreignObject": SVGForeignObjectElement;
+ "g": SVGGElement;
+ "image": SVGImageElement;
+ "line": SVGLineElement;
+ "linearGradient": SVGLinearGradientElement;
+ "marker": SVGMarkerElement;
+ "mask": SVGMaskElement;
+ "metadata": SVGMetadataElement;
+ "mpath": SVGMPathElement;
+ "path": SVGPathElement;
+ "pattern": SVGPatternElement;
+ "polygon": SVGPolygonElement;
+ "polyline": SVGPolylineElement;
+ "radialGradient": SVGRadialGradientElement;
+ "rect": SVGRectElement;
+ "script": SVGScriptElement;
+ "set": SVGSetElement;
+ "stop": SVGStopElement;
+ "style": SVGStyleElement;
+ "svg": SVGSVGElement;
+ "switch": SVGSwitchElement;
+ "symbol": SVGSymbolElement;
+ "text": SVGTextElement;
+ "textPath": SVGTextPathElement;
+ "title": SVGTitleElement;
+ "tspan": SVGTSpanElement;
+ "use": SVGUseElement;
+ "view": SVGViewElement;
+}
+
+interface MathMLElementTagNameMap {
+ "annotation": MathMLElement;
+ "annotation-xml": MathMLElement;
+ "maction": MathMLElement;
+ "math": MathMLElement;
+ "merror": MathMLElement;
+ "mfrac": MathMLElement;
+ "mi": MathMLElement;
+ "mmultiscripts": MathMLElement;
+ "mn": MathMLElement;
+ "mo": MathMLElement;
+ "mover": MathMLElement;
+ "mpadded": MathMLElement;
+ "mphantom": MathMLElement;
+ "mprescripts": MathMLElement;
+ "mroot": MathMLElement;
+ "mrow": MathMLElement;
+ "ms": MathMLElement;
+ "mspace": MathMLElement;
+ "msqrt": MathMLElement;
+ "mstyle": MathMLElement;
+ "msub": MathMLElement;
+ "msubsup": MathMLElement;
+ "msup": MathMLElement;
+ "mtable": MathMLElement;
+ "mtd": MathMLElement;
+ "mtext": MathMLElement;
+ "mtr": MathMLElement;
+ "munder": MathMLElement;
+ "munderover": MathMLElement;
+ "semantics": MathMLElement;
+}
+
+/** @deprecated Directly use HTMLElementTagNameMap or SVGElementTagNameMap as appropriate, instead. */
+type ElementTagNameMap = HTMLElementTagNameMap & Pick<SVGElementTagNameMap, Exclude<keyof SVGElementTagNameMap, keyof HTMLElementTagNameMap>>;
+
+declare var Audio: {
+ new(src?: string): HTMLAudioElement;
+};
+declare var Image: {
+ new(width?: number, height?: number): HTMLImageElement;
+};
+declare var Option: {
+ new(text?: string, value?: string, defaultSelected?: boolean, selected?: boolean): HTMLOptionElement;
+};
+declare var webkitSpeechGrammar: {
+ new(): SpeechGrammar;
+};
+declare var webkitSpeechGrammarList: {
+ new(): SpeechGrammarList;
+};
+declare var webkitSpeechRecognition: {
+ new(): SpeechRecognition;
+};
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletGlobalScope/currentFrame) */
+declare var currentFrame: number;
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletGlobalScope/currentTime) */
+declare var currentTime: number;
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletGlobalScope/sampleRate) */
+declare var sampleRate: number;
+/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletGlobalScope/registerProcessor) */
+declare function registerProcessor(name: string, processorCtor: AudioWorkletProcessorConstructor): void;
+// @ts-ignore
+declare function dump(str?: string): void;
+type AlgorithmIdentifier = any;
+type Base64URLString = string;
+type BinaryData = ArrayBuffer | ArrayBufferView;
+type BlobPart = BufferSource | Blob | UTF8String;
+type BodyInit = XMLHttpRequestBodyInit;
+type COSEAlgorithmIdentifier = number;
+type CanvasImageSource = HTMLOrSVGImageElement | HTMLCanvasElement | HTMLVideoElement | OffscreenCanvas | ImageBitmap | VideoFrame;
+type CanvasSource = HTMLCanvasElement | OffscreenCanvas;
+type ClipboardItemData = Promise<ClipboardItemDataType>;
+type ClipboardItemDataType = string | Blob;
+type ClipboardItems = ClipboardItem[];
+type CollectedFormDataValue = any;
+type ConstrainBoolean = boolean | ConstrainBooleanParameters;
+type ConstrainDOMString = string | string[] | ConstrainDOMStringParameters;
+type ConstrainDouble = number | ConstrainDoubleRange;
+type ConstrainLong = number | ConstrainLongRange;
+type DOMHighResTimeStamp = number;
+type DOMTimeStamp = number;
+type EpochTimeStamp = number;
+type FileSystemWriteChunkType = BufferSource | Blob | UTF8String | WriteParams;
+type Float32List = Float32Array | GLfloat[];
+type FormDataEntryValue = Blob | Directory | string;
+type FormDataValue = any;
+type GLbitfield = number;
+type GLboolean = boolean;
+type GLclampf = number;
+type GLenum = number;
+type GLfloat = number;
+type GLint = number;
+type GLint64 = number;
+type GLintptr = number;
+type GLsizei = number;
+type GLsizeiptr = number;
+type GLuint = number;
+type GLuint64 = number;
+type GPUBindingResource = GPUSampler | GPUTextureView | GPUBufferBinding;
+type GPUBufferDynamicOffset = number;
+type GPUBufferUsageFlags = number;
+type GPUColor = number[] | GPUColorDict;
+type GPUColorWriteFlags = number;
+type GPUDepthBias = number;
+type GPUExtent3D = GPUIntegerCoordinate[] | GPUExtent3DDict;
+type GPUFlagsConstant = number;
+type GPUIndex32 = number;
+type GPUIntegerCoordinate = number;
+type GPUIntegerCoordinateOut = number;
+type GPUMapModeFlags = number;
+type GPUOrigin2D = GPUIntegerCoordinate[] | GPUOrigin2DDict;
+type GPUOrigin3D = GPUIntegerCoordinate[] | GPUOrigin3DDict;
+type GPUSampleMask = number;
+type GPUShaderStageFlags = number;
+type GPUSignedOffset32 = number;
+type GPUSize32 = number;
+type GPUSize32Out = number;
+type GPUSize64 = number;
+type GPUSize64Out = number;
+type GPUStencilValue = number;
+type GPUTextureUsageFlags = number;
+type GeometryNode = Text | Element | Document;
+type HTMLOrSVGImageElement = HTMLImageElement | SVGImageElement;
+type HeadersInit = string[][] | Record<string, string>;
+type HistogramID = string;
+type HistogramKey = string;
+type ImageBitmapSource = CanvasImageSource | Blob | CanvasRenderingContext2D | ImageData;
+type Int32List = Int32Array | GLint[];
+type KeyFormat = string;
+type KeyType = string;
+type KeyUsage = string;
+type L10nArgs = Record<UTF8String, UTF8String | number | null>;
+type L10nKey = UTF8String | L10nIdArgs;
+type L10nResourceId = UTF8String | ResourceId;
+type MatchGlobOrString = MatchGlob | UTF8String;
+type MatchPatternSetOrStringSequence = MatchPatternSet | string[];
+type MessageEventSource = WindowProxy | MessagePort | ServiceWorker;
+type NodeId = number;
+type NodeSize = number;
+type OffscreenRenderingContext = OffscreenCanvasRenderingContext2D | ImageBitmapRenderingContext | WebGLRenderingContext | WebGL2RenderingContext | GPUCanvasContext;
+type OnBeforeUnloadEventHandler = OnBeforeUnloadEventHandlerNonNull | null;
+type OnErrorEventHandler = OnErrorEventHandlerNonNull | null;
+type PerformanceEntryList = PerformanceEntry[];
+type PushMessageDataInit = BufferSource | string;
+type RTCRtpTransform = RTCRtpScriptTransform;
+type ReadableStreamReader = ReadableStreamDefaultReader | ReadableStreamBYOBReader;
+type ReportList = Report[];
+type RequestInfo = Request | string;
+type SanitizerAttribute = string | SanitizerAttributeNamespace;
+type SanitizerElement = string | SanitizerElementNamespace;
+type SanitizerElementWithAttributes = string | SanitizerElementNamespaceWithAttributes;
+type SanitizerInput = DocumentFragment | Document;
+type StringOrOpenPopupOptions = string | OpenPopupOptions;
+type StructuredClonable = any;
+type Uint32List = Uint32Array | GLuint[];
+type UniFFICallbackInterfaceId = number;
+type UniFFICallbackMethodId = number;
+type UniFFICallbackObjectHandle = number;
+type UniFFIFunctionId = number;
+type UniFFIPointerId = number;
+type UniFFIScaffoldingType = number | ArrayBuffer | UniFFIPointer;
+type UnixString = UTF8String | Uint8Array;
+type UnrestrictedDoubleOrKeyframeAnimationOptions = number | KeyframeAnimationOptions;
+type VibratePattern = number | number[];
+type XMLHttpRequestBodyInit = Blob | BufferSource | FormData | URLSearchParams | string;
+type XRWebGLRenderingContext = WebGLRenderingContext | WebGL2RenderingContext;
+type XSLTParameterValue = number | boolean | string | Node | Node[] | XPathResult;
+type nsContentPolicyType = number;
+type AlignSetting = "center" | "end" | "left" | "right" | "start";
+type AlphaOption = "discard" | "keep";
+type AnimationPlayState = "finished" | "idle" | "paused" | "running";
+type AnimationReplaceState = "active" | "persisted" | "removed";
+type AudioContextState = "closed" | "running" | "suspended";
+type AutoKeyword = "auto";
+type AutoplayPolicy = "allowed" | "allowed-muted" | "disallowed";
+type AutoplayPolicyMediaType = "audiocontext" | "mediaelement";
+type AvcBitstreamFormat = "annexb" | "avc";
+type Base64URLDecodePadding = "ignore" | "reject" | "require";
+type BinaryType = "arraybuffer" | "blob";
+type BiquadFilterType = "allpass" | "bandpass" | "highpass" | "highshelf" | "lowpass" | "lowshelf" | "notch" | "peaking";
+type CSSBoxType = "border" | "content" | "margin" | "padding";
+type CSSStyleSheetParsingMode = "agent" | "author" | "user";
+type CacheStorageNamespace = "chrome" | "content";
+type CallbackDebuggerNotificationPhase = "post" | "pre";
+type CanvasDirection = "inherit" | "ltr" | "rtl";
+type CanvasFontKerning = "auto" | "none" | "normal";
+type CanvasFontStretch = "condensed" | "expanded" | "extra-condensed" | "extra-expanded" | "normal" | "semi-condensed" | "semi-expanded" | "ultra-condensed" | "ultra-expanded";
+type CanvasFontVariantCaps = "all-petite-caps" | "all-small-caps" | "normal" | "petite-caps" | "small-caps" | "titling-caps" | "unicase";
+type CanvasLineCap = "butt" | "round" | "square";
+type CanvasLineJoin = "bevel" | "miter" | "round";
+type CanvasTextAlign = "center" | "end" | "left" | "right" | "start";
+type CanvasTextBaseline = "alphabetic" | "bottom" | "hanging" | "ideographic" | "middle" | "top";
+type CanvasTextRendering = "auto" | "geometricPrecision" | "optimizeLegibility" | "optimizeSpeed";
+type CanvasWindingRule = "evenodd" | "nonzero";
+type CaretChangedReason = "dragcaret" | "longpressonemptycontent" | "presscaret" | "releasecaret" | "scroll" | "taponcaret" | "updateposition" | "visibilitychange";
+type ChannelCountMode = "clamped-max" | "explicit" | "max";
+type ChannelInterpretation = "discrete" | "speakers";
+type CheckerboardReason = "recent" | "severe";
+type ClientType = "all" | "serviceworker" | "sharedworker" | "window" | "worker";
+type CodecState = "closed" | "configured" | "unconfigured";
+type ColorGamut = "p3" | "rec2020" | "srgb";
+type ColorSpaceConversion = "default" | "none";
+type CompositeOperation = "accumulate" | "add" | "replace";
+type CompressionFormat = "deflate" | "deflate-raw" | "gzip";
+type ConnectionType = "bluetooth" | "cellular" | "ethernet" | "none" | "other" | "unknown" | "wifi";
+type ConsoleLevel = "error" | "log" | "warning";
+type ConsoleLogLevel = "All" | "Clear" | "Debug" | "Dir" | "Dirxml" | "Error" | "Group" | "GroupEnd" | "Info" | "Log" | "Off" | "Profile" | "ProfileEnd" | "Time" | "TimeEnd" | "TimeLog" | "Trace" | "Warn";
+type ContentScriptRunAt = "document_end" | "document_idle" | "document_start";
+type CredentialMediationRequirement = "conditional" | "optional" | "required" | "silent";
+type DOMRequestReadyState = "done" | "pending";
+type DebuggerNotificationType = "cancelAnimationFrame" | "clearInterval" | "clearTimeout" | "domEvent" | "requestAnimationFrame" | "requestAnimationFrameCallback" | "setInterval" | "setIntervalCallback" | "setTimeout" | "setTimeoutCallback";
+type DecoderDoctorReportType = "mediacannotinitializepulseaudio" | "mediacannotplaynodecoders" | "mediadecodeerror" | "mediadecodewarning" | "medianodecoders" | "mediaplatformdecodernotfound" | "mediaunsupportedlibavcodec" | "mediawidevinenowmf" | "mediawmfneeded";
+type DirectionSetting = "" | "lr" | "rl";
+type DisplayMode = "browser" | "fullscreen" | "minimal-ui" | "standalone";
+type DistanceModelType = "exponential" | "inverse" | "linear";
+type EncodedVideoChunkType = "delta" | "key";
+type EndingType = "native" | "transparent";
+type EventCallbackDebuggerNotificationType = "global" | "node" | "websocket" | "worker" | "xhr";
+type FetchState = "aborted" | "complete" | "errored" | "requesting" | "responding";
+type FileSystemHandleKind = "directory" | "file";
+type FileType = "directory" | "other" | "regular";
+type FillMode = "auto" | "backwards" | "both" | "forwards" | "none";
+type FlexItemClampState = "clamped_to_max" | "clamped_to_min" | "unclamped";
+type FlexLineGrowthState = "growing" | "shrinking";
+type FlexPhysicalDirection = "horizontal-lr" | "horizontal-rl" | "vertical-bt" | "vertical-tb";
+type FontFaceLoadStatus = "error" | "loaded" | "loading" | "unloaded";
+type FontFaceSetLoadStatus = "loaded" | "loading";
+type FrameType = "auxiliary" | "nested" | "none" | "top-level";
+type GPUAddressMode = "clamp-to-edge" | "mirror-repeat" | "repeat";
+type GPUAutoLayoutMode = "auto";
+type GPUBlendFactor = "constant" | "dst" | "dst-alpha" | "one" | "one-minus-constant" | "one-minus-dst" | "one-minus-dst-alpha" | "one-minus-src" | "one-minus-src-alpha" | "src" | "src-alpha" | "src-alpha-saturated" | "zero";
+type GPUBlendOperation = "add" | "max" | "min" | "reverse-subtract" | "subtract";
+type GPUBufferBindingType = "read-only-storage" | "storage" | "uniform";
+type GPUBufferMapState = "mapped" | "pending" | "unmapped";
+type GPUCanvasAlphaMode = "opaque" | "premultiplied";
+type GPUCompareFunction = "always" | "equal" | "greater" | "greater-equal" | "less" | "less-equal" | "never" | "not-equal";
+type GPUCompilationMessageType = "error" | "info" | "warning";
+type GPUCullMode = "back" | "front" | "none";
+type GPUErrorFilter = "internal" | "out-of-memory" | "validation";
+type GPUFeatureName = "bgra8unorm-storage" | "depth-clip-control" | "depth32float-stencil8" | "float32-filterable" | "indirect-first-instance" | "rg11b10ufloat-renderable" | "shader-f16" | "texture-compression-astc" | "texture-compression-bc" | "texture-compression-etc2" | "timestamp-query";
+type GPUFilterMode = "linear" | "nearest";
+type GPUFrontFace = "ccw" | "cw";
+type GPUIndexFormat = "uint16" | "uint32";
+type GPULoadOp = "clear" | "load";
+type GPUMipmapFilterMode = "linear" | "nearest";
+type GPUPowerPreference = "high-performance" | "low-power";
+type GPUPrimitiveTopology = "line-list" | "line-strip" | "point-list" | "triangle-list" | "triangle-strip";
+type GPUSamplerBindingType = "comparison" | "filtering" | "non-filtering";
+type GPUStencilOperation = "decrement-clamp" | "decrement-wrap" | "increment-clamp" | "increment-wrap" | "invert" | "keep" | "replace" | "zero";
+type GPUStorageTextureAccess = "write-only";
+type GPUStoreOp = "discard" | "store";
+type GPUTextureAspect = "all" | "depth-only" | "stencil-only";
+type GPUTextureDimension = "1d" | "2d" | "3d";
+type GPUTextureFormat = "bc1-rgba-unorm" | "bc1-rgba-unorm-srgb" | "bc2-rgba-unorm" | "bc2-rgba-unorm-srgb" | "bc3-rgba-unorm" | "bc3-rgba-unorm-srgb" | "bc4-r-snorm" | "bc4-r-unorm" | "bc5-rg-snorm" | "bc5-rg-unorm" | "bc6h-rgb-float" | "bc6h-rgb-ufloat" | "bc7-rgba-unorm" | "bc7-rgba-unorm-srgb" | "bgra8unorm" | "bgra8unorm-srgb" | "depth16unorm" | "depth24plus" | "depth24plus-stencil8" | "depth32float" | "depth32float-stencil8" | "r16float" | "r16sint" | "r16uint" | "r32float" | "r32sint" | "r32uint" | "r8sint" | "r8snorm" | "r8uint" | "r8unorm" | "rg11b10ufloat" | "rg16float" | "rg16sint" | "rg16uint" | "rg32float" | "rg32sint" | "rg32uint" | "rg8sint" | "rg8snorm" | "rg8uint" | "rg8unorm" | "rgb10a2unorm" | "rgb9e5ufloat" | "rgba16float" | "rgba16sint" | "rgba16uint" | "rgba32float" | "rgba32sint" | "rgba32uint" | "rgba8sint" | "rgba8snorm" | "rgba8uint" | "rgba8unorm" | "rgba8unorm-srgb" | "stencil8";
+type GPUTextureSampleType = "depth" | "float" | "sint" | "uint" | "unfilterable-float";
+type GPUTextureViewDimension = "1d" | "2d" | "2d-array" | "3d" | "cube" | "cube-array";
+type GPUVertexFormat = "float16x2" | "float16x4" | "float32" | "float32x2" | "float32x3" | "float32x4" | "sint16x2" | "sint16x4" | "sint32" | "sint32x2" | "sint32x3" | "sint32x4" | "sint8x2" | "sint8x4" | "snorm16x2" | "snorm16x4" | "snorm8x2" | "snorm8x4" | "uint16x2" | "uint16x4" | "uint32" | "uint32x2" | "uint32x3" | "uint32x4" | "uint8x2" | "uint8x4" | "unorm16x2" | "unorm16x4" | "unorm8x2" | "unorm8x4";
+type GPUVertexStepMode = "instance" | "vertex";
+type GamepadHand = "" | "left" | "right";
+type GamepadHapticActuatorType = "vibration";
+type GamepadLightIndicatorType = "on-off" | "rgb";
+type GamepadMappingType = "" | "standard" | "xr-standard";
+type GetUserMediaRequestType = "getusermedia" | "recording-device-stopped" | "selectaudiooutput";
+type GridDeclaration = "explicit" | "implicit";
+type GridTrackState = "removed" | "repeat" | "static";
+type HardwareAcceleration = "no-preference" | "prefer-hardware" | "prefer-software";
+type HashAlgorithm = "sha1" | "sha256" | "sha384" | "sha512";
+type HdrMetadataType = "smpteSt2086" | "smpteSt2094-10" | "smpteSt2094-40";
+type HeadersGuardEnum = "immutable" | "none" | "request" | "request-no-cors" | "response";
+type HighlightType = "grammar-error" | "highlight" | "spelling-error";
+type IDBCursorDirection = "next" | "nextunique" | "prev" | "prevunique";
+type IDBRequestReadyState = "done" | "pending";
+type IDBTransactionMode = "cleanup" | "readonly" | "readwrite" | "readwriteflush" | "versionchange";
+type ImageOrientation = "flipY" | "from-image" | "none";
+type InspectorPropertyType = "color" | "gradient" | "timing-function";
+type IterationCompositeOperation = "accumulate" | "replace";
+type JSRFPTarget = "RoundWindowSize" | "SiteSpecificZoom";
+type L10nFileSourceHasFileStatus = "missing" | "present" | "unknown";
+type LatencyMode = "quality" | "realtime";
+type LineAlignSetting = "center" | "end" | "start";
+type LockMode = "exclusive" | "shared";
+type MIDIPortConnectionState = "closed" | "open" | "pending";
+type MIDIPortDeviceState = "connected" | "disconnected";
+type MIDIPortType = "input" | "output";
+type MediaControlKey = "focus" | "nexttrack" | "pause" | "play" | "playpause" | "previoustrack" | "seekbackward" | "seekforward" | "seekto" | "skipad" | "stop";
+type MediaDecodingType = "file" | "media-source";
+type MediaDeviceKind = "audioinput" | "audiooutput" | "videoinput";
+type MediaEncodingType = "record" | "transmission";
+type MediaKeyMessageType = "individualization-request" | "license-release" | "license-renewal" | "license-request";
+type MediaKeySessionType = "persistent-license" | "temporary";
+type MediaKeyStatus = "expired" | "internal-error" | "output-downscaled" | "output-restricted" | "released" | "status-pending" | "usable";
+type MediaKeysRequirement = "not-allowed" | "optional" | "required";
+type MediaSessionAction = "nexttrack" | "pause" | "play" | "previoustrack" | "seekbackward" | "seekforward" | "seekto" | "skipad" | "stop";
+type MediaSessionPlaybackState = "none" | "paused" | "playing";
+type MediaSourceEndOfStreamError = "decode" | "network";
+type MediaSourceReadyState = "closed" | "ended" | "open";
+type MediaStreamTrackState = "ended" | "live";
+type MozContentPolicyType = "beacon" | "csp_report" | "fetch" | "font" | "image" | "imageset" | "main_frame" | "media" | "object" | "object_subrequest" | "other" | "ping" | "script" | "speculative" | "stylesheet" | "sub_frame" | "web_manifest" | "websocket" | "xml_dtd" | "xmlhttprequest" | "xslt";
+type MozUrlClassificationFlags = "any_basic_tracking" | "any_social_tracking" | "any_strict_tracking" | "cryptomining" | "cryptomining_content" | "emailtracking" | "emailtracking_content" | "fingerprinting" | "fingerprinting_content" | "socialtracking" | "socialtracking_facebook" | "socialtracking_linkedin" | "socialtracking_twitter" | "tracking" | "tracking_ad" | "tracking_analytics" | "tracking_content" | "tracking_social";
+type NavigationType = "back_forward" | "navigate" | "prerender" | "reload";
+type NotificationDirection = "auto" | "ltr" | "rtl";
+type NotificationPermission = "default" | "denied" | "granted";
+type OffscreenRenderingContextId = "2d" | "bitmaprenderer" | "webgl" | "webgl2" | "webgpu";
+type OrientationLockType = "any" | "landscape" | "landscape-primary" | "landscape-secondary" | "natural" | "portrait" | "portrait-primary" | "portrait-secondary";
+type OrientationType = "landscape-primary" | "landscape-secondary" | "portrait-primary" | "portrait-secondary";
+type OscillatorType = "custom" | "sawtooth" | "sine" | "square" | "triangle";
+type OverSampleType = "2x" | "4x" | "none";
+type OverridableErrorCategory = "domain-mismatch" | "expired-or-not-yet-valid" | "trust-error" | "unset";
+type PCError = "InvalidAccessError" | "InvalidCharacterError" | "InvalidModificationError" | "InvalidStateError" | "NotReadableError" | "NotSupportedError" | "OperationError" | "RangeError" | "SyntaxError" | "TypeError" | "UnknownError";
+type PCObserverStateType = "ConnectionState" | "IceConnectionState" | "IceGatheringState" | "None" | "SignalingState";
+type PanningModelType = "HRTF" | "equalpower";
+type PaymentComplete = "fail" | "success" | "unknown";
+type PaymentShippingType = "delivery" | "pickup" | "shipping";
+type PermissionName = "geolocation" | "midi" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock" | "storage-access";
+type PermissionState = "denied" | "granted" | "prompt";
+type PermitUnloadAction = "dontUnload" | "prompt" | "unload";
+type PlacesEventType = "bookmark-added" | "bookmark-guid-changed" | "bookmark-keyword-changed" | "bookmark-moved" | "bookmark-removed" | "bookmark-tags-changed" | "bookmark-time-changed" | "bookmark-title-changed" | "bookmark-url-changed" | "favicon-changed" | "history-cleared" | "none" | "page-removed" | "page-title-changed" | "page-visited" | "pages-rank-changed" | "purge-caches";
+type PlaybackDirection = "alternate" | "alternate-reverse" | "normal" | "reverse";
+type PopupBlockerState = "openAbused" | "openAllowed" | "openBlocked" | "openControlled" | "openOverridden";
+type PositionAlignSetting = "auto" | "center" | "line-left" | "line-right";
+type PredefinedColorSpace = "display-p3" | "srgb";
+type PrefersColorSchemeOverride = "dark" | "light" | "none";
+type PremultiplyAlpha = "default" | "none" | "premultiply";
+type PresentationStyle = "attachment" | "inline" | "unspecified";
+type PromiseDebuggingState = "fulfilled" | "pending" | "rejected";
+type PushEncryptionKeyName = "auth" | "p256dh";
+type RTCBundlePolicy = "balanced" | "max-bundle" | "max-compat";
+type RTCCodecType = "decode" | "encode";
+type RTCDataChannelState = "closed" | "closing" | "connecting" | "open";
+type RTCDataChannelType = "arraybuffer" | "blob";
+type RTCDtlsTransportState = "closed" | "connected" | "connecting" | "failed" | "new";
+type RTCEncodedVideoFrameType = "delta" | "empty" | "key";
+type RTCIceCandidateType = "host" | "prflx" | "relay" | "srflx";
+type RTCIceConnectionState = "checking" | "closed" | "completed" | "connected" | "disconnected" | "failed" | "new";
+type RTCIceCredentialType = "password";
+type RTCIceGatheringState = "complete" | "gathering" | "new";
+type RTCIceTransportPolicy = "all" | "relay";
+type RTCLifecycleEvent = "connectionstatechange" | "iceconnectionstatechange" | "icegatheringstatechange" | "initialized";
+type RTCPeerConnectionState = "closed" | "connected" | "connecting" | "disconnected" | "failed" | "new";
+type RTCPriorityType = "high" | "low" | "medium" | "very-low";
+type RTCRtpTransceiverDirection = "inactive" | "recvonly" | "sendonly" | "sendrecv" | "stopped";
+type RTCSctpTransportState = "closed" | "connected" | "connecting";
+type RTCSdpType = "answer" | "offer" | "pranswer" | "rollback";
+type RTCSignalingState = "closed" | "have-local-offer" | "have-local-pranswer" | "have-remote-offer" | "have-remote-pranswer" | "stable";
+type RTCStatsIceCandidatePairState = "cancelled" | "failed" | "frozen" | "inprogress" | "succeeded" | "waiting";
+type RTCStatsType = "candidate-pair" | "codec" | "csrc" | "data-channel" | "inbound-rtp" | "local-candidate" | "media-source" | "outbound-rtp" | "peer-connection" | "remote-candidate" | "remote-inbound-rtp" | "remote-outbound-rtp" | "session" | "track" | "transport";
+type ReadableStreamReaderMode = "byob";
+type RecordingState = "inactive" | "paused" | "recording";
+type ReferrerPolicy = "" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";
+type RequestCache = "default" | "force-cache" | "no-cache" | "no-store" | "only-if-cached" | "reload";
+type RequestCredentials = "include" | "omit" | "same-origin";
+type RequestDestination = "" | "audio" | "audioworklet" | "document" | "embed" | "font" | "frame" | "iframe" | "image" | "manifest" | "object" | "paintworklet" | "report" | "script" | "sharedworker" | "style" | "track" | "video" | "worker" | "xslt";
+type RequestMode = "cors" | "navigate" | "no-cors" | "same-origin";
+type RequestRedirect = "error" | "follow" | "manual";
+type ResizeObserverBoxOptions = "border-box" | "content-box" | "device-pixel-content-box";
+type ResponseType = "basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect";
+type ScreenColorGamut = "p3" | "rec2020" | "srgb";
+type ScrollBehavior = "auto" | "instant" | "smooth";
+type ScrollLogicalPosition = "center" | "end" | "nearest" | "start";
+type ScrollRestoration = "auto" | "manual";
+type ScrollSetting = "" | "up";
+type ScrollState = "started" | "stopped";
+type SecurityPolicyViolationEventDisposition = "enforce" | "report";
+type SelectionMode = "end" | "preserve" | "select" | "start";
+type SelectorWarningKind = "UnconstrainedHas";
+type ServiceWorkerState = "activated" | "activating" | "installed" | "installing" | "parsed" | "redundant";
+type ServiceWorkerUpdateViaCache = "all" | "imports" | "none";
+type ShadowRootMode = "closed" | "open";
+type SlotAssignmentMode = "manual" | "named";
+type SocketReadyState = "closed" | "closing" | "halfclosed" | "open" | "opening";
+type SourceBufferAppendMode = "segments" | "sequence";
+type SpeechRecognitionErrorCode = "aborted" | "audio-capture" | "bad-grammar" | "language-not-supported" | "network" | "no-speech" | "not-allowed" | "service-not-allowed";
+type SpeechSynthesisErrorCode = "audio-busy" | "audio-hardware" | "canceled" | "interrupted" | "invalid-argument" | "language-unavailable" | "network" | "synthesis-failed" | "synthesis-unavailable" | "text-too-long" | "voice-unavailable";
+type StreamFilterStatus = "closed" | "disconnected" | "failed" | "finishedtransferringdata" | "suspended" | "transferringdata" | "uninitialized";
+type StringType = "inline" | "literal" | "other" | "stringbuffer";
+type SupportedType = "application/xhtml+xml" | "application/xml" | "image/svg+xml" | "text/html" | "text/xml";
+type TCPReadyState = "closed" | "closing" | "connecting" | "open";
+type TCPSocketBinaryType = "arraybuffer" | "string";
+type TaskPriority = "background" | "user-blocking" | "user-visible";
+type TextTrackKind = "captions" | "chapters" | "descriptions" | "metadata" | "subtitles";
+type TextTrackMode = "disabled" | "hidden" | "showing";
+type TouchEventsOverride = "disabled" | "enabled" | "none";
+type TransferFunction = "hlg" | "pq" | "srgb";
+type UniFFIScaffoldingCallCode = "error" | "internal-error" | "success";
+type VRDisplayEventReason = "mounted" | "navigation" | "requested" | "unmounted";
+type VREye = "left" | "right";
+type VideoColorPrimaries = "bt2020" | "bt470bg" | "bt709" | "smpte170m" | "smpte432";
+type VideoEncoderBitrateMode = "constant" | "quantizer" | "variable";
+type VideoMatrixCoefficients = "bt2020-ncl" | "bt470bg" | "bt709" | "rgb" | "smpte170m";
+type VideoPixelFormat = "BGRA" | "BGRX" | "I420" | "I420A" | "I422" | "I444" | "NV12" | "RGBA" | "RGBX";
+type VideoTransferCharacteristics = "bt709" | "hlg" | "iec61966-2-1" | "linear" | "pq" | "smpte170m";
+type VisibilityState = "hidden" | "visible";
+type WakeLockType = "screen";
+type WebGLPowerPreference = "default" | "high-performance" | "low-power";
+type WebIDLProcType = "browser" | "extension" | "file" | "forkServer" | "gmpPlugin" | "gpu" | "ipdlUnitTest" | "preallocated" | "privilegedabout" | "privilegedmozilla" | "rdd" | "remoteSandboxBroker" | "socket" | "unknown" | "utility" | "vr" | "web" | "webIsolated" | "webServiceWorker" | "withCoopCoep";
+type WebIDLUtilityActorName = "audioDecoder_AppleMedia" | "audioDecoder_Generic" | "audioDecoder_WMF" | "jSOracle" | "mfMediaEngineCDM" | "unknown" | "windowsFileDialog" | "windowsUtils";
+type WebTransportCongestionControl = "default" | "low-latency" | "throughput";
+type WebTransportErrorSource = "session" | "stream";
+type WebTransportReliabilityMode = "pending" | "reliable-only" | "supports-unreliable";
+type WireframeRectType = "background" | "image" | "text" | "unknown";
+type WorkerType = "classic" | "module";
+type WriteCommandType = "seek" | "truncate" | "write";
+type WriteMode = "append" | "appendOrCreate" | "create" | "overwrite";
+type XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text";
+type XREye = "left" | "none" | "right";
+type XRHandedness = "left" | "none" | "right";
+type XRReferenceSpaceType = "bounded-floor" | "local" | "local-floor" | "unbounded" | "viewer";
+type XRSessionMode = "immersive-ar" | "immersive-vr" | "inline";
+type XRTargetRayMode = "gaze" | "screen" | "tracked-pointer";
+type XRVisibilityState = "hidden" | "visible" | "visible-blurred";
+type mozPacketDumpType = "rtcp" | "rtp" | "srtcp" | "srtp";
+
+/**
+ * Note: Without this, TS autoconfig in VSCode picks up types from node_modules.
+ * https://github.com/DefinitelyTyped/DefinitelyTyped/blob/2e4a01d2be/types/node/globals.d.ts#L3-L6
+ */
+declare var onmessage: EventHandler;
+
+declare var crypto: GlobalCrypto["crypto"];
+// @ts-ignore
+declare var atob: WindowOrWorkerGlobalScope["atob"];
+// @ts-ignore
+declare var btoa: WindowOrWorkerGlobalScope["btoa"];
+// @ts-ignore
+declare var fetch: WindowOrWorkerGlobalScope["fetch"];
+
+type ContentSecurityPolicy = nsIContentSecurityPolicy;
+type Cookie = nsICookie;
+type InputStream = nsIInputStream;
+type LoadContext = nsILoadContext;
+type LoadInfo = nsILoadInfo;
+type MozChannel = nsIChannel;
+type MozTreeView = nsITreeView;
+type OutputStream = nsIOutputStream;
+type Principal = nsIPrincipal;
+type RemoteTab = nsIRemoteTab;
+type StackFrame = nsIStackFrame;
+type URI = nsIURI;
+type XULControllers = nsIControllers;
+
+type EventHandler = Function;
+type EventListenerOrEventListenerObject = EventListener;
+type HTMLCollectionOf<T> = HTMLCollection;
+type JSString = string;
+
+// Unresolved types!
+type BufferSource = any;
+type DOMApplication = any;
+type UTF8String = string;
+type WindowProxy = Window;
diff --git a/tools/@types/lib.gecko.nsresult.d.ts b/tools/@types/lib.gecko.nsresult.d.ts
new file mode 100644
index 0000000000..e4acb48a4b
--- /dev/null
+++ b/tools/@types/lib.gecko.nsresult.d.ts
@@ -0,0 +1,666 @@
+/**
+ * NOTE: Do not modify this file by hand.
+ * Content was generated from xpc.msg and error_list.json.
+ */
+
+interface nsIXPCComponents_Results {
+
+ // Error Message definitions.
+
+ // xpconnect specific codes (from nsIXPConnect.h)
+
+ /** Not enough arguments */
+ NS_ERROR_XPC_NOT_ENOUGH_ARGS: 0x80570001;
+
+ /** 'Out' argument must be an object */
+ NS_ERROR_XPC_NEED_OUT_OBJECT: 0x80570002;
+
+ /** Cannot set 'value' property of 'out' argument */
+ NS_ERROR_XPC_CANT_SET_OUT_VAL: 0x80570003;
+
+ /** Component returned failure code: */
+ NS_ERROR_XPC_NATIVE_RETURNED_FAILURE: 0x80570004;
+
+ /** Cannot find interface information */
+ NS_ERROR_XPC_CANT_GET_INTERFACE_INFO: 0x80570005;
+
+ /** Cannot find interface information for parameter */
+ NS_ERROR_XPC_CANT_GET_PARAM_IFACE_INFO: 0x80570006;
+
+ /** Cannot find method information */
+ NS_ERROR_XPC_CANT_GET_METHOD_INFO: 0x80570007;
+
+ /** Unexpected error in XPConnect */
+ NS_ERROR_XPC_UNEXPECTED: 0x80570008;
+
+ /** Could not convert JavaScript argument */
+ NS_ERROR_XPC_BAD_CONVERT_JS: 0x80570009;
+
+ /** Could not convert Native argument */
+ NS_ERROR_XPC_BAD_CONVERT_NATIVE: 0x8057000a;
+
+ /** Could not convert JavaScript argument (NULL value cannot be used for a C++ reference type) */
+ NS_ERROR_XPC_BAD_CONVERT_JS_NULL_REF: 0x8057000b;
+
+ /** Illegal operation on WrappedNative prototype object */
+ NS_ERROR_XPC_BAD_OP_ON_WN_PROTO: 0x8057000c;
+
+ /** Cannot convert WrappedNative to function */
+ NS_ERROR_XPC_CANT_CONVERT_WN_TO_FUN: 0x8057000d;
+
+ /** Cannot define new property in a WrappedNative */
+ NS_ERROR_XPC_CANT_DEFINE_PROP_ON_WN: 0x8057000e;
+
+ /** Cannot place watchpoints on WrappedNative object static properties */
+ NS_ERROR_XPC_CANT_WATCH_WN_STATIC: 0x8057000f;
+
+ /** Cannot export a WrappedNative object's static properties */
+ NS_ERROR_XPC_CANT_EXPORT_WN_STATIC: 0x80570010;
+
+ /** nsIXPCScriptable::Call failed */
+ NS_ERROR_XPC_SCRIPTABLE_CALL_FAILED: 0x80570011;
+
+ /** nsIXPCScriptable::Construct failed */
+ NS_ERROR_XPC_SCRIPTABLE_CTOR_FAILED: 0x80570012;
+
+ /** Cannot use wrapper as function unless it implements nsIXPCScriptable */
+ NS_ERROR_XPC_CANT_CALL_WO_SCRIPTABLE: 0x80570013;
+
+ /** Cannot use wrapper as constructor unless it implements nsIXPCScriptable */
+ NS_ERROR_XPC_CANT_CTOR_WO_SCRIPTABLE: 0x80570014;
+
+ /** ComponentManager::CreateInstance returned failure code: */
+ NS_ERROR_XPC_CI_RETURNED_FAILURE: 0x80570015;
+
+ /** ServiceManager::GetService returned failure code: */
+ NS_ERROR_XPC_GS_RETURNED_FAILURE: 0x80570016;
+
+ /** Invalid ClassID or ContractID */
+ NS_ERROR_XPC_BAD_CID: 0x80570017;
+
+ /** Invalid InterfaceID */
+ NS_ERROR_XPC_BAD_IID: 0x80570018;
+
+ /** Cannot create wrapper around native interface */
+ NS_ERROR_XPC_CANT_CREATE_WN: 0x80570019;
+
+ /** JavaScript component threw exception */
+ NS_ERROR_XPC_JS_THREW_EXCEPTION: 0x8057001a;
+
+ /** JavaScript component threw a native object that is not an exception */
+ NS_ERROR_XPC_JS_THREW_NATIVE_OBJECT: 0x8057001b;
+
+ /** JavaScript component threw a JavaScript object */
+ NS_ERROR_XPC_JS_THREW_JS_OBJECT: 0x8057001c;
+
+ /** JavaScript component threw a null value as an exception */
+ NS_ERROR_XPC_JS_THREW_NULL: 0x8057001d;
+
+ /** JavaScript component threw a string as an exception */
+ NS_ERROR_XPC_JS_THREW_STRING: 0x8057001e;
+
+ /** JavaScript component threw a number as an exception */
+ NS_ERROR_XPC_JS_THREW_NUMBER: 0x8057001f;
+
+ /** JavaScript component caused a JavaScript error */
+ NS_ERROR_XPC_JAVASCRIPT_ERROR: 0x80570020;
+
+ /** JavaScript component caused a JavaScript error (detailed report attached) */
+ NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS: 0x80570021;
+
+ /** Cannot convert primitive JavaScript value into an array */
+ NS_ERROR_XPC_CANT_CONVERT_PRIMITIVE_TO_ARRAY: 0x80570022;
+
+ /** Cannot convert JavaScript object into an array */
+ NS_ERROR_XPC_CANT_CONVERT_OBJECT_TO_ARRAY: 0x80570023;
+
+ /** JavaScript Array does not have as many elements as indicated by size argument */
+ NS_ERROR_XPC_NOT_ENOUGH_ELEMENTS_IN_ARRAY: 0x80570024;
+
+ /** Cannot find array information */
+ NS_ERROR_XPC_CANT_GET_ARRAY_INFO: 0x80570025;
+
+ /** JavaScript String does not have as many characters as indicated by size argument */
+ NS_ERROR_XPC_NOT_ENOUGH_CHARS_IN_STRING: 0x80570026;
+
+ /** Security Manager vetoed action */
+ NS_ERROR_XPC_SECURITY_MANAGER_VETO: 0x80570027;
+
+ /** Failed to build a wrapper because the interface that was not declared [scriptable] */
+ NS_ERROR_XPC_INTERFACE_NOT_SCRIPTABLE: 0x80570028;
+
+ /** Failed to build a wrapper because the interface does not inherit from nsISupports */
+ NS_ERROR_XPC_INTERFACE_NOT_FROM_NSISUPPORTS: 0x80570029;
+
+ /** Property is a constant and cannot be changed */
+ NS_ERROR_XPC_CANT_SET_READ_ONLY_CONSTANT: 0x8057002b;
+
+ /** Property is a read only attribute and cannot be changed */
+ NS_ERROR_XPC_CANT_SET_READ_ONLY_ATTRIBUTE: 0x8057002c;
+
+ /** Property is an interface method and cannot be changed */
+ NS_ERROR_XPC_CANT_SET_READ_ONLY_METHOD: 0x8057002d;
+
+ /** Cannot add property to WrappedNative object */
+ NS_ERROR_XPC_CANT_ADD_PROP_TO_WRAPPED_NATIVE: 0x8057002e;
+
+ /** Call to nsIXPCScriptable interface for WrappedNative failed unexpecedly */
+ NS_ERROR_XPC_CALL_TO_SCRIPTABLE_FAILED: 0x8057002f;
+
+ /** JavaScript component does not have a method named: */
+ NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED: 0x80570030;
+
+ /** Bad ID string */
+ NS_ERROR_XPC_BAD_ID_STRING: 0x80570031;
+
+ /** Bad initializer name in Constructor - Component has no method with that name */
+ NS_ERROR_XPC_BAD_INITIALIZER_NAME: 0x80570032;
+
+ /** Operation failed because the XPConnect subsystem has been shutdown */
+ NS_ERROR_XPC_HAS_BEEN_SHUTDOWN: 0x80570033;
+
+ /** Cannot modify properties of a WrappedNative */
+ NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN: 0x80570034;
+
+ /** Could not convert JavaScript argument - 0 was passed, expected object. Did you mean null? */
+ NS_ERROR_XPC_BAD_CONVERT_JS_ZERO_ISNOT_NULL: 0x80570035;
+
+ // common global codes (from nsError.h)
+
+ /** Success */
+ NS_OK: 0x0;
+
+ /** Component not initialized */
+ NS_ERROR_NOT_INITIALIZED: 0xc1f30001;
+
+ /** Component already initialized */
+ NS_ERROR_ALREADY_INITIALIZED: 0xc1f30002;
+
+ /** Method not implemented */
+ NS_ERROR_NOT_IMPLEMENTED: 0x80004001;
+
+ /** Component does not have requested interface */
+ NS_NOINTERFACE: 0x80004002;
+
+ /** Component does not have requested interface */
+ NS_ERROR_NO_INTERFACE: 0x80004002;
+
+ /** Illegal value */
+ NS_ERROR_ILLEGAL_VALUE: 0x80070057;
+
+ /** Invalid pointer */
+ NS_ERROR_INVALID_POINTER: 0x80070057;
+
+ /** Null pointer */
+ NS_ERROR_NULL_POINTER: 0x80070057;
+
+ /** Abort */
+ NS_ERROR_ABORT: 0x80004004;
+
+ /** Failure */
+ NS_ERROR_FAILURE: 0x80004005;
+
+ /** Unexpected error */
+ NS_ERROR_UNEXPECTED: 0x8000ffff;
+
+ /** Out of Memory */
+ NS_ERROR_OUT_OF_MEMORY: 0x8007000e;
+
+ /** Invalid argument */
+ NS_ERROR_INVALID_ARG: 0x80070057;
+
+ /** Component is not available */
+ NS_ERROR_NOT_AVAILABLE: 0x80040111;
+
+ /** Factory not registered */
+ NS_ERROR_FACTORY_NOT_REGISTERED: 0x80040154;
+
+ /** Factory not registered (may be tried again) */
+ NS_ERROR_FACTORY_REGISTER_AGAIN: 0x80040155;
+
+ /** Factory not loaded */
+ NS_ERROR_FACTORY_NOT_LOADED: 0x800401f8;
+
+ /** Factory does not support signatures */
+ NS_ERROR_FACTORY_NO_SIGNATURE_SUPPORT: 0xc1f30101;
+
+ /** Factory already exists */
+ NS_ERROR_FACTORY_EXISTS: 0xc1f30100;
+
+ // added from nsError.h on Feb 28 2001...
+
+ /** Stream closed */
+ NS_BASE_STREAM_CLOSED: 0x80470002;
+
+ /** Error from the operating system */
+ NS_BASE_STREAM_OSERROR: 0x80470003;
+
+ /** Illegal arguments */
+ NS_BASE_STREAM_ILLEGAL_ARGS: 0x80470004;
+
+ /** No converter for unichar streams */
+ NS_BASE_STREAM_NO_CONVERTER: 0x80470005;
+
+ /** Bad converter for unichar streams */
+ NS_BASE_STREAM_BAD_CONVERSION: 0x80470006;
+
+ /** Stream would block */
+ NS_BASE_STREAM_WOULD_BLOCK: 0x80470007;
+
+ /** File error: Unrecognized path */
+ NS_ERROR_FILE_UNRECOGNIZED_PATH: 0x80520001;
+
+ /** File error: Unresolvable symlink */
+ NS_ERROR_FILE_UNRESOLVABLE_SYMLINK: 0x80520002;
+
+ /** File error: Execution failed */
+ NS_ERROR_FILE_EXECUTION_FAILED: 0x80520003;
+
+ /** File error: Unknown type */
+ NS_ERROR_FILE_UNKNOWN_TYPE: 0x80520004;
+
+ /** File error: Destination not dir */
+ NS_ERROR_FILE_DESTINATION_NOT_DIR: 0x80520005;
+
+ /** File error: Copy or move failed */
+ NS_ERROR_FILE_COPY_OR_MOVE_FAILED: 0x80520007;
+
+ /** File error: Already exists */
+ NS_ERROR_FILE_ALREADY_EXISTS: 0x80520008;
+
+ /** File error: Invalid path */
+ NS_ERROR_FILE_INVALID_PATH: 0x80520009;
+
+ /** File error: Corrupted */
+ NS_ERROR_FILE_CORRUPTED: 0x8052000b;
+
+ /** File error: Not directory */
+ NS_ERROR_FILE_NOT_DIRECTORY: 0x8052000c;
+
+ /** File error: Is directory */
+ NS_ERROR_FILE_IS_DIRECTORY: 0x8052000d;
+
+ /** File error: Is locked */
+ NS_ERROR_FILE_IS_LOCKED: 0x8052000e;
+
+ /** File error: Too big */
+ NS_ERROR_FILE_TOO_BIG: 0x8052000f;
+
+ /** File error: No device space */
+ NS_ERROR_FILE_NO_DEVICE_SPACE: 0x80520010;
+
+ /** File error: Name too long */
+ NS_ERROR_FILE_NAME_TOO_LONG: 0x80520011;
+
+ /** File error: Not found */
+ NS_ERROR_FILE_NOT_FOUND: 0x80520012;
+
+ /** File error: Read only */
+ NS_ERROR_FILE_READ_ONLY: 0x80520013;
+
+ /** File error: Dir not empty */
+ NS_ERROR_FILE_DIR_NOT_EMPTY: 0x80520014;
+
+ /** File error: Access denied */
+ NS_ERROR_FILE_ACCESS_DENIED: 0x80520015;
+
+ // added from nsError.h on Sept 6 2001...
+
+ /** Data conversion error */
+ NS_ERROR_CANNOT_CONVERT_DATA: 0x80460001;
+
+ /** Can not modify immutable data container */
+ NS_ERROR_OBJECT_IS_IMMUTABLE: 0x80460002;
+
+ /** Data conversion failed because significant data would be lost */
+ NS_ERROR_LOSS_OF_SIGNIFICANT_DATA: 0x80460003;
+
+ /** Data conversion succeeded but data was rounded to fit */
+ NS_SUCCESS_LOSS_OF_INSIGNIFICANT_DATA: 0x460001;
+
+ // network related codes (from nsNetError.h)
+
+ /** The async request failed for some unknown reason */
+ NS_BINDING_FAILED: 0x804b0001;
+
+ /** The async request failed because it was aborted by some user action */
+ NS_BINDING_ABORTED: 0x804b0002;
+
+ /** The async request has been redirected to a different async request */
+ NS_BINDING_REDIRECTED: 0x804b0003;
+
+ /** The async request has been retargeted to a different handler */
+ NS_BINDING_RETARGETED: 0x804b0004;
+
+ /** The URI is malformed */
+ NS_ERROR_MALFORMED_URI: 0x804b000a;
+
+ /** The URI scheme corresponds to an unknown protocol handler */
+ NS_ERROR_UNKNOWN_PROTOCOL: 0x804b0012;
+
+ /** Channel opened successfully but no data will be returned */
+ NS_ERROR_NO_CONTENT: 0x804b0011;
+
+ /** The requested action could not be completed while the object is busy */
+ NS_ERROR_IN_PROGRESS: 0x804b000f;
+
+ /** Channel is already open */
+ NS_ERROR_ALREADY_OPENED: 0x804b0049;
+
+ /** The content encoding of the source document is incorrect */
+ NS_ERROR_INVALID_CONTENT_ENCODING: 0x804b001b;
+
+ /** Corrupted content received from server (potentially MIME type mismatch because of 'X-Content-Type-Options: nosniff') */
+ NS_ERROR_CORRUPTED_CONTENT: 0x804b001d;
+
+ /** Couldn't extract first component from potentially corrupted header field */
+ NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY: 0x804b0022;
+
+ /** The connection is already established */
+ NS_ERROR_ALREADY_CONNECTED: 0x804b000b;
+
+ /** The connection does not exist */
+ NS_ERROR_NOT_CONNECTED: 0x804b000c;
+
+ /** The connection was refused */
+ NS_ERROR_CONNECTION_REFUSED: 0x804b000d;
+
+ /** User refused navigation to potentially unsafe URL with embedded credentials/superfluos authentication */
+ NS_ERROR_SUPERFLUOS_AUTH: 0x804b005b;
+
+ // Error codes return from the proxy
+
+ /** The connection to the proxy server was refused */
+ NS_ERROR_PROXY_CONNECTION_REFUSED: 0x804b0048;
+
+ /** The proxy requires authentication */
+ NS_ERROR_PROXY_AUTHENTICATION_FAILED: 0x804b057f;
+
+ /** The request failed on the proxy */
+ NS_ERROR_PROXY_BAD_GATEWAY: 0x804b05de;
+
+ /** The request timed out on the proxy */
+ NS_ERROR_PROXY_GATEWAY_TIMEOUT: 0x804b05e0;
+
+ /** Sending too many requests to a proxy */
+ NS_ERROR_PROXY_TOO_MANY_REQUESTS: 0x804b0595;
+
+ /** The proxy does not support the version of the HTTP request */
+ NS_ERROR_PROXY_VERSION_NOT_SUPPORTED: 0x804b05e1;
+
+ /** The user is banned from the proxy */
+ NS_ERROR_PROXY_FORBIDDEN: 0x804b057b;
+
+ /** The proxy is not available */
+ NS_ERROR_PROXY_SERVICE_UNAVAILABLE: 0x804b05df;
+
+ /** The desired destination is unavailable for legal reasons */
+ NS_ERROR_PROXY_UNAVAILABLE_FOR_LEGAL_REASONS: 0x804b05ab;
+
+ /** The connection has timed out */
+ NS_ERROR_NET_TIMEOUT: 0x804b000e;
+
+ /** The request has been cancelled because of a timeout */
+ NS_ERROR_NET_TIMEOUT_EXTERNAL: 0x804b0055;
+
+ /** The requested action could not be completed in the offline state */
+ NS_ERROR_OFFLINE: 0x804b0010;
+
+ /** Establishing a connection to an unsafe or otherwise banned port was prohibited */
+ NS_ERROR_PORT_ACCESS_NOT_ALLOWED: 0x804b0013;
+
+ /** The connection was established, but no data was ever received */
+ NS_ERROR_NET_RESET: 0x804b0014;
+
+ /** The connection was established, but the data transfer was interrupted */
+ NS_ERROR_NET_INTERRUPT: 0x804b0047;
+
+ /** A transfer was only partially done when it completed */
+ NS_ERROR_NET_PARTIAL_TRANSFER: 0x804b004c;
+
+ /** There has been a http3 protocol error */
+ NS_ERROR_NET_HTTP3_PROTOCOL_ERROR: 0x804b0054;
+
+ /** This request is not resumable, but it was tried to resume it, or to request resume-specific data */
+ NS_ERROR_NOT_RESUMABLE: 0x804b0019;
+
+ /** It was attempted to resume the request, but the entity has changed in the meantime */
+ NS_ERROR_ENTITY_CHANGED: 0x804b0020;
+
+ /** The request failed as a result of a detected redirection loop */
+ NS_ERROR_REDIRECT_LOOP: 0x804b001f;
+
+ /** The request failed because the content type returned by the server was not a type expected by the channel */
+ NS_ERROR_UNSAFE_CONTENT_TYPE: 0x804b004a;
+
+ /** The load caused an error page to be displayed. */
+ NS_ERROR_LOAD_SHOWED_ERRORPAGE: 0x804b004d;
+
+ /** The request was blocked by a policy set by the system administrator. */
+ NS_ERROR_BLOCKED_BY_POLICY: 0x80780003;
+
+ /** The lookup of the hostname failed */
+ NS_ERROR_UNKNOWN_HOST: 0x804b001e;
+
+ /** The DNS lookup queue is full */
+ NS_ERROR_DNS_LOOKUP_QUEUE_FULL: 0x804b0021;
+
+ /** The lookup of the proxy hostname failed */
+ NS_ERROR_UNKNOWN_PROXY_HOST: 0x804b002a;
+
+ /** The specified socket type does not exist */
+ NS_ERROR_UNKNOWN_SOCKET_TYPE: 0x804b0033;
+
+ /** The specified socket type could not be created */
+ NS_ERROR_SOCKET_CREATE_FAILED: 0x804b0034;
+
+ /** The specified socket address type is not supported */
+ NS_ERROR_SOCKET_ADDRESS_NOT_SUPPORTED: 0x804b0035;
+
+ /** Some other socket is already using the specified address. */
+ NS_ERROR_SOCKET_ADDRESS_IN_USE: 0x804b0036;
+
+ /** Cache key could not be found */
+ NS_ERROR_CACHE_KEY_NOT_FOUND: 0x804b003d;
+
+ /** Cache data is a stream */
+ NS_ERROR_CACHE_DATA_IS_STREAM: 0x804b003e;
+
+ /** Cache data is not a stream */
+ NS_ERROR_CACHE_DATA_IS_NOT_STREAM: 0x804b003f;
+
+ /** Cache entry exists but needs to be validated first */
+ NS_ERROR_CACHE_WAIT_FOR_VALIDATION: 0x804b0040;
+
+ /** Cache entry has been doomed */
+ NS_ERROR_CACHE_ENTRY_DOOMED: 0x804b0041;
+
+ /** Read access to cache denied */
+ NS_ERROR_CACHE_READ_ACCESS_DENIED: 0x804b0042;
+
+ /** Write access to cache denied */
+ NS_ERROR_CACHE_WRITE_ACCESS_DENIED: 0x804b0043;
+
+ /** Cache is currently in use */
+ NS_ERROR_CACHE_IN_USE: 0x804b0044;
+
+ /** Document does not exist in cache */
+ NS_ERROR_DOCUMENT_NOT_CACHED: 0x804b0046;
+
+ /** The requested number of domain levels exceeds those present in the host string */
+ NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS: 0x804b0050;
+
+ /** The host string is an IP address */
+ NS_ERROR_HOST_IS_IP_ADDRESS: 0x804b0051;
+
+ /** Can't access a wrapped JS object from a different thread */
+ NS_ERROR_NOT_SAME_THREAD: 0x80460004;
+
+ // storage related codes (from mozStorage.h)
+
+ /** SQLite database connection is busy */
+ NS_ERROR_STORAGE_BUSY: 0x80630001;
+
+ /** SQLite encountered an IO error */
+ NS_ERROR_STORAGE_IOERR: 0x80630002;
+
+ /** SQLite database operation failed because a constraint was violated */
+ NS_ERROR_STORAGE_CONSTRAINT: 0x80630003;
+
+ // plugin related codes (from nsPluginError.h)
+
+ /** Clearing site data by time range not supported by plugin */
+ NS_ERROR_PLUGIN_TIME_RANGE_NOT_SUPPORTED: 0x804c03eb;
+
+ // character converter related codes
+
+ /** The input characters have illegal sequences */
+ NS_ERROR_ILLEGAL_INPUT: 0x8050000e;
+
+ // Codes related to signd jars
+
+ /** The JAR is not signed. */
+ NS_ERROR_SIGNED_JAR_NOT_SIGNED: 0x80680001;
+
+ /** An entry in the JAR has been modified after the JAR was signed. */
+ NS_ERROR_SIGNED_JAR_MODIFIED_ENTRY: 0x80680002;
+
+ /** An entry in the JAR has not been signed. */
+ NS_ERROR_SIGNED_JAR_UNSIGNED_ENTRY: 0x80680003;
+
+ /** An entry is missing from the JAR file. */
+ NS_ERROR_SIGNED_JAR_ENTRY_MISSING: 0x80680004;
+
+ /** The JAR's signature is wrong. */
+ NS_ERROR_SIGNED_JAR_WRONG_SIGNATURE: 0x80680005;
+
+ /** An entry in the JAR is too large. */
+ NS_ERROR_SIGNED_JAR_ENTRY_TOO_LARGE: 0x80680006;
+
+ /** An entry in the JAR is invalid. */
+ NS_ERROR_SIGNED_JAR_ENTRY_INVALID: 0x80680007;
+
+ /** The JAR's manifest or signature file is invalid. */
+ NS_ERROR_SIGNED_JAR_MANIFEST_INVALID: 0x80680008;
+
+ /** The PKCS#7 signature is malformed or invalid. */
+ NS_ERROR_CMS_VERIFY_NO_CONTENT_INFO: 0x805a0401;
+
+ /** The PKCS#7 information is not signed. */
+ NS_ERROR_CMS_VERIFY_NOT_SIGNED: 0x805a0400;
+
+ // Codes related to signed manifests
+
+ /** The signed app manifest or signature file is invalid. */
+ NS_ERROR_SIGNED_APP_MANIFEST_INVALID: 0x806b0001;
+
+ // Codes for printing-related errors.
+
+ /** No printers available. */
+ NS_ERROR_GFX_PRINTER_NO_PRINTER_AVAILABLE: 0x80480001;
+
+ /** The selected printer could not be found. */
+ NS_ERROR_GFX_PRINTER_NAME_NOT_FOUND: 0x80480002;
+
+ /** Failed to open output file for print to file. */
+ NS_ERROR_GFX_PRINTER_COULD_NOT_OPEN_FILE: 0x80480003;
+
+ /** Printing failed while starting the print job. */
+ NS_ERROR_GFX_PRINTER_STARTDOC: 0x80480004;
+
+ /** Printing failed while completing the print job. */
+ NS_ERROR_GFX_PRINTER_ENDDOC: 0x80480005;
+
+ /** Printing failed while starting a new page. */
+ NS_ERROR_GFX_PRINTER_STARTPAGE: 0x80480006;
+
+ /** Cannot print this document yet, it is still being loaded. */
+ NS_ERROR_GFX_PRINTER_DOC_IS_BUSY: 0x80480007;
+
+ // Codes related to content
+
+ /** The process that hosted this content has crashed. */
+ NS_ERROR_CONTENT_CRASHED: 0x805e0010;
+
+ /** The process that hosted this frame has crashed. */
+ NS_ERROR_FRAME_CRASHED: 0x805e000e;
+
+ /** The process that hosted this content did not have the same buildID as the parent. */
+ NS_ERROR_BUILDID_MISMATCH: 0x805e0011;
+
+ /** The load for this content was blocked. */
+ NS_ERROR_CONTENT_BLOCKED: 0x805e0006;
+
+ // Codes for the JS-implemented Push DOM API. These can be removed as part of bug 1252660.
+
+ /** Invalid raw ECDSA P-256 public key. */
+ NS_ERROR_DOM_PUSH_INVALID_KEY_ERR: 0x806d0005;
+
+ /** A subscription with a different application server key already exists. */
+ NS_ERROR_DOM_PUSH_MISMATCHED_KEY_ERR: 0x806d0006;
+
+ // Codes defined in WebIDL https://heycam.github.io/webidl/#idl-DOMException-error-names
+
+ /** The object can not be found here. */
+ NS_ERROR_DOM_NOT_FOUND_ERR: 0x80530008;
+
+ /** The request is not allowed. */
+ NS_ERROR_DOM_NOT_ALLOWED_ERR: 0x80530021;
+
+ // Codes related to the URIClassifier service
+
+ /** The URI is malware */
+ NS_ERROR_MALWARE_URI: 0x805d001e;
+
+ /** The URI is phishing */
+ NS_ERROR_PHISHING_URI: 0x805d001f;
+
+ /** The URI is tracking */
+ NS_ERROR_TRACKING_URI: 0x805d0022;
+
+ /** The URI is unwanted */
+ NS_ERROR_UNWANTED_URI: 0x805d0023;
+
+ /** The URI is blocked */
+ NS_ERROR_BLOCKED_URI: 0x805d0025;
+
+ /** The URI is harmful */
+ NS_ERROR_HARMFUL_URI: 0x805d0026;
+
+ /** The URI is fingerprinting */
+ NS_ERROR_FINGERPRINTING_URI: 0x805d0029;
+
+ /** The URI is cryptomining */
+ NS_ERROR_CRYPTOMINING_URI: 0x805d002a;
+
+ /** The URI is social tracking */
+ NS_ERROR_SOCIALTRACKING_URI: 0x805d002b;
+
+ /** The URI is email tracking */
+ NS_ERROR_EMAILTRACKING_URI: 0x805d002c;
+
+ // Profile manager error codes
+
+ /** Flushing the profiles to disk would have overwritten changes made elsewhere. */
+ NS_ERROR_DATABASE_CHANGED: 0x805800ca;
+
+ // Codes related to URILoader
+
+ /** The data from a channel has already been parsed and cached so it doesn't need to be reparsed from the original source. */
+ NS_ERROR_PARSED_DATA_CACHED: 0x805d0021;
+
+ /** The async request has been cancelled by another async request */
+ NS_BINDING_CANCELLED_OLD_LOAD: 0x805d0027;
+
+ /** The ProgID classes had not been registered. */
+ NS_ERROR_WDBA_NO_PROGID: 0x80720001;
+
+ /** The existing UserChoice Hash could not be verified. */
+ NS_ERROR_WDBA_HASH_CHECK: 0x80720002;
+
+ /** UserChoice was set, but checking the default did not return our ProgID. */
+ NS_ERROR_WDBA_REJECTED: 0x80720003;
+
+ /** The existing UserChoice Hash was verified, but we're on an older, unsupported Windows build, so do not attempt to update the UserChoice hash. */
+ NS_ERROR_WDBA_BUILD: 0x80720004;
+}
diff --git a/tools/@types/lib.gecko.services.d.ts b/tools/@types/lib.gecko.services.d.ts
new file mode 100644
index 0000000000..98d47379ba
--- /dev/null
+++ b/tools/@types/lib.gecko.services.d.ts
@@ -0,0 +1,61 @@
+/**
+ * NOTE: Do not modify this file by hand.
+ * Content was generated from services.json.
+ */
+
+interface JSServices {
+ DAPTelemetry: nsIDAPTelemetry;
+ appShell: nsIAppShellService;
+ appinfo: nsICrashReporter & nsIXULAppInfo & nsIXULRuntime;
+ blocklist: nsIBlocklistService;
+ cache2: nsICacheStorageService;
+ catMan: nsICategoryManager;
+ clearData: nsIClearDataService;
+ clipboard: nsIClipboard;
+ console: nsIConsoleService;
+ cookieBanners: nsICookieBannerService;
+ cookies: nsICookieManager & nsICookieService;
+ cpmm: ContentProcessMessageManager;
+ dirsvc: nsIDirectoryService & nsIProperties;
+ dns: nsIDNSService;
+ domStorageManager: nsIDOMStorageManager & nsILocalStorageManager;
+ droppedLinkHandler: nsIDroppedLinkHandler;
+ eTLD: nsIEffectiveTLDService;
+ els: nsIEventListenerService;
+ env: nsIEnvironment;
+ focus: nsIFocusManager;
+ fog: nsIFOG;
+ intl: mozIMozIntl;
+ io: nsIIOService & nsINetUtil & nsISpeculativeConnect;
+ loadContextInfo: nsILoadContextInfoFactory;
+ locale: mozILocaleService;
+ logins: nsILoginManager;
+ mm: ChromeMessageBroadcaster;
+ obs: nsIObserverService;
+ perms: nsIPermissionManager;
+ policies: nsIEnterprisePolicies;
+ ppmm: ParentProcessMessageManager;
+ prefs: nsIPrefBranch & nsIPrefService;
+ profiler: nsIProfiler;
+ prompt: nsIPromptService;
+ qms: nsIQuotaManagerService;
+ rfp: nsIRFPService;
+ scriptSecurityManager: nsIScriptSecurityManager;
+ scriptloader: mozIJSSubScriptLoader;
+ search: nsISearchService;
+ sessionStorage: nsISessionStorageService;
+ startup: nsIAppStartup;
+ storage: mozIStorageService;
+ strings: nsIStringBundleService;
+ sysinfo: nsIPropertyBag2 & nsISystemInfo;
+ telemetry: nsITelemetry;
+ textToSubURI: nsITextToSubURI;
+ tm: nsIThreadManager;
+ uriFixup: nsIURIFixup;
+ urlFormatter: nsIURLFormatter;
+ uuid: nsIUUIDGenerator;
+ vc: nsIVersionComparator;
+ wm: nsIWindowMediator;
+ ww: nsIWindowWatcher;
+ xulStore: nsIXULStore;
+}
diff --git a/tools/@types/lib.gecko.xpcom.d.ts b/tools/@types/lib.gecko.xpcom.d.ts
new file mode 100644
index 0000000000..ba4d17fef6
--- /dev/null
+++ b/tools/@types/lib.gecko.xpcom.d.ts
@@ -0,0 +1,16271 @@
+/**
+ * NOTE: Do not modify this file by hand.
+ * Content was generated from source XPCOM .idl files.
+ */
+
+declare global {
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/aboutthirdparty/nsIAboutThirdParty.idl
+
+interface nsIInstalledApplication extends nsISupports {
+ readonly name: string;
+ readonly publisher: string;
+}
+
+interface nsIAboutThirdParty extends nsISupports {
+ readonly ModuleType_Unknown: 1;
+ readonly ModuleType_IME: 2;
+ readonly ModuleType_ShellExtension: 4;
+ readonly ModuleType_BlockedByUser: 8;
+ readonly ModuleType_BlockedByUserAtLaunch: 16;
+
+ lookupModuleType(aLeafName: string): u32;
+ lookupApplication(aModulePath: string): nsIInstalledApplication;
+ readonly isDynamicBlocklistAvailable: boolean;
+ readonly isDynamicBlocklistDisabled: boolean;
+ updateBlocklist(aLeafName: string, aNewBlockStatus: boolean): Promise<any>;
+ collectSystemInfo(): Promise<any>;
+ openAndCloseFileDialogForTesting(aModuleName: string, aInitialDir: string, aFilter: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/aboutwindowsmessages/nsIAboutWindowsMessages.idl
+
+interface nsIAboutWindowsMessages extends nsISupports {
+ getMessages(currentWindow: mozIDOMWindowProxy, messages: OutParam<string[][]>, windowTitles: OutParam<string[]>): void;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibilityService.idl
+
+interface nsIAccessibilityService extends nsISupports {
+ getApplicationAccessible(): nsIAccessible;
+ getAccessibleFor(aNode: Node): nsIAccessible;
+ getAccessibleDescendantFor(aNode: Node): nsIAccessible;
+ getStringRole(aRole: u32): string;
+ getStringStates(aStates: u32, aExtraStates: u32): nsISupports;
+ getStringEventType(aEventType: u32): string;
+ getStringRelationType(aRelationType: u32): string;
+ getAccessibleFromCache(aNode: Node): nsIAccessible;
+ createAccessiblePivot(aRoot: nsIAccessible): nsIAccessiblePivot;
+ createTextLeafPoint(aAccessible: nsIAccessible, aOffset: i32): nsIAccessibleTextLeafPoint;
+ setLogging(aModules: string): void;
+ isLogged(aModule: string): boolean;
+ getConsumers(): string;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessible.idl
+
+interface nsIAccessible extends nsISupports {
+ readonly parent: nsIAccessible;
+ readonly nextSibling: nsIAccessible;
+ readonly previousSibling: nsIAccessible;
+ readonly firstChild: nsIAccessible;
+ readonly lastChild: nsIAccessible;
+ readonly children: nsIArray;
+ readonly childCount: i32;
+ readonly indexInParent: i32;
+ readonly uniqueID: i64;
+ readonly DOMNode: Node;
+ readonly id: string;
+ readonly document: nsIAccessibleDocument;
+ readonly rootDocument: nsIAccessibleDocument;
+ readonly language: string;
+ readonly name: string;
+ readonly value: string;
+ readonly description: string;
+ readonly accessKey: string;
+ readonly keyboardShortcut: string;
+ readonly role: u32;
+ getState(aState: OutParam<u32>, aExtraState: OutParam<u32>): void;
+ readonly focusedChild: nsIAccessible;
+ readonly attributes: nsIPersistentProperties;
+ readonly cache: nsIPersistentProperties;
+ readonly nativeInterface: nsISupports;
+ groupPosition(aGroupLevel: OutParam<i32>, aSimilarItemsInGroup: OutParam<i32>, aPositionInGroup: OutParam<i32>): void;
+ getChildAtPoint(x: i32, y: i32): nsIAccessible;
+ getDeepestChildAtPoint(x: i32, y: i32): nsIAccessible;
+ getDeepestChildAtPointInProcess(x: i32, y: i32): nsIAccessible;
+ getChildAt(aChildIndex: i32): nsIAccessible;
+ getRelationByType(aRelationType: u32): nsIAccessibleRelation;
+ getRelations(): nsIArray;
+ getBounds(x: OutParam<i32>, y: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>): void;
+ getBoundsInCSSPixels(aX: OutParam<i32>, aY: OutParam<i32>, aWidth: OutParam<i32>, aHeight: OutParam<i32>): void;
+ setSelected(isSelected: boolean): void;
+ takeSelection(): void;
+ takeFocus(): void;
+ readonly actionCount: u8;
+ getActionName(index: u8): string;
+ getActionDescription(aIndex: u8): string;
+ doAction(index: u8): void;
+ scrollTo(aScrollType: u32): void;
+ scrollToPoint(coordinateType: u32, x: i32, y: i32): void;
+ announce(announcement: string, priority: u16): void;
+ readonly computedARIARole: string;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleAnnouncementEvent.idl
+
+interface nsIAccessibleAnnouncementEvent extends nsIAccessibleEvent {
+ readonly POLITE: 0;
+ readonly ASSERTIVE: 1;
+
+ readonly announcement: string;
+ readonly priority: u16;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleApplication.idl
+
+interface nsIAccessibleApplication extends nsISupports {
+ readonly appName: string;
+ readonly appVersion: string;
+ readonly platformName: string;
+ readonly platformVersion: string;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleCaretMoveEvent.idl
+
+interface nsIAccessibleCaretMoveEvent extends nsIAccessibleEvent {
+ readonly caretOffset: i32;
+ readonly isSelectionCollapsed: boolean;
+ readonly isAtEndOfLine: boolean;
+ readonly granularity: i32;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleDocument.idl
+
+interface nsIAccessibleDocument extends nsISupports {
+ readonly URL: string;
+ readonly title: string;
+ readonly mimeType: string;
+ readonly docType: string;
+ readonly DOMDocument: Document;
+ readonly window: mozIDOMWindowProxy;
+ readonly parentDocument: nsIAccessibleDocument;
+ readonly childDocumentCount: u32;
+ getChildDocumentAt(index: u32): nsIAccessibleDocument;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleEditableText.idl
+
+interface nsIAccessibleEditableText extends nsISupports {
+ setTextContents(text: string): void;
+ insertText(text: string, position: i32): void;
+ copyText(startPos: i32, endPos: i32): void;
+ cutText(startPos: i32, endPos: i32): void;
+ deleteText(startPos: i32, endPos: i32): void;
+ pasteText(position: i32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleEvent.idl
+
+interface nsIAccessibleEvent extends nsISupports {
+ readonly EVENT_SHOW: 1;
+ readonly EVENT_HIDE: 2;
+ readonly EVENT_REORDER: 3;
+ readonly EVENT_FOCUS: 4;
+ readonly EVENT_STATE_CHANGE: 5;
+ readonly EVENT_NAME_CHANGE: 6;
+ readonly EVENT_DESCRIPTION_CHANGE: 7;
+ readonly EVENT_VALUE_CHANGE: 8;
+ readonly EVENT_SELECTION: 9;
+ readonly EVENT_SELECTION_ADD: 10;
+ readonly EVENT_SELECTION_REMOVE: 11;
+ readonly EVENT_SELECTION_WITHIN: 12;
+ readonly EVENT_ALERT: 13;
+ readonly EVENT_MENU_START: 14;
+ readonly EVENT_MENU_END: 15;
+ readonly EVENT_MENUPOPUP_START: 16;
+ readonly EVENT_MENUPOPUP_END: 17;
+ readonly EVENT_DRAGDROP_START: 18;
+ readonly EVENT_SCROLLING_START: 19;
+ readonly EVENT_SCROLLING_END: 20;
+ readonly EVENT_DOCUMENT_LOAD_COMPLETE: 21;
+ readonly EVENT_DOCUMENT_RELOAD: 22;
+ readonly EVENT_DOCUMENT_LOAD_STOPPED: 23;
+ readonly EVENT_TEXT_ATTRIBUTE_CHANGED: 24;
+ readonly EVENT_TEXT_CARET_MOVED: 25;
+ readonly EVENT_TEXT_INSERTED: 26;
+ readonly EVENT_TEXT_REMOVED: 27;
+ readonly EVENT_TEXT_SELECTION_CHANGED: 28;
+ readonly EVENT_WINDOW_ACTIVATE: 29;
+ readonly EVENT_WINDOW_DEACTIVATE: 30;
+ readonly EVENT_WINDOW_MAXIMIZE: 31;
+ readonly EVENT_WINDOW_MINIMIZE: 32;
+ readonly EVENT_WINDOW_RESTORE: 33;
+ readonly EVENT_OBJECT_ATTRIBUTE_CHANGED: 34;
+ readonly EVENT_TEXT_VALUE_CHANGE: 35;
+ readonly EVENT_SCROLLING: 36;
+ readonly EVENT_ANNOUNCEMENT: 37;
+ readonly EVENT_LIVE_REGION_ADDED: 38;
+ readonly EVENT_LIVE_REGION_REMOVED: 39;
+ readonly EVENT_INNER_REORDER: 40;
+ readonly EVENT_LAST_ENTRY: 41;
+
+ readonly eventType: u32;
+ readonly accessible: nsIAccessible;
+ readonly accessibleDocument: nsIAccessibleDocument;
+ readonly DOMNode: Node;
+ readonly isFromUserInput: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleHideEvent.idl
+
+interface nsIAccessibleHideEvent extends nsIAccessibleEvent {
+ readonly targetParent: nsIAccessible;
+ readonly targetNextSibling: nsIAccessible;
+ readonly targetPrevSibling: nsIAccessible;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleHyperLink.idl
+
+interface nsIAccessibleHyperLink extends nsISupports {
+ readonly startIndex: i32;
+ readonly endIndex: i32;
+ readonly valid: boolean;
+ readonly anchorCount: i32;
+ getURI(index: i32): nsIURI;
+ getAnchor(index: i32): nsIAccessible;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleHyperText.idl
+
+interface nsIAccessibleHyperText extends nsISupports {
+ readonly linkCount: i32;
+ getLinkAt(index: i32): nsIAccessibleHyperLink;
+ getLinkIndex(link: nsIAccessibleHyperLink): i32;
+ getLinkIndexAtOffset(offset: i32): i32;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleImage.idl
+
+interface nsIAccessibleImage extends nsISupports {
+ getImagePosition(coordType: u32, x: OutParam<i32>, y: OutParam<i32>): void;
+ getImageSize(width: OutParam<i32>, height: OutParam<i32>): void;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleObjectAttributeChangedEvent.idl
+
+interface nsIAccessibleObjectAttributeChangedEvent extends nsIAccessibleEvent {
+ readonly changedAttribute: string;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessiblePivot.idl
+
+interface nsIAccessiblePivot extends nsISupports {
+ next(aAnchor: nsIAccessible, aRule: nsIAccessibleTraversalRule, aIncludeStart?: boolean): nsIAccessible;
+ prev(aAnchor: nsIAccessible, aRule: nsIAccessibleTraversalRule, aIncludeStart?: boolean): nsIAccessible;
+ first(aRule: nsIAccessibleTraversalRule): nsIAccessible;
+ last(aRule: nsIAccessibleTraversalRule): nsIAccessible;
+ atPoint(aX: i32, aY: i32, aRule: nsIAccessibleTraversalRule): nsIAccessible;
+}
+
+interface nsIAccessibleTraversalRule extends nsISupports {
+ readonly FILTER_IGNORE: 0;
+ readonly FILTER_MATCH: 1;
+ readonly FILTER_IGNORE_SUBTREE: 2;
+
+ match(aAccessible: nsIAccessible): u16;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleRelation.idl
+
+interface nsIAccessibleRelation extends nsISupports {
+ readonly RELATION_LABELLED_BY: 0;
+ readonly RELATION_LABEL_FOR: 1;
+ readonly RELATION_DESCRIBED_BY: 2;
+ readonly RELATION_DESCRIPTION_FOR: 3;
+ readonly RELATION_NODE_CHILD_OF: 4;
+ readonly RELATION_NODE_PARENT_OF: 5;
+ readonly RELATION_CONTROLLED_BY: 6;
+ readonly RELATION_CONTROLLER_FOR: 7;
+ readonly RELATION_FLOWS_TO: 8;
+ readonly RELATION_FLOWS_FROM: 9;
+ readonly RELATION_MEMBER_OF: 10;
+ readonly RELATION_SUBWINDOW_OF: 11;
+ readonly RELATION_EMBEDS: 12;
+ readonly RELATION_EMBEDDED_BY: 13;
+ readonly RELATION_POPUP_FOR: 14;
+ readonly RELATION_PARENT_WINDOW_OF: 15;
+ readonly RELATION_DEFAULT_BUTTON: 16;
+ readonly RELATION_CONTAINING_DOCUMENT: 17;
+ readonly RELATION_CONTAINING_TAB_PANE: 18;
+ readonly RELATION_CONTAINING_WINDOW: 19;
+ readonly RELATION_CONTAINING_APPLICATION: 20;
+ readonly RELATION_DETAILS: 21;
+ readonly RELATION_DETAILS_FOR: 22;
+ readonly RELATION_ERRORMSG: 23;
+ readonly RELATION_ERRORMSG_FOR: 24;
+ readonly RELATION_LINKS_TO: 25;
+
+ readonly relationType: u32;
+ readonly targetsCount: u32;
+ getTarget(index: u32): nsIAccessible;
+ getTargets(): nsIArray;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleRole.idl
+
+interface nsIAccessibleRole extends nsISupports {
+ readonly ROLE_NOTHING: 0;
+ readonly ROLE_MENUBAR: 1;
+ readonly ROLE_SCROLLBAR: 2;
+ readonly ROLE_ALERT: 3;
+ readonly ROLE_INTERNAL_FRAME: 4;
+ readonly ROLE_MENUPOPUP: 5;
+ readonly ROLE_MENUITEM: 6;
+ readonly ROLE_TOOLTIP: 7;
+ readonly ROLE_APPLICATION: 8;
+ readonly ROLE_DOCUMENT: 9;
+ readonly ROLE_PANE: 10;
+ readonly ROLE_DIALOG: 11;
+ readonly ROLE_GROUPING: 12;
+ readonly ROLE_SEPARATOR: 13;
+ readonly ROLE_TOOLBAR: 14;
+ readonly ROLE_STATUSBAR: 15;
+ readonly ROLE_TABLE: 16;
+ readonly ROLE_COLUMNHEADER: 17;
+ readonly ROLE_ROWHEADER: 18;
+ readonly ROLE_ROW: 19;
+ readonly ROLE_CELL: 20;
+ readonly ROLE_LINK: 21;
+ readonly ROLE_LIST: 22;
+ readonly ROLE_LISTITEM: 23;
+ readonly ROLE_OUTLINE: 24;
+ readonly ROLE_OUTLINEITEM: 25;
+ readonly ROLE_PAGETAB: 26;
+ readonly ROLE_PROPERTYPAGE: 27;
+ readonly ROLE_GRAPHIC: 28;
+ readonly ROLE_STATICTEXT: 29;
+ readonly ROLE_TEXT_LEAF: 30;
+ readonly ROLE_PUSHBUTTON: 31;
+ readonly ROLE_CHECKBUTTON: 32;
+ readonly ROLE_RADIOBUTTON: 33;
+ readonly ROLE_COMBOBOX: 34;
+ readonly ROLE_PROGRESSBAR: 35;
+ readonly ROLE_SLIDER: 36;
+ readonly ROLE_SPINBUTTON: 37;
+ readonly ROLE_DIAGRAM: 38;
+ readonly ROLE_ANIMATION: 39;
+ readonly ROLE_BUTTONDROPDOWN: 40;
+ readonly ROLE_BUTTONMENU: 41;
+ readonly ROLE_WHITESPACE: 42;
+ readonly ROLE_PAGETABLIST: 43;
+ readonly ROLE_CANVAS: 44;
+ readonly ROLE_CHECK_MENU_ITEM: 45;
+ readonly ROLE_DATE_EDITOR: 46;
+ readonly ROLE_CHROME_WINDOW: 47;
+ readonly ROLE_LABEL: 48;
+ readonly ROLE_PASSWORD_TEXT: 49;
+ readonly ROLE_RADIO_MENU_ITEM: 50;
+ readonly ROLE_TEXT_CONTAINER: 51;
+ readonly ROLE_TOGGLE_BUTTON: 52;
+ readonly ROLE_TREE_TABLE: 53;
+ readonly ROLE_PARAGRAPH: 54;
+ readonly ROLE_ENTRY: 55;
+ readonly ROLE_CAPTION: 56;
+ readonly ROLE_NON_NATIVE_DOCUMENT: 57;
+ readonly ROLE_HEADING: 58;
+ readonly ROLE_SECTION: 59;
+ readonly ROLE_FORM: 60;
+ readonly ROLE_APP_ROOT: 61;
+ readonly ROLE_PARENT_MENUITEM: 62;
+ readonly ROLE_COMBOBOX_LIST: 63;
+ readonly ROLE_COMBOBOX_OPTION: 64;
+ readonly ROLE_IMAGE_MAP: 65;
+ readonly ROLE_OPTION: 66;
+ readonly ROLE_RICH_OPTION: 67;
+ readonly ROLE_LISTBOX: 68;
+ readonly ROLE_FLAT_EQUATION: 69;
+ readonly ROLE_GRID_CELL: 70;
+ readonly ROLE_NOTE: 71;
+ readonly ROLE_FIGURE: 72;
+ readonly ROLE_CHECK_RICH_OPTION: 73;
+ readonly ROLE_DEFINITION_LIST: 74;
+ readonly ROLE_TERM: 75;
+ readonly ROLE_DEFINITION: 76;
+ readonly ROLE_KEY: 77;
+ readonly ROLE_SWITCH: 78;
+ readonly ROLE_MATHML_MATH: 79;
+ readonly ROLE_MATHML_IDENTIFIER: 80;
+ readonly ROLE_MATHML_NUMBER: 81;
+ readonly ROLE_MATHML_OPERATOR: 82;
+ readonly ROLE_MATHML_TEXT: 83;
+ readonly ROLE_MATHML_STRING_LITERAL: 84;
+ readonly ROLE_MATHML_GLYPH: 85;
+ readonly ROLE_MATHML_ROW: 86;
+ readonly ROLE_MATHML_FRACTION: 87;
+ readonly ROLE_MATHML_SQUARE_ROOT: 88;
+ readonly ROLE_MATHML_ROOT: 89;
+ readonly ROLE_MATHML_ENCLOSED: 90;
+ readonly ROLE_MATHML_STYLE: 91;
+ readonly ROLE_MATHML_SUB: 92;
+ readonly ROLE_MATHML_SUP: 93;
+ readonly ROLE_MATHML_SUB_SUP: 94;
+ readonly ROLE_MATHML_UNDER: 95;
+ readonly ROLE_MATHML_OVER: 96;
+ readonly ROLE_MATHML_UNDER_OVER: 97;
+ readonly ROLE_MATHML_MULTISCRIPTS: 98;
+ readonly ROLE_MATHML_TABLE: 99;
+ readonly ROLE_MATHML_LABELED_ROW: 100;
+ readonly ROLE_MATHML_TABLE_ROW: 101;
+ readonly ROLE_MATHML_CELL: 102;
+ readonly ROLE_MATHML_ACTION: 103;
+ readonly ROLE_MATHML_ERROR: 104;
+ readonly ROLE_MATHML_STACK: 105;
+ readonly ROLE_MATHML_LONG_DIVISION: 106;
+ readonly ROLE_MATHML_STACK_GROUP: 107;
+ readonly ROLE_MATHML_STACK_ROW: 108;
+ readonly ROLE_MATHML_STACK_CARRIES: 109;
+ readonly ROLE_MATHML_STACK_CARRY: 110;
+ readonly ROLE_MATHML_STACK_LINE: 111;
+ readonly ROLE_RADIO_GROUP: 112;
+ readonly ROLE_TEXT: 113;
+ readonly ROLE_DETAILS: 114;
+ readonly ROLE_SUMMARY: 115;
+ readonly ROLE_LANDMARK: 116;
+ readonly ROLE_NAVIGATION: 117;
+ readonly ROLE_FOOTNOTE: 118;
+ readonly ROLE_ARTICLE: 119;
+ readonly ROLE_REGION: 120;
+ readonly ROLE_EDITCOMBOBOX: 121;
+ readonly ROLE_BLOCKQUOTE: 122;
+ readonly ROLE_CONTENT_DELETION: 123;
+ readonly ROLE_CONTENT_INSERTION: 124;
+ readonly ROLE_FORM_LANDMARK: 125;
+ readonly ROLE_MARK: 126;
+ readonly ROLE_SUGGESTION: 127;
+ readonly ROLE_COMMENT: 128;
+ readonly ROLE_CODE: 129;
+ readonly ROLE_TIME_EDITOR: 130;
+ readonly ROLE_LISTITEM_MARKER: 131;
+ readonly ROLE_METER: 132;
+ readonly ROLE_SUBSCRIPT: 133;
+ readonly ROLE_SUPERSCRIPT: 134;
+ readonly ROLE_EMPHASIS: 135;
+ readonly ROLE_STRONG: 136;
+ readonly ROLE_TIME: 137;
+ readonly ROLE_GRID: 138;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleScrollingEvent.idl
+
+interface nsIAccessibleScrollingEvent extends nsIAccessibleEvent {
+ readonly scrollX: u32;
+ readonly scrollY: u32;
+ readonly maxScrollX: u32;
+ readonly maxScrollY: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleSelectable.idl
+
+interface nsIAccessibleSelectable extends nsISupports {
+ readonly selectedItems: nsIArray;
+ readonly selectedItemCount: u32;
+ getSelectedItemAt(index: u32): nsIAccessible;
+ isItemSelected(index: u32): boolean;
+ addItemToSelection(index: u32): void;
+ removeItemFromSelection(index: u32): void;
+ selectAll(): boolean;
+ unselectAll(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleStateChangeEvent.idl
+
+interface nsIAccessibleStateChangeEvent extends nsIAccessibleEvent {
+ readonly state: u32;
+ readonly isExtraState: boolean;
+ readonly isEnabled: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleStates.idl
+
+interface nsIAccessibleStates extends nsISupports {
+ readonly STATE_UNAVAILABLE: 1;
+ readonly STATE_SELECTED: 2;
+ readonly STATE_FOCUSED: 4;
+ readonly STATE_PRESSED: 8;
+ readonly STATE_CHECKED: 16;
+ readonly STATE_MIXED: 32;
+ readonly STATE_READONLY: 64;
+ readonly STATE_HOTTRACKED: 128;
+ readonly STATE_DEFAULT: 256;
+ readonly STATE_EXPANDED: 512;
+ readonly STATE_COLLAPSED: 1024;
+ readonly STATE_BUSY: 2048;
+ readonly STATE_FLOATING: 4096;
+ readonly STATE_MARQUEED: 8192;
+ readonly STATE_ANIMATED: 16384;
+ readonly STATE_INVISIBLE: 32768;
+ readonly STATE_OFFSCREEN: 65536;
+ readonly STATE_SIZEABLE: 131072;
+ readonly STATE_MOVEABLE: 262144;
+ readonly STATE_SELFVOICING: 524288;
+ readonly STATE_FOCUSABLE: 1048576;
+ readonly STATE_SELECTABLE: 2097152;
+ readonly STATE_LINKED: 4194304;
+ readonly STATE_TRAVERSED: 8388608;
+ readonly STATE_MULTISELECTABLE: 16777216;
+ readonly STATE_EXTSELECTABLE: 33554432;
+ readonly STATE_ALERT_LOW: 67108864;
+ readonly STATE_ALERT_MEDIUM: 134217728;
+ readonly STATE_ALERT_HIGH: 268435456;
+ readonly STATE_PROTECTED: 536870912;
+ readonly STATE_HASPOPUP: 1073741824;
+ readonly STATE_REQUIRED: 67108864;
+ readonly STATE_IMPORTANT: 134217728;
+ readonly STATE_INVALID: 268435456;
+ readonly STATE_CHECKABLE: 8192;
+ readonly EXT_STATE_SUPPORTS_AUTOCOMPLETION: 1;
+ readonly EXT_STATE_DEFUNCT: 2;
+ readonly EXT_STATE_SELECTABLE_TEXT: 4;
+ readonly EXT_STATE_EDITABLE: 8;
+ readonly EXT_STATE_ACTIVE: 16;
+ readonly EXT_STATE_MODAL: 32;
+ readonly EXT_STATE_MULTI_LINE: 64;
+ readonly EXT_STATE_HORIZONTAL: 128;
+ readonly EXT_STATE_OPAQUE: 256;
+ readonly EXT_STATE_SINGLE_LINE: 512;
+ readonly EXT_STATE_TRANSIENT: 1024;
+ readonly EXT_STATE_VERTICAL: 2048;
+ readonly EXT_STATE_STALE: 4096;
+ readonly EXT_STATE_ENABLED: 8192;
+ readonly EXT_STATE_SENSITIVE: 16384;
+ readonly EXT_STATE_EXPANDABLE: 32768;
+ readonly EXT_STATE_PINNED: 65536;
+ readonly EXT_STATE_CURRENT: 131072;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTable.idl
+
+interface nsIAccessibleTable extends nsISupports {
+ readonly caption: nsIAccessible;
+ readonly summary: string;
+ readonly columnCount: i32;
+ readonly rowCount: i32;
+ getCellAt(rowIndex: i32, columnIndex: i32): nsIAccessible;
+ getCellIndexAt(rowIndex: i32, columnIndex: i32): i32;
+ getColumnIndexAt(cellIndex: i32): i32;
+ getRowIndexAt(cellIndex: i32): i32;
+ getRowAndColumnIndicesAt(cellIndex: i32, rowIndex: OutParam<i32>, columnIndex: OutParam<i32>): void;
+ getColumnExtentAt(row: i32, column: i32): i32;
+ getRowExtentAt(row: i32, column: i32): i32;
+ getColumnDescription(columnIndex: i32): string;
+ getRowDescription(rowIndex: i32): string;
+ isColumnSelected(columnIndex: i32): boolean;
+ isRowSelected(rowIndex: i32): boolean;
+ isCellSelected(rowIndex: i32, columnIndex: i32): boolean;
+ readonly selectedCellCount: u32;
+ readonly selectedColumnCount: u32;
+ readonly selectedRowCount: u32;
+ readonly selectedCells: nsIArray;
+ getSelectedCellIndices(): u32[];
+ getSelectedColumnIndices(): u32[];
+ getSelectedRowIndices(): u32[];
+ isProbablyForLayout(): boolean;
+}
+
+interface nsIAccessibleTableCell extends nsISupports {
+ readonly table: nsIAccessibleTable;
+ readonly columnIndex: i32;
+ readonly rowIndex: i32;
+ readonly columnExtent: i32;
+ readonly rowExtent: i32;
+ readonly columnHeaderCells: nsIArray;
+ readonly rowHeaderCells: nsIArray;
+ isSelected(): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTableChangeEvent.idl
+
+interface nsIAccessibleTableChangeEvent extends nsIAccessibleEvent {
+ readonly rowOrColIndex: i32;
+ readonly RowsOrColsCount: i32;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleText.idl
+
+interface nsIAccessibleText extends nsISupports {
+ readonly TEXT_OFFSET_END_OF_TEXT: -1;
+ readonly TEXT_OFFSET_CARET: -2;
+ readonly BOUNDARY_CHAR: 0;
+ readonly BOUNDARY_WORD_START: 1;
+ readonly BOUNDARY_WORD_END: 2;
+ readonly BOUNDARY_SENTENCE_START: 3;
+ readonly BOUNDARY_SENTENCE_END: 4;
+ readonly BOUNDARY_LINE_START: 5;
+ readonly BOUNDARY_LINE_END: 6;
+ readonly BOUNDARY_PARAGRAPH: 7;
+
+ caretOffset: i32;
+ getCaretRect(x: OutParam<i32>, y: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>): void;
+ readonly characterCount: i32;
+ readonly selectionCount: i32;
+ getText(startOffset: i32, endOffset: i32): string;
+ getTextAfterOffset(offset: i32, boundaryType: AccessibleTextBoundary, startOffset: OutParam<i32>, endOffset: OutParam<i32>): string;
+ getTextAtOffset(offset: i32, boundaryType: AccessibleTextBoundary, startOffset: OutParam<i32>, endOffset: OutParam<i32>): string;
+ getTextBeforeOffset(offset: i32, boundaryType: AccessibleTextBoundary, startOffset: OutParam<i32>, endOffset: OutParam<i32>): string;
+ getCharacterAtOffset(offset: i32): string;
+ getTextAttributes(includeDefAttrs: boolean, offset: i32, rangeStartOffset: OutParam<i32>, rangeEndOffset: OutParam<i32>): nsIPersistentProperties;
+ readonly defaultTextAttributes: nsIPersistentProperties;
+ getCharacterExtents(offset: i32, x: OutParam<i32>, y: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>, coordType: u32): void;
+ getRangeExtents(startOffset: i32, endOffset: i32, x: OutParam<i32>, y: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>, coordType: u32): void;
+ getOffsetAtPoint(x: i32, y: i32, coordType: u32): i32;
+ getSelectionBounds(selectionNum: i32, startOffset: OutParam<i32>, endOffset: OutParam<i32>): void;
+ setSelectionBounds(selectionNum: i32, startOffset: i32, endOffset: i32): void;
+ addSelection(startOffset: i32, endOffset: i32): void;
+ removeSelection(selectionNum: i32): void;
+ scrollSubstringTo(startIndex: i32, endIndex: i32, scrollType: u32): void;
+ scrollSubstringToPoint(startIndex: i32, endIndex: i32, coordinateType: u32, x: i32, y: i32): void;
+ readonly selectionRanges: nsIArray;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTextChangeEvent.idl
+
+interface nsIAccessibleTextChangeEvent extends nsIAccessibleEvent {
+ readonly start: i32;
+ readonly length: u32;
+ readonly isInserted: boolean;
+ readonly modifiedText: string;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTextLeafRange.idl
+
+interface nsIAccessibleTextLeafPoint extends nsISupports {
+ readonly DIRECTION_NEXT: 0;
+ readonly DIRECTION_PREVIOUS: 1;
+ readonly BOUNDARY_FLAG_DEFAULT: 0;
+ readonly BOUNDARY_FLAG_INCLUDE_ORIGIN: 1;
+ readonly BOUNDARY_FLAG_STOP_IN_EDITABLE: 2;
+ readonly BOUNDARY_FLAG_SKIP_LIST_ITEM_MARKER: 4;
+
+ accessible: nsIAccessible;
+ offset: i32;
+ findBoundary(aBoundaryType: AccessibleTextBoundary, aDirection: u32, aFlags: u32): nsIAccessibleTextLeafPoint;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTextRange.idl
+
+interface nsIAccessibleTextRange extends nsISupports {
+ readonly EndPoint_Start: 1;
+ readonly EndPoint_End: 2;
+ readonly AlignToTop: 0;
+ readonly AlignToBottom: 1;
+
+ readonly startContainer: nsIAccessibleText;
+ readonly startOffset: i32;
+ readonly endContainer: nsIAccessibleText;
+ readonly endOffset: i32;
+ readonly container: nsIAccessible;
+ compare(aOtherRange: nsIAccessibleTextRange): boolean;
+ compareEndPoints(aEndPoint: u32, aOtherRange: nsIAccessibleTextRange, aOtherRangeEndPoint: u32): i32;
+ crop(aContainer: nsIAccessible): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTextSelectionChangeEvent.idl
+
+interface nsIAccessibleTextSelectionChangeEvent extends nsIAccessibleEvent {
+ readonly selectionRanges: nsIArray;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTypes.idl
+
+interface nsIAccessibleScrollType extends nsISupports {
+ readonly SCROLL_TYPE_TOP_LEFT: 0;
+ readonly SCROLL_TYPE_BOTTOM_RIGHT: 1;
+ readonly SCROLL_TYPE_TOP_EDGE: 2;
+ readonly SCROLL_TYPE_BOTTOM_EDGE: 3;
+ readonly SCROLL_TYPE_LEFT_EDGE: 4;
+ readonly SCROLL_TYPE_RIGHT_EDGE: 5;
+ readonly SCROLL_TYPE_ANYWHERE: 6;
+}
+
+interface nsIAccessibleCoordinateType extends nsISupports {
+ readonly COORDTYPE_SCREEN_RELATIVE: 0;
+ readonly COORDTYPE_WINDOW_RELATIVE: 1;
+ readonly COORDTYPE_PARENT_RELATIVE: 2;
+}
+
+// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleValue.idl
+
+interface nsIAccessibleValue extends nsISupports {
+ readonly maximumValue: double;
+ readonly minimumValue: double;
+ currentValue: double;
+ readonly minimumIncrement: double;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/alerts/nsIAlertsService.idl
+
+interface nsIAlertNotificationImageListener extends nsISupports {
+ onImageReady(aUserData: nsISupports, aRequest: imgIRequest): void;
+ onImageMissing(aUserData: nsISupports): void;
+}
+
+interface nsIAlertAction extends nsISupports {
+ readonly action: string;
+ readonly title: string;
+ readonly iconURL: string;
+ readonly windowsSystemActivationType: boolean;
+ readonly opaqueRelaunchData: string;
+}
+
+interface nsIAlertNotification extends nsISupports {
+ init(aName?: string, aImageURL?: string, aTitle?: string, aText?: string, aTextClickable?: boolean, aCookie?: string, aDir?: string, aLang?: string, aData?: string, aPrincipal?: nsIPrincipal, aInPrivateBrowsing?: boolean, aRequireInteraction?: boolean, aSilent?: boolean, aVibrate?: u32[]): void;
+ readonly name: string;
+ readonly imageURL: string;
+ readonly title: string;
+ readonly text: string;
+ readonly textClickable: boolean;
+ readonly cookie: string;
+ readonly dir: string;
+ readonly lang: string;
+ readonly data: string;
+ readonly principal: nsIPrincipal;
+ readonly URI: nsIURI;
+ readonly inPrivateBrowsing: boolean;
+ readonly requireInteraction: boolean;
+ readonly silent: boolean;
+ readonly vibrate: u32[];
+ actions: nsIAlertAction[];
+ readonly actionable: boolean;
+ readonly source: string;
+ opaqueRelaunchData: string;
+ loadImage(aTimeout: u32, aListener: nsIAlertNotificationImageListener, aUserData?: nsISupports): nsICancelable;
+}
+
+interface nsIAlertsService extends nsISupports {
+ showPersistentNotification(aPersistentData: string, aAlert: nsIAlertNotification, aAlertListener?: nsIObserver): void;
+ showAlert(aAlert: nsIAlertNotification, aAlertListener?: nsIObserver): void;
+ showAlertNotification(aImageURL: string, aTitle: string, aText: string, aTextClickable?: boolean, aCookie?: string, aAlertListener?: nsIObserver, aName?: string, aDir?: string, aLang?: string, aData?: string, aPrincipal?: nsIPrincipal, aInPrivateBrowsing?: boolean, aRequireInteraction?: boolean): void;
+ closeAlert(aName?: string, aContextClosed?: boolean): void;
+}
+
+interface nsIAlertsDoNotDisturb extends nsISupports {
+ manualDoNotDisturb: boolean;
+ suppressForScreenSharing: boolean;
+}
+
+interface nsIAlertsIconData extends nsISupports {
+ showAlertWithIconData(aAlert: nsIAlertNotification, aAlertListener: nsIObserver, aIconSize: u32, aIconData: u8[]): void;
+}
+
+interface nsIAlertsIconURI extends nsISupports {
+ showAlertWithIconURI(aAlert: nsIAlertNotification, aAlertListener?: nsIObserver, aIconURI?: nsIURI): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/alerts/nsIWindowsAlertsService.idl
+
+} // global
+
+declare namespace nsIWindowsAlertNotification {
+
+enum ImagePlacement {
+ eInline = 0,
+ eHero = 1,
+ eIcon = 2,
+}
+
+}
+
+declare global {
+
+interface nsIWindowsAlertNotification extends nsIAlertNotification, Enums<typeof nsIWindowsAlertNotification.ImagePlacement> {
+ handleActions: boolean;
+ imagePlacement: nsIWindowsAlertNotification.ImagePlacement;
+}
+
+interface nsIWindowsAlertsService extends nsIAlertsService {
+ handleWindowsTag(aWindowsTag: string): Promise<any>;
+ getXmlStringForWindowsAlert(aAlert: nsIAlertNotification, aWindowsTag?: string): string;
+ removeAllNotificationsForInstall(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIAppShellService.idl
+
+interface nsIAppShellService extends nsISupports {
+ readonly SIZE_TO_CONTENT: -1;
+
+ createTopLevelWindow(aParent: nsIAppWindow, aUrl: nsIURI, aChromeMask: u32, aInitialWidth: i32, aInitialHeight: i32): nsIAppWindow;
+ createWindowlessBrowser(aIsChrome?: boolean, aChromeMask?: u32): nsIWindowlessBrowser;
+ destroyHiddenWindow(): void;
+ readonly hiddenWindow: nsIAppWindow;
+ readonly hiddenDOMWindow: mozIDOMWindowProxy;
+ readonly applicationProvidedHiddenWindow: boolean;
+ registerTopLevelWindow(aWindow: nsIAppWindow): void;
+ unregisterTopLevelWindow(aWindow: nsIAppWindow): void;
+ readonly hasHiddenWindow: boolean;
+ startEventLoopLagTracking(): boolean;
+ stopEventLoopLagTracking(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIAppWindow.idl
+
+interface nsIAppWindow extends nsISupports {
+ readonly lowestZ: 0;
+ readonly loweredZ: 4;
+ readonly normalZ: 5;
+ readonly raisedZ: 6;
+ readonly highestZ: 9;
+
+ readonly docShell: nsIDocShell;
+ intrinsicallySized: boolean;
+ readonly primaryContentShell: nsIDocShellTreeItem;
+ readonly primaryRemoteTab: nsIRemoteTab;
+ readonly primaryContentBrowsingContext: BrowsingContext;
+ remoteTabAdded(aTab: nsIRemoteTab, aPrimary: boolean): void;
+ remoteTabRemoved(aTab: nsIRemoteTab): void;
+ readonly outerToInnerHeightDifferenceInCSSPixels: u32;
+ readonly outerToInnerWidthDifferenceInCSSPixels: u32;
+ center(aRelative: nsIAppWindow, aScreen: boolean, aAlert: boolean): void;
+ showModal(): void;
+ lockAspectRatio(aShouldLock: boolean): void;
+ zLevel: u32;
+ chromeFlags: u32;
+ assumeChromeFlagsAreFrozen(): void;
+ createNewWindow(aChromeFlags: i32, aOpenWindowInfo: nsIOpenWindowInfo): nsIAppWindow;
+ XULBrowserWindow: nsIXULBrowserWindow;
+ readonly initialOpenWindowInfo: nsIOpenWindowInfo;
+ needFastSnaphot(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIWindowMediator.idl
+
+interface nsIWindowMediator extends nsISupports {
+ readonly zLevelTop: 1;
+ readonly zLevelBottom: 2;
+ readonly zLevelBelow: 3;
+
+ getEnumerator(aWindowType: string): nsISimpleEnumerator;
+ getAppWindowEnumerator(aWindowType: string): nsISimpleEnumerator;
+ getZOrderAppWindowEnumerator(aWindowType: string, aFrontToBack: boolean): nsISimpleEnumerator;
+ getMostRecentWindow(aWindowType: string): mozIDOMWindowProxy;
+ getMostRecentBrowserWindow(): mozIDOMWindowProxy;
+ getMostRecentNonPBWindow(aWindowType: string): mozIDOMWindowProxy;
+ getOuterWindowWithId(aOuterWindowID: u64): mozIDOMWindowProxy;
+ getCurrentInnerWindowWithId(aInnerWindowID: u64): mozIDOMWindow;
+ addListener(aListener: nsIWindowMediatorListener): void;
+ removeListener(aListener: nsIWindowMediatorListener): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIWindowMediatorListener.idl
+
+interface nsIWindowMediatorListener extends nsISupports {
+ onOpenWindow(window: nsIAppWindow): void;
+ onCloseWindow(window: nsIAppWindow): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIWindowlessBrowser.idl
+
+interface nsIWindowlessBrowser extends nsIWebNavigation {
+ close(): void;
+ readonly docShell: nsIDocShell;
+ readonly browsingContext: BrowsingContext;
+}
+
+// https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIXULBrowserWindow.idl
+
+interface nsIXULBrowserWindow extends nsISupports {
+ setOverLink(link: string): void;
+ onBeforeLinkTraversal(originalTarget: string, linkURI: nsIURI, linkNode: Node, isAppTab: boolean): string;
+ showTooltip(x: i32, y: i32, tooltip: string, direction: string, browser: Element): void;
+ hideTooltip(): void;
+ getTabCount(): u32;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/startup/public/nsIAppStartup.idl
+
+} // global
+
+declare namespace nsIAppStartup {
+
+enum IDLShutdownPhase {
+ SHUTDOWN_PHASE_NOTINSHUTDOWN = 0,
+ SHUTDOWN_PHASE_APPSHUTDOWNCONFIRMED = 1,
+ SHUTDOWN_PHASE_APPSHUTDOWNNETTEARDOWN = 2,
+ SHUTDOWN_PHASE_APPSHUTDOWNTEARDOWN = 3,
+ SHUTDOWN_PHASE_APPSHUTDOWN = 4,
+ SHUTDOWN_PHASE_APPSHUTDOWNQM = 5,
+ SHUTDOWN_PHASE_APPSHUTDOWNRELEMETRY = 6,
+ SHUTDOWN_PHASE_XPCOMWILLSHUTDOWN = 7,
+ SHUTDOWN_PHASE_XPCOMSHUTDOWN = 8,
+}
+
+}
+
+declare global {
+
+interface nsIAppStartup extends nsISupports, Enums<typeof nsIAppStartup.IDLShutdownPhase> {
+ readonly eConsiderQuit: 1;
+ readonly eAttemptQuit: 2;
+ readonly eForceQuit: 3;
+ readonly eRestart: 16;
+ readonly eSilently: 256;
+
+ createHiddenWindow(): void;
+ destroyHiddenWindow(): void;
+ run(): void;
+ enterLastWindowClosingSurvivalArea(): void;
+ exitLastWindowClosingSurvivalArea(): void;
+ readonly automaticSafeModeNecessary: boolean;
+ restartInSafeMode(aQuitMode: u32): void;
+ createInstanceWithProfile(aProfile: nsIToolkitProfile): void;
+ trackStartupCrashBegin(): boolean;
+ trackStartupCrashEnd(): void;
+ quit(aMode: u32, aExitCode?: i32): boolean;
+ advanceShutdownPhase(aPhase: nsIAppStartup.IDLShutdownPhase): void;
+ isInOrBeyondShutdownPhase(aPhase: nsIAppStartup.IDLShutdownPhase): boolean;
+ readonly shuttingDown: boolean;
+ readonly startingUp: boolean;
+ readonly restarting: boolean;
+ readonly wasRestarted: boolean;
+ readonly wasSilentlyStarted: boolean;
+ readonly secondsSinceLastOSRestart: i64;
+ readonly showedPreXULSkeletonUI: boolean;
+ getStartupInfo(): any;
+ interrupted: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteController.idl
+
+interface nsIAutoCompleteController extends nsISupports {
+ readonly STATUS_NONE: 1;
+ readonly STATUS_SEARCHING: 2;
+ readonly STATUS_COMPLETE_NO_MATCH: 3;
+ readonly STATUS_COMPLETE_MATCH: 4;
+
+ input: nsIAutoCompleteInput;
+ readonly searchStatus: u16;
+ readonly matchCount: u32;
+ startSearch(searchString: string): void;
+ stopSearch(): void;
+ handleText(): boolean;
+ handleEnter(aIsPopupSelection: boolean, aEvent?: Event): boolean;
+ handleEscape(): boolean;
+ handleStartComposition(): void;
+ handleEndComposition(): void;
+ handleTab(): void;
+ handleKeyNavigation(key: u32): boolean;
+ handleDelete(): boolean;
+ getValueAt(index: i32): string;
+ getLabelAt(index: i32): string;
+ getCommentAt(index: i32): string;
+ getStyleAt(index: i32): string;
+ getImageAt(index: i32): string;
+ getFinalCompleteValueAt(index: i32): string;
+ searchString: string;
+ setInitiallySelectedIndex(index: i32): void;
+ resetInternalState(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteInput.idl
+
+interface nsIAutoCompleteInput extends nsISupports {
+ readonly popupElement: Element;
+ readonly popup: nsIAutoCompletePopup;
+ readonly controller: nsIAutoCompleteController;
+ popupOpen: boolean;
+ disableAutoComplete: boolean;
+ completeDefaultIndex: boolean;
+ completeSelectedIndex: boolean;
+ forceComplete: boolean;
+ minResultsForPopup: u32;
+ maxRows: u32;
+ timeout: u32;
+ searchParam: string;
+ readonly searchCount: u32;
+ getSearchAt(index: u32): string;
+ textValue: string;
+ readonly selectionStart: i32;
+ readonly selectionEnd: i32;
+ selectTextRange(startIndex: i32, endIndex: i32): void;
+ onSearchBegin(): void;
+ onSearchComplete(): void;
+ onTextEntered(aEvent?: Event): void;
+ onTextReverted(): boolean;
+ readonly consumeRollupEvent: boolean;
+ readonly inPrivateContext: boolean;
+ readonly noRollupOnCaretMove: boolean;
+ readonly noRollupOnEmptySearch: boolean;
+ readonly userContextId: u32;
+ readonly invalidatePreviousResult: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompletePopup.idl
+
+interface nsIAutoCompletePopup extends nsISupports {
+ readonly INVALIDATE_REASON_NEW_RESULT: 0;
+ readonly INVALIDATE_REASON_DELETE: 1;
+
+ readonly input: nsIAutoCompleteInput;
+ readonly overrideValue: string;
+ selectedIndex: i32;
+ readonly popupOpen: boolean;
+ openAutocompletePopup(input: nsIAutoCompleteInput, element: Element): void;
+ closePopup(): void;
+ invalidate(reason: u16): void;
+ selectBy(reverse: boolean, page: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteResult.idl
+
+interface nsIAutoCompleteResult extends nsISupports {
+ readonly RESULT_IGNORED: 1;
+ readonly RESULT_FAILURE: 2;
+ readonly RESULT_NOMATCH: 3;
+ readonly RESULT_SUCCESS: 4;
+ readonly RESULT_NOMATCH_ONGOING: 5;
+ readonly RESULT_SUCCESS_ONGOING: 6;
+
+ readonly searchString: string;
+ readonly searchResult: u16;
+ readonly defaultIndex: i32;
+ readonly errorDescription: string;
+ readonly matchCount: u32;
+ getValueAt(index: i32): string;
+ getLabelAt(index: i32): string;
+ getCommentAt(index: i32): string;
+ getStyleAt(index: i32): string;
+ getImageAt(index: i32): string;
+ getFinalCompleteValueAt(index: i32): string;
+ isRemovableAt(rowIndex: i32): boolean;
+ removeValueAt(rowIndex: i32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteSearch.idl
+
+interface nsIAutoCompleteSearch extends nsISupports {
+ startSearch(searchString: string, searchParam: string, previousResult: nsIAutoCompleteResult, listener: nsIAutoCompleteObserver): void;
+ stopSearch(): void;
+}
+
+interface nsIAutoCompleteObserver extends nsISupports {
+ onSearchResult(search: nsIAutoCompleteSearch, result: nsIAutoCompleteResult): void;
+}
+
+interface nsIAutoCompleteSearchDescriptor extends nsISupports {
+ readonly SEARCH_TYPE_DELAYED: 0;
+ readonly SEARCH_TYPE_IMMEDIATE: 1;
+
+ readonly searchType: u16;
+ readonly clearingAutoFillSearchesAgain: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteSimpleResult.idl
+
+interface nsIAutoCompleteSimpleResult extends nsIAutoCompleteResult {
+ setSearchString(aSearchString: string): void;
+ setErrorDescription(aErrorDescription: string): void;
+ setDefaultIndex(aDefaultIndex: i32): void;
+ setSearchResult(aSearchResult: u16): void;
+ insertMatchAt(aIndex: i32, aValue: string, aComment: string, aImage?: string, aStyle?: string, aFinalCompleteValue?: string, aLabel?: string): void;
+ appendMatch(aValue: string, aComment: string, aImage?: string, aStyle?: string, aFinalCompleteValue?: string, aLabel?: string): void;
+ removeMatchAt(aIndex: i32): void;
+ getListener(): nsIAutoCompleteSimpleResultListener;
+ setListener(aListener: nsIAutoCompleteSimpleResultListener): void;
+}
+
+interface nsIAutoCompleteSimpleResultListener extends nsISupports {
+ onValueRemoved(aResult: nsIAutoCompleteSimpleResult, aValue: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteSimpleSearch.idl
+
+interface nsIAutoCompleteSimpleSearch extends nsIAutoCompleteSearch {
+ overrideNextResult(values: nsIAutoCompleteResult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/media/autoplay/nsIAutoplay.idl
+
+interface nsIAutoplay extends nsISupports {
+ readonly ALLOWED: 0;
+ readonly BLOCKED: 1;
+ readonly BLOCKED_ALL: 5;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/backgroundhangmonitor/nsIHangDetails.idl
+
+interface nsIHangDetails extends nsISupports {
+ readonly wasPersisted: boolean;
+ readonly duration: double;
+ readonly thread: string;
+ readonly runnableName: string;
+ readonly process: string;
+ readonly remoteType: string;
+ readonly stack: any;
+ readonly modules: any;
+ readonly annotations: any;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/bitsdownload/nsIBits.idl
+
+interface nsIBits extends nsISupports {
+ readonly ERROR_TYPE_SUCCESS: 0;
+ readonly ERROR_TYPE_UNKNOWN: 1;
+ readonly ERROR_TYPE_METHOD_THREW: 2;
+ readonly ERROR_TYPE_METHOD_TIMEOUT: 3;
+ readonly ERROR_TYPE_NULL_ARGUMENT: 4;
+ readonly ERROR_TYPE_INVALID_ARGUMENT: 5;
+ readonly ERROR_TYPE_NOT_INITIALIZED: 6;
+ readonly ERROR_TYPE_NO_UTF8_CONVERSION: 7;
+ readonly ERROR_TYPE_INVALID_GUID: 8;
+ readonly ERROR_TYPE_PIPE_NOT_CONNECTED: 9;
+ readonly ERROR_TYPE_PIPE_TIMEOUT: 10;
+ readonly ERROR_TYPE_PIPE_BAD_WRITE_COUNT: 11;
+ readonly ERROR_TYPE_PIPE_API_ERROR: 12;
+ readonly ERROR_TYPE_FAILED_TO_CREATE_BITS_JOB: 13;
+ readonly ERROR_TYPE_FAILED_TO_ADD_FILE_TO_JOB: 14;
+ readonly ERROR_TYPE_FAILED_TO_APPLY_BITS_JOB_SETTINGS: 15;
+ readonly ERROR_TYPE_FAILED_TO_RESUME_BITS_JOB: 16;
+ readonly ERROR_TYPE_OTHER_BITS_ERROR: 17;
+ readonly ERROR_TYPE_OTHER_BITS_CLIENT_ERROR: 18;
+ readonly ERROR_TYPE_BITS_JOB_NOT_FOUND: 19;
+ readonly ERROR_TYPE_FAILED_TO_GET_BITS_JOB: 20;
+ readonly ERROR_TYPE_FAILED_TO_SUSPEND_BITS_JOB: 21;
+ readonly ERROR_TYPE_FAILED_TO_COMPLETE_BITS_JOB: 22;
+ readonly ERROR_TYPE_PARTIALLY_COMPLETED_BITS_JOB: 23;
+ readonly ERROR_TYPE_FAILED_TO_CANCEL_BITS_JOB: 24;
+ readonly ERROR_TYPE_MISSING_RESULT_DATA: 25;
+ readonly ERROR_TYPE_MISSING_CALLBACK: 26;
+ readonly ERROR_TYPE_CALLBACK_ON_WRONG_THREAD: 27;
+ readonly ERROR_TYPE_MISSING_BITS_SERVICE: 28;
+ readonly ERROR_TYPE_BITS_SERVICE_ON_WRONG_THREAD: 29;
+ readonly ERROR_TYPE_MISSING_BITS_REQUEST: 30;
+ readonly ERROR_TYPE_BITS_REQUEST_ON_WRONG_THREAD: 31;
+ readonly ERROR_TYPE_MISSING_OBSERVER: 32;
+ readonly ERROR_TYPE_OBSERVER_ON_WRONG_THREAD: 33;
+ readonly ERROR_TYPE_MISSING_CONTEXT: 34;
+ readonly ERROR_TYPE_CONTEXT_ON_WRONG_THREAD: 35;
+ readonly ERROR_TYPE_FAILED_TO_START_THREAD: 36;
+ readonly ERROR_TYPE_FAILED_TO_CONSTRUCT_TASK_RUNNABLE: 37;
+ readonly ERROR_TYPE_FAILED_TO_DISPATCH_RUNNABLE: 38;
+ readonly ERROR_TYPE_TRANSFER_ALREADY_COMPLETE: 39;
+ readonly ERROR_TYPE_OPERATION_ALREADY_IN_PROGRESS: 40;
+ readonly ERROR_TYPE_MISSING_BITS_CLIENT: 41;
+ readonly ERROR_TYPE_FAILED_TO_GET_JOB_STATUS: 42;
+ readonly ERROR_TYPE_BITS_STATE_ERROR: 43;
+ readonly ERROR_TYPE_BITS_STATE_TRANSIENT_ERROR: 44;
+ readonly ERROR_TYPE_BITS_STATE_CANCELLED: 45;
+ readonly ERROR_TYPE_BITS_STATE_UNEXPECTED: 46;
+ readonly ERROR_TYPE_VERIFICATION_FAILURE: 47;
+ readonly ERROR_TYPE_ACCESS_DENIED_EXPECTED: 48;
+ readonly ERROR_TYPE_FAILED_TO_CONNECT_TO_BCM: 49;
+ readonly ERROR_TYPE_USE_AFTER_REQUEST_SHUTDOWN: 50;
+ readonly ERROR_TYPE_BROWSER_SHUTTING_DOWN: 51;
+ readonly ERROR_ACTION_UNKNOWN: 1;
+ readonly ERROR_ACTION_NONE: 2;
+ readonly ERROR_ACTION_START_DOWNLOAD: 3;
+ readonly ERROR_ACTION_MONITOR_DOWNLOAD: 4;
+ readonly ERROR_ACTION_CHANGE_MONITOR_INTERVAL: 5;
+ readonly ERROR_ACTION_CANCEL: 6;
+ readonly ERROR_ACTION_SET_PRIORITY: 7;
+ readonly ERROR_ACTION_COMPLETE: 8;
+ readonly ERROR_ACTION_SUSPEND: 9;
+ readonly ERROR_ACTION_RESUME: 10;
+ readonly ERROR_ACTION_SET_NO_PROGRESS_TIMEOUT: 11;
+ readonly ERROR_STAGE_UNKNOWN: 1;
+ readonly ERROR_STAGE_PRETASK: 2;
+ readonly ERROR_STAGE_COMMAND_THREAD: 3;
+ readonly ERROR_STAGE_AGENT_COMMUNICATION: 4;
+ readonly ERROR_STAGE_BITS_CLIENT: 5;
+ readonly ERROR_STAGE_MAIN_THREAD: 6;
+ readonly ERROR_STAGE_MONITOR: 7;
+ readonly ERROR_STAGE_VERIFICATION: 8;
+ readonly ERROR_CODE_TYPE_NONE: 1;
+ readonly ERROR_CODE_TYPE_NSRESULT: 2;
+ readonly ERROR_CODE_TYPE_HRESULT: 3;
+ readonly ERROR_CODE_TYPE_STRING: 4;
+ readonly ERROR_CODE_TYPE_EXCEPTION: 5;
+ readonly PROXY_NONE: 1;
+ readonly PROXY_PRECONFIG: 2;
+ readonly PROXY_AUTODETECT: 3;
+
+ readonly initialized: boolean;
+ init(jobName: string, savePathPrefix: string, monitorTimeoutMs: u32): void;
+ startDownload(downloadURL: string, saveRelativePath: string, proxy: nsProxyUsage, noProgressTimeoutSecs: u32, monitorIntervalMs: u32, observer: nsIRequestObserver, context: nsISupports, callback: nsIBitsNewRequestCallback): void;
+ monitorDownload(id: string, monitorIntervalMs: u32, observer: nsIRequestObserver, context: nsISupports, callback: nsIBitsNewRequestCallback): void;
+}
+
+interface nsIBitsNewRequestCallback extends nsISupports {
+ success(request: nsIBitsRequest): void;
+ failure(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage): void;
+ failureNsresult(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage, errorCode: nsresult): void;
+ failureHresult(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage, errorCode: i32): void;
+ failureString(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage, errorMessage: string): void;
+}
+
+interface nsIBitsRequest extends nsIRequest {
+ readonly bitsId: string;
+ readonly transferError: nsBitsErrorType;
+ changeMonitorInterval(monitorIntervalMs: u32, callback: nsIBitsCallback): void;
+ cancelAsync(status: nsresult, callback: nsIBitsCallback): void;
+ setPriorityHigh(callback: nsIBitsCallback): void;
+ setPriorityLow(callback: nsIBitsCallback): void;
+ setNoProgressTimeout(timeoutSecs: u32, callback: nsIBitsCallback): void;
+ complete(callback: nsIBitsCallback): void;
+ suspendAsync(callback: nsIBitsCallback): void;
+ resumeAsync(callback: nsIBitsCallback): void;
+}
+
+interface nsIBitsCallback extends nsISupports {
+ success(): void;
+ failure(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage): void;
+ failureNsresult(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage, errorCode: nsresult): void;
+ failureHresult(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage, errorCode: i32): void;
+ failureString(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage, errorMessage: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/browser/components/newtab/nsIAboutNewTabService.idl
+
+interface nsIAboutNewTabService extends nsISupports {
+ readonly defaultURL: string;
+ aboutHomeChannel(aURI: nsIURI, aLoadInfo: nsILoadInfo): nsIChannel;
+ readonly welcomeURL: string;
+}
+
+// https://searchfox.org/mozilla-central/source/browser/components/nsIBrowserHandler.idl
+
+interface nsIBrowserHandler extends nsISupports {
+ startPage: string;
+ defaultArgs: string;
+ kiosk: boolean;
+ majorUpgrade: boolean;
+ firstRunProfile: boolean;
+ getFeatures(aCmdLine: nsICommandLine): string;
+}
+
+// https://searchfox.org/mozilla-central/source/caps/nsIAddonPolicyService.idl
+
+interface nsIAddonPolicyService extends nsISupports {
+ readonly defaultCSP: string;
+ readonly defaultCSPV3: string;
+ getBaseCSP(aAddonId: string): string;
+ getExtensionPageCSP(aAddonId: string): string;
+ getGeneratedBackgroundPageUrl(aAddonId: string): string;
+ addonHasPermission(aAddonId: string, aPerm: string): boolean;
+ addonMayLoadURI(aAddonId: string, aURI: nsIURI, aExplicit?: boolean): boolean;
+ getExtensionName(aAddonId: string): string;
+ sourceMayLoadExtensionURI(aSourceURI: nsIURI, aExtensionURI: nsIURI): boolean;
+ extensionURIToAddonId(aURI: nsIURI): string;
+}
+
+interface nsIAddonContentPolicy extends nsISupports {
+ readonly CSP_ALLOW_ANY: 65535;
+ readonly CSP_ALLOW_LOCALHOST: 1;
+ readonly CSP_ALLOW_EVAL: 2;
+ readonly CSP_ALLOW_REMOTE: 4;
+ readonly CSP_ALLOW_WASM: 8;
+
+ validateAddonCSP(aPolicyString: string, aPermittedPolicy: u32): string;
+}
+
+// https://searchfox.org/mozilla-central/source/caps/nsIDomainPolicy.idl
+
+interface nsIDomainPolicy extends nsISupports {
+ readonly blocklist: nsIDomainSet;
+ readonly superBlocklist: nsIDomainSet;
+ readonly allowlist: nsIDomainSet;
+ readonly superAllowlist: nsIDomainSet;
+ deactivate(): void;
+}
+
+interface nsIDomainSet extends nsISupports {
+ add(aDomain: nsIURI): void;
+ remove(aDomain: nsIURI): void;
+ clear(): void;
+ contains(aDomain: nsIURI): boolean;
+ containsSuperDomain(aDomain: nsIURI): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/caps/nsIPrincipal.idl
+
+interface nsIPrincipal extends nsISupports {
+ equals(other: nsIPrincipal): boolean;
+ equalsForPermission(other: nsIPrincipal, aExactHost: boolean): boolean;
+ equalsConsideringDomain(other: nsIPrincipal): boolean;
+ equalsURI(aOtherURI: nsIURI): boolean;
+ readonly URI: nsIURI;
+ subsumes(other: nsIPrincipal): boolean;
+ subsumesConsideringDomain(other: nsIPrincipal): boolean;
+ subsumesConsideringDomainIgnoringFPD(other: nsIPrincipal): boolean;
+ checkMayLoad(uri: nsIURI, allowIfInheritsPrincipal: boolean): void;
+ checkMayLoadWithReporting(uri: nsIURI, allowIfInheritsPrincipal: boolean, innerWindowID: u64): void;
+ isThirdPartyURI(uri: nsIURI): boolean;
+ isThirdPartyPrincipal(principal: nsIPrincipal): boolean;
+ isThirdPartyChannel(channel: nsIChannel): boolean;
+ readonly originAttributes: any;
+ readonly origin: string;
+ readonly hostPort: string;
+ readonly asciiHost: string;
+ readonly host: string;
+ readonly prePath: string;
+ readonly filePath: string;
+ readonly asciiSpec: string;
+ readonly spec: string;
+ readonly exposablePrePath: string;
+ readonly exposableSpec: string;
+ readonly scheme: string;
+ schemeIs(scheme: string): boolean;
+ isURIInPrefList(pref: string): boolean;
+ isURIInList(list: string): boolean;
+ isContentAccessibleAboutURI(): boolean;
+ isSameOrigin(otherURI: nsIURI): boolean;
+ allowsRelaxStrictFileOriginPolicy(aURI: nsIURI): boolean;
+ hasFirstpartyStorageAccess(aWindow: mozIDOMWindow, rejectedReason: OutParam<u32>): boolean;
+ readonly localStorageQuotaKey: string;
+ readonly isOriginPotentiallyTrustworthy: boolean;
+ readonly isLoopbackHost: boolean;
+ getAboutModuleFlags(): u32;
+ readonly storageOriginKey: string;
+ readonly originNoSuffix: string;
+ readonly originSuffix: string;
+ readonly siteOrigin: string;
+ readonly siteOriginNoSuffix: string;
+ readonly baseDomain: string;
+ readonly addonId: string;
+ readonly addonPolicy: WebExtensionPolicy;
+ readonly contentScriptAddonPolicy: WebExtensionPolicy;
+ readonly userContextId: u32;
+ readonly privateBrowsingId: u32;
+ readonly isNullPrincipal: boolean;
+ readonly isContentPrincipal: boolean;
+ readonly isExpandedPrincipal: boolean;
+ readonly isSystemPrincipal: boolean;
+ readonly isAddonOrExpandedAddonPrincipal: boolean;
+ readonly isOnion: boolean;
+ readonly isScriptAllowedByPolicy: boolean;
+ isL10nAllowed(aDocumentURI: nsIURI): boolean;
+ readonly nextSubDomainPrincipal: nsIPrincipal;
+ readonly isIpAddress: boolean;
+ readonly isLocalIpAddress: boolean;
+ readonly precursorPrincipal: nsIPrincipal;
+}
+
+// https://searchfox.org/mozilla-central/source/caps/nsIScriptSecurityManager.idl
+
+interface nsIScriptSecurityManager extends nsISupports {
+ readonly STANDARD: 0;
+ readonly LOAD_IS_AUTOMATIC_DOCUMENT_REPLACEMENT: 1;
+ readonly ALLOW_CHROME: 2;
+ readonly DISALLOW_INHERIT_PRINCIPAL: 4;
+ readonly DISALLOW_SCRIPT_OR_DATA: 4;
+ readonly DISALLOW_SCRIPT: 8;
+ readonly DONT_REPORT_ERRORS: 16;
+ readonly DEFAULT_USER_CONTEXT_ID: 0;
+ readonly DEFAULT_PRIVATE_BROWSING_ID: 0;
+
+ checkLoadURIWithPrincipalXPCOM(aPrincipal: nsIPrincipal, uri: nsIURI, flags: u32, innerWindowID?: u64): void;
+ checkLoadURIWithPrincipal(aPrincipal: nsIPrincipal, uri: nsIURI, flags?: u32, innerWindowID?: u64): void;
+ checkLoadURIStrWithPrincipalXPCOM(aPrincipal: nsIPrincipal, uri: string, flags: u32): void;
+ checkLoadURIStrWithPrincipal(aPrincipal: nsIPrincipal, uri: string, flags?: u32): void;
+ inFileURIAllowlist(aUri: nsIURI): boolean;
+ getSystemPrincipal(): nsIPrincipal;
+ getLoadContextContentPrincipal(uri: nsIURI, loadContext: nsILoadContext): nsIPrincipal;
+ getDocShellContentPrincipal(uri: nsIURI, docShell: nsIDocShell): nsIPrincipal;
+ principalWithOA(principal: nsIPrincipal, originAttributes: any): nsIPrincipal;
+ createContentPrincipal(uri: nsIURI, originAttributes: any): nsIPrincipal;
+ createContentPrincipalFromOrigin(origin: string): nsIPrincipal;
+ principalToJSON(principal: nsIPrincipal): string;
+ JSONToPrincipal(json: string): nsIPrincipal;
+ createNullPrincipal(originAttributes: any): nsIPrincipal;
+ checkSameOriginURI(aSourceURI: nsIURI, aTargetURI: nsIURI, reportError: boolean, fromPrivateWindow: boolean): void;
+ getChannelResultPrincipal(aChannel: nsIChannel): nsIPrincipal;
+ getChannelResultStoragePrincipal(aChannel: nsIChannel): nsIPrincipal;
+ getChannelResultPrincipals(aChannel: nsIChannel, aPrincipal: OutParam<nsIPrincipal>, aPartitionedPrincipal: OutParam<nsIPrincipal>): void;
+ getChannelURIPrincipal(aChannel: nsIChannel): nsIPrincipal;
+ activateDomainPolicy(): nsIDomainPolicy;
+ readonly domainPolicyActive: boolean;
+ policyAllowsScript(aDomain: nsIURI): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/captivedetect/nsICaptivePortalDetector.idl
+
+interface nsICaptivePortalCallback extends nsISupports {
+ prepare(): void;
+ complete(success: boolean): void;
+}
+
+interface nsICaptivePortalDetector extends nsISupports {
+ checkCaptivePortal(ifname: string, callback: nsICaptivePortalCallback): void;
+ abort(ifname: string): void;
+ cancelLogin(eventId: string): void;
+ finishPreparation(ifname: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/cascade_bloom_filter/nsICascadeFilter.idl
+
+interface nsICascadeFilter extends nsISupports {
+ setFilterData(data: u8[]): void;
+ has(key: string): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/chrome/nsIChromeRegistry.idl
+
+interface nsIChromeRegistry extends nsISupports {
+ readonly NONE: 0;
+ readonly PARTIAL: 1;
+ readonly FULL: 2;
+
+ convertChromeURL(aChromeURL: nsIURI): nsIURI;
+ checkForNewChrome(): void;
+}
+
+interface nsIXULChromeRegistry extends nsIChromeRegistry {
+ isLocaleRTL(package: string): boolean;
+ allowScriptsForPackage(url: nsIURI): boolean;
+ allowContentToAccess(url: nsIURI): boolean;
+ canLoadURLRemotely(url: nsIURI): boolean;
+ mustLoadURLRemotely(url: nsIURI): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/chrome/nsIToolkitChromeRegistry.idl
+
+interface nsIToolkitChromeRegistry extends nsIXULChromeRegistry {
+ getLocalesForPackage(aPackage: string): nsIUTF8StringEnumerator;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/commandhandler/nsICommandManager.idl
+
+interface nsICommandManager extends nsISupports {
+ addCommandObserver(aCommandObserver: nsIObserver, aCommandToObserve: string): void;
+ removeCommandObserver(aCommandObserver: nsIObserver, aCommandObserved: string): void;
+ isCommandSupported(aCommandName: string, aTargetWindow: mozIDOMWindowProxy): boolean;
+ isCommandEnabled(aCommandName: string, aTargetWindow: mozIDOMWindowProxy): boolean;
+ getCommandState(aCommandName: string, aTargetWindow: mozIDOMWindowProxy, aCommandParams: nsICommandParams): void;
+ doCommand(aCommandName: string, aCommandParams: nsICommandParams, aTargetWindow: mozIDOMWindowProxy): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/commandhandler/nsICommandParams.idl
+
+interface nsICommandParams extends nsISupports {
+ readonly eNoType: 0;
+ readonly eBooleanType: 1;
+ readonly eLongType: 2;
+ readonly eDoubleType: 3;
+ readonly eWStringType: 4;
+ readonly eISupportsType: 5;
+ readonly eStringType: 6;
+
+ getValueType(name: string): i16;
+ getBooleanValue(name: string): boolean;
+ getLongValue(name: string): i32;
+ getDoubleValue(name: string): double;
+ getStringValue(name: string): string;
+ getCStringValue(name: string): string;
+ getISupportsValue(name: string): nsISupports;
+ setBooleanValue(name: string, value: boolean): void;
+ setLongValue(name: string, value: i32): void;
+ setDoubleValue(name: string, value: double): void;
+ setStringValue(name: string, value: string): void;
+ setCStringValue(name: string, value: string): void;
+ setISupportsValue(name: string, value: nsISupports): void;
+ removeValue(name: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/commandhandler/nsIControllerCommand.idl
+
+interface nsIControllerCommand extends nsISupports {
+ isCommandEnabled(aCommandName: string, aCommandContext: nsISupports): boolean;
+ getCommandStateParams(aCommandName: string, aParams: nsICommandParams, aCommandContext: nsISupports): void;
+ doCommand(aCommandName: string, aCommandContext: nsISupports): void;
+ doCommandParams(aCommandName: string, aParams: nsICommandParams, aCommandContext: nsISupports): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/commandhandler/nsIControllerCommandTable.idl
+
+interface nsIControllerCommandTable extends nsISupports {
+ makeImmutable(): void;
+ registerCommand(aCommandName: string, aCommand: nsIControllerCommand): void;
+ unregisterCommand(aCommandName: string, aCommand: nsIControllerCommand): void;
+ findCommandHandler(aCommandName: string): nsIControllerCommand;
+ isCommandEnabled(aCommandName: string, aCommandRefCon: nsISupports): boolean;
+ updateCommandState(aCommandName: string, aCommandRefCon: nsISupports): void;
+ supportsCommand(aCommandName: string, aCommandRefCon: nsISupports): boolean;
+ doCommand(aCommandName: string, aCommandRefCon: nsISupports): void;
+ doCommandParams(aCommandName: string, aParam: nsICommandParams, aCommandRefCon: nsISupports): void;
+ getCommandState(aCommandName: string, aParam: nsICommandParams, aCommandRefCon: nsISupports): void;
+ getSupportedCommands(): string[];
+}
+
+// https://searchfox.org/mozilla-central/source/dom/commandhandler/nsIControllerContext.idl
+
+interface nsIControllerContext extends nsISupports {
+ setCommandContext(aCommandContext: nsISupports): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/commandlines/nsICommandLine.idl
+
+interface nsICommandLine extends nsISupports {
+ readonly STATE_INITIAL_LAUNCH: 0;
+ readonly STATE_REMOTE_AUTO: 1;
+ readonly STATE_REMOTE_EXPLICIT: 2;
+
+ readonly length: i32;
+ getArgument(aIndex: i32): string;
+ findFlag(aFlag: string, aCaseSensitive: boolean): i32;
+ removeArguments(aStart: i32, aEnd: i32): void;
+ handleFlag(aFlag: string, aCaseSensitive: boolean): boolean;
+ handleFlagWithParam(aFlag: string, aCaseSensitive: boolean): string;
+ readonly state: u32;
+ preventDefault: boolean;
+ readonly workingDirectory: nsIFile;
+ resolveFile(aArgument: string): nsIFile;
+ resolveURI(aArgument: string): nsIURI;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/commandlines/nsICommandLineHandler.idl
+
+interface nsICommandLineHandler extends nsISupports {
+ handle(aCommandLine: nsICommandLine): void;
+ readonly helpInfo: string;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/commandlines/nsICommandLineRunner.idl
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/commandlines/nsICommandLineValidator.idl
+
+interface nsICommandLineValidator extends nsISupports {
+ validate(aCommandLine: nsICommandLine): void;
+}
+
+// https://searchfox.org/mozilla-central/source/editor/composer/nsIEditingSession.idl
+
+interface nsIEditingSession extends nsISupports {
+ readonly eEditorOK: 0;
+ readonly eEditorCreationInProgress: 1;
+ readonly eEditorErrorCantEditMimeType: 2;
+ readonly eEditorErrorFileNotFound: 3;
+ readonly eEditorErrorCantEditFramesets: 8;
+ readonly eEditorErrorUnknown: 9;
+
+ readonly editorStatus: u32;
+ makeWindowEditable(window: mozIDOMWindowProxy, aEditorType: string, doAfterUriLoad: boolean, aMakeWholeDocumentEditable: boolean, aInteractive: boolean): void;
+ windowIsEditable(window: mozIDOMWindowProxy): boolean;
+ getEditorForWindow(window: mozIDOMWindowProxy): nsIEditor;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/events/nsIEventListenerService.idl
+
+interface nsIEventListenerChange extends nsISupports {
+ readonly target: EventTarget;
+}
+
+type nsIListenerChangeListener = Callable<{
+ listenersChanged(aEventListenerChanges: nsIArray): void;
+}>
+
+interface nsIEventListenerInfo extends nsISupports {
+ readonly type: string;
+ readonly capturing: boolean;
+ readonly allowsUntrusted: boolean;
+ readonly inSystemEventGroup: boolean;
+ enabled: boolean;
+ readonly listenerObject: any;
+ toSource(): string;
+}
+
+interface nsIEventListenerService extends nsISupports {
+ getListenerInfoFor(aEventTarget: EventTarget): nsIEventListenerInfo[];
+ hasListenersFor(aEventTarget: EventTarget, aType: string): boolean;
+ addListenerForAllEvents(target: EventTarget, listener: any, aUseCapture?: boolean, aWantsUntrusted?: boolean, aSystemEventGroup?: boolean): void;
+ removeListenerForAllEvents(target: EventTarget, listener: any, aUseCapture?: boolean, aSystemEventGroup?: boolean): void;
+ addListenerChangeListener(aListener: nsIListenerChangeListener): void;
+ removeListenerChangeListener(aListener: nsIListenerChangeListener): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/media/gmp/mozIGeckoMediaPluginChromeService.idl
+
+interface mozIGeckoMediaPluginChromeService extends nsISupports {
+ addPluginDirectory(directory: string): void;
+ removePluginDirectory(directory: string): void;
+ removeAndDeletePluginDirectory(directory: string, defer?: boolean): void;
+ forgetThisSite(site: string, aPattern: string): void;
+ forgetThisBaseDomain(baseDomain: string): void;
+ isPersistentStorageAllowed(nodeId: string): boolean;
+ getStorageDir(): nsIFile;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/media/gmp/mozIGeckoMediaPluginService.idl
+
+interface mozIGeckoMediaPluginService extends nsISupports {
+ readonly thread: nsIThread;
+ RunPluginCrashCallbacks(pluginId: u32, pluginName: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/mozapps/defaultagent/nsIDefaultAgent.idl
+
+interface nsIDefaultAgent extends nsISupports {
+ registerTask(aUniqueToken: string): void;
+ updateTask(aUniqueToken: string): void;
+ unregisterTask(aUniqueToken: string): void;
+ uninstall(aUniqueToken: string): void;
+ appRanRecently(): boolean;
+ getDefaultBrowser(): string;
+ getReplacePreviousDefaultBrowser(aCurrentBrowser: string): string;
+ getDefaultPdfHandler(): string;
+ sendPing(aCurrentBrowser: string, aPreviousBrowser: string, aPdfHandler: string, aNotificationShown: string, aNotificationAction: string): void;
+ setDefaultBrowserUserChoice(aAumid: string, aExtraFileExtensions: string[]): void;
+ setDefaultBrowserUserChoiceAsync(aAumid: string, aExtraFileExtensions: string[]): Promise<any>;
+ setDefaultExtensionHandlersUserChoice(aAumid: string, aFileExtensions: string[]): void;
+ agentDisabled(): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/mozapps/defaultagent/nsIWindowsMutex.idl
+
+interface nsIWindowsMutex extends nsISupports {
+ tryLock(): void;
+ isLocked(): boolean;
+ unlock(): void;
+}
+
+interface nsIWindowsMutexFactory extends nsISupports {
+ createMutex(aName: string): nsIWindowsMutex;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsIDocShell.idl
+
+} // global
+
+declare namespace nsIDocShell {
+
+enum DocShellEnumeratorDirection {
+ ENUMERATE_FORWARDS = 0,
+ ENUMERATE_BACKWARDS = 1,
+}
+
+enum AppType {
+ APP_TYPE_UNKNOWN = 0,
+ APP_TYPE_MAIL = 1,
+ APP_TYPE_EDITOR = 2,
+}
+
+enum BusyFlags {
+ BUSY_FLAGS_NONE = 0,
+ BUSY_FLAGS_BUSY = 1,
+ BUSY_FLAGS_BEFORE_PAGE_LOAD = 2,
+ BUSY_FLAGS_PAGE_LOADING = 4,
+}
+
+enum LoadCommand {
+ LOAD_CMD_NORMAL = 1,
+ LOAD_CMD_RELOAD = 2,
+ LOAD_CMD_HISTORY = 4,
+ LOAD_CMD_PUSHSTATE = 8,
+}
+
+enum MetaViewportOverride {
+ META_VIEWPORT_OVERRIDE_DISABLED = 0,
+ META_VIEWPORT_OVERRIDE_ENABLED = 1,
+ META_VIEWPORT_OVERRIDE_NONE = 2,
+}
+
+}
+
+declare global {
+
+interface nsIDocShell extends nsIDocShellTreeItem, Enums<typeof nsIDocShell.DocShellEnumeratorDirection & typeof nsIDocShell.AppType & typeof nsIDocShell.BusyFlags & typeof nsIDocShell.LoadCommand & typeof nsIDocShell.MetaViewportOverride> {
+ setCancelContentJSEpoch(aEpoch: i32): void;
+ addState(aData: any, aTitle: string, aURL: string, aReplace: boolean): void;
+ prepareForNewContentModel(): void;
+ setCurrentURIForSessionStore(aURI: nsIURI): void;
+ readonly docViewer: nsIDocumentViewer;
+ readonly outerWindowID: u64;
+ chromeEventHandler: EventTarget;
+ customUserAgent: string;
+ cssErrorReportingEnabled: boolean;
+ allowMetaRedirects: boolean;
+ allowSubframes: boolean;
+ allowImages: boolean;
+ allowMedia: boolean;
+ allowDNSPrefetch: boolean;
+ allowWindowControl: boolean;
+ allowContentRetargeting: boolean;
+ allowContentRetargetingOnChildren: boolean;
+ getAllDocShellsInSubtree(aItemType: i32, aDirection: nsIDocShell.DocShellEnumeratorDirection): nsIDocShell[];
+ appType: nsIDocShell.AppType;
+ allowAuth: boolean;
+ zoom: float;
+ tabToTreeOwner(forward: boolean, forDocumentNavigation: boolean): boolean;
+ readonly busyFlags: nsIDocShell.BusyFlags;
+ loadType: u32;
+ defaultLoadFlags: nsLoadFlags;
+ isBeingDestroyed(): boolean;
+ readonly isExecutingOnLoadHandler: boolean;
+ layoutHistoryState: nsILayoutHistoryState;
+ readonly loadURIDelegate: nsILoadURIDelegate;
+ suspendRefreshURIs(): void;
+ resumeRefreshURIs(): void;
+ beginRestore(viewer: nsIDocumentViewer, top: boolean): void;
+ finishRestore(): void;
+ clearCachedUserAgent(): void;
+ clearCachedPlatform(): void;
+ readonly restoringDocument: boolean;
+ useErrorPages: boolean;
+ displayLoadError(aError: nsresult, aURI: nsIURI, aURL: string, aFailedChannel?: nsIChannel): boolean;
+ readonly failedChannel: nsIChannel;
+ readonly previousEntryIndex: i32;
+ readonly loadedEntryIndex: i32;
+ historyPurged(numEntries: i32): void;
+ readonly currentDocumentChannel: nsIChannel;
+ readonly isInUnload: boolean;
+ exitPrintPreview(): void;
+ readonly historyID: nsID;
+ createAboutBlankDocumentViewer(aPrincipal: nsIPrincipal, aPartitionedPrincipal: nsIPrincipal, aCSP?: nsIContentSecurityPolicy): void;
+ readonly charset: string;
+ forceEncodingDetection(): void;
+ now(): DOMHighResTimeStamp;
+ addWeakPrivacyTransitionObserver(obs: nsIPrivacyTransitionObserver): void;
+ addWeakReflowObserver(obs: nsIReflowObserver): void;
+ removeWeakReflowObserver(obs: nsIReflowObserver): void;
+ readonly isTopLevelContentDocShell: boolean;
+ readonly asyncPanZoomEnabled: boolean;
+ readonly mayEnableCharacterEncodingMenu: boolean;
+ editor: nsIEditor;
+ readonly editable: boolean;
+ readonly hasEditingSession: boolean;
+ makeEditable(inWaitForUriLoad: boolean): void;
+ getCurrentSHEntry(aEntry: OutParam<nsISHEntry>): boolean;
+ isCommandEnabled(command: string): boolean;
+ doCommand(command: string): void;
+ doCommandWithParams(command: string, aParams: nsICommandParams): void;
+ readonly hasLoadedNonBlankURI: boolean;
+ windowDraggingAllowed: boolean;
+ currentScrollRestorationIsManual: boolean;
+ getOriginAttributes(): any;
+ setOriginAttributes(aAttrs: any): void;
+ readonly editingSession: nsIEditingSession;
+ readonly browserChild: nsIBrowserChild;
+ metaViewportOverride: nsIDocShell.MetaViewportOverride;
+ useTrackingProtection: boolean;
+ setColorMatrix(aMatrix: float[]): void;
+ readonly isForceReloading: boolean;
+ getColorMatrix(): float[];
+ readonly messageManager: ContentFrameMessageManager;
+ getHasTrackingContentBlocked(): Promise<any>;
+ readonly isNavigating: boolean;
+ synchronizeLayoutHistoryState(): void;
+ persistLayoutHistoryState(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsIDocShellTreeItem.idl
+
+interface nsIDocShellTreeItem extends nsISupports {
+ readonly typeChrome: 0;
+ readonly typeContent: 1;
+ readonly typeContentWrapper: 2;
+ readonly typeChromeWrapper: 3;
+ readonly typeAll: 2147483647;
+
+ name: string;
+ nameEquals(name: string): boolean;
+ readonly itemType: i32;
+ readonly parent: nsIDocShellTreeItem;
+ readonly sameTypeParent: nsIDocShellTreeItem;
+ readonly rootTreeItem: nsIDocShellTreeItem;
+ readonly sameTypeRootTreeItem: nsIDocShellTreeItem;
+ readonly treeOwner: nsIDocShellTreeOwner;
+ readonly childCount: i32;
+ getChildAt(index: i32): nsIDocShellTreeItem;
+ readonly browsingContext: BrowsingContext;
+ readonly domWindow: mozIDOMWindowProxy;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsIDocShellTreeOwner.idl
+
+interface nsIDocShellTreeOwner extends nsISupports {
+ contentShellAdded(aContentShell: nsIDocShellTreeItem, aPrimary: boolean): void;
+ contentShellRemoved(aContentShell: nsIDocShellTreeItem): void;
+ readonly primaryContentShell: nsIDocShellTreeItem;
+ remoteTabAdded(aTab: nsIRemoteTab, aPrimary: boolean): void;
+ remoteTabRemoved(aTab: nsIRemoteTab): void;
+ readonly primaryRemoteTab: nsIRemoteTab;
+ readonly primaryContentBrowsingContext: BrowsingContext;
+ sizeShellTo(shell: nsIDocShellTreeItem, cx: i32, cy: i32): void;
+ getPrimaryContentSize(width: OutParam<i32>, height: OutParam<i32>): void;
+ setPrimaryContentSize(width: i32, height: i32): void;
+ getRootShellSize(width: OutParam<i32>, height: OutParam<i32>): void;
+ setRootShellSize(width: i32, height: i32): void;
+ setPersistence(aPersistPosition: boolean, aPersistSize: boolean, aPersistSizeMode: boolean): void;
+ getPersistence(aPersistPosition: OutParam<boolean>, aPersistSize: OutParam<boolean>, aPersistSizeMode: OutParam<boolean>): void;
+ readonly tabCount: u32;
+ readonly hasPrimaryContent: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsIDocumentLoaderFactory.idl
+
+interface nsIDocumentLoaderFactory extends nsISupports {
+ createInstance(aCommand: string, aChannel: nsIChannel, aLoadGroup: nsILoadGroup, aContentType: string, aContainer: nsIDocShell, aExtraInfo: nsISupports, aDocListenerResult: OutParam<nsIStreamListener>): nsIDocumentViewer;
+ createInstanceForDocument(aContainer: nsISupports, aDocument: Document, aCommand: string): nsIDocumentViewer;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsIDocumentViewer.idl
+
+} // global
+
+declare namespace nsIDocumentViewer {
+
+enum PermitUnloadAction {
+ ePrompt = 0,
+ eDontPromptAndDontUnload = 1,
+ eDontPromptAndUnload = 2,
+}
+
+enum PermitUnloadResult {
+ eAllowNavigation = 0,
+ eRequestBlockNavigation = 1,
+}
+
+}
+
+declare global {
+
+interface nsIDocumentViewer extends nsISupports, Enums<typeof nsIDocumentViewer.PermitUnloadAction & typeof nsIDocumentViewer.PermitUnloadResult> {
+ readonly eDelayResize: 1;
+
+ container: nsIDocShell;
+ loadComplete(aStatus: nsresult): void;
+ permitUnload(aAction?: nsIDocumentViewer.PermitUnloadAction): boolean;
+ readonly inPermitUnload: boolean;
+ readonly beforeUnloadFiring: boolean;
+ pageHide(isUnload: boolean): void;
+ close(historyEntry: nsISHEntry): void;
+ destroy(): void;
+ stop(): void;
+ readonly DOMDocument: Document;
+ move(aX: i32, aY: i32): void;
+ show(): void;
+ hide(): void;
+ sticky: boolean;
+ open(aState: nsISupports, aSHEntry: nsISHEntry): void;
+ clearHistoryEntry(): void;
+ setPageModeForTesting(aPageMode: boolean, aPrintSettings: nsIPrintSettings): void;
+ readonly historyEntry: nsISHEntry;
+ readonly isTabModalPromptAllowed: boolean;
+ isHidden: boolean;
+ readonly deviceFullZoomForTest: float;
+ authorStyleDisabled: boolean;
+ getContentSize(maxWidth: i32, maxHeight: i32, prefWidth: i32, width: OutParam<i32>, height: OutParam<i32>): void;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsIDocumentViewerEdit.idl
+
+interface nsIDocumentViewerEdit extends nsISupports {
+ readonly COPY_IMAGE_TEXT: 1;
+ readonly COPY_IMAGE_HTML: 2;
+ readonly COPY_IMAGE_DATA: 4;
+ readonly COPY_IMAGE_ALL: -1;
+
+ clearSelection(): void;
+ selectAll(): void;
+ copySelection(): void;
+ readonly copyable: boolean;
+ copyLinkLocation(): void;
+ readonly inLink: boolean;
+ copyImage(aCopyFlags: i32): void;
+ readonly inImage: boolean;
+ getContents(aMimeType: string, aSelectionOnly: boolean): string;
+ readonly canGetContents: boolean;
+ setCommandNode(aNode: Node): void;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsILoadContext.idl
+
+interface nsILoadContext extends nsISupports {
+ readonly associatedWindow: mozIDOMWindowProxy;
+ readonly topWindow: mozIDOMWindowProxy;
+ readonly topFrameElement: Element;
+ readonly isContent: boolean;
+ usePrivateBrowsing: boolean;
+ readonly useRemoteTabs: boolean;
+ readonly useRemoteSubframes: boolean;
+ useTrackingProtection: boolean;
+ readonly originAttributes: any;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsILoadURIDelegate.idl
+
+interface nsILoadURIDelegate extends nsISupports {
+ handleLoadError(aURI: nsIURI, aError: nsresult, aErrorModule: i16): nsIURI;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsIPrivacyTransitionObserver.idl
+
+type nsIPrivacyTransitionObserver = Callable<{
+ privateModeChanged(enabled: boolean): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsIReflowObserver.idl
+
+interface nsIReflowObserver extends nsISupports {
+ reflow(start: DOMHighResTimeStamp, end: DOMHighResTimeStamp): void;
+ reflowInterruptible(start: DOMHighResTimeStamp, end: DOMHighResTimeStamp): void;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsIRefreshURI.idl
+
+interface nsIRefreshURI extends nsISupports {
+ refreshURI(aURI: nsIURI, aPrincipal: nsIPrincipal, aMillis: u32): void;
+ forceRefreshURI(aURI: nsIURI, aPrincipal: nsIPrincipal, aMillis: u32): void;
+ cancelRefreshURITimers(): void;
+ readonly refreshPending: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsITooltipListener.idl
+
+interface nsITooltipListener extends nsISupports {
+ onShowTooltip(aXCoords: i32, aYCoords: i32, aTipText: string, aTipDir: string): void;
+ onHideTooltip(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsITooltipTextProvider.idl
+
+interface nsITooltipTextProvider extends nsISupports {
+ getNodeText(aNode: Node, aText: OutParam<string>, aDirection: OutParam<string>): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsIURIFixup.idl
+
+interface nsIURIFixupInfo extends nsISupports {
+ consumer: BrowsingContext;
+ preferredURI: nsIURI;
+ fixedURI: nsIURI;
+ keywordProviderName: string;
+ keywordAsSent: string;
+ wasSchemelessInput: boolean;
+ fixupChangedProtocol: boolean;
+ fixupCreatedAlternateURI: boolean;
+ originalInput: string;
+ postData: nsIInputStream;
+}
+
+interface nsIURIFixup extends nsISupports {
+ readonly FIXUP_FLAG_NONE: 0;
+ readonly FIXUP_FLAG_ALLOW_KEYWORD_LOOKUP: 1;
+ readonly FIXUP_FLAGS_MAKE_ALTERNATE_URI: 2;
+ readonly FIXUP_FLAG_PRIVATE_CONTEXT: 4;
+ readonly FIXUP_FLAG_FIX_SCHEME_TYPOS: 8;
+
+ getFixupURIInfo(aURIText: string, aFixupFlags?: u32): nsIURIFixupInfo;
+ webNavigationFlagsToFixupFlags(aURIText: string, aDocShellFlags: u32): u32;
+ keywordToURI(aKeyword: string, aIsPrivateContext?: boolean): nsIURIFixupInfo;
+ forceHttpFixup(aUriString: string): nsIURIFixupInfo;
+ checkHost(aURI: nsIURI, aListener: nsIDNSListener, aOriginAttributes?: any): void;
+ isDomainKnown(aDomain: string): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsIWebNavigation.idl
+
+interface nsIWebNavigation extends nsISupports {
+ readonly LOAD_FLAGS_MASK: 65535;
+ readonly LOAD_FLAGS_NONE: 0;
+ readonly LOAD_FLAGS_IS_REFRESH: 16;
+ readonly LOAD_FLAGS_IS_LINK: 32;
+ readonly LOAD_FLAGS_BYPASS_HISTORY: 64;
+ readonly LOAD_FLAGS_REPLACE_HISTORY: 128;
+ readonly LOAD_FLAGS_BYPASS_CACHE: 256;
+ readonly LOAD_FLAGS_BYPASS_PROXY: 512;
+ readonly LOAD_FLAGS_CHARSET_CHANGE: 1024;
+ readonly LOAD_FLAGS_STOP_CONTENT: 2048;
+ readonly LOAD_FLAGS_FROM_EXTERNAL: 4096;
+ readonly LOAD_FLAGS_FIRST_LOAD: 16384;
+ readonly LOAD_FLAGS_ALLOW_POPUPS: 32768;
+ readonly LOAD_FLAGS_BYPASS_CLASSIFIER: 65536;
+ readonly LOAD_FLAGS_FORCE_ALLOW_COOKIES: 131072;
+ readonly LOAD_FLAGS_DISALLOW_INHERIT_PRINCIPAL: 262144;
+ readonly LOAD_FLAGS_ERROR_LOAD_CHANGES_RV: 524288;
+ readonly LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP: 1048576;
+ readonly LOAD_FLAGS_FIXUP_SCHEME_TYPOS: 2097152;
+ readonly LOAD_FLAGS_FORCE_ALLOW_DATA_URI: 4194304;
+ readonly LOAD_FLAGS_IS_REDIRECT: 8388608;
+ readonly LOAD_FLAGS_DISABLE_TRR: 16777216;
+ readonly LOAD_FLAGS_FORCE_TRR: 33554432;
+ readonly LOAD_FLAGS_BYPASS_LOAD_URI_DELEGATE: 67108864;
+ readonly LOAD_FLAGS_USER_ACTIVATION: 134217728;
+ readonly STOP_NETWORK: 1;
+ readonly STOP_CONTENT: 2;
+ readonly STOP_ALL: 3;
+
+ readonly canGoBack: boolean;
+ readonly canGoForward: boolean;
+ goBack(aRequireUserInteraction?: boolean, aUserActivation?: boolean): void;
+ goForward(aRequireUserInteraction?: boolean, aUserActivation?: boolean): void;
+ gotoIndex(index: i32, aUserActivation?: boolean): void;
+ loadURI(aURI: nsIURI, aLoadURIOptions: any): void;
+ fixupAndLoadURIString(aURIString: string, aLoadURIOptions: any): void;
+ reload(aReloadFlags: u32): void;
+ stop(aStopFlags: u32): void;
+ readonly document: Document;
+ readonly currentURI: nsIURI;
+ readonly sessionHistory: nsISupports;
+ resumeRedirectedLoad(aLoadIdentifier: u64, aHistoryIndex: i32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsIWebNavigationInfo.idl
+
+interface nsIWebNavigationInfo extends nsISupports {
+ readonly UNSUPPORTED: 0;
+ readonly IMAGE: 1;
+ readonly FALLBACK: 2;
+ readonly OTHER: 32768;
+
+ isTypeSupported(aType: string): u32;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/base/nsIWebPageDescriptor.idl
+
+interface nsIWebPageDescriptor extends nsISupports {
+ loadPageAsViewSource(otherDocShell: nsIDocShell, aURL: string): void;
+ readonly currentDescriptor: nsISupports;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/base/mozIDOMWindow.idl
+
+interface mozIDOMWindow extends nsISupports {
+}
+
+interface mozIDOMWindowProxy extends nsISupports {
+}
+
+// https://searchfox.org/mozilla-central/source/dom/base/nsIContentPolicy.idl
+
+} // global
+
+declare namespace nsIContentPolicy {
+
+enum nsContentPolicyType {
+ TYPE_INVALID = 0,
+ TYPE_OTHER = 1,
+ TYPE_SCRIPT = 2,
+ TYPE_IMAGE = 3,
+ TYPE_STYLESHEET = 4,
+ TYPE_OBJECT = 5,
+ TYPE_DOCUMENT = 6,
+ TYPE_SUBDOCUMENT = 7,
+ TYPE_PING = 10,
+ TYPE_XMLHTTPREQUEST = 11,
+ TYPE_OBJECT_SUBREQUEST = 12,
+ TYPE_DTD = 13,
+ TYPE_FONT = 14,
+ TYPE_MEDIA = 15,
+ TYPE_WEBSOCKET = 16,
+ TYPE_CSP_REPORT = 17,
+ TYPE_XSLT = 18,
+ TYPE_BEACON = 19,
+ TYPE_FETCH = 20,
+ TYPE_IMAGESET = 21,
+ TYPE_WEB_MANIFEST = 22,
+ TYPE_INTERNAL_SCRIPT = 23,
+ TYPE_INTERNAL_WORKER = 24,
+ TYPE_INTERNAL_SHARED_WORKER = 25,
+ TYPE_INTERNAL_EMBED = 26,
+ TYPE_INTERNAL_OBJECT = 27,
+ TYPE_INTERNAL_FRAME = 28,
+ TYPE_INTERNAL_IFRAME = 29,
+ TYPE_INTERNAL_AUDIO = 30,
+ TYPE_INTERNAL_VIDEO = 31,
+ TYPE_INTERNAL_TRACK = 32,
+ TYPE_INTERNAL_XMLHTTPREQUEST = 33,
+ TYPE_INTERNAL_EVENTSOURCE = 34,
+ TYPE_INTERNAL_SERVICE_WORKER = 35,
+ TYPE_INTERNAL_SCRIPT_PRELOAD = 36,
+ TYPE_INTERNAL_IMAGE = 37,
+ TYPE_INTERNAL_IMAGE_PRELOAD = 38,
+ TYPE_INTERNAL_STYLESHEET = 39,
+ TYPE_INTERNAL_STYLESHEET_PRELOAD = 40,
+ TYPE_INTERNAL_IMAGE_FAVICON = 41,
+ TYPE_INTERNAL_WORKER_IMPORT_SCRIPTS = 42,
+ TYPE_SAVEAS_DOWNLOAD = 43,
+ TYPE_SPECULATIVE = 44,
+ TYPE_INTERNAL_MODULE = 45,
+ TYPE_INTERNAL_MODULE_PRELOAD = 46,
+ TYPE_INTERNAL_DTD = 47,
+ TYPE_INTERNAL_FORCE_ALLOWED_DTD = 48,
+ TYPE_INTERNAL_AUDIOWORKLET = 49,
+ TYPE_INTERNAL_PAINTWORKLET = 50,
+ TYPE_INTERNAL_FONT_PRELOAD = 51,
+ TYPE_INTERNAL_CHROMEUTILS_COMPILED_SCRIPT = 52,
+ TYPE_INTERNAL_FRAME_MESSAGEMANAGER_SCRIPT = 53,
+ TYPE_INTERNAL_FETCH_PRELOAD = 54,
+ TYPE_UA_FONT = 55,
+ TYPE_PROXIED_WEBRTC_MEDIA = 56,
+ TYPE_WEB_IDENTITY = 57,
+ TYPE_INTERNAL_WORKER_STATIC_MODULE = 58,
+ TYPE_WEB_TRANSPORT = 59,
+ TYPE_END = 60,
+}
+
+}
+
+declare global {
+
+interface nsIContentPolicy extends nsISupports, Enums<typeof nsIContentPolicy.nsContentPolicyType> {
+ readonly REJECT_REQUEST: -1;
+ readonly REJECT_TYPE: -2;
+ readonly REJECT_SERVER: -3;
+ readonly REJECT_OTHER: -4;
+ readonly REJECT_POLICY: -5;
+ readonly ACCEPT: 1;
+
+ shouldLoad(aContentLocation: nsIURI, aLoadInfo: nsILoadInfo): i16;
+ shouldProcess(aContentLocation: nsIURI, aLoadInfo: nsILoadInfo): i16;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/base/nsIDroppedLinkHandler.idl
+
+interface nsIDroppedLinkItem extends nsISupports {
+ readonly url: string;
+ readonly name: string;
+ readonly type: string;
+}
+
+interface nsIDroppedLinkHandler extends nsISupports {
+ canDropLink(aEvent: DragEvent, aAllowSameDocument: boolean): boolean;
+ dropLinks(aEvent: DragEvent, aDisallowInherit?: boolean): nsIDroppedLinkItem[];
+ validateURIsForDrop(aEvent: DragEvent, aURIs: string[], aDisallowInherit?: boolean): void;
+ queryLinks(aDataTransfer: DataTransfer): nsIDroppedLinkItem[];
+ getTriggeringPrincipal(aEvent: DragEvent): nsIPrincipal;
+ getCsp(aEvent: DragEvent): nsIContentSecurityPolicy;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/base/nsIEventSourceEventService.idl
+
+interface nsIEventSourceEventListener extends nsISupports {
+ eventSourceConnectionOpened(aHttpChannelId: u64): void;
+ eventSourceConnectionClosed(aHttpChannelId: u64): void;
+ eventReceived(aHttpChannelId: u64, aEventName: string, aLastEventID: string, aData: string, aRetry: u32, aTimeStamp: DOMHighResTimeStamp): void;
+}
+
+interface nsIEventSourceEventService extends nsISupports {
+ addListener(aInnerWindowID: u64, aListener: nsIEventSourceEventListener): void;
+ removeListener(aInnerWindowID: u64, aListener: nsIEventSourceEventListener): void;
+ hasListenerFor(aInnerWindowID: u64): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/base/nsIImageLoadingContent.idl
+
+interface nsIImageLoadingContent extends imgINotificationObserver {
+ readonly UNKNOWN_REQUEST: -1;
+ readonly CURRENT_REQUEST: 0;
+ readonly PENDING_REQUEST: 1;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/base/nsIMessageManager.idl
+
+interface nsIMessageSender extends nsISupports {
+}
+
+// https://searchfox.org/mozilla-central/source/dom/base/nsIObjectLoadingContent.idl
+
+interface nsIObjectLoadingContent extends nsISupports {
+ readonly TYPE_LOADING: 0;
+ readonly TYPE_DOCUMENT: 1;
+ readonly TYPE_FALLBACK: 2;
+
+ readonly actualType: string;
+ readonly displayedType: u32;
+ readonly srcURI: nsIURI;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/base/nsIScriptChannel.idl
+
+// https://searchfox.org/mozilla-central/source/dom/base/nsIScriptableContentIterator.idl
+
+} // global
+
+declare namespace nsIScriptableContentIterator {
+
+enum IteratorType {
+ NOT_INITIALIZED = 0,
+ POST_ORDER_ITERATOR = 1,
+ PRE_ORDER_ITERATOR = 2,
+ SUBTREE_ITERATOR = 3,
+}
+
+}
+
+declare global {
+
+interface nsIScriptableContentIterator extends nsISupports, Enums<typeof nsIScriptableContentIterator.IteratorType> {
+ initWithRootNode(aType: nsIScriptableContentIterator.IteratorType, aRoot: Node): void;
+ initWithRange(aType: nsIScriptableContentIterator.IteratorType, aRange: Range): void;
+ initWithPositions(aType: nsIScriptableContentIterator.IteratorType, aStartContainer: Node, aStartOffset: u32, aEndContainer: Node, aEndOffset: u32): void;
+ first(): void;
+ last(): void;
+ next(): void;
+ prev(): void;
+ readonly currentNode: Node;
+ readonly isDone: boolean;
+ positionAt(aNode: Node): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/base/nsISelectionController.idl
+
+interface nsISelectionController extends nsISelectionDisplay {
+ readonly SELECTION_NONE: 0;
+ readonly SELECTION_NORMAL: 1;
+ readonly SELECTION_SPELLCHECK: 2;
+ readonly SELECTION_IME_RAWINPUT: 3;
+ readonly SELECTION_IME_SELECTEDRAWTEXT: 4;
+ readonly SELECTION_IME_CONVERTEDTEXT: 5;
+ readonly SELECTION_IME_SELECTEDCONVERTEDTEXT: 6;
+ readonly SELECTION_ACCESSIBILITY: 7;
+ readonly SELECTION_FIND: 8;
+ readonly SELECTION_URLSECONDARY: 9;
+ readonly SELECTION_URLSTRIKEOUT: 10;
+ readonly SELECTION_HIGHLIGHT: 11;
+ readonly NUM_SELECTIONTYPES: 12;
+ readonly SELECTION_ANCHOR_REGION: 0;
+ readonly SELECTION_FOCUS_REGION: 1;
+ readonly SELECTION_WHOLE_SELECTION: 2;
+ readonly NUM_SELECTION_REGIONS: 3;
+ readonly SELECTION_OFF: 0;
+ readonly SELECTION_HIDDEN: 1;
+ readonly SELECTION_ON: 2;
+ readonly SELECTION_DISABLED: 3;
+ readonly SELECTION_ATTENTION: 4;
+ readonly SCROLL_SYNCHRONOUS: 2;
+ readonly SCROLL_FIRST_ANCESTOR_ONLY: 4;
+ readonly SCROLL_CENTER_VERTICALLY: 16;
+ readonly SCROLL_OVERFLOW_HIDDEN: 32;
+ readonly SCROLL_FOR_CARET_MOVE: 64;
+ readonly MOVE_LEFT: 0;
+ readonly MOVE_RIGHT: 1;
+ readonly MOVE_UP: 2;
+ readonly MOVE_DOWN: 3;
+
+ setDisplaySelection(toggle: i16): void;
+ getDisplaySelection(): i16;
+ getSelection(type: i16): Selection;
+ scrollSelectionIntoView(type: i16, region: i16, flags: i16): void;
+ repaintSelection(type: i16): void;
+ setCaretEnabled(enabled: boolean): void;
+ setCaretReadOnly(readOnly: boolean): void;
+ getCaretEnabled(): boolean;
+ readonly caretVisible: boolean;
+ setCaretVisibilityDuringSelection(visibility: boolean): void;
+ characterMove(forward: boolean, extend: boolean): void;
+ physicalMove(direction: i16, amount: i16, extend: boolean): void;
+ wordMove(forward: boolean, extend: boolean): void;
+ lineMove(forward: boolean, extend: boolean): void;
+ intraLineMove(forward: boolean, extend: boolean): void;
+ pageMove(forward: boolean, extend: boolean): void;
+ completeScroll(forward: boolean): void;
+ completeMove(forward: boolean, extend: boolean): void;
+ scrollPage(forward: boolean): void;
+ scrollLine(forward: boolean): void;
+ scrollCharacter(right: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/base/nsISelectionDisplay.idl
+
+interface nsISelectionDisplay extends nsISupports {
+ readonly DISPLAY_TEXT: 1;
+ readonly DISPLAY_IMAGES: 2;
+ readonly DISPLAY_FRAMES: 4;
+ readonly DISPLAY_ALL: 7;
+
+ setSelectionFlags(toggle: i16): void;
+ getSelectionFlags(): i16;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/base/nsISelectionListener.idl
+
+interface nsISelectionListener extends nsISupports {
+ readonly NO_REASON: 0;
+ readonly DRAG_REASON: 1;
+ readonly MOUSEDOWN_REASON: 2;
+ readonly MOUSEUP_REASON: 4;
+ readonly KEYPRESS_REASON: 8;
+ readonly SELECTALL_REASON: 16;
+ readonly COLLAPSETOSTART_REASON: 32;
+ readonly COLLAPSETOEND_REASON: 64;
+ readonly IME_REASON: 128;
+ readonly JS_REASON: 256;
+ readonly CHARACTER_AMOUNT: 0;
+ readonly CLUSTER_AMOUNT: 1;
+ readonly WORD_AMOUNT: 2;
+ readonly WORDNOSPACE_AMOUNT: 3;
+ readonly LINE_AMOUNT: 4;
+ readonly BEGINLINE_AMOUNT: 5;
+ readonly ENDLINE_AMOUNT: 6;
+ readonly NO_AMOUNT: 7;
+ readonly PARAGRAPH_AMOUNT: 8;
+
+ notifySelectionChanged(doc: Document, sel: Selection, reason: i16, amount: i32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/base/nsISlowScriptDebug.idl
+
+type nsISlowScriptDebugCallback = Callable<{
+ handleSlowScriptDebug(aWindow: nsIDOMWindow): void;
+}>
+
+type nsISlowScriptDebuggerStartupCallback = Callable<{
+ finishDebuggerStartup(): void;
+}>
+
+type nsISlowScriptDebugRemoteCallback = Callable<{
+ handleSlowScriptDebug(aBrowser: EventTarget, aCallback: nsISlowScriptDebuggerStartupCallback): void;
+}>
+
+interface nsISlowScriptDebug extends nsISupports {
+ activationHandler: nsISlowScriptDebugCallback;
+ remoteActivationHandler: nsISlowScriptDebugRemoteCallback;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/console/nsIConsoleAPIStorage.idl
+
+interface nsIConsoleAPIStorage extends nsISupports {
+ getEvents(aId?: string): any;
+ addLogEventListener(aListener: any, aPrincipal: nsIPrincipal): void;
+ removeLogEventListener(aListener: any): void;
+ recordEvent(aId: string, aEvent: any): void;
+ clearEvents(aId?: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/file/ipc/mozIRemoteLazyInputStream.idl
+
+interface mozIRemoteLazyInputStream extends nsISupports {
+}
+
+// https://searchfox.org/mozilla-central/source/dom/ipc/nsIDOMProcessChild.idl
+
+interface nsIDOMProcessChild extends nsISupports {
+ readonly childID: u64;
+ getActor(name: string): JSProcessActorChild;
+ getExistingActor(name: string): JSProcessActorChild;
+ readonly canSend: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/ipc/nsIDOMProcessParent.idl
+
+interface nsIDOMProcessParent extends nsISupports {
+ readonly childID: u64;
+ readonly osPid: i32;
+ getActor(name: string): JSProcessActorParent;
+ getExistingActor(name: string): JSProcessActorParent;
+ readonly canSend: boolean;
+ readonly remoteType: string;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/ipc/nsIHangReport.idl
+
+interface nsIHangReport extends nsISupports {
+ readonly scriptBrowser: Element;
+ readonly scriptFileName: string;
+ readonly hangDuration: double;
+ readonly addonId: string;
+ readonly childID: u64;
+ userCanceled(): void;
+ terminateScript(): void;
+ beginStartingDebugger(): void;
+ endStartingDebugger(): void;
+ isReportForBrowserOrChildren(aFrameLoader: FrameLoader): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/ipc/nsILoginDetectionService.idl
+
+interface nsILoginDetectionService extends nsISupports {
+ init(): void;
+ isLoginsLoaded(): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/audiochannel/nsIAudioChannelAgent.idl
+
+interface nsISuspendedTypes extends nsISupports {
+ readonly NONE_SUSPENDED: 0;
+ readonly SUSPENDED_BLOCK: 1;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/domstubs.idl
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIBrowser.idl
+
+interface nsIBrowser extends nsISupports {
+ dropLinks(links: string[], triggeringPrincipal: nsIPrincipal): void;
+ swapBrowsers(aOtherBrowser: nsIBrowser): void;
+ closeBrowser(): void;
+ readonly isRemoteBrowser: boolean;
+ readonly permanentKey: any;
+ readonly contentPrincipal: nsIPrincipal;
+ readonly contentPartitionedPrincipal: nsIPrincipal;
+ readonly csp: nsIContentSecurityPolicy;
+ readonly referrerInfo: nsIReferrerInfo;
+ isNavigating: boolean;
+ mayEnableCharacterEncodingMenu: boolean;
+ updateForStateChange(aCharset: string, aDocumentURI: nsIURI, aContentType: string): void;
+ updateWebNavigationForLocationChange(aCanGoBack: boolean, aCanGoForward: boolean): void;
+ updateForLocationChange(aLocation: nsIURI, aCharset: string, aMayEnableCharacterEncodingMenu: boolean, aDocumentURI: nsIURI, aTitle: string, aContentPrincipal: nsIPrincipal, aContentPartitionedPrincipal: nsIPrincipal, aCSP: nsIContentSecurityPolicy, aReferrerInfo: nsIReferrerInfo, aIsSynthetic: boolean, aHasRequestContextID: boolean, aRequestContextID: u64, aContentType: string): void;
+ prepareToChangeRemoteness(): Promise<any>;
+ beforeChangeRemoteness(): void;
+ finishChangeRemoteness(aPendingSwitchId: u64): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIBrowserChild.idl
+
+interface nsIBrowserChild extends nsISupports {
+ readonly messageManager: ContentFrameMessageManager;
+ remoteDropLinks(links: nsIDroppedLinkItem[]): void;
+ contentTransformsReceived(): Promise<any>;
+ readonly tabId: u64;
+ notifyNavigationFinished(): void;
+ readonly chromeOuterWindowID: u64;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIBrowserDOMWindow.idl
+
+interface nsIOpenURIInFrameParams extends nsISupports {
+ readonly openWindowInfo: nsIOpenWindowInfo;
+ referrerInfo: nsIReferrerInfo;
+ readonly isPrivate: boolean;
+ triggeringPrincipal: nsIPrincipal;
+ csp: nsIContentSecurityPolicy;
+ readonly openerBrowser: Element;
+ readonly openerOriginAttributes: any;
+}
+
+interface nsIBrowserDOMWindow extends nsISupports {
+ readonly OPEN_DEFAULTWINDOW: 0;
+ readonly OPEN_CURRENTWINDOW: 1;
+ readonly OPEN_NEWWINDOW: 2;
+ readonly OPEN_NEWTAB: 3;
+ readonly OPEN_PRINT_BROWSER: 4;
+ readonly OPEN_NEWTAB_BACKGROUND: 5;
+ readonly OPEN_NEW: 0;
+ readonly OPEN_EXTERNAL: 1;
+ readonly OPEN_NO_OPENER: 4;
+ readonly OPEN_NO_REFERRER: 8;
+
+ createContentWindow(aURI: nsIURI, aOpenWindowInfo: nsIOpenWindowInfo, aWhere: i16, aFlags: i32, aTriggeringPrincipal: nsIPrincipal, aCsp?: nsIContentSecurityPolicy): BrowsingContext;
+ createContentWindowInFrame(aURI: nsIURI, params: nsIOpenURIInFrameParams, aWhere: i16, aFlags: i32, aName: string): Element;
+ openURI(aURI: nsIURI, aOpenWindowInfo: nsIOpenWindowInfo, aWhere: i16, aFlags: i32, aTriggeringPrincipal: nsIPrincipal, aCsp?: nsIContentSecurityPolicy): BrowsingContext;
+ openURIInFrame(aURI: nsIURI, params: nsIOpenURIInFrameParams, aWhere: i16, aFlags: i32, aName: string): Element;
+ canClose(): boolean;
+ readonly tabCount: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIBrowserUsage.idl
+
+interface nsIBrowserUsage extends nsISupports {
+ getUniqueDomainsVisitedInPast24Hours(): u32;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIContentPermissionPrompt.idl
+
+interface nsIContentPermissionType extends nsISupports {
+ readonly type: string;
+ readonly options: nsIArray;
+}
+
+interface nsIContentPermissionRequest extends nsISupports {
+ readonly types: nsIArray;
+ readonly principal: nsIPrincipal;
+ readonly topLevelPrincipal: nsIPrincipal;
+ readonly window: mozIDOMWindow;
+ readonly element: Element;
+ readonly hasValidTransientUserGestureActivation: boolean;
+ readonly isRequestDelegatedToUnsafeThirdParty: boolean;
+ getDelegatePrincipal(aType: string): nsIPrincipal;
+ cancel(): void;
+ allow(choices?: any): void;
+}
+
+type nsIContentPermissionPrompt = Callable<{
+ prompt(request: nsIContentPermissionRequest): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIContentPrefService2.idl
+
+interface nsIContentPrefObserver extends nsISupports {
+ onContentPrefSet(aGroup: string, aName: string, aValue: nsIVariant, aIsPrivate?: boolean): void;
+ onContentPrefRemoved(aGroup: string, aName: string, aIsPrivate?: boolean): void;
+}
+
+interface nsIContentPrefService2 extends nsISupports {
+ readonly GROUP_NAME_MAX_LENGTH: 2000;
+
+ getByName(name: string, context: nsILoadContext, callback: nsIContentPrefCallback2): void;
+ getByDomainAndName(domain: string, name: string, context: nsILoadContext, callback: nsIContentPrefCallback2): void;
+ getBySubdomainAndName(domain: string, name: string, context: nsILoadContext, callback: nsIContentPrefCallback2): void;
+ getGlobal(name: string, context: nsILoadContext, callback: nsIContentPrefCallback2): void;
+ getCachedByDomainAndName(domain: string, name: string, context: nsILoadContext): nsIContentPref;
+ getCachedBySubdomainAndName(domain: string, name: string, context: nsILoadContext): nsIContentPref[];
+ getCachedGlobal(name: string, context: nsILoadContext): nsIContentPref;
+ set(domain: string, name: string, value: nsIVariant, context: nsILoadContext, callback?: nsIContentPrefCallback2): void;
+ setGlobal(name: string, value: nsIVariant, context: nsILoadContext, callback?: nsIContentPrefCallback2): void;
+ removeByDomainAndName(domain: string, name: string, context: nsILoadContext, callback?: nsIContentPrefCallback2): void;
+ removeBySubdomainAndName(domain: string, name: string, context: nsILoadContext, callback?: nsIContentPrefCallback2): void;
+ removeGlobal(name: string, context: nsILoadContext, callback?: nsIContentPrefCallback2): void;
+ removeByDomain(domain: string, context: nsILoadContext, callback?: nsIContentPrefCallback2): void;
+ removeBySubdomain(domain: string, context: nsILoadContext, callback?: nsIContentPrefCallback2): void;
+ removeByName(name: string, context: nsILoadContext, callback?: nsIContentPrefCallback2): void;
+ removeAllDomains(context: nsILoadContext, callback?: nsIContentPrefCallback2): void;
+ removeAllDomainsSince(since: u64, context: nsILoadContext, callback?: nsIContentPrefCallback2): void;
+ removeAllGlobals(context: nsILoadContext, callback?: nsIContentPrefCallback2): void;
+ addObserverForName(name: string, observer: nsIContentPrefObserver): void;
+ removeObserverForName(name: string, observer: nsIContentPrefObserver): void;
+ extractDomain(str: string): string;
+}
+
+interface nsIContentPrefCallback2 extends nsISupports {
+ readonly COMPLETE_OK: 0;
+ readonly COMPLETE_ERROR: 1;
+
+ handleResult(pref: nsIContentPref): void;
+ handleError(error: nsresult): void;
+ handleCompletion(reason: u16): void;
+}
+
+interface nsIContentPref extends nsISupports {
+ readonly domain: string;
+ readonly name: string;
+ readonly value: nsIVariant;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIContentProcess.idl
+
+interface nsIContentProcessInfo extends nsISupports {
+ readonly isAlive: boolean;
+ readonly processId: i32;
+ readonly tabCount: i32;
+ readonly messageManager: nsISupports;
+}
+
+interface nsIContentProcessProvider extends nsISupports {
+ readonly NEW_PROCESS: -1;
+
+ provideProcess(aType: string, aAliveProcesses: nsIContentProcessInfo[], aMaxCount: u32): i32;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIDOMGlobalPropertyInitializer.idl
+
+interface nsIDOMGlobalPropertyInitializer extends nsISupports {
+ init(window: mozIDOMWindow): any;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIDOMWindow.idl
+
+interface nsIDOMWindow extends nsISupports {
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIDOMWindowUtils.idl
+
+interface nsIDOMWindowUtils extends nsISupports {
+ readonly MODIFIER_ALT: 1;
+ readonly MODIFIER_CONTROL: 2;
+ readonly MODIFIER_SHIFT: 4;
+ readonly MODIFIER_META: 8;
+ readonly MODIFIER_ALTGRAPH: 16;
+ readonly MODIFIER_CAPSLOCK: 32;
+ readonly MODIFIER_FN: 64;
+ readonly MODIFIER_FNLOCK: 128;
+ readonly MODIFIER_NUMLOCK: 256;
+ readonly MODIFIER_SCROLLLOCK: 512;
+ readonly MODIFIER_SYMBOL: 1024;
+ readonly MODIFIER_SYMBOLLOCK: 2048;
+ readonly WHEEL_EVENT_CAUSED_BY_NO_LINE_OR_PAGE_DELTA_DEVICE: 1;
+ readonly WHEEL_EVENT_CAUSED_BY_MOMENTUM: 2;
+ readonly WHEEL_EVENT_CUSTOMIZED_BY_USER_PREFS: 4;
+ readonly WHEEL_EVENT_EXPECTED_OVERFLOW_DELTA_X_ZERO: 16;
+ readonly WHEEL_EVENT_EXPECTED_OVERFLOW_DELTA_X_POSITIVE: 32;
+ readonly WHEEL_EVENT_EXPECTED_OVERFLOW_DELTA_X_NEGATIVE: 64;
+ readonly WHEEL_EVENT_EXPECTED_OVERFLOW_DELTA_Y_ZERO: 256;
+ readonly WHEEL_EVENT_EXPECTED_OVERFLOW_DELTA_Y_POSITIVE: 512;
+ readonly WHEEL_EVENT_EXPECTED_OVERFLOW_DELTA_Y_NEGATIVE: 1024;
+ readonly NATIVE_MODIFIER_CAPS_LOCK: 1;
+ readonly NATIVE_MODIFIER_NUM_LOCK: 2;
+ readonly NATIVE_MODIFIER_SHIFT_LEFT: 256;
+ readonly NATIVE_MODIFIER_SHIFT_RIGHT: 512;
+ readonly NATIVE_MODIFIER_CONTROL_LEFT: 1024;
+ readonly NATIVE_MODIFIER_CONTROL_RIGHT: 2048;
+ readonly NATIVE_MODIFIER_ALT_LEFT: 4096;
+ readonly NATIVE_MODIFIER_ALT_RIGHT: 8192;
+ readonly NATIVE_MODIFIER_COMMAND_LEFT: 16384;
+ readonly NATIVE_MODIFIER_COMMAND_RIGHT: 32768;
+ readonly NATIVE_MODIFIER_HELP: 65536;
+ readonly NATIVE_MODIFIER_ALT_GRAPH: 131072;
+ readonly NATIVE_MODIFIER_FUNCTION: 1048576;
+ readonly NATIVE_MODIFIER_NUMERIC_KEY_PAD: 16777216;
+ readonly NATIVE_MOUSE_MESSAGE_BUTTON_DOWN: 1;
+ readonly NATIVE_MOUSE_MESSAGE_BUTTON_UP: 2;
+ readonly NATIVE_MOUSE_MESSAGE_MOVE: 3;
+ readonly NATIVE_MOUSE_MESSAGE_ENTER_WINDOW: 4;
+ readonly NATIVE_MOUSE_MESSAGE_LEAVE_WINDOW: 5;
+ readonly MOUSESCROLL_PREFER_WIDGET_AT_POINT: 1;
+ readonly MOUSESCROLL_SCROLL_LINES: 2;
+ readonly MOUSESCROLL_WIN_SCROLL_LPARAM_NOT_NULL: 65536;
+ readonly TOUCH_HOVER: 1;
+ readonly TOUCH_CONTACT: 2;
+ readonly TOUCH_REMOVE: 4;
+ readonly TOUCH_CANCEL: 8;
+ readonly PHASE_BEGIN: 0;
+ readonly PHASE_UPDATE: 1;
+ readonly PHASE_END: 2;
+ readonly UPDATE_TYPE_RESTORE: 0;
+ readonly UPDATE_TYPE_MAIN_THREAD: 1;
+ readonly SCROLL_MODE_INSTANT: 0;
+ readonly SCROLL_MODE_SMOOTH: 1;
+ readonly FLUSH_NONE: -1;
+ readonly FLUSH_STYLE: 0;
+ readonly FLUSH_LAYOUT: 1;
+ readonly FLUSH_DISPLAY: 2;
+ readonly IME_STATUS_DISABLED: 0;
+ readonly IME_STATUS_ENABLED: 1;
+ readonly IME_STATUS_PASSWORD: 2;
+ readonly INPUT_CONTEXT_ORIGIN_MAIN: 0;
+ readonly INPUT_CONTEXT_ORIGIN_CONTENT: 1;
+ readonly QUERY_CONTENT_FLAG_USE_NATIVE_LINE_BREAK: 0;
+ readonly QUERY_CONTENT_FLAG_USE_XP_LINE_BREAK: 1;
+ readonly QUERY_CONTENT_FLAG_SELECTION_SPELLCHECK: 2;
+ readonly QUERY_CONTENT_FLAG_SELECTION_IME_RAWINPUT: 4;
+ readonly QUERY_CONTENT_FLAG_SELECTION_IME_SELECTEDRAWTEXT: 8;
+ readonly QUERY_CONTENT_FLAG_SELECTION_IME_CONVERTEDTEXT: 16;
+ readonly QUERY_CONTENT_FLAG_SELECTION_IME_SELECTEDCONVERTEDTEXT: 32;
+ readonly QUERY_CONTENT_FLAG_SELECTION_ACCESSIBILITY: 64;
+ readonly QUERY_CONTENT_FLAG_SELECTION_FIND: 128;
+ readonly QUERY_CONTENT_FLAG_SELECTION_URLSECONDARY: 256;
+ readonly QUERY_CONTENT_FLAG_SELECTION_URLSTRIKEOUT: 512;
+ readonly QUERY_CONTENT_FLAG_OFFSET_RELATIVE_TO_INSERTION_POINT: 1024;
+ readonly QUERY_SELECTED_TEXT: 3200;
+ readonly QUERY_TEXT_CONTENT: 3201;
+ readonly QUERY_CARET_RECT: 3203;
+ readonly QUERY_TEXT_RECT: 3204;
+ readonly QUERY_EDITOR_RECT: 3205;
+ readonly QUERY_CHARACTER_AT_POINT: 3208;
+ readonly QUERY_TEXT_RECT_ARRAY: 3209;
+ readonly SELECTION_SET_FLAG_USE_NATIVE_LINE_BREAK: 0;
+ readonly SELECTION_SET_FLAG_USE_XP_LINE_BREAK: 1;
+ readonly SELECTION_SET_FLAG_REVERSE: 2;
+ readonly SELECT_CHARACTER: 0;
+ readonly SELECT_CLUSTER: 1;
+ readonly SELECT_WORD: 2;
+ readonly SELECT_LINE: 3;
+ readonly SELECT_BEGINLINE: 4;
+ readonly SELECT_ENDLINE: 5;
+ readonly SELECT_PARAGRAPH: 6;
+ readonly SELECT_WORDNOSPACE: 7;
+ readonly AUDIO_INPUT: 0;
+ readonly AUDIO_OUTPUT: 1;
+ readonly AGENT_SHEET: 0;
+ readonly USER_SHEET: 1;
+ readonly AUTHOR_SHEET: 2;
+ readonly WR_CAPTURE_SCENE: 1;
+ readonly WR_CAPTURE_FRAME: 2;
+ readonly WR_CAPTURE_TILE_CACHE: 4;
+ readonly WR_CAPTURE_EXTERNAL_RESOURCES: 8;
+ readonly DEFAULT_MOUSE_POINTER_ID: 0;
+ readonly DEFAULT_PEN_POINTER_ID: 1;
+ readonly DEFAULT_TOUCH_POINTER_ID: 2;
+ readonly MOUSE_BUTTON_LEFT_BUTTON: 0;
+ readonly MOUSE_BUTTON_MIDDLE_BUTTON: 1;
+ readonly MOUSE_BUTTON_RIGHT_BUTTON: 2;
+ readonly MOUSE_BUTTONS_NO_BUTTON: 0;
+ readonly MOUSE_BUTTONS_LEFT_BUTTON: 1;
+ readonly MOUSE_BUTTONS_RIGHT_BUTTON: 2;
+ readonly MOUSE_BUTTONS_MIDDLE_BUTTON: 4;
+ readonly MOUSE_BUTTONS_4TH_BUTTON: 8;
+ readonly MOUSE_BUTTONS_5TH_BUTTON: 16;
+ readonly MOUSE_BUTTONS_NOT_SPECIFIED: -1;
+ readonly DIRECTION_LTR: 0;
+ readonly DIRECTION_RTL: 1;
+ readonly DIRECTION_NOT_SET: 2;
+
+ imageAnimationMode: u16;
+ readonly docCharsetIsForced: boolean;
+ readonly physicalMillimeterInCSSPixels: float;
+ getDocumentMetadata(aName: string): string;
+ getLastOverWindowPointerLocationInCSSPixels(aX: OutParam<float>, aY: OutParam<float>): void;
+ updateLayerTree(): void;
+ readonly lastTransactionId: u64;
+ getViewportInfo(aDisplayWidth: u32, aDisplayHeight: u32, aDefaultZoom: OutParam<double>, aAllowZoom: OutParam<boolean>, aMinZoom: OutParam<double>, aMaxZoom: OutParam<double>, aWidth: OutParam<u32>, aHeight: OutParam<u32>, aAutoSize: OutParam<boolean>): void;
+ getViewportFitInfo(): string;
+ getDocumentViewerSize(aDisplayWidth: OutParam<u32>, aDisplayHeight: OutParam<u32>): void;
+ setMousewheelAutodir(aElement: Element, aEnabled: boolean, aHonourRoot: boolean): void;
+ setDisplayPortForElement(aXPx: float, aYPx: float, aWidthPx: float, aHeightPx: float, aElement: Element, aPriority: u32): void;
+ setDisplayPortMarginsForElement(aLeftMargin: float, aTopMargin: float, aRightMargin: float, aBottomMargin: float, aElement: Element, aPriority: u32): void;
+ setDisplayPortBaseForElement(aX: i32, aY: i32, aWidth: i32, aHeight: i32, aElement: Element): void;
+ getScrollbarSizes(aElement: Element, aVerticalScrollbarWidth: OutParam<u32>, aHorizontalScrollbarHeight: OutParam<u32>): void;
+ setResolutionAndScaleTo(aResolution: float): void;
+ getResolution(): float;
+ setRestoreResolution(aResolution: float, aDisplayWidth: u32, aDisplayHeight: u32): void;
+ isFirstPaint: boolean;
+ getPresShellId(): u32;
+ isCORSSafelistedRequestHeader(name: string, value: string): boolean;
+ sendMouseEvent(aType: string, aX: float, aY: float, aButton: i32, aClickCount: i32, aModifiers: i32, aIgnoreRootScrollFrame?: boolean, aPressure?: float, aInputSourceArg?: u16, aIsDOMEventSynthesized?: boolean, aIsWidgetEventSynthesized?: boolean, aButtons?: i32, aIdentifier?: u32): boolean;
+ sendTouchEvent(aType: string, aIdentifiers: u32[], aXs: i32[], aYs: i32[], aRxs: u32[], aRys: u32[], aRotationAngles: float[], aForces: float[], aTiltXs: i32[], aTiltYs: i32[], aTwists: i32[], aModifiers: i32, aIgnoreRootScrollFrame?: boolean): boolean;
+ sendMouseEventToWindow(aType: string, aX: float, aY: float, aButton: i32, aClickCount: i32, aModifiers: i32, aIgnoreRootScrollFrame?: boolean, aPressure?: float, aInputSourceArg?: u16, aIsDOMEventSynthesized?: boolean, aIsWidgetEventSynthesized?: boolean, aButtons?: i32, aIdentifier?: u32): void;
+ sendTouchEventToWindow(aType: string, aIdentifiers: u32[], aXs: i32[], aYs: i32[], aRxs: u32[], aRys: u32[], aRotationAngles: float[], aForces: float[], aTiltXs: i32[], aTiltYs: i32[], aTwists: i32[], aModifiers: i32, aIgnoreRootScrollFrame?: boolean): boolean;
+ sendWheelEvent(aX: float, aY: float, aDeltaX: double, aDeltaY: double, aDeltaZ: double, aDeltaMode: u32, aModifiers: i32, aLineOrPageDeltaX: i32, aLineOrPageDeltaY: i32, aOptions: u32): void;
+ sendNativeKeyEvent(aNativeKeyboardLayout: i32, aNativeKeyCode: i32, aModifierFlags: u32, aCharacters: string, aUnmodifiedCharacters: string, aObserver?: nsIObserver): void;
+ sendNativeMouseEvent(aScreenX: i32, aScreenY: i32, aNativeMessage: u32, aButton: i16, aModifierFlags: u32, aElementOnWidget: Element, aObserver?: nsIObserver): void;
+ suppressAnimation(aSuppress: boolean): void;
+ sendNativeMouseScrollEvent(aScreenX: i32, aScreenY: i32, aNativeMessage: u32, aDeltaX: double, aDeltaY: double, aDeltaZ: double, aModifierFlags: u32, aAdditionalFlags: u32, aElement: Element, aObserver?: nsIObserver): void;
+ sendNativeTouchPoint(aPointerId: u32, aTouchState: u32, aScreenX: i32, aScreenY: i32, aPressure: double, aOrientation: u32, aObserver?: nsIObserver): void;
+ sendNativeTouchpadPinch(aEventPhase: u32, aScale: float, aScreenX: i32, aScreenY: i32, aModifierFlags: i32): void;
+ sendNativeTouchTap(aScreenX: i32, aScreenY: i32, aLongTap: boolean, aObserver?: nsIObserver): void;
+ sendNativePenInput(aPointerId: u32, aPointerState: u32, aScreenX: i32, aScreenY: i32, aPressure: double, aRotation: u32, aTiltX: i32, aTiltY: i32, aButton: i32, aObserver?: nsIObserver): void;
+ clearNativeTouchSequence(aObserver?: nsIObserver): void;
+ sendNativeTouchpadDoubleTap(aScreenX: i32, aScreenY: i32, aModifierFlags: i32): void;
+ sendNativeTouchpadPan(aEventPhase: u32, aScreenX: i32, aScreenY: i32, aDeltaX: double, aDeltaY: double, aModifierFlags: i32, aObserver?: nsIObserver): void;
+ clearSharedStyleSheetCache(): void;
+ readonly parsedStyleSheets: u32;
+ activateNativeMenuItemAt(indexString: string): void;
+ forceUpdateNativeMenuAt(indexString: string): void;
+ GetSelectionAsPlaintext(): string;
+ garbageCollect(aListener?: nsICycleCollectorListener): void;
+ cycleCollect(aListener?: nsICycleCollectorListener): void;
+ runNextCollectorTimer(aReason?: string): void;
+ pokeGC(aReason?: string): void;
+ sendSimpleGestureEvent(aType: string, aX: float, aY: float, aDirection: u32, aDelta: double, aModifiers: i32, aClickCount?: u32): void;
+ elementFromPoint(aX: float, aY: float, aIgnoreRootScrollFrame: boolean, aFlushLayout: boolean): Element;
+ nodesFromRect(aX: float, aY: float, aTopSize: float, aRightSize: float, aBottomSize: float, aLeftSize: float, aIgnoreRootScrollFrame: boolean, aFlushLayout: boolean, aOnlyVisible: boolean, aTransparencyThreshold?: float): NodeList;
+ getTranslationNodes(aRoot: Node): nsITranslationNodeList;
+ compareCanvases(aCanvas1: nsISupports, aCanvas2: nsISupports, aMaxDifference: OutParam<u32>): u32;
+ readonly isMozAfterPaintPending: boolean;
+ readonly isInputTaskManagerSuspended: boolean;
+ suppressEventHandling(aSuppress: boolean): void;
+ disableNonTestMouseEvents(aDisable: boolean): void;
+ getScrollXY(aFlushLayout: boolean, aScrollX: OutParam<i32>, aScrollY: OutParam<i32>): void;
+ getScrollXYFloat(aFlushLayout: boolean, aScrollX: OutParam<float>, aScrollY: OutParam<float>): void;
+ getScrollbarSize(aFlushLayout: boolean, aWidth: OutParam<i32>, aHeight: OutParam<i32>): void;
+ getBoundsWithoutFlushing(aElement: Element): DOMRect;
+ scrollToVisual(aOffsetX: float, aOffsetY: float, aUpdateType: i32, aScrollMode: i32): void;
+ getVisualViewportOffsetRelativeToLayoutViewport(aOffsetX: OutParam<float>, aOffsetY: OutParam<float>): void;
+ getVisualViewportOffset(aOffsetX: OutParam<i32>, aOffsetY: OutParam<i32>): void;
+ transformRectLayoutToVisual(aX: float, aY: float, aWidth: float, aHeight: float): DOMRect;
+ toScreenRectInCSSUnits(aX: float, aY: float, aWidth: float, aHeight: float): DOMRect;
+ toScreenRect(aX: float, aY: float, aWidth: float, aHeight: float): DOMRect;
+ convertFromParentProcessWidgetToLocal(aX: float, aY: float, aWidth: float, aHeight: float): DOMRect;
+ setDynamicToolbarMaxHeight(aHeightInScreen: u32): void;
+ needsFlush(aFlushtype: i32): boolean;
+ flushLayoutWithoutThrottledAnimations(): void;
+ getRootBounds(): DOMRect;
+ readonly IMEIsOpen: boolean;
+ readonly IMEStatus: u32;
+ readonly inputContextURI: nsIURI;
+ readonly inputContextOrigin: u32;
+ readonly nodeObservedByIMEContentObserver: Node;
+ dispatchDOMEventViaPresShellForTesting(aTarget: Node, aEvent: Event): boolean;
+ dispatchEventToChromeOnly(aTarget: EventTarget, aEvent: Event): boolean;
+ getClassName(aObject: any): string;
+ sendContentCommandEvent(aType: string, aTransferable?: nsITransferable, aString?: string): void;
+ sendQueryContentEvent(aType: u32, aOffset: i64, aLength: u32, aX: i32, aY: i32, aAdditionalFlags?: u32): nsIQueryContentEventResult;
+ remoteFrameFullscreenChanged(aFrameElement: Element): void;
+ remoteFrameFullscreenReverted(): void;
+ handleFullscreenRequests(): boolean;
+ exitFullscreen(aDontRestoreViewSize?: boolean): void;
+ sendSelectionSetEvent(aOffset: u32, aLength: u32, aAdditionalFlags?: u32): boolean;
+ selectAtPoint(aX: float, aY: float, aSelectBehavior: u32): boolean;
+ getVisitedDependentComputedStyle(aElement: Element, aPseudoElement: string, aPropertyName: string): string;
+ enterModalState(): void;
+ leaveModalState(): void;
+ isInModalState(): boolean;
+ suspendTimeouts(): void;
+ resumeTimeouts(): void;
+ readonly layerManagerType: string;
+ readonly layerManagerRemote: boolean;
+ readonly isWebRenderRequested: boolean;
+ readonly currentAudioBackend: string;
+ readonly currentMaxAudioChannels: u32;
+ defaultDevicesRoundTripLatency(): Promise<any>;
+ readonly currentPreferredSampleRate: u32;
+ audioDevices(aSide: u16): nsIArray;
+ startFrameTimeRecording(): OutParam<u32>;
+ stopFrameTimeRecording(startIndex: u32): float[];
+ readonly displayDPI: float;
+ advanceTimeAndRefresh(aMilliseconds: i64): void;
+ restoreNormalRefresh(): void;
+ readonly isTestControllingRefreshes: boolean;
+ readonly asyncPanZoomEnabled: boolean;
+ setAsyncScrollOffset(aElement: Element, aX: float, aY: float): void;
+ setAsyncZoom(aRootElement: Element, aValue: float): void;
+ flushApzRepaints(): boolean;
+ disableApzForElement(aElement: Element): void;
+ zoomToFocusedInput(): void;
+ computeAnimationDistance(element: Element, property: string, value1: string, value2: string): double;
+ getUnanimatedComputedStyle(aElement: Element, aPseudoElement: string, aProperty: string, aFlushType: i32): string;
+ readonly canvasBackgroundColor: string;
+ readonly focusedInputType: string;
+ readonly focusedActionHint: string;
+ readonly focusedInputMode: string;
+ readonly focusedAutocapitalize: string;
+ getViewId(aElement: Element): nsViewID;
+ checkAndClearPaintedState(aElement: Element): boolean;
+ checkAndClearDisplayListState(aElement: Element): boolean;
+ isPartOfOpaqueLayer(aElement: Element): boolean;
+ numberOfAssignedPaintedLayers(aElements: Element[]): u32;
+ getFileId(aFile: any): i64;
+ getFilePath(aFile: any): string;
+ getFileReferences(aDatabaseName: string, aId: i64, aRefCnt?: OutParam<i32>, aDBRefCnt?: OutParam<i32>): boolean;
+ flushPendingFileDeletions(): void;
+ startPCCountProfiling(): void;
+ stopPCCountProfiling(): void;
+ purgePCCounts(): void;
+ getPCCountScriptCount(): i32;
+ getPCCountScriptSummary(script: i32): string;
+ getPCCountScriptContents(script: i32): string;
+ readonly paintingSuppressed: boolean;
+ setVisualViewportSize(aWidth: float, aHeight: float): void;
+ disableDialogs(): void;
+ enableDialogs(): void;
+ areDialogsEnabled(): boolean;
+ resetDialogAbuseState(): void;
+ loadSheet(sheetURI: nsIURI, type: u32): void;
+ loadSheetUsingURIString(sheetURI: string, type: u32): void;
+ addSheet(sheet: nsIPreloadedStyleSheet, type: u32): void;
+ removeSheet(sheetURI: nsIURI, type: u32): void;
+ removeSheetUsingURIString(sheetURI: string, type: u32): void;
+ readonly isHandlingUserInput: boolean;
+ readonly millisSinceLastUserInput: double;
+ allowScriptsToClose(): void;
+ readonly isParentWindowMainWidgetVisible: boolean;
+ isNodeDisabledForEvents(aNode: Node): boolean;
+ getOMTAStyle(aElement: Element, aProperty: string, aPseudoElement?: string): string;
+ setHandlingUserInput(aHandlingInput: boolean): nsIJSRAIIHelper;
+ isKeyboardEventUserActivity(aKeyboardEvent: Event): boolean;
+ getContentAPZTestData(): any;
+ getCompositorAPZTestData(): any;
+ postRestyleSelfEvent(aElement: Element): void;
+ xpconnectArgument(aObj: nsISupports): void;
+ askPermission(aRequest: nsIContentPermissionRequest): void;
+ readonly restyleGeneration: u64;
+ readonly framesConstructed: u64;
+ readonly framesReflowed: u64;
+ readonly animationTriggeredRestyles: u64;
+ readonly refreshDriverHasPendingTick: boolean;
+ setChromeMargin(aTop: i32, aRight: i32, aBottom: i32, aLeft: i32): void;
+ setResizeMargin(aResizeMargin: i32): void;
+ getFrameUniformityTestData(): any;
+ enterChaosMode(): void;
+ leaveChaosMode(): void;
+ triggerDeviceReset(): void;
+ hasRuleProcessorUsedByMultipleStyleSets(aSheetType: u32): boolean;
+ respectDisplayPortSuppression(aEnabled: boolean): void;
+ forceReflowInterrupt(): void;
+ terminateGPUProcess(): void;
+ readonly gpuProcessPid: i32;
+ addManuallyManagedState(element: Element, state: string): void;
+ removeManuallyManagedState(element: Element, state: string): void;
+ getStorageUsage(aStorage: Storage): i64;
+ getDirectionFromText(aString: string): i32;
+ ensureDirtyRootFrame(): void;
+ wrCapture(): void;
+ wrStartCaptureSequence(aPath: string, aFlags: u32): void;
+ wrStopCaptureSequence(): void;
+ setCompositionRecording(aValue: boolean): Promise<any>;
+ startCompositionRecording(): Promise<any>;
+ stopCompositionRecording(aWriteToDisk: boolean): Promise<any>;
+ isCssPropertyRecordedInUseCounter(aProperty: string): boolean;
+ resetMobileViewportManager(): void;
+ isCoepCredentialless(): boolean;
+ setHiDPIMode(aHiDPI: boolean): void;
+ restoreHiDPIMode(): void;
+ systemFont: string;
+ readonly paintCount: u64;
+ syncFlushCompositor(): void;
+ getLayersId(): u64;
+ readonly effectivelyThrottlesFrameRequests: boolean;
+ readonly webrtcRawDeviceId: string;
+ readonly suspendedByBrowsingContextGroup: boolean;
+ readonly hasScrollLinkedEffect: boolean;
+ readonly orientationLock: u32;
+ getWheelScrollTarget(): Element;
+}
+
+interface nsITranslationNodeList extends nsISupports {
+ readonly length: u32;
+ item(index: u32): Node;
+ isTranslationRootAtIndex(index: u32): boolean;
+}
+
+interface nsIJSRAIIHelper extends nsISupports {
+ destruct(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIFocusManager.idl
+
+interface nsIFocusManager extends nsISupports {
+ readonly FLAG_RAISE: 1;
+ readonly FLAG_NOSCROLL: 2;
+ readonly FLAG_NOSWITCHFRAME: 4;
+ readonly FLAG_NOPARENTFRAME: 8;
+ readonly FLAG_NONSYSTEMCALLER: 16;
+ readonly FLAG_BYMOUSE: 4096;
+ readonly FLAG_BYKEY: 8192;
+ readonly FLAG_BYMOVEFOCUS: 16384;
+ readonly FLAG_NOSHOWRING: 32768;
+ readonly FLAG_SHOWRING: 1048576;
+ readonly FLAG_BYTOUCH: 2097152;
+ readonly FLAG_BYJS: 4194304;
+ readonly FLAG_BYLONGPRESS: 8388608;
+ readonly METHOD_MASK: 14708736;
+ readonly METHODANDRING_MASK: 15790080;
+ readonly MOVEFOCUS_FORWARD: 1;
+ readonly MOVEFOCUS_BACKWARD: 2;
+ readonly MOVEFOCUS_FORWARDDOC: 3;
+ readonly MOVEFOCUS_BACKWARDDOC: 4;
+ readonly MOVEFOCUS_FIRST: 5;
+ readonly MOVEFOCUS_LAST: 6;
+ readonly MOVEFOCUS_ROOT: 7;
+ readonly MOVEFOCUS_CARET: 8;
+ readonly MOVEFOCUS_FIRSTDOC: 9;
+ readonly MOVEFOCUS_LASTDOC: 10;
+
+ readonly activeWindow: mozIDOMWindowProxy;
+ readonly activeBrowsingContext: BrowsingContext;
+ focusedWindow: mozIDOMWindowProxy;
+ readonly focusedContentBrowsingContext: BrowsingContext;
+ readonly focusedElement: Element;
+ getLastFocusMethod(window: mozIDOMWindowProxy): u32;
+ setFocus(aElement: Element, aFlags: u32): void;
+ moveFocus(aWindow: mozIDOMWindowProxy, aStartElement: Element, aType: u32, aFlags: u32): Element;
+ clearFocus(aWindow: mozIDOMWindowProxy): void;
+ getFocusedElementForWindow(aWindow: mozIDOMWindowProxy, aDeep: boolean, aFocusedWindow: OutParam<mozIDOMWindowProxy>): Element;
+ moveCaretToFocus(aWindow: mozIDOMWindowProxy): void;
+ elementIsFocusable(aElement: Element, aFlags: u32): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIPermissionDelegateHandler.idl
+
+interface nsIPermissionDelegateHandler extends nsISupports {
+ maybeUnsafePermissionDelegate(aTypes: string[]): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIQueryContentEventResult.idl
+
+interface nsIQueryContentEventResult extends nsISupports {
+ readonly offset: u32;
+ readonly tentativeCaretOffset: u32;
+ readonly reversed: boolean;
+ readonly left: i32;
+ readonly top: i32;
+ readonly width: i32;
+ readonly height: i32;
+ readonly text: string;
+ getCharacterRect(offset: i32, left: OutParam<i32>, top: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>): void;
+ readonly succeeded: boolean;
+ readonly notFound: boolean;
+ readonly tentativeCaretOffsetNotFound: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIRemoteTab.idl
+
+} // global
+
+declare namespace nsIRemoteTab {
+
+enum NavigationType {
+ NAVIGATE_BACK = 0,
+ NAVIGATE_FORWARD = 1,
+ NAVIGATE_INDEX = 2,
+ NAVIGATE_URL = 3,
+}
+
+}
+
+declare global {
+
+interface nsIRemoteTab extends nsISupports, Enums<typeof nsIRemoteTab.NavigationType> {
+ renderLayers: boolean;
+ readonly hasLayers: boolean;
+ priorityHint: boolean;
+ deprioritize(): void;
+ preserveLayers(aPreserveLayers: boolean): void;
+ readonly tabId: u64;
+ readonly contentProcessId: u64;
+ readonly osPid: i32;
+ readonly browsingContext: BrowsingContext;
+ readonly hasPresented: boolean;
+ transmitPermissionsForPrincipal(aPrincipal: nsIPrincipal): void;
+ createAboutBlankDocumentViewer(aPrincipal: nsIPrincipal, aPartitionedPrincipal: nsIPrincipal): void;
+ maybeCancelContentJSExecution(aNavigationType: nsIRemoteTab.NavigationType, aCancelContentJSOptions?: any): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIServiceWorkerManager.idl
+
+interface nsIServiceWorkerUnregisterCallback extends nsISupports {
+ unregisterSucceeded(aState: boolean): void;
+ unregisterFailed(): void;
+}
+
+interface nsIServiceWorkerInfo extends nsISupports {
+ readonly STATE_PARSED: 0;
+ readonly STATE_INSTALLING: 1;
+ readonly STATE_INSTALLED: 2;
+ readonly STATE_ACTIVATING: 3;
+ readonly STATE_ACTIVATED: 4;
+ readonly STATE_REDUNDANT: 5;
+ readonly STATE_UNKNOWN: 6;
+
+ readonly id: string;
+ readonly scriptSpec: string;
+ readonly cacheName: string;
+ readonly state: u16;
+ readonly debugger: nsIWorkerDebugger;
+ readonly handlesFetchEvents: boolean;
+ readonly installedTime: PRTime;
+ readonly activatedTime: PRTime;
+ readonly redundantTime: PRTime;
+ readonly navigationFaultCount: u32;
+ testingInjectCancellation: nsresult;
+ attachDebugger(): void;
+ detachDebugger(): void;
+}
+
+interface nsIServiceWorkerRegistrationInfoListener extends nsISupports {
+ onChange(): void;
+}
+
+interface nsIServiceWorkerRegistrationInfo extends nsISupports {
+ readonly UPDATE_VIA_CACHE_IMPORTS: 0;
+ readonly UPDATE_VIA_CACHE_ALL: 1;
+ readonly UPDATE_VIA_CACHE_NONE: 2;
+
+ readonly principal: nsIPrincipal;
+ readonly unregistered: boolean;
+ readonly scope: string;
+ readonly scriptSpec: string;
+ readonly updateViaCache: u16;
+ readonly lastUpdateTime: PRTime;
+ readonly evaluatingWorker: nsIServiceWorkerInfo;
+ readonly installingWorker: nsIServiceWorkerInfo;
+ readonly waitingWorker: nsIServiceWorkerInfo;
+ readonly activeWorker: nsIServiceWorkerInfo;
+ readonly quotaUsageCheckCount: i32;
+ getWorkerByID(aID: u64): nsIServiceWorkerInfo;
+ addListener(listener: nsIServiceWorkerRegistrationInfoListener): void;
+ removeListener(listener: nsIServiceWorkerRegistrationInfoListener): void;
+ forceShutdown(): void;
+}
+
+interface nsIServiceWorkerManagerListener extends nsISupports {
+ onRegister(aInfo: nsIServiceWorkerRegistrationInfo): void;
+ onUnregister(aInfo: nsIServiceWorkerRegistrationInfo): void;
+ onQuotaUsageCheckFinish(aInfo: nsIServiceWorkerRegistrationInfo): void;
+}
+
+interface nsIServiceWorkerManager extends nsISupports {
+ reloadRegistrationsForTest(): void;
+ registerForTest(aPrincipal: nsIPrincipal, aScope: string, aScriptURL: string): Promise<any>;
+ registerForAddonPrincipal(aPrincipal: nsIPrincipal): Promise<any>;
+ getRegistrationForAddonPrincipal(aPrincipal: nsIPrincipal): OutParam<nsIServiceWorkerRegistrationInfo>;
+ wakeForExtensionAPIEvent(aExtensionBaseURL: string, aAPINamespace: string, aAPIEventName: string): Promise<any>;
+ unregister(aPrincipal: nsIPrincipal, aCallback: nsIServiceWorkerUnregisterCallback, aScope: string): void;
+ getRegistrationByPrincipal(aPrincipal: nsIPrincipal, aScope: string): nsIServiceWorkerRegistrationInfo;
+ getScopeForUrl(aPrincipal: nsIPrincipal, aPath: string): string;
+ getAllRegistrations(): nsIArray;
+ removeRegistrationsByOriginAttributes(aOriginAttributes: string): void;
+ propagateUnregister(aPrincipal: nsIPrincipal, aCallback: nsIServiceWorkerUnregisterCallback, aScope: string): void;
+ sendNotificationClickEvent(aOriginSuffix: string, scope: string, aID: string, aTitle: string, aDir: string, aLang: string, aBody: string, aTag: string, aIcon: string, aData: string, aBehavior: string): void;
+ sendNotificationCloseEvent(aOriginSuffix: string, scope: string, aID: string, aTitle: string, aDir: string, aLang: string, aBody: string, aTag: string, aIcon: string, aData: string, aBehavior: string): void;
+ sendPushEvent(aOriginAttributes: string, aScope: string, aDataBytes?: u8[]): void;
+ sendPushSubscriptionChangeEvent(aOriginAttributes: string, scope: string): void;
+ addListener(aListener: nsIServiceWorkerManagerListener): void;
+ removeListener(aListener: nsIServiceWorkerManagerListener): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIStructuredCloneContainer.idl
+
+interface nsIStructuredCloneContainer extends nsISupports {
+ initFromBase64(aData: string, aFormatVersion: u32): void;
+ deserializeToJsval(): any;
+ getDataAsBase64(): string;
+ readonly serializedNBytes: u64;
+ readonly formatVersion: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsITextInputProcessor.idl
+
+interface nsITextInputProcessor extends nsISupports {
+ readonly ATTR_RAW_CLAUSE: 2;
+ readonly ATTR_SELECTED_RAW_CLAUSE: 3;
+ readonly ATTR_CONVERTED_CLAUSE: 4;
+ readonly ATTR_SELECTED_CLAUSE: 5;
+ readonly KEY_DEFAULT_PREVENTED: 1;
+ readonly KEY_NON_PRINTABLE_KEY: 2;
+ readonly KEY_FORCE_PRINTABLE_KEY: 4;
+ readonly KEY_KEEP_KEY_LOCATION_STANDARD: 8;
+ readonly KEY_KEEP_KEYCODE_ZERO: 16;
+ readonly KEY_DONT_DISPATCH_MODIFIER_KEY_EVENT: 32;
+ readonly KEY_DONT_MARK_KEYDOWN_AS_PROCESSED: 64;
+ readonly KEY_MARK_KEYUP_AS_PROCESSED: 128;
+ readonly KEYEVENT_NOT_CONSUMED: 0;
+ readonly KEYDOWN_IS_CONSUMED: 1;
+ readonly KEYPRESS_IS_CONSUMED: 2;
+
+ readonly hasComposition: boolean;
+ beginInputTransaction(aWindow: mozIDOMWindow, aCallback: nsITextInputProcessorCallback): boolean;
+ beginInputTransactionForTests(aWindow: mozIDOMWindow, aCallback?: nsITextInputProcessorCallback): boolean;
+ startComposition(aKeyboardEvent?: Event, aKeyFlags?: u32): boolean;
+ setPendingCompositionString(aString: string): void;
+ appendClauseToPendingComposition(aLength: u32, aAttribute: u32): void;
+ setCaretInPendingComposition(aOffset: u32): void;
+ flushPendingComposition(aKeyboardEvent?: Event, aKeyFlags?: u32): boolean;
+ commitComposition(aKeyboardEvent?: Event, aKeyFlags?: u32): void;
+ commitCompositionWith(aCommitString: string, aKeyboardEvent?: Event, aKeyFlags?: u32): boolean;
+ cancelComposition(aKeyboardEvent?: Event, aKeyFlags?: u32): void;
+ keydown(aKeyboardEvent: Event, aKeyFlags?: u32): u32;
+ keyup(aKeyboardEvent: Event, aKeyFlags?: u32): boolean;
+ getModifierState(aModifierKey: string): boolean;
+ shareModifierStateOf(aOther: nsITextInputProcessor): void;
+ computeCodeValueOfNonPrintableKey(aKeyValue: string, aLocation?: any): string;
+ guessCodeValueOfPrintableKeyInUSEnglishKeyboardLayout(aKeyValue: string, aLocation?: any): string;
+ guessKeyCodeValueOfPrintableKeyInUSEnglishKeyboardLayout(aKeyValue: string, aLocation?: any): u32;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsITextInputProcessorCallback.idl
+
+interface nsITextInputProcessorNotification extends nsISupports {
+ readonly type: string;
+ readonly hasRange: boolean;
+ readonly offset: u32;
+ readonly text: string;
+ readonly collapsed: boolean;
+ readonly length: u32;
+ readonly reversed: boolean;
+ readonly writingMode: string;
+ readonly causedByComposition: boolean;
+ readonly causedBySelectionEvent: boolean;
+ readonly occurredDuringComposition: boolean;
+ readonly removedLength: u32;
+ readonly addedLength: u32;
+ readonly causedOnlyByComposition: boolean;
+ readonly includingChangesDuringComposition: boolean;
+ readonly includingChangesWithoutComposition: boolean;
+}
+
+type nsITextInputProcessorCallback = Callable<{
+ onNotify(aTextInputProcessor: nsITextInputProcessor, aNotification: nsITextInputProcessorNotification): boolean;
+}>
+
+// https://searchfox.org/mozilla-central/source/dom/bindings/nsIScriptError.idl
+
+interface nsIScriptErrorNote extends nsISupports {
+ readonly errorMessage: string;
+ readonly sourceName: string;
+ readonly sourceId: u32;
+ readonly lineNumber: u32;
+ readonly columnNumber: u32;
+ toString(): string;
+}
+
+interface nsIScriptError extends nsIConsoleMessage {
+ readonly errorFlag: 0;
+ readonly warningFlag: 1;
+ readonly infoFlag: 8;
+
+ readonly errorMessage: string;
+ readonly sourceName: string;
+ readonly sourceLine: string;
+ readonly sourceId: u32;
+ readonly lineNumber: u32;
+ readonly columnNumber: u32;
+ readonly flags: u32;
+ readonly category: string;
+ readonly outerWindowID: u64;
+ readonly innerWindowID: u64;
+ readonly isFromPrivateWindow: boolean;
+ readonly isFromChromeContext: boolean;
+ readonly isPromiseRejection: boolean;
+ exception: any;
+ readonly hasException: boolean;
+ stack: any;
+ errorMessageName: string;
+ readonly notes: nsIArray;
+ cssSelectors: string;
+ init(message: string, sourceName: string, sourceLine: string, lineNumber: u32, columnNumber: u32, flags: u32, category: string, fromPrivateWindow?: boolean, fromChromeContext?: boolean): void;
+ initWithWindowID(message: string, sourceName: string, sourceLine: string, lineNumber: u32, columnNumber: u32, flags: u32, category: string, innerWindowID: u64, fromChromeContext?: boolean): void;
+ initWithSanitizedSource(message: string, sourceName: string, sourceLine: string, lineNumber: u32, columnNumber: u32, flags: u32, category: string, innerWindowID: u64, fromChromeContext?: boolean): void;
+ initWithSourceURI(message: string, sourceURI: nsIURI, sourceLine: string, lineNumber: u32, columnNumber: u32, flags: u32, category: string, innerWindowID: u64, fromChromeContext?: boolean): void;
+ initSourceId(sourceId: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/events/nsIDOMEventListener.idl
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/geolocation/nsIDOMGeoPosition.idl
+
+interface nsIDOMGeoPosition extends nsISupports {
+ readonly timestamp: EpochTimeStamp;
+ readonly coords: nsIDOMGeoPositionCoords;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/geolocation/nsIDOMGeoPositionCallback.idl
+
+type nsIDOMGeoPositionCallback = Callable<{
+ handleEvent(position: nsIDOMGeoPosition): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/geolocation/nsIDOMGeoPositionCoords.idl
+
+interface nsIDOMGeoPositionCoords extends nsISupports {
+ readonly latitude: double;
+ readonly longitude: double;
+ readonly altitude: double;
+ readonly accuracy: double;
+ readonly altitudeAccuracy: double;
+ readonly heading: double;
+ readonly speed: double;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/geolocation/nsIDOMGeoPositionErrorCallback.idl
+
+type nsIDOMGeoPositionErrorCallback = Callable<{
+ handleEvent(positionError: GeolocationPositionError): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/credentialmanagement/nsIIdentityCredentialPromptService.idl
+
+interface nsIIdentityCredentialPromptService extends nsISupports {
+ showProviderPrompt(browsingContext: BrowsingContext, identityProviders: any, identityManifests: any): Promise<any>;
+ showPolicyPrompt(browsingContext: BrowsingContext, identityProvider: any, identityManifest: any, identityClientMetadata: any): Promise<any>;
+ showAccountListPrompt(browsingContext: BrowsingContext, accountList: any, identityProvider: any, identityManifest: any): Promise<any>;
+ close(browsingContext: BrowsingContext): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/credentialmanagement/nsIIdentityCredentialStorageService.idl
+
+interface nsIIdentityCredentialStorageService extends nsISupports {
+ setState(rpPrincipal: nsIPrincipal, idpPrincipal: nsIPrincipal, credentialID: string, registered: boolean, allowLogout: boolean): void;
+ getState(rpPrincipal: nsIPrincipal, idpPrincipal: nsIPrincipal, credentialID: string, registered: OutParam<boolean>, allowLogout: OutParam<boolean>): void;
+ delete(rpPrincipal: nsIPrincipal, idpPrincipal: nsIPrincipal, credentialID: string): void;
+ clear(): void;
+ deleteFromBaseDomain(baseDomain: string): void;
+ deleteFromPrincipal(rpPrincipal: nsIPrincipal): void;
+ deleteFromTimeRange(aFrom: PRTime, aTo: PRTime): void;
+ deleteFromOriginAttributesPattern(aPattern: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/indexedDB/nsIIDBPermissionsRequest.idl
+
+interface nsIIDBPermissionsRequest extends nsISupports {
+ readonly browserElement: Element;
+ readonly responseObserver: nsIObserver;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/localstorage/nsILocalStorageManager.idl
+
+interface nsILocalStorageManager extends nsISupports {
+ readonly nextGenLocalStorageEnabled: boolean;
+ preload(aPrincipal: nsIPrincipal): Promise<any>;
+ isPreloaded(aPrincipal: nsIPrincipal): Promise<any>;
+ getState(aPrincipal: nsIPrincipal): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/media/nsIAudioDeviceInfo.idl
+
+interface nsIAudioDeviceInfo extends nsISupports {
+ readonly TYPE_UNKNOWN: 0;
+ readonly TYPE_INPUT: 1;
+ readonly TYPE_OUTPUT: 2;
+ readonly STATE_DISABLED: 0;
+ readonly STATE_UNPLUGGED: 1;
+ readonly STATE_ENABLED: 2;
+ readonly PREF_NONE: 0;
+ readonly PREF_MULTIMEDIA: 1;
+ readonly PREF_VOICE: 2;
+ readonly PREF_NOTIFICATION: 4;
+ readonly PREF_ALL: 15;
+ readonly FMT_S16LE: 16;
+ readonly FMT_S16BE: 32;
+ readonly FMT_F32LE: 4096;
+ readonly FMT_F32BE: 8192;
+
+ readonly name: string;
+ readonly groupId: string;
+ readonly vendor: string;
+ readonly type: u16;
+ readonly state: u16;
+ readonly preferred: u16;
+ readonly supportedFormat: u16;
+ readonly defaultFormat: u16;
+ readonly maxChannels: u32;
+ readonly defaultRate: u32;
+ readonly maxRate: u32;
+ readonly minRate: u32;
+ readonly maxLatency: u32;
+ readonly minLatency: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/media/nsIMediaDevice.idl
+
+interface nsIMediaDevice extends nsISupports {
+ readonly type: string;
+ readonly mediaSource: string;
+ readonly rawId: string;
+ readonly id: string;
+ readonly scary: boolean;
+ readonly canRequestOsLevelPrompt: boolean;
+ readonly rawName: string;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/media/nsIMediaManager.idl
+
+interface nsIMediaManagerService extends nsISupports {
+ readonly STATE_NOCAPTURE: 0;
+ readonly STATE_CAPTURE_ENABLED: 1;
+ readonly STATE_CAPTURE_DISABLED: 2;
+
+ readonly activeMediaCaptureWindows: nsIArray;
+ mediaCaptureWindowState(aWindow: nsIDOMWindow, aCamera: OutParam<u16>, aMicrophone: OutParam<u16>, aScreenShare: OutParam<u16>, aWindowShare: OutParam<u16>, aBrowserShare: OutParam<u16>, devices: OutParam<nsIMediaDevice[]>): void;
+ sanitizeDeviceIds(sinceWhen: i64): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/network/interfaces/nsITCPSocketCallback.idl
+
+interface nsITCPSocketCallback extends nsISupports {
+ readonly BUFFER_SIZE: 65536;
+
+ fireErrorEvent(name: string, type: string, errorCode: nsresult): void;
+ fireDataStringEvent(type: string, data: string): void;
+ fireEvent(type: string): void;
+ updateReadyState(readystate: u32): void;
+ updateBufferedAmount(bufferedAmount: u32, trackingNumber: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/network/interfaces/nsIUDPSocketChild.idl
+
+interface nsIUDPSocketInternal extends nsISupports {
+ callListenerOpened(): void;
+ callListenerConnected(): void;
+ callListenerClosed(): void;
+ callListenerReceivedData(host: string, port: u16, data: u8[]): void;
+ callListenerError(message: string, filename: string, lineNumber: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/notification/nsINotificationStorage.idl
+
+interface nsINotificationStorageCallback extends nsISupports {
+ handle(id: string, title: string, dir: string, lang: string, body: string, tag: string, icon: string, data: string, behavior: string, serviceWorkerRegistrationScope: string): void;
+ done(): void;
+}
+
+interface nsINotificationStorage extends nsISupports {
+ put(origin: string, id: string, title: string, dir: string, lang: string, body: string, tag: string, icon: string, alertName: string, data: string, behavior: string, serviceWorkerRegistrationScope: string): void;
+ get(origin: string, tag: string, aCallback: nsINotificationStorageCallback): void;
+ delete(origin: string, id: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentActionResponse.idl
+
+interface nsIPaymentResponseData extends nsISupports {
+ readonly GENERAL_RESPONSE: 0;
+ readonly BASICCARD_RESPONSE: 1;
+
+ readonly type: u32;
+ init(aType: u32): void;
+}
+
+interface nsIGeneralResponseData extends nsIPaymentResponseData {
+ readonly data: string;
+ initData(aData: any): void;
+}
+
+interface nsIBasicCardResponseData extends nsIPaymentResponseData {
+ readonly cardholderName: string;
+ readonly cardNumber: string;
+ readonly expiryMonth: string;
+ readonly expiryYear: string;
+ readonly cardSecurityCode: string;
+ readonly billingAddress: nsIPaymentAddress;
+ initData(aCardholderName: string, aCardNumber: string, aExpiryMonth: string, aExpiryYear: string, aCardSecurityCode: string, billingAddress: nsIPaymentAddress): void;
+}
+
+interface nsIPaymentActionResponse extends nsISupports {
+ readonly NO_TYPE: 0;
+ readonly CANMAKE_ACTION: 2;
+ readonly SHOW_ACTION: 3;
+ readonly ABORT_ACTION: 4;
+ readonly COMPLETE_ACTION: 5;
+ readonly ABORT_SUCCEEDED: 1;
+ readonly ABORT_FAILED: 0;
+ readonly PAYMENT_REJECTED: 0;
+ readonly PAYMENT_ACCEPTED: 1;
+ readonly PAYMENT_NOTSUPPORTED: 2;
+ readonly COMPLETE_SUCCEEDED: 1;
+ readonly COMPLETE_FAILED: 0;
+
+ readonly requestId: string;
+ readonly type: u32;
+}
+
+interface nsIPaymentCanMakeActionResponse extends nsIPaymentActionResponse {
+ readonly result: boolean;
+ init(aRequestId: string, aResult: boolean): void;
+}
+
+interface nsIPaymentShowActionResponse extends nsIPaymentActionResponse {
+ readonly acceptStatus: u32;
+ readonly methodName: string;
+ readonly data: nsIPaymentResponseData;
+ readonly payerName: string;
+ readonly payerEmail: string;
+ readonly payerPhone: string;
+ init(aRequestId: string, aAcceptStatus: u32, aMethodName: string, aData: nsIPaymentResponseData, aPayerName: string, aPayerEmail: string, aPayerPhone: string): void;
+}
+
+interface nsIPaymentAbortActionResponse extends nsIPaymentActionResponse {
+ readonly abortStatus: u32;
+ init(aRequestId: string, aAbortStatus: u32): void;
+ isSucceeded(): boolean;
+}
+
+interface nsIPaymentCompleteActionResponse extends nsIPaymentActionResponse {
+ readonly completeStatus: u32;
+ init(aRequestId: string, aCompleteStatus: u32): void;
+ isCompleted(): boolean;
+}
+
+interface nsIMethodChangeDetails extends nsISupports {
+ readonly GENERAL_DETAILS: 0;
+ readonly BASICCARD_DETAILS: 1;
+
+ readonly type: u32;
+ init(aType: u32): void;
+}
+
+interface nsIGeneralChangeDetails extends nsIMethodChangeDetails {
+ readonly details: string;
+ initData(aDetails: any): void;
+}
+
+interface nsIBasicCardChangeDetails extends nsIMethodChangeDetails {
+ readonly billingAddress: nsIPaymentAddress;
+ initData(billingAddress: nsIPaymentAddress): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentAddress.idl
+
+interface nsIPaymentAddress extends nsISupports {
+ readonly country: string;
+ readonly addressLine: nsIArray;
+ readonly region: string;
+ readonly regionCode: string;
+ readonly city: string;
+ readonly dependentLocality: string;
+ readonly postalCode: string;
+ readonly sortingCode: string;
+ readonly organization: string;
+ readonly recipient: string;
+ readonly phone: string;
+ init(aCountry: string, aAddressLine: nsIArray, aRegion: string, aRegionCode: string, aCity: string, aDependentLocality: string, aPostalCode: string, aSortingCode: string, aOrganization: string, aRecipient: string, aPhone: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentRequest.idl
+
+interface nsIPaymentMethodData extends nsISupports {
+ readonly supportedMethods: string;
+ readonly data: any;
+}
+
+interface nsIPaymentCurrencyAmount extends nsISupports {
+ readonly currency: string;
+ readonly value: string;
+}
+
+interface nsIPaymentItem extends nsISupports {
+ readonly label: string;
+ readonly amount: nsIPaymentCurrencyAmount;
+ readonly pending: boolean;
+}
+
+interface nsIPaymentDetailsModifier extends nsISupports {
+ readonly supportedMethods: string;
+ readonly total: nsIPaymentItem;
+ readonly additionalDisplayItems: nsIArray;
+ readonly data: any;
+}
+
+interface nsIPaymentShippingOption extends nsISupports {
+ readonly id: string;
+ readonly label: string;
+ readonly amount: nsIPaymentCurrencyAmount;
+ selected: boolean;
+}
+
+interface nsIPaymentDetails extends nsISupports {
+ readonly id: string;
+ readonly totalItem: nsIPaymentItem;
+ readonly displayItems: nsIArray;
+ readonly shippingOptions: nsIArray;
+ readonly modifiers: nsIArray;
+ readonly error: string;
+ readonly shippingAddressErrors: any;
+ readonly payerErrors: any;
+ readonly paymentMethodErrors: any;
+}
+
+interface nsIPaymentOptions extends nsISupports {
+ readonly requestPayerName: boolean;
+ readonly requestPayerEmail: boolean;
+ readonly requestPayerPhone: boolean;
+ readonly requestShipping: boolean;
+ readonly requestBillingAddress: boolean;
+ readonly shippingType: string;
+}
+
+interface nsIPaymentRequest extends nsISupports {
+ readonly topOuterWindowId: u64;
+ readonly topLevelPrincipal: nsIPrincipal;
+ readonly requestId: string;
+ readonly completeStatus: string;
+ readonly paymentMethods: nsIArray;
+ readonly paymentDetails: nsIPaymentDetails;
+ readonly paymentOptions: nsIPaymentOptions;
+ readonly shippingOption: string;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentRequestService.idl
+
+interface nsIPaymentRequestService extends nsISupports {
+ getPaymentRequestById(aRequestId: string): nsIPaymentRequest;
+ enumerate(): nsISimpleEnumerator;
+ respondPayment(aResponse: nsIPaymentActionResponse): void;
+ changeShippingAddress(requestId: string, aAddress: nsIPaymentAddress): void;
+ changeShippingOption(requestId: string, option: string): void;
+ changePayerDetail(requestId: string, aPayerName: string, aPayerEmail: string, aPayerPhone: string): void;
+ changePaymentMethod(requestId: string, aMethodName: string, aMethodDetails: nsIMethodChangeDetails): void;
+ cleanup(): void;
+ setTestingUIService(aUIService: nsIPaymentUIService): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentUIService.idl
+
+interface nsIPaymentUIService extends nsISupports {
+ showPayment(requestId: string): void;
+ abortPayment(requestId: string): void;
+ completePayment(requestId: string): void;
+ updatePayment(requestId: string): void;
+ closePayment(requestId: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/power/nsIDOMWakeLockListener.idl
+
+type nsIDOMMozWakeLockListener = Callable<{
+ callback(aTopic: string, aState: string): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/dom/power/nsIPowerManagerService.idl
+
+interface nsIPowerManagerService extends nsISupports {
+ addWakeLockListener(aListener: nsIDOMMozWakeLockListener): void;
+ removeWakeLockListener(aListener: nsIDOMMozWakeLockListener): void;
+ getWakeLockState(aTopic: string): string;
+ newWakeLock(aTopic: string, aWindow?: mozIDOMWindow): nsIWakeLock;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/power/nsIWakeLock.idl
+
+interface nsIWakeLock extends nsISupports {
+ unlock(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/push/nsIPushErrorReporter.idl
+
+interface nsIPushErrorReporter extends nsISupports {
+ readonly ACK_DELIVERED: 0;
+ readonly ACK_DECRYPTION_ERROR: 1;
+ readonly ACK_NOT_DELIVERED: 2;
+ readonly UNSUBSCRIBE_MANUAL: 3;
+ readonly UNSUBSCRIBE_QUOTA_EXCEEDED: 4;
+ readonly UNSUBSCRIBE_PERMISSION_REVOKED: 5;
+ readonly DELIVERY_UNCAUGHT_EXCEPTION: 6;
+ readonly DELIVERY_UNHANDLED_REJECTION: 7;
+ readonly DELIVERY_INTERNAL_ERROR: 8;
+
+ reportDeliveryError(messageId: string, reason?: u16): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/push/nsIPushNotifier.idl
+
+interface nsIPushNotifier extends nsISupports {
+ notifyPush(scope: string, principal: nsIPrincipal, messageId: string): void;
+ notifyPushWithData(scope: string, principal: nsIPrincipal, messageId: string, data: u8[]): void;
+ notifySubscriptionChange(scope: string, principal: nsIPrincipal): void;
+ notifySubscriptionModified(scope: string, principal: nsIPrincipal): void;
+ notifyError(scope: string, principal: nsIPrincipal, message: string, flags: u32): void;
+}
+
+interface nsIPushData extends nsISupports {
+ text(): string;
+ json(): any;
+ binary(): u8[];
+}
+
+interface nsIPushMessage extends nsISupports {
+ readonly principal: nsIPrincipal;
+ readonly data: nsIPushData;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/push/nsIPushService.idl
+
+interface nsIPushSubscription extends nsISupports {
+ readonly endpoint: string;
+ readonly pushCount: i64;
+ readonly lastPush: i64;
+ readonly quota: i32;
+ readonly isSystemSubscription: boolean;
+ readonly p256dhPrivateKey: any;
+ quotaApplies(): boolean;
+ isExpired(): boolean;
+ getKey(name: string): u8[];
+}
+
+type nsIPushSubscriptionCallback = Callable<{
+ onPushSubscription(status: nsresult, subscription: nsIPushSubscription): void;
+}>
+
+type nsIUnsubscribeResultCallback = Callable<{
+ onUnsubscribe(status: nsresult, success: boolean): void;
+}>
+
+type nsIPushClearResultCallback = Callable<{
+ onClear(status: nsresult): void;
+}>
+
+interface nsIPushService extends nsISupports {
+ readonly pushTopic: string;
+ readonly subscriptionChangeTopic: string;
+ readonly subscriptionModifiedTopic: string;
+ subscribe(scope: string, principal: nsIPrincipal, callback: nsIPushSubscriptionCallback): void;
+ subscribeWithKey(scope: string, principal: nsIPrincipal, key: u8[], callback: nsIPushSubscriptionCallback): void;
+ unsubscribe(scope: string, principal: nsIPrincipal, callback: nsIUnsubscribeResultCallback): void;
+ getSubscription(scope: string, principal: nsIPrincipal, callback: nsIPushSubscriptionCallback): void;
+ clearForDomain(domain: string, callback: nsIPushClearResultCallback): void;
+}
+
+interface nsIPushQuotaManager extends nsISupports {
+ notificationForOriginShown(origin: string): void;
+ notificationForOriginClosed(origin: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaCallbacks.idl
+
+type nsIQuotaUsageCallback = Callable<{
+ onUsageResult(aRequest: nsIQuotaUsageRequest): void;
+}>
+
+type nsIQuotaCallback = Callable<{
+ onComplete(aRequest: nsIQuotaRequest): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaManagerService.idl
+
+interface nsIQuotaManagerService extends nsISupports {
+ storageName(): nsIQuotaRequest;
+ storageInitialized(): nsIQuotaRequest;
+ temporaryStorageInitialized(): nsIQuotaRequest;
+ init(): nsIQuotaRequest;
+ initTemporaryStorage(): nsIQuotaRequest;
+ initializePersistentOrigin(aPrincipal: nsIPrincipal): nsIQuotaRequest;
+ initializeTemporaryOrigin(aPersistenceType: string, aPrincipal: nsIPrincipal): nsIQuotaRequest;
+ initializePersistentClient(aPrincipal: nsIPrincipal, aClientType: string): nsIQuotaRequest;
+ initializeTemporaryClient(aPersistenceType: string, aPrincipal: nsIPrincipal, aClientType: string): nsIQuotaRequest;
+ getFullOriginMetadata(aPersistenceType: string, aPrincipal: nsIPrincipal): nsIQuotaRequest;
+ getUsage(aCallback: nsIQuotaUsageCallback, aGetAll?: boolean): nsIQuotaUsageRequest;
+ getUsageForPrincipal(aPrincipal: nsIPrincipal, aCallback: nsIQuotaUsageCallback, aFromMemory?: boolean): nsIQuotaUsageRequest;
+ listOrigins(): nsIQuotaRequest;
+ clear(): nsIQuotaRequest;
+ clearStoragesForPrivateBrowsing(): nsIQuotaRequest;
+ clearStoragesForOriginAttributesPattern(aPattern: string): nsIQuotaRequest;
+ clearStoragesForPrincipal(aPrincipal: nsIPrincipal, aPersistenceType?: string, aClientType?: string): nsIQuotaRequest;
+ clearStoragesForOriginPrefix(aPrincipal: nsIPrincipal, aPersistenceType?: string): nsIQuotaRequest;
+ reset(): nsIQuotaRequest;
+ resetStoragesForPrincipal(aPrincipal: nsIPrincipal, aPersistenceType?: string, aClientType?: string): nsIQuotaRequest;
+ persisted(aPrincipal: nsIPrincipal): nsIQuotaRequest;
+ persist(aPrincipal: nsIPrincipal): nsIQuotaRequest;
+ estimate(aPrincipal: nsIPrincipal): nsIQuotaRequest;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaRequests.idl
+
+interface nsIQuotaRequestBase extends nsISupports {
+ readonly principal: nsIPrincipal;
+ readonly resultCode: nsresult;
+ readonly resultName: string;
+}
+
+interface nsIQuotaUsageRequest extends nsIQuotaRequestBase {
+ readonly result: nsIVariant;
+ callback: nsIQuotaUsageCallback;
+ cancel(): void;
+}
+
+interface nsIQuotaRequest extends nsIQuotaRequestBase {
+ readonly result: nsIVariant;
+ callback: nsIQuotaCallback;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaResults.idl
+
+interface nsIQuotaFullOriginMetadataResult extends nsISupports {
+ readonly suffix: string;
+ readonly group: string;
+ readonly origin: string;
+ readonly storageOrigin: string;
+ readonly persistenceType: string;
+ readonly persisted: boolean;
+ readonly lastAccessTime: i64;
+}
+
+interface nsIQuotaUsageResult extends nsISupports {
+ readonly origin: string;
+ readonly persisted: boolean;
+ readonly usage: u64;
+ readonly lastAccessed: u64;
+}
+
+interface nsIQuotaOriginUsageResult extends nsISupports {
+ readonly databaseUsage: u64;
+ readonly fileUsage: u64;
+ readonly usage: u64;
+ readonly databaseUsageIsExplicit: boolean;
+ readonly fileUsageIsExplicit: boolean;
+ readonly totalUsageIsExplicit: boolean;
+}
+
+interface nsIQuotaEstimateResult extends nsISupports {
+ readonly usage: u64;
+ readonly limit: u64;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/security/nsIContentSecurityManager.idl
+
+interface nsIContentSecurityManager extends nsISupports {
+ performSecurityCheck(aChannel: nsIChannel, aStreamListener: nsIStreamListener): nsIStreamListener;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/security/nsIContentSecurityPolicy.idl
+
+} // global
+
+declare namespace nsIContentSecurityPolicy {
+
+enum CSPDirective {
+ NO_DIRECTIVE = 0,
+ DEFAULT_SRC_DIRECTIVE = 1,
+ SCRIPT_SRC_DIRECTIVE = 2,
+ OBJECT_SRC_DIRECTIVE = 3,
+ STYLE_SRC_DIRECTIVE = 4,
+ IMG_SRC_DIRECTIVE = 5,
+ MEDIA_SRC_DIRECTIVE = 6,
+ FRAME_SRC_DIRECTIVE = 7,
+ FONT_SRC_DIRECTIVE = 8,
+ CONNECT_SRC_DIRECTIVE = 9,
+ REPORT_URI_DIRECTIVE = 10,
+ FRAME_ANCESTORS_DIRECTIVE = 11,
+ REFLECTED_XSS_DIRECTIVE = 12,
+ BASE_URI_DIRECTIVE = 13,
+ FORM_ACTION_DIRECTIVE = 14,
+ WEB_MANIFEST_SRC_DIRECTIVE = 15,
+ UPGRADE_IF_INSECURE_DIRECTIVE = 16,
+ CHILD_SRC_DIRECTIVE = 17,
+ BLOCK_ALL_MIXED_CONTENT = 18,
+ SANDBOX_DIRECTIVE = 19,
+ WORKER_SRC_DIRECTIVE = 20,
+ SCRIPT_SRC_ELEM_DIRECTIVE = 21,
+ SCRIPT_SRC_ATTR_DIRECTIVE = 22,
+ STYLE_SRC_ELEM_DIRECTIVE = 23,
+ STYLE_SRC_ATTR_DIRECTIVE = 24,
+}
+
+}
+
+declare global {
+
+interface nsIContentSecurityPolicy extends nsISerializable, Enums<typeof nsIContentSecurityPolicy.CSPDirective> {
+ readonly VIOLATION_TYPE_EVAL: 1;
+ readonly VIOLATION_TYPE_WASM_EVAL: 2;
+
+ getPolicy(index: u32): string;
+ readonly policyCount: u32;
+ readonly upgradeInsecureRequests: boolean;
+ readonly blockAllMixedContent: boolean;
+ readonly enforcesFrameAncestors: boolean;
+ appendPolicy(policyString: string, reportOnly: boolean, deliveredViaMetaTag: boolean): void;
+ getAllowsInline(aDirective: nsIContentSecurityPolicy.CSPDirective, aHasUnsafeHash: boolean, aNonce: string, aParserCreated: boolean, aTriggeringElement: Element, aCSPEventListener: nsICSPEventListener, aContentOfPseudoScript: string, aLineNumber: u32, aColumnNumber: u32): boolean;
+ getAllowsEval(shouldReportViolations: OutParam<boolean>): boolean;
+ getAllowsWasmEval(shouldReportViolations: OutParam<boolean>): boolean;
+ getCSPSandboxFlags(): u32;
+ logViolationDetails(violationType: u16, triggeringElement: Element, aCSPEventListener: nsICSPEventListener, sourceFile: string, scriptSample: string, lineNum: i32, columnNum: i32, nonce?: string, content?: string): void;
+ setRequestContextWithDocument(aDocument: Document): void;
+ setRequestContextWithPrincipal(aRequestPrincipal: nsIPrincipal, aSelfURI: nsIURI, aReferrer: string, aInnerWindowId: u64): void;
+ permitsAncestry(aLoadInfo: nsILoadInfo): boolean;
+ permits(aTriggeringElement: Element, aCSPEventListener: nsICSPEventListener, aURI: nsIURI, aDir: nsIContentSecurityPolicy.CSPDirective, aSpecific: boolean, aSendViolationReports: boolean): boolean;
+ shouldLoad(aContentType: nsContentPolicyType, aCSPEventListener: nsICSPEventListener, aLoadInfo: nsILoadInfo, aContentLocation: nsIURI, aOriginalURIIfRedirect: nsIURI, aSendViolationReports: boolean): i16;
+ toJSON(): string;
+}
+
+type nsICSPEventListener = Callable<{
+ onCSPViolationEvent(aJSON: string): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/security/nsIReferrerInfo.idl
+
+} // global
+
+declare namespace nsIReferrerInfo {
+
+enum ReferrerPolicyIDL {
+ EMPTY = 0,
+ NO_REFERRER_WHEN_DOWNGRADE = 1,
+ NO_REFERRER = 2,
+ ORIGIN = 3,
+ ORIGIN_WHEN_CROSS_ORIGIN = 4,
+ UNSAFE_URL = 5,
+ SAME_ORIGIN = 6,
+ STRICT_ORIGIN = 7,
+ STRICT_ORIGIN_WHEN_CROSS_ORIGIN = 8,
+}
+
+}
+
+declare global {
+
+interface nsIReferrerInfo extends nsISerializable, Enums<typeof nsIReferrerInfo.ReferrerPolicyIDL> {
+ readonly originalReferrer: nsIURI;
+ readonly referrerPolicy: nsIReferrerInfo.ReferrerPolicyIDL;
+ getReferrerPolicyString(): string;
+ readonly sendReferrer: boolean;
+ readonly computedReferrerSpec: string;
+ equals(other: nsIReferrerInfo): boolean;
+ init(aReferrerPolicy: nsIReferrerInfo.ReferrerPolicyIDL, aSendReferrer?: boolean, aOriginalReferrer?: nsIURI): void;
+ initWithDocument(aDocument: Document): void;
+ initWithElement(aNode: Element): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/security/nsIHttpsOnlyModePermission.idl
+
+interface nsIHttpsOnlyModePermission extends nsISupports {
+ readonly LOAD_INSECURE_DEFAULT: 0;
+ readonly LOAD_INSECURE_ALLOW: 1;
+ readonly LOAD_INSECURE_BLOCK: 2;
+ readonly LOAD_INSECURE_ALLOW_SESSION: 9;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/serializers/nsIDocumentEncoder.idl
+
+interface nsIDocumentEncoderNodeFixup extends nsISupports {
+ fixupNode(aNode: Node, aSerializeCloneKids: OutParam<boolean>): Node;
+}
+
+interface nsIDocumentEncoder extends nsISupports {
+ readonly OutputSelectionOnly: 1;
+ readonly OutputFormatted: 2;
+ readonly OutputRaw: 4;
+ readonly OutputBodyOnly: 8;
+ readonly OutputPreformatted: 16;
+ readonly OutputWrap: 32;
+ readonly OutputFormatFlowed: 64;
+ readonly OutputAbsoluteLinks: 128;
+ readonly OutputCRLineBreak: 512;
+ readonly OutputLFLineBreak: 1024;
+ readonly OutputNoScriptContent: 2048;
+ readonly OutputNoFramesContent: 4096;
+ readonly OutputNoFormattingInPre: 8192;
+ readonly OutputEncodeBasicEntities: 16384;
+ readonly OutputPersistNBSP: 131072;
+ readonly OutputDontRewriteEncodingDeclaration: 262144;
+ readonly SkipInvisibleContent: 524288;
+ readonly OutputFormatDelSp: 1048576;
+ readonly OutputDropInvisibleBreak: 2097152;
+ readonly OutputIgnoreMozDirty: 4194304;
+ readonly OutputForPlainTextClipboardCopy: 33554432;
+ readonly OutputRubyAnnotation: 67108864;
+ readonly OutputDisallowLineBreaking: 134217728;
+ readonly RequiresReinitAfterOutput: 268435456;
+
+ init(aDocument: Document, aMimeType: string, aFlags: u32): void;
+ setSelection(aSelection: Selection): void;
+ setRange(aRange: Range): void;
+ setNode(aNode: Node): void;
+ setContainerNode(aContainer: Node): void;
+ setCharset(aCharset: string): void;
+ setWrapColumn(aWrapColumn: u32): void;
+ readonly mimeType: string;
+ encodeToStream(aStream: nsIOutputStream): void;
+ encodeToString(): string;
+ encodeToStringWithContext(aContextString: OutParam<string>, aInfoString: OutParam<string>): string;
+ encodeToStringWithMaxLength(aMaxLength: u32): string;
+ setNodeFixup(aFixup: nsIDocumentEncoderNodeFixup): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/sidebar/nsIWebProtocolHandlerRegistrar.idl
+
+interface nsIWebProtocolHandlerRegistrar extends nsISupports {
+ registerProtocolHandler(protocol: string, uri: nsIURI, title: string, documentURI: nsIURI, windowOrBrowser: nsISupports): void;
+ removeProtocolHandler(protocol: string, uri: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/simpledb/nsISDBCallbacks.idl
+
+type nsISDBCallback = Callable<{
+ onComplete(aRequest: nsISDBRequest): void;
+}>
+
+type nsISDBCloseCallback = Callable<{
+ onClose(aConnection: nsISDBConnection): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/dom/simpledb/nsISDBConnection.idl
+
+interface nsISDBConnection extends nsISupports {
+ init(aPrincipal: nsIPrincipal, aPersistenceType?: string): void;
+ open(aName: string): nsISDBRequest;
+ seek(offset: u64): nsISDBRequest;
+ read(size: u64): nsISDBRequest;
+ write(value: any): nsISDBRequest;
+ close(): nsISDBRequest;
+ closeCallback: nsISDBCloseCallback;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/simpledb/nsISDBRequest.idl
+
+interface nsISDBRequest extends nsISupports {
+ readonly result: nsIVariant;
+ readonly resultCode: nsresult;
+ callback: nsISDBCallback;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/simpledb/nsISDBResults.idl
+
+interface nsISDBResult extends nsISupports {
+ getAsArray(): u8[];
+ getAsArrayBuffer(): any;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/storage/nsIDOMStorageManager.idl
+
+interface nsIDOMStorageManager extends nsISupports {
+ precacheStorage(aPrincipal: nsIPrincipal, aStoragePrincipal: nsIPrincipal): Storage;
+ createStorage(aWindow: mozIDOMWindow, aPrincipal: nsIPrincipal, aStoragePrincipal: nsIPrincipal, aDocumentURI: string, aPrivate?: boolean): Storage;
+ getStorage(aWindow: mozIDOMWindow, aPrincipal: nsIPrincipal, aStoragePrincipal: nsIPrincipal, aPrivate?: boolean): Storage;
+ cloneStorage(aStorageToCloneFrom: Storage): void;
+ checkStorage(aPrincipal: nsIPrincipal, aStorage: Storage): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/storage/nsIStorageActivityService.idl
+
+interface nsIStorageActivityService extends nsISupports {
+ getActiveOrigins(from: PRTime, to: PRTime): nsIArray;
+ moveOriginInTime(origin: nsIPrincipal, when: PRTime): void;
+ testOnlyReset(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/storage/nsISessionStorageService.idl
+
+interface nsISessionStorageService extends nsISupports {
+ clearStoragesForOrigin(aPrincipal: nsIPrincipal): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/system/nsIOSPermissionRequest.idl
+
+interface nsIOSPermissionRequest extends nsISupports {
+ readonly PERMISSION_STATE_NOTDETERMINED: 0;
+ readonly PERMISSION_STATE_RESTRICTED: 1;
+ readonly PERMISSION_STATE_DENIED: 2;
+ readonly PERMISSION_STATE_AUTHORIZED: 3;
+
+ getMediaCapturePermissionState(aVideo: OutParam<u16>, aAudio: OutParam<u16>): void;
+ getAudioCapturePermissionState(aAudio: OutParam<u16>): void;
+ getVideoCapturePermissionState(aVideo: OutParam<u16>): void;
+ getScreenCapturePermissionState(aScreen: OutParam<u16>): void;
+ requestVideoCapturePermission(): Promise<any>;
+ requestAudioCapturePermission(): Promise<any>;
+ maybeRequestScreenCapturePermission(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnArgs.idl
+
+// https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnAttObj.idl
+
+// https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnPromise.idl
+
+// https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnResult.idl
+
+// https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnService.idl
+
+interface nsICredentialParameters extends nsISupports {
+ readonly credentialId: string;
+ readonly isResidentCredential: boolean;
+ readonly rpId: string;
+ readonly privateKey: string;
+ readonly userHandle: string;
+ readonly signCount: u32;
+}
+
+interface nsIWebAuthnAutoFillEntry extends nsISupports {
+ readonly PROVIDER_UNKNOWN: 0;
+ readonly PROVIDER_TEST_TOKEN: 1;
+ readonly PROVIDER_PLATFORM_WINDOWS: 2;
+ readonly PROVIDER_PLATFORM_MACOS: 3;
+ readonly PROVIDER_PLATFORM_ANDROID: 4;
+
+ readonly provider: u8;
+ readonly userName: string;
+ readonly rpId: string;
+ readonly credentialId: u8[];
+}
+
+interface nsIWebAuthnService extends nsISupports {
+ readonly isUVPAA: boolean;
+ makeCredential(aTransactionId: u64, browsingContextId: u64, args: nsIWebAuthnRegisterArgs, promise: nsIWebAuthnRegisterPromise): void;
+ getAssertion(aTransactionId: u64, browsingContextId: u64, args: nsIWebAuthnSignArgs, promise: nsIWebAuthnSignPromise): void;
+ cancel(aTransactionId: u64): void;
+ hasPendingConditionalGet(aBrowsingContextId: u64, aOrigin: string): u64;
+ getAutoFillEntries(aTransactionId: u64): nsIWebAuthnAutoFillEntry[];
+ selectAutoFillEntry(aTransactionId: u64, aCredentialId: u8[]): void;
+ resumeConditionalGet(aTransactionId: u64): void;
+ pinCallback(aTransactionId: u64, aPin: string): void;
+ resumeMakeCredential(aTransactionId: u64, aForceNoneAttestation: boolean): void;
+ selectionCallback(aTransactionId: u64, aIndex: u64): void;
+ addVirtualAuthenticator(protocol: string, transport: string, hasResidentKey: boolean, hasUserVerification: boolean, isUserConsenting: boolean, isUserVerified: boolean): u64;
+ removeVirtualAuthenticator(authenticatorId: u64): void;
+ addCredential(authenticatorId: u64, credentialId: string, isResidentCredential: boolean, rpId: string, privateKey: string, userHandle: string, signCount: u32): void;
+ getCredentials(authenticatorId: u64): nsICredentialParameters[];
+ removeCredential(authenticatorId: u64, credentialId: string): void;
+ removeAllCredentials(authenticatorId: u64): void;
+ setUserVerified(authenticatorId: u64, isUserVerified: boolean): void;
+ listen(): void;
+ runCommand(aCommand: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/media/webspeech/recognition/nsISpeechRecognitionService.idl
+
+// https://searchfox.org/mozilla-central/source/dom/media/webspeech/synth/nsISpeechService.idl
+
+interface nsISpeechTaskCallback extends nsISupports {
+ onPause(): void;
+ onResume(): void;
+ onCancel(): void;
+ onVolumeChanged(aVolume: float): void;
+}
+
+interface nsISpeechTask extends nsISupports {
+ setup(aCallback: nsISpeechTaskCallback): void;
+ dispatchStart(): void;
+ dispatchEnd(aElapsedTime: float, aCharIndex: u32): void;
+ dispatchPause(aElapsedTime: float, aCharIndex: u32): void;
+ dispatchResume(aElapsedTime: float, aCharIndex: u32): void;
+ dispatchError(aElapsedTime: float, aCharIndex: u32): void;
+ dispatchBoundary(aName: string, aElapsedTime: float, aCharIndex: u32, aCharLength?: u32): void;
+ dispatchMark(aName: string, aElapsedTime: float, aCharIndex: u32): void;
+}
+
+interface nsISpeechService extends nsISupports {
+ speak(aText: string, aUri: string, aVolume: float, aRate: float, aPitch: float, aTask: nsISpeechTask): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/media/webspeech/synth/nsISynthVoiceRegistry.idl
+
+interface nsISynthVoiceRegistry extends nsISupports {
+ addVoice(aService: nsISpeechService, aUri: string, aName: string, aLang: string, aLocalService: boolean, aQueuesUtterances: boolean): void;
+ removeVoice(aService: nsISpeechService, aUri: string): void;
+ notifyVoicesChanged(): void;
+ notifyVoicesError(aError: string): void;
+ setDefaultVoice(aUri: string, aIsDefault: boolean): void;
+ readonly voiceCount: u32;
+ getVoice(aIndex: u32): string;
+ isDefaultVoice(aUri: string): boolean;
+ isLocalVoice(aUri: string): boolean;
+ getVoiceLang(aUri: string): string;
+ getVoiceName(aUri: string): string;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/workers/nsIWorkerChannelInfo.idl
+
+interface nsIWorkerChannelLoadInfo extends nsISupports {
+ workerAssociatedBrowsingContextID: u64;
+ readonly workerAssociatedBrowsingContext: BrowsingContext;
+}
+
+interface nsIWorkerChannelInfo extends nsISupports {
+ loadInfo: nsIWorkerChannelLoadInfo;
+ readonly channelId: u64;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/workers/nsIWorkerDebugger.idl
+
+interface nsIWorkerDebuggerListener extends nsISupports {
+ onClose(): void;
+ onError(filename: string, lineno: u32, message: string): void;
+ onMessage(message: string): void;
+}
+
+interface nsIWorkerDebugger extends nsISupports {
+ readonly TYPE_DEDICATED: 0;
+ readonly TYPE_SHARED: 1;
+ readonly TYPE_SERVICE: 2;
+
+ readonly isClosed: boolean;
+ readonly isChrome: boolean;
+ readonly isInitialized: boolean;
+ readonly parent: nsIWorkerDebugger;
+ readonly type: u32;
+ readonly url: string;
+ readonly window: mozIDOMWindow;
+ readonly windowIDs: u64[];
+ readonly principal: nsIPrincipal;
+ readonly serviceWorkerID: u32;
+ readonly id: string;
+ initialize(url: string): void;
+ postMessage(message: string): void;
+ addListener(listener: nsIWorkerDebuggerListener): void;
+ removeListener(listener: nsIWorkerDebuggerListener): void;
+ setDebuggerReady(ready: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/workers/nsIWorkerDebuggerManager.idl
+
+interface nsIWorkerDebuggerManagerListener extends nsISupports {
+ onRegister(aDebugger: nsIWorkerDebugger): void;
+ onUnregister(aDebugger: nsIWorkerDebugger): void;
+}
+
+interface nsIWorkerDebuggerManager extends nsISupports {
+ getWorkerDebuggerEnumerator(): nsISimpleEnumerator;
+ addListener(listener: nsIWorkerDebuggerManagerListener): void;
+ removeListener(listener: nsIWorkerDebuggerManagerListener): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/xslt/xslt/txIEXSLTFunctions.idl
+
+interface txIEXSLTFunctions extends nsISupports {
+ match(str: string, regex: string, flags: string, doc: Document): DocumentFragment;
+ replace(str: string, regex: string, flags: string, replace: string): string;
+ test(str: string, regex: string, flags: string): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULButtonElement.idl
+
+interface nsIDOMXULButtonElement extends nsIDOMXULControlElement {
+ type: string;
+ open: boolean;
+ checked: boolean;
+ group: string;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULCommandDispatcher.idl
+
+interface nsIDOMXULCommandDispatcher extends nsISupports {
+ focusedElement: Element;
+ focusedWindow: mozIDOMWindowProxy;
+ addCommandUpdater(updater: Element, events: string, targets: string): void;
+ removeCommandUpdater(updater: Element): void;
+ updateCommands(eventName: string): void;
+ getControllerForCommand(command: string): nsIController;
+ getControllers(): nsIControllers;
+ advanceFocus(): void;
+ rewindFocus(): void;
+ advanceFocusIntoSubtree(elt: Element): void;
+ lock(): void;
+ unlock(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULContainerElement.idl
+
+interface nsIDOMXULContainerItemElement extends nsISupports {
+ readonly parentContainer: Element;
+}
+
+interface nsIDOMXULContainerElement extends nsIDOMXULContainerItemElement {
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULControlElement.idl
+
+interface nsIDOMXULControlElement extends nsISupports {
+ disabled: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULMenuListElement.idl
+
+interface nsIDOMXULMenuListElement extends nsIDOMXULSelectControlElement {
+ editable: boolean;
+ open: boolean;
+ readonly label: string;
+ image: string;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl
+
+interface nsIDOMXULMultiSelectControlElement extends nsIDOMXULSelectControlElement {
+ selType: string;
+ currentItem: Element;
+ currentIndex: i32;
+ readonly selectedItems: NodeList;
+ addItemToSelection(item: nsIDOMXULSelectControlItemElement): void;
+ removeItemFromSelection(item: nsIDOMXULSelectControlItemElement): void;
+ toggleItemSelection(item: nsIDOMXULSelectControlItemElement): void;
+ selectItem(item: nsIDOMXULSelectControlItemElement): void;
+ selectItemRange(startItem: nsIDOMXULSelectControlItemElement, item: nsIDOMXULSelectControlItemElement): void;
+ selectAll(): void;
+ clearSelection(): void;
+ readonly selectedCount: i32;
+ getSelectedItem(index: i32): Element;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULRadioGroupElement.idl
+
+interface nsIDOMXULRadioGroupElement extends nsISupports {
+ focusedItem: Element;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULRelatedElement.idl
+
+interface nsIDOMXULRelatedElement extends nsISupports {
+ getRelatedElement(aElement: Node): Element;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl
+
+interface nsIDOMXULSelectControlElement extends nsIDOMXULControlElement {
+ selectedItem: Element;
+ selectedIndex: i32;
+ value: string;
+ readonly itemCount: u32;
+ getIndexOfItem(item: nsIDOMXULSelectControlItemElement): i32;
+ getItemAtIndex(index: i32): Element;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl
+
+interface nsIDOMXULSelectControlItemElement extends nsISupports {
+ disabled: boolean;
+ image: string;
+ label: string;
+ accessKey: string;
+ command: string;
+ value: string;
+ readonly selected: boolean;
+ readonly control: Element;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/downloads/mozIDownloadPlatform.idl
+
+interface mozIDownloadPlatform extends nsISupports {
+ readonly ZONE_MY_COMPUTER: 0;
+ readonly ZONE_INTRANET: 1;
+ readonly ZONE_TRUSTED: 2;
+ readonly ZONE_INTERNET: 3;
+ readonly ZONE_RESTRICTED: 4;
+
+ downloadDone(aSource: nsIURI, aReferrer: nsIURI, aTarget: nsIFile, aContentType: string, aIsPrivate: boolean): Promise<any>;
+ mapUrlToZone(aURL: string): u32;
+}
+
+// https://searchfox.org/mozilla-central/source/editor/nsIDocumentStateListener.idl
+
+interface nsIDocumentStateListener extends nsISupports {
+ NotifyDocumentWillBeDestroyed(): void;
+ NotifyDocumentStateChanged(aNowDirty: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/editor/nsIEditActionListener.idl
+
+interface nsIEditActionListener extends nsISupports {
+ DidDeleteNode(aChild: Node, aResult: nsresult): void;
+ DidInsertText(aTextNode: CharacterData, aOffset: i32, aString: string, aResult: nsresult): void;
+ WillDeleteText(aTextNode: CharacterData, aOffset: i32, aLength: i32): void;
+ WillDeleteRanges(aRangesToDelete: Range[]): void;
+}
+
+// https://searchfox.org/mozilla-central/source/editor/nsIEditor.idl
+
+interface nsIEditor extends nsISupports {
+ readonly eNone: 0;
+ readonly eNext: 1;
+ readonly ePrevious: 2;
+ readonly eNextWord: 3;
+ readonly ePreviousWord: 4;
+ readonly eToBeginningOfLine: 5;
+ readonly eToEndOfLine: 6;
+ readonly eStrip: 0;
+ readonly eNoStrip: 1;
+ readonly eEditorPlaintextMask: 1;
+ readonly eEditorSingleLineMask: 2;
+ readonly eEditorPasswordMask: 4;
+ readonly eEditorReadonlyMask: 8;
+ readonly eEditorMailMask: 32;
+ readonly eEditorEnableWrapHackMask: 64;
+ readonly eEditorAllowInteraction: 512;
+ readonly eEditorRightToLeft: 2048;
+ readonly eEditorLeftToRight: 4096;
+ readonly eEditorSkipSpellCheck: 8192;
+ readonly eNewlinesPasteIntact: 0;
+ readonly eNewlinesPasteToFirst: 1;
+ readonly eNewlinesReplaceWithSpaces: 2;
+ readonly eNewlinesStrip: 3;
+ readonly eNewlinesReplaceWithCommas: 4;
+ readonly eNewlinesStripSurroundingWhitespace: 5;
+
+ readonly selection: Selection;
+ setAttributeOrEquivalent(element: Element, sourceAttrName: string, sourceAttrValue: string, aSuppressTransaction: boolean): void;
+ removeAttributeOrEquivalent(element: Element, sourceAttrName: string, aSuppressTransaction: boolean): void;
+ flags: u32;
+ contentsMIMEType: string;
+ readonly isDocumentEditable: boolean;
+ readonly isSelectionEditable: boolean;
+ readonly document: Document;
+ readonly rootElement: Element;
+ readonly selectionController: nsISelectionController;
+ deleteSelection(action: i16, stripWrappers: i16): void;
+ readonly documentIsEmpty: boolean;
+ readonly documentModified: boolean;
+ documentCharacterSet: string;
+ resetModificationCount(): void;
+ getModificationCount(): i32;
+ incrementModificationCount(aModCount: i32): void;
+ enableUndo(enable: boolean): void;
+ readonly undoRedoEnabled: boolean;
+ readonly canUndo: boolean;
+ readonly canRedo: boolean;
+ clearUndoRedo(): void;
+ undo(): void;
+ undoAll(): void;
+ redo(): void;
+ beginTransaction(): void;
+ endTransaction(): void;
+ getInlineSpellChecker(autoCreate: boolean): nsIInlineSpellChecker;
+ setSpellcheckUserOverride(enable: boolean): void;
+ cut(): void;
+ canCut(): boolean;
+ copy(): void;
+ canCopy(): boolean;
+ paste(aClipboardType: i32): void;
+ pasteTransferable(aTransferable: nsITransferable): void;
+ canPaste(aClipboardType: i32): boolean;
+ selectAll(): void;
+ beginningOfDocument(): void;
+ endOfDocument(): void;
+ setAttribute(aElement: Element, attributestr: string, attvalue: string): void;
+ removeAttribute(aElement: Element, aAttribute: string): void;
+ cloneAttributes(aDestElement: Element, aSourceElement: Element): void;
+ insertNode(node: Node, parent: Node, aPosition: u32, aPreserveSelection?: boolean): void;
+ deleteNode(child: Node, aPreserveSelection?: boolean): void;
+ outputToString(formatType: string, flags: u32): string;
+ addEditActionListener(listener: nsIEditActionListener): void;
+ removeEditActionListener(listener: nsIEditActionListener): void;
+ addDocumentStateListener(listener: nsIDocumentStateListener): void;
+ removeDocumentStateListener(listener: nsIDocumentStateListener): void;
+ forceCompositionEnd(): void;
+ readonly composing: boolean;
+ unmask(aStart?: u32, aEnd?: i64, aTimeout?: u32): void;
+ mask(): void;
+ readonly unmaskedStart: u32;
+ readonly unmaskedEnd: u32;
+ readonly autoMaskingEnabled: boolean;
+ readonly passwordMask: string;
+ readonly textLength: u32;
+ newlineHandling: i32;
+ insertText(aStringToInsert: string): void;
+ insertLineBreak(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/editor/nsIEditorMailSupport.idl
+
+interface nsIEditorMailSupport extends nsISupports {
+ insertAsCitedQuotation(aQuotedText: string, aCitation: string, aInsertHTML: boolean): Node;
+ rewrap(aRespectNewlines: boolean): void;
+ insertTextWithQuotations(aStringToInsert: string): void;
+ wrapWidth: i32;
+}
+
+// https://searchfox.org/mozilla-central/source/editor/nsIEditorSpellCheck.idl
+
+interface nsIEditorSpellCheck extends nsISupports {
+ readonly FILTERTYPE_NORMAL: 1;
+ readonly FILTERTYPE_MAIL: 2;
+
+ canSpellCheck(): boolean;
+ InitSpellChecker(editor: nsIEditor, enableSelectionChecking: boolean, callback?: nsIEditorSpellCheckCallback): void;
+ GetNextMisspelledWord(): string;
+ GetSuggestedWord(): string;
+ CheckCurrentWord(suggestedWord: string): boolean;
+ suggest(aCheckingWorkd: string, aMaxCount: u32): Promise<any>;
+ ReplaceWord(misspelledWord: string, replaceWord: string, allOccurrences: boolean): void;
+ IgnoreWordAllOccurrences(word: string): void;
+ GetPersonalDictionary(): void;
+ GetPersonalDictionaryWord(): string;
+ AddWordToDictionary(word: string): void;
+ RemoveWordFromDictionary(word: string): void;
+ GetDictionaryList(): string[];
+ getCurrentDictionaries(): string[];
+ setCurrentDictionaries(dictionaries: string[]): Promise<any>;
+ UninitSpellChecker(): void;
+ setFilterType(filterType: u32): void;
+ UpdateCurrentDictionary(callback?: nsIEditorSpellCheckCallback): void;
+}
+
+type nsIEditorSpellCheckCallback = Callable<{
+ editorSpellCheckDone(): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/editor/nsIHTMLAbsPosEditor.idl
+
+interface nsIHTMLAbsPosEditor extends nsISupports {
+ absolutePositioningEnabled: boolean;
+ snapToGridEnabled: boolean;
+ gridSize: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/editor/nsIHTMLEditor.idl
+
+interface nsIHTMLEditor extends nsISupports {
+ readonly eLeft: 0;
+ readonly eCenter: 1;
+ readonly eRight: 2;
+ readonly eJustify: 3;
+
+ setInlineProperty(aProperty: string, aAttribute: string, aValue: string): void;
+ getInlinePropertyWithAttrValue(aProperty: string, aAttribute: string, aValue: string, aFirst: OutParam<boolean>, aAny: OutParam<boolean>, aAll: OutParam<boolean>): string;
+ removeInlineProperty(aProperty: string, aAttribute: string): void;
+ nodeIsBlock(aNode: Node): boolean;
+ insertHTML(aInputString: string): void;
+ rebuildDocumentFromSource(aSourceString: string): void;
+ insertElementAtSelection(aElement: Element, aDeleteSelection: boolean): void;
+ updateBaseURL(): void;
+ selectElement(aElement: Element): void;
+ getParagraphState(aMixed: OutParam<boolean>): string;
+ getFontFaceState(aMixed: OutParam<boolean>): string;
+ getHighlightColorState(aMixed: OutParam<boolean>): string;
+ getListState(aMixed: OutParam<boolean>, aOL: OutParam<boolean>, aUL: OutParam<boolean>, aDL: OutParam<boolean>): void;
+ getListItemState(aMixed: OutParam<boolean>, aLI: OutParam<boolean>, aDT: OutParam<boolean>, aDD: OutParam<boolean>): void;
+ getAlignment(aMixed: OutParam<boolean>, aAlign: OutParam<i16>): void;
+ makeOrChangeList(aListType: string, entireList: boolean, aBulletType: string): void;
+ removeList(aListType: string): void;
+ getElementOrParentByTagName(aTagName: string, aNode: Node): Element;
+ getSelectedElement(aTagName: string): nsISupports;
+ createElementWithDefaults(aTagName: string): Element;
+ insertLinkAroundSelection(aAnchorElement: Element): void;
+ setBackgroundColor(aColor: string): void;
+ isCSSEnabled: boolean;
+ checkSelectionStateForAnonymousButtons(): void;
+ isAnonymousElement(aElement: Element): boolean;
+ returnInParagraphCreatesNewParagraph: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/editor/nsIHTMLInlineTableEditor.idl
+
+interface nsIHTMLInlineTableEditor extends nsISupports {
+ inlineTableEditingEnabled: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/editor/nsIHTMLObjectResizer.idl
+
+interface nsIHTMLObjectResizer extends nsISupports {
+ readonly eTopLeft: 0;
+ readonly eTop: 1;
+ readonly eTopRight: 2;
+ readonly eLeft: 3;
+ readonly eRight: 4;
+ readonly eBottomLeft: 5;
+ readonly eBottom: 6;
+ readonly eBottomRight: 7;
+
+ objectResizingEnabled: boolean;
+ hideResizers(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/editor/nsITableEditor.idl
+
+interface nsITableEditor extends nsISupports {
+ readonly eNoSearch: 0;
+ readonly ePreviousColumn: 1;
+ readonly ePreviousRow: 2;
+
+ insertTableCell(aNumberOfColumnsToInsert: i32, aInsertAfterSelectedCell: boolean): void;
+ insertTableColumn(aNumberOfColumnsToInsert: i32, aInsertAfterSelectedCell: boolean): void;
+ insertTableRow(aNumberOfRowsToInsert: i32, aInsertAfterSelectedCell: boolean): void;
+ deleteTable(): void;
+ deleteTableCellContents(): void;
+ deleteTableCell(aNumberOfCellsToDelete: i32): void;
+ deleteTableColumn(aNumberOfColumnsToDelete: i32): void;
+ deleteTableRow(aNumberOfRowsToDelete: i32): void;
+ selectTableCell(): void;
+ selectTableRow(): void;
+ selectTableColumn(): void;
+ selectTable(): void;
+ selectAllTableCells(): void;
+ switchTableCellHeaderType(aSourceCell: Element): Element;
+ joinTableCells(aMergeNonContiguousContents: boolean): void;
+ splitTableCell(): void;
+ normalizeTable(aTable: Element): void;
+ getCellIndexes(aCellElement: Element, aRowIndex: OutParam<i32>, aColumnIndex: OutParam<i32>): void;
+ getTableSize(aTableOrElementInTable: Element, aRowCount: OutParam<i32>, aColCount: OutParam<i32>): void;
+ getCellAt(aTableElement: Element, aRowIndex: i32, aColumnIndex: i32): Element;
+ getCellDataAt(aTableElement: Element, aRowIndex: i32, aColumnIndex: i32, aCellElement: OutParam<Element>, aStartRowIndex: OutParam<i32>, aStartColumnIndex: OutParam<i32>, aRowSpan: OutParam<i32>, aColSpan: OutParam<i32>, aEffectiveRowSpan: OutParam<i32>, aEffectiveColSpan: OutParam<i32>, aIsSelected: OutParam<boolean>): void;
+ getFirstRow(aTableElement: Element): Element;
+ getSelectedOrParentTableElement(aTagName: OutParam<string>, aCount: OutParam<i32>): Element;
+ getSelectedCellsType(aElement: Element): u32;
+ getFirstSelectedCellInTable(aRowIndex: OutParam<i32>, aColIndex: OutParam<i32>): Element;
+ getSelectedCells(): Element[];
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/enterprisepolicies/nsIEnterprisePolicies.idl
+
+interface nsIEnterprisePolicies extends nsISupports {
+ readonly UNINITIALIZED: -1;
+ readonly INACTIVE: 0;
+ readonly ACTIVE: 1;
+ readonly FAILED: 2;
+
+ readonly status: i16;
+ isAllowed(feature: string): boolean;
+ getActivePolicies(): any;
+ getSupportMenu(): any;
+ getExtensionPolicy(extensionID: string): any;
+ getExtensionSettings(extensionID: string): any;
+ mayInstallAddon(addon: any): boolean;
+ allowedInstallSource(uri: nsIURI): boolean;
+ isExemptExecutableExtension(url: string, extension: string): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/mozapps/extensions/amIAddonManagerStartup.idl
+
+interface amIAddonManagerStartup extends nsISupports {
+ readStartupData(): any;
+ registerChrome(manifestURI: nsIURI, entries: any): nsIJSRAIIHelper;
+ encodeBlob(value: any): any;
+ decodeBlob(value: any): any;
+ enumerateJAR(uri: nsIURI, pattern: string): string[];
+ enumerateJARSubtree(uri: nsIURI): string[];
+ initializeURLPreloader(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/mozapps/extensions/amIWebInstallPrompt.idl
+
+interface amIWebInstallPrompt extends nsISupports {
+ confirm(aBrowser: Element, aUri: nsIURI, aInstalls: nsIVariant[]): void;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsCExternalHandlerService.idl
+
+// https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIContentDispatchChooser.idl
+
+interface nsIContentDispatchChooser extends nsISupports {
+ handleURI(aHandler: nsIHandlerInfo, aURI: nsIURI, aTriggeringPrincipal: nsIPrincipal, aBrowsingContext: BrowsingContext, aWasTriggeredExternally?: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIExternalHelperAppService.idl
+
+interface nsIExternalHelperAppService extends nsISupports {
+ doContent(aMimeContentType: string, aChannel: nsIChannel, aContentContext: nsIInterfaceRequestor, aForceSave: boolean, aWindowContext?: nsIInterfaceRequestor): nsIStreamListener;
+ createListener(aMimeContentType: string, aChannel: nsIChannel, aContentContext: BrowsingContext, aForceSave: boolean, aWindowContext?: nsIInterfaceRequestor): nsIStreamListener;
+ applyDecodingForExtension(aExtension: string, aEncodingType: string): boolean;
+}
+
+interface nsPIExternalAppLauncher extends nsISupports {
+ deleteTemporaryFileOnExit(aTemporaryFile: nsIFile): void;
+ deleteTemporaryPrivateFileWhenPossible(aTemporaryFile: nsIFile): void;
+}
+
+interface nsIHelperAppLauncher extends nsICancelable {
+ readonly MIMEInfo: nsIMIMEInfo;
+ readonly source: nsIURI;
+ readonly suggestedFileName: string;
+ promptForSaveDestination(): void;
+ setDownloadToLaunch(aHandleInternally: boolean, aFile: nsIFile): void;
+ launchLocalFile(): void;
+ saveDestinationAvailable(aFile: nsIFile, aDialogWasShown?: boolean): void;
+ setWebProgressListener(aWebProgressListener: nsIWebProgressListener2): void;
+ readonly targetFile: nsIFile;
+ readonly targetFileIsExecutable: boolean;
+ readonly timeDownloadStarted: PRTime;
+ readonly contentLength: i64;
+ readonly browsingContextId: u64;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIExternalProtocolService.idl
+
+interface nsIExternalProtocolService extends nsISupports {
+ externalProtocolHandlerExists(aProtocolScheme: string): boolean;
+ isExposedProtocol(aProtocolScheme: string): boolean;
+ getProtocolHandlerInfo(aProtocolScheme: string): nsIHandlerInfo;
+ getProtocolHandlerInfoFromOS(aProtocolScheme: string, aFound: OutParam<boolean>): nsIHandlerInfo;
+ setProtocolHandlerDefaults(aHandlerInfo: nsIHandlerInfo, aOSHandlerExists: boolean): void;
+ loadURI(aURI: nsIURI, aTriggeringPrincipal?: nsIPrincipal, aRedirectPrincipal?: nsIPrincipal, aBrowsingContext?: BrowsingContext, aWasTriggeredExternally?: boolean, aHasValidUserGestureActivation?: boolean): void;
+ getApplicationDescription(aScheme: string): string;
+ isCurrentAppOSDefaultForProtocol(aScheme: string): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIHandlerService.idl
+
+interface nsIHandlerService extends nsISupports {
+ asyncInit(): void;
+ enumerate(): nsISimpleEnumerator;
+ fillHandlerInfo(aHandlerInfo: nsIHandlerInfo, aOverrideType: string): void;
+ store(aHandlerInfo: nsIHandlerInfo): void;
+ exists(aHandlerInfo: nsIHandlerInfo): boolean;
+ remove(aHandlerInfo: nsIHandlerInfo): void;
+ getTypeFromExtension(aFileExtension: string): string;
+ existsForProtocolOS(aProtocolScheme: string): boolean;
+ existsForProtocol(aProtocolScheme: string): boolean;
+ getApplicationDescription(aProtocolScheme: string): string;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIHelperAppLauncherDialog.idl
+
+interface nsIHelperAppLauncherDialog extends nsISupports {
+ readonly REASON_CANTHANDLE: 0;
+ readonly REASON_SERVERREQUEST: 1;
+ readonly REASON_TYPESNIFFED: 2;
+
+ show(aLauncher: nsIHelperAppLauncher, aWindowContext: nsIInterfaceRequestor, aReason: u32): void;
+ promptForSaveToFileAsync(aLauncher: nsIHelperAppLauncher, aWindowContext: nsIInterfaceRequestor, aDefaultFileName: string, aSuggestedFileExtension: string, aForcePrompt: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsISharingHandlerApp.idl
+
+interface nsISharingHandlerApp extends nsIHandlerApp {
+ share(data: string, title?: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/typeaheadfind/nsITypeAheadFind.idl
+
+interface nsITypeAheadFind extends nsISupports {
+ readonly FIND_INITIAL: 0;
+ readonly FIND_NEXT: 1;
+ readonly FIND_PREVIOUS: 2;
+ readonly FIND_FIRST: 3;
+ readonly FIND_LAST: 4;
+ readonly FIND_FOUND: 0;
+ readonly FIND_NOTFOUND: 1;
+ readonly FIND_WRAPPED: 2;
+ readonly FIND_PENDING: 3;
+
+ init(aDocShell: nsIDocShell): void;
+ find(aSearchString: string, aLinksOnly: boolean, aMode: u32, aDontIterateFrames: boolean): u16;
+ getFoundRange(): Range;
+ setDocShell(aDocShell: nsIDocShell): void;
+ setSelectionModeAndRepaint(toggle: i16): void;
+ collapseSelection(): void;
+ isRangeVisible(aRange: Range, aMustBeInViewPort: boolean): boolean;
+ isRangeRendered(aRange: Range): boolean;
+ readonly searchString: string;
+ caseSensitive: boolean;
+ matchDiacritics: boolean;
+ entireWord: boolean;
+ readonly foundLink: Element;
+ readonly foundEditable: Element;
+ readonly currentWindow: mozIDOMWindow;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/glean/xpcom/nsIFOG.idl
+
+interface nsIFOG extends nsISupports {
+ initializeFOG(aDataPathOverride?: string, aAppIdOverride?: string): void;
+ registerCustomPings(): void;
+ setLogPings(aEnableLogPings: boolean): void;
+ setTagPings(aDebugTag: string): void;
+ sendPing(aPingName: string): void;
+ setExperimentActive(aExperimentId: string, aBranch: string, aExtra?: any): void;
+ setExperimentInactive(aExperimentId: string): void;
+ testGetExperimentData(aExperimentId: string): any;
+ setMetricsFeatureConfig(aJsonConfig: string): void;
+ testFlushAllChildren(): Promise<any>;
+ testResetFOG(aDataPathOverride?: string, aAppIdOverride?: string): void;
+ testTriggerMetrics(aProcessType: u32): Promise<any>;
+ testRegisterRuntimeMetric(aType: string, aCategory: string, aName: string, aPings: string[], aLifetime: string, aDisabled: boolean, aExtraArgs?: string): u32;
+ testRegisterRuntimePing(aName: string, aIncludeClientId: boolean, aSendIfEmpty: boolean, aPreciseTimestamps: boolean, aIncludeInfoSections: boolean, aReasonCodes: string[]): u32;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/glean/xpcom/nsIGleanPing.idl
+
+type nsIGleanPingTestCallback = Callable<{
+ call(aReason: string): void;
+}>
+
+interface nsIGleanPing extends nsISupports {
+ submit(aReason?: string): void;
+ testBeforeNextSubmit(aCallback: nsIGleanPingTestCallback): void;
+}
+
+// https://searchfox.org/mozilla-central/source/gfx/src/nsIFontEnumerator.idl
+
+interface nsIFontEnumerator extends nsISupports {
+ EnumerateAllFonts(): string[];
+ EnumerateFonts(aLangGroup: string, aGeneric: string): string[];
+ EnumerateAllFontsAsync(): any;
+ EnumerateFontsAsync(aLangGroup: string, aGeneric: string): any;
+ HaveFontFor(aLangGroup: string): OutParam<boolean>;
+ getDefaultFont(aLangGroup: string, aGeneric: string): string;
+ getStandardFamilyName(aName: string): string;
+}
+
+// https://searchfox.org/mozilla-central/source/gfx/thebes/nsIFontLoadCompleteCallback.idl
+
+// https://searchfox.org/mozilla-central/source/parser/html/nsIParserUtils.idl
+
+interface nsIParserUtils extends nsISupports {
+ readonly SanitizerAllowComments: 1;
+ readonly SanitizerAllowStyle: 2;
+ readonly SanitizerCidEmbedsOnly: 4;
+ readonly SanitizerDropNonCSSPresentation: 8;
+ readonly SanitizerDropForms: 16;
+ readonly SanitizerDropMedia: 32;
+ readonly SanitizerLogRemovals: 64;
+
+ sanitize(src: string, flags: u32): string;
+ removeConditionalCSS(src: string): string;
+ convertToPlainText(src: string, flags: u32, wrapCol: u32): string;
+ parseFragment(fragment: string, flags: u32, isXML: boolean, baseURI: nsIURI, element: Element): DocumentFragment;
+}
+
+// https://searchfox.org/mozilla-central/source/parser/htmlparser/nsIExpatSink.idl
+
+interface nsIExpatSink extends nsISupports {
+ HandleStartElement(aName: string, aAtts: string[], aAttsCount: u32, aLineNumber: u32, aColumnNumber: u32): void;
+ HandleEndElement(aName: string): void;
+ HandleComment(aCommentText: string): void;
+ HandleCDataSection(aData: string, aLength: u32): void;
+ HandleDoctypeDecl(aSubset: string, aName: string, aSystemId: string, aPublicId: string, aCatalogData: nsISupports): void;
+ HandleCharacterData(aData: string, aLength: u32): void;
+ HandleProcessingInstruction(aTarget: string, aData: string): void;
+ HandleXMLDeclaration(aVersion: string, aEncoding: string, aStandalone: i32): void;
+ ReportError(aErrorText: string, aSourceText: string, aError: nsIScriptError): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/http-sfv/nsIStructuredFieldValues.idl
+
+interface nsISFVBareItem extends nsISupports {
+ readonly BOOL: 1;
+ readonly STRING: 2;
+ readonly DECIMAL: 3;
+ readonly INTEGER: 4;
+ readonly TOKEN: 5;
+ readonly BYTE_SEQUENCE: 6;
+
+ readonly type: i32;
+}
+
+interface nsISFVInteger extends nsISFVBareItem {
+ value: i64;
+}
+
+interface nsISFVString extends nsISFVBareItem {
+ value: string;
+}
+
+interface nsISFVBool extends nsISFVBareItem {
+ value: boolean;
+}
+
+interface nsISFVDecimal extends nsISFVBareItem {
+ value: double;
+}
+
+interface nsISFVToken extends nsISFVBareItem {
+ value: string;
+}
+
+interface nsISFVByteSeq extends nsISFVBareItem {
+ value: string;
+}
+
+interface nsISFVParams extends nsISupports {
+ get(key: string): nsISFVBareItem;
+ set(key: string, item: nsISFVBareItem): void;
+ delete(key: string): void;
+ keys(): string[];
+}
+
+interface nsISFVParametrizable extends nsISupports {
+ readonly params: nsISFVParams;
+}
+
+interface nsISFVItemOrInnerList extends nsISFVParametrizable {
+}
+
+interface nsISFVSerialize extends nsISupports {
+ serialize(): string;
+}
+
+interface nsISFVItem extends nsISFVItemOrInnerList {
+ readonly value: nsISFVBareItem;
+ serialize(): string;
+}
+
+interface nsISFVInnerList extends nsISFVItemOrInnerList {
+ items: nsISFVItem[];
+}
+
+interface nsISFVList extends nsISFVSerialize {
+ members: nsISFVItemOrInnerList[];
+ parseMore(header: string): void;
+}
+
+interface nsISFVDictionary extends nsISFVSerialize {
+ get(key: string): nsISFVItemOrInnerList;
+ set(key: string, member_value: nsISFVItemOrInnerList): void;
+ delete(key: string): void;
+ keys(): string[];
+ parseMore(header: string): void;
+}
+
+interface nsISFVService extends nsISupports {
+ parseDictionary(header: string): nsISFVDictionary;
+ parseList(header: string): nsISFVList;
+ parseItem(header: string): nsISFVItem;
+ newInteger(value: i64): nsISFVInteger;
+ newBool(value: boolean): nsISFVBool;
+ newDecimal(value: double): nsISFVDecimal;
+ newString(value: string): nsISFVString;
+ newByteSequence(value: string): nsISFVByteSeq;
+ newToken(value: string): nsISFVToken;
+ newParameters(): nsISFVParams;
+ newInnerList(items: nsISFVItem[], params: nsISFVParams): nsISFVInnerList;
+ newItem(value: nsISFVBareItem, params: nsISFVParams): nsISFVItem;
+ newList(members: nsISFVItemOrInnerList[]): nsISFVList;
+ newDictionary(): nsISFVDictionary;
+}
+
+// https://searchfox.org/mozilla-central/source/image/imgICache.idl
+
+interface imgICache extends nsISupports {
+ clearCache(chrome: boolean): void;
+ removeEntriesFromPrincipalInAllProcesses(aPrincipal: nsIPrincipal): void;
+ removeEntriesFromBaseDomainInAllProcesses(aBaseDomain: string): void;
+ findEntryProperties(uri: nsIURI, doc?: Document): nsIProperties;
+ respectPrivacyNotifications(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/image/imgIContainer.idl
+
+} // global
+
+declare namespace imgIContainer {
+
+enum DecodeResult {
+ DECODE_SURFACE_AVAILABLE = 0,
+ DECODE_REQUESTED = 1,
+ DECODE_REQUEST_FAILED = 2,
+}
+
+}
+
+declare global {
+
+interface imgIContainer extends nsISupports, Enums<typeof imgIContainer.DecodeResult> {
+ readonly TYPE_RASTER: 0;
+ readonly TYPE_VECTOR: 1;
+ readonly TYPE_REQUEST: 2;
+ readonly FLAG_NONE: 0;
+ readonly FLAG_SYNC_DECODE: 1;
+ readonly FLAG_SYNC_DECODE_IF_FAST: 2;
+ readonly FLAG_ASYNC_NOTIFY: 4;
+ readonly FLAG_DECODE_NO_PREMULTIPLY_ALPHA: 8;
+ readonly FLAG_DECODE_NO_COLORSPACE_CONVERSION: 16;
+ readonly FLAG_CLAMP: 32;
+ readonly FLAG_HIGH_QUALITY_SCALING: 64;
+ readonly FLAG_BYPASS_SURFACE_CACHE: 128;
+ readonly FLAG_FORCE_PRESERVEASPECTRATIO_NONE: 256;
+ readonly FLAG_FORCE_UNIFORM_SCALING: 512;
+ readonly FLAG_AVOID_REDECODE_FOR_SIZE: 1024;
+ readonly FLAG_DECODE_TO_SRGB_COLORSPACE: 2048;
+ readonly FLAG_RECORD_BLOB: 4096;
+ readonly DECODE_FLAGS_DEFAULT: 0;
+ readonly DECODE_FLAGS_FOR_REENCODE: 2056;
+ readonly FRAME_FIRST: 0;
+ readonly FRAME_CURRENT: 1;
+ readonly FRAME_MAX_VALUE: 1;
+ readonly kNormalAnimMode: 0;
+ readonly kDontAnimMode: 1;
+ readonly kLoopOnceAnimMode: 2;
+
+ readonly width: i32;
+ readonly height: i32;
+ readonly hotspotX: i32;
+ readonly hotspotY: i32;
+ readonly type: u16;
+ readonly animated: boolean;
+ readonly providerId: u32;
+ lockImage(): void;
+ unlockImage(): void;
+ requestDiscard(): void;
+ animationMode: u16;
+ resetAnimation(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/image/imgIContainerDebug.idl
+
+interface imgIContainerDebug extends nsISupports {
+ readonly framesNotified: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/image/imgIEncoder.idl
+
+interface imgIEncoder extends nsIAsyncInputStream {
+ readonly INPUT_FORMAT_RGB: 0;
+ readonly INPUT_FORMAT_RGBA: 1;
+ readonly INPUT_FORMAT_HOSTARGB: 2;
+
+ initFromData(data: u8[], length: u32, width: u32, height: u32, stride: u32, inputFormat: u32, outputOptions: string): void;
+ startImageEncode(width: u32, height: u32, inputFormat: u32, outputOptions: string): void;
+ addImageFrame(data: u8[], length: u32, width: u32, height: u32, stride: u32, frameFormat: u32, frameOptions: string): void;
+ endImageEncode(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/image/imgILoader.idl
+
+interface imgILoader extends nsISupports {
+ readonly LOAD_CORS_ANONYMOUS: 65536;
+ readonly LOAD_CORS_USE_CREDENTIALS: 131072;
+
+ loadImageXPCOM(aURI: nsIURI, aInitialDocumentURL: nsIURI, aReferrerInfo: nsIReferrerInfo, aLoadingPrincipal: nsIPrincipal, aLoadGroup: nsILoadGroup, aObserver: imgINotificationObserver, aLoadingDocument: Document, aLoadFlags: nsLoadFlags, cacheKey: nsISupports, aContentPolicyType?: nsContentPolicyType): imgIRequest;
+ loadImageWithChannelXPCOM(aChannel: nsIChannel, aObserver: imgINotificationObserver, aLoadingDocument: Document, aListener: OutParam<nsIStreamListener>): imgIRequest;
+}
+
+// https://searchfox.org/mozilla-central/source/image/imgINotificationObserver.idl
+
+interface imgINotificationObserver extends nsISupports {
+ readonly SIZE_AVAILABLE: 1;
+ readonly FRAME_UPDATE: 2;
+ readonly FRAME_COMPLETE: 3;
+ readonly LOAD_COMPLETE: 4;
+ readonly DECODE_COMPLETE: 5;
+ readonly DISCARD: 6;
+ readonly UNLOCKED_DRAW: 7;
+ readonly IS_ANIMATED: 8;
+ readonly HAS_TRANSPARENCY: 9;
+}
+
+// https://searchfox.org/mozilla-central/source/image/imgIRequest.idl
+
+interface imgIRequest extends nsIRequest {
+ readonly STATUS_NONE: 0;
+ readonly STATUS_SIZE_AVAILABLE: 1;
+ readonly STATUS_LOAD_COMPLETE: 2;
+ readonly STATUS_ERROR: 4;
+ readonly STATUS_FRAME_COMPLETE: 8;
+ readonly STATUS_DECODE_COMPLETE: 16;
+ readonly STATUS_IS_ANIMATED: 32;
+ readonly STATUS_HAS_TRANSPARENCY: 64;
+ readonly CATEGORY_FRAME_INIT: 1;
+ readonly CATEGORY_FRAME_STYLE: 2;
+ readonly CATEGORY_SIZE_QUERY: 4;
+ readonly CATEGORY_DISPLAY: 8;
+
+ readonly image: imgIContainer;
+ readonly providerId: u32;
+ readonly triggeringPrincipal: nsIPrincipal;
+ readonly imageStatus: u32;
+ readonly URI: nsIURI;
+ readonly finalURI: nsIURI;
+ readonly notificationObserver: imgINotificationObserver;
+ readonly mimeType: string;
+ readonly fileName: string;
+ clone(aObserver: imgINotificationObserver): imgIRequest;
+ readonly imagePrincipal: nsIPrincipal;
+ readonly hadCrossOriginRedirects: boolean;
+ readonly multipart: boolean;
+ readonly CORSMode: i32;
+ readonly referrerInfo: nsIReferrerInfo;
+ cancelAndForgetObserver(aStatus: nsresult): void;
+ startDecoding(aFlags: u32): void;
+ lockImage(): void;
+ unlockImage(): void;
+ requestDiscard(): void;
+ getStaticRequest(): imgIRequest;
+ incrementAnimationConsumers(): void;
+ decrementAnimationConsumers(): void;
+ boostPriority(aCategory: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/image/imgIScriptedNotificationObserver.idl
+
+interface imgIScriptedNotificationObserver extends nsISupports {
+ sizeAvailable(aRequest: imgIRequest): void;
+ frameUpdate(aRequest: imgIRequest): void;
+ frameComplete(aRequest: imgIRequest): void;
+ loadComplete(aRequest: imgIRequest): void;
+ decodeComplete(aRequest: imgIRequest): void;
+ discard(aRequest: imgIRequest): void;
+ isAnimated(aRequest: imgIRequest): void;
+ hasTransparency(aRequest: imgIRequest): void;
+}
+
+// https://searchfox.org/mozilla-central/source/image/imgITools.idl
+
+interface imgITools extends nsISupports {
+ decodeImageFromBuffer(aBuffer: string, aSize: u32, aMimeType: string): imgIContainer;
+ decodeImageFromArrayBuffer(aArrayBuffer: any, aMimeType: string): imgIContainer;
+ decodeImageFromChannelAsync(aURI: nsIURI, aChannel: nsIChannel, aCallback: imgIContainerCallback, aObserver: imgINotificationObserver): void;
+ decodeImageAsync(aStream: nsIInputStream, aMimeType: string, aCallback: imgIContainerCallback, aEventTarget: nsIEventTarget): void;
+ encodeImage(aContainer: imgIContainer, aMimeType: string, outputOptions?: string): nsIInputStream;
+ encodeScaledImage(aContainer: imgIContainer, aMimeType: string, aWidth: i32, aHeight: i32, outputOptions?: string): nsIInputStream;
+ getImgLoaderForDocument(doc: Document): imgILoader;
+ getImgCacheForDocument(doc: Document): imgICache;
+ encodeCroppedImage(aContainer: imgIContainer, aMimeType: string, aOffsetX: i32, aOffsetY: i32, aWidth: i32, aHeight: i32, outputOptions?: string): nsIInputStream;
+ createScriptedObserver(aObserver: imgIScriptedNotificationObserver): imgINotificationObserver;
+}
+
+type imgIContainerCallback = Callable<{
+ onImageReady(aImage: imgIContainer, aStatus: nsresult): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/image/nsIIconURI.idl
+
+interface nsIMozIconURI extends nsIURI {
+ readonly iconURL: nsIURL;
+ readonly imageSize: u32;
+ readonly stockIcon: string;
+ readonly iconSize: string;
+ readonly iconState: string;
+ readonly contentType: string;
+ readonly fileExtension: string;
+}
+
+// https://searchfox.org/mozilla-central/source/layout/inspector/inIDeepTreeWalker.idl
+
+interface inIDeepTreeWalker extends nsISupports {
+ showAnonymousContent: boolean;
+ showSubDocuments: boolean;
+ showDocumentsAsNodes: boolean;
+ init(aRoot: Node): void;
+ readonly root: Node;
+ currentNode: Node;
+ parentNode(): Node;
+ firstChild(): Node;
+ lastChild(): Node;
+ previousSibling(): Node;
+ nextSibling(): Node;
+ previousNode(): Node;
+ nextNode(): Node;
+}
+
+// https://searchfox.org/mozilla-central/source/intl/strres/nsIStringBundle.idl
+
+interface nsIStringBundle extends nsISupports {
+ GetStringFromID(aID: i32): string;
+ GetStringFromName(aName: string): string;
+ formatStringFromID(aID: i32, params: string[]): string;
+ formatStringFromName(aName: string, params: string[]): string;
+ getSimpleEnumeration(): nsISimpleEnumerator;
+ asyncPreload(): void;
+}
+
+interface nsIStringBundleService extends nsISupports {
+ createBundle(aURLSpec: string): nsIStringBundle;
+ formatStatusMessage(aStatus: nsresult, aStatusArg: string): string;
+ flushBundles(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/modules/libjar/nsIJARChannel.idl
+
+interface nsIJARChannel extends nsIChannel {
+ jarFile: nsIFile;
+ readonly zipEntry: nsIZipEntry;
+ ensureCached(): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/modules/libjar/nsIJARURI.idl
+
+interface nsIJARURI extends nsIURL {
+ readonly JARFile: nsIURI;
+ readonly JAREntry: string;
+}
+
+// https://searchfox.org/mozilla-central/source/modules/libjar/nsIZipReader.idl
+
+interface nsIZipEntry extends nsISupports {
+ readonly compression: u16;
+ readonly size: u32;
+ readonly realSize: u32;
+ readonly CRC32: u32;
+ readonly isDirectory: boolean;
+ readonly lastModifiedTime: PRTime;
+ readonly isSynthetic: boolean;
+ readonly permissions: u32;
+}
+
+interface nsIZipReader extends nsISupports {
+ open(zipFile: nsIFile): void;
+ openInner(zipReader: nsIZipReader, zipEntry: string): void;
+ readonly file: nsIFile;
+ close(): void;
+ test(aEntryName: string): void;
+ extract(zipEntry: string, outFile: nsIFile): void;
+ getEntry(zipEntry: string): nsIZipEntry;
+ hasEntry(zipEntry: string): boolean;
+ findEntries(aPattern: string): nsIUTF8StringEnumerator;
+ getInputStream(zipEntry: string): nsIInputStream;
+}
+
+interface nsIZipReaderCache extends nsISupports {
+ init(cacheSize: u32): void;
+ getZip(zipFile: nsIFile): nsIZipReader;
+ getZipIfCached(zipFile: nsIFile): nsIZipReader;
+ isCached(zipFile: nsIFile): boolean;
+ getInnerZip(zipFile: nsIFile, zipEntry: string): nsIZipReader;
+}
+
+// https://searchfox.org/mozilla-central/source/devtools/platform/IJSDebugger.idl
+
+interface IJSDebugger extends nsISupports {
+ addClass(global: any): void;
+}
+
+// https://searchfox.org/mozilla-central/source/devtools/platform/nsIJSInspector.idl
+
+interface nsIJSInspector extends nsISupports {
+ enterNestedEventLoop(requestor: any): u32;
+ exitNestedEventLoop(): u32;
+ readonly eventLoopNestLevel: u32;
+ readonly lastNestRequestor: any;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/kvstore/nsIKeyValue.idl
+
+} // global
+
+declare namespace nsIKeyValueService {
+
+enum RecoveryStrategy {
+ ERROR = 0,
+ DISCARD = 1,
+ RENAME = 2,
+}
+
+}
+
+declare global {
+
+interface nsIKeyValueService extends nsISupports, Enums<typeof nsIKeyValueService.RecoveryStrategy> {
+ getOrCreate(callback: nsIKeyValueDatabaseCallback, path: string, name: string): void;
+ getOrCreateWithOptions(callback: nsIKeyValueDatabaseCallback, path: string, name: string, recoveryStrategy?: nsIKeyValueService.RecoveryStrategy): void;
+}
+
+interface nsIKeyValueDatabase extends nsISupports {
+ put(callback: nsIKeyValueVoidCallback, key: string, value: nsIVariant): void;
+ writeMany(callback: nsIKeyValueVoidCallback, pairs: nsIKeyValuePair[]): void;
+ get(callback: nsIKeyValueVariantCallback, key: string, defaultValue?: nsIVariant): void;
+ has(callback: nsIKeyValueVariantCallback, key: string): void;
+ delete(callback: nsIKeyValueVoidCallback, key: string): void;
+ clear(callback: nsIKeyValueVoidCallback): void;
+ enumerate(callback: nsIKeyValueEnumeratorCallback, fromKey?: string, toKey?: string): void;
+}
+
+interface nsIKeyValuePair extends nsISupports {
+ readonly key: string;
+ readonly value: nsIVariant;
+}
+
+interface nsIKeyValueEnumerator extends nsISupports {
+ hasMoreElements(): boolean;
+ getNext(): nsIKeyValuePair;
+}
+
+interface nsIKeyValueDatabaseCallback extends nsISupports {
+ resolve(database: nsIKeyValueDatabase): void;
+ reject(message: string): void;
+}
+
+interface nsIKeyValueEnumeratorCallback extends nsISupports {
+ resolve(enumerator: nsIKeyValueEnumerator): void;
+ reject(message: string): void;
+}
+
+interface nsIKeyValuePairCallback extends nsISupports {
+ resolve(pair: nsIKeyValuePair): void;
+ reject(message: string): void;
+}
+
+interface nsIKeyValueVariantCallback extends nsISupports {
+ resolve(result: nsIVariant): void;
+ reject(message: string): void;
+}
+
+interface nsIKeyValueVoidCallback extends nsISupports {
+ resolve(): void;
+ reject(message: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/layout/base/nsILayoutHistoryState.idl
+
+interface nsILayoutHistoryState extends nsISupports {
+ readonly hasStates: boolean;
+ getKeys(): string[];
+ getPresState(aKey: string, aScrollX: OutParam<float>, aScrollY: OutParam<float>, aAllowScrollOriginDowngrade: OutParam<boolean>, aRes: OutParam<float>): void;
+ addNewPresState(aKey: string, aScrollX: float, aScrollY: float, aAllowScrollOriginDowngrade: boolean, aRes: float): void;
+}
+
+// https://searchfox.org/mozilla-central/source/layout/base/nsIPreloadedStyleSheet.idl
+
+interface nsIPreloadedStyleSheet extends nsISupports {
+}
+
+// https://searchfox.org/mozilla-central/source/layout/base/nsIStyleSheetService.idl
+
+interface nsIStyleSheetService extends nsISupports {
+ readonly AGENT_SHEET: 0;
+ readonly USER_SHEET: 1;
+ readonly AUTHOR_SHEET: 2;
+
+ loadAndRegisterSheet(sheetURI: nsIURI, type: u32): void;
+ sheetRegistered(sheetURI: nsIURI, type: u32): boolean;
+ preloadSheet(sheetURI: nsIURI, type: u32): nsIPreloadedStyleSheet;
+ preloadSheetAsync(sheetURI: nsIURI, type: u32): any;
+ unregisterSheet(sheetURI: nsIURI, type: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/layout/xul/tree/nsITreeSelection.idl
+
+interface nsITreeSelection extends nsISupports {
+ tree: XULTreeElement;
+ readonly single: boolean;
+ readonly count: i32;
+ isSelected(index: i32): boolean;
+ select(index: i32): void;
+ timedSelect(index: i32, delay: i32): void;
+ toggleSelect(index: i32): void;
+ rangedSelect(startIndex: i32, endIndex: i32, augment: boolean): void;
+ clearRange(startIndex: i32, endIndex: i32): void;
+ clearSelection(): void;
+ selectAll(): void;
+ getRangeCount(): i32;
+ getRangeAt(i: i32, min: OutParam<i32>, max: OutParam<i32>): void;
+ invalidateSelection(): void;
+ adjustSelection(index: i32, count: i32): void;
+ selectEventsSuppressed: boolean;
+ currentIndex: i32;
+ readonly shiftSelectPivot: i32;
+}
+
+// https://searchfox.org/mozilla-central/source/layout/xul/tree/nsITreeView.idl
+
+interface nsITreeView extends nsISupports {
+ readonly DROP_BEFORE: -1;
+ readonly DROP_ON: 0;
+ readonly DROP_AFTER: 1;
+
+ readonly rowCount: i32;
+ selection: nsITreeSelection;
+ getRowProperties(index: i32): string;
+ getCellProperties(row: i32, col: TreeColumn): string;
+ getColumnProperties(col: TreeColumn): string;
+ isContainer(index: i32): boolean;
+ isContainerOpen(index: i32): boolean;
+ isContainerEmpty(index: i32): boolean;
+ isSeparator(index: i32): boolean;
+ isSorted(): boolean;
+ canDrop(index: i32, orientation: i32, dataTransfer: DataTransfer): boolean;
+ drop(row: i32, orientation: i32, dataTransfer: DataTransfer): void;
+ getParentIndex(rowIndex: i32): i32;
+ hasNextSibling(rowIndex: i32, afterIndex: i32): boolean;
+ getLevel(index: i32): i32;
+ getImageSrc(row: i32, col: TreeColumn): string;
+ getCellValue(row: i32, col: TreeColumn): string;
+ getCellText(row: i32, col: TreeColumn): string;
+ setTree(tree: XULTreeElement): void;
+ toggleOpenState(index: i32): void;
+ cycleHeader(col: TreeColumn): void;
+ selectionChanged(): void;
+ cycleCell(row: i32, col: TreeColumn): void;
+ isEditable(row: i32, col: TreeColumn): boolean;
+ setCellValue(row: i32, col: TreeColumn, value: string): void;
+ setCellText(row: i32, col: TreeColumn, value: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/intl/locale/mozILocaleService.idl
+
+interface mozILocaleService extends nsISupports {
+ readonly langNegStrategyFiltering: 0;
+ readonly langNegStrategyMatching: 1;
+ readonly langNegStrategyLookup: 2;
+
+ readonly defaultLocale: string;
+ readonly lastFallbackLocale: string;
+ readonly appLocalesAsLangTags: string[];
+ readonly appLocalesAsBCP47: string[];
+ readonly regionalPrefsLocales: string[];
+ readonly webExposedLocales: string[];
+ negotiateLanguages(aRequested: string[], aAvailable: string[], aDefaultLocale?: string, langNegStrategy?: i32): string[];
+ readonly appLocaleAsLangTag: string;
+ readonly appLocaleAsBCP47: string;
+ requestedLocales: string[];
+ readonly requestedLocale: string;
+ availableLocales: string[];
+ readonly isAppLocaleRTL: boolean;
+ readonly packagedLocales: string[];
+}
+
+// https://searchfox.org/mozilla-central/source/intl/locale/mozIOSPreferences.idl
+
+interface mozIOSPreferences extends nsISupports {
+ readonly dateTimeFormatStyleNone: 0;
+ readonly dateTimeFormatStyleShort: 1;
+ readonly dateTimeFormatStyleMedium: 2;
+ readonly dateTimeFormatStyleLong: 3;
+ readonly dateTimeFormatStyleFull: 4;
+
+ readonly systemLocales: string[];
+ readonly regionalPrefsLocales: string[];
+ readonly systemLocale: string;
+ getDateTimePattern(timeFormatStyle: i32, dateFormatStyle: i32, locale?: string): string;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsILoginAutoCompleteSearch.idl
+
+interface nsILoginAutoCompleteSearch extends nsISupports {
+ startSearch(aSearchString: string, aPreviousResult: nsIAutoCompleteResult, aElement: HTMLInputElement, aListener: nsIFormAutoCompleteObserver): void;
+ stopSearch(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsILoginInfo.idl
+
+interface nsILoginInfo extends nsISupports {
+ readonly displayOrigin: string;
+ origin: string;
+ hostname: string;
+ formActionOrigin: string;
+ formSubmitURL: string;
+ httpRealm: string;
+ username: string;
+ usernameField: string;
+ password: string;
+ passwordField: string;
+ unknownFields: string;
+ everSynced: boolean;
+ syncCounter: i32;
+ init(aOrigin: string, aFormActionOrigin: string, aHttpRealm: string, aUsername: string, aPassword: string, aUsernameField?: string, aPasswordField?: string): void;
+ equals(aLoginInfo: nsILoginInfo): boolean;
+ matches(aLoginInfo: nsILoginInfo, ignorePassword: boolean): boolean;
+ clone(): nsILoginInfo;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsILoginManager.idl
+
+interface nsILoginSearchCallback extends nsISupports {
+ onSearchComplete(aLogins: nsILoginInfo[]): void;
+}
+
+interface nsILoginManager extends nsISupports {
+ readonly initializationPromise: Promise<any>;
+ addLogin(aLogin: nsILoginInfo): nsILoginInfo;
+ addLoginAsync(aLogin: nsILoginInfo): Promise<any>;
+ addLogins(aLogins: any): Promise<any>;
+ removeLogin(aLogin: nsILoginInfo): void;
+ modifyLogin(oldLogin: nsILoginInfo, newLoginData: nsISupports): void;
+ recordPasswordUse(aLogin: nsILoginInfo, aPrivateContextWithoutExplicitConsent: boolean, aLoginType: string, aFilled: boolean): void;
+ removeAllUserFacingLogins(): void;
+ removeAllLogins(): void;
+ getAllLogins(): Promise<any>;
+ getAllLoginsWithCallback(aCallback: nsILoginSearchCallback): void;
+ getAllDisabledHosts(): string[];
+ getLoginSavingEnabled(aHost: string): boolean;
+ setLoginSavingEnabled(aHost: string, isEnabled: boolean): void;
+ findLogins(aOrigin: string, aActionOrigin: string, aHttpRealm: string): nsILoginInfo[];
+ countLogins(aOrigin: string, aActionOrigin: string, aHttpRealm: string): u32;
+ searchLoginsAsync(matchData: any): Promise<any>;
+ searchLogins(matchData: nsIPropertyBag): nsILoginInfo[];
+ getSyncID(): Promise<any>;
+ setSyncID(syncID: string): Promise<any>;
+ getLastSync(): Promise<any>;
+ setLastSync(timestamp: double): Promise<any>;
+ ensureCurrentSyncID(newSyncID: string): Promise<any>;
+ readonly uiBusy: boolean;
+ readonly isLoggedIn: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsILoginManagerAuthPrompter.idl
+
+interface nsILoginManagerAuthPrompter extends nsISupports {
+ init(aWindow: nsIDOMWindow): void;
+ browser: Element;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsILoginManagerCrypto.idl
+
+interface nsILoginManagerCrypto extends nsISupports {
+ readonly ENCTYPE_BASE64: 0;
+ readonly ENCTYPE_SDR: 1;
+
+ encrypt(plainText: string): string;
+ encryptMany(plainTexts: any): Promise<any>;
+ decrypt(cipherText: string): string;
+ decryptMany(cipherTexts: any): Promise<any>;
+ readonly uiBusy: boolean;
+ readonly isLoggedIn: boolean;
+ readonly defaultEncType: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsILoginManagerPrompter.idl
+
+interface nsILoginManagerPrompter extends nsISupports {
+ promptToSavePassword(aBrowser: Element, aLogin: nsILoginInfo, dismissed?: boolean, notifySaved?: boolean, autoFilledLoginGuid?: string, possibleValues?: any): nsIPromptInstance;
+ promptToChangePassword(aBrowser: Element, aOldLogin: nsILoginInfo, aNewLogin: nsILoginInfo, dismissed?: boolean, notifySaved?: boolean, autoSavedLoginGuid?: string, autoFilledLoginGuid?: string, possibleValues?: any): nsIPromptInstance;
+ promptToChangePasswordWithUsernames(aBrowser: Element, logins: nsILoginInfo[], aNewLogin: nsILoginInfo): nsIPromptInstance;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsILoginMetaInfo.idl
+
+interface nsILoginMetaInfo extends nsISupports {
+ guid: string;
+ timeCreated: u64;
+ timeLastUsed: u64;
+ timePasswordChanged: u64;
+ timesUsed: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsIPromptInstance.idl
+
+interface nsIPromptInstance extends nsISupports {
+ dismiss(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/browser/components/migration/nsIEdgeMigrationUtils.idl
+
+interface nsIEdgeMigrationUtils extends nsISupports {
+ isDbLocked(aFile: nsIFile): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/mime/nsIMIMEHeaderParam.idl
+
+interface nsIMIMEHeaderParam extends nsISupports {
+ getParameter(aHeaderVal: string, aParamName: string, aFallbackCharset: string, aTryLocaleCharset: boolean, aLang: OutParam<string>): string;
+ getParameterHTTP(aHeaderVal: string, aParamName: string, aFallbackCharset: string, aTryLocaleCharset: boolean, aLang: OutParam<string>): string;
+ decodeRFC5987Param(aParamVal: string, aLang: OutParam<string>): string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/mime/nsIMIMEInfo.idl
+
+interface nsIHandlerInfo extends nsISupports {
+ readonly saveToDisk: 0;
+ readonly alwaysAsk: 1;
+ readonly useHelperApp: 2;
+ readonly handleInternally: 3;
+ readonly useSystemDefault: 4;
+
+ readonly type: string;
+ description: string;
+ preferredApplicationHandler: nsIHandlerApp;
+ readonly possibleApplicationHandlers: nsIMutableArray;
+ readonly hasDefaultHandler: boolean;
+ readonly defaultDescription: string;
+ launchWithURI(aURI: nsIURI, aBrowsingContext?: BrowsingContext): void;
+ preferredAction: nsHandlerInfoAction;
+ alwaysAskBeforeHandling: boolean;
+}
+
+interface nsIMIMEInfo extends nsIHandlerInfo {
+ getFileExtensions(): nsIUTF8StringEnumerator;
+ setFileExtensions(aExtensions: string): void;
+ extensionExists(aExtension: string): boolean;
+ appendExtension(aExtension: string): void;
+ primaryExtension: string;
+ readonly MIMEType: string;
+ equals(aMIMEInfo: nsIMIMEInfo): boolean;
+ readonly possibleLocalHandlers: nsIArray;
+ launchWithFile(aFile: nsIFile): void;
+ isCurrentAppOSDefault(): boolean;
+}
+
+interface nsIHandlerApp extends nsISupports {
+ name: string;
+ detailedDescription: string;
+ equals(aHandlerApp: nsIHandlerApp): boolean;
+ launchWithURI(aURI: nsIURI, aBrowsingContext?: BrowsingContext): void;
+}
+
+interface nsILocalHandlerApp extends nsIHandlerApp {
+ executable: nsIFile;
+ readonly parameterCount: u32;
+ clearParameters(): void;
+ appendParameter(param: string): void;
+ getParameter(parameterIndex: u32): string;
+ parameterExists(param: string): boolean;
+}
+
+interface nsIWebHandlerApp extends nsIHandlerApp {
+ uriTemplate: string;
+}
+
+interface nsIDBusHandlerApp extends nsIHandlerApp {
+ service: string;
+ objectPath: string;
+ dBusInterface: string;
+ method: string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/mime/nsIMIMEService.idl
+
+interface nsIMIMEService extends nsISupports {
+ readonly VALIDATE_DEFAULT: 0;
+ readonly VALIDATE_SANITIZE_ONLY: 1;
+ readonly VALIDATE_DONT_COLLAPSE_WHITESPACE: 2;
+ readonly VALIDATE_DONT_TRUNCATE: 4;
+ readonly VALIDATE_GUESS_FROM_EXTENSION: 8;
+ readonly VALIDATE_ALLOW_EMPTY: 16;
+ readonly VALIDATE_NO_DEFAULT_FILENAME: 32;
+ readonly VALIDATE_FORCE_APPEND_EXTENSION: 64;
+ readonly VALIDATE_ALLOW_INVALID_FILENAMES: 128;
+
+ getFromTypeAndExtension(aMIMEType: string, aFileExt: string): nsIMIMEInfo;
+ getTypeFromExtension(aFileExt: string): string;
+ getTypeFromURI(aURI: nsIURI): string;
+ getDefaultTypeFromURI(aURI: nsIURI): string;
+ getTypeFromFile(aFile: nsIFile): string;
+ getPrimaryExtension(aMIMEType: string, aFileExt: string): string;
+ getMIMEInfoFromOS(aType: string, aFileExtension: string, aFound: OutParam<boolean>): nsIMIMEInfo;
+ updateDefaultAppInfo(aMIMEInfo: nsIMIMEInfo): void;
+ getValidFileName(aChannel: nsIChannel, aType: string, aOriginalURI: nsIURI, aFlags: u32): string;
+ validateFileNameForSaving(aFileName: string, aType: string, aFlags: u32): string;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/find/nsIFind.idl
+
+interface nsIFind extends nsISupports {
+ findBackwards: boolean;
+ caseSensitive: boolean;
+ entireWord: boolean;
+ matchDiacritics: boolean;
+ Find(aPatText: string, aSearchRange: Range, aStartPoint: Range, aEndPoint: Range): Range;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/find/nsIFindService.idl
+
+interface nsIFindService extends nsISupports {
+ searchString: string;
+ replaceString: string;
+ findBackwards: boolean;
+ wrapFind: boolean;
+ entireWord: boolean;
+ matchCase: boolean;
+ matchDiacritics: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/find/nsIWebBrowserFind.idl
+
+interface nsIWebBrowserFind extends nsISupports {
+ findNext(): boolean;
+ searchString: string;
+ findBackwards: boolean;
+ wrapFind: boolean;
+ entireWord: boolean;
+ matchCase: boolean;
+ matchDiacritics: boolean;
+ searchFrames: boolean;
+}
+
+interface nsIWebBrowserFindInFrames extends nsISupports {
+ currentSearchFrame: mozIDOMWindowProxy;
+ rootSearchFrame: mozIDOMWindowProxy;
+ searchSubframes: boolean;
+ searchParentFrames: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/mozintl/mozIMozIntl.idl
+
+interface mozIMozIntl extends nsISupports {
+ getCalendarInfo(locales?: any): any;
+ getDisplayNamesDeprecated(locales?: any, options?: any): any;
+ getAvailableLocaleDisplayNames(type: any): any;
+ getLanguageDisplayNames(locales: any, langCodes: any): any;
+ getRegionDisplayNames(locales: any, regionCodes: any): any;
+ getLocaleDisplayNames(locales: any, localeCodes: any, options?: any): any;
+ getScriptDirection(locale: any): any;
+ stringHasRTLChars(str: any): boolean;
+ readonly Collator: any;
+ readonly DateTimeFormat: any;
+ readonly DisplayNames: any;
+ readonly ListFormat: any;
+ readonly Locale: any;
+ readonly NumberFormat: any;
+ readonly PluralRules: any;
+ readonly RelativeTimeFormat: any;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/mozintl/mozIMozIntlHelper.idl
+
+interface mozIMozIntlHelper extends nsISupports {
+ addGetCalendarInfo(intlObject: any): void;
+ addDateTimeFormatConstructor(intlObject: any): void;
+ addDisplayNamesConstructor(intlObject: any): void;
+ stringHasRTLChars(str: any): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/mozIThirdPartyUtil.idl
+
+interface mozIThirdPartyUtil extends nsISupports {
+ isThirdPartyURI(aFirstURI: nsIURI, aSecondURI: nsIURI): boolean;
+ isThirdPartyWindow(aWindow: mozIDOMWindowProxy, aURI?: nsIURI): boolean;
+ isThirdPartyChannel(aChannel: nsIChannel, aURI?: nsIURI): boolean;
+ getBaseDomain(aHostURI: nsIURI): string;
+ getBaseDomainFromSchemeHost(aScheme: string, aAsciiHost: string): string;
+ getURIFromWindow(aWindow: mozIDOMWindowProxy): nsIURI;
+ getPrincipalFromWindow(aWindow: mozIDOMWindowProxy): nsIPrincipal;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIArrayBufferInputStream.idl
+
+interface nsIArrayBufferInputStream extends nsIInputStream {
+ setData(buffer: any, byteOffset: u64, byteLen: u64): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAsyncStreamCopier.idl
+
+interface nsIAsyncStreamCopier extends nsIRequest {
+ init(aSource: nsIInputStream, aSink: nsIOutputStream, aTarget: nsIEventTarget, aSourceBuffered: boolean, aSinkBuffered: boolean, aChunkSize: u32, aCloseSource: boolean, aCloseSink: boolean): void;
+ asyncCopy(aObserver: nsIRequestObserver, aObserverContext: nsISupports): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAsyncStreamCopier2.idl
+
+interface nsIAsyncStreamCopier2 extends nsIRequest {
+ init(aSource: nsIInputStream, aSink: nsIOutputStream, aTarget: nsIEventTarget, aChunkSize: u32, aCloseSource: boolean, aCloseSink: boolean): void;
+ asyncCopy(aObserver: nsIRequestObserver, aObserverContext: nsISupports): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAsyncVerifyRedirectCallback.idl
+
+interface nsIAsyncVerifyRedirectCallback extends nsISupports {
+ onRedirectVerifyCallback(result: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAuthInformation.idl
+
+interface nsIAuthInformation extends nsISupports {
+ readonly AUTH_HOST: 1;
+ readonly AUTH_PROXY: 2;
+ readonly NEED_DOMAIN: 4;
+ readonly ONLY_PASSWORD: 8;
+ readonly PREVIOUS_FAILED: 16;
+ readonly CROSS_ORIGIN_SUB_RESOURCE: 32;
+
+ readonly flags: u32;
+ readonly realm: string;
+ readonly authenticationScheme: string;
+ username: string;
+ password: string;
+ domain: string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAuthModule.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAuthPrompt.idl
+
+interface nsIAuthPrompt extends nsISupports {
+ readonly SAVE_PASSWORD_NEVER: 0;
+ readonly SAVE_PASSWORD_FOR_SESSION: 1;
+ readonly SAVE_PASSWORD_PERMANENTLY: 2;
+
+ prompt(dialogTitle: string, text: string, passwordRealm: string, savePassword: u32, defaultText: string, result: OutParam<string>): boolean;
+ promptUsernameAndPassword(dialogTitle: string, text: string, passwordRealm: string, savePassword: u32, user: InOutParam<string>, pwd: InOutParam<string>): boolean;
+ asyncPromptUsernameAndPassword(dialogTitle: string, text: string, passwordRealm: string, savePassword: u32, user: InOutParam<string>, pwd: InOutParam<string>): Promise<any>;
+ promptPassword(dialogTitle: string, text: string, passwordRealm: string, savePassword: u32, pwd: InOutParam<string>): boolean;
+ asyncPromptPassword(dialogTitle: string, text: string, passwordRealm: string, savePassword: u32, pwd: InOutParam<string>): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAuthPrompt2.idl
+
+interface nsIAuthPrompt2 extends nsISupports {
+ readonly LEVEL_NONE: 0;
+ readonly LEVEL_PW_ENCRYPTED: 1;
+ readonly LEVEL_SECURE: 2;
+
+ promptAuth(aChannel: nsIChannel, level: u32, authInfo: nsIAuthInformation): boolean;
+ asyncPromptAuth(aChannel: nsIChannel, aCallback: nsIAuthPromptCallback, aContext: nsISupports, level: u32, authInfo: nsIAuthInformation): nsICancelable;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAuthPromptAdapterFactory.idl
+
+interface nsIAuthPromptAdapterFactory extends nsISupports {
+ createAdapter(aPrompt: nsIAuthPrompt): nsIAuthPrompt2;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAuthPromptCallback.idl
+
+interface nsIAuthPromptCallback extends nsISupports {
+ onAuthAvailable(aContext: nsISupports, aAuthInfo: nsIAuthInformation): void;
+ onAuthCancelled(aContext: nsISupports, userCancel: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAuthPromptProvider.idl
+
+interface nsIAuthPromptProvider extends nsISupports {
+ readonly PROMPT_NORMAL: 0;
+ readonly PROMPT_PROXY: 1;
+
+ getAuthPrompt<T extends nsIID>(aPromptReason: u32, iid: T): nsQIResult<T>;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIBackgroundFileSaver.idl
+
+interface nsIBackgroundFileSaver extends nsISupports {
+ observer: nsIBackgroundFileSaverObserver;
+ readonly signatureInfo: u8[][][];
+ readonly sha256Hash: string;
+ enableSignatureInfo(): void;
+ enableSha256(): void;
+ enableAppend(): void;
+ setTarget(aTarget: nsIFile, aKeepPartial: boolean): void;
+ finish(aStatus: nsresult): void;
+}
+
+interface nsIBackgroundFileSaverObserver extends nsISupports {
+ onTargetChange(aSaver: nsIBackgroundFileSaver, aTarget: nsIFile): void;
+ onSaveComplete(aSaver: nsIBackgroundFileSaver, aStatus: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIBaseChannel.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIBufferedStreams.idl
+
+interface nsIBufferedInputStream extends nsIInputStream {
+ init(fillFromStream: nsIInputStream, bufferSize: u32): void;
+ readonly data: nsIInputStream;
+}
+
+interface nsIBufferedOutputStream extends nsIOutputStream {
+ init(sinkToStream: nsIOutputStream, bufferSize: u32): void;
+ readonly data: nsIOutputStream;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIByteRangeRequest.idl
+
+interface nsIByteRangeRequest extends nsISupports {
+ readonly isByteRangeRequest: boolean;
+ readonly startRange: i64;
+ readonly endRange: i64;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsICacheInfoChannel.idl
+
+interface nsIInputStreamReceiver extends nsISupports {
+ onInputStreamReady(aStream: nsIInputStream): void;
+}
+
+} // global
+
+declare namespace nsICacheInfoChannel {
+
+enum PreferredAlternativeDataDeliveryType {
+ NONE = 0,
+ ASYNC = 1,
+ SERIALIZE = 2,
+}
+
+}
+
+declare global {
+
+interface nsICacheInfoChannel extends nsISupports, Enums<typeof nsICacheInfoChannel.PreferredAlternativeDataDeliveryType> {
+ readonly cacheTokenFetchCount: u32;
+ readonly cacheTokenExpirationTime: u32;
+ isFromCache(): boolean;
+ isRacing(): boolean;
+ getCacheEntryId(): u64;
+ cacheKey: u32;
+ allowStaleCacheContent: boolean;
+ preferCacheLoadOverBypass: boolean;
+ forceValidateCacheContent: boolean;
+ preferAlternativeDataType(type: string, contentType: string, deliverAltData: nsICacheInfoChannel.PreferredAlternativeDataDeliveryType): void;
+ readonly alternativeDataType: string;
+ readonly alternativeDataInputStream: nsIInputStream;
+ getOriginalInputStream(aReceiver: nsIInputStreamReceiver): void;
+ openAlternativeOutputStream(type: string, predictedSize: i64): nsIAsyncOutputStream;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsICachingChannel.idl
+
+interface nsICachingChannel extends nsICacheInfoChannel {
+ readonly LOAD_NO_NETWORK_IO: 67108864;
+ readonly LOAD_BYPASS_LOCAL_CACHE: 268435456;
+ readonly LOAD_BYPASS_LOCAL_CACHE_IF_BUSY: 536870912;
+ readonly LOAD_ONLY_FROM_CACHE: 1073741824;
+ readonly LOAD_ONLY_IF_MODIFIED: 2147483648;
+
+ cacheToken: nsISupports;
+ cacheOnlyMetadata: boolean;
+ pin: boolean;
+ forceCacheEntryValidFor(aSecondsToTheFuture: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsICancelable.idl
+
+interface nsICancelable extends nsISupports {
+ cancel(aReason: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsICaptivePortalService.idl
+
+interface nsICaptivePortalServiceCallback extends nsISupports {
+ complete(success: boolean, error: nsresult): void;
+}
+
+interface nsICaptivePortalService extends nsISupports {
+ readonly UNKNOWN: 0;
+ readonly NOT_CAPTIVE: 1;
+ readonly UNLOCKED_PORTAL: 2;
+ readonly LOCKED_PORTAL: 3;
+
+ recheckCaptivePortal(): void;
+ readonly state: i32;
+ readonly lastChecked: u64;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIChannel.idl
+
+interface nsIChannel extends nsIRequest {
+ readonly LOAD_DOCUMENT_URI: 65536;
+ readonly LOAD_RETARGETED_DOCUMENT_URI: 131072;
+ readonly LOAD_REPLACE: 262144;
+ readonly LOAD_INITIAL_DOCUMENT_URI: 524288;
+ readonly LOAD_TARGETED: 1048576;
+ readonly LOAD_CALL_CONTENT_SNIFFERS: 2097152;
+ readonly LOAD_BYPASS_URL_CLASSIFIER: 4194304;
+ readonly LOAD_MEDIA_SNIFFER_OVERRIDES_CONTENT_TYPE: 8388608;
+ readonly LOAD_EXPLICIT_CREDENTIALS: 16777216;
+ readonly LOAD_BYPASS_SERVICE_WORKER: 33554432;
+ readonly DISPOSITION_INLINE: 0;
+ readonly DISPOSITION_ATTACHMENT: 1;
+ readonly DISPOSITION_FORCE_INLINE: 2;
+
+ originalURI: nsIURI;
+ readonly URI: nsIURI;
+ owner: nsISupports;
+ notificationCallbacks: nsIInterfaceRequestor;
+ readonly securityInfo: nsITransportSecurityInfo;
+ contentType: string;
+ contentCharset: string;
+ contentLength: i64;
+ open(): nsIInputStream;
+ asyncOpen(aListener: nsIStreamListener): void;
+ readonly canceled: boolean;
+ contentDisposition: u32;
+ contentDispositionFilename: string;
+ readonly contentDispositionHeader: string;
+ loadInfo: nsILoadInfo;
+ readonly isDocument: boolean;
+}
+
+interface nsIIdentChannel extends nsIChannel {
+ channelId: u64;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIChannelEventSink.idl
+
+interface nsIChannelEventSink extends nsISupports {
+ readonly REDIRECT_TEMPORARY: 1;
+ readonly REDIRECT_PERMANENT: 2;
+ readonly REDIRECT_INTERNAL: 4;
+ readonly REDIRECT_STS_UPGRADE: 8;
+ readonly REDIRECT_AUTH_RETRY: 16;
+
+ asyncOnChannelRedirect(oldChannel: nsIChannel, newChannel: nsIChannel, flags: u32, callback: nsIAsyncVerifyRedirectCallback): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIChildChannel.idl
+
+interface nsIChildChannel extends nsISupports {
+ connectParent(registrarId: u32): void;
+ completeRedirectSetup(aListener: nsIStreamListener): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIClassOfService.idl
+
+interface nsIClassOfService extends nsISupports {
+ readonly Leader: 1;
+ readonly Follower: 2;
+ readonly Speculative: 4;
+ readonly Background: 8;
+ readonly Unblocked: 16;
+ readonly Throttleable: 32;
+ readonly UrgentStart: 64;
+ readonly DontThrottle: 128;
+ readonly Tail: 256;
+ readonly TailAllowed: 512;
+ readonly TailForbidden: 1024;
+
+ classFlags: u32;
+ incremental: boolean;
+ clearClassFlags(flags: u32): void;
+ addClassFlags(flags: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIClassifiedChannel.idl
+
+} // global
+
+declare namespace nsIClassifiedChannel {
+
+enum ClassificationFlags {
+ CLASSIFIED_FINGERPRINTING = 1,
+ CLASSIFIED_FINGERPRINTING_CONTENT = 128,
+ CLASSIFIED_CRYPTOMINING = 2,
+ CLASSIFIED_CRYPTOMINING_CONTENT = 256,
+ CLASSIFIED_TRACKING = 4,
+ CLASSIFIED_TRACKING_AD = 8,
+ CLASSIFIED_TRACKING_ANALYTICS = 16,
+ CLASSIFIED_TRACKING_SOCIAL = 32,
+ CLASSIFIED_TRACKING_CONTENT = 64,
+ CLASSIFIED_SOCIALTRACKING = 512,
+ CLASSIFIED_SOCIALTRACKING_FACEBOOK = 1024,
+ CLASSIFIED_SOCIALTRACKING_LINKEDIN = 2048,
+ CLASSIFIED_SOCIALTRACKING_TWITTER = 4096,
+ CLASSIFIED_EMAILTRACKING = 8192,
+ CLASSIFIED_EMAILTRACKING_CONTENT = 16384,
+ CLASSIFIED_ANY_BASIC_TRACKING = 61,
+ CLASSIFIED_ANY_STRICT_TRACKING = 253,
+ CLASSIFIED_ANY_SOCIAL_TRACKING = 7680,
+}
+
+}
+
+declare global {
+
+interface nsIClassifiedChannel extends nsISupports, Enums<typeof nsIClassifiedChannel.ClassificationFlags> {
+ setMatchedInfo(aList: string, aProvider: string, aFullHash: string): void;
+ readonly matchedList: string;
+ readonly matchedProvider: string;
+ readonly matchedFullHash: string;
+ setMatchedTrackingInfo(aLists: string[], aFullHashes: string[]): void;
+ readonly matchedTrackingLists: string[];
+ readonly matchedTrackingFullHashes: string[];
+ readonly firstPartyClassificationFlags: u32;
+ readonly thirdPartyClassificationFlags: u32;
+ readonly classificationFlags: u32;
+ isThirdPartyTrackingResource(): boolean;
+ isThirdPartySocialTrackingResource(): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIContentSniffer.idl
+
+interface nsIContentSniffer extends nsISupports {
+ getMIMETypeFromContent(aRequest: nsIRequest, aData: u8[], aLength: u32): string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIDHCPClient.idl
+
+interface nsIDHCPClient extends nsISupports {
+ getOption(option: u8): string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIDashboard.idl
+
+type nsINetDashboardCallback = Callable<{
+ onDashboardDataAvailable(data: any): void;
+}>
+
+interface nsIDashboard extends nsISupports {
+ requestSockets(cb: nsINetDashboardCallback): void;
+ requestHttpConnections(cb: nsINetDashboardCallback): void;
+ requestWebsocketConnections(cb: nsINetDashboardCallback): void;
+ requestDNSInfo(cb: nsINetDashboardCallback): void;
+ requestConnection(aHost: string, aPort: u32, aProtocol: string, aTimeout: u32, cb: nsINetDashboardCallback): void;
+ enableLogging: boolean;
+ requestDNSLookup(aHost: string, cb: nsINetDashboardCallback): void;
+ requestDNSHTTPSRRLookup(aHost: string, cb: nsINetDashboardCallback): void;
+ requestRcwnStats(cb: nsINetDashboardCallback): void;
+ getLogPath(): string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIDashboardEventNotifier.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIDownloader.idl
+
+interface nsIDownloader extends nsIStreamListener {
+ init(observer: nsIDownloadObserver, downloadLocation: nsIFile): void;
+}
+
+interface nsIDownloadObserver extends nsISupports {
+ onDownloadComplete(downloader: nsIDownloader, request: nsIRequest, status: nsresult, result: nsIFile): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIEncodedChannel.idl
+
+interface nsIEncodedChannel extends nsISupports {
+ readonly contentEncodings: nsIUTF8StringEnumerator;
+ applyConversion: boolean;
+ hasContentDecompressed: boolean;
+ doApplyContentConversions(aNextListener: nsIStreamListener, aNewNextListener: OutParam<nsIStreamListener>, aCtxt: nsISupports): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIExternalProtocolHandler.idl
+
+interface nsIExternalProtocolHandler extends nsIProtocolHandler {
+ externalAppExistsForScheme(scheme: string): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIFileStreams.idl
+
+interface nsIFileInputStream extends nsIInputStream {
+ readonly CLOSE_ON_EOF: 4;
+ readonly REOPEN_ON_REWIND: 8;
+ readonly DEFER_OPEN: 16;
+ readonly SHARE_DELETE: 32;
+
+ init(file: nsIFile, ioFlags: i32, perm: i32, behaviorFlags: i32): void;
+}
+
+interface nsIFileOutputStream extends nsIOutputStream {
+ readonly DEFER_OPEN: 1;
+
+ init(file: nsIFile, ioFlags: i32, perm: i32, behaviorFlags: i32): void;
+}
+
+interface nsIFileRandomAccessStream extends nsIRandomAccessStream {
+ readonly DEFER_OPEN: 1;
+
+ init(file: nsIFile, ioFlags: i32, perm: i32, behaviorFlags: i32): void;
+}
+
+interface nsIFileMetadata extends nsISupports {
+ readonly size: i64;
+ readonly lastModified: i64;
+}
+
+interface nsIAsyncFileMetadata extends nsIFileMetadata {
+ asyncFileMetadataWait(aCallback: nsIFileMetadataCallback, aEventTarget: nsIEventTarget): void;
+}
+
+type nsIFileMetadataCallback = Callable<{
+ onFileMetadataReady(aObject: nsIAsyncFileMetadata): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIFileURL.idl
+
+interface nsIFileURL extends nsIURL {
+ readonly file: nsIFile;
+}
+
+interface nsIFileURLMutator extends nsISupports {
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIForcePendingChannel.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIFormPOSTActionChannel.idl
+
+interface nsIFormPOSTActionChannel extends nsIUploadChannel {
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIHttpAuthenticatorCallback.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIHttpPushListener.idl
+
+interface nsIHttpPushListener extends nsISupports {
+ onPush(associatedChannel: nsIHttpChannel, pushChannel: nsIHttpChannel): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIIOService.idl
+
+interface nsIIOService extends nsISupports {
+ getProtocolHandler(aScheme: string): nsIProtocolHandler;
+ getProtocolFlags(aScheme: string): u32;
+ getDynamicProtocolFlags(aURI: nsIURI): u32;
+ getDefaultPort(aScheme: string): i32;
+ newURI(aSpec: string, aOriginCharset?: string, aBaseURI?: nsIURI): nsIURI;
+ newFileURI(aFile: nsIFile): nsIURI;
+ createExposableURI(aURI: nsIURI): nsIURI;
+ newChannelFromURI(aURI: nsIURI, aLoadingNode: Node, aLoadingPrincipal: nsIPrincipal, aTriggeringPrincipal: nsIPrincipal, aSecurityFlags: u32, aContentPolicyType: nsContentPolicyType): nsIChannel;
+ newChannelFromURIWithLoadInfo(aURI: nsIURI, aLoadInfo: nsILoadInfo): nsIChannel;
+ newChannel(aSpec: string, aOriginCharset: string, aBaseURI: nsIURI, aLoadingNode: Node, aLoadingPrincipal: nsIPrincipal, aTriggeringPrincipal: nsIPrincipal, aSecurityFlags: u32, aContentPolicyType: nsContentPolicyType): nsIChannel;
+ newWebTransport(): nsIWebTransport;
+ offline: boolean;
+ readonly connectivity: boolean;
+ allowPort(aPort: i32, aScheme: string): boolean;
+ extractScheme(urlString: string): string;
+ hostnameIsLocalIPAddress(aURI: nsIURI): boolean;
+ hostnameIsSharedIPAddress(aURI: nsIURI): boolean;
+ isValidHostname(hostname: string): boolean;
+ manageOfflineStatus: boolean;
+ newChannelFromURIWithProxyFlags(aURI: nsIURI, aProxyURI: nsIURI, aProxyFlags: u32, aLoadingNode: Node, aLoadingPrincipal: nsIPrincipal, aTriggeringPrincipal: nsIPrincipal, aSecurityFlags: u32, aContentPolicyType: nsContentPolicyType): nsIChannel;
+ readonly socketProcessLaunched: boolean;
+ readonly socketProcessId: u64;
+ registerProtocolHandler(aScheme: string, aHandler: nsIProtocolHandler, aProtocolFlags: u32, aDefaultPort: i32): void;
+ unregisterProtocolHandler(aScheme: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIIncrementalDownload.idl
+
+interface nsIIncrementalDownload extends nsIRequest {
+ init(uri: nsIURI, destination: nsIFile, chunkSize: i32, intervalInSeconds: i32): void;
+ readonly URI: nsIURI;
+ readonly finalURI: nsIURI;
+ readonly destination: nsIFile;
+ readonly totalSize: i64;
+ readonly currentSize: i64;
+ start(observer: nsIRequestObserver, ctxt: nsISupports): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIIncrementalStreamLoader.idl
+
+interface nsIIncrementalStreamLoaderObserver extends nsISupports {
+ onIncrementalData(loader: nsIIncrementalStreamLoader, ctxt: nsISupports, dataLength: u32, data: u8[], consumedLength: InOutParam<u32>): void;
+ onStreamComplete(loader: nsIIncrementalStreamLoader, ctxt: nsISupports, status: nsresult, resultLength: u32, result: u8[]): void;
+}
+
+interface nsIIncrementalStreamLoader extends nsIThreadRetargetableStreamListener {
+ init(aObserver: nsIIncrementalStreamLoaderObserver): void;
+ readonly numBytesRead: u32;
+ readonly request: nsIRequest;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIInputStreamChannel.idl
+
+interface nsIInputStreamChannel extends nsISupports {
+ setURI(aURI: nsIURI): void;
+ contentStream: nsIInputStream;
+ srcdocData: string;
+ readonly isSrcdocChannel: boolean;
+ baseURI: nsIURI;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIInputStreamPump.idl
+
+interface nsIInputStreamPump extends nsIRequest {
+ init(aStream: nsIInputStream, aSegmentSize: u32, aSegmentCount: u32, aCloseWhenDone: boolean, aMainThreadTarget?: nsISerialEventTarget): void;
+ asyncRead(aListener: nsIStreamListener): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIInterceptionInfo.idl
+
+interface nsIInterceptionInfo extends nsISupports {
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsILoadContextInfo.idl
+
+interface nsILoadContextInfo extends nsISupports {
+ readonly isPrivate: boolean;
+ readonly isAnonymous: boolean;
+ readonly originAttributes: any;
+}
+
+interface nsILoadContextInfoFactory extends nsISupports {
+ readonly default: nsILoadContextInfo;
+ readonly private: nsILoadContextInfo;
+ readonly anonymous: nsILoadContextInfo;
+ custom(aAnonymous: boolean, aOriginAttributes: any): nsILoadContextInfo;
+ fromLoadContext(aLoadContext: nsILoadContext, aAnonymous: boolean): nsILoadContextInfo;
+ fromWindow(aWindow: nsIDOMWindow, aAnonymous: boolean): nsILoadContextInfo;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsILoadGroup.idl
+
+interface nsILoadGroup extends nsIRequest {
+ groupObserver: nsIRequestObserver;
+ defaultLoadRequest: nsIRequest;
+ addRequest(aRequest: nsIRequest, aContext: nsISupports): void;
+ removeRequest(aRequest: nsIRequest, aContext: nsISupports, aStatus: nsresult): void;
+ readonly requests: nsISimpleEnumerator;
+ readonly activeCount: u32;
+ notificationCallbacks: nsIInterfaceRequestor;
+ readonly requestContextID: u64;
+ defaultLoadFlags: nsLoadFlags;
+ readonly isBrowsingContextDiscarded: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsILoadGroupChild.idl
+
+interface nsILoadGroupChild extends nsISupports {
+ parentLoadGroup: nsILoadGroup;
+ readonly childLoadGroup: nsILoadGroup;
+ readonly rootLoadGroup: nsILoadGroup;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsILoadInfo.idl
+
+} // global
+
+declare namespace nsILoadInfo {
+
+enum StoragePermissionState {
+ NoStoragePermission = 0,
+ HasStoragePermission = 1,
+ StoragePermissionAllowListed = 2,
+}
+
+enum CrossOriginOpenerPolicy {
+ OPENER_POLICY_UNSAFE_NONE = 0,
+ OPENER_POLICY_SAME_ORIGIN = 1,
+ OPENER_POLICY_SAME_ORIGIN_ALLOW_POPUPS = 2,
+ OPENER_POLICY_EMBEDDER_POLICY_REQUIRE_CORP_FLAG = 16,
+ OPENER_POLICY_SAME_ORIGIN_EMBEDDER_POLICY_REQUIRE_CORP = 17,
+}
+
+enum CrossOriginEmbedderPolicy {
+ EMBEDDER_POLICY_NULL = 0,
+ EMBEDDER_POLICY_REQUIRE_CORP = 1,
+ EMBEDDER_POLICY_CREDENTIALLESS = 2,
+}
+
+}
+
+declare global {
+
+interface nsILoadInfo extends nsISupports, Enums<typeof nsILoadInfo.StoragePermissionState & typeof nsILoadInfo.CrossOriginOpenerPolicy & typeof nsILoadInfo.CrossOriginEmbedderPolicy> {
+ readonly SEC_ONLY_FOR_EXPLICIT_CONTENTSEC_CHECK: 0;
+ readonly SEC_REQUIRE_SAME_ORIGIN_INHERITS_SEC_CONTEXT: 1;
+ readonly SEC_REQUIRE_SAME_ORIGIN_DATA_IS_BLOCKED: 2;
+ readonly SEC_ALLOW_CROSS_ORIGIN_INHERITS_SEC_CONTEXT: 4;
+ readonly SEC_ALLOW_CROSS_ORIGIN_SEC_CONTEXT_IS_NULL: 8;
+ readonly SEC_REQUIRE_CORS_INHERITS_SEC_CONTEXT: 16;
+ readonly SEC_COOKIES_DEFAULT: 0;
+ readonly SEC_COOKIES_INCLUDE: 32;
+ readonly SEC_COOKIES_SAME_ORIGIN: 64;
+ readonly SEC_COOKIES_OMIT: 96;
+ readonly SEC_FORCE_INHERIT_PRINCIPAL: 128;
+ readonly SEC_ABOUT_BLANK_INHERITS: 512;
+ readonly SEC_ALLOW_CHROME: 1024;
+ readonly SEC_DISALLOW_SCRIPT: 2048;
+ readonly SEC_DONT_FOLLOW_REDIRECTS: 4096;
+ readonly SEC_LOAD_ERROR_PAGE: 8192;
+ readonly SEC_FORCE_INHERIT_PRINCIPAL_OVERRULE_OWNER: 16384;
+ readonly HTTPS_ONLY_UNINITIALIZED: 1;
+ readonly HTTPS_ONLY_UPGRADED_LISTENER_NOT_REGISTERED: 2;
+ readonly HTTPS_ONLY_UPGRADED_LISTENER_REGISTERED: 4;
+ readonly HTTPS_ONLY_EXEMPT: 8;
+ readonly HTTPS_ONLY_TOP_LEVEL_LOAD_IN_PROGRESS: 16;
+ readonly HTTPS_ONLY_DOWNLOAD_IN_PROGRESS: 32;
+ readonly HTTPS_ONLY_DO_NOT_LOG_TO_CONSOLE: 64;
+ readonly HTTPS_ONLY_UPGRADED_HTTPS_FIRST: 128;
+ readonly HTTPS_ONLY_BYPASS_ORB: 256;
+ readonly HTTPS_FIRST_EXEMPT_NEXT_LOAD: 512;
+ readonly TAINTING_BASIC: 0;
+ readonly TAINTING_CORS: 1;
+ readonly TAINTING_OPAQUE: 2;
+ readonly BLOCKING_REASON_NONE: 0;
+ readonly BLOCKING_REASON_CORSDISABLED: 1001;
+ readonly BLOCKING_REASON_CORSDIDNOTSUCCEED: 1002;
+ readonly BLOCKING_REASON_CORSREQUESTNOTHTTP: 1003;
+ readonly BLOCKING_REASON_CORSMULTIPLEALLOWORIGINNOTALLOWED: 1004;
+ readonly BLOCKING_REASON_CORSMISSINGALLOWORIGIN: 1005;
+ readonly BLOCKING_REASON_CORSNOTSUPPORTINGCREDENTIALS: 1006;
+ readonly BLOCKING_REASON_CORSALLOWORIGINNOTMATCHINGORIGIN: 1007;
+ readonly BLOCKING_REASON_CORSMISSINGALLOWCREDENTIALS: 1008;
+ readonly BLOCKING_REASON_CORSORIGINHEADERNOTADDED: 1009;
+ readonly BLOCKING_REASON_CORSEXTERNALREDIRECTNOTALLOWED: 1010;
+ readonly BLOCKING_REASON_CORSPREFLIGHTDIDNOTSUCCEED: 1011;
+ readonly BLOCKING_REASON_CORSINVALIDALLOWMETHOD: 1012;
+ readonly BLOCKING_REASON_CORSMETHODNOTFOUND: 1013;
+ readonly BLOCKING_REASON_CORSINVALIDALLOWHEADER: 1014;
+ readonly BLOCKING_REASON_CORSMISSINGALLOWHEADERFROMPREFLIGHT: 1015;
+ readonly BLOCKING_REASON_CLASSIFY_MALWARE_URI: 2001;
+ readonly BLOCKING_REASON_CLASSIFY_PHISHING_URI: 2002;
+ readonly BLOCKING_REASON_CLASSIFY_UNWANTED_URI: 2003;
+ readonly BLOCKING_REASON_CLASSIFY_TRACKING_URI: 2004;
+ readonly BLOCKING_REASON_CLASSIFY_BLOCKED_URI: 2005;
+ readonly BLOCKING_REASON_CLASSIFY_HARMFUL_URI: 2006;
+ readonly BLOCKING_REASON_CLASSIFY_CRYPTOMINING_URI: 2007;
+ readonly BLOCKING_REASON_CLASSIFY_FINGERPRINTING_URI: 2008;
+ readonly BLOCKING_REASON_CLASSIFY_SOCIALTRACKING_URI: 2009;
+ readonly BLOCKING_REASON_CLASSIFY_EMAILTRACKING_URI: 2010;
+ readonly BLOCKING_REASON_MIXED_BLOCKED: 3001;
+ readonly BLOCKING_REASON_CONTENT_POLICY_GENERAL: 4000;
+ readonly BLOCKING_REASON_CONTENT_POLICY_NO_DATA_PROTOCOL: 4001;
+ readonly BLOCKING_REASON_CONTENT_POLICY_CONTENT_BLOCKED: 4003;
+ readonly BLOCKING_REASON_CONTENT_POLICY_DATA_DOCUMENT: 4004;
+ readonly BLOCKING_REASON_CONTENT_POLICY_WEB_BROWSER: 4005;
+ readonly BLOCKING_REASON_CONTENT_POLICY_PRELOAD: 4006;
+ readonly BLOCKING_REASON_NOT_SAME_ORIGIN: 5000;
+ readonly BLOCKING_REASON_EXTENSION_WEBREQUEST: 6000;
+ readonly BLOCKING_REASON_WEBDRIVER_BIDI: 7000;
+
+ readonly loadingPrincipal: nsIPrincipal;
+ readonly triggeringPrincipal: nsIPrincipal;
+ triggeringRemoteType: string;
+ principalToInherit: nsIPrincipal;
+ readonly loadingDocument: Document;
+ readonly loadingContext: nsISupports;
+ readonly securityFlags: nsSecurityFlags;
+ readonly sandboxFlags: u32;
+ triggeringSandboxFlags: u32;
+ triggeringWindowId: u64;
+ triggeringStorageAccess: boolean;
+ readonly securityMode: u32;
+ skipContentSniffing: boolean;
+ httpsOnlyStatus: u32;
+ hstsStatus: boolean;
+ hasValidUserGestureActivation: boolean;
+ allowDeprecatedSystemRequests: boolean;
+ parserCreatedScript: boolean;
+ isUserTriggeredSave: boolean;
+ isInDevToolsContext: boolean;
+ isInThirdPartyContext: boolean;
+ isThirdPartyContextToTopWindow: boolean;
+ readonly cookiePolicy: u32;
+ cookieJarSettings: nsICookieJarSettings;
+ storagePermission: nsILoadInfo.StoragePermissionState;
+ isMetaRefresh: boolean;
+ readonly forceInheritPrincipal: boolean;
+ readonly forceInheritPrincipalOverruleOwner: boolean;
+ readonly loadingSandboxed: boolean;
+ readonly aboutBlankInherits: boolean;
+ readonly allowChrome: boolean;
+ readonly disallowScript: boolean;
+ readonly dontFollowRedirects: boolean;
+ readonly loadErrorPage: boolean;
+ isFormSubmission: boolean;
+ readonly externalContentPolicyType: nsContentPolicyType;
+ sendCSPViolationEvents: boolean;
+ readonly internalContentPolicyType: nsContentPolicyType;
+ readonly blockAllMixedContent: boolean;
+ readonly upgradeInsecureRequests: boolean;
+ readonly browserUpgradeInsecureRequests: boolean;
+ browserDidUpgradeInsecureRequests: boolean;
+ readonly browserWouldUpgradeInsecureRequests: boolean;
+ forceAllowDataURI: boolean;
+ allowInsecureRedirectToDataURI: boolean;
+ skipContentPolicyCheckForWebRequest: boolean;
+ originalFrameSrcLoad: boolean;
+ readonly forceInheritPrincipalDropped: boolean;
+ readonly innerWindowID: u64;
+ readonly browsingContextID: u64;
+ readonly browsingContext: BrowsingContext;
+ workerAssociatedBrowsingContextID: u64;
+ readonly workerAssociatedBrowsingContext: BrowsingContext;
+ readonly frameBrowsingContextID: u64;
+ readonly frameBrowsingContext: BrowsingContext;
+ readonly targetBrowsingContextID: u64;
+ readonly targetBrowsingContext: BrowsingContext;
+ resetPrincipalToInheritToNullPrincipal(): void;
+ originAttributes: any;
+ initialSecurityCheckDone: boolean;
+ loadTriggeredFromExternal: boolean;
+ appendRedirectHistoryEntry(channelToDeriveFrom: nsIChannel, isInternalRedirect: boolean): void;
+ readonly redirectChainIncludingInternalRedirects: any;
+ readonly redirectChain: any;
+ readonly forcePreflight: boolean;
+ readonly isPreflight: boolean;
+ readonly tainting: u32;
+ maybeIncreaseTainting(aTainting: u32): void;
+ readonly isTopLevelLoad: boolean;
+ resultPrincipalURI: nsIURI;
+ channelCreationOriginalURI: nsIURI;
+ documentHasUserInteracted: boolean;
+ allowListFutureDocumentsCreatedFromThisRedirectChain: boolean;
+ needForCheckingAntiTrackingHeuristic: boolean;
+ cspNonce: string;
+ integrityMetadata: string;
+ requestBlockingReason: u32;
+ cspEventListener: nsICSPEventListener;
+ readonly isFromProcessingFrameAttributes: boolean;
+ loadingEmbedderPolicy: nsILoadInfo.CrossOriginEmbedderPolicy;
+ isOriginTrialCoepCredentiallessEnabledForTopLevel: boolean;
+ isMediaRequest: boolean;
+ isMediaInitialRequest: boolean;
+ isFromObjectOrEmbed: boolean;
+ readonly shouldSkipCheckForBrokenURLOrZeroSized: boolean;
+ unstrippedURI: nsIURI;
+ hasInjectedCookieForCookieBannerHandling: boolean;
+ wasSchemelessInput: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIMIMEInputStream.idl
+
+interface nsIMIMEInputStream extends nsIInputStream {
+ addHeader(name: string, value: string): void;
+ visitHeaders(visitor: nsIHttpHeaderVisitor): void;
+ setData(stream: nsIInputStream): void;
+ readonly data: nsIInputStream;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIMultiPartChannel.idl
+
+interface nsIMultiPartChannel extends nsISupports {
+ readonly baseChannel: nsIChannel;
+ readonly partID: u32;
+ readonly isLastPart: boolean;
+}
+
+interface nsIMultiPartChannelListener extends nsISupports {
+ onAfterLastPart(status: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsINestedURI.idl
+
+interface nsINestedURI extends nsISupports {
+ readonly innerURI: nsIURI;
+ readonly innermostURI: nsIURI;
+}
+
+interface nsINestedURIMutator extends nsISupports {
+}
+
+interface nsINestedAboutURIMutator extends nsISupports {
+}
+
+interface nsIJSURIMutator extends nsISupports {
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetAddr.idl
+
+interface nsINetAddr extends nsISupports {
+ readonly FAMILY_INET: 1;
+ readonly FAMILY_INET6: 2;
+ readonly FAMILY_LOCAL: 3;
+
+ readonly family: u16;
+ readonly address: string;
+ readonly port: u16;
+ readonly flow: u32;
+ readonly scope: u32;
+ readonly isV4Mapped: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetUtil.idl
+
+interface nsINetUtil extends nsISupports {
+ readonly ESCAPE_ALL: 0;
+ readonly ESCAPE_XALPHAS: 1;
+ readonly ESCAPE_XPALPHAS: 2;
+ readonly ESCAPE_URL_PATH: 4;
+ readonly ESCAPE_URL_APPLE_EXTRA: 8;
+ readonly ESCAPE_URL_SCHEME: 1;
+ readonly ESCAPE_URL_USERNAME: 2;
+ readonly ESCAPE_URL_PASSWORD: 4;
+ readonly ESCAPE_URL_HOST: 8;
+ readonly ESCAPE_URL_DIRECTORY: 16;
+ readonly ESCAPE_URL_FILE_BASENAME: 32;
+ readonly ESCAPE_URL_FILE_EXTENSION: 64;
+ readonly ESCAPE_URL_PARAM: 128;
+ readonly ESCAPE_URL_QUERY: 256;
+ readonly ESCAPE_URL_REF: 512;
+ readonly ESCAPE_URL_FILEPATH: 112;
+ readonly ESCAPE_URL_MINIMAL: 1023;
+ readonly ESCAPE_URL_FORCED: 1024;
+ readonly ESCAPE_URL_ONLY_ASCII: 2048;
+ readonly ESCAPE_URL_ONLY_NONASCII: 4096;
+ readonly ESCAPE_URL_COLON: 16384;
+ readonly ESCAPE_URL_SKIP_CONTROL: 32768;
+ readonly ESCAPE_URL_EXT_HANDLER: 131072;
+
+ parseRequestContentType(aTypeHeader: string, aCharset: OutParam<string>, aHadCharset: OutParam<boolean>): string;
+ parseResponseContentType(aTypeHeader: string, aCharset: OutParam<string>, aHadCharset: OutParam<boolean>): string;
+ protocolHasFlags(aURI: nsIURI, aFlag: u32): boolean;
+ URIChainHasFlags(aURI: nsIURI, aFlags: u32): boolean;
+ escapeString(aString: string, aEscapeType: u32): string;
+ escapeURL(aStr: string, aFlags: u32): string;
+ unescapeString(aStr: string, aFlags: u32): string;
+ extractCharsetFromContentType(aTypeHeader: string, aCharset: OutParam<string>, aCharsetStart: OutParam<i32>, aCharsetEnd: OutParam<i32>): boolean;
+ socketProcessTelemetryPing(): void;
+ notImplemented(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetworkConnectivityService.idl
+
+} // global
+
+declare namespace nsINetworkConnectivityService {
+
+enum ConnectivityState {
+ UNKNOWN = 0,
+ OK = 1,
+ NOT_AVAILABLE = 2,
+}
+
+}
+
+declare global {
+
+interface nsINetworkConnectivityService extends nsISupports, Enums<typeof nsINetworkConnectivityService.ConnectivityState> {
+ readonly DNSv4: nsINetworkConnectivityService.ConnectivityState;
+ readonly DNSv6: nsINetworkConnectivityService.ConnectivityState;
+ readonly IPv4: nsINetworkConnectivityService.ConnectivityState;
+ readonly IPv6: nsINetworkConnectivityService.ConnectivityState;
+ readonly NAT64: nsINetworkConnectivityService.ConnectivityState;
+ recheckDNS(): void;
+ recheckIPConnectivity(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetworkInfoService.idl
+
+interface nsIListNetworkAddressesListener extends nsISupports {
+ onListedNetworkAddresses(aAddressArray: string[]): void;
+ onListNetworkAddressesFailed(): void;
+}
+
+interface nsIGetHostnameListener extends nsISupports {
+ onGotHostname(aHostname: string): void;
+ onGetHostnameFailed(): void;
+}
+
+interface nsINetworkInfoService extends nsISupports {
+ listNetworkAddresses(aListener: nsIListNetworkAddressesListener): void;
+ getHostname(aListener: nsIGetHostnameListener): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetworkInterceptController.idl
+
+interface nsIInterceptedBodyCallback extends nsISupports {
+ bodyComplete(aRv: nsresult): void;
+}
+
+interface nsIInterceptedChannel extends nsISupports {
+ resetInterception(bypass: boolean): void;
+ synthesizeStatus(status: u16, reason: string): void;
+ synthesizeHeader(name: string, value: string): void;
+ startSynthesizedResponse(body: nsIInputStream, callback: nsIInterceptedBodyCallback, channel: nsICacheInfoChannel, finalURLSpec: string, responseRedirected: boolean): void;
+ finishSynthesizedResponse(): void;
+ cancelInterception(status: nsresult): void;
+ readonly channel: nsIChannel;
+ readonly secureUpgradedChannelURI: nsIURI;
+}
+
+interface nsINetworkInterceptController extends nsISupports {
+ shouldPrepareForIntercept(aURI: nsIURI, aChannel: nsIChannel): boolean;
+ channelIntercepted(aChannel: nsIInterceptedChannel): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetworkLinkService.idl
+
+interface nsINetworkLinkService extends nsISupports {
+ readonly LINK_TYPE_UNKNOWN: 0;
+ readonly LINK_TYPE_ETHERNET: 1;
+ readonly LINK_TYPE_USB: 2;
+ readonly LINK_TYPE_WIFI: 3;
+ readonly LINK_TYPE_WIMAX: 4;
+ readonly LINK_TYPE_MOBILE: 9;
+ readonly NONE_DETECTED: 0;
+ readonly VPN_DETECTED: 1;
+ readonly PROXY_DETECTED: 2;
+ readonly NRPT_DETECTED: 4;
+
+ readonly isLinkUp: boolean;
+ readonly linkStatusKnown: boolean;
+ readonly linkType: u32;
+ readonly networkID: string;
+ readonly dnsSuffixList: string[];
+ readonly resolvers: nsINetAddr[];
+ readonly platformDNSIndications: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetworkPredictor.idl
+
+interface nsINetworkPredictor extends nsISupports {
+ readonly PREDICT_LINK: 0;
+ readonly PREDICT_LOAD: 1;
+ readonly PREDICT_STARTUP: 2;
+ readonly LEARN_LOAD_TOPLEVEL: 0;
+ readonly LEARN_LOAD_SUBRESOURCE: 1;
+ readonly LEARN_LOAD_REDIRECT: 2;
+ readonly LEARN_STARTUP: 3;
+
+ predict(targetURI: nsIURI, sourceURI: nsIURI, reason: PredictorPredictReason, originAttributes: any, verifier: nsINetworkPredictorVerifier): void;
+ learn(targetURI: nsIURI, sourceURI: nsIURI, reason: PredictorLearnReason, originAttributes: any): void;
+ reset(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetworkPredictorVerifier.idl
+
+interface nsINetworkPredictorVerifier extends nsISupports {
+ onPredictPrefetch(uri: nsIURI, status: u32): void;
+ onPredictPreconnect(uri: nsIURI): void;
+ onPredictDNS(uri: nsIURI): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsINullChannel.idl
+
+interface nsINullChannel extends nsISupports {
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIParentChannel.idl
+
+interface nsIParentChannel extends nsIStreamListener {
+ delete(): void;
+ readonly remoteType: string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIParentRedirectingChannel.idl
+
+interface nsIParentRedirectingChannel extends nsIParentChannel {
+ startRedirect(newChannel: nsIChannel, redirectFlags: u32, callback: nsIAsyncVerifyRedirectCallback): void;
+ continueVerification(callback: nsIAsyncVerifyRedirectReadyCallback): void;
+ completeRedirect(succeeded: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIPermission.idl
+
+interface nsIPermission extends nsISupports {
+ readonly principal: nsIPrincipal;
+ readonly type: string;
+ readonly capability: u32;
+ readonly expireType: u32;
+ readonly expireTime: i64;
+ readonly modificationTime: i64;
+ matches(principal: nsIPrincipal, exactHost: boolean): boolean;
+ matchesURI(uri: nsIURI, exactHost: boolean): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIPermissionManager.idl
+
+interface nsIPermissionManager extends nsISupports {
+ readonly UNKNOWN_ACTION: 0;
+ readonly ALLOW_ACTION: 1;
+ readonly DENY_ACTION: 2;
+ readonly PROMPT_ACTION: 3;
+ readonly EXPIRE_NEVER: 0;
+ readonly EXPIRE_SESSION: 1;
+ readonly EXPIRE_TIME: 2;
+ readonly EXPIRE_POLICY: 3;
+
+ getAllForPrincipal(principal: nsIPrincipal): nsIPermission[];
+ getAllWithTypePrefix(prefix: string): nsIPermission[];
+ getAllByTypes(types: string[]): nsIPermission[];
+ getAllByTypeSince(type: string, since: i64): nsIPermission[];
+ addFromPrincipal(principal: nsIPrincipal, type: string, permission: u32, expireType?: u32, expireTime?: i64): void;
+ addFromPrincipalAndPersistInPrivateBrowsing(principal: nsIPrincipal, type: string, permission: u32): void;
+ removeFromPrincipal(principal: nsIPrincipal, type: string): void;
+ removePermission(perm: nsIPermission): void;
+ removeAll(): void;
+ removeAllSince(since: i64): void;
+ removeByType(type: string): void;
+ removeByTypeSince(type: string, since: i64): void;
+ testPermissionFromPrincipal(principal: nsIPrincipal, type: string): u32;
+ testExactPermissionFromPrincipal(principal: nsIPrincipal, type: string): u32;
+ testExactPermanentPermission(principal: nsIPrincipal, type: string): u32;
+ getPermissionObject(principal: nsIPrincipal, type: string, exactHost: boolean): nsIPermission;
+ readonly all: nsIPermission[];
+ removePermissionsWithAttributes(patternAsJSON: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIPrivateBrowsingChannel.idl
+
+interface nsIPrivateBrowsingChannel extends nsISupports {
+ setPrivate(aPrivate: boolean): void;
+ readonly isChannelPrivate: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProgressEventSink.idl
+
+interface nsIProgressEventSink extends nsISupports {
+ onProgress(aRequest: nsIRequest, aProgress: i64, aProgressMax: i64): void;
+ onStatus(aRequest: nsIRequest, aStatus: nsresult, aStatusArg: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIPrompt.idl
+
+interface nsIPrompt extends nsISupports {
+ readonly BUTTON_POS_0: 1;
+ readonly BUTTON_POS_1: 256;
+ readonly BUTTON_POS_2: 65536;
+ readonly BUTTON_TITLE_OK: 1;
+ readonly BUTTON_TITLE_CANCEL: 2;
+ readonly BUTTON_TITLE_YES: 3;
+ readonly BUTTON_TITLE_NO: 4;
+ readonly BUTTON_TITLE_SAVE: 5;
+ readonly BUTTON_TITLE_DONT_SAVE: 6;
+ readonly BUTTON_TITLE_REVERT: 7;
+ readonly BUTTON_TITLE_IS_STRING: 127;
+ readonly BUTTON_POS_0_DEFAULT: 0;
+ readonly BUTTON_POS_1_DEFAULT: 16777216;
+ readonly BUTTON_POS_2_DEFAULT: 33554432;
+ readonly BUTTON_DELAY_ENABLE: 67108864;
+ readonly SHOW_SPINNER: 134217728;
+ readonly STD_OK_CANCEL_BUTTONS: 513;
+ readonly STD_YES_NO_BUTTONS: 1027;
+ readonly MODAL_TYPE_CONTENT: 1;
+ readonly MODAL_TYPE_TAB: 2;
+ readonly MODAL_TYPE_WINDOW: 3;
+ readonly MODAL_TYPE_INTERNAL_WINDOW: 4;
+
+ alert(dialogTitle: string, text: string): void;
+ alertCheck(dialogTitle: string, text: string, checkMsg: string, checkValue: InOutParam<boolean>): void;
+ confirm(dialogTitle: string, text: string): boolean;
+ confirmCheck(dialogTitle: string, text: string, checkMsg: string, checkValue: InOutParam<boolean>): boolean;
+ confirmEx(dialogTitle: string, text: string, buttonFlags: u32, button0Title: string, button1Title: string, button2Title: string, checkMsg: string, checkValue: InOutParam<boolean>): i32;
+ prompt(dialogTitle: string, text: string, value: InOutParam<string>, checkMsg: string, checkValue: InOutParam<boolean>): boolean;
+ promptPassword(dialogTitle: string, text: string, password: InOutParam<string>): boolean;
+ promptUsernameAndPassword(dialogTitle: string, text: string, username: InOutParam<string>, password: InOutParam<string>): boolean;
+ select(dialogTitle: string, text: string, selectList: string[], outSelection: OutParam<i32>): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProtocolHandler.idl
+
+interface nsIProtocolHandlerWithDynamicFlags extends nsISupports {
+ getFlagsForURI(aURI: nsIURI): u32;
+}
+
+interface nsIProtocolHandler extends nsISupports {
+ readonly URI_STD: 0;
+ readonly URI_NORELATIVE: 1;
+ readonly URI_NOAUTH: 2;
+ readonly ALLOWS_PROXY: 4;
+ readonly ALLOWS_PROXY_HTTP: 8;
+ readonly URI_INHERITS_SECURITY_CONTEXT: 16;
+ readonly URI_FORBIDS_AUTOMATIC_DOCUMENT_REPLACEMENT: 32;
+ readonly URI_LOADABLE_BY_ANYONE: 64;
+ readonly URI_DANGEROUS_TO_LOAD: 128;
+ readonly URI_IS_UI_RESOURCE: 256;
+ readonly URI_IS_LOCAL_FILE: 512;
+ readonly URI_LOADABLE_BY_SUBSUMERS: 1024;
+ readonly URI_DOES_NOT_RETURN_DATA: 2048;
+ readonly URI_IS_LOCAL_RESOURCE: 4096;
+ readonly URI_OPENING_EXECUTES_SCRIPT: 8192;
+ readonly URI_NON_PERSISTABLE: 16384;
+ readonly URI_CROSS_ORIGIN_NEEDS_WEBAPPS_PERM: 32768;
+ readonly URI_SYNC_LOAD_IS_OK: 65536;
+ readonly URI_IS_POTENTIALLY_TRUSTWORTHY: 131072;
+ readonly URI_FETCHABLE_BY_ANYONE: 262144;
+ readonly ORIGIN_IS_FULL_SPEC: 524288;
+ readonly URI_SCHEME_NOT_SELF_LINKABLE: 1048576;
+ readonly URI_LOADABLE_BY_EXTENSIONS: 2097152;
+ readonly URI_DISALLOW_IN_PRIVATE_CONTEXT: 4194304;
+ readonly URI_FORBIDS_COOKIE_ACCESS: 8388608;
+ readonly WEBEXT_URI_WEB_ACCESSIBLE: 16777216;
+ readonly URI_HAS_WEB_EXPOSED_ORIGIN: 33554432;
+ readonly DYNAMIC_URI_FLAGS: 57016512;
+
+ readonly scheme: string;
+ newChannel(aURI: nsIURI, aLoadinfo: nsILoadInfo): nsIChannel;
+ allowPort(port: i32, scheme: string): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProtocolProxyCallback.idl
+
+interface nsIProtocolProxyCallback extends nsISupports {
+ onProxyAvailable(aRequest: nsICancelable, aChannel: nsIChannel, aProxyInfo: nsIProxyInfo, aStatus: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProtocolProxyFilter.idl
+
+interface nsIProxyProtocolFilterResult extends nsISupports {
+ onProxyFilterResult(aProxy: nsIProxyInfo): void;
+}
+
+interface nsIProtocolProxyFilter extends nsISupports {
+ applyFilter(aURI: nsIURI, aProxy: nsIProxyInfo, aCallback: nsIProxyProtocolFilterResult): void;
+}
+
+interface nsIProtocolProxyChannelFilter extends nsISupports {
+ applyFilter(aChannel: nsIChannel, aProxy: nsIProxyInfo, aCallback: nsIProxyProtocolFilterResult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProtocolProxyService.idl
+
+interface nsIProxyConfigChangedCallback extends nsISupports {
+ onProxyConfigChanged(): void;
+}
+
+interface nsIProtocolProxyService extends nsISupports {
+ readonly RESOLVE_PREFER_SOCKS_PROXY: 2;
+ readonly RESOLVE_IGNORE_URI_SCHEME: 4;
+ readonly RESOLVE_PREFER_HTTPS_PROXY: 12;
+ readonly RESOLVE_ALWAYS_TUNNEL: 16;
+ readonly PROXYCONFIG_DIRECT: 0;
+ readonly PROXYCONFIG_MANUAL: 1;
+ readonly PROXYCONFIG_PAC: 2;
+ readonly PROXYCONFIG_WPAD: 4;
+ readonly PROXYCONFIG_SYSTEM: 5;
+
+ asyncResolve(aChannelOrURI: nsISupports, aFlags: u32, aCallback: nsIProtocolProxyCallback, aMainThreadTarget?: nsISerialEventTarget): nsICancelable;
+ newProxyInfo(aType: string, aHost: string, aPort: i32, aProxyAuthorizationHeader: string, aConnectionIsolationKey: string, aFlags: u32, aFailoverTimeout: u32, aFailoverProxy: nsIProxyInfo): nsIProxyInfo;
+ newProxyInfoWithAuth(aType: string, aHost: string, aPort: i32, aUsername: string, aPassword: string, aProxyAuthorizationHeader: string, aConnectionIsolationKey: string, aFlags: u32, aFailoverTimeout: u32, aFailoverProxy: nsIProxyInfo): nsIProxyInfo;
+ getFailoverForProxy(aProxyInfo: nsIProxyInfo, aURI: nsIURI, aReason: nsresult): nsIProxyInfo;
+ registerFilter(aFilter: nsIProtocolProxyFilter, aPosition: u32): void;
+ registerChannelFilter(aFilter: nsIProtocolProxyChannelFilter, aPosition: u32): void;
+ unregisterFilter(aFilter: nsIProtocolProxyFilter): void;
+ unregisterChannelFilter(aFilter: nsIProtocolProxyChannelFilter): void;
+ addProxyConfigCallback(aCallback: nsIProxyConfigChangedCallback): void;
+ removeProxyConfigCallback(aCallback: nsIProxyConfigChangedCallback): void;
+ notifyProxyConfigChangedInternal(): void;
+ readonly proxyConfigType: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProtocolProxyService2.idl
+
+interface nsIProtocolProxyService2 extends nsIProtocolProxyService {
+ reloadPAC(): void;
+ asyncResolve2(aChannel: nsIChannel, aFlags: u32, aCallback: nsIProtocolProxyCallback, aMainThreadTarget?: nsISerialEventTarget): nsICancelable;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProxiedChannel.idl
+
+interface nsIProxiedChannel extends nsISupports {
+ readonly proxyInfo: nsIProxyInfo;
+ readonly httpProxyConnectResponseCode: i32;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProxiedProtocolHandler.idl
+
+interface nsIProxiedProtocolHandler extends nsIProtocolHandler {
+ newProxiedChannel(uri: nsIURI, proxyInfo: nsIProxyInfo, proxyResolveFlags: u32, proxyURI: nsIURI, aLoadInfo: nsILoadInfo): nsIChannel;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProxyInfo.idl
+
+interface nsIProxyInfo extends nsISupports {
+ readonly TRANSPARENT_PROXY_RESOLVES_HOST: 1;
+
+ readonly host: string;
+ readonly port: i32;
+ readonly type: string;
+ readonly flags: u32;
+ readonly resolveFlags: u32;
+ readonly username: string;
+ readonly password: string;
+ readonly failoverTimeout: u32;
+ failoverProxy: nsIProxyInfo;
+ sourceId: string;
+ readonly proxyAuthorizationHeader: string;
+ readonly connectionIsolationKey: string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRandomGenerator.idl
+
+interface nsIRandomGenerator extends nsISupports {
+ generateRandomBytes(aLength: u32): OutParam<u8[]>;
+ generateRandomBytesInto(aBuffer: u8[], aLength: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRedirectChannelRegistrar.idl
+
+interface nsIRedirectChannelRegistrar extends nsISupports {
+ registerChannel(channel: nsIChannel, id: u64): void;
+ linkChannels(id: u64, channel: nsIParentChannel): nsIChannel;
+ getRegisteredChannel(id: u64): nsIChannel;
+ getParentChannel(id: u64): nsIParentChannel;
+ deregisterChannels(id: u64): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRedirectHistoryEntry.idl
+
+interface nsIRedirectHistoryEntry extends nsISupports {
+ readonly principal: nsIPrincipal;
+ readonly referrerURI: nsIURI;
+ readonly remoteAddress: string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRedirectResultListener.idl
+
+interface nsIRedirectResultListener extends nsISupports {
+ onRedirectResult(status: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRequest.idl
+
+} // global
+
+declare namespace nsIRequest {
+
+enum TRRMode {
+ TRR_DEFAULT_MODE = 0,
+ TRR_DISABLED_MODE = 1,
+ TRR_FIRST_MODE = 2,
+ TRR_ONLY_MODE = 3,
+}
+
+}
+
+declare global {
+
+interface nsIRequest extends nsISupports, Enums<typeof nsIRequest.TRRMode> {
+ readonly LOAD_REQUESTMASK: 65535;
+ readonly LOAD_NORMAL: 0;
+ readonly LOAD_BACKGROUND: 1;
+ readonly LOAD_HTML_OBJECT_DATA: 2;
+ readonly LOAD_DOCUMENT_NEEDS_COOKIE: 4;
+ readonly LOAD_TRR_MASK: 24;
+ readonly LOAD_TRR_DISABLED_MODE: 8;
+ readonly LOAD_TRR_FIRST_MODE: 16;
+ readonly LOAD_TRR_ONLY_MODE: 24;
+ readonly LOAD_ANONYMOUS_ALLOW_CLIENT_CERT: 32;
+ readonly INHIBIT_CACHING: 128;
+ readonly INHIBIT_PERSISTENT_CACHING: 256;
+ readonly LOAD_BYPASS_CACHE: 512;
+ readonly LOAD_FROM_CACHE: 1024;
+ readonly VALIDATE_ALWAYS: 2048;
+ readonly VALIDATE_NEVER: 4096;
+ readonly VALIDATE_ONCE_PER_SESSION: 8192;
+ readonly LOAD_ANONYMOUS: 16384;
+ readonly LOAD_FRESH_CONNECTION: 32768;
+
+ readonly name: string;
+ isPending(): boolean;
+ readonly status: nsresult;
+ cancel(aStatus: nsresult): void;
+ suspend(): void;
+ resume(): void;
+ loadGroup: nsILoadGroup;
+ loadFlags: nsLoadFlags;
+ getTRRMode(): nsIRequest.TRRMode;
+ setTRRMode(mode: nsIRequest.TRRMode): void;
+ cancelWithReason(aStatus: nsresult, aReason: string): void;
+ canceledReason: string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRequestContext.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRequestObserver.idl
+
+interface nsIRequestObserver extends nsISupports {
+ onStartRequest(aRequest: nsIRequest): void;
+ onStopRequest(aRequest: nsIRequest, aStatusCode: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRequestObserverProxy.idl
+
+interface nsIRequestObserverProxy extends nsIRequestObserver {
+ init(observer: nsIRequestObserver, context: nsISupports): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIResumableChannel.idl
+
+interface nsIResumableChannel extends nsISupports {
+ resumeAt(startPos: u64, entityID: string): void;
+ readonly entityID: string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsISecCheckWrapChannel.idl
+
+interface nsISecCheckWrapChannel extends nsISupports {
+ readonly innerChannel: nsIChannel;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsISecureBrowserUI.idl
+
+interface nsISecureBrowserUI extends nsISupports {
+ readonly state: u32;
+ readonly isSecureContext: boolean;
+ readonly secInfo: nsITransportSecurityInfo;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsISensitiveInfoHiddenURI.idl
+
+interface nsISensitiveInfoHiddenURI extends nsISupports {
+ getSensitiveInfoHiddenSpec(): string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsISerializationHelper.idl
+
+interface nsISerializationHelper extends nsISupports {
+ serializeToString(serializable: nsISerializable): string;
+ deserializeObject(input: string): nsISupports;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIServerSocket.idl
+
+interface nsIServerSocket extends nsISupports {
+ readonly LoopbackOnly: 1;
+ readonly KeepWhenOffline: 2;
+
+ init(aPort: i32, aLoopbackOnly: boolean, aBackLog: i32): void;
+ initIPv6(aPort: i32, aLoopbackOnly: boolean, aBackLog: i32): void;
+ initDualStack(aPort: i32, aBackLog: i32): void;
+ initSpecialConnection(aPort: i32, aFlags: nsServerSocketFlag, aBackLog: i32): void;
+ initWithFilename(aPath: nsIFile, aPermissions: u32, aBacklog: i32): void;
+ initWithAbstractAddress(aName: string, aBacklog: i32): void;
+ close(): void;
+ asyncListen(aListener: nsIServerSocketListener): void;
+ readonly port: i32;
+}
+
+interface nsIServerSocketListener extends nsISupports {
+ onSocketAccepted(aServ: nsIServerSocket, aTransport: nsISocketTransport): void;
+ onStopListening(aServ: nsIServerSocket, aStatus: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsISimpleStreamListener.idl
+
+interface nsISimpleStreamListener extends nsIStreamListener {
+ init(aSink: nsIOutputStream, aObserver: nsIRequestObserver): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsISimpleURIMutator.idl
+
+interface nsISimpleURIMutator extends nsISupports {
+ setSpecAndFilterWhitespace(aSpec: string): nsIURIMutator;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsISocketFilter.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsISocketTransport.idl
+
+interface nsISocketTransport extends nsITransport {
+ readonly TIMEOUT_CONNECT: 0;
+ readonly TIMEOUT_READ_WRITE: 1;
+ readonly STATUS_RESOLVING: 4915203;
+ readonly STATUS_RESOLVED: 4915211;
+ readonly STATUS_CONNECTING_TO: 4915207;
+ readonly STATUS_CONNECTED_TO: 4915204;
+ readonly STATUS_SENDING_TO: 4915205;
+ readonly STATUS_WAITING_FOR: 4915210;
+ readonly STATUS_RECEIVING_FROM: 4915206;
+ readonly STATUS_TLS_HANDSHAKE_STARTING: 4915212;
+ readonly STATUS_TLS_HANDSHAKE_ENDED: 4915213;
+ readonly BYPASS_CACHE: 1;
+ readonly ANONYMOUS_CONNECT: 2;
+ readonly DISABLE_IPV6: 4;
+ readonly NO_PERMANENT_STORAGE: 8;
+ readonly DISABLE_IPV4: 16;
+ readonly DISABLE_RFC1918: 32;
+ readonly BE_CONSERVATIVE: 64;
+ readonly DISABLE_TRR: 128;
+ readonly REFRESH_CACHE: 256;
+ readonly RETRY_WITH_DIFFERENT_IP_FAMILY: 512;
+ readonly DONT_TRY_ECH: 1024;
+ readonly TRR_MODE_FLAGS: 6144;
+ readonly USE_IP_HINT_ADDRESS: 8192;
+ readonly ANONYMOUS_CONNECT_ALLOW_CLIENT_CERT: 16384;
+ readonly IS_RETRY: 32768;
+ readonly IS_SPECULATIVE_CONNECTION: 65536;
+
+ readonly host: string;
+ readonly port: i32;
+ originAttributes: any;
+ getScriptablePeerAddr(): nsINetAddr;
+ getScriptableSelfAddr(): nsINetAddr;
+ readonly tlsSocketControl: nsITLSSocketControl;
+ securityCallbacks: nsIInterfaceRequestor;
+ isAlive(): boolean;
+ getTimeout(aType: u32): u32;
+ setTimeout(aType: u32, aValue: u32): void;
+ setLinger(aPolarity: boolean, aTimeout: i16): void;
+ setReuseAddrPort(reuseAddrPort: boolean): void;
+ connectionFlags: u32;
+ tlsFlags: u32;
+ QoSBits: u8;
+ recvBufferSize: u32;
+ sendBufferSize: u32;
+ keepaliveEnabled: boolean;
+ setKeepaliveVals(keepaliveIdleTime: i32, keepaliveRetryInterval: i32): void;
+ readonly resetIPFamilyPreference: boolean;
+ readonly echConfigUsed: boolean;
+ setEchConfig(echConfig: string): void;
+ resolvedByTRR(): boolean;
+ readonly effectiveTRRMode: nsIRequest.TRRMode;
+ readonly trrSkipReason: nsITRRSkipReason.value;
+ readonly retryDnsIfPossible: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsISocketTransportService.idl
+
+type nsISTSShutdownObserver = Callable<{
+ observe(): void;
+}>
+
+interface nsISocketTransportService extends nsISupports {
+ createTransport(aSocketTypes: string[], aHost: string, aPort: i32, aProxyInfo: nsIProxyInfo, dnsRecord: nsIDNSRecord): nsISocketTransport;
+ createUnixDomainTransport(aPath: nsIFile): nsISocketTransport;
+ createUnixDomainAbstractAddressTransport(aName: string): nsISocketTransport;
+}
+
+interface nsIRoutedSocketTransportService extends nsISocketTransportService {
+ createRoutedTransport(aSocketTypes: string[], aHost: string, aPort: i32, aHostRoute: string, aPortRoute: i32, aProxyInfo: nsIProxyInfo, aDnsRecord: nsIDNSRecord): nsISocketTransport;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsISpeculativeConnect.idl
+
+interface nsISpeculativeConnect extends nsISupports {
+ speculativeConnect(aURI: nsIURI, aPrincipal: nsIPrincipal, aCallbacks: nsIInterfaceRequestor, aAnonymous: boolean): void;
+ speculativeConnectWithOriginAttributes(aURI: nsIURI, originAttributes: any, aCallbacks: nsIInterfaceRequestor, aAnonymous: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIStandardURL.idl
+
+interface nsIStandardURL extends nsISupports {
+ readonly URLTYPE_STANDARD: 1;
+ readonly URLTYPE_AUTHORITY: 2;
+ readonly URLTYPE_NO_AUTHORITY: 3;
+}
+
+interface nsIStandardURLMutator extends nsISupports {
+ init(aUrlType: u32, aDefaultPort: i32, aSpec: string, aOriginCharset: string, aBaseURI: nsIURI): nsIURIMutator;
+ setDefaultPort(aNewDefaultPort: i32): nsIURIMutator;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIStreamListener.idl
+
+interface nsIStreamListener extends nsIRequestObserver {
+ onDataAvailable(aRequest: nsIRequest, aInputStream: nsIInputStream, aOffset: u64, aCount: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIStreamListenerTee.idl
+
+interface nsIStreamListenerTee extends nsIThreadRetargetableStreamListener {
+ init(listener: nsIStreamListener, sink: nsIOutputStream, requestObserver?: nsIRequestObserver): void;
+ initAsync(listener: nsIStreamListener, eventTarget: nsIEventTarget, sink: nsIOutputStream, requestObserver?: nsIRequestObserver): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIStreamLoader.idl
+
+interface nsIStreamLoaderObserver extends nsISupports {
+ onStreamComplete(loader: nsIStreamLoader, ctxt: nsISupports, status: nsresult, resultLength: u32, result: u8[]): void;
+}
+
+interface nsIStreamLoader extends nsIThreadRetargetableStreamListener {
+ init(aStreamObserver: nsIStreamLoaderObserver, aRequestObserver?: nsIRequestObserver): void;
+ readonly numBytesRead: u32;
+ readonly request: nsIRequest;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIStreamTransportService.idl
+
+interface nsIStreamTransportService extends nsISupports {
+ createInputTransport(aStream: nsIInputStream, aCloseWhenDone: boolean): nsITransport;
+ InputAvailable(aStream: nsIInputStream, aCallback: nsIInputAvailableCallback): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsISyncStreamListener.idl
+
+interface nsISyncStreamListener extends nsIStreamListener {
+ readonly inputStream: nsIInputStream;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsISystemProxySettings.idl
+
+interface nsISystemProxySettings extends nsISupports {
+ readonly mainThreadOnly: boolean;
+ readonly PACURI: string;
+ getProxyForURI(testSpec: string, testScheme: string, testHost: string, testPort: i32): string;
+ readonly systemWPADSetting: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsITLSServerSocket.idl
+
+interface nsITLSServerSocket extends nsIServerSocket {
+ readonly REQUEST_NEVER: 0;
+ readonly REQUEST_FIRST_HANDSHAKE: 1;
+ readonly REQUEST_ALWAYS: 2;
+ readonly REQUIRE_FIRST_HANDSHAKE: 3;
+ readonly REQUIRE_ALWAYS: 4;
+
+ serverCert: nsIX509Cert;
+ setSessionTickets(aSessionTickets: boolean): void;
+ setRequestClientCertificate(aRequestClientCert: u32): void;
+ setVersionRange(aMinVersion: u16, aMaxVersion: u16): void;
+}
+
+interface nsITLSClientStatus extends nsISupports {
+ readonly SSL_VERSION_3: 768;
+ readonly TLS_VERSION_1: 769;
+ readonly TLS_VERSION_1_1: 770;
+ readonly TLS_VERSION_1_2: 771;
+ readonly TLS_VERSION_1_3: 772;
+ readonly TLS_VERSION_UNKNOWN: -1;
+
+ readonly peerCert: nsIX509Cert;
+ readonly tlsVersionUsed: i16;
+ readonly cipherName: string;
+ readonly keyLength: u32;
+ readonly macLength: u32;
+}
+
+interface nsITLSServerConnectionInfo extends nsISupports {
+ setSecurityObserver(observer: nsITLSServerSecurityObserver): void;
+ readonly serverSocket: nsITLSServerSocket;
+ readonly status: nsITLSClientStatus;
+}
+
+interface nsITLSServerSecurityObserver extends nsISupports {
+ onHandshakeDone(aServer: nsITLSServerSocket, aStatus: nsITLSClientStatus): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIThreadRetargetableRequest.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIThreadRetargetableStreamListener.idl
+
+interface nsIThreadRetargetableStreamListener extends nsIStreamListener {
+ checkListenerChain(): void;
+ onDataFinished(aStatusCode: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIThrottledInputChannel.idl
+
+interface nsIInputChannelThrottleQueue extends nsISupports {
+ init(aMeanBytesPerSecond: u32, aMaxBytesPerSecond: u32): void;
+ available(aRemaining: u32): u32;
+ recordRead(aBytesRead: u32): void;
+ bytesProcessed(): u64;
+ wrapStream(aInputStream: nsIInputStream): nsIAsyncInputStream;
+}
+
+interface nsIThrottledInputChannel extends nsISupports {
+ throttleQueue: nsIInputChannelThrottleQueue;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsITimedChannel.idl
+
+interface nsIServerTiming extends nsISupports {
+ readonly name: string;
+ readonly duration: double;
+ readonly description: string;
+}
+
+interface nsITimedChannel extends nsISupports {
+ timingEnabled: boolean;
+ redirectCount: u8;
+ internalRedirectCount: u8;
+ readonly channelCreationTime: PRTime;
+ readonly asyncOpenTime: PRTime;
+ readonly launchServiceWorkerStartTime: PRTime;
+ readonly launchServiceWorkerEndTime: PRTime;
+ readonly dispatchFetchEventStartTime: PRTime;
+ readonly dispatchFetchEventEndTime: PRTime;
+ readonly handleFetchEventStartTime: PRTime;
+ readonly handleFetchEventEndTime: PRTime;
+ readonly domainLookupStartTime: PRTime;
+ readonly domainLookupEndTime: PRTime;
+ readonly connectStartTime: PRTime;
+ readonly tcpConnectEndTime: PRTime;
+ readonly secureConnectionStartTime: PRTime;
+ readonly connectEndTime: PRTime;
+ readonly requestStartTime: PRTime;
+ readonly responseStartTime: PRTime;
+ readonly responseEndTime: PRTime;
+ readonly cacheReadStartTime: PRTime;
+ readonly cacheReadEndTime: PRTime;
+ readonly redirectStartTime: PRTime;
+ readonly redirectEndTime: PRTime;
+ readonly transactionPendingTime: PRTime;
+ readonly serverTiming: nsIArray;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsITraceableChannel.idl
+
+interface nsITraceableChannel extends nsISupports {
+ setNewListener(aListener: nsIStreamListener, aMustApplyContentConversion?: boolean): nsIStreamListener;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsITransport.idl
+
+interface nsITransport extends nsISupports {
+ readonly OPEN_BLOCKING: 1;
+ readonly OPEN_UNBUFFERED: 2;
+ readonly STATUS_READING: 4915208;
+ readonly STATUS_WRITING: 4915209;
+
+ openInputStream(aFlags: u32, aSegmentSize: u32, aSegmentCount: u32): nsIInputStream;
+ openOutputStream(aFlags: u32, aSegmentSize: u32, aSegmentCount: u32): nsIOutputStream;
+ close(aReason: nsresult): void;
+ setEventSink(aSink: nsITransportEventSink, aEventTarget: nsIEventTarget): void;
+}
+
+interface nsITransportEventSink extends nsISupports {
+ onTransportStatus(aTransport: nsITransport, aStatus: nsresult, aProgress: i64, aProgressMax: i64): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIUDPSocket.idl
+
+interface nsIUDPSocket extends nsISupports {
+ init(aPort: i32, aLoopbackOnly: boolean, aPrincipal: nsIPrincipal, aAddressReuse?: boolean): void;
+ init2(aAddr: string, aPort: i32, aPrincipal: nsIPrincipal, aAddressReuse?: boolean): void;
+ close(): void;
+ asyncListen(aListener: nsIUDPSocketListener): void;
+ syncListen(aListener: nsIUDPSocketSyncListener): void;
+ readonly localAddr: nsINetAddr;
+ readonly port: i32;
+ send(host: string, port: u16, data: u8[]): u32;
+ sendWithAddr(addr: nsINetAddr, data: u8[]): u32;
+ sendBinaryStream(host: string, port: u16, stream: nsIInputStream): void;
+ joinMulticast(addr: string, iface?: string): void;
+ leaveMulticast(addr: string, iface?: string): void;
+ multicastLoopback: boolean;
+ multicastInterface: string;
+}
+
+interface nsIUDPSocketListener extends nsISupports {
+ onPacketReceived(aSocket: nsIUDPSocket, aMessage: nsIUDPMessage): void;
+ onStopListening(aSocket: nsIUDPSocket, aStatus: nsresult): void;
+}
+
+interface nsIUDPMessage extends nsISupports {
+ readonly fromAddr: nsINetAddr;
+ readonly data: string;
+ readonly outputStream: nsIOutputStream;
+ readonly rawData: any;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIURI.idl
+
+interface nsIURI extends nsISupports {
+ readonly spec: string;
+ readonly prePath: string;
+ readonly scheme: string;
+ readonly userPass: string;
+ readonly username: string;
+ readonly password: string;
+ readonly hostPort: string;
+ readonly host: string;
+ readonly port: i32;
+ readonly pathQueryRef: string;
+ equals(other: nsIURI): boolean;
+ schemeIs(scheme: string): boolean;
+ resolve(relativePath: string): string;
+ readonly asciiSpec: string;
+ readonly asciiHostPort: string;
+ readonly asciiHost: string;
+ readonly ref: string;
+ equalsExceptRef(other: nsIURI): boolean;
+ readonly specIgnoringRef: string;
+ readonly hasRef: boolean;
+ readonly hasUserPass: boolean;
+ readonly filePath: string;
+ readonly query: string;
+ readonly hasQuery: boolean;
+ readonly displayHost: string;
+ readonly displayHostPort: string;
+ readonly displaySpec: string;
+ readonly displayPrePath: string;
+ mutate(): nsIURIMutator;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIURIMutator.idl
+
+interface nsIURISetSpec extends nsISupports {
+ setSpec(aSpec: string): nsIURIMutator;
+}
+
+interface nsIURISetters extends nsIURISetSpec {
+ setScheme(aScheme: string): nsIURIMutator;
+ setUserPass(aUserPass: string): nsIURIMutator;
+ setUsername(aUsername: string): nsIURIMutator;
+ setPassword(aPassword: string): nsIURIMutator;
+ setHostPort(aHostPort: string): nsIURIMutator;
+ setHost(aHost: string): nsIURIMutator;
+ setPort(aPort: i32): nsIURIMutator;
+ setPathQueryRef(aPathQueryRef: string): nsIURIMutator;
+ setRef(aRef: string): nsIURIMutator;
+ setFilePath(aFilePath: string): nsIURIMutator;
+ setQuery(aQuery: string): nsIURIMutator;
+}
+
+interface nsIURIMutator extends nsIURISetters {
+ finalize(): nsIURI;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIURIWithSpecialOrigin.idl
+
+interface nsIURIWithSpecialOrigin extends nsISupports {
+ readonly origin: nsIURI;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIURL.idl
+
+interface nsIURL extends nsIURI {
+ readonly directory: string;
+ readonly fileName: string;
+ readonly fileBaseName: string;
+ readonly fileExtension: string;
+ getCommonBaseSpec(aURIToCompare: nsIURI): string;
+ getRelativeSpec(aURIToCompare: nsIURI): string;
+}
+
+interface nsIURLMutator extends nsISupports {
+ setFileName(aFileName: string): nsIURIMutator;
+ setFileBaseName(aFileBaseName: string): nsIURIMutator;
+ setFileExtension(aFileExtension: string): nsIURIMutator;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIURLParser.idl
+
+interface nsIURLParser extends nsISupports {
+ parseURL(spec: string, specLen: i32, schemePos: OutParam<u32>, schemeLen: OutParam<i32>, authorityPos: OutParam<u32>, authorityLen: OutParam<i32>, pathPos: OutParam<u32>, pathLen: OutParam<i32>): void;
+ parseAuthority(authority: string, authorityLen: i32, usernamePos: OutParam<u32>, usernameLen: OutParam<i32>, passwordPos: OutParam<u32>, passwordLen: OutParam<i32>, hostnamePos: OutParam<u32>, hostnameLen: OutParam<i32>, port: OutParam<i32>): void;
+ parseUserInfo(userinfo: string, userinfoLen: i32, usernamePos: OutParam<u32>, usernameLen: OutParam<i32>, passwordPos: OutParam<u32>, passwordLen: OutParam<i32>): void;
+ parseServerInfo(serverinfo: string, serverinfoLen: i32, hostnamePos: OutParam<u32>, hostnameLen: OutParam<i32>, port: OutParam<i32>): void;
+ parsePath(path: string, pathLen: i32, filepathPos: OutParam<u32>, filepathLen: OutParam<i32>, queryPos: OutParam<u32>, queryLen: OutParam<i32>, refPos: OutParam<u32>, refLen: OutParam<i32>): void;
+ parseFilePath(filepath: string, filepathLen: i32, directoryPos: OutParam<u32>, directoryLen: OutParam<i32>, basenamePos: OutParam<u32>, basenameLen: OutParam<i32>, extensionPos: OutParam<u32>, extensionLen: OutParam<i32>): void;
+ parseFileName(filename: string, filenameLen: i32, basenamePos: OutParam<u32>, basenameLen: OutParam<i32>, extensionPos: OutParam<u32>, extensionLen: OutParam<i32>): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIUploadChannel.idl
+
+interface nsIUploadChannel extends nsISupports {
+ setUploadStream(aStream: nsIInputStream, aContentType: string, aContentLength: i64): void;
+ readonly uploadStream: nsIInputStream;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsIUploadChannel2.idl
+
+interface nsIUploadChannel2 extends nsISupports {
+ explicitSetUploadStream(aStream: nsIInputStream, aContentType: string, aContentLength: i64, aMethod: string, aStreamHasHeaders: boolean): void;
+ readonly uploadStreamHasHeaders: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/base/nsPISocketTransportService.idl
+
+interface nsPISocketTransportService extends nsIRoutedSocketTransportService {
+ init(): void;
+ shutdown(aXpcomShutdown: boolean): void;
+ readonly sendBufferSize: i32;
+ offline: boolean;
+ readonly keepaliveIdleTime: i32;
+ readonly keepaliveRetryInterval: i32;
+ readonly keepaliveProbeCount: i32;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/about/nsIAboutModule.idl
+
+interface nsIAboutModule extends nsISupports {
+ readonly URI_SAFE_FOR_UNTRUSTED_CONTENT: 1;
+ readonly ALLOW_SCRIPT: 2;
+ readonly HIDE_FROM_ABOUTABOUT: 4;
+ readonly ENABLE_INDEXED_DB: 8;
+ readonly URI_CAN_LOAD_IN_CHILD: 16;
+ readonly URI_MUST_LOAD_IN_CHILD: 32;
+ readonly MAKE_UNLINKABLE: 64;
+ readonly MAKE_LINKABLE: 128;
+ readonly URI_CAN_LOAD_IN_PRIVILEGEDABOUT_PROCESS: 256;
+ readonly URI_MUST_LOAD_IN_EXTENSION_PROCESS: 512;
+ readonly IS_SECURE_CHROME_UI: 1024;
+
+ newChannel(aURI: nsIURI, aLoadInfo: nsILoadInfo): nsIChannel;
+ getURIFlags(aURI: nsIURI): u32;
+ getChromeURI(aURI: nsIURI): nsIURI;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICacheEntry.idl
+
+interface nsICacheEntry extends nsISupports {
+ readonly CONTENT_TYPE_UNKNOWN: 0;
+ readonly CONTENT_TYPE_OTHER: 1;
+ readonly CONTENT_TYPE_JAVASCRIPT: 2;
+ readonly CONTENT_TYPE_IMAGE: 3;
+ readonly CONTENT_TYPE_MEDIA: 4;
+ readonly CONTENT_TYPE_STYLESHEET: 5;
+ readonly CONTENT_TYPE_WASM: 6;
+ readonly CONTENT_TYPE_LAST: 7;
+ readonly NO_EXPIRATION_TIME: 4294967295;
+
+ readonly key: string;
+ readonly cacheEntryId: u64;
+ readonly persistent: boolean;
+ readonly fetchCount: u32;
+ readonly lastFetched: u32;
+ readonly lastModified: u32;
+ readonly expirationTime: u32;
+ setExpirationTime(expirationTime: u32): void;
+ readonly onStartTime: u64;
+ readonly onStopTime: u64;
+ setNetworkTimes(onStartTime: u64, onStopTime: u64): void;
+ setContentType(contentType: u8): void;
+ forceValidFor(aSecondsToTheFuture: u32): void;
+ readonly isForcedValid: boolean;
+ markForcedValidUse(): void;
+ openInputStream(offset: i64): nsIInputStream;
+ openOutputStream(offset: i64, predictedSize: i64): nsIOutputStream;
+ securityInfo: nsITransportSecurityInfo;
+ readonly storageDataSize: u32;
+ asyncDoom(listener: nsICacheEntryDoomCallback): void;
+ getMetaDataElement(key: string): string;
+ setMetaDataElement(key: string, value: string): void;
+ visitMetaData(visitor: nsICacheEntryMetaDataVisitor): void;
+ metaDataReady(): void;
+ setValid(): void;
+ dismiss(): void;
+ readonly diskStorageSizeInKB: u32;
+ recreate(aMemoryOnly?: boolean): nsICacheEntry;
+ readonly dataSize: i64;
+ readonly altDataSize: i64;
+ readonly altDataType: string;
+ openAlternativeOutputStream(type: string, predictedSize: i64): nsIAsyncOutputStream;
+ openAlternativeInputStream(type: string): nsIInputStream;
+ readonly loadContextInfo: nsILoadContextInfo;
+ close(): void;
+ markValid(): void;
+ maybeMarkValid(): void;
+ hasWriteAccess(aWriteAllowed: boolean): boolean;
+}
+
+interface nsICacheEntryMetaDataVisitor extends nsISupports {
+ onMetaDataElement(key: string, value: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICacheEntryDoomCallback.idl
+
+interface nsICacheEntryDoomCallback extends nsISupports {
+ onCacheEntryDoomed(aResult: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICacheEntryOpenCallback.idl
+
+interface nsICacheEntryOpenCallback extends nsISupports {
+ readonly ENTRY_WANTED: 0;
+ readonly RECHECK_AFTER_WRITE_FINISHED: 1;
+ readonly ENTRY_NEEDS_REVALIDATION: 2;
+ readonly ENTRY_NOT_WANTED: 3;
+
+ onCacheEntryCheck(aEntry: nsICacheEntry): u32;
+ onCacheEntryAvailable(aEntry: nsICacheEntry, aNew: boolean, aResult: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICachePurgeLock.idl
+
+interface nsICachePurgeLock extends nsISupports {
+ lock(profileName: string): void;
+ isOtherInstanceRunning(): boolean;
+ unlock(): void;
+ getLockFile(profileName: string): nsIFile;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICacheStorage.idl
+
+interface nsICacheStorage extends nsISupports {
+ readonly OPEN_NORMALLY: 0;
+ readonly OPEN_TRUNCATE: 1;
+ readonly OPEN_READONLY: 2;
+ readonly OPEN_PRIORITY: 4;
+ readonly OPEN_BYPASS_IF_BUSY: 8;
+ readonly CHECK_MULTITHREADED: 16;
+ readonly OPEN_SECRETLY: 32;
+ readonly OPEN_INTERCEPTED: 64;
+
+ asyncOpenURI(aURI: nsIURI, aIdExtension: string, aFlags: u32, aCallback: nsICacheEntryOpenCallback): void;
+ openTruncate(aURI: nsIURI, aIdExtension: string): nsICacheEntry;
+ exists(aURI: nsIURI, aIdExtension: string): boolean;
+ getCacheIndexEntryAttrs(aURI: nsIURI, aIdExtension: string, aHasAltData: OutParam<boolean>, aSizeInKB: OutParam<u32>): void;
+ asyncDoomURI(aURI: nsIURI, aIdExtension: string, aCallback: nsICacheEntryDoomCallback): void;
+ asyncEvictStorage(aCallback: nsICacheEntryDoomCallback): void;
+ asyncVisitStorage(aVisitor: nsICacheStorageVisitor, aVisitEntries: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICacheStorageService.idl
+
+interface nsICacheStorageService extends nsISupports {
+ readonly PURGE_DISK_DATA_ONLY: 1;
+ readonly PURGE_DISK_ALL: 2;
+ readonly PURGE_EVERYTHING: 3;
+
+ memoryCacheStorage(aLoadContextInfo: nsILoadContextInfo): nsICacheStorage;
+ diskCacheStorage(aLoadContextInfo: nsILoadContextInfo): nsICacheStorage;
+ pinningCacheStorage(aLoadContextInfo: nsILoadContextInfo): nsICacheStorage;
+ clearOrigin(aPrincipal: nsIPrincipal): void;
+ clearBaseDomain(aBaseDomain: string): void;
+ clearOriginAttributes(aOriginAttributes: string): void;
+ clear(): void;
+ purgeFromMemory(aWhat: u32): void;
+ readonly ioTarget: nsIEventTarget;
+ asyncGetDiskConsumption(aObserver: nsICacheStorageConsumptionObserver): void;
+ asyncVisitAllStorages(aVisitor: nsICacheStorageVisitor, aVisitEntries: boolean): void;
+}
+
+interface nsICacheStorageConsumptionObserver extends nsISupports {
+ onNetworkCacheDiskConsumption(aDiskSize: i64): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICacheStorageVisitor.idl
+
+interface nsICacheStorageVisitor extends nsISupports {
+ onCacheStorageInfo(aEntryCount: u32, aConsumption: u64, aCapacity: u64, aDiskDirectory: nsIFile): void;
+ onCacheEntryInfo(aURI: nsIURI, aIdEnhance: string, aDataSize: i64, aAltDataSize: i64, aFetchCount: u32, aLastModifiedTime: u32, aExpirationTime: u32, aPinned: boolean, aInfo: nsILoadContextInfo): void;
+ onCacheEntryVisitCompleted(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICacheTesting.idl
+
+interface nsICacheTesting extends nsISupports {
+ suspendCacheIOThread(aLevel: u32): void;
+ resumeCacheIOThread(): void;
+ flush(aObserver: nsIObserver): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/cookie/nsICookie.idl
+
+} // global
+
+declare namespace nsICookie {
+
+enum schemeType {
+ SCHEME_UNSET = 0,
+ SCHEME_HTTP = 1,
+ SCHEME_HTTPS = 2,
+ SCHEME_FILE = 4,
+}
+
+}
+
+declare global {
+
+interface nsICookie extends nsISupports, Enums<typeof nsICookie.schemeType> {
+ readonly SAMESITE_NONE: 0;
+ readonly SAMESITE_LAX: 1;
+ readonly SAMESITE_STRICT: 2;
+
+ readonly name: string;
+ readonly value: string;
+ readonly isDomain: boolean;
+ readonly host: string;
+ readonly rawHost: string;
+ readonly path: string;
+ readonly isSecure: boolean;
+ readonly expires: u64;
+ readonly expiry: i64;
+ readonly originAttributes: any;
+ readonly isSession: boolean;
+ readonly isHttpOnly: boolean;
+ readonly creationTime: i64;
+ readonly lastAccessed: i64;
+ readonly sameSite: i32;
+ readonly schemeMap: nsICookie.schemeType;
+ readonly isPartitioned: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/cookie/nsICookieJarSettings.idl
+
+interface nsICookieJarSettings extends nsISerializable {
+ readonly cookieBehavior: u32;
+ readonly isFirstPartyIsolated: boolean;
+ readonly shouldResistFingerprinting: boolean;
+ readonly rejectThirdPartyContexts: boolean;
+ readonly limitForeignContexts: boolean;
+ readonly blockingAllThirdPartyContexts: boolean;
+ readonly blockingAllContexts: boolean;
+ partitionForeign: boolean;
+ readonly isOnContentBlockingAllowList: boolean;
+ readonly partitionKey: string;
+ readonly fingerprintingRandomizationKey: u8[];
+ cookiePermission(aPrincipal: nsIPrincipal): u32;
+ initWithURI(aURI: nsIURI, aIsPrivate: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/cookie/nsICookieManager.idl
+
+interface nsICookieManager extends nsISupports {
+ removeAll(): void;
+ readonly cookies: nsICookie[];
+ readonly sessionCookies: nsICookie[];
+ getCookieBehavior(aIsPrivate: boolean): u32;
+ remove(aHost: string, aName: string, aPath: string, aOriginAttributes: any): void;
+ add(aHost: string, aPath: string, aName: string, aValue: string, aIsSecure: boolean, aIsHttpOnly: boolean, aIsSession: boolean, aExpiry: i64, aOriginAttributes: any, aSameSite: i32, aSchemeMap: nsICookie.schemeType): void;
+ cookieExists(aHost: string, aPath: string, aName: string, aOriginAttributes: any): boolean;
+ countCookiesFromHost(aHost: string): u32;
+ getCookiesFromHost(aHost: string, aOriginAttributes: any): nsICookie[];
+ getCookiesWithOriginAttributes(aPattern: string, aHost?: string): nsICookie[];
+ removeCookiesWithOriginAttributes(aPattern: string, aHost?: string): void;
+ removeCookiesFromExactHost(aHost: string, aPattern: string): void;
+ removeAllSince(aSinceWhen: i64): Promise<any>;
+ getCookiesSince(aSinceWhen: i64): nsICookie[];
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/cookie/nsICookieNotification.idl
+
+} // global
+
+declare namespace nsICookieNotification {
+
+enum Action {
+ COOKIE_DELETED = 0,
+ COOKIE_ADDED = 1,
+ COOKIE_CHANGED = 2,
+ ALL_COOKIES_CLEARED = 3,
+ COOKIES_BATCH_DELETED = 4,
+}
+
+}
+
+declare global {
+
+interface nsICookieNotification extends nsISupports, Enums<typeof nsICookieNotification.Action> {
+ readonly action: nsICookieNotification.Action;
+ readonly cookie: nsICookie;
+ readonly baseDomain: string;
+ readonly batchDeletedCookies: nsIArray;
+ readonly browsingContextId: u64;
+ readonly browsingContext: BrowsingContext;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/cookie/nsICookiePermission.idl
+
+interface nsICookiePermission extends nsISupports {
+ readonly ACCESS_DEFAULT: 0;
+ readonly ACCESS_ALLOW: 1;
+ readonly ACCESS_DENY: 2;
+ readonly ACCESS_SESSION: 8;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/cookie/nsICookieService.idl
+
+type nsICookieTransactionCallback = Callable<{
+ callback(): void;
+}>
+
+interface nsICookieService extends nsISupports {
+ readonly BEHAVIOR_ACCEPT: 0;
+ readonly BEHAVIOR_REJECT_FOREIGN: 1;
+ readonly BEHAVIOR_REJECT: 2;
+ readonly BEHAVIOR_LIMIT_FOREIGN: 3;
+ readonly BEHAVIOR_REJECT_TRACKER: 4;
+ readonly BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN: 5;
+ readonly BEHAVIOR_LAST: 5;
+
+ getCookieStringFromDocument(aDocument: Document): string;
+ getCookieStringFromHttp(aURI: nsIURI, aChannel: nsIChannel): string;
+ setCookieStringFromDocument(aDocument: Document, aCookie: string): void;
+ setCookieStringFromHttp(aURI: nsIURI, aCookie: string, aChannel: nsIChannel): void;
+ runInTransaction(aCallback: nsICookieTransactionCallback): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/dns/nsIDNSAdditionalInfo.idl
+
+interface nsIDNSAdditionalInfo extends nsISupports {
+ readonly port: i32;
+ readonly resolverURL: string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/dns/nsIDNSByTypeRecord.idl
+
+interface nsIDNSByTypeRecord extends nsIDNSRecord {
+ readonly type: u32;
+}
+
+interface nsIDNSTXTRecord extends nsISupports {
+ getRecordsAsOneString(): string;
+}
+
+interface nsISVCParam extends nsISupports {
+ readonly type: u16;
+}
+
+interface nsISVCParamAlpn extends nsISupports {
+ readonly alpn: string[];
+}
+
+interface nsISVCParamNoDefaultAlpn extends nsISupports {
+}
+
+interface nsISVCParamPort extends nsISupports {
+ readonly port: u16;
+}
+
+interface nsISVCParamIPv4Hint extends nsISupports {
+ readonly ipv4Hint: nsINetAddr[];
+}
+
+interface nsISVCParamEchConfig extends nsISupports {
+ readonly echconfig: string;
+}
+
+interface nsISVCParamIPv6Hint extends nsISupports {
+ readonly ipv6Hint: nsINetAddr[];
+}
+
+interface nsISVCParamODoHConfig extends nsISupports {
+ readonly ODoHConfig: string;
+}
+
+interface nsISVCBRecord extends nsISupports {
+ readonly priority: u16;
+ readonly name: string;
+ readonly selectedAlpn: string;
+ readonly echConfig: string;
+ readonly ODoHConfig: string;
+ readonly hasIPHintAddress: boolean;
+ readonly values: nsISVCParam[];
+}
+
+interface nsIDNSHTTPSSVCRecord extends nsISupports {
+ readonly records: nsISVCBRecord[];
+ GetServiceModeRecord(aNoHttp2: boolean, aNoHttp3: boolean): nsISVCBRecord;
+ readonly hasIPAddresses: boolean;
+ readonly allRecordsExcluded: boolean;
+ readonly ttl: u32;
+ GetAllRecordsWithEchConfig(aNoHttp2: boolean, aNoHttp3: boolean, aAllRecordsHaveEchConfig: OutParam<boolean>, aAllRecordsInH3ExcludedList: OutParam<boolean>): nsISVCBRecord[];
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/dns/nsIDNSListener.idl
+
+interface nsIDNSListener extends nsISupports {
+ onLookupComplete(aRequest: nsICancelable, aRecord: nsIDNSRecord, aStatus: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/dns/nsIDNSRecord.idl
+
+interface nsIDNSRecord extends nsISupports {
+}
+
+interface nsIDNSAddrRecord extends nsIDNSRecord {
+ readonly canonicalName: string;
+ getScriptableNextAddr(aPort: u16): nsINetAddr;
+ getNextAddrAsString(): string;
+ hasMore(): boolean;
+ rewind(): void;
+ reportUnusable(aPort: u16): void;
+ IsTRR(): boolean;
+ resolvedInSocketProcess(): boolean;
+ readonly trrFetchDuration: double;
+ readonly trrFetchDurationNetworkOnly: double;
+ readonly effectiveTRRMode: nsIRequest.TRRMode;
+ readonly trrSkipReason: nsITRRSkipReason.value;
+ readonly ttl: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/dns/nsIDNSService.idl
+
+} // global
+
+declare namespace nsIDNSService {
+
+enum ResolveType {
+ RESOLVE_TYPE_DEFAULT = 0,
+ RESOLVE_TYPE_TXT = 16,
+ RESOLVE_TYPE_HTTPSSVC = 65,
+}
+
+enum ResolverMode {
+ MODE_NATIVEONLY = 0,
+ MODE_RESERVED1 = 1,
+ MODE_TRRFIRST = 2,
+ MODE_TRRONLY = 3,
+ MODE_RESERVED4 = 4,
+ MODE_TRROFF = 5,
+}
+
+enum DNSFlags {
+ RESOLVE_DEFAULT_FLAGS = 0,
+ RESOLVE_BYPASS_CACHE = 1,
+ RESOLVE_CANONICAL_NAME = 2,
+ RESOLVE_PRIORITY_MEDIUM = 4,
+ RESOLVE_PRIORITY_LOW = 8,
+ RESOLVE_SPECULATE = 16,
+ RESOLVE_DISABLE_IPV6 = 32,
+ RESOLVE_OFFLINE = 64,
+ RESOLVE_DISABLE_IPV4 = 128,
+ RESOLVE_ALLOW_NAME_COLLISION = 256,
+ RESOLVE_DISABLE_TRR = 512,
+ RESOLVE_REFRESH_CACHE = 1024,
+ RESOLVE_TRR_MODE_MASK = 6144,
+ RESOLVE_TRR_DISABLED_MODE = 2048,
+ RESOLVE_IGNORE_SOCKS_DNS = 8192,
+ RESOLVE_IP_HINT = 16384,
+ RESOLVE_WANT_RECORD_ON_ERROR = 65536,
+ ALL_DNSFLAGS_BITS = 131071,
+}
+
+enum ConfirmationState {
+ CONFIRM_OFF = 0,
+ CONFIRM_TRYING_OK = 1,
+ CONFIRM_OK = 2,
+ CONFIRM_FAILED = 3,
+ CONFIRM_TRYING_FAILED = 4,
+ CONFIRM_DISABLED = 5,
+}
+
+}
+
+declare global {
+
+interface nsIDNSService extends nsISupports, Enums<typeof nsIDNSService.ResolveType & typeof nsIDNSService.ResolverMode & typeof nsIDNSService.DNSFlags & typeof nsIDNSService.ConfirmationState> {
+ asyncResolve(aHostName: string, aType: nsIDNSService.ResolveType, aFlags: nsIDNSService.DNSFlags, aInfo: nsIDNSAdditionalInfo, aListener: nsIDNSListener, aListenerTarget: nsIEventTarget, aOriginAttributes?: any): nsICancelable;
+ newAdditionalInfo(aTrrURL: string, aPort: i32): nsIDNSAdditionalInfo;
+ cancelAsyncResolve(aHostName: string, aType: nsIDNSService.ResolveType, aFlags: nsIDNSService.DNSFlags, aResolver: nsIDNSAdditionalInfo, aListener: nsIDNSListener, aReason: nsresult, aOriginAttributes?: any): void;
+ resolve(aHostName: string, aFlags: nsIDNSService.DNSFlags, aOriginAttributes?: any): nsIDNSRecord;
+ clearCache(aTrrToo: boolean): void;
+ reloadParentalControlEnabled(): void;
+ setDetectedTrrURI(aURI: string): void;
+ setHeuristicDetectionResult(value: nsITRRSkipReason.value): void;
+ readonly heuristicDetectionResult: nsITRRSkipReason.value;
+ getTRRSkipReasonName(value: nsITRRSkipReason.value): string;
+ readonly lastConfirmationStatus: nsresult;
+ readonly lastConfirmationSkipReason: nsITRRSkipReason.value;
+ readonly currentTrrURI: string;
+ readonly currentTrrMode: nsIDNSService.ResolverMode;
+ readonly currentTrrConfirmationState: u32;
+ readonly myHostName: string;
+ readonly trrDomain: string;
+ readonly TRRDomainKey: string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/dns/nsIEffectiveTLDService.idl
+
+interface nsIEffectiveTLDService extends nsISupports {
+ getPublicSuffix(aURI: nsIURI): string;
+ getKnownPublicSuffix(aURI: nsIURI): string;
+ getBaseDomain(aURI: nsIURI, aAdditionalParts?: u32): string;
+ getSchemelessSite(aURI: nsIURI): string;
+ getSite(aURI: nsIURI): string;
+ getPublicSuffixFromHost(aHost: string): string;
+ getKnownPublicSuffixFromHost(aHost: string): string;
+ getBaseDomainFromHost(aHost: string, aAdditionalParts?: u32): string;
+ getNextSubDomain(aHost: string): string;
+ hasRootDomain(aInput: string, aHost: string): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/dns/nsIIDNService.idl
+
+interface nsIIDNService extends nsISupports {
+ convertUTF8toACE(input: string): string;
+ convertACEtoUTF8(input: string): string;
+ isACE(input: string): boolean;
+ convertToDisplayIDN(input: string, isASCII: OutParam<boolean>): string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/dns/nsINativeDNSResolverOverride.idl
+
+interface nsINativeDNSResolverOverride extends nsISupports {
+ addIPOverride(aHost: string, aIPLiteral: string): void;
+ addHTTPSRecordOverride(aHost: string, aData: u8[], aLength: u32): void;
+ setCnameOverride(aHost: string, aCNAME: string): void;
+ clearHostOverride(aHost: string): void;
+ clearOverrides(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/dns/nsITRRSkipReason.idl
+
+} // global
+
+declare namespace nsITRRSkipReason {
+
+enum value {
+ TRR_UNSET = 0,
+ TRR_OK = 1,
+ TRR_NO_GSERVICE = 2,
+ TRR_PARENTAL_CONTROL = 3,
+ TRR_OFF_EXPLICIT = 4,
+ TRR_REQ_MODE_DISABLED = 5,
+ TRR_MODE_NOT_ENABLED = 6,
+ TRR_FAILED = 7,
+ TRR_MODE_UNHANDLED_DEFAULT = 8,
+ TRR_MODE_UNHANDLED_DISABLED = 9,
+ TRR_DISABLED_FLAG = 10,
+ TRR_TIMEOUT = 11,
+ TRR_CHANNEL_DNS_FAIL = 12,
+ TRR_IS_OFFLINE = 13,
+ TRR_NOT_CONFIRMED = 14,
+ TRR_DID_NOT_MAKE_QUERY = 15,
+ TRR_UNKNOWN_CHANNEL_FAILURE = 16,
+ TRR_HOST_BLOCKED_TEMPORARY = 17,
+ TRR_SEND_FAILED = 18,
+ TRR_NET_RESET = 19,
+ TRR_NET_TIMEOUT = 20,
+ TRR_NET_REFUSED = 21,
+ TRR_NET_INTERRUPT = 22,
+ TRR_NET_INADEQ_SEQURITY = 23,
+ TRR_NO_ANSWERS = 24,
+ TRR_DECODE_FAILED = 25,
+ TRR_EXCLUDED = 26,
+ TRR_SERVER_RESPONSE_ERR = 27,
+ TRR_RCODE_FAIL = 28,
+ TRR_NO_CONNECTIVITY = 29,
+ TRR_NXDOMAIN = 30,
+ TRR_REQ_CANCELLED = 31,
+ ODOH_KEY_NOT_USABLE = 32,
+ ODOH_UPDATE_KEY_FAILED = 33,
+ ODOH_KEY_NOT_AVAILABLE = 34,
+ ODOH_ENCRYPTION_FAILED = 35,
+ ODOH_DECRYPTION_FAILED = 36,
+ TRR_HEURISTIC_TRIPPED_GOOGLE_SAFESEARCH = 37,
+ TRR_HEURISTIC_TRIPPED_YOUTUBE_SAFESEARCH = 38,
+ TRR_HEURISTIC_TRIPPED_ZSCALER_CANARY = 39,
+ TRR_HEURISTIC_TRIPPED_CANARY = 40,
+ TRR_HEURISTIC_TRIPPED_MODIFIED_ROOTS = 41,
+ TRR_HEURISTIC_TRIPPED_PARENTAL_CONTROLS = 42,
+ TRR_HEURISTIC_TRIPPED_THIRD_PARTY_ROOTS = 43,
+ TRR_HEURISTIC_TRIPPED_ENTERPRISE_POLICY = 44,
+ TRR_HEURISTIC_TRIPPED_VPN = 45,
+ TRR_HEURISTIC_TRIPPED_PROXY = 46,
+ TRR_HEURISTIC_TRIPPED_NRPT = 47,
+ TRR_BAD_URL = 48,
+}
+
+}
+
+declare global {
+
+interface nsITRRSkipReason extends nsISupports, Enums<typeof nsITRRSkipReason.value> {
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/dns/nsPIDNSService.idl
+
+interface nsPIDNSService extends nsIDNSService {
+ init(): void;
+ shutdown(): void;
+ prefetchEnabled: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/file/nsIFileChannel.idl
+
+interface nsIFileChannel extends nsISupports {
+ readonly file: nsIFile;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/file/nsIFileProtocolHandler.idl
+
+interface nsIFileProtocolHandler extends nsIProtocolHandler {
+ newFileURI(aFile: nsIFile): nsIURI;
+ newFileURIMutator(file: nsIFile): nsIURIMutator;
+ getURLSpecFromActualFile(file: nsIFile): string;
+ getURLSpecFromDir(file: nsIFile): string;
+ getFileFromURLSpec(url: string): nsIFile;
+ readURLFile(file: nsIFile): nsIURI;
+ readShellLink(file: nsIFile): nsIURI;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIBackgroundChannelRegistrar.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIBinaryHttp.idl
+
+interface nsIBinaryHttpRequest extends nsISupports {
+ readonly method: string;
+ readonly scheme: string;
+ readonly authority: string;
+ readonly path: string;
+ readonly headerNames: string[];
+ readonly headerValues: string[];
+ readonly content: u8[];
+}
+
+interface nsIBinaryHttpResponse extends nsISupports {
+ readonly status: u16;
+ readonly headerNames: string[];
+ readonly headerValues: string[];
+ readonly content: u8[];
+}
+
+interface nsIBinaryHttp extends nsISupports {
+ encodeRequest(request: nsIBinaryHttpRequest): u8[];
+ decodeRequest(request: u8[]): nsIBinaryHttpRequest;
+ decodeResponse(response: u8[]): nsIBinaryHttpResponse;
+ encodeResponse(response: nsIBinaryHttpResponse): u8[];
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIEarlyHintObserver.idl
+
+interface nsIEarlyHintObserver extends nsISupports {
+ earlyHint(linkHeader: string, referrerPolicy: string, cspHeader: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpActivityObserver.idl
+
+interface nsIHttpActivityObserver extends nsISupports {
+ readonly ACTIVITY_TYPE_SOCKET_TRANSPORT: 1;
+ readonly ACTIVITY_TYPE_HTTP_TRANSACTION: 2;
+ readonly ACTIVITY_TYPE_HTTP_CONNECTION: 3;
+ readonly ACTIVITY_SUBTYPE_REQUEST_HEADER: 20481;
+ readonly ACTIVITY_SUBTYPE_REQUEST_BODY_SENT: 20482;
+ readonly ACTIVITY_SUBTYPE_RESPONSE_START: 20483;
+ readonly ACTIVITY_SUBTYPE_RESPONSE_HEADER: 20484;
+ readonly ACTIVITY_SUBTYPE_RESPONSE_COMPLETE: 20485;
+ readonly ACTIVITY_SUBTYPE_TRANSACTION_CLOSE: 20486;
+ readonly ACTIVITY_SUBTYPE_PROXY_RESPONSE_HEADER: 20487;
+ readonly ACTIVITY_SUBTYPE_DNSANDSOCKET_CREATED: 20488;
+ readonly ACTIVITY_SUBTYPE_SPECULATIVE_DNSANDSOCKET_CREATED: 20489;
+ readonly ACTIVITY_SUBTYPE_ECH_SET: 20490;
+ readonly ACTIVITY_SUBTYPE_CONNECTION_CREATED: 20491;
+
+ observeActivity(aHttpChannel: nsISupports, aActivityType: u32, aActivitySubtype: u32, aTimestamp: PRTime, aExtraSizeData: u64, aExtraStringData: string): void;
+ readonly isActive: boolean;
+ observeConnectionActivity(aHost: string, aPort: i32, aSSL: boolean, aHasECH: boolean, aIsHttp3: boolean, aActivityType: u32, aActivitySubtype: u32, aTimestamp: PRTime, aExtraStringData: string): void;
+}
+
+interface nsIHttpActivityDistributor extends nsIHttpActivityObserver {
+ addObserver(aObserver: nsIHttpActivityObserver): void;
+ removeObserver(aObserver: nsIHttpActivityObserver): void;
+ observeProxyResponse: boolean;
+ observeConnection: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpAuthManager.idl
+
+interface nsIHttpAuthManager extends nsISupports {
+ getAuthIdentity(aScheme: string, aHost: string, aPort: i32, aAuthType: string, aRealm: string, aPath: string, aUserDomain: OutParam<string>, aUserName: OutParam<string>, aUserPassword: OutParam<string>, aIsPrivate?: boolean, aPrincipal?: nsIPrincipal): void;
+ setAuthIdentity(aScheme: string, aHost: string, aPort: i32, aAuthType: string, aRealm: string, aPath: string, aUserDomain: string, aUserName: string, aUserPassword: string, aIsPrivate?: boolean, aPrincipal?: nsIPrincipal): void;
+ clearAll(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpAuthenticableChannel.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpAuthenticator.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpChannel.idl
+
+interface nsIHttpChannel extends nsIIdentChannel {
+ requestMethod: string;
+ referrerInfo: nsIReferrerInfo;
+ readonly protocolVersion: string;
+ readonly transferSize: u64;
+ readonly requestSize: u64;
+ readonly decodedBodySize: u64;
+ readonly encodedBodySize: u64;
+ getRequestHeader(aHeader: string): string;
+ setRequestHeader(aHeader: string, aValue: string, aMerge: boolean): void;
+ setNewReferrerInfo(aUrl: string, aPolicy: nsIReferrerInfo.ReferrerPolicyIDL, aSendReferrer: boolean): void;
+ setEmptyRequestHeader(aHeader: string): void;
+ visitRequestHeaders(aVisitor: nsIHttpHeaderVisitor): void;
+ visitNonDefaultRequestHeaders(aVisitor: nsIHttpHeaderVisitor): void;
+ ShouldStripRequestBodyHeader(aMethod: string): boolean;
+ allowSTS: boolean;
+ redirectionLimit: u32;
+ readonly responseStatus: u32;
+ readonly responseStatusText: string;
+ readonly requestSucceeded: boolean;
+ isMainDocumentChannel: boolean;
+ getResponseHeader(header: string): string;
+ setResponseHeader(header: string, value: string, merge: boolean): void;
+ visitResponseHeaders(aVisitor: nsIHttpHeaderVisitor): void;
+ getOriginalResponseHeader(aHeader: string, aVisitor: nsIHttpHeaderVisitor): void;
+ visitOriginalResponseHeaders(aVisitor: nsIHttpHeaderVisitor): void;
+ isNoStoreResponse(): boolean;
+ isNoCacheResponse(): boolean;
+ isPrivateResponse(): boolean;
+ redirectTo(aTargetURI: nsIURI): void;
+ upgradeToSecure(): void;
+ topLevelContentWindowId: u64;
+ browserId: u64;
+ logBlockedCORSRequest(aMessage: string, aCategory: string, aIsWarning: boolean): void;
+ logMimeTypeMismatch(aMessageName: string, aWarning: boolean, aURL: string, aContentType: string): void;
+ classicScriptHintCharset: string;
+ documentCharacterSet: string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpChannelAuthProvider.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpChannelChild.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpChannelInternal.idl
+
+interface nsIHttpUpgradeListener extends nsISupports {
+ onTransportAvailable(aTransport: nsISocketTransport, aSocketIn: nsIAsyncInputStream, aSocketOut: nsIAsyncOutputStream): void;
+ onUpgradeFailed(aErrorCode: nsresult): void;
+}
+
+interface nsIHttpChannelInternal extends nsISupports {
+ readonly THIRD_PARTY_FORCE_ALLOW: 1;
+ readonly REDIRECT_MODE_FOLLOW: 0;
+ readonly REDIRECT_MODE_ERROR: 1;
+ readonly REDIRECT_MODE_MANUAL: 2;
+ readonly FETCH_CACHE_MODE_DEFAULT: 0;
+ readonly FETCH_CACHE_MODE_NO_STORE: 1;
+ readonly FETCH_CACHE_MODE_RELOAD: 2;
+ readonly FETCH_CACHE_MODE_NO_CACHE: 3;
+ readonly FETCH_CACHE_MODE_FORCE_CACHE: 4;
+ readonly FETCH_CACHE_MODE_ONLY_IF_CACHED: 5;
+
+ documentURI: nsIURI;
+ getRequestVersion(major: OutParam<u32>, minor: OutParam<u32>): void;
+ getResponseVersion(major: OutParam<u32>, minor: OutParam<u32>): void;
+ setCookie(aCookieHeader: string): void;
+ thirdPartyFlags: u32;
+ forceAllowThirdPartyCookie: boolean;
+ channelIsForDownload: boolean;
+ readonly localAddress: string;
+ readonly localPort: i32;
+ readonly remoteAddress: string;
+ readonly remotePort: i32;
+ HTTPUpgrade(aProtocolName: string, aListener: nsIHttpUpgradeListener): void;
+ setConnectOnly(): void;
+ readonly onlyConnect: boolean;
+ allowSpdy: boolean;
+ allowHttp3: boolean;
+ responseTimeoutEnabled: boolean;
+ initialRwin: u32;
+ readonly apiRedirectToURI: nsIURI;
+ allowAltSvc: boolean;
+ beConservative: boolean;
+ bypassProxy: boolean;
+ readonly isResolvedByTRR: boolean;
+ readonly effectiveTRRMode: nsIRequest.TRRMode;
+ readonly trrSkipReason: nsITRRSkipReason.value;
+ readonly isLoadedBySocketProcess: boolean;
+ isOCSP: boolean;
+ tlsFlags: u32;
+ readonly lastModifiedTime: PRTime;
+ corsIncludeCredentials: boolean;
+ redirectMode: u32;
+ fetchCacheMode: u32;
+ readonly topWindowURI: nsIURI;
+ setTopWindowURIIfUnknown(topWindowURI: nsIURI): void;
+ readonly proxyURI: nsIURI;
+ blockAuthPrompt: boolean;
+ integrityMetadata: string;
+ readonly connectionInfoHashKey: string;
+ setIPv4Disabled(): void;
+ setIPv6Disabled(): void;
+ readonly crossOriginOpenerPolicy: nsILoadInfo.CrossOriginOpenerPolicy;
+ setWaitForHTTPSSVCRecord(): void;
+ readonly supportsHTTP3: boolean;
+ readonly hasHTTPSRR: boolean;
+ setEarlyHintObserver(aObserver: nsIEarlyHintObserver): void;
+ earlyHintPreloaderId: u64;
+ readonly isProxyUsed: boolean;
+ setWebTransportSessionEventListener(aListener: WebTransportSessionEventListener): void;
+ earlyHintLinkType: u32;
+ isUserAgentHeaderModified: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpHeaderVisitor.idl
+
+type nsIHttpHeaderVisitor = Callable<{
+ visitHeader(aHeader: string, aValue: string): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpProtocolHandler.idl
+
+interface nsIHttpProtocolHandler extends nsIProxiedProtocolHandler {
+ readonly userAgent: string;
+ readonly rfpUserAgent: string;
+ readonly appName: string;
+ readonly appVersion: string;
+ readonly platform: string;
+ readonly oscpu: string;
+ readonly misc: string;
+ readonly altSvcCacheKeys: string[];
+ readonly authCacheKeys: string[];
+ EnsureHSTSDataReady(): Promise<any>;
+ clearCORSPreflightCache(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIObliviousHttp.idl
+
+interface nsIObliviousHttpClientResponse extends nsISupports {
+ decapsulate(encResponse: u8[]): u8[];
+}
+
+interface nsIObliviousHttpClientRequest extends nsISupports {
+ readonly encRequest: u8[];
+ readonly response: nsIObliviousHttpClientResponse;
+}
+
+interface nsIObliviousHttpServerResponse extends nsISupports {
+ readonly request: u8[];
+ encapsulate(response: u8[]): u8[];
+}
+
+interface nsIObliviousHttpServer extends nsISupports {
+ readonly encodedConfig: u8[];
+ decapsulate(encRequest: u8[]): nsIObliviousHttpServerResponse;
+}
+
+interface nsIObliviousHttp extends nsISupports {
+ encapsulateRequest(encodedConfig: u8[], request: u8[]): nsIObliviousHttpClientRequest;
+ server(): nsIObliviousHttpServer;
+}
+
+interface nsIObliviousHttpService extends nsISupports {
+ newChannel(relayURI: nsIURI, targetURI: nsIURI, encodedConfig: u8[]): nsIChannel;
+ getTRRSettings(relayURI: OutParam<nsIURI>, encodedConfig: OutParam<u8[]>): void;
+ clearTRRConfig(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIObliviousHttpChannel.idl
+
+interface nsIObliviousHttpChannel extends nsIHttpChannel {
+ readonly relayChannel: nsIHttpChannel;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIRaceCacheWithNetwork.idl
+
+interface nsIRaceCacheWithNetwork extends nsISupports {
+ test_triggerNetwork(timeout: i32): void;
+ test_delayCacheEntryOpeningBy(timeout: i32): void;
+ test_triggerDelayedOpenCacheEntry(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsITlsHandshakeListener.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIWellKnownOpportunisticUtils.idl
+
+interface nsIWellKnownOpportunisticUtils extends nsISupports {
+ verify(aJSON: string, aOrigin: string): void;
+ readonly valid: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/streamconv/converters/nsICompressConvStats.idl
+
+interface nsICompressConvStats extends nsISupports {
+ readonly decodedDataLength: u64;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/res/nsIResProtocolHandler.idl
+
+interface nsIResProtocolHandler extends nsISubstitutingProtocolHandler {
+ allowContentToAccess(url: nsIURI): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/res/nsISubstitutingProtocolHandler.idl
+
+interface nsISubstitutingProtocolHandler extends nsIProtocolHandler {
+ readonly ALLOW_CONTENT_ACCESS: 1;
+ readonly RESOLVE_JAR_URI: 2;
+
+ setSubstitution(root: string, baseURI: nsIURI): void;
+ setSubstitutionWithFlags(root: string, baseURI: nsIURI, flags: u32): void;
+ getSubstitution(root: string): nsIURI;
+ hasSubstitution(root: string): boolean;
+ resolveURI(resURI: nsIURI): string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/socket/nsINamedPipeService.idl
+
+interface nsINamedPipeDataObserver extends nsISupports {
+}
+
+interface nsINamedPipeService extends nsISupports {
+ isOnCurrentThread(): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/socket/nsISocketProvider.idl
+
+interface nsISocketProvider extends nsISupports {
+ readonly PROXY_RESOLVES_HOST: 1;
+ readonly ANONYMOUS_CONNECT: 2;
+ readonly NO_PERMANENT_STORAGE: 4;
+ readonly BE_CONSERVATIVE: 8;
+ readonly ANONYMOUS_CONNECT_ALLOW_CLIENT_CERT: 16;
+ readonly IS_SPECULATIVE_CONNECTION: 32;
+ readonly DONT_TRY_ECH: 1024;
+ readonly IS_RETRY: 2048;
+ readonly USED_PRIVATE_DNS: 4096;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/socket/nsISocketProviderService.idl
+
+interface nsISocketProviderService extends nsISupports {
+ getSocketProvider(socketType: string): nsISocketProvider;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/streamconv/mozITXTToHTMLConv.idl
+
+interface mozITXTToHTMLConv extends nsIStreamConverter {
+ readonly kEntities: 0;
+ readonly kURLs: 2;
+ readonly kGlyphSubstitution: 4;
+ readonly kStructPhrase: 8;
+
+ scanTXT(text: string, whattodo: u32): string;
+ scanHTML(text: string, whattodo: u32): string;
+ citeLevelTXT(line: string, logLineStart: OutParam<u32>): u32;
+ findURLInPlaintext(text: string, aLength: i32, aPos: i32, aStartPos: OutParam<i32>, aEndPos: OutParam<i32>): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/streamconv/nsIDirIndex.idl
+
+interface nsIDirIndex extends nsISupports {
+ readonly TYPE_UNKNOWN: 0;
+ readonly TYPE_DIRECTORY: 1;
+ readonly TYPE_FILE: 2;
+ readonly TYPE_SYMLINK: 3;
+
+ type: u32;
+ location: string;
+ size: i64;
+ lastModified: PRTime;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/streamconv/nsIDirIndexListener.idl
+
+interface nsIDirIndexListener extends nsISupports {
+ onIndexAvailable(aRequest: nsIRequest, aIndex: nsIDirIndex): void;
+}
+
+interface nsIDirIndexParser extends nsIStreamListener {
+ listener: nsIDirIndexListener;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/streamconv/nsIStreamConverter.idl
+
+interface nsIStreamConverter extends nsIThreadRetargetableStreamListener {
+ convert(aFromStream: nsIInputStream, aFromType: string, aToType: string, aCtxt: nsISupports): nsIInputStream;
+ asyncConvertData(aFromType: string, aToType: string, aListener: nsIStreamListener, aCtxt: nsISupports): void;
+ getConvertedType(aFromType: string, aChannel: nsIChannel): string;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/streamconv/nsIStreamConverterService.idl
+
+interface nsIStreamConverterService extends nsISupports {
+ canConvert(aFromType: string, aToType: string): boolean;
+ convertedType(aFromType: string, aChannel: nsIChannel): string;
+ convert(aFromStream: nsIInputStream, aFromType: string, aToType: string, aContext: nsISupports): nsIInputStream;
+ asyncConvertData(aFromType: string, aToType: string, aListener: nsIStreamListener, aContext: nsISupports): nsIStreamListener;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/streamconv/nsITXTToHTMLConv.idl
+
+interface nsITXTToHTMLConv extends nsIStreamConverter {
+ setTitle(text: string): void;
+ preFormatHTML(value: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/viewsource/nsIViewSourceChannel.idl
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/websocket/nsITransportProvider.idl
+
+interface nsITransportProvider extends nsISupports {
+ setListener(listener: nsIHttpUpgradeListener): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/websocket/nsIWebSocketChannel.idl
+
+interface nsIWebSocketChannel extends nsISupports {
+ readonly CLOSE_NORMAL: 1000;
+ readonly CLOSE_GOING_AWAY: 1001;
+ readonly CLOSE_PROTOCOL_ERROR: 1002;
+ readonly CLOSE_UNSUPPORTED_DATATYPE: 1003;
+ readonly CLOSE_NO_STATUS: 1005;
+ readonly CLOSE_ABNORMAL: 1006;
+ readonly CLOSE_INVALID_PAYLOAD: 1007;
+ readonly CLOSE_POLICY_VIOLATION: 1008;
+ readonly CLOSE_TOO_LARGE: 1009;
+ readonly CLOSE_EXTENSION_MISSING: 1010;
+ readonly CLOSE_INTERNAL_ERROR: 1011;
+ readonly CLOSE_TLS_FAILED: 1015;
+
+ readonly originalURI: nsIURI;
+ readonly URI: nsIURI;
+ notificationCallbacks: nsIInterfaceRequestor;
+ readonly securityInfo: nsITransportSecurityInfo;
+ loadGroup: nsILoadGroup;
+ loadInfo: nsILoadInfo;
+ protocol: string;
+ readonly extensions: string;
+ readonly httpChannelId: u64;
+ initLoadInfo(aLoadingNode: Node, aLoadingPrincipal: nsIPrincipal, aTriggeringPrincipal: nsIPrincipal, aSecurityFlags: u32, aContentPolicyType: nsContentPolicyType): void;
+ asyncOpen(aURI: nsIURI, aOrigin: string, aOriginAttributes: any, aInnerWindowID: u64, aListener: nsIWebSocketListener, aContext: nsISupports): void;
+ close(aCode: u16, aReason: string): void;
+ sendMsg(aMsg: string): void;
+ sendBinaryMsg(aMsg: string): void;
+ sendBinaryStream(aStream: nsIInputStream, length: u32): void;
+ pingInterval: u32;
+ pingTimeout: u32;
+ serial: u32;
+ setServerParameters(aProvider: nsITransportProvider, aNegotiatedExtensions: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/websocket/nsIWebSocketEventService.idl
+
+interface nsIWebSocketFrame extends nsISupports {
+ readonly OPCODE_CONTINUATION: 0;
+ readonly OPCODE_TEXT: 1;
+ readonly OPCODE_BINARY: 2;
+ readonly OPCODE_CLOSE: 8;
+ readonly OPCODE_PING: 9;
+ readonly OPCODE_PONG: 10;
+
+ readonly timeStamp: DOMHighResTimeStamp;
+ readonly finBit: boolean;
+ readonly rsvBit1: boolean;
+ readonly rsvBit2: boolean;
+ readonly rsvBit3: boolean;
+ readonly opCode: u16;
+ readonly maskBit: boolean;
+ readonly mask: u32;
+ readonly payload: string;
+}
+
+interface nsIWebSocketEventListener extends nsISupports {
+ readonly TYPE_STRING: 0;
+ readonly TYPE_BLOB: 1;
+ readonly TYPE_ARRAYBUFFER: 2;
+
+ webSocketCreated(aWebSocketSerialID: u32, aURI: string, aProtocols: string): void;
+ webSocketOpened(aWebSocketSerialID: u32, aEffectiveURI: string, aProtocols: string, aExtensions: string, aHttpChannelId: u64): void;
+ webSocketMessageAvailable(aWebSocketSerialID: u32, aMessage: string, aType: u16): void;
+ webSocketClosed(aWebSocketSerialID: u32, aWasClean: boolean, aCode: u16, aReason: string): void;
+ frameReceived(aWebSocketSerialID: u32, aFrame: nsIWebSocketFrame): void;
+ frameSent(aWebSocketSerialID: u32, aFrame: nsIWebSocketFrame): void;
+}
+
+interface nsIWebSocketEventService extends nsISupports {
+ sendMessage(aWebSocketSerialID: u32, aMessage: string): void;
+ addListener(aInnerWindowID: u64, aListener: nsIWebSocketEventListener): void;
+ removeListener(aInnerWindowID: u64, aListener: nsIWebSocketEventListener): void;
+ hasListenerFor(aInnerWindowID: u64): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/websocket/nsIWebSocketImpl.idl
+
+interface nsIWebSocketImpl extends nsISupports {
+ sendMessage(aMessage: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/websocket/nsIWebSocketListener.idl
+
+interface nsIWebSocketListener extends nsISupports {
+ onStart(aContext: nsISupports): void;
+ onStop(aContext: nsISupports, aStatusCode: nsresult): void;
+ onMessageAvailable(aContext: nsISupports, aMsg: string): void;
+ onBinaryMessageAvailable(aContext: nsISupports, aMsg: string): void;
+ onAcknowledge(aContext: nsISupports, aSize: u32): void;
+ onServerClose(aContext: nsISupports, aCode: u16, aReason: string): void;
+ OnError(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/webtransport/nsIWebTransport.idl
+
+} // global
+
+declare namespace nsIWebTransport {
+
+enum WebTransportError {
+ UNKNOWN_ERROR = 0,
+ INVALID_STATE_ERROR = 1,
+}
+
+}
+
+declare global {
+
+interface nsIWebTransport extends nsISupports, Enums<typeof nsIWebTransport.WebTransportError> {
+ asyncConnect(aURI: nsIURI, aDedicated: boolean, aServerCertHashes: nsIWebTransportHash[], aLoadingPrincipal: nsIPrincipal, aSecurityFlags: u32, aListener: WebTransportSessionEventListener): void;
+ getStats(): void;
+ closeSession(aErrorCode: u32, aReason: string): void;
+ createOutgoingBidirectionalStream(aListener: nsIWebTransportStreamCallback): void;
+ createOutgoingUnidirectionalStream(aListener: nsIWebTransportStreamCallback): void;
+ sendDatagram(aData: u8[], aTrackingId: u64): void;
+ getMaxDatagramSize(): void;
+}
+
+} // global
+
+declare namespace WebTransportSessionEventListener {
+
+enum DatagramOutcome {
+ UNKNOWN = 0,
+ DROPPED_TOO_MUCH_DATA = 1,
+ SENT = 2,
+}
+
+}
+
+declare global {
+
+interface WebTransportSessionEventListener extends nsISupports, Enums<typeof WebTransportSessionEventListener.DatagramOutcome> {
+ onSessionReady(aSessionId: u64): void;
+ onSessionClosed(aCleanly: boolean, aErrorCode: u32, aReason: string): void;
+ onIncomingBidirectionalStreamAvailable(aStream: nsIWebTransportBidirectionalStream): void;
+ onIncomingUnidirectionalStreamAvailable(aStream: nsIWebTransportReceiveStream): void;
+ onStopSending(aStreamId: u64, aError: nsresult): void;
+ onResetReceived(aStreamId: u64, aError: nsresult): void;
+ onDatagramReceived(aData: u8[]): void;
+ onMaxDatagramSize(aSize: u64): void;
+ onOutgoingDatagramOutCome(aId: u64, aOutCome: WebTransportSessionEventListener.DatagramOutcome): void;
+}
+
+interface nsIWebTransportStreamCallback extends nsISupports {
+ onBidirectionalStreamReady(aStream: nsIWebTransportBidirectionalStream): void;
+ onUnidirectionalStreamReady(aStream: nsIWebTransportSendStream): void;
+ onError(aError: u8): void;
+}
+
+interface nsIWebTransportHash extends nsISupports {
+ readonly algorithm: string;
+ readonly value: u8[];
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/protocol/webtransport/nsIWebTransportStream.idl
+
+interface nsIWebTransportSendStreamStats extends nsISupports {
+ readonly bytesSent: u64;
+ readonly bytesAcknowledged: u64;
+}
+
+interface nsIWebTransportReceiveStreamStats extends nsISupports {
+ readonly bytesReceived: u64;
+}
+
+interface nsIWebTransportStreamStatsCallback extends nsISupports {
+ onSendStatsAvailable(aStats: nsIWebTransportSendStreamStats): void;
+ onReceiveStatsAvailable(aStats: nsIWebTransportReceiveStreamStats): void;
+}
+
+interface nsIWebTransportReceiveStream extends nsISupports {
+ sendStopSending(aError: u8): void;
+ getReceiveStreamStats(aCallback: nsIWebTransportStreamStatsCallback): void;
+ readonly hasReceivedFIN: boolean;
+ readonly inputStream: nsIAsyncInputStream;
+ readonly streamId: u64;
+}
+
+interface nsIWebTransportSendStream extends nsISupports {
+ sendFin(): void;
+ reset(aErrorCode: u8): void;
+ getSendStreamStats(aCallback: nsIWebTransportStreamStatsCallback): void;
+ readonly outputStream: nsIAsyncOutputStream;
+ readonly streamId: u64;
+}
+
+interface nsIWebTransportBidirectionalStream extends nsISupports {
+ sendStopSending(aError: u8): void;
+ sendFin(): void;
+ reset(aErrorCode: u8): void;
+ readonly hasReceivedFIN: boolean;
+ readonly inputStream: nsIAsyncInputStream;
+ readonly outputStream: nsIAsyncOutputStream;
+ readonly streamId: u64;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/wifi/nsIWifiAccessPoint.idl
+
+interface nsIWifiAccessPoint extends nsISupports {
+ readonly mac: string;
+ readonly ssid: string;
+ readonly rawSSID: string;
+ readonly signal: i32;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/wifi/nsIWifiListener.idl
+
+interface nsIWifiListener extends nsISupports {
+ onChange(accessPoints: nsIWifiAccessPoint[]): void;
+ onError(error: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/wifi/nsIWifiMonitor.idl
+
+interface nsIWifiMonitor extends nsISupports {
+ startWatching(aListener: nsIWifiListener, aForcePolling: boolean): void;
+ stopWatching(aListener: nsIWifiListener): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/parentalcontrols/nsIParentalControlsService.idl
+
+interface nsIParentalControlsService extends nsISupports {
+ readonly DOWNLOAD: 1;
+ readonly INSTALL_EXTENSION: 2;
+ readonly INSTALL_APP: 3;
+ readonly BROWSE: 4;
+ readonly SHARE: 5;
+ readonly BOOKMARK: 6;
+ readonly ADD_CONTACT: 7;
+ readonly SET_IMAGE: 8;
+ readonly MODIFY_ACCOUNTS: 9;
+ readonly REMOTE_DEBUGGING: 10;
+ readonly IMPORT_SETTINGS: 11;
+ readonly PRIVATE_BROWSING: 12;
+ readonly DATA_CHOICES: 13;
+ readonly CLEAR_HISTORY: 14;
+ readonly MASTER_PASSWORD: 15;
+ readonly GUEST_BROWSING: 16;
+ readonly ADVANCED_SETTINGS: 17;
+ readonly CAMERA_MICROPHONE: 18;
+ readonly BLOCK_LIST: 19;
+ readonly TELEMETRY: 20;
+ readonly HEALTH_REPORT: 21;
+ readonly DEFAULT_THEME: 22;
+ readonly ePCLog_URIVisit: 1;
+ readonly ePCLog_FileDownload: 2;
+
+ readonly parentalControlsEnabled: boolean;
+ readonly blockFileDownloadsEnabled: boolean;
+ isAllowed(aAction: i16, aUri?: nsIURI): boolean;
+ readonly loggingEnabled: boolean;
+ log(aEntryType: i16, aFlag: boolean, aSource: nsIURI, aTarget?: nsIFile): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/media/bridge/IPeerConnection.idl
+
+interface IPeerConnectionObserver extends nsISupports {
+}
+
+interface IPeerConnection extends nsISupports {
+ readonly kHintAudio: 1;
+ readonly kHintVideo: 2;
+ readonly kActionNone: -1;
+ readonly kActionOffer: 0;
+ readonly kActionAnswer: 1;
+ readonly kActionPRAnswer: 2;
+ readonly kActionRollback: 3;
+ readonly kIceGathering: 0;
+ readonly kIceWaiting: 1;
+ readonly kIceChecking: 2;
+ readonly kIceConnected: 3;
+ readonly kIceFailed: 4;
+ readonly kNew: 0;
+ readonly kNegotiating: 1;
+ readonly kActive: 2;
+ readonly kClosing: 3;
+ readonly kClosed: 4;
+ readonly kDataChannelReliable: 0;
+ readonly kDataChannelPartialReliableRexmit: 1;
+ readonly kDataChannelPartialReliableTimed: 2;
+ readonly kNoError: 0;
+ readonly kInvalidCandidate: 2;
+ readonly kInvalidMediastreamTrack: 3;
+ readonly kInvalidState: 4;
+ readonly kInvalidSessionDescription: 5;
+ readonly kIncompatibleSessionDescription: 6;
+ readonly kIncompatibleMediaStreamTrack: 8;
+ readonly kInternalError: 9;
+ readonly kTypeError: 10;
+ readonly kOperationError: 11;
+ readonly kMaxErrorType: 11;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsICertOverrideService.idl
+
+interface nsICertOverride extends nsISupports {
+ readonly asciiHost: string;
+ readonly port: i32;
+ readonly hostPort: string;
+ readonly fingerprint: string;
+ readonly originAttributes: any;
+}
+
+interface nsICertOverrideService extends nsISupports {
+ rememberValidityOverride(aHostName: string, aPort: i32, aOriginAttributes: any, aCert: nsIX509Cert, aTemporary: boolean): void;
+ hasMatchingOverride(aHostName: string, aPort: i32, aOriginAttributes: any, aCert: nsIX509Cert, aIsTemporary: OutParam<boolean>): boolean;
+ clearValidityOverride(aHostName: string, aPort: i32, aOriginAttributes: any): void;
+ clearAllOverrides(): void;
+ getOverrides(): nsICertOverride[];
+ setDisableAllSecurityChecksAndLetAttackersInterceptMyData(aDisable: boolean): void;
+ readonly securityCheckDisabled: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsICertStorage.idl
+
+type nsICertStorageCallback = Callable<{
+ done(rv: nsresult, result: nsIVariant): void;
+}>
+
+interface nsIRevocationState extends nsISupports {
+ readonly state: i16;
+}
+
+interface nsIIssuerAndSerialRevocationState extends nsIRevocationState {
+ readonly issuer: string;
+ readonly serial: string;
+}
+
+interface nsISubjectAndPubKeyRevocationState extends nsIRevocationState {
+ readonly subject: string;
+ readonly pubKey: string;
+}
+
+interface nsICRLiteCoverage extends nsISupports {
+ readonly b64LogID: string;
+ readonly minTimestamp: u64;
+ readonly maxTimestamp: u64;
+}
+
+interface nsICertInfo extends nsISupports {
+ readonly cert: string;
+ readonly subject: string;
+ readonly trust: i16;
+}
+
+interface nsICertStorage extends nsISupports {
+ readonly DATA_TYPE_REVOCATION: 1;
+ readonly DATA_TYPE_CERTIFICATE: 2;
+ readonly DATA_TYPE_CRLITE: 3;
+ readonly DATA_TYPE_CRLITE_FILTER_FULL: 4;
+ readonly DATA_TYPE_CRLITE_FILTER_INCREMENTAL: 5;
+ readonly STATE_UNSET: 0;
+ readonly STATE_ENFORCE: 1;
+ readonly STATE_NOT_ENROLLED: 2;
+ readonly STATE_NOT_COVERED: 3;
+ readonly STATE_NO_FILTER: 4;
+ readonly TRUST_INHERIT: 0;
+ readonly TRUST_ANCHOR: 1;
+
+ hasPriorData(type: u8, callback: nsICertStorageCallback): void;
+ setRevocations(revocations: nsIRevocationState[], callback: nsICertStorageCallback): void;
+ getRevocationState(issuer: u8[], serial: u8[], subject: u8[], pubkey: u8[]): i16;
+ setFullCRLiteFilter(filter: u8[], enrolledIssuers: string[], coverage: nsICRLiteCoverage[], callback: nsICertStorageCallback): void;
+ getCRLiteRevocationState(issuer: u8[], issuerSPKI: u8[], serialNumber: u8[], timestamps: nsICRLiteTimestamp[]): i16;
+ addCRLiteStash(stash: u8[], callback: nsICertStorageCallback): void;
+ isCertRevokedByStash(issuerSPKI: u8[], serialNumber: u8[]): boolean;
+ addCerts(certs: nsICertInfo[], callback: nsICertStorageCallback): void;
+ removeCertsByHashes(hashes: string[], callback: nsICertStorageCallback): void;
+ findCertsBySubject(subject: u8[]): u8[][];
+ GetRemainingOperationCount(): i32;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsICertTree.idl
+
+interface nsICertTreeItem extends nsISupports {
+ readonly cert: nsIX509Cert;
+}
+
+interface nsICertTree extends nsITreeView {
+ loadCertsFromCache(cache: nsIX509Cert[], type: u32): void;
+ getCert(index: u32): nsIX509Cert;
+ getTreeItem(index: u32): nsICertTreeItem;
+ deleteEntryObject(index: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsICertificateDialogs.idl
+
+interface nsICertificateDialogs extends nsISupports {
+ confirmDownloadCACert(ctx: nsIInterfaceRequestor, cert: nsIX509Cert, trust: OutParam<u32>): boolean;
+ setPKCS12FilePassword(ctx: nsIInterfaceRequestor, password: OutParam<string>): boolean;
+ getPKCS12FilePassword(ctx: nsIInterfaceRequestor, password: OutParam<string>): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIClientAuthDialogService.idl
+
+type nsIClientAuthDialogCallback = Callable<{
+ certificateChosen(cert: nsIX509Cert, rememberDecision: boolean): void;
+}>
+
+interface nsIClientAuthDialogService extends nsISupports {
+ chooseCertificate(hostname: string, certArray: nsIX509Cert[], loadContext: nsILoadContext, callback: nsIClientAuthDialogCallback): void;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIClientAuthRememberService.idl
+
+interface nsIClientAuthRememberRecord extends nsISupports {
+ readonly asciiHost: string;
+ readonly dbKey: string;
+ readonly entryKey: string;
+}
+
+interface nsIClientAuthRememberService extends nsISupports {
+ forgetRememberedDecision(key: string): void;
+ getDecisions(): nsIClientAuthRememberRecord[];
+ rememberDecisionScriptable(aHostName: string, originAttributes: any, aClientCert: nsIX509Cert): void;
+ hasRememberedDecisionScriptable(aHostName: string, originAttributes: any, aCertDBKey: OutParam<string>): boolean;
+ clearRememberedDecisions(): void;
+ deleteDecisionsByHost(aHostName: string, aOriginAttributes: any): void;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIContentSignatureVerifier.idl
+
+interface nsIContentSignatureVerifier extends nsISupports {
+ readonly ContentSignatureProdRoot: 1;
+ readonly ContentSignatureStageRoot: 2;
+ readonly ContentSignatureDevRoot: 3;
+ readonly ContentSignatureLocalRoot: 4;
+
+ asyncVerifyContentSignature(aData: string, aContentSignatureHeader: string, aCertificateChain: string, aHostname: string, aTrustedRoot: AppTrustedRoot): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsICryptoHash.idl
+
+interface nsICryptoHash extends nsISupports {
+ readonly MD5: 2;
+ readonly SHA1: 3;
+ readonly SHA256: 4;
+ readonly SHA384: 5;
+ readonly SHA512: 6;
+
+ init(aAlgorithm: u32): void;
+ initWithString(aAlgorithm: string): void;
+ update(aData: u8[], aLen: u32): void;
+ updateFromStream(aStream: nsIInputStream, aLen: u32): void;
+ finish(aASCII: boolean): string;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIDataStorage.idl
+
+} // global
+
+declare namespace nsIDataStorageManager {
+
+enum DataStorage {
+ AlternateServices = 0,
+ ClientAuthRememberList = 1,
+ SiteSecurityServiceState = 2,
+}
+
+}
+
+declare global {
+
+interface nsIDataStorageManager extends nsISupports, Enums<typeof nsIDataStorageManager.DataStorage> {
+ get(dataStorage: nsIDataStorageManager.DataStorage): nsIDataStorage;
+}
+
+} // global
+
+declare namespace nsIDataStorage {
+
+enum DataType {
+ Persistent = 0,
+ Private = 1,
+}
+
+}
+
+declare global {
+
+interface nsIDataStorage extends nsISupports, Enums<typeof nsIDataStorage.DataType> {
+ get(key: string, type: nsIDataStorage.DataType): string;
+ put(key: string, value: string, type: nsIDataStorage.DataType): void;
+ remove(key: string, type: nsIDataStorage.DataType): void;
+ clear(): void;
+ isReady(): boolean;
+ getAll(): nsIDataStorageItem[];
+}
+
+interface nsIDataStorageItem extends nsISupports {
+ readonly key: string;
+ readonly value: string;
+ readonly type: nsIDataStorage.DataType;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsINSSComponent.idl
+
+interface nsINSSComponent extends nsISupports {
+ getEnterpriseRoots(): u8[][];
+ getEnterpriseRootsPEM(): string;
+ getEnterpriseIntermediates(): u8[][];
+ getEnterpriseIntermediatesPEM(): string;
+ addEnterpriseIntermediate(intermediateBytes: u8[]): void;
+ clearSSLExternalAndInternalSessionCache(): void;
+ asyncClearSSLExternalAndInternalSessionCache(): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsINSSErrorsService.idl
+
+interface nsINSSErrorsService extends nsISupports {
+ readonly ERROR_CLASS_SSL_PROTOCOL: 1;
+ readonly ERROR_CLASS_BAD_CERT: 2;
+ readonly NSS_SEC_ERROR_BASE: -8192;
+ readonly NSS_SEC_ERROR_LIMIT: -7192;
+ readonly NSS_SSL_ERROR_BASE: -12288;
+ readonly NSS_SSL_ERROR_LIMIT: -11288;
+ readonly MOZILLA_PKIX_ERROR_BASE: -16384;
+ readonly MOZILLA_PKIX_ERROR_LIMIT: -15384;
+
+ isNSSErrorCode(aNSPRCode: i32): boolean;
+ getXPCOMFromNSSError(aNSPRCode: i32): nsresult;
+ getErrorMessage(aXPCOMErrorCode: nsresult): string;
+ getErrorClass(aXPCOMErrorCode: nsresult): u32;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsINSSVersion.idl
+
+interface nsINSSVersion extends nsISupports {
+ readonly NSPR_MinVersion: string;
+ readonly NSS_MinVersion: string;
+ readonly NSSUTIL_MinVersion: string;
+ readonly NSSSSL_MinVersion: string;
+ readonly NSSSMIME_MinVersion: string;
+ readonly NSPR_Version: string;
+ readonly NSS_Version: string;
+ readonly NSSUTIL_Version: string;
+ readonly NSSSSL_Version: string;
+ readonly NSSSMIME_Version: string;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIOSKeyStore.idl
+
+interface nsIOSKeyStore extends nsISupports {
+ asyncGenerateSecret(label: string): Promise<any>;
+ asyncSecretAvailable(label: string): Promise<any>;
+ asyncRecoverSecret(label: string, recoveryPhrase: string): Promise<any>;
+ asyncDeleteSecret(label: string): Promise<any>;
+ asyncEncryptBytes(label: string, inBytes: u8[]): Promise<any>;
+ asyncDecryptBytes(label: string, encryptedBase64Text: string): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIOSReauthenticator.idl
+
+interface nsIOSReauthenticator extends nsISupports {
+ asyncReauthenticateUser(prompt: string, caption: string, parentWindow: mozIDOMWindow): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIPK11Token.idl
+
+interface nsIPK11Token extends nsISupports {
+ readonly tokenName: string;
+ readonly isInternalKeyToken: boolean;
+ readonly tokenManID: string;
+ readonly tokenHWVersion: string;
+ readonly tokenFWVersion: string;
+ readonly tokenSerialNumber: string;
+ isLoggedIn(): boolean;
+ login(force: boolean): void;
+ logoutSimple(): void;
+ logoutAndDropAuthenticatedResources(): void;
+ needsLogin(): boolean;
+ readonly needsUserInit: boolean;
+ reset(): void;
+ checkPassword(password: string): boolean;
+ initPassword(initialPassword: string): void;
+ changePassword(oldPassword: string, newPassword: string): void;
+ readonly hasPassword: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIPK11TokenDB.idl
+
+interface nsIPK11TokenDB extends nsISupports {
+ getInternalKeyToken(): nsIPK11Token;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIPKCS11Module.idl
+
+interface nsIPKCS11Module extends nsISupports {
+ readonly name: string;
+ readonly libName: string;
+ listSlots(): nsISimpleEnumerator;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIPKCS11ModuleDB.idl
+
+interface nsIPKCS11ModuleDB extends nsISupports {
+ deleteModule(moduleName: string): void;
+ addModule(moduleName: string, libraryFullPath: string, cryptoMechanismFlags: i32, cipherFlags: i32): void;
+ listModules(): nsISimpleEnumerator;
+ readonly canToggleFIPS: boolean;
+ toggleFIPSMode(): void;
+ readonly isFIPSEnabled: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIPKCS11Slot.idl
+
+interface nsIPKCS11Slot extends nsISupports {
+ readonly SLOT_DISABLED: 0;
+ readonly SLOT_NOT_PRESENT: 1;
+ readonly SLOT_UNINITIALIZED: 2;
+ readonly SLOT_NOT_LOGGED_IN: 3;
+ readonly SLOT_LOGGED_IN: 4;
+ readonly SLOT_READY: 5;
+
+ readonly name: string;
+ readonly desc: string;
+ readonly manID: string;
+ readonly HWVersion: string;
+ readonly FWVersion: string;
+ readonly status: u32;
+ getToken(): nsIPK11Token;
+ readonly tokenName: string;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIPublicKeyPinningService.idl
+
+interface nsIPublicKeyPinningService extends nsISupports {
+ hostHasPins(aURI: nsIURI): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsISecretDecoderRing.idl
+
+interface nsISecretDecoderRing extends nsISupports {
+ encryptString(text: string): string;
+ asyncEncryptStrings(plaintexts: string[]): Promise<any>;
+ decryptString(encryptedBase64Text: string): string;
+ asyncDecryptStrings(encryptedStrings: string[]): Promise<any>;
+ changePassword(): void;
+ logout(): void;
+ logoutAndTeardown(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsISecurityUITelemetry.idl
+
+interface nsISecurityUITelemetry extends nsISupports {
+ readonly WARNING_ADDON_ASKING_PREVENTED: 1;
+ readonly WARNING_ADDON_ASKING_PREVENTED_CLICK_THROUGH: 2;
+ readonly WARNING_CONFIRM_ADDON_INSTALL: 3;
+ readonly WARNING_CONFIRM_ADDON_INSTALL_CLICK_THROUGH: 4;
+ readonly WARNING_CONFIRM_POST_TO_INSECURE_FROM_SECURE: 9;
+ readonly WARNING_CONFIRM_POST_TO_INSECURE_FROM_SECURE_CLICK_THROUGH: 10;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsISiteSecurityService.idl
+
+} // global
+
+declare namespace nsISiteSecurityService {
+
+enum ResetStateBy {
+ ExactDomain = 0,
+ RootDomain = 1,
+ BaseDomain = 2,
+}
+
+}
+
+declare global {
+
+interface nsISiteSecurityService extends nsISupports, Enums<typeof nsISiteSecurityService.ResetStateBy> {
+ readonly Success: 0;
+ readonly ERROR_UNKNOWN: 1;
+ readonly ERROR_COULD_NOT_PARSE_HEADER: 3;
+ readonly ERROR_NO_MAX_AGE: 4;
+ readonly ERROR_MULTIPLE_MAX_AGES: 5;
+ readonly ERROR_INVALID_MAX_AGE: 6;
+ readonly ERROR_MULTIPLE_INCLUDE_SUBDOMAINS: 7;
+ readonly ERROR_INVALID_INCLUDE_SUBDOMAINS: 8;
+ readonly ERROR_COULD_NOT_SAVE_STATE: 13;
+
+ processHeader(aSourceURI: nsIURI, aHeader: string, aOriginAttributes?: any, aMaxAge?: OutParam<u64>, aIncludeSubdomains?: OutParam<boolean>, aFailureResult?: OutParam<u32>): void;
+ resetState(aURI: nsIURI, aOriginAttributes?: any, aScope?: nsISiteSecurityService.ResetStateBy): void;
+ isSecureURI(aURI: nsIURI, aOriginAttributes?: any): boolean;
+ clearAll(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsITLSSocketControl.idl
+
+interface nsITLSSocketControl extends nsISupports {
+ readonly KEY_EXCHANGE_UNKNOWN: -1;
+ readonly SSL_VERSION_3: 768;
+ readonly TLS_VERSION_1: 769;
+ readonly TLS_VERSION_1_1: 770;
+ readonly TLS_VERSION_1_2: 771;
+ readonly TLS_VERSION_1_3: 772;
+ readonly SSL_VERSION_UNKNOWN: -1;
+ readonly SSL_MAC_UNKNOWN: -1;
+ readonly SSL_MAC_NULL: 0;
+ readonly SSL_MAC_MD5: 1;
+ readonly SSL_MAC_SHA: 2;
+ readonly SSL_HMAC_MD5: 3;
+ readonly SSL_HMAC_SHA: 4;
+ readonly SSL_HMAC_SHA256: 5;
+ readonly SSL_MAC_AEAD: 6;
+
+ proxyStartSSL(): void;
+ StartTLS(): void;
+ getAlpnEarlySelection(): string;
+ readonly earlyDataAccepted: boolean;
+ driveHandshake(): void;
+ joinConnection(npnProtocol: string, hostname: string, port: i32): boolean;
+ testJoinConnection(npnProtocol: string, hostname: string, port: i32): boolean;
+ isAcceptableForHost(hostname: string): boolean;
+ readonly KEAUsed: i16;
+ readonly KEAKeyBits: u32;
+ readonly providerFlags: u32;
+ readonly SSLVersionUsed: i16;
+ readonly SSLVersionOffered: i16;
+ readonly MACAlgorithmUsed: i16;
+ readonly clientCertSent: boolean;
+ readonly failedVerification: boolean;
+ esniTxt: string;
+ echConfig: string;
+ readonly retryEchConfig: string;
+ readonly peerId: string;
+ readonly securityInfo: nsITransportSecurityInfo;
+ asyncGetSecurityInfo(): Promise<any>;
+ claim(): void;
+ browserId: u64;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsITokenPasswordDialogs.idl
+
+interface nsITokenPasswordDialogs extends nsISupports {
+ setPassword(ctx: nsIInterfaceRequestor, token: nsIPK11Token): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsITransportSecurityInfo.idl
+
+} // global
+
+declare namespace nsITransportSecurityInfo {
+
+enum OverridableErrorCategory {
+ ERROR_UNSET = 0,
+ ERROR_TRUST = 1,
+ ERROR_DOMAIN = 2,
+ ERROR_TIME = 3,
+}
+
+}
+
+declare global {
+
+interface nsITransportSecurityInfo extends nsISupports, Enums<typeof nsITransportSecurityInfo.OverridableErrorCategory> {
+ readonly SSL_VERSION_3: 0;
+ readonly TLS_VERSION_1: 1;
+ readonly TLS_VERSION_1_1: 2;
+ readonly TLS_VERSION_1_2: 3;
+ readonly TLS_VERSION_1_3: 4;
+ readonly CERTIFICATE_TRANSPARENCY_NOT_APPLICABLE: 0;
+ readonly CERTIFICATE_TRANSPARENCY_POLICY_COMPLIANT: 5;
+ readonly CERTIFICATE_TRANSPARENCY_POLICY_NOT_ENOUGH_SCTS: 6;
+ readonly CERTIFICATE_TRANSPARENCY_POLICY_NOT_DIVERSE_SCTS: 7;
+
+ readonly securityState: u32;
+ readonly errorCode: i32;
+ readonly errorCodeString: string;
+ readonly failedCertChain: nsIX509Cert[];
+ readonly serverCert: nsIX509Cert;
+ readonly succeededCertChain: nsIX509Cert[];
+ readonly cipherName: string;
+ readonly keyLength: u32;
+ readonly secretKeyLength: u32;
+ readonly keaGroupName: string;
+ readonly signatureSchemeName: string;
+ readonly protocolVersion: u16;
+ readonly certificateTransparencyStatus: u16;
+ readonly isAcceptedEch: boolean;
+ readonly isDelegatedCredential: boolean;
+ readonly overridableErrorCategory: nsITransportSecurityInfo.OverridableErrorCategory;
+ readonly madeOCSPRequests: boolean;
+ readonly usedPrivateDNS: boolean;
+ readonly isExtendedValidation: boolean;
+ toString(): string;
+ readonly negotiatedNPN: string;
+ readonly resumed: boolean;
+ readonly isBuiltCertChainRootBuiltInRoot: boolean;
+ readonly peerId: string;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIX509Cert.idl
+
+interface nsIX509Cert extends nsISupports {
+ readonly UNKNOWN_CERT: 0;
+ readonly CA_CERT: 1;
+ readonly USER_CERT: 2;
+ readonly EMAIL_CERT: 4;
+ readonly SERVER_CERT: 8;
+ readonly ANY_CERT: 65535;
+
+ readonly emailAddress: string;
+ getEmailAddresses(): string[];
+ containsEmailAddress(aEmailAddress: string): boolean;
+ readonly subjectName: string;
+ readonly commonName: string;
+ readonly organization: string;
+ readonly organizationalUnit: string;
+ readonly sha256Fingerprint: string;
+ readonly sha1Fingerprint: string;
+ readonly tokenName: string;
+ readonly issuerName: string;
+ readonly serialNumber: string;
+ readonly issuerCommonName: string;
+ readonly issuerOrganization: string;
+ readonly issuerOrganizationUnit: string;
+ readonly validity: nsIX509CertValidity;
+ readonly dbKey: string;
+ readonly displayName: string;
+ readonly certType: u32;
+ getRawDER(): u8[];
+ getBase64DERString(): string;
+ readonly sha256SubjectPublicKeyInfoDigest: string;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIX509CertDB.idl
+
+} // global
+
+declare namespace nsIAppSignatureInfo {
+
+enum SignatureAlgorithm {
+ PKCS7_WITH_SHA1 = 0,
+ PKCS7_WITH_SHA256 = 1,
+ COSE_WITH_SHA256 = 2,
+}
+
+}
+
+declare global {
+
+interface nsIAppSignatureInfo extends nsISupports, Enums<typeof nsIAppSignatureInfo.SignatureAlgorithm> {
+ readonly signerCert: nsIX509Cert;
+ readonly signatureAlgorithm: nsIAppSignatureInfo.SignatureAlgorithm;
+}
+
+type nsIOpenSignedAppFileCallback = Callable<{
+ openSignedAppFileFinished(rv: nsresult, aZipReader: nsIZipReader, aSignatureInfos: nsIAppSignatureInfo[]): void;
+}>
+
+type nsIAsyncBoolCallback = Callable<{
+ onResult(result: boolean): void;
+}>
+
+type nsICertVerificationCallback = Callable<{
+ verifyCertFinished(aPRErrorCode: i32, aVerifiedChain: nsIX509Cert[], aHasEVPolicy: boolean): void;
+}>
+
+interface nsIX509CertDB extends nsISupports {
+ readonly UNTRUSTED: 0;
+ readonly TRUSTED_SSL: 1;
+ readonly TRUSTED_EMAIL: 2;
+ readonly Success: 0;
+ readonly ERROR_UNKNOWN: 1;
+ readonly ERROR_PKCS12_NOSMARTCARD_EXPORT: 2;
+ readonly ERROR_PKCS12_RESTORE_FAILED: 3;
+ readonly ERROR_PKCS12_BACKUP_FAILED: 4;
+ readonly ERROR_PKCS12_CERT_COLLISION: 5;
+ readonly ERROR_BAD_PASSWORD: 6;
+ readonly ERROR_DECODE_ERROR: 7;
+ readonly ERROR_PKCS12_DUPLICATE_DATA: 8;
+ readonly AppXPCShellRoot: 6;
+ readonly AddonsPublicRoot: 7;
+ readonly AddonsStageRoot: 8;
+ readonly FLAG_LOCAL_ONLY: 1;
+ readonly FLAG_MUST_BE_EV: 2;
+
+ findCertByDBKey(aDBkey: string): nsIX509Cert;
+ importCertificates(data: u8[], length: u32, type: u32, ctx: nsIInterfaceRequestor): void;
+ importEmailCertificate(data: u8[], length: u32, ctx: nsIInterfaceRequestor): void;
+ importUserCertificate(data: u8[], length: u32, ctx: nsIInterfaceRequestor): void;
+ deleteCertificate(aCert: nsIX509Cert): void;
+ setCertTrust(cert: nsIX509Cert, type: u32, trust: u32): void;
+ setCertTrustFromString(cert: nsIX509Cert, trustString: string): void;
+ isCertTrusted(cert: nsIX509Cert, certType: u32, trustType: u32): boolean;
+ importCertsFromFile(aFile: nsIFile, aType: u32): void;
+ importPKCS12File(aFile: nsIFile, aPassword: string): u32;
+ exportPKCS12File(aFile: nsIFile, aCerts: nsIX509Cert[], aPassword: string): u32;
+ constructX509FromBase64(base64: string): nsIX509Cert;
+ constructX509(certDER: u8[]): nsIX509Cert;
+ openSignedAppFileAsync(trustedRoot: AppTrustedRoot, aJarFile: nsIFile, callback: nsIOpenSignedAppFileCallback): void;
+ addCert(certDER: string, trust: string): nsIX509Cert;
+ asyncVerifyCertAtTime(aCert: nsIX509Cert, aUsage: i64, aFlags: u32, aHostname: string, aTime: u64, aCallback: nsICertVerificationCallback): void;
+ clearOCSPCache(): void;
+ addCertFromBase64(base64: string, trust: string): nsIX509Cert;
+ getCerts(): nsIX509Cert[];
+ asPKCS7Blob(certList: nsIX509Cert[]): string;
+ asyncHasThirdPartyRoots(callback: nsIAsyncBoolCallback): void;
+}
+
+// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIX509CertValidity.idl
+
+interface nsIX509CertValidity extends nsISupports {
+ readonly notBefore: PRTime;
+ readonly notAfter: PRTime;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/places/mozIAsyncHistory.idl
+
+interface mozIVisitInfo extends nsISupports {
+ readonly visitId: i64;
+ readonly visitDate: PRTime;
+ readonly transitionType: u32;
+ readonly referrerURI: nsIURI;
+}
+
+interface mozIPlaceInfo extends nsISupports {
+ readonly placeId: i64;
+ readonly guid: string;
+ readonly uri: nsIURI;
+ readonly title: string;
+ readonly frecency: i64;
+ readonly visits: any;
+}
+
+interface mozIVisitInfoCallback extends nsISupports {
+ handleError(aResultCode: nsresult, aPlaceInfo: mozIPlaceInfo): void;
+ handleResult(aPlaceInfo: mozIPlaceInfo): void;
+ handleCompletion(aUpdatedItems: u32): void;
+ readonly ignoreResults: boolean;
+ readonly ignoreErrors: boolean;
+}
+
+type mozIVisitedStatusCallback = Callable<{
+ isVisited(aURI: nsIURI, aVisitedStatus: boolean): void;
+}>
+
+interface mozIAsyncHistory extends nsISupports {
+ updatePlaces(aPlaceInfo: any, aCallback?: mozIVisitInfoCallback): void;
+ isURIVisited(aURI: nsIURI, aCallback: mozIVisitedStatusCallback): void;
+ clearCache(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/places/mozIPlacesAutoComplete.idl
+
+interface mozIPlacesAutoComplete extends nsISupports {
+ readonly MATCH_ANYWHERE: 0;
+ readonly MATCH_BOUNDARY_ANYWHERE: 1;
+ readonly MATCH_BOUNDARY: 2;
+ readonly MATCH_BEGINNING: 3;
+ readonly MATCH_ANYWHERE_UNMODIFIED: 4;
+ readonly MATCH_BEGINNING_CASE_SENSITIVE: 5;
+ readonly BEHAVIOR_HISTORY: 1;
+ readonly BEHAVIOR_BOOKMARK: 2;
+ readonly BEHAVIOR_TAG: 4;
+ readonly BEHAVIOR_TITLE: 8;
+ readonly BEHAVIOR_URL: 16;
+ readonly BEHAVIOR_TYPED: 32;
+ readonly BEHAVIOR_JAVASCRIPT: 64;
+ readonly BEHAVIOR_OPENPAGE: 128;
+ readonly BEHAVIOR_RESTRICT: 256;
+ readonly BEHAVIOR_SEARCH: 512;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/places/mozIPlacesPendingOperation.idl
+
+interface mozIPlacesPendingOperation extends nsISupports {
+ cancel(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/places/mozISyncedBookmarksMirror.idl
+
+interface mozISyncedBookmarksMirrorProgressListener extends nsISupports {
+ onFetchLocalTree(took: i64, itemCount: i64, deletedCount: i64, problems: nsIPropertyBag): void;
+ onFetchRemoteTree(took: i64, itemCount: i64, deletedCount: i64, problems: nsIPropertyBag): void;
+ onMerge(took: i64, counts: nsIPropertyBag): void;
+ onApply(took: i64): void;
+}
+
+interface mozISyncedBookmarksMirrorCallback extends nsISupports {
+ handleSuccess(result: boolean): void;
+ handleError(code: nsresult, message: string): void;
+}
+
+interface mozISyncedBookmarksMirrorLogger extends nsISupports {
+ readonly LEVEL_OFF: 0;
+ readonly LEVEL_ERROR: 1;
+ readonly LEVEL_WARN: 2;
+ readonly LEVEL_DEBUG: 3;
+ readonly LEVEL_TRACE: 4;
+
+ maxLevel: i16;
+ error(message: string): void;
+ warn(message: string): void;
+ debug(message: string): void;
+ trace(message: string): void;
+}
+
+interface mozISyncedBookmarksMerger extends nsISupports {
+ readonly KIND_BOOKMARK: 1;
+ readonly KIND_QUERY: 2;
+ readonly KIND_FOLDER: 3;
+ readonly KIND_LIVEMARK: 4;
+ readonly KIND_SEPARATOR: 5;
+ readonly VALIDITY_VALID: 1;
+ readonly VALIDITY_REUPLOAD: 2;
+ readonly VALIDITY_REPLACE: 3;
+
+ db: mozIStorageConnection;
+ logger: mozIServicesLogSink;
+ merge(localTimeSeconds: i64, remoteTimeSeconds: i64, callback: mozISyncedBookmarksMirrorCallback): mozIPlacesPendingOperation;
+ reset(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/places/nsIFaviconService.idl
+
+interface nsIFaviconService extends nsISupports {
+ readonly FAVICON_LOAD_PRIVATE: 1;
+ readonly FAVICON_LOAD_NON_PRIVATE: 2;
+ readonly MAX_FAVICON_BUFFER_SIZE: 65536;
+
+ getFaviconLinkForIcon(aFaviconURI: nsIURI): nsIURI;
+ expireAllFavicons(): void;
+ setDefaultIconURIPreferredSize(aDefaultSize: u16): void;
+ preferredSizeFromURI(aURI: nsIURI): u16;
+ readonly defaultFavicon: nsIURI;
+ readonly defaultFaviconMimeType: string;
+ setAndFetchFaviconForPage(aPageURI: nsIURI, aFaviconURI: nsIURI, aForceReload: boolean, aFaviconLoadType: u32, aCallback?: nsIFaviconDataCallback, aLoadingPrincipal?: nsIPrincipal, aRequestContextID?: u64): mozIPlacesPendingOperation;
+ replaceFaviconData(aFaviconURI: nsIURI, aData: u8[], aMimeType: string, aExpiration?: PRTime): void;
+ replaceFaviconDataFromDataURL(aFaviconURI: nsIURI, aDataURL: string, aExpiration?: PRTime, aLoadingPrincipal?: nsIPrincipal): void;
+ getFaviconURLForPage(aPageURI: nsIURI, aCallback: nsIFaviconDataCallback, aPreferredWidth?: u16): void;
+ getFaviconDataForPage(aPageURI: nsIURI, aCallback: nsIFaviconDataCallback, aPreferredWidth?: u16): void;
+ copyFavicons(aFromPageURI: nsIURI, aToPageURI: nsIURI, aFaviconLoadType: u32, aCallback?: nsIFaviconDataCallback): void;
+}
+
+type nsIFaviconDataCallback = Callable<{
+ onComplete(aFaviconURI: nsIURI, aDataLen: u32, aData: u8[], aMimeType: string, aWidth: u16): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/places/nsINavBookmarksService.idl
+
+interface nsINavBookmarksService extends nsISupports {
+ readonly DEFAULT_INDEX: -1;
+ readonly TYPE_BOOKMARK: 1;
+ readonly TYPE_FOLDER: 2;
+ readonly TYPE_SEPARATOR: 3;
+ readonly TYPE_DYNAMIC_CONTAINER: 4;
+ readonly SOURCE_DEFAULT: 0;
+ readonly SOURCE_SYNC: 1;
+ readonly SOURCE_IMPORT: 2;
+ readonly SOURCE_SYNC_REPARENT_REMOVED_FOLDER_CHILDREN: 4;
+ readonly SOURCE_RESTORE: 5;
+ readonly SOURCE_RESTORE_ON_STARTUP: 6;
+ readonly SYNC_STATUS_UNKNOWN: 0;
+ readonly SYNC_STATUS_NEW: 1;
+ readonly SYNC_STATUS_NORMAL: 2;
+
+ readonly tagsFolder: i64;
+ readonly totalSyncChanges: i64;
+ insertBookmark(aParentId: i64, aURI: nsIURI, aIndex: i32, aTitle: string, aGuid?: string, aSource?: u16): i64;
+ removeItem(aItemId: i64, aSource?: u16): void;
+ createFolder(aParentFolder: i64, name: string, index: i32, aGuid?: string, aSource?: u16): i64;
+ setItemTitle(aItemId: i64, aTitle: string, aSource?: u16): void;
+ getItemTitle(aItemId: i64): string;
+ setItemLastModified(aItemId: i64, aLastModified: PRTime, aSource?: u16): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/places/nsINavHistoryService.idl
+
+interface nsINavHistoryResultNode extends nsISupports {
+ readonly RESULT_TYPE_URI: 0;
+ readonly RESULT_TYPE_QUERY: 5;
+ readonly RESULT_TYPE_FOLDER: 6;
+ readonly RESULT_TYPE_SEPARATOR: 7;
+ readonly RESULT_TYPE_FOLDER_SHORTCUT: 9;
+
+ readonly parent: nsINavHistoryContainerResultNode;
+ readonly parentResult: nsINavHistoryResult;
+ readonly uri: string;
+ readonly type: u32;
+ readonly title: string;
+ readonly accessCount: u32;
+ readonly time: PRTime;
+ readonly icon: string;
+ readonly indentLevel: i32;
+ readonly bookmarkIndex: i32;
+ readonly itemId: i64;
+ readonly dateAdded: PRTime;
+ readonly lastModified: PRTime;
+ readonly tags: string;
+ readonly pageGuid: string;
+ readonly bookmarkGuid: string;
+ readonly visitId: i64;
+ readonly visitType: u32;
+}
+
+interface nsINavHistoryContainerResultNode extends nsINavHistoryResultNode {
+ readonly STATE_CLOSED: 0;
+ readonly STATE_LOADING: 1;
+ readonly STATE_OPENED: 2;
+
+ containerOpen: boolean;
+ readonly state: u16;
+ readonly hasChildren: boolean;
+ readonly childCount: u32;
+ getChild(aIndex: u32): nsINavHistoryResultNode;
+ getChildIndex(aNode: nsINavHistoryResultNode): u32;
+}
+
+interface nsINavHistoryQueryResultNode extends nsINavHistoryContainerResultNode {
+ readonly query: nsINavHistoryQuery;
+ readonly queryOptions: nsINavHistoryQueryOptions;
+ readonly folderItemId: i64;
+ readonly targetFolderGuid: string;
+}
+
+interface nsINavHistoryResultObserver extends nsISupports {
+ readonly skipHistoryDetailsNotifications: boolean;
+ nodeInserted(aParent: nsINavHistoryContainerResultNode, aNode: nsINavHistoryResultNode, aNewIndex: u32): void;
+ nodeRemoved(aParent: nsINavHistoryContainerResultNode, aItem: nsINavHistoryResultNode, aOldIndex: u32): void;
+ nodeMoved(aNode: nsINavHistoryResultNode, aOldParent: nsINavHistoryContainerResultNode, aOldIndex: u32, aNewParent: nsINavHistoryContainerResultNode, aNewIndex: u32): void;
+ nodeTitleChanged(aNode: nsINavHistoryResultNode, aNewTitle: string): void;
+ nodeURIChanged(aNode: nsINavHistoryResultNode, aOldURI: string): void;
+ nodeIconChanged(aNode: nsINavHistoryResultNode): void;
+ nodeHistoryDetailsChanged(aNode: nsINavHistoryResultNode, aOldVisitDate: PRTime, aOldAccessCount: u32): void;
+ nodeTagsChanged(aNode: nsINavHistoryResultNode): void;
+ nodeKeywordChanged(aNode: nsINavHistoryResultNode, aNewKeyword: string): void;
+ nodeDateAddedChanged(aNode: nsINavHistoryResultNode, aNewValue: PRTime): void;
+ nodeLastModifiedChanged(aNode: nsINavHistoryResultNode, aNewValue: PRTime): void;
+ containerStateChanged(aContainerNode: nsINavHistoryContainerResultNode, aOldState: u32, aNewState: u32): void;
+ invalidateContainer(aContainerNode: nsINavHistoryContainerResultNode): void;
+ sortingChanged(sortingMode: u16): void;
+ batching(aToggleMode: boolean): void;
+ result: nsINavHistoryResult;
+}
+
+interface nsINavHistoryResult extends nsISupports {
+ sortingMode: u16;
+ suppressNotifications: boolean;
+ addObserver(aObserver: nsINavHistoryResultObserver, aOwnsWeak?: boolean): void;
+ removeObserver(aObserver: nsINavHistoryResultObserver): void;
+ readonly root: nsINavHistoryContainerResultNode;
+ onBeginUpdateBatch(): void;
+ onEndUpdateBatch(): void;
+}
+
+interface nsINavHistoryQuery extends nsISupports {
+ readonly TIME_RELATIVE_EPOCH: 0;
+ readonly TIME_RELATIVE_TODAY: 1;
+ readonly TIME_RELATIVE_NOW: 2;
+
+ beginTime: PRTime;
+ beginTimeReference: u32;
+ readonly hasBeginTime: boolean;
+ readonly absoluteBeginTime: PRTime;
+ endTime: PRTime;
+ endTimeReference: u32;
+ readonly hasEndTime: boolean;
+ readonly absoluteEndTime: PRTime;
+ searchTerms: string;
+ readonly hasSearchTerms: boolean;
+ minVisits: i32;
+ maxVisits: i32;
+ setTransitions(transitions: u32[]): void;
+ getTransitions(): u32[];
+ readonly transitionCount: u32;
+ domainIsHost: boolean;
+ domain: string;
+ readonly hasDomain: boolean;
+ uri: nsIURI;
+ readonly hasUri: boolean;
+ tags: nsIVariant;
+ tagsAreNot: boolean;
+ getParents(): string[];
+ readonly parentCount: u32;
+ setParents(aGuids: string[]): void;
+ clone(): nsINavHistoryQuery;
+}
+
+interface nsINavHistoryQueryOptions extends nsISupports {
+ readonly SORT_BY_NONE: 0;
+ readonly SORT_BY_TITLE_ASCENDING: 1;
+ readonly SORT_BY_TITLE_DESCENDING: 2;
+ readonly SORT_BY_DATE_ASCENDING: 3;
+ readonly SORT_BY_DATE_DESCENDING: 4;
+ readonly SORT_BY_URI_ASCENDING: 5;
+ readonly SORT_BY_URI_DESCENDING: 6;
+ readonly SORT_BY_VISITCOUNT_ASCENDING: 7;
+ readonly SORT_BY_VISITCOUNT_DESCENDING: 8;
+ readonly SORT_BY_DATEADDED_ASCENDING: 11;
+ readonly SORT_BY_DATEADDED_DESCENDING: 12;
+ readonly SORT_BY_LASTMODIFIED_ASCENDING: 13;
+ readonly SORT_BY_LASTMODIFIED_DESCENDING: 14;
+ readonly SORT_BY_TAGS_ASCENDING: 17;
+ readonly SORT_BY_TAGS_DESCENDING: 18;
+ readonly SORT_BY_FRECENCY_ASCENDING: 21;
+ readonly SORT_BY_FRECENCY_DESCENDING: 22;
+ readonly RESULTS_AS_URI: 0;
+ readonly RESULTS_AS_VISIT: 1;
+ readonly RESULTS_AS_DATE_QUERY: 3;
+ readonly RESULTS_AS_SITE_QUERY: 4;
+ readonly RESULTS_AS_DATE_SITE_QUERY: 5;
+ readonly RESULTS_AS_TAGS_ROOT: 6;
+ readonly RESULTS_AS_TAG_CONTENTS: 7;
+ readonly RESULTS_AS_ROOTS_QUERY: 8;
+ readonly RESULTS_AS_LEFT_PANE_QUERY: 9;
+ readonly QUERY_TYPE_HISTORY: 0;
+ readonly QUERY_TYPE_BOOKMARKS: 1;
+
+ sortingMode: u16;
+ resultType: u16;
+ excludeItems: boolean;
+ excludeQueries: boolean;
+ expandQueries: boolean;
+ includeHidden: boolean;
+ maxResults: u32;
+ queryType: u16;
+ asyncEnabled: boolean;
+ clone(): nsINavHistoryQueryOptions;
+}
+
+interface nsINavHistoryService extends nsISupports {
+ readonly DATABASE_SCHEMA_VERSION: 76;
+ readonly TRANSITION_LINK: 1;
+ readonly TRANSITION_TYPED: 2;
+ readonly TRANSITION_BOOKMARK: 3;
+ readonly TRANSITION_EMBED: 4;
+ readonly TRANSITION_REDIRECT_PERMANENT: 5;
+ readonly TRANSITION_REDIRECT_TEMPORARY: 6;
+ readonly TRANSITION_DOWNLOAD: 7;
+ readonly TRANSITION_FRAMED_LINK: 8;
+ readonly TRANSITION_RELOAD: 9;
+ readonly DATABASE_STATUS_OK: 0;
+ readonly DATABASE_STATUS_CREATE: 1;
+ readonly DATABASE_STATUS_CORRUPT: 2;
+ readonly DATABASE_STATUS_UPGRADED: 3;
+ readonly DATABASE_STATUS_LOCKED: 4;
+ readonly VISIT_SOURCE_ORGANIC: 0;
+ readonly VISIT_SOURCE_SPONSORED: 1;
+ readonly VISIT_SOURCE_BOOKMARKED: 2;
+ readonly VISIT_SOURCE_SEARCHED: 3;
+
+ readonly databaseStatus: u16;
+ markPageAsFollowedBookmark(aURI: nsIURI): void;
+ markPageAsTyped(aURI: nsIURI): void;
+ markPageAsFollowedLink(aURI: nsIURI): void;
+ canAddURI(aURI: nsIURI): boolean;
+ getNewQuery(): nsINavHistoryQuery;
+ getNewQueryOptions(): nsINavHistoryQueryOptions;
+ executeQuery(aQuery: nsINavHistoryQuery, options: nsINavHistoryQueryOptions): nsINavHistoryResult;
+ queryStringToQuery(aQueryString: string, aQuery: OutParam<nsINavHistoryQuery>, options: OutParam<nsINavHistoryQueryOptions>): void;
+ queryToQueryString(aQuery: nsINavHistoryQuery, options: nsINavHistoryQueryOptions): string;
+ readonly historyDisabled: boolean;
+ makeGuid(): string;
+ hashURL(aSpec: string, aMode?: string): u64;
+ isFrecencyDecaying: boolean;
+ shouldStartFrecencyRecalculation: boolean;
+ readonly DBConnection: mozIStorageConnection;
+ asyncExecuteLegacyQuery(aQuery: nsINavHistoryQuery, aOptions: nsINavHistoryQueryOptions, aCallback: mozIStorageStatementCallback): mozIStoragePendingStatement;
+ readonly shutdownClient: nsIAsyncShutdownClient;
+ readonly connectionShutdownClient: nsIAsyncShutdownClient;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/places/nsIPlacesPreviewsHelperService.idl
+
+interface nsIPlacesPreviewsHelperService extends nsISupports {
+ getFilePathForURL(aURL: string): string;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/places/nsITaggingService.idl
+
+interface nsITaggingService extends nsISupports {
+ tagURI(aURI: nsIURI, aTags: nsIVariant, aSource?: u16): void;
+ untagURI(aURI: nsIURI, aTags: nsIVariant, aSource?: u16): void;
+ getTagsForURI(aURI: nsIURI): string[];
+}
+
+// https://searchfox.org/mozilla-central/source/modules/libpref/nsIPrefBranch.idl
+
+interface nsIPrefBranch extends nsISupports {
+ readonly PREF_INVALID: 0;
+ readonly PREF_STRING: 32;
+ readonly PREF_INT: 64;
+ readonly PREF_BOOL: 128;
+
+ readonly root: string;
+ getPrefType(aPrefName: string): i32;
+ getBoolPref(aPrefName: string, aDefaultValue?: boolean): boolean;
+ setBoolPref(aPrefName: string, aValue: boolean): void;
+ getFloatPref(aPrefName: string, aDefaultValue?: float): float;
+ getCharPref(aPrefName: string, aDefaultValue?: string): string;
+ setCharPref(aPrefName: string, aValue: string): void;
+ getStringPref(aPrefName: string, aDefaultValue?: string): string;
+ setStringPref(aPrefName: string, aValue: string): void;
+ getIntPref(aPrefName: string, aDefaultValue?: i32): i32;
+ setIntPref(aPrefName: string, aValue: i32): void;
+ getComplexValue<T extends nsIID>(aPrefName: string, aType: T): nsQIResult<T>;
+ setComplexValue(aPrefName: string, aType: nsID, aValue: nsISupports): void;
+ clearUserPref(aPrefName: string): void;
+ lockPref(aPrefName: string): void;
+ prefHasUserValue(aPrefName: string): boolean;
+ prefHasDefaultValue(aPrefName: string): boolean;
+ prefIsLocked(aPrefName: string): boolean;
+ prefIsSanitized(aPrefName: string): boolean;
+ unlockPref(aPrefName: string): void;
+ deleteBranch(aStartingAt: string): void;
+ getChildList(aStartingAt: string): string[];
+ addObserver(aDomain: string, aObserver: nsIObserver, aHoldWeak?: boolean): void;
+ removeObserver(aDomain: string, aObserver: nsIObserver): void;
+}
+
+// https://searchfox.org/mozilla-central/source/modules/libpref/nsIPrefLocalizedString.idl
+
+interface nsIPrefLocalizedString extends nsISupportsString {
+}
+
+// https://searchfox.org/mozilla-central/source/modules/libpref/nsIPrefService.idl
+
+type nsIPrefStatsCallback = Callable<{
+ visit(prefName: string, accessCount: u32): void;
+}>
+
+interface nsIPrefObserver extends nsISupports {
+ onStringPref(kind: string, name: string, value: string, isSticky: boolean, isLocked: boolean): void;
+ onIntPref(kind: string, name: string, value: i32, isSticky: boolean, isLocked: boolean): void;
+ onBoolPref(kind: string, name: string, value: boolean, isSticky: boolean, isLocked: boolean): void;
+ onError(message: string): void;
+}
+
+interface nsIPrefService extends nsISupports {
+ resetPrefs(): void;
+ savePrefFile(aFile: nsIFile): void;
+ getBranch(aPrefRoot: string): nsIPrefBranch;
+ getDefaultBranch(aPrefRoot: string): nsIPrefBranch;
+ readonly dirty: boolean;
+ readDefaultPrefsFromFile(aFile: nsIFile): void;
+ readUserPrefsFromFile(aFile: nsIFile): void;
+ readStats(callback: nsIPrefStatsCallback): void;
+ resetStats(): void;
+ parsePrefsFromBuffer(bytes: u8[], observer: nsIPrefObserver, pathLabel?: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/modules/libpref/nsIRelativeFilePref.idl
+
+interface nsIRelativeFilePref extends nsISupports {
+ file: nsIFile;
+ relativeToKey: string;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/prefetch/nsIPrefetchService.idl
+
+interface nsIPrefetchService extends nsISupports {
+ prefetchURI(aURI: nsIURI, aReferrerInfo: nsIReferrerInfo, aSource: Node, aExplicit: boolean): void;
+ preloadURI(aURI: nsIURI, aReferrerInfo: nsIReferrerInfo, aSource: Node, aPolicyType: nsContentPolicyType): void;
+ hasMoreElements(): boolean;
+ cancelPrefetchPreloadURI(aURI: nsIURI, aSource: Node): void;
+}
+
+// https://searchfox.org/mozilla-central/source/tools/profiler/gecko/nsIProfiler.idl
+
+interface nsIProfilerStartParams extends nsISupports {
+ readonly entries: u32;
+ readonly duration: double;
+ readonly interval: double;
+ readonly features: u32;
+ readonly activeTabID: u64;
+}
+
+interface nsIProfiler extends nsISupports {
+ StartProfiler(aEntries: u32, aInterval: double, aFeatures: string[], aFilters?: string[], aActiveTabID?: u64, aDuration?: double): Promise<any>;
+ StopProfiler(): Promise<any>;
+ IsPaused(): boolean;
+ Pause(): Promise<any>;
+ Resume(): Promise<any>;
+ IsSamplingPaused(): boolean;
+ PauseSampling(): Promise<any>;
+ ResumeSampling(): Promise<any>;
+ waitOnePeriodicSampling(): Promise<any>;
+ GetProfile(aSinceTime?: double): string;
+ getProfileData(aSinceTime?: double): any;
+ getProfileDataAsync(aSinceTime?: double): Promise<any>;
+ getProfileDataAsArrayBuffer(aSinceTime?: double): Promise<any>;
+ getProfileDataAsGzippedArrayBuffer(aSinceTime?: double): Promise<any>;
+ dumpProfileToFileAsync(aFilename: string, aSinceTime?: double): Promise<any>;
+ dumpProfileToFile(aFilename: string): void;
+ IsActive(): boolean;
+ ClearAllPages(): void;
+ GetFeatures(): string[];
+ readonly activeConfiguration: any;
+ GetAllFeatures(): string[];
+ GetBufferInfo(aCurrentPosition: OutParam<u32>, aTotalSize: OutParam<u32>, aGeneration: OutParam<u32>): void;
+ getElapsedTime(): double;
+ readonly sharedLibraries: any;
+ getSymbolTable(aDebugPath: string, aBreakpadID: string): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/media/test/rdd_process_xpcom/nsIRddProcessTest.idl
+
+interface nsIRddProcessTest extends nsISupports {
+ testTelemetryProbes(): Promise<any>;
+ stopProcess(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/remote/components/nsIMarionette.idl
+
+interface nsIMarionette extends nsISupports {
+ readonly running: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/remote/components/nsIRemoteAgent.idl
+
+interface nsIRemoteAgent extends nsISupports {
+ readonly debuggerAddress: string;
+ readonly running: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/reputationservice/nsIApplicationReputation.idl
+
+interface nsIApplicationReputationService extends nsISupports {
+ readonly VERDICT_SAFE: 0;
+ readonly VERDICT_DANGEROUS: 1;
+ readonly VERDICT_UNCOMMON: 2;
+ readonly VERDICT_POTENTIALLY_UNWANTED: 3;
+ readonly VERDICT_DANGEROUS_HOST: 4;
+
+ queryReputation(aQuery: nsIApplicationReputationQuery, aCallback: nsIApplicationReputationCallback): void;
+ isBinary(aFilename: string): boolean;
+ isExecutable(aFilename: string): boolean;
+}
+
+interface nsIApplicationReputationQuery extends nsISupports {
+ readonly sourceURI: nsIURI;
+ readonly referrerInfo: nsIReferrerInfo;
+ readonly suggestedFileName: string;
+ readonly fileSize: u32;
+ readonly sha256Hash: string;
+ readonly signatureInfo: u8[][][];
+ readonly redirects: nsIArray;
+}
+
+type nsIApplicationReputationCallback = Callable<{
+ onComplete(aShouldBlock: boolean, aStatus: nsresult, aVerdict: u32): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/security/sandbox/common/mozISandboxSettings.idl
+
+interface mozISandboxSettings extends nsISupports {
+ readonly effectiveContentSandboxLevel: i32;
+ readonly contentWin32kLockdownState: i32;
+ readonly contentWin32kLockdownStateString: string;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/satchel/nsIFormAutoComplete.idl
+
+interface nsIFormAutoComplete extends nsISupports {
+ autoCompleteSearchAsync(aInputName: string, aSearchString: string, aField: HTMLInputElement, aPreviousResult: nsIAutoCompleteResult, aAddDatalist: boolean, aListener: nsIFormAutoCompleteObserver): void;
+ stopAutoCompleteSearch(): void;
+}
+
+type nsIFormAutoCompleteObserver = Callable<{
+ onSearchCompletion(result: nsIAutoCompleteResult): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/satchel/nsIFormFillController.idl
+
+interface nsIFormFillController extends nsISupports {
+ readonly focusedInput: HTMLInputElement;
+ readonly passwordPopupAutomaticallyOpened: boolean;
+ attachPopupElementToDocument(document: Document, popup: Element): void;
+ detachFromDocument(document: Document): void;
+ isLoginManagerField(aInput: HTMLInputElement): boolean;
+ markAsLoginManagerField(aInput: HTMLInputElement): void;
+ markAsAutofillField(aInput: HTMLInputElement): void;
+ showPopup(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/services/interfaces/mozIAppServicesLogger.idl
+
+interface mozIAppServicesLogger extends nsISupports {
+ register(target: string, logger: mozIServicesLogSink): void;
+}
+
+// https://searchfox.org/mozilla-central/source/services/interfaces/mozIBridgedSyncEngine.idl
+
+interface mozIBridgedSyncEngineCallback extends nsISupports {
+ handleSuccess(result: nsIVariant): void;
+ handleError(code: nsresult, message: string): void;
+}
+
+interface mozIBridgedSyncEngineApplyCallback extends nsISupports {
+ handleSuccess(outgoingEnvelopesAsJSON: string[]): void;
+ handleError(code: nsresult, message: string): void;
+}
+
+interface mozIBridgedSyncEngine extends nsISupports {
+ readonly storageVersion: i32;
+ readonly allowSkippedRecord: boolean;
+ logger: mozIServicesLogSink;
+ getLastSync(callback: mozIBridgedSyncEngineCallback): void;
+ setLastSync(lastSyncMillis: i64, callback: mozIBridgedSyncEngineCallback): void;
+ getSyncId(callback: mozIBridgedSyncEngineCallback): void;
+ resetSyncId(callback: mozIBridgedSyncEngineCallback): void;
+ ensureCurrentSyncId(newSyncId: string, callback: mozIBridgedSyncEngineCallback): void;
+ syncStarted(callback: mozIBridgedSyncEngineCallback): void;
+ storeIncoming(incomingEnvelopesAsJSON: string[], callback: mozIBridgedSyncEngineCallback): void;
+ apply(callback: mozIBridgedSyncEngineApplyCallback): void;
+ setUploaded(newTimestampMillis: i64, uploadedIds: string[], callback: mozIBridgedSyncEngineCallback): void;
+ syncFinished(callback: mozIBridgedSyncEngineCallback): void;
+ reset(callback: mozIBridgedSyncEngineCallback): void;
+ wipe(callback: mozIBridgedSyncEngineCallback): void;
+}
+
+// https://searchfox.org/mozilla-central/source/services/interfaces/mozIInterruptible.idl
+
+interface mozIInterruptible extends nsISupports {
+ interrupt(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/services/interfaces/mozIServicesLogSink.idl
+
+interface mozIServicesLogSink extends nsISupports {
+ readonly LEVEL_OFF: 0;
+ readonly LEVEL_ERROR: 1;
+ readonly LEVEL_WARN: 2;
+ readonly LEVEL_INFO: 3;
+ readonly LEVEL_DEBUG: 4;
+ readonly LEVEL_TRACE: 5;
+
+ maxLevel: i16;
+ error(message: string): void;
+ warn(message: string): void;
+ debug(message: string): void;
+ trace(message: string): void;
+ info(message: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/sessionstore/SessionStoreFunctions.idl
+
+interface nsISessionStoreFunctions extends nsISupports {
+ UpdateSessionStore(aBrowser: Element, aBrowsingContext: BrowsingContext, aPermanentKey: any, aEpoch: u32, aCollectSHistory: boolean, aData: any): void;
+ UpdateSessionStoreForStorage(aBrowser: Element, aBrowsingContext: BrowsingContext, aPermanentKey: any, aEpoch: u32, aData: any): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/sessionstore/nsISessionStoreRestoreData.idl
+
+interface nsISessionStoreRestoreData extends nsISupports {
+ url: string;
+ innerHTML: string;
+ scroll: string;
+ addTextField(aIsXPath: boolean, aIdOrXPath: string, aValue: string): void;
+ addCheckbox(aIsXPath: boolean, aIdOrXPath: string, aValue: boolean): void;
+ addFileList(aIsXPath: boolean, aIdOrXPath: string, aType: string, aFileList: string[]): void;
+ addSingleSelect(aIsXPath: boolean, aIdOrXPath: string, aSelectedIndex: u32, aValue: string): void;
+ addMultipleSelect(aIsXPath: boolean, aIdOrXPath: string, aValues: string[]): void;
+ addCustomElement(aIsXPath: boolean, aIdOrXPath: string, aValue: any, aState: any): void;
+ addChild(aChild: nsISessionStoreRestoreData, aIndex: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/browser/components/shell/nsIShellService.idl
+
+interface nsIShellService extends nsISupports {
+ readonly BACKGROUND_TILE: 1;
+ readonly BACKGROUND_STRETCH: 2;
+ readonly BACKGROUND_CENTER: 3;
+ readonly BACKGROUND_FILL: 4;
+ readonly BACKGROUND_FIT: 5;
+ readonly BACKGROUND_SPAN: 6;
+
+ isDefaultBrowser(aForAllTypes?: boolean): boolean;
+ setDefaultBrowser(aForAllUsers: boolean): void;
+ setDesktopBackground(aElement: Element, aPosition: i32, aImageName: string): void;
+ desktopBackgroundColor: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/browser/components/shell/nsIWindowsShellService.idl
+
+interface nsIWindowsShellService extends nsISupports {
+ createShortcut(aBinary: nsIFile, aArguments: string[], aDescription: string, aIconFile: nsIFile, aIconIndex: u16, aAppUserModelId: string, aShortcutFolder: string, aShortcutName: string): Promise<any>;
+ getLaunchOnLoginShortcuts(): string[];
+ pinCurrentAppToTaskbarAsync(aPrivateBrowsing: boolean): Promise<any>;
+ checkPinCurrentAppToTaskbarAsync(aPrivateBrowsing: boolean): Promise<any>;
+ isCurrentAppPinnedToTaskbarAsync(aumid: string): Promise<any>;
+ pinShortcutToTaskbar(aShortcutPath: string): void;
+ unpinShortcutFromTaskbar(aShortcutPath: string): void;
+ getTaskbarTabShortcutPath(aShortcutName: string): string;
+ getTaskbarTabPins(): string[];
+ classifyShortcut(aPath: string): string;
+ hasMatchingShortcut(aAUMID: string, aPrivateBrowsing: boolean): Promise<any>;
+ canSetDefaultBrowserUserChoice(): boolean;
+ checkAllProgIDsExist(): boolean;
+ checkBrowserUserChoiceHashes(): boolean;
+ isDefaultHandlerFor(aFileExtensionOrProtocol: string): boolean;
+ queryCurrentDefaultHandlerFor(aFileExtensionOrProtocol: string): string;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/shistory/nsIBFCacheEntry.idl
+
+interface nsIBFCacheEntry extends nsISupports {
+ RemoveFromBFCacheSync(): void;
+ RemoveFromBFCacheAsync(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/shistory/nsISHEntry.idl
+
+interface nsISHEntry extends nsISupports {
+ URI: nsIURI;
+ originalURI: nsIURI;
+ resultPrincipalURI: nsIURI;
+ unstrippedURI: nsIURI;
+ loadReplace: boolean;
+ title: string;
+ name: string;
+ isSubFrame: boolean;
+ hasUserInteraction: boolean;
+ hasUserActivation: boolean;
+ referrerInfo: nsIReferrerInfo;
+ documentViewer: nsIDocumentViewer;
+ readonly isInBFCache: boolean;
+ sticky: boolean;
+ windowState: nsISupports;
+ refreshURIList: nsIMutableArray;
+ postData: nsIInputStream;
+ readonly hasPostData: boolean;
+ layoutHistoryState: nsILayoutHistoryState;
+ parent: nsISHEntry;
+ loadType: u32;
+ ID: u32;
+ cacheKey: u32;
+ saveLayoutStateFlag: boolean;
+ contentType: string;
+ URIWasModified: boolean;
+ triggeringPrincipal: nsIPrincipal;
+ principalToInherit: nsIPrincipal;
+ partitionedPrincipalToInherit: nsIPrincipal;
+ csp: nsIContentSecurityPolicy;
+ stateData: nsIStructuredCloneContainer;
+ docshellID: nsID;
+ readonly isSrcdocEntry: boolean;
+ srcdocData: string;
+ baseURI: nsIURI;
+ scrollRestorationIsManual: boolean;
+ readonly loadedInThisProcess: boolean;
+ readonly childCount: i32;
+ persist: boolean;
+ setScrollPosition(x: i32, y: i32): void;
+ getScrollPosition(x: OutParam<i32>, y: OutParam<i32>): void;
+ initLayoutHistoryState(): nsILayoutHistoryState;
+ clone(): nsISHEntry;
+ hasDynamicallyAddedChild(): boolean;
+ adoptBFCacheEntry(aEntry: nsISHEntry): void;
+ abandonBFCacheEntry(): void;
+ sharesDocumentWith(aEntry: nsISHEntry): boolean;
+ setLoadTypeAsHistory(): void;
+ AddChild(aChild: nsISHEntry, aOffset: i32, aUseRemoteSubframes?: boolean): void;
+ GetChildAt(aIndex: i32): nsISHEntry;
+ readonly bfcacheID: u64;
+ wireframe: any;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/shistory/nsISHistory.idl
+
+interface nsISHistory extends nsISupports {
+ readonly count: i32;
+ index: i32;
+ readonly requestedIndex: i32;
+ getEntryAtIndex(aIndex: i32): nsISHEntry;
+ purgeHistory(aNumEntries: i32): void;
+ addSHistoryListener(aListener: nsISHistoryListener): void;
+ removeSHistoryListener(aListener: nsISHistoryListener): void;
+ reloadCurrentEntry(): void;
+ addEntry(aEntry: nsISHEntry, aPersist: boolean): void;
+ updateIndex(): void;
+ replaceEntry(aIndex: i32, aReplaceEntry: nsISHEntry): void;
+ notifyOnHistoryReload(): boolean;
+ evictOutOfRangeDocumentViewers(aIndex: i32): void;
+ evictAllDocumentViewers(): void;
+ createEntry(): nsISHEntry;
+}
+
+// https://searchfox.org/mozilla-central/source/docshell/shistory/nsISHistoryListener.idl
+
+interface nsISHistoryListener extends nsISupports {
+ OnHistoryNewEntry(aNewURI: nsIURI, aOldIndex: i32): void;
+ OnHistoryReload(): boolean;
+ OnHistoryGotoIndex(): void;
+ OnHistoryPurge(aNumEntries: i32): void;
+ OnHistoryTruncate(aNumEntries: i32): void;
+ OnHistoryReplaceEntry(): void;
+ OnDocumentViewerEvicted(aNumEvicted: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/extensions/spellcheck/idl/mozIPersonalDictionary.idl
+
+interface mozIPersonalDictionary extends nsISupports {
+ load(): void;
+ save(): void;
+ readonly wordList: nsIStringEnumerator;
+ check(word: string): boolean;
+ addWord(word: string): void;
+ removeWord(word: string): void;
+ ignoreWord(word: string): void;
+ endSession(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/extensions/spellcheck/idl/mozISpellCheckingEngine.idl
+
+interface mozISpellCheckingEngine extends nsISupports {
+ dictionaries: string[];
+ personalDictionary: mozIPersonalDictionary;
+ getDictionaryList(): string[];
+ check(word: string): boolean;
+ suggest(word: string): string[];
+ loadDictionariesFromDir(dir: nsIFile): void;
+ addDirectory(dir: nsIFile): void;
+ removeDirectory(dir: nsIFile): void;
+ addDictionary(lang: string, file: nsIURI): void;
+ removeDictionary(lang: string, file: nsIURI): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/startupcache/nsIStartupCacheInfo.idl
+
+interface nsIStartupCacheInfo extends nsISupports {
+ readonly IgnoreDiskCache: boolean;
+ readonly FoundDiskCacheOnInit: boolean;
+ readonly WroteToDiskCache: boolean;
+ readonly DiskCachePath: string;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageAsyncConnection.idl
+
+interface mozIStorageAsyncConnection extends nsISupports {
+ readonly TRANSACTION_DEFAULT: -1;
+ readonly TRANSACTION_DEFERRED: 0;
+ readonly TRANSACTION_IMMEDIATE: 1;
+ readonly TRANSACTION_EXCLUSIVE: 2;
+
+ defaultTransactionType: i32;
+ readonly variableLimit: i32;
+ readonly transactionInProgress: boolean;
+ asyncClose(aCallback?: mozIStorageCompletionCallback): void;
+ asyncClone(aReadOnly: boolean, aCallback: mozIStorageCompletionCallback): void;
+ readonly databaseFile: nsIFile;
+ interrupt(): void;
+ asyncVacuum(aCallback?: mozIStorageCompletionCallback, aUseIncremental?: boolean, aSetPageSize?: i32): void;
+ createAsyncStatement(aSQLStatement: string): mozIStorageAsyncStatement;
+ executeAsync(aStatements: mozIStorageBaseStatement[], aCallback?: mozIStorageStatementCallback): mozIStoragePendingStatement;
+ executeSimpleSQLAsync(aSQLStatement: string, aCallback?: mozIStorageStatementCallback): mozIStoragePendingStatement;
+ loadExtension(aExtensionName: string, aCallback?: mozIStorageCompletionCallback): void;
+ createFunction(aFunctionName: string, aNumArguments: i32, aFunction: mozIStorageFunction): void;
+ removeFunction(aFunctionName: string): void;
+ setProgressHandler(aGranularity: i32, aHandler: mozIStorageProgressHandler): mozIStorageProgressHandler;
+ removeProgressHandler(): mozIStorageProgressHandler;
+ backupToFileAsync(aDestinationFile: nsIFile, aCallback: mozIStorageCompletionCallback): void;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageAsyncStatement.idl
+
+interface mozIStorageAsyncStatement extends mozIStorageBaseStatement {
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageBaseStatement.idl
+
+interface mozIStorageBaseStatement extends mozIStorageBindingParams {
+ readonly MOZ_STORAGE_STATEMENT_INVALID: 0;
+ readonly MOZ_STORAGE_STATEMENT_READY: 1;
+ readonly MOZ_STORAGE_STATEMENT_EXECUTING: 2;
+
+ finalize(): void;
+ bindParameters(aParameters: mozIStorageBindingParamsArray): void;
+ newBindingParamsArray(): mozIStorageBindingParamsArray;
+ executeAsync(aCallback?: mozIStorageStatementCallback): mozIStoragePendingStatement;
+ readonly state: i32;
+ escapeStringForLIKE(aValue: string, aEscapeChar: string): string;
+ escapeUTF8StringForLIKE(aValue: string, aEscapeChar: string): string;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageBindingParams.idl
+
+interface mozIStorageBindingParams extends nsISupports {
+ bindByName(aName: string, aValue: nsIVariant): void;
+ bindBlobByName(aName: string, aValue: u8[]): void;
+ bindStringAsBlobByName(aName: string, aValue: string): void;
+ bindUTF8StringAsBlobByName(aName: string, aValue: string): void;
+ bindByIndex(aIndex: u32, aValue: nsIVariant): void;
+ bindBlobByIndex(aIndex: u32, aValue: u8[]): void;
+ bindStringAsBlobByIndex(aIndex: u32, aValue: string): void;
+ bindUTF8StringAsBlobByIndex(aIndex: u32, aValue: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageBindingParamsArray.idl
+
+interface mozIStorageBindingParamsArray extends nsISupports {
+ newBindingParams(): mozIStorageBindingParams;
+ addParams(aParameters: mozIStorageBindingParams): void;
+ readonly length: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageCompletionCallback.idl
+
+type mozIStorageCompletionCallback = Callable<{
+ complete(status: nsresult, value?: nsISupports): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageConnection.idl
+
+interface mozIStorageConnection extends mozIStorageAsyncConnection {
+ close(): void;
+ clone(aReadOnly?: boolean): mozIStorageConnection;
+ readonly defaultPageSize: i32;
+ readonly connectionReady: boolean;
+ readonly lastInsertRowID: i64;
+ readonly affectedRows: i32;
+ readonly lastError: i32;
+ readonly lastErrorString: string;
+ schemaVersion: i32;
+ createStatement(aSQLStatement: string): mozIStorageStatement;
+ executeSimpleSQL(aSQLStatement: string): void;
+ tableExists(aTableName: string): boolean;
+ indexExists(aIndexName: string): boolean;
+ beginTransaction(): void;
+ commitTransaction(): void;
+ rollbackTransaction(): void;
+ createTable(aTableName: string, aTableSchema: string): void;
+ setGrowthIncrement(aIncrement: i32, aDatabaseName: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageError.idl
+
+interface mozIStorageError extends nsISupports {
+ readonly ERROR: 1;
+ readonly INTERNAL: 2;
+ readonly PERM: 3;
+ readonly ABORT: 4;
+ readonly BUSY: 5;
+ readonly LOCKED: 6;
+ readonly NOMEM: 7;
+ readonly READONLY: 8;
+ readonly INTERRUPT: 9;
+ readonly IOERR: 10;
+ readonly CORRUPT: 11;
+ readonly FULL: 13;
+ readonly CANTOPEN: 14;
+ readonly EMPTY: 16;
+ readonly SCHEMA: 17;
+ readonly TOOBIG: 18;
+ readonly CONSTRAINT: 19;
+ readonly MISMATCH: 20;
+ readonly MISUSE: 21;
+ readonly NOLFS: 22;
+ readonly AUTH: 23;
+ readonly FORMAT: 24;
+ readonly RANGE: 25;
+ readonly NOTADB: 26;
+
+ readonly result: i32;
+ readonly message: string;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageFunction.idl
+
+type mozIStorageFunction = Callable<{
+ onFunctionCall(aFunctionArguments: mozIStorageValueArray): nsIVariant;
+}>
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStoragePendingStatement.idl
+
+interface mozIStoragePendingStatement extends nsISupports {
+ cancel(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageProgressHandler.idl
+
+interface mozIStorageProgressHandler extends nsISupports {
+ onProgress(aConnection: mozIStorageConnection): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageResultSet.idl
+
+interface mozIStorageResultSet extends nsISupports {
+ getNextRow(): mozIStorageRow;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageRow.idl
+
+interface mozIStorageRow extends mozIStorageValueArray {
+ getResultByIndex(aIndex: u32): nsIVariant;
+ getResultByName(aName: string): nsIVariant;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageService.idl
+
+interface mozIStorageService extends nsISupports {
+ readonly OPEN_DEFAULT: 0;
+ readonly OPEN_SHARED: 1;
+ readonly OPEN_READONLY: 2;
+ readonly OPEN_IGNORE_LOCKING_MODE: 4;
+ readonly CONNECTION_DEFAULT: 0;
+ readonly CONNECTION_INTERRUPTIBLE: 1;
+
+ openAsyncDatabase(aDatabaseStore: nsIVariant, aOpenFlags: u32, aConnectionFlags: u32, aCallback: mozIStorageCompletionCallback): void;
+ openSpecialDatabase(aStorageKey: string, aName?: string, aConnectionFlags?: u32): mozIStorageConnection;
+ openDatabase(aDatabaseFile: nsIFile, aConnectionFlags?: u32): mozIStorageConnection;
+ openUnsharedDatabase(aDatabaseFile: nsIFile, aConnectionFlags?: u32): mozIStorageConnection;
+ openDatabaseWithFileURL(aFileURL: nsIFileURL, aTelemetryFilename?: string, aConnectionFlags?: u32): mozIStorageConnection;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageStatement.idl
+
+interface mozIStorageStatement extends mozIStorageBaseStatement {
+ readonly VALUE_TYPE_NULL: 0;
+ readonly VALUE_TYPE_INTEGER: 1;
+ readonly VALUE_TYPE_FLOAT: 2;
+ readonly VALUE_TYPE_TEXT: 3;
+ readonly VALUE_TYPE_BLOB: 4;
+
+ clone(): mozIStorageStatement;
+ readonly parameterCount: u32;
+ getParameterName(aParamIndex: u32): string;
+ getParameterIndex(aName: string): u32;
+ readonly columnCount: u32;
+ getColumnName(aColumnIndex: u32): string;
+ getColumnIndex(aName: string): u32;
+ reset(): void;
+ execute(): void;
+ executeStep(): boolean;
+ readonly numEntries: u32;
+ getTypeOfIndex(aIndex: u32): i32;
+ getVariant(aIndex: u32): nsIVariant;
+ getInt32(aIndex: u32): i32;
+ getInt64(aIndex: u32): i64;
+ getDouble(aIndex: u32): double;
+ getUTF8String(aIndex: u32): string;
+ getString(aIndex: u32): string;
+ getBlob(aIndex: u32, aDataSize: OutParam<u32>, aData: OutParam<u8[]>): void;
+ getBlobAsString(aIndex: u32): string;
+ getBlobAsUTF8String(aIndex: u32): string;
+ getIsNull(aIndex: u32): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageStatementCallback.idl
+
+interface mozIStorageStatementCallback extends nsISupports {
+ readonly REASON_FINISHED: 0;
+ readonly REASON_CANCELED: 1;
+ readonly REASON_ERROR: 2;
+
+ handleResult(aResultSet: mozIStorageResultSet): void;
+ handleError(aError: mozIStorageError): void;
+ handleCompletion(aReason: u16): void;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageVacuumParticipant.idl
+
+interface mozIStorageVacuumParticipant extends nsISupports {
+ readonly expectedDatabasePageSize: i32;
+ readonly useIncrementalVacuum: boolean;
+ readonly databaseConnection: mozIStorageAsyncConnection;
+ onBeginVacuum(): boolean;
+ onEndVacuum(aSucceeded: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/storage/mozIStorageValueArray.idl
+
+interface mozIStorageValueArray extends nsISupports {
+ readonly VALUE_TYPE_NULL: 0;
+ readonly VALUE_TYPE_INTEGER: 1;
+ readonly VALUE_TYPE_FLOAT: 2;
+ readonly VALUE_TYPE_TEXT: 3;
+ readonly VALUE_TYPE_BLOB: 4;
+
+ readonly numEntries: u32;
+ getTypeOfIndex(aIndex: u32): i32;
+ getInt32(aIndex: u32): i32;
+ getInt64(aIndex: u32): i64;
+ getDouble(aIndex: u32): double;
+ getUTF8String(aIndex: u32): string;
+ getString(aIndex: u32): string;
+ getBlob(aIndex: u32, aDataSize: OutParam<u32>, aData: OutParam<u8[]>): void;
+ getBlobAsString(aIndex: u32): string;
+ getBlobAsUTF8String(aIndex: u32): string;
+ getIsNull(aIndex: u32): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/taskscheduler/nsIWinTaskSchedulerService.idl
+
+interface nsIWinTaskSchedulerService extends nsISupports {
+ registerTask(aFolderName: string, aTaskName: string, aDefinitionXML: string, aUpdateExisting?: boolean): void;
+ validateTaskDefinition(aDefinitionXML: string): i32;
+ getTaskXML(aFolderName: string, aTaskName: string): string;
+ getCurrentUserSid(): string;
+ deleteTask(aFolderName: string, aTaskName: string): void;
+ getFolderTasks(aFolderName: string): string[];
+ createFolder(aParentFolderName: string, aSubFolderName: string): void;
+ deleteFolder(aParentFolderName: string, aSubFolderName: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/telemetry/core/nsITelemetry.idl
+
+type nsIFetchTelemetryDataCallback = Callable<{
+ complete(): void;
+}>
+
+interface nsITelemetry extends nsISupports {
+ readonly HISTOGRAM_EXPONENTIAL: 0;
+ readonly HISTOGRAM_LINEAR: 1;
+ readonly HISTOGRAM_BOOLEAN: 2;
+ readonly HISTOGRAM_FLAG: 3;
+ readonly HISTOGRAM_COUNT: 4;
+ readonly HISTOGRAM_CATEGORICAL: 5;
+ readonly SCALAR_TYPE_COUNT: 0;
+ readonly SCALAR_TYPE_STRING: 1;
+ readonly SCALAR_TYPE_BOOLEAN: 2;
+ readonly DATASET_ALL_CHANNELS: 0;
+ readonly DATASET_PRERELEASE_CHANNELS: 1;
+ readonly INCLUDE_OLD_LOADEVENTS: 1;
+ readonly KEEP_LOADEVENTS_NEW: 2;
+ readonly INCLUDE_PRIVATE_FIELDS_IN_LOADEVENTS: 4;
+ readonly EXCLUDE_STACKINFO_FROM_LOADEVENTS: 8;
+
+ getCategoricalLabels(): any;
+ getSnapshotForHistograms(aStoreName?: string, aClearStore?: boolean, aFilterTest?: boolean): any;
+ getSnapshotForKeyedHistograms(aStoreName?: string, aClearStore?: boolean, aFilterTest?: boolean): any;
+ getSnapshotForScalars(aStoreName?: string, aClearStore?: boolean, aFilterTest?: boolean): any;
+ getSnapshotForKeyedScalars(aStoreName?: string, aClearStore?: boolean, aFilterTest?: boolean): any;
+ readonly lastShutdownDuration: u32;
+ readonly failedProfileLockCount: u32;
+ readonly slowSQL: any;
+ readonly debugSlowSQL: any;
+ getUntrustedModuleLoadEvents(aFlags?: u32): Promise<any>;
+ readonly areUntrustedModuleLoadEventsReady: boolean;
+ getLoadedModules(): Promise<any>;
+ readonly lateWrites: any;
+ getHistogramById(id: string): any;
+ getKeyedHistogramById(id: string): any;
+ canRecordBase: boolean;
+ canRecordExtended: boolean;
+ readonly canRecordReleaseData: boolean;
+ readonly canRecordPrereleaseData: boolean;
+ readonly isOfficialTelemetry: boolean;
+ setHistogramRecordingEnabled(id: string, enabled: boolean): void;
+ asyncFetchTelemetryData(aCallback: nsIFetchTelemetryDataCallback): void;
+ readonly fileIOReports: any;
+ msSinceProcessStart(): double;
+ msSinceProcessStartIncludingSuspend(): double;
+ msSinceProcessStartExcludingSuspend(): double;
+ msSystemNow(): double;
+ scalarAdd(aName: string, aValue: any): void;
+ scalarSet(aName: string, aValue: any): void;
+ scalarSetMaximum(aName: string, aValue: any): void;
+ keyedScalarAdd(aName: string, aKey: string, aValue: any): void;
+ keyedScalarSet(aName: string, aKey: string, aValue: any): void;
+ keyedScalarSetMaximum(aName: string, aKey: string, aValue: any): void;
+ clearScalars(): void;
+ flushBatchedChildTelemetry(): void;
+ recordEvent(aCategory: string, aMethod: string, aObject: string, aValue?: any, extra?: any): void;
+ setEventRecordingEnabled(aCategory: string, aEnabled: boolean): void;
+ snapshotEvents(aDataset: u32, aClear?: boolean, aEventLimit?: u32): any;
+ registerEvents(aCategory: string, aEventData: any): void;
+ registerBuiltinEvents(aCategory: string, aEventData: any): void;
+ registerScalars(aCategoryName: string, aScalarData: any): void;
+ registerBuiltinScalars(aCategoryName: string, aScalarData: any): void;
+ clearEvents(): void;
+ getAllStores(): any;
+ earlyInit(): void;
+ delayedInit(): void;
+ shutdown(): void;
+ gatherMemory(): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/telemetry/dap/nsIDAPTelemetry.idl
+
+interface nsIDAPTelemetry extends nsISupports {
+ GetReportU8(leaderHpkeConfig: u8[], helperHpkeConfig: u8[], measurement: u8, task_id: u8[], time_precision: u64, report: OutParam<u8[]>): void;
+ GetReportVecU8(leaderHpkeConfig: u8[], helperHpkeConfig: u8[], measurement: u8[], task_id: u8[], time_precision: u64, report: OutParam<u8[]>): void;
+ GetReportVecU16(leaderHpkeConfig: u8[], helperHpkeConfig: u8[], measurement: u16[], task_id: u8[], time_precision: u64, report: OutParam<u8[]>): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/test/httpserver/nsIHttpServer.idl
+
+interface nsIHttpServer extends nsISupports {
+ start(port: i32): void;
+ start_ipv6(port: i32): void;
+ start_dualStack(port: i32): void;
+ stop(callback: nsIHttpServerStoppedCallback): void;
+ registerFile(path: string, file: nsIFile, handler?: nsIHttpRequestHandler): void;
+ registerPathHandler(path: string, handler: nsIHttpRequestHandler): void;
+ registerPrefixHandler(prefix: string, handler: nsIHttpRequestHandler): void;
+ registerErrorHandler(code: u32, handler: nsIHttpRequestHandler): void;
+ registerDirectory(path: string, dir: nsIFile): void;
+ registerContentType(extension: string, type: string): void;
+ setIndexHandler(handler: nsIHttpRequestHandler): void;
+ readonly identity: nsIHttpServerIdentity;
+ getState(path: string, key: string): string;
+ setState(path: string, key: string, value: string): void;
+ getSharedState(key: string): string;
+ setSharedState(key: string, value: string): void;
+ getObjectState(key: string): nsISupports;
+ setObjectState(key: string, value: nsISupports): void;
+}
+
+type nsIHttpServerStoppedCallback = Callable<{
+ onStopped(): void;
+}>
+
+interface nsIHttpServerIdentity extends nsISupports {
+ readonly primaryScheme: string;
+ readonly primaryHost: string;
+ readonly primaryPort: i32;
+ add(scheme: string, host: string, port: i32): void;
+ remove(scheme: string, host: string, port: i32): boolean;
+ has(scheme: string, host: string, port: i32): boolean;
+ getScheme(host: string, port: i32): string;
+ setPrimary(scheme: string, host: string, port: i32): void;
+}
+
+type nsIHttpRequestHandler = Callable<{
+ handle(request: nsIHttpRequest, response: nsIHttpResponse): void;
+}>
+
+interface nsIHttpRequest extends nsISupports {
+ readonly method: string;
+ readonly scheme: string;
+ readonly host: string;
+ readonly port: u32;
+ readonly path: string;
+ readonly queryString: string;
+ readonly httpVersion: string;
+ getHeader(fieldName: string): string;
+ hasHeader(fieldName: string): boolean;
+ readonly headers: nsISimpleEnumerator;
+ readonly bodyInputStream: nsIInputStream;
+}
+
+interface nsIHttpResponse extends nsISupports {
+ setStatusLine(httpVersion: string, statusCode: u16, description: string): void;
+ setHeader(name: string, value: string, merge: boolean): void;
+ setHeaderNoCheck(name: string, value: string): void;
+ readonly bodyOutputStream: nsIOutputStream;
+ write(data: string): void;
+ processAsync(): void;
+ seizePower(): void;
+ finish(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/thumbnails/nsIPageThumbsStorageService.idl
+
+interface nsIPageThumbsStorageService extends nsISupports {
+ getLeafNameForURL(aURL: string): string;
+ readonly path: string;
+ getFilePathForURL(aURL: string): string;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/profile/nsIProfileMigrator.idl
+
+interface nsIProfileStartup extends nsISupports {
+ readonly directory: nsIFile;
+ doStartup(): void;
+}
+
+interface nsIProfileMigrator extends nsISupports {
+ migrate(aStartup: nsIProfileStartup, aKey: string, aProfileName?: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/profile/nsIProfileUnlocker.idl
+
+interface nsIProfileUnlocker extends nsISupports {
+ readonly ATTEMPT_QUIT: 0;
+ readonly FORCE_QUIT: 1;
+
+ unlock(aSeverity: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/profile/nsIToolkitProfile.idl
+
+interface nsIProfileLock extends nsISupports {
+ readonly directory: nsIFile;
+ readonly localDirectory: nsIFile;
+ readonly replacedLockTime: PRTime;
+ unlock(): void;
+}
+
+interface nsIToolkitProfile extends nsISupports {
+ readonly rootDir: nsIFile;
+ readonly localDir: nsIFile;
+ name: string;
+ remove(removeFiles: boolean): void;
+ removeInBackground(removeFiles: boolean): void;
+ lock(aUnlocker: OutParam<nsIProfileUnlocker>): nsIProfileLock;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/profile/nsIToolkitProfileService.idl
+
+} // global
+
+declare namespace nsIToolkitProfileService {
+
+enum downgradeUIFlags {
+ hasSync = 1,
+}
+
+enum downgradeUIChoice {
+ quit = 0,
+ createNewProfile = 1,
+}
+
+enum profileManagerResult {
+ exit = 0,
+ launchWithProfile = 1,
+ restart = 2,
+}
+
+}
+
+declare global {
+
+interface nsIToolkitProfileService extends nsISupports, Enums<typeof nsIToolkitProfileService.downgradeUIFlags & typeof nsIToolkitProfileService.downgradeUIChoice & typeof nsIToolkitProfileService.profileManagerResult> {
+ readonly isListOutdated: boolean;
+ startWithLastProfile: boolean;
+ readonly profiles: nsISimpleEnumerator;
+ readonly currentProfile: nsIToolkitProfile;
+ defaultProfile: nsIToolkitProfile;
+ selectStartupProfile(aArgv: string[], aIsResetting: boolean, aUpdateChannel: string, aLegacyInstallHash: string, aRootDir: OutParam<nsIFile>, aLocalDir: OutParam<nsIFile>, aProfile: OutParam<nsIToolkitProfile>): boolean;
+ getProfileByName(aName: string): nsIToolkitProfile;
+ createProfile(aRootDir: nsIFile, aName: string): nsIToolkitProfile;
+ createUniqueProfile(aRootDir: nsIFile, aNamePrefix: string): nsIToolkitProfile;
+ readonly profileCount: u32;
+ flush(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/bouncetrackingprotection/nsIBounceTrackingProtection.idl
+
+interface nsIBounceTrackingProtection extends nsISupports {
+ clearAll(): void;
+ clearBySiteHostAndOA(aSiteHost: string, originAttributes: any): void;
+ clearBySiteHost(aSiteHost: string): void;
+ clearByTimeRange(aFrom: PRTime, aTo: PRTime): void;
+ clearByOriginAttributesPattern(aPattern: string): void;
+ testRunPurgeBounceTrackers(): Promise<any>;
+ testClearExpiredUserActivations(): void;
+ testGetBounceTrackerCandidateHosts(originAttributes: any): string[];
+ testGetUserActivationHosts(originAttributes: any): string[];
+ testAddBounceTrackerCandidate(originAttributes: any, aSiteHost: string, aBounceTime: PRTime): void;
+ testAddUserActivation(originAttributes: any, aSiteHost: string, aActivationTime: PRTime): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/nsIContentBlockingAllowList.idl
+
+interface nsIContentBlockingAllowList extends nsISupports {
+ computeContentBlockingAllowListPrincipal(aPrincipal: nsIPrincipal): nsIPrincipal;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/nsIPartitioningExceptionListService.idl
+
+type nsIPartitioningExceptionListObserver = Callable<{
+ onExceptionListUpdate(aList: string): void;
+}>
+
+interface nsIPartitioningExceptionListService extends nsISupports {
+ registerAndRunExceptionListObserver(aObserver: nsIPartitioningExceptionListObserver): void;
+ unregisterExceptionListObserver(aObserver: nsIPartitioningExceptionListObserver): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/nsIPurgeTrackerService.idl
+
+interface nsIPurgeTrackerService extends nsISupports {
+ purgeTrackingCookieJars(): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/nsITrackingDBService.idl
+
+interface nsITrackingDBService extends nsISupports {
+ readonly OTHER_COOKIES_BLOCKED_ID: 0;
+ readonly TRACKERS_ID: 1;
+ readonly TRACKING_COOKIES_ID: 2;
+ readonly CRYPTOMINERS_ID: 3;
+ readonly FINGERPRINTERS_ID: 4;
+ readonly SOCIAL_ID: 5;
+ readonly SUSPICIOUS_FINGERPRINTERS_ID: 6;
+
+ recordContentBlockingLog(data: string): void;
+ saveEvents(data: string): Promise<any>;
+ clearAll(): Promise<any>;
+ clearSince(since: i64): Promise<any>;
+ getEventsByDateRange(dateFrom: i64, dateTo: i64): Promise<any>;
+ sumAllEvents(): Promise<any>;
+ getEarliestRecordedDate(): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/nsIURLDecorationAnnotationsService.idl
+
+interface nsIURLDecorationAnnotationsService extends nsISupports {
+ ensureUpdated(): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/nsIURLQueryStringStripper.idl
+
+interface nsIURLQueryStringStripper extends nsISupports {
+ strip(aURI: nsIURI, aIsPBM: boolean, aOutput: OutParam<nsIURI>): u32;
+ stripForCopyOrShare(aURI: nsIURI): nsIURI;
+ testGetStripList(): string;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/nsIURLQueryStrippingListService.idl
+
+interface nsIURLQueryStrippingListObserver extends nsISupports {
+ onQueryStrippingListUpdate(aStripList: string, aAllowList: string): void;
+ onStripOnShareUpdate(aStripRules: string[]): void;
+}
+
+interface nsIURLQueryStrippingListService extends nsISupports {
+ registerAndRunObserver(aObserver: nsIURLQueryStrippingListObserver): void;
+ registerAndRunObserverStripOnShare(aObserver: nsIURLQueryStrippingListObserver): void;
+ unregisterObserver(aObserver: nsIURLQueryStrippingListObserver): void;
+ unregisterStripOnShareObserver(aObserver: nsIURLQueryStrippingListObserver): void;
+ clearLists(): void;
+ testWaitForInit(): Promise<any>;
+ testSetList(testFile: any): Promise<any>;
+ testHasStripOnShareObservers(): boolean;
+ testHasQPSObservers(): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/asyncshutdown/nsIAsyncShutdown.idl
+
+interface nsIAsyncShutdownBlocker extends nsISupports {
+ readonly name: string;
+ blockShutdown(aBarrierClient: nsIAsyncShutdownClient): void;
+ readonly state: nsIPropertyBag;
+}
+
+interface nsIAsyncShutdownClient extends nsISupports {
+ readonly name: string;
+ readonly isClosed: boolean;
+ addBlocker(aBlocker: nsIAsyncShutdownBlocker, aFileName: string, aLineNumber: i32, aStack: string): void;
+ removeBlocker(aBlocker: nsIAsyncShutdownBlocker): void;
+ readonly jsclient: any;
+}
+
+type nsIAsyncShutdownCompletionCallback = Callable<{
+ done(): void;
+}>
+
+interface nsIAsyncShutdownBarrier extends nsISupports {
+ readonly client: nsIAsyncShutdownClient;
+ readonly state: nsIPropertyBag;
+ wait(aOnReady: nsIAsyncShutdownCompletionCallback): void;
+}
+
+interface nsIAsyncShutdownService extends nsISupports {
+ makeBarrier(aName: string): nsIAsyncShutdownBarrier;
+ readonly profileBeforeChange: nsIAsyncShutdownClient;
+ readonly profileChangeTeardown: nsIAsyncShutdownClient;
+ readonly quitApplicationGranted: nsIAsyncShutdownClient;
+ readonly sendTelemetry: nsIAsyncShutdownClient;
+ readonly webWorkersShutdown: nsIAsyncShutdownClient;
+ readonly xpcomWillShutdown: nsIAsyncShutdownClient;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/backgroundtasks/nsIBackgroundTasks.idl
+
+interface nsIBackgroundTasks extends nsISupports {
+ readonly isBackgroundTaskMode: boolean;
+ backgroundTaskName(): string;
+ overrideBackgroundTaskNameForTesting(taskName: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/backgroundtasks/nsIBackgroundTasksManager.idl
+
+interface nsIBackgroundTasksManager extends nsICommandLineHandler {
+ runBackgroundTaskNamed(aTaskName: string, aCommandLine: nsICommandLine): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/backgroundtasks/nsIBackgroundTasksRunner.idl
+
+interface nsIBackgroundTasksRunner extends nsISupports {
+ runInDetachedProcess(aTaskName: string, aCommandLine: string[]): void;
+ removeDirectoryInDetachedProcess(aParentDirPath: string, aChildDirName: string, aSecondsToWait: string, aOtherFoldersSuffix: string, aMetricsId?: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/cleardata/nsIClearDataService.idl
+
+interface nsIClearDataService extends nsISupports {
+ readonly CLEAR_COOKIES: 1;
+ readonly CLEAR_NETWORK_CACHE: 2;
+ readonly CLEAR_IMAGE_CACHE: 4;
+ readonly CLEAR_DOWNLOADS: 16;
+ readonly CLEAR_PASSWORDS: 32;
+ readonly CLEAR_MEDIA_DEVICES: 64;
+ readonly CLEAR_DOM_QUOTA: 128;
+ readonly CLEAR_PREDICTOR_NETWORK_DATA: 256;
+ readonly CLEAR_DOM_PUSH_NOTIFICATIONS: 512;
+ readonly CLEAR_HISTORY: 1024;
+ readonly CLEAR_SESSION_HISTORY: 2048;
+ readonly CLEAR_AUTH_TOKENS: 4096;
+ readonly CLEAR_AUTH_CACHE: 8192;
+ readonly CLEAR_PERMISSIONS: 16384;
+ readonly CLEAR_CONTENT_PREFERENCES: 32768;
+ readonly CLEAR_HSTS: 65536;
+ readonly CLEAR_EME: 131072;
+ readonly CLEAR_REPORTS: 262144;
+ readonly CLEAR_STORAGE_ACCESS: 524288;
+ readonly CLEAR_CERT_EXCEPTIONS: 1048576;
+ readonly CLEAR_CONTENT_BLOCKING_RECORDS: 2097152;
+ readonly CLEAR_CSS_CACHE: 4194304;
+ readonly CLEAR_PREFLIGHT_CACHE: 8388608;
+ readonly CLEAR_CLIENT_AUTH_REMEMBER_SERVICE: 16777216;
+ readonly CLEAR_CREDENTIAL_MANAGER_STATE: 16777216;
+ readonly CLEAR_COOKIE_BANNER_EXCEPTION: 33554432;
+ readonly CLEAR_COOKIE_BANNER_EXECUTED_RECORD: 67108864;
+ readonly CLEAR_FINGERPRINTING_PROTECTION_STATE: 134217728;
+ readonly CLEAR_BOUNCE_TRACKING_PROTECTION_STATE: 268435456;
+ readonly CLEAR_ALL: 4294967295;
+ readonly CLEAR_ALL_CACHES: 12648454;
+ readonly CLEAR_DOM_STORAGES: 262784;
+ readonly CLEAR_FORGET_ABOUT_SITE: 534237079;
+
+ deleteDataFromLocalFiles(aIsUserRequest: boolean, aFlags: u32, aCallback: nsIClearDataCallback): void;
+ deleteDataFromHost(aHost: string, aIsUserRequest: boolean, aFlags: u32, aCallback: nsIClearDataCallback): void;
+ deleteDataFromBaseDomain(aDomainOrHost: string, aIsUserRequest: boolean, aFlags: u32, aCallback: nsIClearDataCallback): void;
+ deleteDataFromPrincipal(aPrincipal: nsIPrincipal, aIsUserRequest: boolean, aFlags: u32, aCallback: nsIClearDataCallback): void;
+ deleteDataInTimeRange(aFrom: PRTime, aTo: PRTime, aIsUserRequest: boolean, aFlags: u32, aCallback: nsIClearDataCallback): void;
+ deleteData(aFlags: u32, aCallback: nsIClearDataCallback): void;
+ deleteDataFromOriginAttributesPattern(aOriginAttributesPattern: any, aCallback?: nsIClearDataCallback): void;
+ deleteUserInteractionForClearingHistory(aPrincipalsWithStorage: nsIPrincipal[], aFrom?: PRTime, aCallback?: nsIClearDataCallback): void;
+ cleanupAfterDeletionAtShutdown(aFlags: u32, aCallback: nsIClearDataCallback): void;
+}
+
+type nsIClearDataCallback = Callable<{
+ onDataDeleted(aFailedFlags: u32): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/contentanalysis/nsIContentAnalysis.idl
+
+} // global
+
+declare namespace nsIContentAnalysisAcknowledgement {
+
+enum Result {
+ eSuccess = 1,
+ eInvalidResponse = 2,
+ eTooLate = 3,
+}
+
+enum FinalAction {
+ eUnspecified = 0,
+ eAllow = 1,
+ eReportOnly = 2,
+ eWarn = 3,
+ eBlock = 4,
+}
+
+}
+
+declare global {
+
+interface nsIContentAnalysisAcknowledgement extends nsISupports, Enums<typeof nsIContentAnalysisAcknowledgement.Result & typeof nsIContentAnalysisAcknowledgement.FinalAction> {
+ readonly result: nsIContentAnalysisAcknowledgement.Result;
+ readonly finalAction: nsIContentAnalysisAcknowledgement.FinalAction;
+}
+
+} // global
+
+declare namespace nsIContentAnalysisResponse {
+
+enum Action {
+ eUnspecified = 0,
+ eReportOnly = 1,
+ eWarn = 2,
+ eBlock = 3,
+ eAllow = 1000,
+ eCanceled = 1001,
+}
+
+}
+
+declare global {
+
+interface nsIContentAnalysisResponse extends nsISupports, Enums<typeof nsIContentAnalysisResponse.Action> {
+ readonly action: nsIContentAnalysisResponse.Action;
+ readonly shouldAllowContent: boolean;
+ readonly requestToken: string;
+ acknowledge(aCaa: nsIContentAnalysisAcknowledgement): void;
+}
+
+interface nsIClientDownloadResource extends nsISupports {
+ readonly DOWNLOAD_URL: 0;
+ readonly DOWNLOAD_REDIRECT: 1;
+ readonly TAB_URL: 2;
+ readonly TAB_REDIRECT: 3;
+ readonly PPAPI_DOCUMENT: 4;
+ readonly PPAPI_PLUGIN: 5;
+
+ readonly url: string;
+ readonly type: u32;
+}
+
+} // global
+
+declare namespace nsIContentAnalysisRequest {
+
+enum AnalysisType {
+ eUnspecified = 0,
+ eFileDownloaded = 1,
+ eFileAttached = 2,
+ eBulkDataEntry = 3,
+ ePrint = 4,
+ eFileTransfer = 5,
+}
+
+enum OperationType {
+ eCustomDisplayString = 0,
+ eClipboard = 1,
+ eDroppedText = 2,
+}
+
+}
+
+declare global {
+
+interface nsIContentAnalysisRequest extends nsISupports, Enums<typeof nsIContentAnalysisRequest.AnalysisType & typeof nsIContentAnalysisRequest.OperationType> {
+ readonly analysisType: nsIContentAnalysisRequest.AnalysisType;
+ readonly operationTypeForDisplay: nsIContentAnalysisRequest.OperationType;
+ readonly operationDisplayString: string;
+ readonly textContent: string;
+ readonly filePath: string;
+ readonly url: nsIURI;
+ readonly sha256Digest: string;
+ readonly resources: nsIClientDownloadResource[];
+ readonly email: string;
+ readonly requestToken: string;
+ readonly windowGlobalParent: WindowGlobalParent;
+}
+
+interface nsIContentAnalysisResult extends nsISupports {
+ readonly shouldAllowContent: boolean;
+}
+
+interface nsIContentAnalysisCallback extends nsISupports {
+ contentResult(aResult: nsIContentAnalysisResponse): void;
+ error(aResult: nsresult): void;
+}
+
+interface nsIContentAnalysis extends nsISupports {
+ readonly isActive: boolean;
+ readonly mightBeActive: boolean;
+ isSetByEnterprisePolicy: boolean;
+ analyzeContentRequest(aCar: nsIContentAnalysisRequest, aAutoAcknowledge: boolean): Promise<any>;
+ analyzeContentRequestCallback(aCar: nsIContentAnalysisRequest, aAutoAcknowledge: boolean, callback: nsIContentAnalysisCallback): void;
+ cancelContentAnalysisRequest(aRequestToken: string): void;
+ respondToWarnDialog(aRequestToken: string, aAllowContent: boolean): void;
+ cancelAllRequests(): void;
+ testOnlySetCACmdLineArg(aVal: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/cookiebanners/nsIClickRule.idl
+
+} // global
+
+declare namespace nsIClickRule {
+
+enum RunContext {
+ RUN_TOP = 0,
+ RUN_CHILD = 1,
+ RUN_ALL = 2,
+}
+
+}
+
+declare global {
+
+interface nsIClickRule extends nsISupports, Enums<typeof nsIClickRule.RunContext> {
+ readonly id: string;
+ readonly presence: string;
+ readonly skipPresenceVisibilityCheck: boolean;
+ readonly runContext: nsIClickRule.RunContext;
+ readonly hide: string;
+ readonly optOut: string;
+ readonly optIn: string;
+ readonly isGlobalRule: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/cookiebanners/nsICookieBannerListService.idl
+
+interface nsICookieBannerListService extends nsISupports {
+ init(): void;
+ initForTest(): Promise<any>;
+ shutdown(): void;
+ importAllRules(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/cookiebanners/nsICookieBannerRule.idl
+
+interface nsICookieBannerRule extends nsISupports {
+ id: string;
+ domains: string[];
+ readonly cookiesOptOut: nsICookieRule[];
+ readonly cookiesOptIn: nsICookieRule[];
+ readonly isGlobalRule: boolean;
+ clearCookies(): void;
+ addCookie(aIsOptOut: boolean, aName: string, aValue: string, aHost: string, aPath: string, aExpiryRelative: i64, aUnsetValue: string, aIsSecure: boolean, aIsHttpOnly: boolean, aIsSession: boolean, aSameSite: i32, aSchemeMap: nsICookie.schemeType): void;
+ readonly clickRule: nsIClickRule;
+ addClickRule(aPresence: string, aSkipPresenceVisibilityCheck?: boolean, aRunContext?: nsIClickRule.RunContext, aHide?: string, aOptOut?: string, aOptIn?: string): void;
+ clearClickRule(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/cookiebanners/nsICookieBannerService.idl
+
+} // global
+
+declare namespace nsICookieBannerService {
+
+enum Modes {
+ MODE_DISABLED = 0,
+ MODE_REJECT = 1,
+ MODE_REJECT_OR_ACCEPT = 2,
+ MODE_UNSET = 3,
+}
+
+}
+
+declare global {
+
+interface nsICookieBannerService extends nsISupports, Enums<typeof nsICookieBannerService.Modes> {
+ readonly isEnabled: boolean;
+ readonly rules: nsICookieBannerRule[];
+ resetRules(doImport?: boolean): void;
+ getCookiesForURI(aURI: nsIURI, aIsPrivateBrowsing: boolean): nsICookieRule[];
+ getClickRulesForDomain(aDomain: string, aIsTopLevel: boolean): nsIClickRule[];
+ insertRule(aRule: nsICookieBannerRule): void;
+ removeRule(aRule: nsICookieBannerRule): void;
+ hasRuleForBrowsingContextTree(aBrowsingContext: BrowsingContext): boolean;
+ getDomainPref(aTopLevelURI: nsIURI, aIsPrivate: boolean): nsICookieBannerService.Modes;
+ setDomainPref(aTopLevelURI: nsIURI, aMode: nsICookieBannerService.Modes, aIsPrivate: boolean): void;
+ setDomainPrefAndPersistInPrivateBrowsing(aTopLevelURI: nsIURI, aMode: nsICookieBannerService.Modes): void;
+ removeDomainPref(aTopLevelURI: nsIURI, aIsPrivate: boolean): void;
+ removeAllDomainPrefs(aIsPrivate: boolean): void;
+ shouldStopBannerClickingForSite(aSite: string, aIsTopLevel: boolean, aIsPrivate: boolean): boolean;
+ markSiteExecuted(aSite: string, aIsTopLevel: boolean, aIsPrivate: boolean): void;
+ removeExecutedRecordForSite(aSite: string, aIsPrivate: boolean): void;
+ removeAllExecutedRecords(aIsPrivate: boolean): void;
+ resetDomainTelemetryRecord(aDomain?: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/cookiebanners/nsICookieRule.idl
+
+interface nsICookieRule extends nsISupports {
+ readonly cookie: nsICookie;
+ readonly expiryRelative: i64;
+ readonly unsetValue: string;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/crashes/nsICrashService.idl
+
+interface nsICrashService extends nsISupports {
+ readonly CRASH_TYPE_CRASH: 0;
+ readonly CRASH_TYPE_HANG: 1;
+
+ addCrash(processType: i32, crashType: i32, id: string): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/finalizationwitness/nsIFinalizationWitnessService.idl
+
+interface nsIFinalizationWitnessService extends nsISupports {
+ make(aTopic: string, aString: string): any;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/modules/nsIBrowserWindowTracker.idl
+
+interface nsIVisibleTab extends nsISupports {
+ contentTitle: string;
+ browserId: i64;
+}
+
+interface nsIBrowserWindowTracker extends nsISupports {
+ getAllVisibleTabs(): nsIVisibleTab[];
+ getBrowserById(aBrowserId: u64): nsISupports;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/modules/nsIRegion.idl
+
+interface nsIRegion extends nsISupports {
+ readonly current: string;
+ readonly home: string;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/processtools/nsIProcessToolsService.idl
+
+interface nsIProcessToolsService extends nsISupports {
+ kill(pid: u64): void;
+ crash(pid: u64): void;
+ readonly pid: u64;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/resistfingerprinting/nsIFingerprintingWebCompatService.idl
+
+interface nsIFingerprintingOverride extends nsISupports {
+ readonly firstPartyDomain: string;
+ readonly thirdPartyDomain: string;
+ readonly overrides: string;
+}
+
+interface nsIFingerprintingWebCompatService extends nsISupports {
+ init(): void;
+ shutdown(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/resistfingerprinting/nsIRFPService.idl
+
+interface nsIRFPService extends nsISupports {
+ setFingerprintingOverrides(aOverrides: nsIFingerprintingOverride[]): void;
+ getFingerprintingOverrides(aDomainKey: string): u64;
+ cleanAllOverrides(): void;
+ readonly enabledFingerprintingProtections: u64;
+ cleanAllRandomKeys(): void;
+ cleanRandomKeyByPrincipal(aPrincipal: nsIPrincipal): void;
+ cleanRandomKeyByDomain(aDomain: string): void;
+ cleanRandomKeyByHost(aHost: string, aPattern: string): void;
+ cleanRandomKeyByOriginAttributesPattern(aPattern: string): void;
+ testGenerateRandomKey(aChannel: nsIChannel): u8[];
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/search/nsISearchService.idl
+
+interface nsISearchSubmission extends nsISupports {
+ readonly postData: nsIInputStream;
+ readonly uri: nsIURI;
+}
+
+interface nsISearchEngine extends nsISupports {
+ getSubmission(searchTerms: string, responseType?: string, purpose?: string): nsISearchSubmission;
+ searchTermFromResult(uri: nsIURI): string;
+ readonly searchUrlQueryParamName: string;
+ readonly searchUrlPublicSuffix: string;
+ supportsResponseType(responseType: string): boolean;
+ getIconURL(preferredWidth?: u16): Promise<any>;
+ speculativeConnect(options: any): void;
+ alias: string;
+ readonly aliases: string[];
+ readonly description: string;
+ hidden: boolean;
+ hideOneOffButton: boolean;
+ readonly name: string;
+ readonly id: string;
+ readonly searchForm: string;
+ readonly telemetryId: string;
+ readonly identifier: string;
+ readonly isAppProvided: boolean;
+ readonly inMemory: boolean;
+ readonly isGeneralPurposeEngine: boolean;
+ readonly searchUrlDomain: string;
+ readonly clickUrl: string;
+}
+
+interface nsISearchParseSubmissionResult extends nsISupports {
+ readonly engine: nsISearchEngine;
+ readonly terms: string;
+ readonly termsParameterName: string;
+}
+
+interface nsISearchService extends nsISupports {
+ readonly ERROR_DOWNLOAD_FAILURE: 1;
+ readonly ERROR_DUPLICATE_ENGINE: 2;
+ readonly ERROR_ENGINE_CORRUPTED: 3;
+ readonly CHANGE_REASON_UNKNOWN: 0;
+ readonly CHANGE_REASON_USER: 1;
+ readonly CHANGE_REASON_USER_PRIVATE_SPLIT: 2;
+ readonly CHANGE_REASON_USER_SEARCHBAR: 3;
+ readonly CHANGE_REASON_USER_SEARCHBAR_CONTEXT: 4;
+ readonly CHANGE_REASON_ADDON_INSTALL: 5;
+ readonly CHANGE_REASON_ADDON_UNINSTALL: 6;
+ readonly CHANGE_REASON_CONFIG: 7;
+ readonly CHANGE_REASON_LOCALE: 8;
+ readonly CHANGE_REASON_REGION: 9;
+ readonly CHANGE_REASON_EXPERIMENT: 10;
+ readonly CHANGE_REASON_ENTERPRISE: 11;
+ readonly CHANGE_REASON_UITOUR: 12;
+ readonly CHANGE_REASON_ENGINE_UPDATE: 13;
+
+ init(): Promise<any>;
+ readonly promiseInitialized: Promise<any>;
+ readonly isInitialized: boolean;
+ readonly hasSuccessfullyInitialized: boolean;
+ runBackgroundChecks(): Promise<any>;
+ resetToAppDefaultEngine(): Promise<any>;
+ addOpenSearchEngine(engineURL: string, iconURL: string): Promise<any>;
+ addUserEngine(name: string, url: string, alias?: string): Promise<any>;
+ addEnginesFromExtension(extension: any): Promise<any>;
+ restoreDefaultEngines(): void;
+ getEngineByAlias(alias: string): Promise<any>;
+ getEngineByName(aEngineName: string): nsISearchEngine;
+ getEngineById(aEngineId: string): nsISearchEngine;
+ getEngines(): Promise<any>;
+ getVisibleEngines(): Promise<any>;
+ getAppProvidedEngines(): Promise<any>;
+ getEnginesByExtensionID(extensionID: string): Promise<any>;
+ moveEngine(engine: nsISearchEngine, newIndex: i32): Promise<any>;
+ removeEngine(engine: nsISearchEngine): Promise<any>;
+ removeWebExtensionEngine(id: string): Promise<any>;
+ readonly appDefaultEngine: nsISearchEngine;
+ readonly appPrivateDefaultEngine: nsISearchEngine;
+ defaultEngine: nsISearchEngine;
+ getDefault(): Promise<any>;
+ setDefault(engine: nsISearchEngine, changeSource: u16): Promise<any>;
+ defaultPrivateEngine: nsISearchEngine;
+ getDefaultPrivate(): Promise<any>;
+ setDefaultPrivate(engine: nsISearchEngine, changeSource: u16): Promise<any>;
+ readonly separatePrivateDefaultUrlbarResultEnabled: boolean;
+ maybeSetAndOverrideDefault(extension: any): Promise<any>;
+ getDefaultEngineInfo(): any;
+ parseSubmissionURL(url: string): nsISearchParseSubmissionResult;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/shell/nsIToolkitShellService.idl
+
+interface nsIToolkitShellService extends nsISupports {
+ isDefaultApplication(): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/xulstore/nsIXULStore.idl
+
+interface nsIXULStore extends nsISupports {
+ persist(aNode: Node, attr: string): void;
+ setValue(doc: string, id: string, attr: string, value: string): void;
+ hasValue(doc: string, id: string, attr: string): boolean;
+ getValue(doc: string, id: string, attr: string): string;
+ removeValue(doc: string, id: string, attr: string): void;
+ removeDocument(doc: string): void;
+ getIDsEnumerator(doc: string): nsIStringEnumerator;
+ getAttributeEnumerator(doc: string, id: string): nsIStringEnumerator;
+}
+
+// https://searchfox.org/mozilla-central/source/editor/txmgr/nsITransaction.idl
+
+interface nsITransaction extends nsISupports {
+ doTransaction(): void;
+ undoTransaction(): void;
+ redoTransaction(): void;
+ readonly isTransient: boolean;
+ merge(aTransaction: nsITransaction): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/editor/txmgr/nsITransactionManager.idl
+
+interface nsITransactionManager extends nsISupports {
+ doTransaction(aTransaction: nsITransaction): void;
+ undoTransaction(): void;
+ redoTransaction(): void;
+ clear(): void;
+ clearUndoStack(): void;
+ clearRedoStack(): void;
+ beginBatch(aData: nsISupports): void;
+ endBatch(aAllowEmpty: boolean): void;
+ readonly numberOfUndoItems: i32;
+ readonly numberOfRedoItems: i32;
+ maxTransactionCount: i32;
+ batchTopUndo(): void;
+ removeTopUndo(): void;
+ peekUndoStack(): nsITransaction;
+ peekRedoStack(): nsITransaction;
+}
+
+// https://searchfox.org/mozilla-central/source/editor/spellchecker/nsIInlineSpellChecker.idl
+
+interface nsIInlineSpellChecker extends nsISupports {
+ readonly spellChecker: nsIEditorSpellCheck;
+ init(aEditor: nsIEditor): void;
+ cleanup(aDestroyingFrames: boolean): void;
+ enableRealTimeSpell: boolean;
+ spellCheckRange(aSelection: Range): void;
+ getMisspelledWord(aNode: Node, aOffset: u32): Range;
+ replaceWord(aNode: Node, aOffset: u32, aNewword: string): void;
+ addWordToDictionary(aWord: string): void;
+ removeWordFromDictionary(aWord: string): void;
+ ignoreWord(aWord: string): void;
+ ignoreWords(aWordsToIgnore: string[]): void;
+ updateCurrentDictionary(): void;
+ readonly spellCheckPending: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/intl/uconv/nsIScriptableUConv.idl
+
+interface nsIScriptableUnicodeConverter extends nsISupports {
+ ConvertFromUnicode(aSrc: string): string;
+ Finish(): string;
+ ConvertToUnicode(aSrc: string): string;
+ charset: string;
+ isInternal: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/intl/uconv/nsITextToSubURI.idl
+
+interface nsITextToSubURI extends nsISupports {
+ ConvertAndEscape(charset: string, text: string): string;
+ UnEscapeAndConvert(charset: string, text: string): string;
+ unEscapeURIForUI(aURIFragment: string, aDontEscape?: boolean): string;
+ unEscapeNonAsciiURI(aCharset: string, aURIFragment: string): string;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/timermanager/nsIUpdateTimerManager.idl
+
+interface nsIUpdateTimerManager extends nsISupports {
+ registerTimer(id: string, callback: nsITimerCallback, interval: u32, skipFirst?: boolean): void;
+ unregisterTimer(id: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/mozapps/update/nsIUpdateService.idl
+
+interface nsIUpdatePatch extends nsISupports {
+ readonly type: string;
+ readonly URL: string;
+ finalURL: string;
+ readonly size: u32;
+ state: string;
+ errorCode: i32;
+ selected: boolean;
+ serialize(updates: Document): Element;
+}
+
+interface nsIUpdate extends nsISupports {
+ readonly type: string;
+ readonly name: string;
+ readonly displayVersion: string;
+ readonly appVersion: string;
+ readonly previousAppVersion: string;
+ readonly buildID: string;
+ readonly detailsURL: string;
+ readonly serviceURL: string;
+ readonly channel: string;
+ readonly unsupported: boolean;
+ promptWaitTime: i64;
+ isCompleteUpdate: boolean;
+ installDate: i64;
+ statusText: string;
+ readonly selectedPatch: nsIUpdatePatch;
+ state: string;
+ errorCode: i32;
+ elevationFailure: boolean;
+ readonly patchCount: u32;
+ getPatchAt(index: u32): nsIUpdatePatch;
+ serialize(updates: Document): Element;
+}
+
+interface nsIUpdateCheckResult extends nsISupports {
+ readonly checksAllowed: boolean;
+ readonly succeeded: boolean;
+ readonly request: any;
+ readonly updates: nsIUpdate[];
+}
+
+interface nsIUpdateCheck extends nsISupports {
+ readonly id: i32;
+ readonly result: Promise<any>;
+}
+
+interface nsIUpdateChecker extends nsISupports {
+ readonly BACKGROUND_CHECK: 1;
+ readonly FOREGROUND_CHECK: 2;
+
+ checkForUpdates(checkType: i32): nsIUpdateCheck;
+ getUpdateURL(checkType: i32): Promise<any>;
+ stopCheck(id: i32): void;
+ stopAllChecks(): void;
+}
+
+interface nsIApplicationUpdateService extends nsISupports {
+ readonly STATE_IDLE: 1;
+ readonly STATE_DOWNLOADING: 2;
+ readonly STATE_STAGING: 4;
+ readonly STATE_PENDING: 5;
+ readonly STATE_SWAP: 6;
+
+ checkForBackgroundUpdates(): boolean;
+ selectUpdate(updates: nsIUpdate[]): nsIUpdate;
+ addDownloadListener(listener: nsIRequestObserver): void;
+ removeDownloadListener(listener: nsIRequestObserver): void;
+ downloadUpdate(update: nsIUpdate): Promise<any>;
+ onCheckComplete(result: nsIUpdateCheckResult): Promise<any>;
+ stopDownload(): Promise<any>;
+ readonly disabled: boolean;
+ readonly canUsuallyCheckForUpdates: boolean;
+ readonly canCheckForUpdates: boolean;
+ readonly elevationRequired: boolean;
+ readonly canUsuallyApplyUpdates: boolean;
+ readonly canApplyUpdates: boolean;
+ readonly isOtherInstanceHandlingUpdates: boolean;
+ readonly canUsuallyStageUpdates: boolean;
+ readonly canStageUpdates: boolean;
+ readonly canUsuallyUseBits: boolean;
+ readonly canUseBits: boolean;
+ readonly manualUpdateOnly: boolean;
+ readonly isAppBaseDirWritable: boolean;
+ onlyDownloadUpdatesThisSession: boolean;
+ getStateName(state: i32): string;
+ readonly currentState: i32;
+ readonly stateTransition: Promise<any>;
+}
+
+interface nsIUpdateProcessor extends nsISupports {
+ processUpdate(): void;
+ getServiceRegKeyExists(): boolean;
+ attemptAutomaticApplicationRestartWithLaunchArgs(argvExtra: string[]): i32;
+ waitForProcessExit(pid: u32, timeoutMS: u32): void;
+}
+
+interface nsIUpdateSyncManager extends nsISupports {
+ isOtherInstanceRunning(): boolean;
+ resetLock(anAppFile?: nsIFile): void;
+}
+
+interface nsIUpdateManager extends nsISupports {
+ getUpdateAt(index: i32): nsIUpdate;
+ getUpdateCount(): i32;
+ readyUpdate: nsIUpdate;
+ downloadingUpdate: nsIUpdate;
+ addUpdateToHistory(update: nsIUpdate): void;
+ saveUpdates(): void;
+ refreshUpdateStatus(): Promise<any>;
+ elevationOptedIn(): void;
+ cleanupDownloadingUpdate(): void;
+ cleanupReadyUpdate(): void;
+ doInstallCleanup(): Promise<any>;
+ doUninstallCleanup(): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/base/nsCURILoader.idl
+
+// https://searchfox.org/mozilla-central/source/uriloader/base/nsIContentHandler.idl
+
+interface nsIContentHandler extends nsISupports {
+ handleContent(aContentType: string, aWindowContext: nsIInterfaceRequestor, aRequest: nsIRequest): void;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/base/nsIDocumentLoader.idl
+
+interface nsIDocumentLoader extends nsISupports {
+ stop(): void;
+ readonly container: nsISupports;
+ readonly loadGroup: nsILoadGroup;
+ readonly documentChannel: nsIChannel;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/base/nsITransfer.idl
+
+interface nsITransfer extends nsIWebProgressListener2 {
+ readonly DOWNLOAD_ACCEPTABLE: 0;
+ readonly DOWNLOAD_FORBIDDEN: 1;
+ readonly DOWNLOAD_POTENTIALLY_UNSAFE: 2;
+
+ init(aSource: nsIURI, aSourceOriginalURI: nsIURI, aTarget: nsIURI, aDisplayName: string, aMIMEInfo: nsIMIMEInfo, startTime: PRTime, aTempFile: nsIFile, aCancelable: nsICancelable, aIsPrivate: boolean, aDownloadClassification: i32, aReferrerInfo: nsIReferrerInfo, aOpenDownloadsListOnStart?: boolean): void;
+ initWithBrowsingContext(aSource: nsIURI, aTarget: nsIURI, aDisplayName: string, aMIMEInfo: nsIMIMEInfo, startTime: PRTime, aTempFile: nsIFile, aCancelable: nsICancelable, aIsPrivate: boolean, aDownloadClassification: i32, aReferrerInfo: nsIReferrerInfo, aOpenDownloadsListOnStart: boolean, aBrowsingContext: BrowsingContext, aHandleInternally: boolean, aHttpChannel: nsIHttpChannel): void;
+ setSha256Hash(aHash: string): void;
+ setSignatureInfo(aSignatureInfo: u8[][][]): void;
+ setRedirects(aRedirects: nsIArray): void;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/base/nsIURIContentListener.idl
+
+interface nsIURIContentListener extends nsISupports {
+ doContent(aContentType: string, aIsContentPreferred: boolean, aRequest: nsIRequest, aContentHandler: OutParam<nsIStreamListener>): boolean;
+ isPreferred(aContentType: string, aDesiredContentType: OutParam<string>): boolean;
+ canHandleContent(aContentType: string, aIsContentPreferred: boolean, aDesiredContentType: OutParam<string>): boolean;
+ loadCookie: nsISupports;
+ parentContentListener: nsIURIContentListener;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/base/nsIURILoader.idl
+
+interface nsIURILoader extends nsISupports {
+ readonly IS_CONTENT_PREFERRED: 1;
+ readonly DONT_RETARGET: 2;
+
+ registerContentListener(aContentListener: nsIURIContentListener): void;
+ unRegisterContentListener(aContentListener: nsIURIContentListener): void;
+ openURI(aChannel: nsIChannel, aFlags: u32, aWindowContext: nsIInterfaceRequestor): void;
+ openChannel(aChannel: nsIChannel, aFlags: u32, aWindowContext: nsIInterfaceRequestor): nsIStreamListener;
+ stop(aLoadCookie: nsISupports): void;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/base/nsIWebProgress.idl
+
+interface nsIWebProgress extends nsISupports {
+ readonly NOTIFY_STATE_REQUEST: 1;
+ readonly NOTIFY_STATE_DOCUMENT: 2;
+ readonly NOTIFY_STATE_NETWORK: 4;
+ readonly NOTIFY_STATE_WINDOW: 8;
+ readonly NOTIFY_STATE_ALL: 15;
+ readonly NOTIFY_PROGRESS: 16;
+ readonly NOTIFY_STATUS: 32;
+ readonly NOTIFY_SECURITY: 64;
+ readonly NOTIFY_LOCATION: 128;
+ readonly NOTIFY_REFRESH: 256;
+ readonly NOTIFY_CONTENT_BLOCKING: 512;
+ readonly NOTIFY_ALL: 1023;
+
+ addProgressListener(aListener: nsIWebProgressListener, aNotifyMask: u32): void;
+ removeProgressListener(aListener: nsIWebProgressListener): void;
+ readonly browsingContext: BrowsingContext;
+ readonly DOMWindow: mozIDOMWindowProxy;
+ readonly isTopLevel: boolean;
+ readonly isLoadingDocument: boolean;
+ readonly loadType: u32;
+ target: nsIEventTarget;
+ readonly documentRequest: nsIRequest;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/base/nsIWebProgressListener.idl
+
+interface nsIWebProgressListener extends nsISupports {
+ readonly STATE_START: 1;
+ readonly STATE_REDIRECTING: 2;
+ readonly STATE_TRANSFERRING: 4;
+ readonly STATE_NEGOTIATING: 8;
+ readonly STATE_STOP: 16;
+ readonly STATE_IS_REQUEST: 65536;
+ readonly STATE_IS_DOCUMENT: 131072;
+ readonly STATE_IS_NETWORK: 262144;
+ readonly STATE_IS_WINDOW: 524288;
+ readonly STATE_IS_REDIRECTED_DOCUMENT: 1048576;
+ readonly STATE_RESTORING: 16777216;
+ readonly STATE_IS_INSECURE: 4;
+ readonly STATE_IS_BROKEN: 1;
+ readonly STATE_IS_SECURE: 2;
+ readonly STATE_BLOCKED_MIXED_ACTIVE_CONTENT: 16;
+ readonly STATE_LOADED_MIXED_ACTIVE_CONTENT: 32;
+ readonly STATE_BLOCKED_MIXED_DISPLAY_CONTENT: 256;
+ readonly STATE_LOADED_MIXED_DISPLAY_CONTENT: 512;
+ readonly STATE_IDENTITY_EV_TOPLEVEL: 1048576;
+ readonly STATE_IDENTITY_ASSOCIATED: 2097152;
+ readonly STATE_USES_SSL_3: 16777216;
+ readonly STATE_USES_WEAK_CRYPTO: 33554432;
+ readonly STATE_CERT_USER_OVERRIDDEN: 67108864;
+ readonly STATE_BLOCKED_TRACKING_CONTENT: 4096;
+ readonly STATE_LOADED_LEVEL_1_TRACKING_CONTENT: 8192;
+ readonly STATE_LOADED_LEVEL_2_TRACKING_CONTENT: 1048576;
+ readonly STATE_BLOCKED_FINGERPRINTING_CONTENT: 64;
+ readonly STATE_LOADED_FINGERPRINTING_CONTENT: 1024;
+ readonly STATE_REPLACED_FINGERPRINTING_CONTENT: 134217728;
+ readonly STATE_ALLOWED_FINGERPRINTING_CONTENT: 512;
+ readonly STATE_BLOCKED_CRYPTOMINING_CONTENT: 2048;
+ readonly STATE_LOADED_CRYPTOMINING_CONTENT: 2097152;
+ readonly STATE_BLOCKED_UNSAFE_CONTENT: 16384;
+ readonly STATE_COOKIES_LOADED: 32768;
+ readonly STATE_COOKIES_LOADED_TRACKER: 262144;
+ readonly STATE_COOKIES_LOADED_SOCIALTRACKER: 524288;
+ readonly STATE_COOKIES_BLOCKED_BY_PERMISSION: 268435456;
+ readonly STATE_COOKIES_BLOCKED_TRACKER: 536870912;
+ readonly STATE_COOKIES_BLOCKED_SOCIALTRACKER: 16777216;
+ readonly STATE_COOKIES_BLOCKED_ALL: 1073741824;
+ readonly STATE_COOKIES_PARTITIONED_FOREIGN: 2147483648;
+ readonly STATE_COOKIES_BLOCKED_FOREIGN: 128;
+ readonly STATE_BLOCKED_SOCIALTRACKING_CONTENT: 65536;
+ readonly STATE_LOADED_SOCIALTRACKING_CONTENT: 131072;
+ readonly STATE_REPLACED_TRACKING_CONTENT: 16;
+ readonly STATE_ALLOWED_TRACKING_CONTENT: 32;
+ readonly STATE_BLOCKED_EMAILTRACKING_CONTENT: 4194304;
+ readonly STATE_LOADED_EMAILTRACKING_LEVEL_1_CONTENT: 8388608;
+ readonly STATE_LOADED_EMAILTRACKING_LEVEL_2_CONTENT: 256;
+ readonly STATE_ALLOWED_CANVAS_FINGERPRINTING: 33554432;
+ readonly STATE_ALLOWED_FONT_FINGERPRINTING: 67108864;
+ readonly STATE_BLOCKED_SUSPICIOUS_FINGERPRINTING: 4;
+ readonly STATE_HTTPS_ONLY_MODE_UPGRADED: 4194304;
+ readonly STATE_HTTPS_ONLY_MODE_UPGRADE_FAILED: 8388608;
+ readonly STATE_HTTPS_ONLY_MODE_UPGRADED_FIRST: 134217728;
+ readonly LOCATION_CHANGE_SAME_DOCUMENT: 1;
+ readonly LOCATION_CHANGE_ERROR_PAGE: 2;
+ readonly LOCATION_CHANGE_RELOAD: 4;
+ readonly LOCATION_CHANGE_HASHCHANGE: 8;
+ readonly LOCATION_CHANGE_SESSION_STORE: 16;
+
+ onStateChange(aWebProgress: nsIWebProgress, aRequest: nsIRequest, aStateFlags: u32, aStatus: nsresult): void;
+ onProgressChange(aWebProgress: nsIWebProgress, aRequest: nsIRequest, aCurSelfProgress: i32, aMaxSelfProgress: i32, aCurTotalProgress: i32, aMaxTotalProgress: i32): void;
+ onLocationChange(aWebProgress: nsIWebProgress, aRequest: nsIRequest, aLocation: nsIURI, aFlags?: u32): void;
+ onStatusChange(aWebProgress: nsIWebProgress, aRequest: nsIRequest, aStatus: nsresult, aMessage: string): void;
+ onSecurityChange(aWebProgress: nsIWebProgress, aRequest: nsIRequest, aState: u32): void;
+ onContentBlockingEvent(aWebProgress: nsIWebProgress, aRequest: nsIRequest, aEvent: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/uriloader/base/nsIWebProgressListener2.idl
+
+interface nsIWebProgressListener2 extends nsIWebProgressListener {
+ onProgressChange64(aWebProgress: nsIWebProgress, aRequest: nsIRequest, aCurSelfProgress: i64, aMaxSelfProgress: i64, aCurTotalProgress: i64, aMaxTotalProgress: i64): void;
+ onRefreshAttempted(aWebProgress: nsIWebProgress, aRefreshURI: nsIURI, aMillis: u32, aSameURI: boolean): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/url-classifier/nsIChannelClassifierService.idl
+
+interface nsIUrlClassifierBlockedChannel extends nsISupports {
+ readonly TRACKING_PROTECTION: 0;
+ readonly SOCIAL_TRACKING_PROTECTION: 1;
+ readonly FINGERPRINTING_PROTECTION: 2;
+ readonly CRYPTOMINING_PROTECTION: 3;
+
+ readonly reason: u8;
+ readonly tables: string;
+ readonly url: string;
+ readonly tabId: u64;
+ readonly channelId: u64;
+ readonly isPrivateBrowsing: boolean;
+ readonly topLevelUrl: string;
+ replace(): void;
+ allow(): void;
+}
+
+interface nsIChannelClassifierService extends nsISupports {
+ addListener(aObserver: nsIObserver): void;
+ removeListener(aObserver: nsIObserver): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/url-classifier/nsIURIClassifier.idl
+
+type nsIURIClassifierCallback = Callable<{
+ onClassifyComplete(aErrorCode: nsresult, aList: string, aProvider: string, aFullHash: string): void;
+}>
+
+interface nsIURIClassifier extends nsISupports {
+ classify(aPrincipal: nsIPrincipal, aCallback: nsIURIClassifierCallback): boolean;
+ asyncClassifyLocalWithFeatures(aURI: nsIURI, aFeatures: nsIUrlClassifierFeature[], aListType: nsIUrlClassifierFeature.listType, aCallback: nsIUrlClassifierFeatureCallback): void;
+ getFeatureByName(aFeatureName: string): nsIUrlClassifierFeature;
+ getFeatureNames(): string[];
+ createFeatureWithTables(aName: string, aBlocklistTables: string[], aEntitylistTables: string[]): nsIUrlClassifierFeature;
+ sendThreatHitReport(aChannel: nsIChannel, aProvider: string, aList: string, aFullHash: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/url-classifier/nsIUrlClassifierExceptionListService.idl
+
+type nsIUrlClassifierExceptionListObserver = Callable<{
+ onExceptionListUpdate(aList: string): void;
+}>
+
+interface nsIUrlClassifierExceptionListService extends nsISupports {
+ registerAndRunExceptionListObserver(aFeature: string, aPrefName: string, aObserver: nsIUrlClassifierExceptionListObserver): void;
+ unregisterExceptionListObserver(aFeature: string, aObserver: nsIUrlClassifierExceptionListObserver): void;
+ clear(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/netwerk/url-classifier/nsIUrlClassifierFeature.idl
+
+} // global
+
+declare namespace nsIUrlClassifierFeature {
+
+enum listType {
+ blocklist = 0,
+ entitylist = 1,
+}
+
+enum URIType {
+ blocklistURI = 0,
+ entitylistURI = 1,
+ pairwiseEntitylistURI = 2,
+}
+
+}
+
+declare global {
+
+interface nsIUrlClassifierFeature extends nsISupports, Enums<typeof nsIUrlClassifierFeature.listType & typeof nsIUrlClassifierFeature.URIType> {
+ readonly name: string;
+ readonly exceptionHostList: string;
+}
+
+interface nsIUrlClassifierFeatureResult extends nsISupports {
+ readonly uri: nsIURI;
+ readonly feature: nsIUrlClassifierFeature;
+ readonly list: string;
+}
+
+type nsIUrlClassifierFeatureCallback = Callable<{
+ onClassifyComplete(aResults: nsIUrlClassifierFeatureResult[]): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/IUrlClassifierUITelemetry.idl
+
+interface IUrlClassifierUITelemetry extends nsISupports {
+ readonly WARNING_MALWARE_PAGE_TOP: 1;
+ readonly WARNING_MALWARE_PAGE_TOP_WHY_BLOCKED: 2;
+ readonly WARNING_MALWARE_PAGE_TOP_GET_ME_OUT_OF_HERE: 3;
+ readonly WARNING_MALWARE_PAGE_TOP_IGNORE_WARNING: 4;
+ readonly WARNING_MALWARE_PAGE_FRAME: 5;
+ readonly WARNING_MALWARE_PAGE_FRAME_WHY_BLOCKED: 6;
+ readonly WARNING_MALWARE_PAGE_FRAME_GET_ME_OUT_OF_HERE: 7;
+ readonly WARNING_MALWARE_PAGE_FRAME_IGNORE_WARNING: 8;
+ readonly WARNING_PHISHING_PAGE_TOP: 9;
+ readonly WARNING_PHISHING_PAGE_TOP_WHY_BLOCKED: 10;
+ readonly WARNING_PHISHING_PAGE_TOP_GET_ME_OUT_OF_HERE: 11;
+ readonly WARNING_PHISHING_PAGE_TOP_IGNORE_WARNING: 12;
+ readonly WARNING_PHISHING_PAGE_FRAME: 13;
+ readonly WARNING_PHISHING_PAGE_FRAME_WHY_BLOCKED: 14;
+ readonly WARNING_PHISHING_PAGE_FRAME_GET_ME_OUT_OF_HERE: 15;
+ readonly WARNING_PHISHING_PAGE_FRAME_IGNORE_WARNING: 16;
+ readonly WARNING_UNWANTED_PAGE_TOP: 17;
+ readonly WARNING_UNWANTED_PAGE_TOP_WHY_BLOCKED: 18;
+ readonly WARNING_UNWANTED_PAGE_TOP_GET_ME_OUT_OF_HERE: 19;
+ readonly WARNING_UNWANTED_PAGE_TOP_IGNORE_WARNING: 20;
+ readonly WARNING_UNWANTED_PAGE_FRAME: 21;
+ readonly WARNING_UNWANTED_PAGE_FRAME_WHY_BLOCKED: 22;
+ readonly WARNING_UNWANTED_PAGE_FRAME_GET_ME_OUT_OF_HERE: 23;
+ readonly WARNING_UNWANTED_PAGE_FRAME_IGNORE_WARNING: 24;
+ readonly WARNING_HARMFUL_PAGE_TOP: 25;
+ readonly WARNING_HARMFUL_PAGE_TOP_WHY_BLOCKED: 26;
+ readonly WARNING_HARMFUL_PAGE_TOP_GET_ME_OUT_OF_HERE: 27;
+ readonly WARNING_HARMFUL_PAGE_TOP_IGNORE_WARNING: 28;
+ readonly WARNING_HARMFUL_PAGE_FRAME: 29;
+ readonly WARNING_HARMFUL_PAGE_FRAME_WHY_BLOCKED: 30;
+ readonly WARNING_HARMFUL_PAGE_FRAME_GET_ME_OUT_OF_HERE: 31;
+ readonly WARNING_HARMFUL_PAGE_FRAME_IGNORE_WARNING: 32;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlClassifierDBService.idl
+
+type nsIUrlClassifierCallback = Callable<{
+ handleEvent(value: string): void;
+}>
+
+interface nsIUrlClassifierUpdateObserver extends nsISupports {
+ updateUrlRequested(url: string, table: string): void;
+ streamFinished(status: nsresult, delay: u32): void;
+ updateError(error: nsresult): void;
+ updateSuccess(requestedTimeout: u32): void;
+}
+
+interface nsIUrlClassifierDBService extends nsISupports {
+ lookup(principal: nsIPrincipal, tables: string, c: nsIUrlClassifierCallback): void;
+ getTables(c: nsIUrlClassifierCallback): void;
+ setHashCompleter(tableName: string, completer: nsIUrlClassifierHashCompleter): void;
+ clearLastResults(): void;
+ beginUpdate(updater: nsIUrlClassifierUpdateObserver, tables: string): void;
+ beginStream(table: string): void;
+ updateStream(updateChunk: string): void;
+ finishStream(): void;
+ finishUpdate(): void;
+ cancelUpdate(): void;
+ resetDatabase(): void;
+ reloadDatabase(): void;
+ clearCache(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlClassifierHashCompleter.idl
+
+interface nsIFullHashMatch extends nsISupports {
+ readonly tableName: string;
+ readonly fullHash: string;
+ readonly cacheDuration: u32;
+}
+
+interface nsIUrlClassifierHashCompleterCallback extends nsISupports {
+ completionV2(hash: string, table: string, chunkId: u32): void;
+ completionV4(partialHash: string, table: string, negativeCacheDuration: u32, fullHashes: nsIArray): void;
+ completionFinished(status: nsresult): void;
+}
+
+interface nsIUrlClassifierHashCompleter extends nsISupports {
+ complete(partialHash: string, gethashUrl: string, tableName: string, callback: nsIUrlClassifierHashCompleterCallback): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlClassifierInfo.idl
+
+interface nsIUrlClassifierPositiveCacheEntry extends nsISupports {
+ readonly fullhash: string;
+ readonly expiry: i64;
+}
+
+interface nsIUrlClassifierCacheEntry extends nsISupports {
+ readonly prefix: string;
+ readonly expiry: i64;
+ readonly matches: nsIArray;
+}
+
+interface nsIUrlClassifierCacheInfo extends nsISupports {
+ readonly table: string;
+ readonly entries: nsIArray;
+}
+
+type nsIUrlClassifierGetCacheCallback = Callable<{
+ onGetCacheComplete(info: nsIUrlClassifierCacheInfo): void;
+}>
+
+interface nsIUrlClassifierInfo extends nsISupports {
+ getCacheInfo(table: string, callback: nsIUrlClassifierGetCacheCallback): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlClassifierPrefixSet.idl
+
+interface nsIUrlClassifierPrefixSet extends nsISupports {
+ init(aName: string): void;
+ setPrefixes(aPrefixes: u32[], aLength: u32): void;
+ getPrefixes(aCount: OutParam<u32>): OutParam<u32[]>;
+ contains(aPrefix: u32): boolean;
+ isEmpty(): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlClassifierRemoteSettingsService.idl
+
+interface nsIUrlClassifierRemoteSettingsService extends nsISupports {
+ fetchList(aPayload: string, aListener: nsIStreamListener): void;
+ clear(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlClassifierStreamUpdater.idl
+
+interface nsIUrlClassifierStreamUpdater extends nsISupports {
+ downloadUpdates(aRequestTables: string, aRequestPayload: string, aIsPostRequest: boolean, aUpdateUrl: string, aSuccessCallback: nsIUrlClassifierCallback, aUpdateErrorCallback: nsIUrlClassifierCallback, aDownloadErrorCallback: nsIUrlClassifierCallback): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlClassifierUtils.idl
+
+interface nsIUrlClassifierParseFindFullHashCallback extends nsISupports {
+ onCompleteHashFound(aCompleteHash: string, aTableNames: string, aPerHashCacheDuration: u32): void;
+ onResponseParsed(aMinWaitDuration: u32, aNegCacheDuration: u32): void;
+}
+
+interface nsIUrlClassifierUtils extends nsISupports {
+ getKeyForURI(uri: nsIURI): string;
+ getProvider(tableName: string): string;
+ getTelemetryProvider(tableName: string): string;
+ getProtocolVersion(provider: string): string;
+ convertThreatTypeToListNames(threatType: u32): string;
+ convertListNameToThreatType(listName: string): u32;
+ makeUpdateRequestV4(aListNames: string[], aStatesBase64: string[]): string;
+ makeFindFullHashRequestV4(aListNames: string[], aListStatesBase64: string[], aPrefixes: string[]): string;
+ makeThreatHitReport(aChannel: nsIChannel, aListName: string, aHashBase64: string): string;
+ parseFindFullHashResponseV4(aResponse: string, aCallback: nsIUrlClassifierParseFindFullHashCallback): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlListManager.idl
+
+interface nsIUrlListManager extends nsISupports {
+ getGethashUrl(tableName: string): string;
+ getUpdateUrl(tableName: string): string;
+ registerTable(tableName: string, providerName: string, updateUrl: string, gethashUrl: string): boolean;
+ unregisterTable(tableName: string): void;
+ enableUpdate(tableName: string): void;
+ disableAllUpdates(): void;
+ disableUpdate(tableName: string): void;
+ maybeToggleUpdateChecking(): void;
+ checkForUpdates(updateUrl: string): boolean;
+ forceUpdates(tableNames: string): boolean;
+ getBackOffTime(provider: string): u64;
+ isRegistered(): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/urlformatter/nsIURLFormatter.idl
+
+interface nsIURLFormatter extends nsISupports {
+ formatURL(aFormat: string): string;
+ formatURLPref(aPref: string): string;
+ trimSensitiveURLs(aMsg: string): string;
+}
+
+// https://searchfox.org/mozilla-central/source/ipc/glue/test/utility_process_xpcom/nsIUtilityProcessTest.idl
+
+interface nsIUtilityProcessTest extends nsISupports {
+ startProcess(actorsToAdd?: string[]): Promise<any>;
+ untilChildProcessDead(pid: u32): Promise<any>;
+ noteIntentionalCrash(pid: u32): void;
+ stopProcess(utilityActorName?: string): void;
+ testTelemetryProbes(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/webbrowserpersist/nsIWebBrowserPersist.idl
+
+interface nsIWebBrowserPersist extends nsICancelable {
+ readonly PERSIST_FLAGS_NONE: 0;
+ readonly PERSIST_FLAGS_FROM_CACHE: 1;
+ readonly PERSIST_FLAGS_BYPASS_CACHE: 2;
+ readonly PERSIST_FLAGS_IGNORE_REDIRECTED_DATA: 4;
+ readonly PERSIST_FLAGS_IGNORE_IFRAMES: 8;
+ readonly PERSIST_FLAGS_NO_CONVERSION: 16;
+ readonly PERSIST_FLAGS_REPLACE_EXISTING_FILES: 32;
+ readonly PERSIST_FLAGS_NO_BASE_TAG_MODIFICATIONS: 64;
+ readonly PERSIST_FLAGS_FIXUP_ORIGINAL_DOM: 128;
+ readonly PERSIST_FLAGS_FIXUP_LINKS_TO_DESTINATION: 256;
+ readonly PERSIST_FLAGS_DONT_FIXUP_LINKS: 512;
+ readonly PERSIST_FLAGS_SERIALIZE_OUTPUT: 1024;
+ readonly PERSIST_FLAGS_DONT_CHANGE_FILENAMES: 2048;
+ readonly PERSIST_FLAGS_FAIL_ON_BROKEN_LINKS: 4096;
+ readonly PERSIST_FLAGS_CLEANUP_ON_FAILURE: 8192;
+ readonly PERSIST_FLAGS_AUTODETECT_APPLY_CONVERSION: 16384;
+ readonly PERSIST_FLAGS_APPEND_TO_FILE: 32768;
+ readonly PERSIST_STATE_READY: 1;
+ readonly PERSIST_STATE_SAVING: 2;
+ readonly PERSIST_STATE_FINISHED: 3;
+ readonly ENCODE_FLAGS_SELECTION_ONLY: 1;
+ readonly ENCODE_FLAGS_FORMATTED: 2;
+ readonly ENCODE_FLAGS_RAW: 4;
+ readonly ENCODE_FLAGS_BODY_ONLY: 8;
+ readonly ENCODE_FLAGS_PREFORMATTED: 16;
+ readonly ENCODE_FLAGS_WRAP: 32;
+ readonly ENCODE_FLAGS_FORMAT_FLOWED: 64;
+ readonly ENCODE_FLAGS_ABSOLUTE_LINKS: 128;
+ readonly ENCODE_FLAGS_CR_LINEBREAKS: 512;
+ readonly ENCODE_FLAGS_LF_LINEBREAKS: 1024;
+ readonly ENCODE_FLAGS_NOSCRIPT_CONTENT: 2048;
+ readonly ENCODE_FLAGS_NOFRAMES_CONTENT: 4096;
+ readonly ENCODE_FLAGS_ENCODE_BASIC_ENTITIES: 8192;
+
+ persistFlags: u32;
+ readonly currentState: u32;
+ readonly result: nsresult;
+ progressListener: nsIWebProgressListener;
+ saveURI(aURI: nsIURI, aTriggeringPrincipal: nsIPrincipal, aCacheKey: u32, aReferrerInfo: nsIReferrerInfo, aCookieJarSettings: nsICookieJarSettings, aPostData: nsIInputStream, aExtraHeaders: string, aFile: nsISupports, aContentPolicyType: nsContentPolicyType, aIsPrivate: boolean): void;
+ saveChannel(aChannel: nsIChannel, aFile: nsISupports): void;
+ saveDocument(aDocument: nsISupports, aFile: nsISupports, aDataPath: nsISupports, aOutputContentType: string, aEncodingFlags: u32, aWrapColumn: u32): void;
+ cancelSave(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/webbrowserpersist/nsIWebBrowserPersistDocument.idl
+
+interface nsIWebBrowserPersistURIMap extends nsISupports {
+ readonly numMappedURIs: u32;
+ getURIMapping(aIndex: u32, aMapFrom: OutParam<string>, aMapTo: OutParam<string>): void;
+ readonly targetBaseURI: string;
+}
+
+interface nsIWebBrowserPersistDocument extends nsISupports {
+ readonly isClosed: boolean;
+ readonly isPrivate: boolean;
+ readonly documentURI: string;
+ readonly baseURI: string;
+ readonly contentType: string;
+ readonly characterSet: string;
+ readonly title: string;
+ readonly referrerInfo: nsIReferrerInfo;
+ readonly cookieJarSettings: nsICookieJarSettings;
+ readonly contentDisposition: string;
+ readonly postData: nsIInputStream;
+ readonly principal: nsIPrincipal;
+ readonly cacheKey: u32;
+ persistFlags: u32;
+ readResources(aVisitor: nsIWebBrowserPersistResourceVisitor): void;
+ writeContent(aStream: nsIOutputStream, aURIMap: nsIWebBrowserPersistURIMap, aRequestedContentType: string, aEncoderFlags: u32, aWrapColumn: u32, aCompletion: nsIWebBrowserPersistWriteCompletion): void;
+}
+
+interface nsIWebBrowserPersistResourceVisitor extends nsISupports {
+ visitResource(aDocument: nsIWebBrowserPersistDocument, aURI: string, aContentPolicyType: nsContentPolicyType): void;
+ visitDocument(aDocument: nsIWebBrowserPersistDocument, aSubDocument: nsIWebBrowserPersistDocument): void;
+ visitBrowsingContext(aDocument: nsIWebBrowserPersistDocument, aContext: BrowsingContext): void;
+ endVisit(aDocument: nsIWebBrowserPersistDocument, aStatus: nsresult): void;
+}
+
+type nsIWebBrowserPersistWriteCompletion = Callable<{
+ onFinish(aDocument: nsIWebBrowserPersistDocument, aStream: nsIOutputStream, aContentType: string, aStatus: nsresult): void;
+}>
+
+interface nsIWebBrowserPersistDocumentReceiver extends nsISupports {
+ onDocumentReady(aDocument: nsIWebBrowserPersistDocument): void;
+ onError(aFailure: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/browser/nsIWebBrowser.idl
+
+interface nsIWebBrowser extends nsISupports {
+ containerWindow: nsIWebBrowserChrome;
+ readonly contentDOMWindow: mozIDOMWindowProxy;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/browser/nsIWebBrowserChrome.idl
+
+interface nsIWebBrowserChrome extends nsISupports {
+ readonly CHROME_DEFAULT: 1;
+ readonly CHROME_WINDOW_BORDERS: 2;
+ readonly CHROME_WINDOW_CLOSE: 4;
+ readonly CHROME_WINDOW_RESIZE: 8;
+ readonly CHROME_MENUBAR: 16;
+ readonly CHROME_TOOLBAR: 32;
+ readonly CHROME_LOCATIONBAR: 64;
+ readonly CHROME_STATUSBAR: 128;
+ readonly CHROME_PERSONAL_TOOLBAR: 256;
+ readonly CHROME_SCROLLBARS: 512;
+ readonly CHROME_TITLEBAR: 1024;
+ readonly CHROME_EXTRA: 2048;
+ readonly CHROME_ALL: 4094;
+ readonly CHROME_WINDOW_MINIMIZE: 16384;
+ readonly CHROME_ALERT: 32768;
+ readonly CHROME_PRIVATE_WINDOW: 65536;
+ readonly CHROME_NON_PRIVATE_WINDOW: 131072;
+ readonly CHROME_PRIVATE_LIFETIME: 262144;
+ readonly CHROME_ALWAYS_ON_TOP: 524288;
+ readonly CHROME_REMOTE_WINDOW: 1048576;
+ readonly CHROME_FISSION_WINDOW: 2097152;
+ readonly CHROME_SUPPRESS_ANIMATION: 16777216;
+ readonly CHROME_WINDOW_RAISED: 33554432;
+ readonly CHROME_WINDOW_LOWERED: 67108864;
+ readonly CHROME_CENTER_SCREEN: 134217728;
+ readonly CHROME_DEPENDENT: 268435456;
+ readonly CHROME_MODAL: 536870912;
+ readonly CHROME_OPENAS_DIALOG: 1073741824;
+ readonly CHROME_OPENAS_CHROME: 2147483648;
+ readonly CHROME_MINIMAL_POPUP: 18126;
+
+ setLinkStatus(status: string): void;
+ chromeFlags: u32;
+ showAsModal(): void;
+ isWindowModal(): boolean;
+ blur(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/browser/nsIWebBrowserChromeFocus.idl
+
+interface nsIWebBrowserChromeFocus extends nsISupports {
+ focusNextElement(aForDocumentNavigation: boolean): void;
+ focusPrevElement(aForDocumentNavigation: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/browser/nsIWebBrowserPrint.idl
+
+interface nsIWebBrowserPrint extends nsISupports {
+ readonly PRINTPREVIEW_GOTO_PAGENUM: 0;
+ readonly PRINTPREVIEW_PREV_PAGE: 1;
+ readonly PRINTPREVIEW_NEXT_PAGE: 2;
+ readonly PRINTPREVIEW_HOME: 3;
+ readonly PRINTPREVIEW_END: 4;
+
+ readonly doingPrint: boolean;
+ readonly doingPrintPreview: boolean;
+ readonly rawNumPages: i32;
+ readonly printPreviewNumPages: i32;
+ readonly printPreviewCurrentPageNumber: i32;
+ printPreviewScrollToPage(aNavType: i16, aPageNum: i32): void;
+ exitPrintPreview(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/extensions/storage/mozIExtensionStorageArea.idl
+
+interface mozIExtensionStorageArea extends nsISupports {
+ readonly SYNC_QUOTA_BYTES: 102400;
+ readonly SYNC_QUOTA_BYTES_PER_ITEM: 8192;
+ readonly SYNC_MAX_ITEMS: 512;
+
+ set(extensionId: string, json: string, callback: mozIExtensionStorageCallback): void;
+ get(extensionId: string, key: string, callback: mozIExtensionStorageCallback): void;
+ remove(extensionId: string, key: string, callback: mozIExtensionStorageCallback): void;
+ clear(extensionId: string, callback: mozIExtensionStorageCallback): void;
+ getBytesInUse(extensionId: string, keys: string, callback: mozIExtensionStorageCallback): void;
+ takeMigrationInfo(callback: mozIExtensionStorageCallback): void;
+}
+
+interface mozIConfigurableExtensionStorageArea extends nsISupports {
+ configure(databaseFile: nsIFile, kintoFile: nsIFile): void;
+ teardown(callback: mozIExtensionStorageCallback): void;
+}
+
+interface mozISyncedExtensionStorageArea extends nsISupports {
+ fetchPendingSyncChanges(callback: mozIExtensionStorageCallback): void;
+}
+
+interface mozIExtensionStorageListener extends nsISupports {
+ onChanged(extensionId: string, json: string): void;
+}
+
+interface mozIExtensionStorageCallback extends nsISupports {
+ handleSuccess(result: nsIVariant): void;
+ handleError(code: nsresult, message: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/extensions/extIWebNavigation.idl
+
+interface extIWebNavigation extends nsISupports {
+ onDocumentChange(bc: BrowsingContext, transitionData: any, location: nsIURI): void;
+ onHistoryChange(bc: BrowsingContext, transitionData: any, location: nsIURI, isHistoryStateUpdated: boolean, isReferenceFragmentUpdated: boolean): void;
+ onStateChange(bc: BrowsingContext, requestURI: nsIURI, status: nsresult, stateFlags: u32): void;
+ onCreatedNavigationTarget(bc: BrowsingContext, sourceBC: BrowsingContext, url: string): void;
+ onDOMContentLoaded(bc: BrowsingContext, documentURI: nsIURI): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/extensions/mozIExtensionAPIRequestHandling.idl
+
+interface mozIExtensionServiceWorkerInfo extends nsISupports {
+ readonly principal: nsIPrincipal;
+ readonly scriptURL: string;
+ readonly clientInfoId: string;
+ readonly descriptorId: u64;
+}
+
+} // global
+
+declare namespace mozIExtensionListenerCallOptions {
+
+enum APIObjectType {
+ NONE = 0,
+ RUNTIME_PORT = 1,
+}
+
+enum CallbackType {
+ CALLBACK_NONE = 0,
+ CALLBACK_SEND_RESPONSE = 1,
+}
+
+}
+
+declare global {
+
+interface mozIExtensionListenerCallOptions extends nsISupports, Enums<typeof mozIExtensionListenerCallOptions.APIObjectType & typeof mozIExtensionListenerCallOptions.CallbackType> {
+ readonly apiObjectType: mozIExtensionListenerCallOptions.APIObjectType;
+ readonly apiObjectDescriptor: any;
+ readonly apiObjectPrepended: boolean;
+ callbackType: mozIExtensionListenerCallOptions.CallbackType;
+}
+
+interface mozIExtensionEventListener extends nsISupports {
+ callListener(args: any[], listenerCallOptions?: mozIExtensionListenerCallOptions): Promise<any>;
+}
+
+} // global
+
+declare namespace mozIExtensionAPIRequest {
+
+enum RequestType {
+ CALL_FUNCTION = 0,
+ CALL_FUNCTION_NO_RETURN = 1,
+ CALL_FUNCTION_ASYNC = 2,
+ ADD_LISTENER = 3,
+ REMOVE_LISTENER = 4,
+ GET_PROPERTY = 5,
+}
+
+}
+
+declare global {
+
+interface mozIExtensionAPIRequest extends nsISupports, Enums<typeof mozIExtensionAPIRequest.RequestType> {
+ toString(): string;
+ readonly requestType: string;
+ readonly apiNamespace: string;
+ readonly apiName: string;
+ readonly apiObjectType: string;
+ readonly apiObjectId: string;
+ readonly args: any;
+ normalizedArgs: any;
+ readonly callerSavedFrame: any;
+ readonly serviceWorkerInfo: mozIExtensionServiceWorkerInfo;
+ readonly eventListener: mozIExtensionEventListener;
+}
+
+} // global
+
+declare namespace mozIExtensionAPIRequestResult {
+
+enum ResultType {
+ RETURN_VALUE = 0,
+ EXTENSION_ERROR = 1,
+}
+
+}
+
+declare global {
+
+interface mozIExtensionAPIRequestResult extends nsISupports, Enums<typeof mozIExtensionAPIRequestResult.ResultType> {
+ readonly type: mozIExtensionAPIRequestResult.ResultType;
+ readonly value: any;
+}
+
+interface mozIExtensionAPIRequestHandler extends nsISupports {
+ handleAPIRequest(extension: nsISupports, apiRequest: mozIExtensionAPIRequest): OutParam<mozIExtensionAPIRequestResult>;
+ initExtensionWorker(extension: nsISupports, serviceWorkerInfo: mozIExtensionServiceWorkerInfo): void;
+ onExtensionWorkerLoaded(extension: nsISupports, serviceWorkerDescriptorId: u64): void;
+ onExtensionWorkerDestroyed(extension: nsISupports, serviceWorkerDescriptorId: u64): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/extensions/mozIExtensionProcessScript.idl
+
+interface mozIExtensionProcessScript extends nsISupports {
+ preloadContentScript(contentScript: nsISupports): void;
+ loadContentScript(contentScript: WebExtensionContentScript, window: mozIDOMWindow): Promise<any>;
+ initExtensionDocument(extension: nsISupports, doc: Document, privileged: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/media/webvtt/nsIWebVTTListener.idl
+
+interface nsIWebVTTListener extends nsISupports {
+ onCue(cue: any): void;
+ onRegion(region: any): void;
+ onParsingError(errorCode: i32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/media/webvtt/nsIWebVTTParserWrapper.idl
+
+interface nsIWebVTTParserWrapper extends nsISupports {
+ loadParser(window: mozIDOMWindow): void;
+ parse(data: string): void;
+ flush(): void;
+ watch(callback: nsIWebVTTListener): void;
+ cancel(): void;
+ convertCueToDOMTree(window: mozIDOMWindow, cue: nsISupports): DocumentFragment;
+ processCues(window: mozIDOMWindow, cues: nsIVariant, overlay: nsISupports, controls: nsISupports): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIAppShell.idl
+
+// https://searchfox.org/mozilla-central/source/widget/nsIBaseWindow.idl
+
+interface nsIBaseWindow extends nsISupports {
+ readonly eRepaint: 1;
+ readonly eDelayResize: 2;
+
+ destroy(): void;
+ setPosition(x: i32, y: i32): void;
+ setPositionDesktopPix(x: i32, y: i32): void;
+ getPosition(x: OutParam<i32>, y: OutParam<i32>): void;
+ setSize(cx: i32, cy: i32, fRepaint: boolean): void;
+ getSize(cx: OutParam<i32>, cy: OutParam<i32>): void;
+ setPositionAndSize(x: i32, y: i32, cx: i32, cy: i32, flags: u32): void;
+ getPositionAndSize(x: OutParam<i32>, y: OutParam<i32>, cx: OutParam<i32>, cy: OutParam<i32>): void;
+ repaint(force: boolean): void;
+ parentNativeWindow: nativeWindow;
+ readonly nativeHandle: string;
+ visibility: boolean;
+ enabled: boolean;
+ readonly devicePixelsPerDesktopPixel: double;
+ title: string;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIBidiKeyboard.idl
+
+interface nsIBidiKeyboard extends nsISupports {
+ reset(): void;
+ isLangRTL(): boolean;
+ readonly haveBidiKeyboards: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIClipboard.idl
+
+interface nsIAsyncSetClipboardData extends nsISupports {
+ setData(aTransferable: nsITransferable, aOwner?: nsIClipboardOwner): void;
+ abort(aReason: nsresult): void;
+}
+
+type nsIAsyncClipboardRequestCallback = Callable<{
+ onComplete(aResult: nsresult): void;
+}>
+
+interface nsIAsyncGetClipboardData extends nsISupports {
+ readonly valid: boolean;
+ readonly flavorList: string[];
+ getData(aTransferable: nsITransferable, aCallback: nsIAsyncClipboardRequestCallback): void;
+}
+
+interface nsIAsyncClipboardGetCallback extends nsISupports {
+ onSuccess(aAsyncGetClipboardData: nsIAsyncGetClipboardData): void;
+ onError(aResult: nsresult): void;
+}
+
+interface nsIClipboard extends nsISupports {
+ readonly kSelectionClipboard: 0;
+ readonly kGlobalClipboard: 1;
+ readonly kFindClipboard: 2;
+ readonly kSelectionCache: 3;
+
+ setData(aTransferable: nsITransferable, anOwner: nsIClipboardOwner, aWhichClipboard: i32): void;
+ asyncSetData(aWhichClipboard: i32, aCallback?: nsIAsyncClipboardRequestCallback): nsIAsyncSetClipboardData;
+ getData(aTransferable: nsITransferable, aWhichClipboard: i32, aRequestingWindowContext?: WindowContext): void;
+ asyncGetData(aFlavorList: string[], aWhichClipboard: i32, aRequestingWindowContext: WindowContext, aRequestingPrincipal: nsIPrincipal, aCallback: nsIAsyncClipboardGetCallback): void;
+ getDataSnapshotSync(aFlavorList: string[], aWhichClipboard: i32, aRequestingWindowContext?: WindowContext): nsIAsyncGetClipboardData;
+ emptyClipboard(aWhichClipboard: i32): void;
+ hasDataMatchingFlavors(aFlavorList: string[], aWhichClipboard: i32): boolean;
+ isClipboardTypeSupported(aWhichClipboard: i32): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIClipboardHelper.idl
+
+} // global
+
+declare namespace nsIClipboardHelper {
+
+enum SensitiveData {
+ NotSensitive = 0,
+ Sensitive = 1,
+}
+
+}
+
+declare global {
+
+interface nsIClipboardHelper extends nsISupports, Enums<typeof nsIClipboardHelper.SensitiveData> {
+ copyStringToClipboard(aString: string, aClipboardID: i32, aSensitive?: nsIClipboardHelper.SensitiveData): void;
+ copyString(aString: string, aSensitive?: nsIClipboardHelper.SensitiveData): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIClipboardOwner.idl
+
+interface nsIClipboardOwner extends nsISupports {
+ LosingOwnership(aTransferable: nsITransferable): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIColorPicker.idl
+
+interface nsIColorPickerShownCallback extends nsISupports {
+ update(color: string): void;
+ done(color: string): void;
+}
+
+interface nsIColorPicker extends nsISupports {
+ init(parent: mozIDOMWindowProxy, title: string, initialColor: string, defaultColors: string[]): void;
+ open(aColorPickerShownCallback: nsIColorPickerShownCallback): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIDisplayInfo.idl
+
+interface nsIDisplayInfo extends nsISupports {
+ readonly id: i32;
+ readonly connected: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIDragService.idl
+
+interface nsIDragService extends nsISupports {
+ readonly DRAGDROP_ACTION_NONE: 0;
+ readonly DRAGDROP_ACTION_COPY: 1;
+ readonly DRAGDROP_ACTION_MOVE: 2;
+ readonly DRAGDROP_ACTION_LINK: 4;
+ readonly DRAGDROP_ACTION_UNINITIALIZED: 64;
+
+ invokeDragSession(aDOMNode: Node, aPrincipal: nsIPrincipal, aCsp: nsIContentSecurityPolicy, aCookieJarSettings: nsICookieJarSettings, aTransferables: nsIArray, aActionType: u32, aContentPolicyType?: nsContentPolicyType): void;
+ getCurrentSession(): nsIDragSession;
+ startDragSession(): void;
+ startDragSessionForTests(aAllowedEffect: u32): void;
+ endDragSession(aDoneDrag: boolean, aKeyModifiers?: u32): void;
+ suppress(): void;
+ unsuppress(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIDragSession.idl
+
+interface nsIDragSession extends nsISupports {
+ canDrop: boolean;
+ onlyChromeDrop: boolean;
+ dragAction: u32;
+ readonly numDropItems: u32;
+ sourceWindowContext: WindowContext;
+ sourceTopWindowContext: WindowContext;
+ readonly sourceNode: Node;
+ triggeringPrincipal: nsIPrincipal;
+ csp: nsIContentSecurityPolicy;
+ dataTransfer: DataTransfer;
+ getData(aTransferable: nsITransferable, aItemIndex: u32): void;
+ isDataFlavorSupported(aDataFlavor: string): boolean;
+ userCancelled(): void;
+ dragEventDispatchedToChildProcess(): void;
+ updateDragEffect(): void;
+ updateDragImage(aImage: Node, aImageX: i32, aImageY: i32): void;
+ setDragEndPointForTests(aScreenX: i32, aScreenY: i32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIFilePicker.idl
+
+} // global
+
+declare namespace nsIFilePicker {
+
+enum Mode {
+ modeOpen = 0,
+ modeSave = 1,
+ modeGetFolder = 2,
+ modeOpenMultiple = 3,
+}
+
+enum ResultCode {
+ returnOK = 0,
+ returnCancel = 1,
+ returnReplace = 2,
+}
+
+enum CaptureTarget {
+ captureNone = 0,
+ captureDefault = 1,
+ captureUser = 2,
+ captureEnv = 3,
+}
+
+}
+
+declare global {
+
+interface nsIFilePicker extends nsISupports, Enums<typeof nsIFilePicker.Mode & typeof nsIFilePicker.ResultCode & typeof nsIFilePicker.CaptureTarget> {
+ readonly filterAll: 1;
+ readonly filterHTML: 2;
+ readonly filterText: 4;
+ readonly filterImages: 8;
+ readonly filterXML: 16;
+ readonly filterXUL: 32;
+ readonly filterApps: 64;
+ readonly filterAllowURLs: 128;
+ readonly filterAudio: 256;
+ readonly filterVideo: 512;
+ readonly filterPDF: 1024;
+
+ init(browsingContext: BrowsingContext, title: string, mode: nsIFilePicker.Mode): void;
+ isModeSupported(mode: nsIFilePicker.Mode): Promise<any>;
+ appendFilters(filterMask: i32): void;
+ appendFilter(title: string, filter: string): void;
+ appendRawFilter(filter: string): void;
+ defaultString: string;
+ defaultExtension: string;
+ filterIndex: i32;
+ displayDirectory: nsIFile;
+ displaySpecialDirectory: string;
+ readonly file: nsIFile;
+ readonly fileURL: nsIURI;
+ readonly files: nsISimpleEnumerator;
+ readonly domFileOrDirectory: nsISupports;
+ readonly domFileOrDirectoryEnumerator: nsISimpleEnumerator;
+ addToRecentDocs: boolean;
+ open(aFilePickerShownCallback: nsIFilePickerShownCallback): void;
+ close(): void;
+ readonly mode: nsIFilePicker.Mode;
+ okButtonLabel: string;
+ capture: nsIFilePicker.CaptureTarget;
+}
+
+type nsIFilePickerShownCallback = Callable<{
+ done(aResult: nsIFilePicker.ResultCode): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/widget/nsIFormatConverter.idl
+
+interface nsIFormatConverter extends nsISupports {
+ getInputDataFlavors(): string[];
+ getOutputDataFlavors(): string[];
+ canConvert(aFromDataFlavor: string, aToDataFlavor: string): boolean;
+ convert(aFromDataFlavor: string, aFromData: nsISupports, aToDataFlavor: string, aToData: OutParam<nsISupports>): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIGfxInfo.idl
+
+} // global
+
+declare namespace nsIGfxInfo {
+
+enum FontVisibilityDeviceDetermination {
+ Unassigned = 0,
+ Unknown_Platform = 1,
+ Windows_Platform = 2,
+ MacOS_Platform = 3,
+ Android_Unknown_Release_Version = 4,
+ Android_Unknown_Peloton = 5,
+ Android_Unknown_vbox = 6,
+ Android_Unknown_mitv = 7,
+ Android_Chromebook = 8,
+ Android_Amazon = 9,
+ Android_sub_9 = 10,
+ Android_9_11 = 11,
+ Android_12_plus = 12,
+ Linux_Unknown = 13,
+ Linux_Ubuntu_any = 14,
+ Linux_Ubuntu_20 = 15,
+ Linux_Ubuntu_22 = 16,
+ Linux_Fedora_any = 17,
+ Linux_Fedora_38 = 18,
+ Linux_Fedora_39 = 19,
+}
+
+}
+
+declare global {
+
+interface nsIGfxInfo extends nsISupports, Enums<typeof nsIGfxInfo.FontVisibilityDeviceDetermination> {
+ readonly FEATURE_DIRECT2D: 1;
+ readonly FEATURE_DIRECT3D_9_LAYERS: 2;
+ readonly FEATURE_DIRECT3D_10_LAYERS: 3;
+ readonly FEATURE_DIRECT3D_10_1_LAYERS: 4;
+ readonly FEATURE_OPENGL_LAYERS: 5;
+ readonly FEATURE_WEBGL_OPENGL: 6;
+ readonly FEATURE_WEBGL_ANGLE: 7;
+ readonly UNUSED_FEATURE_WEBGL_MSAA: 8;
+ readonly FEATURE_STAGEFRIGHT: 9;
+ readonly FEATURE_WEBRTC_HW_ACCELERATION_H264: 10;
+ readonly FEATURE_DIRECT3D_11_LAYERS: 11;
+ readonly FEATURE_HARDWARE_VIDEO_DECODING: 12;
+ readonly FEATURE_DIRECT3D_11_ANGLE: 13;
+ readonly FEATURE_WEBRTC_HW_ACCELERATION_ENCODE: 14;
+ readonly FEATURE_WEBRTC_HW_ACCELERATION_DECODE: 15;
+ readonly FEATURE_CANVAS2D_ACCELERATION: 16;
+ readonly FEATURE_VP8_HW_DECODE: 17;
+ readonly FEATURE_VP9_HW_DECODE: 18;
+ readonly FEATURE_DX_INTEROP2: 19;
+ readonly FEATURE_GPU_PROCESS: 20;
+ readonly FEATURE_WEBGL2: 21;
+ readonly FEATURE_D3D11_KEYED_MUTEX: 22;
+ readonly FEATURE_WEBRENDER: 23;
+ readonly FEATURE_DX_NV12: 24;
+ readonly FEATURE_DX_P010: 25;
+ readonly FEATURE_DX_P016: 26;
+ readonly FEATURE_GL_SWIZZLE: 27;
+ readonly FEATURE_WEBRENDER_COMPOSITOR: 28;
+ readonly FEATURE_WEBRENDER_SCISSORED_CACHE_CLEARS: 29;
+ readonly FEATURE_ALLOW_WEBGL_OUT_OF_PROCESS: 30;
+ readonly FEATURE_THREADSAFE_GL: 31;
+ readonly FEATURE_WEBRENDER_OPTIMIZED_SHADERS: 32;
+ readonly FEATURE_X11_EGL: 33;
+ readonly FEATURE_DMABUF: 34;
+ readonly FEATURE_WEBRENDER_SHADER_CACHE: 35;
+ readonly FEATURE_WEBRENDER_PARTIAL_PRESENT: 36;
+ readonly FEATURE_WEBGPU: 37;
+ readonly FEATURE_VIDEO_OVERLAY: 38;
+ readonly FEATURE_HW_DECODED_VIDEO_ZERO_COPY: 39;
+ readonly FEATURE_DMABUF_SURFACE_EXPORT: 40;
+ readonly FEATURE_REUSE_DECODER_DEVICE: 41;
+ readonly FEATURE_BACKDROP_FILTER: 42;
+ readonly FEATURE_ACCELERATED_CANVAS2D: 43;
+ readonly FEATURE_H264_HW_DECODE: 44;
+ readonly FEATURE_AV1_HW_DECODE: 45;
+ readonly FEATURE_VIDEO_SOFTWARE_OVERLAY: 46;
+ readonly FEATURE_WEBGL_USE_HARDWARE: 47;
+ readonly FEATURE_OVERLAY_VP_AUTO_HDR: 48;
+ readonly FEATURE_OVERLAY_VP_SUPER_RESOLUTION: 49;
+ readonly FEATURE_MAX_VALUE: 49;
+ readonly FEATURE_STATUS_OK: 1;
+ readonly FEATURE_STATUS_UNKNOWN: 2;
+ readonly FEATURE_BLOCKED_DRIVER_VERSION: 3;
+ readonly FEATURE_BLOCKED_DEVICE: 4;
+ readonly FEATURE_DISCOURAGED: 5;
+ readonly FEATURE_BLOCKED_OS_VERSION: 6;
+ readonly FEATURE_BLOCKED_MISMATCHED_VERSION: 7;
+ readonly FEATURE_DENIED: 8;
+ readonly FEATURE_ALLOW_ALWAYS: 9;
+ readonly FEATURE_ALLOW_QUALIFIED: 10;
+ readonly FEATURE_BLOCKED_PLATFORM_TEST: 11;
+
+ readonly D2DEnabled: boolean;
+ readonly DWriteEnabled: boolean;
+ readonly EmbeddedInFirefoxReality: boolean;
+ readonly AzureCanvasBackend: string;
+ readonly AzureContentBackend: string;
+ readonly usingGPUProcess: boolean;
+ readonly hasBattery: boolean;
+ readonly DWriteVersion: string;
+ readonly cleartypeParameters: string;
+ readonly windowProtocol: string;
+ readonly testType: string;
+ readonly ContentBackend: string;
+ readonly isHeadless: boolean;
+ readonly TargetFrameRate: u32;
+ readonly CodecSupportInfo: string;
+ readonly fontVisibilityDetermination: nsIGfxInfo.FontVisibilityDeviceDetermination;
+ readonly fontVisibilityDeterminationStr: string;
+ readonly adapterDescription: string;
+ readonly adapterDescription2: string;
+ readonly adapterDriver: string;
+ readonly adapterDriver2: string;
+ readonly adapterVendorID: string;
+ readonly adapterVendorID2: string;
+ readonly adapterDeviceID: string;
+ readonly adapterDeviceID2: string;
+ readonly adapterSubsysID: string;
+ readonly adapterSubsysID2: string;
+ readonly adapterRAM: u32;
+ readonly adapterRAM2: u32;
+ readonly adapterDriverVendor: string;
+ readonly adapterDriverVendor2: string;
+ readonly adapterDriverVersion: string;
+ readonly adapterDriverVersion2: string;
+ readonly adapterDriverDate: string;
+ readonly adapterDriverDate2: string;
+ readonly isGPU2Active: boolean;
+ readonly drmRenderDevice: string;
+ getMonitors(): any;
+ getFailures(indices: OutParam<i32[]>): string[];
+ getFeatureStatus(aFeature: i32, aFailureId?: OutParam<string>): i32;
+ getFeatureSuggestedDriverVersion(aFeature: i32): string;
+ getInfo(): any;
+ getFeatureLog(): any;
+ getFeatures(): any;
+ getActiveCrashGuards(): any;
+ controlGPUProcessForXPCShell(aEnable: boolean): boolean;
+ killGPUProcessForTests(): void;
+ crashGPUProcessForTests(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIGfxInfoDebug.idl
+
+interface nsIGfxInfoDebug extends nsISupports {
+ spoofVendorID(aVendorID: string): void;
+ spoofDeviceID(aDeviceID: string): void;
+ spoofDriverVersion(aDriverVersion: string): void;
+ spoofOSVersion(aVersion: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIJumpListBuilder.idl
+
+interface nsIJumpListBuilder extends nsISupports {
+ obtainAndCacheFavicon(faviconURL: nsIURI): string;
+ isAvailable(): Promise<any>;
+ checkForRemovals(): Promise<any>;
+ populateJumpList(aTaskDescriptions: any[], aCustomTitle: string, aCustomDescriptions: any[]): Promise<any>;
+ clearJumpList(): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsILegacyJumpListBuilder.idl
+
+type nsILegacyJumpListCommittedCallback = Callable<{
+ done(result: boolean): void;
+}>
+
+interface nsILegacyJumpListBuilder extends nsISupports {
+ readonly JUMPLIST_CATEGORY_TASKS: 0;
+ readonly JUMPLIST_CATEGORY_RECENT: 1;
+ readonly JUMPLIST_CATEGORY_FREQUENT: 2;
+ readonly JUMPLIST_CATEGORY_CUSTOMLIST: 3;
+
+ readonly available: i16;
+ readonly isListCommitted: boolean;
+ readonly maxListItems: i16;
+ initListBuild(): Promise<any>;
+ addListToBuild(aCatType: i16, items?: nsIArray, catName?: string): boolean;
+ abortListBuild(): void;
+ commitListBuild(callback?: nsILegacyJumpListCommittedCallback): void;
+ deleteActiveList(): boolean;
+ setAppUserModelID(aAppUserModelId: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsILegacyJumpListItem.idl
+
+interface nsILegacyJumpListItem extends nsISupports {
+ readonly JUMPLIST_ITEM_EMPTY: 0;
+ readonly JUMPLIST_ITEM_SEPARATOR: 1;
+ readonly JUMPLIST_ITEM_LINK: 2;
+ readonly JUMPLIST_ITEM_SHORTCUT: 3;
+
+ readonly type: i16;
+ equals(item: nsILegacyJumpListItem): boolean;
+}
+
+interface nsILegacyJumpListSeparator extends nsILegacyJumpListItem {
+}
+
+interface nsILegacyJumpListLink extends nsILegacyJumpListItem {
+ uri: nsIURI;
+ uriTitle: string;
+}
+
+interface nsILegacyJumpListShortcut extends nsILegacyJumpListItem {
+ app: nsILocalHandlerApp;
+ iconIndex: i32;
+ faviconPageUri: nsIURI;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIPaper.idl
+
+interface nsIPaper extends nsISupports {
+ readonly id: string;
+ readonly name: string;
+ readonly width: double;
+ readonly height: double;
+ readonly unwriteableMargin: Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIPaperMargin.idl
+
+interface nsIPaperMargin extends nsISupports {
+ readonly top: double;
+ readonly right: double;
+ readonly bottom: double;
+ readonly left: double;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIPrintDialogService.idl
+
+interface nsIPrintDialogService extends nsISupports {
+ init(): void;
+ showPrintDialog(aParent: mozIDOMWindowProxy, aHaveSelection: boolean, aPrintSettings: nsIPrintSettings): void;
+ showPageSetupDialog(aParent: mozIDOMWindowProxy, aPrintSettings: nsIPrintSettings): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIPrintSettings.idl
+
+} // global
+
+declare namespace nsIPrintSettings {
+
+enum OutputDestinationType {
+ kOutputDestinationPrinter = 0,
+ kOutputDestinationFile = 1,
+ kOutputDestinationStream = 2,
+}
+
+}
+
+declare global {
+
+interface nsIPrintSettings extends nsISupports, Enums<typeof nsIPrintSettings.OutputDestinationType> {
+ readonly kInitSaveHeaderLeft: 2;
+ readonly kInitSaveHeaderCenter: 4;
+ readonly kInitSaveHeaderRight: 8;
+ readonly kInitSaveFooterLeft: 16;
+ readonly kInitSaveFooterCenter: 32;
+ readonly kInitSaveFooterRight: 64;
+ readonly kInitSaveBGColors: 128;
+ readonly kInitSaveBGImages: 256;
+ readonly kInitSavePaperSize: 512;
+ readonly kInitSaveDuplex: 2048;
+ readonly kInitSaveUnwriteableMargins: 16384;
+ readonly kInitSaveEdges: 32768;
+ readonly kInitSaveReversed: 65536;
+ readonly kInitSaveInColor: 131072;
+ readonly kInitSaveOrientation: 262144;
+ readonly kInitSavePrinterName: 1048576;
+ readonly kInitSavePrintToFile: 2097152;
+ readonly kInitSaveToFileName: 4194304;
+ readonly kInitSavePageDelay: 8388608;
+ readonly kInitSaveMargins: 16777216;
+ readonly kInitSaveShrinkToFit: 134217728;
+ readonly kInitSaveScaling: 268435456;
+ readonly kInitSaveAll: 4294967295;
+ readonly kGlobalSettings: 134447614;
+ readonly kPrintDialogPersistSettings: 428313598;
+ readonly kJustLeft: 0;
+ readonly kJustCenter: 1;
+ readonly kJustRight: 2;
+ readonly kPaperSizeInches: 0;
+ readonly kPaperSizeMillimeters: 1;
+ readonly kPortraitOrientation: 0;
+ readonly kLandscapeOrientation: 1;
+ readonly kOutputFormatNative: 0;
+ readonly kOutputFormatPDF: 2;
+ readonly kDuplexNone: 0;
+ readonly kDuplexFlipOnLongEdge: 1;
+ readonly kDuplexFlipOnShortEdge: 2;
+
+ GetEffectivePageSize(aWidth: OutParam<double>, aHeight: OutParam<double>): void;
+ clone(): nsIPrintSettings;
+ assign(aPS: nsIPrintSettings): void;
+ equivalentTo(aPrintSettings: nsIPrintSettings): boolean;
+ edgeTop: double;
+ edgeLeft: double;
+ edgeBottom: double;
+ edgeRight: double;
+ marginTop: double;
+ marginLeft: double;
+ marginBottom: double;
+ marginRight: double;
+ unwriteableMarginTop: double;
+ unwriteableMarginLeft: double;
+ unwriteableMarginBottom: double;
+ unwriteableMarginRight: double;
+ scaling: double;
+ printBGColors: boolean;
+ printBGImages: boolean;
+ honorPageRuleMargins: boolean;
+ usePageRuleSizeAsPaperSize: boolean;
+ ignoreUnwriteableMargins: boolean;
+ showMarginGuides: boolean;
+ printSelectionOnly: boolean;
+ title: string;
+ docURL: string;
+ headerStrLeft: string;
+ headerStrCenter: string;
+ headerStrRight: string;
+ footerStrLeft: string;
+ footerStrCenter: string;
+ footerStrRight: string;
+ printSilent: boolean;
+ shrinkToFit: boolean;
+ paperId: string;
+ paperWidth: double;
+ paperHeight: double;
+ paperSizeUnit: i16;
+ printReversed: boolean;
+ printInColor: boolean;
+ orientation: i32;
+ numCopies: i32;
+ numPagesPerSheet: i32;
+ outputDestination: nsIPrintSettings.OutputDestinationType;
+ outputFormat: i16;
+ printerName: string;
+ toFileName: string;
+ outputStream: nsIOutputStream;
+ printPageDelay: i32;
+ resolution: i32;
+ duplex: i32;
+ isInitializedFromPrinter: boolean;
+ isInitializedFromPrefs: boolean;
+ pageRanges: i32[];
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIPrintSettingsService.idl
+
+interface nsIPrintSettingsService extends nsISupports {
+ createNewPrintSettings(): nsIPrintSettings;
+ readonly lastUsedPrinterName: string;
+ initPrintSettingsFromPrinter(aPrinterName: string, aPrintSettings: nsIPrintSettings): void;
+ initPrintSettingsFromPrefs(aPrintSettings: nsIPrintSettings, aUsePrinterNamePrefix: boolean, aFlags: u32): void;
+ maybeSavePrintSettingsToPrefs(aPrintSettings: nsIPrintSettings, aFlags: u32): void;
+ maybeSaveLastUsedPrinterNameToPrefs(aPrinterName: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIPrintSettingsWin.idl
+
+// https://searchfox.org/mozilla-central/source/widget/nsIPrinter.idl
+
+interface nsIPrinterInfo extends nsISupports {
+ readonly paperList: nsIPaper[];
+ readonly defaultSettings: nsIPrintSettings;
+}
+
+interface nsIPrinter extends nsISupports {
+ readonly name: string;
+ readonly systemName: string;
+ readonly printerInfo: Promise<any>;
+ copyFromWithValidation(aSettingsToCopyFrom: nsIPrintSettings): Promise<any>;
+ readonly supportsDuplex: Promise<any>;
+ readonly supportsColor: Promise<any>;
+ readonly supportsMonochrome: Promise<any>;
+ readonly supportsCollation: Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIPrinterList.idl
+
+interface nsIPrinterList extends nsISupports {
+ initPrintSettingsFromPrinter(aPrinterName: string, aPrintSettings: nsIPrintSettings): void;
+ readonly systemDefaultPrinterName: string;
+ getPrinterByName(aPrinterName: string): Promise<any>;
+ getPrinterBySystemName(aPrinterName: string): Promise<any>;
+ getNamedOrDefaultPrinter(aPrinterName: string): Promise<any>;
+ readonly printers: Promise<any>;
+ readonly fallbackPaperList: Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIScreen.idl
+
+interface nsIScreen extends nsISupports {
+ GetRect(left: OutParam<i32>, top: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>): void;
+ GetAvailRect(left: OutParam<i32>, top: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>): void;
+ GetRectDisplayPix(left: OutParam<i32>, top: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>): void;
+ GetAvailRectDisplayPix(left: OutParam<i32>, top: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>): void;
+ readonly pixelDepth: i32;
+ readonly colorDepth: i32;
+ readonly contentsScaleFactor: double;
+ readonly defaultCSSScaleFactor: double;
+ readonly dpi: float;
+ readonly refreshRate: i32;
+ readonly isPseudoDisplay: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIScreenManager.idl
+
+interface nsIScreenManager extends nsISupports {
+ screenForRect(left: i32, top: i32, width: i32, height: i32): nsIScreen;
+ readonly primaryScreen: nsIScreen;
+ readonly totalScreenPixels: i64;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsISharePicker.idl
+
+interface nsISharePicker extends nsISupports {
+ init(openerWindow: mozIDOMWindowProxy): void;
+ readonly openerWindow: mozIDOMWindowProxy;
+ share(title: string, text: string, url: nsIURI): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsISound.idl
+
+interface nsISound extends nsISupports {
+ readonly EVENT_NEW_MAIL_RECEIVED: 0;
+ readonly EVENT_ALERT_DIALOG_OPEN: 1;
+ readonly EVENT_CONFIRM_DIALOG_OPEN: 2;
+ readonly EVENT_PROMPT_DIALOG_OPEN: 3;
+ readonly EVENT_SELECT_DIALOG_OPEN: 4;
+ readonly EVENT_MENU_EXECUTE: 5;
+ readonly EVENT_MENU_POPUP: 6;
+ readonly EVENT_EDITOR_MAX_LEN: 7;
+
+ play(aURL: nsIURL): void;
+ beep(): void;
+ init(): void;
+ playEventSound(aEventId: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsISystemStatusBar.idl
+
+interface nsISystemStatusBar extends nsISupports {
+ addItem(aMenuElement: Element): void;
+ removeItem(aMenuElement: Element): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsITaskbarOverlayIconController.idl
+
+interface nsITaskbarOverlayIconController extends nsISupports {
+ setOverlayIcon(statusIcon: imgIContainer, statusDescription: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsITaskbarPreview.idl
+
+interface nsITaskbarPreview extends nsISupports {
+ controller: nsITaskbarPreviewController;
+ tooltip: string;
+ visible: boolean;
+ active: boolean;
+ invalidate(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsITaskbarPreviewButton.idl
+
+interface nsITaskbarPreviewButton extends nsISupports {
+ tooltip: string;
+ dismissOnClick: boolean;
+ hasBorder: boolean;
+ disabled: boolean;
+ image: imgIContainer;
+ visible: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsITaskbarPreviewController.idl
+
+type nsITaskbarPreviewCallback = Callable<{
+ done(aCanvas: nsISupports, aDrawBorder: boolean): void;
+}>
+
+interface nsITaskbarPreviewController extends nsISupports {
+ readonly width: u32;
+ readonly height: u32;
+ readonly thumbnailAspectRatio: float;
+ requestPreview(aCallback: nsITaskbarPreviewCallback): void;
+ requestThumbnail(aCallback: nsITaskbarPreviewCallback, width: u32, height: u32): void;
+ onClose(): void;
+ onActivate(): boolean;
+ onClick(button: nsITaskbarPreviewButton): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsITaskbarProgress.idl
+
+interface nsITaskbarProgress extends nsISupports {
+ readonly STATE_NO_PROGRESS: 0;
+ readonly STATE_INDETERMINATE: 1;
+ readonly STATE_NORMAL: 2;
+ readonly STATE_ERROR: 3;
+ readonly STATE_PAUSED: 4;
+
+ setProgressState(state: nsTaskbarProgressState, currentValue?: u64, maxValue?: u64): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsITaskbarTabPreview.idl
+
+interface nsITaskbarTabPreview extends nsITaskbarPreview {
+ title: string;
+ icon: imgIContainer;
+ move(aNext: nsITaskbarTabPreview): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsITaskbarWindowPreview.idl
+
+interface nsITaskbarWindowPreview extends nsITaskbarPreview {
+ readonly NUM_TOOLBAR_BUTTONS: 7;
+
+ getButton(index: u32): nsITaskbarPreviewButton;
+ enableCustomDrawing: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsITransferable.idl
+
+interface nsIFlavorDataProvider extends nsISupports {
+ getFlavorData(aTransferable: nsITransferable, aFlavor: string, aData: OutParam<nsISupports>): void;
+}
+
+interface nsITransferable extends nsISupports {
+ init(aContext: nsILoadContext): void;
+ flavorsTransferableCanExport(): string[];
+ getTransferData(aFlavor: string, aData: OutParam<nsISupports>): void;
+ getAnyTransferData(aFlavor: OutParam<string>, aData: OutParam<nsISupports>): void;
+ flavorsTransferableCanImport(): string[];
+ setTransferData(aFlavor: string, aData: nsISupports): void;
+ clearAllData(): void;
+ addDataFlavor(aDataFlavor: string): void;
+ removeDataFlavor(aDataFlavor: string): void;
+ converter: nsIFormatConverter;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIUserIdleService.idl
+
+interface nsIUserIdleService extends nsISupports {
+ readonly idleTime: u32;
+ addIdleObserver(observer: nsIObserver, time: u32): void;
+ removeIdleObserver(observer: nsIObserver, time: u32): void;
+ disabled: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIUserIdleServiceInternal.idl
+
+interface nsIUserIdleServiceInternal extends nsIUserIdleService {
+ resetIdleTimeOut(idleDeltaInMS: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIWinTaskbar.idl
+
+interface nsIWinTaskbar extends nsISupports {
+ readonly available: boolean;
+ readonly defaultGroupId: string;
+ readonly defaultPrivateGroupId: string;
+ createTaskbarTabPreview(shell: nsIDocShell, controller: nsITaskbarPreviewController): nsITaskbarTabPreview;
+ getTaskbarWindowPreview(shell: nsIDocShell): nsITaskbarWindowPreview;
+ getTaskbarProgress(shell: nsIDocShell): nsITaskbarProgress;
+ getOverlayIconController(shell: nsIDocShell): nsITaskbarOverlayIconController;
+ createLegacyJumpListBuilder(aPrivateBrowsing: boolean): nsILegacyJumpListBuilder;
+ createJumpListBuilder(aPrivateBrowsing: boolean): nsIJumpListBuilder;
+ getGroupIdForWindow(aParent: mozIDOMWindow): string;
+ setGroupIdForWindow(aParent: mozIDOMWindow, aIdentifier: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/widget/nsIWindowsUIUtils.idl
+
+interface nsIWindowsUIUtils extends nsISupports {
+ readonly systemSmallIconSize: i32;
+ readonly systemLargeIconSize: i32;
+ setWindowIcon(aWindow: mozIDOMWindowProxy, aSmallIcon: imgIContainer, aLargeIcon: imgIContainer): void;
+ setWindowIconFromExe(aWindow: mozIDOMWindowProxy, aExe: string, aIndex: u16): void;
+ setWindowIconNoData(aWindow: mozIDOMWindowProxy): void;
+ readonly inTabletMode: boolean;
+ shareUrl(shareTitle: string, urlToShare: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/windowcreator/nsIWindowCreator.idl
+
+interface nsIWindowCreator extends nsISupports {
+ createChromeWindow(parent: nsIWebBrowserChrome, chromeFlags: u32, aOpenWindowInfo: nsIOpenWindowInfo, cancel: OutParam<boolean>): nsIWebBrowserChrome;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/windowcreator/nsIWindowProvider.idl
+
+interface nsIWindowProvider extends nsISupports {
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/system/windowsPackageManager/nsIWindowsPackageManager.idl
+
+interface nsIWindowsPackageManager extends nsISupports {
+ findUserInstalledPackages(prefix: string[]): string[];
+ getInstalledDate(): u64;
+ campaignId(): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/windowwatcher/nsIDialogParamBlock.idl
+
+interface nsIDialogParamBlock extends nsISupports {
+ GetInt(inIndex: i32): i32;
+ SetInt(inIndex: i32, inInt: i32): void;
+ SetNumberStrings(inNumStrings: i32): void;
+ GetString(inIndex: i32): string;
+ SetString(inIndex: i32, inString: string): void;
+ objects: nsIMutableArray;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/windowwatcher/nsIOpenWindowInfo.idl
+
+interface nsIOpenWindowInfo extends nsISupports {
+ readonly parent: BrowsingContext;
+ readonly isRemote: boolean;
+ readonly forceNoOpener: boolean;
+ readonly isForPrinting: boolean;
+ readonly isForWindowDotPrint: boolean;
+ readonly originAttributes: any;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/windowwatcher/nsIPromptCollection.idl
+
+interface nsIPromptCollection extends nsISupports {
+ asyncBeforeUnloadCheck(aBrowsingContext: BrowsingContext): Promise<any>;
+ confirmRepost(aBrowsingContext: BrowsingContext): boolean;
+ confirmFolderUpload(aBrowsingContext: BrowsingContext, aDirectoryName: string): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/windowwatcher/nsIPromptFactory.idl
+
+interface nsIPromptFactory extends nsISupports {
+ getPrompt<T extends nsIID>(aParent: mozIDOMWindowProxy, iid: T): nsQIResult<T>;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/windowwatcher/nsIPromptService.idl
+
+interface nsIPromptService extends nsISupports {
+ readonly BUTTON_POS_0: 1;
+ readonly BUTTON_POS_1: 256;
+ readonly BUTTON_POS_2: 65536;
+ readonly BUTTON_TITLE_OK: 1;
+ readonly BUTTON_TITLE_CANCEL: 2;
+ readonly BUTTON_TITLE_YES: 3;
+ readonly BUTTON_TITLE_NO: 4;
+ readonly BUTTON_TITLE_SAVE: 5;
+ readonly BUTTON_TITLE_DONT_SAVE: 6;
+ readonly BUTTON_TITLE_REVERT: 7;
+ readonly BUTTON_TITLE_IS_STRING: 127;
+ readonly BUTTON_POS_0_DEFAULT: 0;
+ readonly BUTTON_POS_1_DEFAULT: 16777216;
+ readonly BUTTON_POS_2_DEFAULT: 33554432;
+ readonly BUTTON_DELAY_ENABLE: 67108864;
+ readonly SHOW_SPINNER: 134217728;
+ readonly STD_OK_CANCEL_BUTTONS: 513;
+ readonly STD_YES_NO_BUTTONS: 1027;
+ readonly MODAL_TYPE_CONTENT: 1;
+ readonly MODAL_TYPE_TAB: 2;
+ readonly MODAL_TYPE_WINDOW: 3;
+ readonly MODAL_TYPE_INTERNAL_WINDOW: 4;
+
+ alert(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string): void;
+ alertBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string): void;
+ asyncAlert(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string): Promise<any>;
+ alertCheck(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string, aCheckMsg: string, aCheckState: InOutParam<boolean>): void;
+ alertCheckBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aCheckMsg: string, aCheckState: InOutParam<boolean>): void;
+ asyncAlertCheck(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aCheckMsg: string, aCheckState: boolean): Promise<any>;
+ confirm(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string): boolean;
+ confirmBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string): boolean;
+ asyncConfirm(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string): Promise<any>;
+ confirmCheck(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string, aCheckMsg: string, aCheckState: InOutParam<boolean>): boolean;
+ confirmCheckBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aCheckMsg: string, aCheckState: InOutParam<boolean>): boolean;
+ asyncConfirmCheck(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aCheckMsg: string, aCheckState: boolean): Promise<any>;
+ confirmEx(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string, aButtonFlags: u32, aButton0Title: string, aButton1Title: string, aButton2Title: string, aCheckMsg: string, aCheckState: InOutParam<boolean>): i32;
+ confirmExBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aButtonFlags: u32, aButton0Title: string, aButton1Title: string, aButton2Title: string, aCheckMsg: string, aCheckState: InOutParam<boolean>): i32;
+ asyncConfirmEx(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aButtonFlags: u32, aButton0Title: string, aButton1Title: string, aButton2Title: string, aCheckMsg: string, aCheckState: boolean, aExtraArgs?: any): Promise<any>;
+ prompt(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string, aValue: InOutParam<string>, aCheckMsg: string, aCheckState: InOutParam<boolean>): boolean;
+ promptBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aValue: InOutParam<string>, aCheckMsg: string, aCheckState: InOutParam<boolean>): boolean;
+ asyncPrompt(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aValue: string, aCheckMsg: string, aCheckState: boolean): Promise<any>;
+ promptUsernameAndPassword(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string, aUsername: InOutParam<string>, aPassword: InOutParam<string>): boolean;
+ promptUsernameAndPasswordBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aUsername: InOutParam<string>, aPassword: InOutParam<string>): boolean;
+ asyncPromptUsernameAndPassword(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aUsername: string, aPassword: string): Promise<any>;
+ promptPassword(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string, aPassword: InOutParam<string>): boolean;
+ promptPasswordBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aPassword: InOutParam<string>): boolean;
+ asyncPromptPassword(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aPassword: string): Promise<any>;
+ select(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string, aSelectList: string[], aOutSelection: OutParam<i32>): boolean;
+ selectBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aSelectList: string[], aOutSelection: OutParam<i32>): boolean;
+ asyncSelect(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aSelectList: string[]): Promise<any>;
+ promptAuth(aParent: mozIDOMWindowProxy, aChannel: nsIChannel, level: u32, authInfo: nsIAuthInformation): boolean;
+ promptAuthBC(aBrowsingContext: BrowsingContext, modalType: u32, aChannel: nsIChannel, level: u32, authInfo: nsIAuthInformation): boolean;
+ asyncPromptAuth(aBrowsingContext: BrowsingContext, modalType: u32, aChannel: nsIChannel, level: u32, authInfo: nsIAuthInformation): Promise<any>;
+ confirmUserPaste(aWindow: WindowGlobalParent): Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/windowwatcher/nsIWindowWatcher.idl
+
+interface nsIWindowWatcher extends nsISupports {
+ openWindow(aParent: mozIDOMWindowProxy, aUrl: string, aName: string, aFeatures: string, aArguments: nsISupports): mozIDOMWindowProxy;
+ registerNotification(aObserver: nsIObserver): void;
+ unregisterNotification(aObserver: nsIObserver): void;
+ getWindowEnumerator(): nsISimpleEnumerator;
+ getNewPrompter(aParent: mozIDOMWindowProxy): nsIPrompt;
+ getNewAuthPrompter(aParent: mozIDOMWindowProxy): nsIAuthPrompt;
+ setWindowCreator(creator: nsIWindowCreator): void;
+ hasWindowCreator(): boolean;
+ getChromeForWindow(aWindow: mozIDOMWindowProxy): nsIWebBrowserChrome;
+ getWindowByName(aTargetName: string): mozIDOMWindowProxy;
+ readonly activeWindow: mozIDOMWindowProxy;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/components/windowwatcher/nsPIWindowWatcher.idl
+
+// https://searchfox.org/mozilla-central/source/xpcom/tests/NotXPCOMTest.idl
+
+interface nsIScriptableOK extends nsISupports {
+ method1(): void;
+}
+
+interface nsIScriptableWithNotXPCOM extends nsISupports {
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsIAvailableMemoryWatcherBase.idl
+
+interface nsITabUnloader extends nsISupports {
+ unloadTabAsync(): void;
+}
+
+interface nsIAvailableMemoryWatcherBase extends nsISupports {
+ registerTabUnloader(aTabUnloader: nsITabUnloader): void;
+ onUnloadAttemptCompleted(aResult: nsresult): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsIConsoleListener.idl
+
+type nsIConsoleListener = Callable<{
+ observe(aMessage: nsIConsoleMessage): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsIConsoleMessage.idl
+
+interface nsIConsoleMessage extends nsISupports {
+ readonly debug: 0;
+ readonly info: 1;
+ readonly warn: 2;
+ readonly error: 3;
+
+ readonly logLevel: u32;
+ readonly timeStamp: i64;
+ readonly microSecondTimeStamp: i64;
+ readonly message: string;
+ isForwardedFromContentProcess: boolean;
+ toString(): string;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsIConsoleService.idl
+
+} // global
+
+declare namespace nsIConsoleService {
+
+enum OutputMode {
+ SuppressLog = 0,
+ OutputToLog = 1,
+}
+
+}
+
+declare global {
+
+interface nsIConsoleService extends nsISupports, Enums<typeof nsIConsoleService.OutputMode> {
+ logMessage(message: nsIConsoleMessage): void;
+ callFunctionAndLogException(targetGlobal: any, func: any): any;
+ logMessageWithMode(message: nsIConsoleMessage, mode: nsIConsoleService.OutputMode): void;
+ logStringMessage(message: string): void;
+ getMessageArray(): nsIConsoleMessage[];
+ registerListener(listener: nsIConsoleListener): void;
+ unregisterListener(listener: nsIConsoleListener): void;
+ reset(): void;
+ resetWindow(windowInnerId: u64): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsICycleCollectorListener.idl
+
+interface nsICycleCollectorHandler extends nsISupports {
+ noteRefCountedObject(aAddress: string, aRefCount: u32, aObjectDescription: string): void;
+ noteGCedObject(aAddress: string, aMarked: boolean, aObjectDescription: string, aCompartmentAddress: string): void;
+ noteEdge(aFromAddress: string, aToAddress: string, aEdgeName: string): void;
+ describeRoot(aAddress: string, aKnownEdges: u32): void;
+ describeGarbage(aAddress: string): void;
+}
+
+interface nsICycleCollectorLogSink extends nsISupports {
+ closeGCLog(): void;
+ closeCCLog(): void;
+ filenameIdentifier: string;
+ processIdentifier: i32;
+ readonly gcLog: nsIFile;
+ readonly ccLog: nsIFile;
+}
+
+interface nsICycleCollectorListener extends nsISupports {
+ allTraces(): nsICycleCollectorListener;
+ readonly wantAllTraces: boolean;
+ disableLog: boolean;
+ logSink: nsICycleCollectorLogSink;
+ wantAfterProcessing: boolean;
+ processNext(aHandler: nsICycleCollectorHandler): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsIDebug2.idl
+
+interface nsIDebug2 extends nsISupports {
+ readonly isDebugBuild: boolean;
+ readonly assertionCount: i32;
+ readonly isDebuggerAttached: boolean;
+ assertion(aStr: string, aExpr: string, aFile: string, aLine: i32): void;
+ warning(aStr: string, aFile: string, aLine: i32): void;
+ break(aFile: string, aLine: i32): void;
+ abort(aFile: string, aLine: i32): void;
+ rustPanic(aMessage: string): void;
+ rustLog(aTarget: string, aMessage: string): void;
+ crashWithOOM(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsIException.idl
+
+interface nsIStackFrame extends nsISupports {
+ readonly filename: string;
+ readonly name: string;
+ readonly sourceId: i32;
+ readonly lineNumber: i32;
+ readonly columnNumber: i32;
+ readonly sourceLine: string;
+ readonly asyncCause: string;
+ readonly asyncCaller: nsIStackFrame;
+ readonly caller: nsIStackFrame;
+ readonly formattedStack: string;
+ readonly nativeSavedFrame: any;
+ toString(): string;
+}
+
+interface nsIException extends nsISupports {
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsIInterfaceRequestor.idl
+
+interface nsIInterfaceRequestor extends nsISupports {
+ getInterface<T extends nsIID>(uuid: T): nsQIResult<T>;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsIMemoryInfoDumper.idl
+
+type nsIFinishDumpingCallback = Callable<{
+ callback(data: nsISupports): void;
+}>
+
+interface nsIDumpGCAndCCLogsCallback extends nsISupports {
+ onDump(aGCLog: nsIFile, aCCLog: nsIFile, aIsParent: boolean): void;
+ onFinish(): void;
+}
+
+interface nsIMemoryInfoDumper extends nsISupports {
+ dumpMemoryReportsToNamedFile(aFilename: string, aFinishDumping: nsIFinishDumpingCallback, aFinishDumpingData: nsISupports, aAnonymize: boolean, aMinimizeMemoryUsage: boolean): void;
+ dumpMemoryInfoToTempDir(aIdentifier: string, aAnonymize: boolean, aMinimizeMemoryUsage: boolean): void;
+ dumpGCAndCCLogsToFile(aIdentifier: string, aDumpAllTraces: boolean, aDumpChildProcesses: boolean, aCallback: nsIDumpGCAndCCLogsCallback): void;
+ dumpGCAndCCLogsToSink(aDumpAllTraces: boolean, aSink: nsICycleCollectorLogSink): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsIMemoryReporter.idl
+
+type nsIHandleReportCallback = Callable<{
+ callback(process: string, path: string, kind: i32, units: i32, amount: i64, description: string, data: nsISupports): void;
+}>
+
+interface nsIMemoryReporter extends nsISupports {
+ readonly KIND_NONHEAP: 0;
+ readonly KIND_HEAP: 1;
+ readonly KIND_OTHER: 2;
+ readonly UNITS_BYTES: 0;
+ readonly UNITS_COUNT: 1;
+ readonly UNITS_COUNT_CUMULATIVE: 2;
+ readonly UNITS_PERCENTAGE: 3;
+
+ collectReports(callback: nsIHandleReportCallback, data: nsISupports, anonymize: boolean): void;
+}
+
+type nsIFinishReportingCallback = Callable<{
+ callback(data: nsISupports): void;
+}>
+
+type nsIHeapAllocatedCallback = Callable<{
+ callback(bytesAllocated: i64): void;
+}>
+
+interface nsIMemoryReporterManager extends nsISupports {
+ init(): void;
+ registerStrongReporter(reporter: nsIMemoryReporter): void;
+ registerStrongAsyncReporter(reporter: nsIMemoryReporter): void;
+ registerWeakReporter(reporter: nsIMemoryReporter): void;
+ registerWeakAsyncReporter(reporter: nsIMemoryReporter): void;
+ unregisterStrongReporter(reporter: nsIMemoryReporter): void;
+ unregisterWeakReporter(reporter: nsIMemoryReporter): void;
+ blockRegistrationAndHideExistingReporters(): void;
+ unblockRegistrationAndRestoreOriginalReporters(): void;
+ registerStrongReporterEvenIfBlocked(aReporter: nsIMemoryReporter): void;
+ getReports(handleReport: nsIHandleReportCallback, handleReportData: nsISupports, finishReporting: nsIFinishReportingCallback, finishReportingData: nsISupports, anonymize: boolean): void;
+ readonly vsize: i64;
+ readonly vsizeMaxContiguous: i64;
+ readonly resident: i64;
+ readonly residentFast: i64;
+ readonly residentPeak: i64;
+ readonly residentUnique: i64;
+ readonly heapAllocated: i64;
+ readonly heapOverheadFraction: i64;
+ readonly JSMainRuntimeGCHeap: i64;
+ readonly JSMainRuntimeTemporaryPeak: i64;
+ readonly JSMainRuntimeCompartmentsSystem: i64;
+ readonly JSMainRuntimeCompartmentsUser: i64;
+ readonly JSMainRuntimeRealmsSystem: i64;
+ readonly JSMainRuntimeRealmsUser: i64;
+ readonly imagesContentUsedUncompressed: i64;
+ readonly storageSQLite: i64;
+ readonly lowMemoryEventsPhysical: i64;
+ readonly ghostWindows: i64;
+ readonly pageFaultsHard: i64;
+ readonly hasMozMallocUsableSize: boolean;
+ readonly isDMDEnabled: boolean;
+ readonly isDMDRunning: boolean;
+ minimizeMemoryUsage(callback: nsIRunnable): void;
+ sizeOfTab(window: mozIDOMWindowProxy, jsObjectsSize: OutParam<i64>, jsStringsSize: OutParam<i64>, jsOtherSize: OutParam<i64>, domSize: OutParam<i64>, styleSize: OutParam<i64>, otherSize: OutParam<i64>, totalSize: OutParam<i64>, jsMilliseconds: OutParam<double>, nonJSMilliseconds: OutParam<double>): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsISecurityConsoleMessage.idl
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsISupports.idl
+
+interface nsISupports {
+ QueryInterface?<T extends nsIID>(aIID: T): nsQIResult<T>;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsIUUIDGenerator.idl
+
+interface nsIUUIDGenerator extends nsISupports {
+ generateUUID(): nsID;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsIVersionComparator.idl
+
+interface nsIVersionComparator extends nsISupports {
+ compare(A: string, B: string): i32;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsIWeakReference.idl
+
+interface nsIWeakReference extends nsISupports {
+ QueryReferent<T extends nsIID>(uuid: T): nsQIResult<T>;
+}
+
+interface nsISupportsWeakReference extends nsISupports {
+ GetWeakReference(): nsIWeakReference;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/base/nsrootidl.idl
+
+// https://searchfox.org/mozilla-central/source/xpcom/components/nsICategoryManager.idl
+
+interface nsICategoryEntry extends nsISupportsCString {
+ readonly entry: string;
+ readonly value: string;
+}
+
+interface nsICategoryManager extends nsISupports {
+ getCategoryEntry(aCategory: string, aEntry: string): string;
+ addCategoryEntry(aCategory: string, aEntry: string, aValue: string, aPersist: boolean, aReplace: boolean): string;
+ deleteCategoryEntry(aCategory: string, aEntry: string, aPersist: boolean): void;
+ deleteCategory(aCategory: string): void;
+ enumerateCategory(aCategory: string): nsISimpleEnumerator;
+ enumerateCategories(): nsISimpleEnumerator;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/components/nsIClassInfo.idl
+
+interface nsIClassInfo extends nsISupports {
+ readonly SINGLETON: 1;
+ readonly THREADSAFE: 2;
+ readonly SINGLETON_CLASSINFO: 32;
+ readonly RESERVED: 2147483648;
+
+ readonly interfaces: nsID[];
+ getScriptableHelper(): nsIXPCScriptable;
+ readonly contractID: string;
+ readonly classDescription: string;
+ readonly classID: nsID;
+ readonly flags: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/components/nsIComponentManager.idl
+
+interface nsIComponentManager extends nsISupports {
+ getClassObject<T extends nsIID>(aClass: nsID, aIID: T): nsQIResult<T>;
+ getClassObjectByContractID<T extends nsIID>(aContractID: string, aIID: T): nsQIResult<T>;
+ addBootstrappedManifestLocation(aLocation: nsIFile): void;
+ removeBootstrappedManifestLocation(aLocation: nsIFile): void;
+ getManifestLocations(): nsIArray;
+ getComponentJSMs(): nsIUTF8StringEnumerator;
+ getComponentESModules(): nsIUTF8StringEnumerator;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/components/nsIComponentRegistrar.idl
+
+interface nsIComponentRegistrar extends nsISupports {
+ autoRegister(aSpec: nsIFile): void;
+ registerFactory(aClass: nsID, aClassName: string, aContractID: string, aFactory: nsIFactory): void;
+ unregisterFactory(aClass: nsID, aFactory: nsIFactory): void;
+ isCIDRegistered(aClass: nsID): boolean;
+ isContractIDRegistered(aContractID: string): boolean;
+ getContractIDs(): string[];
+ contractIDToCID(aContractID: string): nsID;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/components/nsIFactory.idl
+
+interface nsIFactory extends nsISupports {
+ createInstance<T extends nsIID>(iid: T): nsQIResult<T>;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/components/nsIServiceManager.idl
+
+interface nsIServiceManager extends nsISupports {
+ getService<T extends nsIID>(aClass: nsID, aIID: T): nsQIResult<T>;
+ getServiceByContractID<T extends nsIID>(aContractID: string, aIID: T): nsQIResult<T>;
+ isServiceInstantiated(aClass: nsID, aIID: nsID): boolean;
+ isServiceInstantiatedByContractID(aContractID: string, aIID: nsID): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIArray.idl
+
+interface nsIArray extends nsISupports {
+ readonly length: u32;
+ queryElementAt<T extends nsIID>(index: u32, uuid: T): nsQIResult<T>;
+ indexOf(startIndex: u32, element: nsISupports): u32;
+ enumerate(aElemIID?: nsID): nsISimpleEnumerator;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIArrayExtensions.idl
+
+interface nsIArrayExtensions extends nsIArray {
+ Count(): u32;
+ GetElementAt(index: u32): nsISupports;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIINIParser.idl
+
+interface nsIINIParser extends nsISupports {
+ initFromString(aData: string): void;
+ getSections(): nsIUTF8StringEnumerator;
+ getKeys(aSection: string): nsIUTF8StringEnumerator;
+ getString(aSection: string, aKey: string): string;
+}
+
+interface nsIINIParserWriter extends nsISupports {
+ setString(aSection: string, aKey: string, aValue: string): void;
+ writeFile(aINIFile: nsIFile): void;
+ writeToString(): string;
+}
+
+interface nsIINIParserFactory extends nsISupports {
+ createINIParser(aINIFile?: nsIFile): nsIINIParser;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIMutableArray.idl
+
+interface nsIMutableArray extends nsIArrayExtensions {
+ appendElement(element: nsISupports): void;
+ removeElementAt(index: u32): void;
+ insertElementAt(element: nsISupports, index: u32): void;
+ replaceElementAt(element: nsISupports, index: u32): void;
+ clear(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIObserver.idl
+
+type nsIObserver = Callable<{
+ observe(aSubject: nsISupports, aTopic: string, aData: string): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIObserverService.idl
+
+interface nsIObserverService extends nsISupports {
+ addObserver(anObserver: nsIObserver, aTopic: string, ownsWeak?: boolean): void;
+ removeObserver(anObserver: nsIObserver, aTopic: string): void;
+ notifyObservers(aSubject: nsISupports, aTopic: string, someData?: string): void;
+ enumerateObservers(aTopic: string): nsISimpleEnumerator;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIPersistentProperties2.idl
+
+interface nsIPropertyElement extends nsISupports {
+ key: string;
+ value: string;
+}
+
+interface nsIPersistentProperties extends nsIProperties {
+ load(input: nsIInputStream): void;
+ save(output: nsIOutputStream, header: string): void;
+ enumerate(): nsISimpleEnumerator;
+ getStringProperty(key: string): string;
+ setStringProperty(key: string, value: string): string;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIProperties.idl
+
+interface nsIProperties extends nsISupports {
+ get<T extends nsIID>(prop: string, iid: T): nsQIResult<T>;
+ set(prop: string, value: nsISupports): void;
+ has(prop: string): boolean;
+ undefine(prop: string): void;
+ getKeys(): string[];
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIProperty.idl
+
+interface nsIProperty extends nsISupports {
+ readonly name: string;
+ readonly value: nsIVariant;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIPropertyBag.idl
+
+interface nsIPropertyBag extends nsISupports {
+ readonly enumerator: nsISimpleEnumerator;
+ getProperty(name: string): nsIVariant;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIPropertyBag2.idl
+
+interface nsIPropertyBag2 extends nsIPropertyBag {
+ getPropertyAsInt32(prop: string): i32;
+ getPropertyAsUint32(prop: string): u32;
+ getPropertyAsInt64(prop: string): i64;
+ getPropertyAsUint64(prop: string): u64;
+ getPropertyAsDouble(prop: string): double;
+ getPropertyAsAString(prop: string): string;
+ getPropertyAsACString(prop: string): string;
+ getPropertyAsAUTF8String(prop: string): string;
+ getPropertyAsBool(prop: string): boolean;
+ getPropertyAsInterface<T extends nsIID>(prop: string, iid: T): nsQIResult<T>;
+ get(prop: string): nsIVariant;
+ hasKey(prop: string): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsISerializable.idl
+
+interface nsISerializable extends nsISupports {
+ read(aInputStream: nsIObjectInputStream): void;
+ write(aOutputStream: nsIObjectOutputStream): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsISimpleEnumerator.idl
+
+interface nsIJSEnumerator extends nsISupports {
+ iterator(): nsIJSEnumerator;
+ next(): any;
+}
+
+interface nsISimpleEnumeratorBase extends nsISupports {
+ iterator(): nsIJSEnumerator;
+ entries(aIface: nsID): nsIJSEnumerator;
+}
+
+interface nsISimpleEnumerator extends nsISimpleEnumeratorBase {
+ hasMoreElements(): boolean;
+ getNext(): nsISupports;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIStringEnumerator.idl
+
+interface nsIStringEnumeratorBase extends nsISupports {
+ iterator(): nsIJSEnumerator;
+}
+
+interface nsIStringEnumerator extends nsIStringEnumeratorBase {
+ hasMore(): boolean;
+ getNext(): string;
+}
+
+interface nsIUTF8StringEnumerator extends nsIStringEnumeratorBase {
+ hasMore(): boolean;
+ getNext(): string;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsISupportsIterators.idl
+
+interface nsIOutputIterator extends nsISupports {
+ putElement(anElementToPut: nsISupports): void;
+ stepForward(): void;
+}
+
+interface nsIInputIterator extends nsISupports {
+ getElement(): nsISupports;
+ stepForward(): void;
+ isEqualTo(anotherIterator: nsISupports): boolean;
+ clone(): nsISupports;
+}
+
+interface nsIForwardIterator extends nsISupports {
+ getElement(): nsISupports;
+ putElement(anElementToPut: nsISupports): void;
+ stepForward(): void;
+ isEqualTo(anotherIterator: nsISupports): boolean;
+ clone(): nsISupports;
+}
+
+interface nsIBidirectionalIterator extends nsISupports {
+ getElement(): nsISupports;
+ putElement(anElementToPut: nsISupports): void;
+ stepForward(): void;
+ stepBackward(): void;
+ isEqualTo(anotherIterator: nsISupports): boolean;
+ clone(): nsISupports;
+}
+
+interface nsIRandomAccessIterator extends nsISupports {
+ getElement(): nsISupports;
+ getElementAt(anOffset: i32): nsISupports;
+ putElement(anElementToPut: nsISupports): void;
+ putElementAt(anOffset: i32, anElementToPut: nsISupports): void;
+ stepForward(): void;
+ stepForwardBy(anOffset: i32): void;
+ stepBackward(): void;
+ stepBackwardBy(anOffset: i32): void;
+ isEqualTo(anotherIterator: nsISupports): boolean;
+ clone(): nsISupports;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsISupportsPrimitives.idl
+
+interface nsISupportsPrimitive extends nsISupports {
+ readonly TYPE_ID: 1;
+ readonly TYPE_CSTRING: 2;
+ readonly TYPE_STRING: 3;
+ readonly TYPE_PRBOOL: 4;
+ readonly TYPE_PRUINT8: 5;
+ readonly TYPE_PRUINT16: 6;
+ readonly TYPE_PRUINT32: 7;
+ readonly TYPE_PRUINT64: 8;
+ readonly TYPE_PRTIME: 9;
+ readonly TYPE_CHAR: 10;
+ readonly TYPE_PRINT16: 11;
+ readonly TYPE_PRINT32: 12;
+ readonly TYPE_PRINT64: 13;
+ readonly TYPE_FLOAT: 14;
+ readonly TYPE_DOUBLE: 15;
+ readonly TYPE_INTERFACE_POINTER: 17;
+
+ readonly type: u16;
+}
+
+interface nsISupportsID extends nsISupportsPrimitive {
+ data: nsID;
+ toString(): string;
+}
+
+interface nsISupportsCString extends nsISupportsPrimitive {
+ data: string;
+ toString(): string;
+}
+
+interface nsISupportsString extends nsISupportsPrimitive {
+ data: string;
+ toString(): string;
+}
+
+interface nsISupportsPRBool extends nsISupportsPrimitive {
+ data: boolean;
+ toString(): string;
+}
+
+interface nsISupportsPRUint8 extends nsISupportsPrimitive {
+ data: u8;
+ toString(): string;
+}
+
+interface nsISupportsPRUint16 extends nsISupportsPrimitive {
+ data: u16;
+ toString(): string;
+}
+
+interface nsISupportsPRUint32 extends nsISupportsPrimitive {
+ data: u32;
+ toString(): string;
+}
+
+interface nsISupportsPRUint64 extends nsISupportsPrimitive {
+ data: u64;
+ toString(): string;
+}
+
+interface nsISupportsPRTime extends nsISupportsPrimitive {
+ data: PRTime;
+ toString(): string;
+}
+
+interface nsISupportsChar extends nsISupportsPrimitive {
+ data: string;
+ toString(): string;
+}
+
+interface nsISupportsPRInt16 extends nsISupportsPrimitive {
+ data: i16;
+ toString(): string;
+}
+
+interface nsISupportsPRInt32 extends nsISupportsPrimitive {
+ data: i32;
+ toString(): string;
+}
+
+interface nsISupportsPRInt64 extends nsISupportsPrimitive {
+ data: i64;
+ toString(): string;
+}
+
+interface nsISupportsFloat extends nsISupportsPrimitive {
+ data: float;
+ toString(): string;
+}
+
+interface nsISupportsDouble extends nsISupportsPrimitive {
+ data: double;
+ toString(): string;
+}
+
+interface nsISupportsInterfacePointer extends nsISupportsPrimitive {
+ data: nsISupports;
+ dataIID: nsID;
+ toString(): string;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIVariant.idl
+
+interface nsIVariant extends nsISupports {
+}
+
+interface nsIWritableVariant extends nsIVariant {
+ writable: boolean;
+ setAsInt8(aValue: u8): void;
+ setAsInt16(aValue: i16): void;
+ setAsInt32(aValue: i32): void;
+ setAsInt64(aValue: i64): void;
+ setAsUint8(aValue: u8): void;
+ setAsUint16(aValue: u16): void;
+ setAsUint32(aValue: u32): void;
+ setAsUint64(aValue: u64): void;
+ setAsFloat(aValue: float): void;
+ setAsDouble(aValue: double): void;
+ setAsBool(aValue: boolean): void;
+ setAsChar(aValue: string): void;
+ setAsWChar(aValue: string): void;
+ setAsID(aValue: nsID): void;
+ setAsAString(aValue: string): void;
+ setAsACString(aValue: string): void;
+ setAsAUTF8String(aValue: string): void;
+ setAsString(aValue: string): void;
+ setAsWString(aValue: string): void;
+ setAsISupports(aValue: nsISupports): void;
+ setAsStringWithSize(size: u32, str: string): void;
+ setAsWStringWithSize(size: u32, str: string): void;
+ setAsVoid(): void;
+ setAsEmpty(): void;
+ setAsEmptyArray(): void;
+ setFromVariant(aValue: nsIVariant): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIWindowsRegKey.idl
+
+interface nsIWindowsRegKey extends nsISupports {
+ readonly ROOT_KEY_CLASSES_ROOT: 2147483648;
+ readonly ROOT_KEY_CURRENT_USER: 2147483649;
+ readonly ROOT_KEY_LOCAL_MACHINE: 2147483650;
+ readonly ACCESS_BASIC: 131072;
+ readonly ACCESS_QUERY_VALUE: 1;
+ readonly ACCESS_SET_VALUE: 2;
+ readonly ACCESS_CREATE_SUB_KEY: 4;
+ readonly ACCESS_ENUMERATE_SUB_KEYS: 8;
+ readonly ACCESS_NOTIFY: 16;
+ readonly ACCESS_READ: 131097;
+ readonly ACCESS_WRITE: 131078;
+ readonly ACCESS_ALL: 131103;
+ readonly WOW64_32: 512;
+ readonly WOW64_64: 256;
+ readonly TYPE_NONE: 0;
+ readonly TYPE_STRING: 1;
+ readonly TYPE_BINARY: 3;
+ readonly TYPE_INT: 4;
+ readonly TYPE_INT64: 11;
+
+ close(): void;
+ open(rootKey: u32, relPath: string, mode: u32): void;
+ create(rootKey: u32, relPath: string, mode: u32): void;
+ openChild(relPath: string, mode: u32): nsIWindowsRegKey;
+ createChild(relPath: string, mode: u32): nsIWindowsRegKey;
+ readonly childCount: u32;
+ getChildName(index: u32): string;
+ hasChild(name: string): boolean;
+ readonly valueCount: u32;
+ getValueName(index: u32): string;
+ hasValue(name: string): boolean;
+ removeChild(relPath: string): void;
+ removeValue(name: string): void;
+ getValueType(name: string): u32;
+ readStringValue(name: string): string;
+ readIntValue(name: string): u32;
+ readInt64Value(name: string): u64;
+ readBinaryValue(name: string): string;
+ writeStringValue(name: string, data: string): void;
+ writeIntValue(name: string, data: u32): void;
+ writeInt64Value(name: string, data: u64): void;
+ writeBinaryValue(name: string, data: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIWritablePropertyBag.idl
+
+interface nsIWritablePropertyBag extends nsIPropertyBag {
+ setProperty(name: string, value: nsIVariant): void;
+ deleteProperty(name: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIWritablePropertyBag2.idl
+
+interface nsIWritablePropertyBag2 extends nsIPropertyBag2 {
+ setPropertyAsInt32(prop: string, value: i32): void;
+ setPropertyAsUint32(prop: string, value: u32): void;
+ setPropertyAsInt64(prop: string, value: i64): void;
+ setPropertyAsUint64(prop: string, value: u64): void;
+ setPropertyAsDouble(prop: string, value: double): void;
+ setPropertyAsAString(prop: string, value: string): void;
+ setPropertyAsACString(prop: string, value: string): void;
+ setPropertyAsAUTF8String(prop: string, value: string): void;
+ setPropertyAsBool(prop: string, value: boolean): void;
+ setPropertyAsInterface(prop: string, value: nsISupports): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIAsyncInputStream.idl
+
+interface nsIAsyncInputStream extends nsIInputStream {
+ readonly WAIT_CLOSURE_ONLY: 1;
+
+ closeWithStatus(aStatus: nsresult): void;
+ asyncWait(aCallback: nsIInputStreamCallback, aFlags: u32, aRequestedCount: u32, aEventTarget: nsIEventTarget): void;
+}
+
+type nsIInputStreamCallback = Callable<{
+ onInputStreamReady(aStream: nsIAsyncInputStream): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIAsyncOutputStream.idl
+
+interface nsIAsyncOutputStream extends nsIOutputStream {
+ readonly WAIT_CLOSURE_ONLY: 1;
+
+ closeWithStatus(reason: nsresult): void;
+ asyncWait(aCallback: nsIOutputStreamCallback, aFlags: u32, aRequestedCount: u32, aEventTarget: nsIEventTarget): void;
+}
+
+type nsIOutputStreamCallback = Callable<{
+ onOutputStreamReady(aStream: nsIAsyncOutputStream): void;
+}>
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIBinaryInputStream.idl
+
+interface nsIBinaryInputStream extends nsIInputStream {
+ setInputStream(aInputStream: nsIInputStream): void;
+ readBoolean(): boolean;
+ read8(): u8;
+ read16(): u16;
+ read32(): u32;
+ read64(): u64;
+ readFloat(): float;
+ readDouble(): double;
+ readCString(): string;
+ readString(): string;
+ readBytes(aLength: u32): OutParam<string>;
+ readByteArray(aLength: u32): u8[];
+ readArrayBuffer(aLength: u64, aArrayBuffer: any): u64;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIBinaryOutputStream.idl
+
+interface nsIBinaryOutputStream extends nsIOutputStream {
+ setOutputStream(aOutputStream: nsIOutputStream): void;
+ writeBoolean(aBoolean: boolean): void;
+ write8(aByte: u8): void;
+ write16(a16: u16): void;
+ write32(a32: u32): void;
+ write64(a64: u64): void;
+ writeFloat(aFloat: float): void;
+ writeDouble(aDouble: double): void;
+ writeStringZ(aString: string): void;
+ writeWStringZ(aString: string): void;
+ writeUtf8Z(aString: string): void;
+ writeBytes(aString: string, aLength?: u32): void;
+ writeByteArray(aBytes: u8[]): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsICloneableInputStream.idl
+
+interface nsICloneableInputStream extends nsISupports {
+ readonly cloneable: boolean;
+ clone(): nsIInputStream;
+}
+
+interface nsICloneableInputStreamWithRange extends nsICloneableInputStream {
+ cloneWithRange(start: u64, length: u64): nsIInputStream;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIConverterInputStream.idl
+
+interface nsIConverterInputStream extends nsIUnicharInputStream {
+ readonly DEFAULT_REPLACEMENT_CHARACTER: 65533;
+ readonly ERRORS_ARE_FATAL: 0;
+
+ init(aStream: nsIInputStream, aCharset: string, aBufferSize: i32, aReplacementChar: char16_t): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIConverterOutputStream.idl
+
+interface nsIConverterOutputStream extends nsIUnicharOutputStream {
+ init(aOutStream: nsIOutputStream, aCharset: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIDirectoryEnumerator.idl
+
+interface nsIDirectoryEnumerator extends nsISimpleEnumerator {
+ readonly nextFile: nsIFile;
+ close(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIDirectoryService.idl
+
+interface nsIDirectoryServiceProvider extends nsISupports {
+ getFile(prop: string, persistent: OutParam<boolean>): nsIFile;
+}
+
+interface nsIDirectoryServiceProvider2 extends nsIDirectoryServiceProvider {
+ getFiles(prop: string): nsISimpleEnumerator;
+}
+
+interface nsIDirectoryService extends nsISupports {
+ init(): void;
+ registerProvider(prov: nsIDirectoryServiceProvider): void;
+ unregisterProvider(prov: nsIDirectoryServiceProvider): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIFile.idl
+
+interface nsIFile extends nsISupports {
+ readonly NORMAL_FILE_TYPE: 0;
+ readonly DIRECTORY_TYPE: 1;
+ readonly OS_READAHEAD: 1073741824;
+ readonly DELETE_ON_CLOSE: 2147483648;
+
+ append(node: string): void;
+ normalize(): void;
+ create(type: u32, permissions: u32, skipAncestors?: boolean): void;
+ leafName: string;
+ readonly displayName: string;
+ copyTo(newParentDir: nsIFile, newName: string): void;
+ copyToFollowingLinks(newParentDir: nsIFile, newName: string): void;
+ moveTo(newParentDir: nsIFile, newName: string): void;
+ moveToFollowingLinks(newParentDir: nsIFile, newName: string): void;
+ renameTo(newParentDir: nsIFile, newName: string): void;
+ remove(recursive: boolean, removeCount?: InOutParam<u32>): void;
+ permissions: u32;
+ permissionsOfLink: u32;
+ lastAccessedTime: PRTime;
+ lastAccessedTimeOfLink: PRTime;
+ lastModifiedTime: PRTime;
+ lastModifiedTimeOfLink: PRTime;
+ readonly creationTime: PRTime;
+ readonly creationTimeOfLink: PRTime;
+ fileSize: i64;
+ readonly fileSizeOfLink: i64;
+ readonly target: string;
+ readonly path: string;
+ exists(): boolean;
+ isWritable(): boolean;
+ isReadable(): boolean;
+ isExecutable(): boolean;
+ isHidden(): boolean;
+ isDirectory(): boolean;
+ isFile(): boolean;
+ isSymlink(): boolean;
+ isSpecial(): boolean;
+ createUnique(type: u32, permissions: u32): void;
+ clone(): nsIFile;
+ equals(inFile: nsIFile): boolean;
+ contains(inFile: nsIFile): boolean;
+ readonly parent: nsIFile;
+ readonly directoryEntries: nsIDirectoryEnumerator;
+ initWithPath(filePath: string): void;
+ initWithFile(aFile: nsIFile): void;
+ readonly diskSpaceAvailable: i64;
+ readonly diskCapacity: i64;
+ appendRelativePath(relativeFilePath: string): void;
+ persistentDescriptor: string;
+ reveal(): void;
+ launch(): void;
+ getRelativeDescriptor(fromFile: nsIFile): string;
+ setRelativeDescriptor(fromFile: nsIFile, relativeDesc: string): void;
+ getRelativePath(fromFile: nsIFile): string;
+ setRelativePath(fromFile: nsIFile, relativeDesc: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIIOUtil.idl
+
+interface nsIIOUtil extends nsISupports {
+ inputStreamIsBuffered(aStream: nsIInputStream): boolean;
+ outputStreamIsBuffered(aStream: nsIOutputStream): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIInputStream.idl
+
+interface nsIInputStream extends nsISupports {
+ close(): void;
+ available(): u64;
+ streamStatus(): void;
+ isNonBlocking(): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIInputStreamLength.idl
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIInputStreamPriority.idl
+
+interface nsIInputStreamPriority extends nsISupports {
+ priority: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIInputStreamTee.idl
+
+interface nsIInputStreamTee extends nsIInputStream {
+ source: nsIInputStream;
+ sink: nsIOutputStream;
+ eventTarget: nsIEventTarget;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsILineInputStream.idl
+
+interface nsILineInputStream extends nsISupports {
+ readLine(aLine: OutParam<string>): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsILocalFileWin.idl
+
+interface nsILocalFileWin extends nsIFile {
+ initWithCommandLine(aCommandLine: string): void;
+ getVersionInfoField(aField: string): string;
+ readOnly: boolean;
+ useDOSDevicePathSyntax: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIMultiplexInputStream.idl
+
+interface nsIMultiplexInputStream extends nsISupports {
+ readonly count: u32;
+ appendStream(stream: nsIInputStream): void;
+ getStream(index: u32): nsIInputStream;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIObjectInputStream.idl
+
+interface nsIObjectInputStream extends nsIBinaryInputStream {
+ readObject(aIsStrongRef: boolean): nsISupports;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIObjectOutputStream.idl
+
+interface nsIObjectOutputStream extends nsIBinaryOutputStream {
+ writeObject(aObject: nsISupports, aIsStrongRef: boolean): void;
+ writeSingleRefObject(aObject: nsISupports): void;
+ writeCompoundObject(aObject: nsISupports, aIID: nsID, aIsStrongRef: boolean): void;
+ writeID(aID: nsID): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIOutputStream.idl
+
+interface nsIOutputStream extends nsISupports {
+ close(): void;
+ flush(): void;
+ streamStatus(): void;
+ write(aBuf: string, aCount: u32): u32;
+ writeFrom(aFromStream: nsIInputStream, aCount: u32): u32;
+ isNonBlocking(): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIPipe.idl
+
+interface nsIPipe extends nsISupports {
+ init(nonBlockingInput: boolean, nonBlockingOutput: boolean, segmentSize: u32, segmentCount: u32): void;
+ readonly inputStream: nsIAsyncInputStream;
+ readonly outputStream: nsIAsyncOutputStream;
+}
+
+interface nsISearchableInputStream extends nsISupports {
+ search(forString: string, ignoreCase: boolean, found: OutParam<boolean>, offsetSearchedTo: OutParam<u32>): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIRandomAccessStream.idl
+
+interface nsIRandomAccessStream extends nsISeekableStream {
+ getInputStream(): nsIInputStream;
+ getOutputStream(): nsIOutputStream;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsISafeOutputStream.idl
+
+interface nsISafeOutputStream extends nsISupports {
+ finish(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIScriptableBase64Encoder.idl
+
+interface nsIScriptableBase64Encoder extends nsISupports {
+ encodeToCString(stream: nsIInputStream, length: u32): string;
+ encodeToString(stream: nsIInputStream, length: u32): string;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIScriptableInputStream.idl
+
+interface nsIScriptableInputStream extends nsISupports {
+ close(): void;
+ init(aInputStream: nsIInputStream): void;
+ available(): u64;
+ read(aCount: u32): string;
+ readBytes(aCount: u32): string;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsISeekableStream.idl
+
+interface nsISeekableStream extends nsITellableStream {
+ readonly NS_SEEK_SET: 0;
+ readonly NS_SEEK_CUR: 1;
+ readonly NS_SEEK_END: 2;
+
+ seek(whence: i32, offset: i64): void;
+ setEOF(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIStorageStream.idl
+
+interface nsIStorageStream extends nsISupports {
+ init(segmentSize: u32, maxSize: u32): void;
+ getOutputStream(startPosition: i32): nsIOutputStream;
+ newInputStream(startPosition: i32): nsIInputStream;
+ length: u32;
+ readonly writeInProgress: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIStreamBufferAccess.idl
+
+interface nsIStreamBufferAccess extends nsISupports {
+ disableBuffering(): void;
+ enableBuffering(): void;
+ readonly unbufferedStream: nsISupports;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIStringStream.idl
+
+interface nsIStringInputStream extends nsIInputStream {
+ setData(data: string, dataLen: i32): void;
+ setUTF8Data(data: string): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsITellableStream.idl
+
+interface nsITellableStream extends nsISupports {
+ tell(): i64;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIUnicharInputStream.idl
+
+interface nsIUnicharInputStream extends nsISupports {
+ readString(aCount: u32, aString: OutParam<string>): u32;
+ close(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIUnicharLineInputStream.idl
+
+interface nsIUnicharLineInputStream extends nsISupports {
+ readLine(aLine: OutParam<string>): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/io/nsIUnicharOutputStream.idl
+
+interface nsIUnicharOutputStream extends nsISupports {
+ write(aCount: u32, c: char16_t[]): boolean;
+ writeString(str: string): boolean;
+ flush(): void;
+ close(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/system/nsIBlocklistService.idl
+
+interface nsIBlocklistService extends nsISupports {
+ readonly STATE_NOT_BLOCKED: 0;
+ readonly STATE_SOFTBLOCKED: 1;
+ readonly STATE_BLOCKED: 2;
+ readonly STATE_MAX: 3;
+
+ readonly isLoaded: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/system/nsICrashReporter.idl
+
+interface nsICrashReporter extends nsISupports {
+ readonly crashReporterEnabled: boolean;
+ serverURL: nsIURL;
+ minidumpPath: nsIFile;
+ getMinidumpForID(id: string): nsIFile;
+ getExtraFileForID(id: string): nsIFile;
+ annotateCrashReport(key: string, data: string): void;
+ removeCrashReportAnnotation(key: string): void;
+ isAnnotationAllowedForPing(value: string): boolean;
+ appendAppNotesToCrashReport(data: string): void;
+ registerAppMemory(ptr: u64, size: u64): void;
+ submitReports: boolean;
+ UpdateCrashEventsDir(): void;
+ saveMemoryReport(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/system/nsIDeviceSensors.idl
+
+interface nsIDeviceSensorData extends nsISupports {
+ readonly TYPE_ORIENTATION: 0;
+ readonly TYPE_ACCELERATION: 1;
+ readonly TYPE_PROXIMITY: 2;
+ readonly TYPE_LINEAR_ACCELERATION: 3;
+ readonly TYPE_GYROSCOPE: 4;
+ readonly TYPE_LIGHT: 5;
+ readonly TYPE_ROTATION_VECTOR: 6;
+ readonly TYPE_GAME_ROTATION_VECTOR: 7;
+
+ readonly type: u32;
+ readonly x: double;
+ readonly y: double;
+ readonly z: double;
+}
+
+interface nsIDeviceSensors extends nsISupports {
+ hasWindowListener(aType: u32, aWindow: nsIDOMWindow): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/system/nsIGIOService.idl
+
+interface nsIGIOMimeApp extends nsIHandlerApp {
+ readonly EXPECTS_URIS: 0;
+ readonly EXPECTS_PATHS: 1;
+ readonly EXPECTS_URIS_FOR_NON_FILES: 2;
+
+ readonly id: string;
+ readonly command: string;
+ readonly expectsURIs: i32;
+ readonly supportedURISchemes: nsIUTF8StringEnumerator;
+ setAsDefaultForMimeType(mimeType: string): void;
+ setAsDefaultForFileExtensions(extensions: string): void;
+ setAsDefaultForURIScheme(uriScheme: string): void;
+}
+
+interface nsIGIOService extends nsISupports {
+ getMimeTypeFromExtension(extension: string): string;
+ getAppForURIScheme(aURIScheme: string): nsIHandlerApp;
+ getAppsForURIScheme(aURIScheme: string): nsIMutableArray;
+ getAppForMimeType(mimeType: string): nsIHandlerApp;
+ createAppFromCommand(cmd: string, appName: string): nsIGIOMimeApp;
+ findAppFromCommand(cmd: string): nsIGIOMimeApp;
+ getDescriptionForMimeType(mimeType: string): string;
+ readonly isRunningUnderFlatpak: boolean;
+ readonly isRunningUnderSnap: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/system/nsIGSettingsService.idl
+
+interface nsIGSettingsCollection extends nsISupports {
+ setString(key: string, value: string): void;
+ setBoolean(key: string, value: boolean): void;
+ setInt(key: string, value: i32): void;
+ getString(key: string): string;
+ getBoolean(key: string): boolean;
+ getInt(key: string): i32;
+ getStringList(key: string): nsIArray;
+}
+
+interface nsIGSettingsService extends nsISupports {
+ getCollectionForSchema(schema: string): nsIGSettingsCollection;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/system/nsIGeolocationProvider.idl
+
+interface nsIGeolocationUpdate extends nsISupports {
+ update(position: nsIDOMGeoPosition): void;
+ notifyError(error: u16): void;
+}
+
+interface nsIGeolocationProvider extends nsISupports {
+ startup(): void;
+ watch(callback: nsIGeolocationUpdate): void;
+ shutdown(): void;
+ setHighAccuracy(enable: boolean): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/system/nsIHapticFeedback.idl
+
+interface nsIHapticFeedback extends nsISupports {
+ readonly ShortPress: 0;
+ readonly LongPress: 1;
+
+ performSimpleAction(isLongPress: i32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/system/nsIPlatformInfo.idl
+
+interface nsIPlatformInfo extends nsISupports {
+ readonly platformVersion: string;
+ readonly platformBuildID: string;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/system/nsISystemInfo.idl
+
+interface nsISystemInfo extends nsISupports {
+ readonly diskInfo: Promise<any>;
+ readonly countryCode: Promise<any>;
+ readonly osInfo: Promise<any>;
+ readonly processInfo: Promise<any>;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/system/nsIXULAppInfo.idl
+
+interface nsIXULAppInfo extends nsIPlatformInfo {
+ readonly vendor: string;
+ readonly name: string;
+ readonly ID: string;
+ readonly version: string;
+ readonly appBuildID: string;
+ readonly UAName: string;
+ readonly sourceURL: string;
+ readonly updateURL: string;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/system/nsIXULRuntime.idl
+
+} // global
+
+declare namespace nsIXULRuntime {
+
+enum ExperimentStatus {
+ eExperimentStatusUnenrolled = 0,
+ eExperimentStatusControl = 1,
+ eExperimentStatusTreatment = 2,
+ eExperimentStatusDisqualified = 3,
+ eExperimentStatusRollout = 4,
+ eExperimentStatusCount = 5,
+}
+
+enum ContentWin32kLockdownState {
+ LockdownEnabled = 1,
+ MissingWebRender = 2,
+ OperatingSystemNotSupported = 3,
+ PrefNotSet = 4,
+ MissingRemoteWebGL = 5,
+ MissingNonNativeTheming = 6,
+ DisabledByEnvVar = 7,
+ DisabledBySafeMode = 8,
+ DisabledByE10S = 9,
+ DisabledByUserPref = 10,
+ EnabledByUserPref = 11,
+ DisabledByControlGroup = 12,
+ EnabledByTreatmentGroup = 13,
+ DisabledByDefault = 14,
+ EnabledByDefault = 15,
+ DecodersArentRemote = 16,
+ IncompatibleMitigationPolicy = 17,
+}
+
+enum FissionDecisionStatus {
+ eFissionStatusUnknown = 0,
+ eFissionExperimentControl = 1,
+ eFissionExperimentTreatment = 2,
+ eFissionDisabledByE10sEnv = 3,
+ eFissionEnabledByEnv = 4,
+ eFissionDisabledByEnv = 5,
+ eFissionEnabledByDefault = 7,
+ eFissionDisabledByDefault = 8,
+ eFissionEnabledByUserPref = 9,
+ eFissionDisabledByUserPref = 10,
+ eFissionDisabledByE10sOther = 11,
+ eFissionEnabledByRollout = 12,
+}
+
+}
+
+declare global {
+
+interface nsIXULRuntime extends nsISupports, Enums<typeof nsIXULRuntime.ExperimentStatus & typeof nsIXULRuntime.ContentWin32kLockdownState & typeof nsIXULRuntime.FissionDecisionStatus> {
+ readonly PROCESS_TYPE_DEFAULT: 0;
+ readonly PROCESS_TYPE_CONTENT: 2;
+ readonly PROCESS_TYPE_IPDLUNITTEST: 3;
+ readonly PROCESS_TYPE_GMPLUGIN: 4;
+ readonly PROCESS_TYPE_GPU: 5;
+ readonly PROCESS_TYPE_VR: 6;
+ readonly PROCESS_TYPE_RDD: 7;
+ readonly PROCESS_TYPE_SOCKET: 8;
+ readonly PROCESS_TYPE_REMOTESANDBOXBROKER: 9;
+ readonly PROCESS_TYPE_FORKSERVER: 10;
+ readonly PROCESS_TYPE_UTILITY: 11;
+ readonly E10S_MULTI_EXPERIMENT: 1;
+
+ readonly inSafeMode: boolean;
+ readonly win32kExperimentStatus: nsIXULRuntime.ExperimentStatus;
+ readonly win32kLiveStatusTestingOnly: nsIXULRuntime.ContentWin32kLockdownState;
+ readonly win32kSessionStatus: nsIXULRuntime.ContentWin32kLockdownState;
+ readonly fissionAutostart: boolean;
+ readonly fissionDecisionStatus: nsIXULRuntime.FissionDecisionStatus;
+ readonly fissionDecisionStatusString: string;
+ readonly sessionHistoryInParent: boolean;
+ readonly sessionStorePlatformCollection: boolean;
+ logConsoleErrors: boolean;
+ readonly OS: string;
+ readonly XPCOMABI: string;
+ readonly widgetToolkit: string;
+ readonly processType: u32;
+ readonly processID: u32;
+ readonly uniqueProcessID: u64;
+ readonly remoteType: string;
+ readonly browserTabsRemoteAutostart: boolean;
+ readonly maxWebProcessCount: u32;
+ readonly accessibilityEnabled: boolean;
+ readonly accessibilityInstantiator: string;
+ readonly is64Bit: boolean;
+ readonly isTextRecognitionSupported: boolean;
+ invalidateCachesOnRestart(): void;
+ ensureContentProcess(): void;
+ readonly replacedLockTime: PRTime;
+ readonly defaultUpdateChannel: string;
+ readonly distributionID: string;
+ readonly windowsDLLBlocklistStatus: boolean;
+ readonly restartedByOS: boolean;
+ readonly chromeColorSchemeIsDark: boolean;
+ readonly contentThemeDerivedColorSchemeIsDark: boolean;
+ readonly prefersReducedMotion: boolean;
+ readonly drawInTitlebar: boolean;
+ readonly desktopEnvironment: string;
+ readonly isWayland: boolean;
+ readonly processStartupShortcut: string;
+ readonly launcherProcessState: u32;
+ readonly lastAppVersion: string;
+ readonly lastAppBuildID: string;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIDirectTaskDispatcher.idl
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIEnvironment.idl
+
+interface nsIEnvironment extends nsISupports {
+ set(aName: string, aValue: string): void;
+ get(aName: string): string;
+ exists(aName: string): boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIEventTarget.idl
+
+interface nsIEventTarget extends nsISupports {
+ readonly DISPATCH_NORMAL: 0;
+ readonly DISPATCH_AT_END: 2;
+ readonly DISPATCH_EVENT_MAY_BLOCK: 4;
+ readonly DISPATCH_IGNORE_BLOCK_DISPATCH: 8;
+
+ isOnCurrentThread(): boolean;
+ dispatch(event: nsIRunnable, flags: u32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIIdlePeriod.idl
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsINamed.idl
+
+interface nsINamed extends nsISupports {
+ readonly name: string;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIProcess.idl
+
+interface nsIProcess extends nsISupports {
+ init(executable: nsIFile): void;
+ kill(): void;
+ run(blocking: boolean, args: string[], count: u32): void;
+ runAsync(args: string[], count: u32, observer?: nsIObserver, holdWeak?: boolean): void;
+ runw(blocking: boolean, args: string[], count: u32): void;
+ runwAsync(args: string[], count: u32, observer?: nsIObserver, holdWeak?: boolean): void;
+ startHidden: boolean;
+ noShell: boolean;
+ readonly pid: u32;
+ readonly exitValue: i32;
+ readonly isRunning: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIRunnable.idl
+
+type nsIRunnable = Callable<{
+ run(): void;
+}>
+
+interface nsIRunnablePriority extends nsISupports {
+ readonly PRIORITY_IDLE: 0;
+ readonly PRIORITY_DEFERRED_TIMERS: 1;
+ readonly PRIORITY_LOW: 2;
+ readonly PRIORITY_NORMAL: 4;
+ readonly PRIORITY_MEDIUMHIGH: 5;
+ readonly PRIORITY_INPUT_HIGH: 6;
+ readonly PRIORITY_VSYNC: 7;
+ readonly PRIORITY_RENDER_BLOCKING: 9;
+ readonly PRIORITY_CONTROL: 10;
+
+ readonly priority: u32;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsISerialEventTarget.idl
+
+interface nsISerialEventTarget extends nsIEventTarget {
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsISupportsPriority.idl
+
+interface nsISupportsPriority extends nsISupports {
+ readonly PRIORITY_HIGHEST: -20;
+ readonly PRIORITY_HIGH: -10;
+ readonly PRIORITY_NORMAL: 0;
+ readonly PRIORITY_LOW: 10;
+ readonly PRIORITY_LOWEST: 20;
+
+ priority: i32;
+ adjustPriority(delta: i32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIThread.idl
+
+} // global
+
+declare namespace nsIThread {
+
+enum QoSPriority {
+ QOS_PRIORITY_NORMAL = 0,
+ QOS_PRIORITY_LOW = 1,
+}
+
+}
+
+declare global {
+
+interface nsIThread extends nsISerialEventTarget, Enums<typeof nsIThread.QoSPriority> {
+ shutdown(): void;
+ hasPendingEvents(): boolean;
+ hasPendingHighPriorityEvents(): boolean;
+ processNextEvent(mayWait: boolean): boolean;
+ asyncShutdown(): void;
+ beginShutdown(): nsIThreadShutdown;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIThreadInternal.idl
+
+interface nsIThreadInternal extends nsIThread {
+ observer: nsIThreadObserver;
+ addObserver(observer: nsIThreadObserver): void;
+ removeObserver(observer: nsIThreadObserver): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIThreadManager.idl
+
+type nsINestedEventLoopCondition = Callable<{
+ isDone(): boolean;
+}>
+
+interface nsIThreadManager extends nsISupports {
+ readonly mainThread: nsIThread;
+ readonly currentThread: nsIThread;
+ dispatchToMainThread(event: nsIRunnable, priority?: u32): void;
+ dispatchToMainThreadWithMicroTask(event: nsIRunnable, priority?: u32): void;
+ idleDispatchToMainThread(event: nsIRunnable, timeout?: u32): void;
+ dispatchDirectTaskToCurrentThread(event: nsIRunnable): void;
+ spinEventLoopUntil(aVeryGoodReasonToDoThis: string, condition: nsINestedEventLoopCondition): void;
+ spinEventLoopUntilOrQuit(aVeryGoodReasonToDoThis: string, condition: nsINestedEventLoopCondition): void;
+ spinEventLoopUntilEmpty(): void;
+ readonly mainThreadEventTarget: nsIEventTarget;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIThreadPool.idl
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIThreadShutdown.idl
+
+interface nsIThreadShutdown extends nsISupports {
+ onCompletion(aEvent: nsIRunnable): void;
+ readonly completed: boolean;
+ stopWaitingAndLeakThread(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/xpcom/threads/nsITimer.idl
+
+type nsITimerCallback = Callable<{
+ notify(timer: nsITimer): void;
+}>
+
+interface nsITimer extends nsISupports {
+ readonly TYPE_ONE_SHOT: 0;
+ readonly TYPE_REPEATING_SLACK: 1;
+ readonly TYPE_REPEATING_PRECISE: 2;
+ readonly TYPE_REPEATING_PRECISE_CAN_SKIP: 3;
+ readonly TYPE_REPEATING_SLACK_LOW_PRIORITY: 4;
+ readonly TYPE_ONE_SHOT_LOW_PRIORITY: 5;
+
+ init(aObserver: nsIObserver, aDelayInMs: u32, aType: u32): void;
+ initWithCallback(aCallback: nsITimerCallback, aDelayInMs: u32, aType: u32): void;
+ cancel(): void;
+ delay: u32;
+ type: u32;
+ readonly callback: nsITimerCallback;
+ target: nsIEventTarget;
+ readonly name: string;
+}
+
+interface nsITimerManager extends nsISupports {
+ getTimers(): nsITimer[];
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/idl/mozIJSSubScriptLoader.idl
+
+interface mozIJSSubScriptLoader extends nsISupports {
+ loadSubScript(url: string, obj?: any): any;
+ loadSubScriptWithOptions(url: string, options: any): any;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/idl/nsIXPCScriptable.idl
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/idl/xpcIJSWeakReference.idl
+
+interface xpcIJSWeakReference extends nsISupports {
+ get(): any;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/idl/xpccomponents.idl
+
+interface nsIXPCComponents_Classes extends nsISupports {
+}
+
+interface nsIXPCComponents_Results extends nsISupports {
+}
+
+interface nsIXPCComponents_ID extends nsISupports {
+}
+
+interface nsIXPCComponents_Exception extends nsISupports {
+}
+
+interface nsIXPCComponents_Constructor extends nsISupports {
+}
+
+interface nsIXPCComponents_utils_Sandbox extends nsISupports {
+}
+
+type nsIScheduledGCCallback = Callable<{
+ callback(): void;
+}>
+
+interface nsIXPCComponents_Utils extends nsISupports {
+ printStderr(message: string): void;
+ reportError(error: any, stack?: any): void;
+ readonly Sandbox: nsIXPCComponents_utils_Sandbox;
+ evalInSandbox(source: string, sandbox: any, version?: any, filename?: string, lineNo?: i32, enforceFilenameRestrictions?: boolean): any;
+ getUAWidgetScope(principal: nsIPrincipal): any;
+ getSandboxMetadata(sandbox: any): any;
+ setSandboxMetadata(sandbox: any, metadata: any): void;
+ import(aResourceURI: string, targetObj?: any): any;
+ isModuleLoaded(aResourceURI: string): boolean;
+ isJSModuleLoaded(aResourceURI: string): boolean;
+ isESModuleLoaded(aResourceURI: string): boolean;
+ unload(registryLocation: string): void;
+ importGlobalProperties(aPropertyList: any): void;
+ getWeakReference(obj: any): xpcIJSWeakReference;
+ forceGC(): void;
+ forceCC(aListener?: nsICycleCollectorListener): void;
+ createCCLogger(): nsICycleCollectorListener;
+ finishCC(): void;
+ ccSlice(budget: i64): void;
+ getMaxCCSliceTimeSinceClear(): i32;
+ clearMaxCCTime(): void;
+ forceShrinkingGC(): void;
+ schedulePreciseGC(callback: nsIScheduledGCCallback): void;
+ schedulePreciseShrinkingGC(callback: nsIScheduledGCCallback): void;
+ unlinkGhostWindows(): void;
+ intentionallyLeak(): void;
+ getJSTestingFunctions(): any;
+ getFunctionSourceLocation(func: any): any;
+ callFunctionWithAsyncStack(func: any, stack: nsIStackFrame, asyncCause: string): any;
+ getGlobalForObject(obj: any): any;
+ isProxy(vobject: any): boolean;
+ exportFunction(vfunction: any, vscope: any, voptions?: any): any;
+ createObjectIn(vobj: any, voptions?: any): any;
+ makeObjectPropsNormal(vobj: any): void;
+ isDeadWrapper(obj: any): boolean;
+ isRemoteProxy(val: any): boolean;
+ recomputeWrappers(vobj?: any): void;
+ setWantXrays(vscope: any): void;
+ dispatch(runnable: any, scope?: any): void;
+ readonly isInAutomation: boolean;
+ exitIfInAutomation(): void;
+ crashIfNotInAutomation(): void;
+ setGCZeal(zeal: i32): void;
+ nukeSandbox(obj: any): void;
+ blockScriptForGlobal(global: any): void;
+ unblockScriptForGlobal(global: any): void;
+ isOpaqueWrapper(obj: any): boolean;
+ isXrayWrapper(obj: any): boolean;
+ waiveXrays(aVal: any): any;
+ unwaiveXrays(aVal: any): any;
+ getClassName(aObj: any, aUnwrap: boolean): string;
+ getDOMClassInfo(aClassName: string): nsIClassInfo;
+ getIncumbentGlobal(callback?: any): any;
+ getDebugName(obj: any): string;
+ getWatchdogTimestamp(aCategory: string): PRTime;
+ getJSEngineTelemetryValue(): any;
+ cloneInto(value: any, scope: any, options?: any): any;
+ getWebIDLCallerPrincipal(): nsIPrincipal;
+ getObjectPrincipal(obj: any): nsIPrincipal;
+ getRealmLocation(obj: any): string;
+ now(): double;
+ readUTF8File(file: nsIFile): string;
+ readUTF8URI(url: nsIURI): string;
+ createSpellChecker(): nsIEditorSpellCheck;
+ createCommandLine(args: string[], workingDir: nsIFile, state: u32): nsISupports;
+ createCommandParams(): nsICommandParams;
+ createLoadContext(): nsILoadContext;
+ createPrivateLoadContext(): nsILoadContext;
+ createPersistentProperties(): nsIPersistentProperties;
+ createDocumentEncoder(contentType: string): nsIDocumentEncoder;
+ createHTMLCopyEncoder(): nsIDocumentEncoder;
+ readonly loadedModules: string[];
+ readonly loadedJSModules: string[];
+ readonly loadedESModules: string[];
+ getModuleImportStack(aLocation: string): string;
+}
+
+interface nsIXPCComponents extends nsISupports {
+ readonly interfaces: nsIXPCComponents_Interfaces;
+ readonly results: nsIXPCComponents_Results;
+ isSuccessCode(result: nsresult): boolean;
+ readonly classes: nsIXPCComponents_Classes;
+ readonly stack: nsIStackFrame;
+ readonly manager: nsIComponentManager;
+ readonly utils: nsIXPCComponents_Utils;
+ readonly ID: nsIXPCComponents_ID;
+ readonly Exception: nsIXPCComponents_Exception;
+ readonly Constructor: nsIXPCComponents_Constructor;
+ returnCode: any;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_attributes.idl
+
+interface nsIXPCTestObjectReadOnly extends nsISupports {
+ readonly strReadOnly: string;
+ readonly boolReadOnly: boolean;
+ readonly shortReadOnly: i16;
+ readonly longReadOnly: i32;
+ readonly floatReadOnly: float;
+ readonly charReadOnly: string;
+ readonly timeReadOnly: PRTime;
+}
+
+interface nsIXPCTestObjectReadWrite extends nsISupports {
+ stringProperty: string;
+ booleanProperty: boolean;
+ shortProperty: i16;
+ longProperty: i32;
+ floatProperty: float;
+ charProperty: string;
+ timeProperty: PRTime;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_bug809674.idl
+
+interface nsIXPCTestBug809674 extends nsISupports {
+ addArgs(x: u32, y: u32): u32;
+ addSubMulArgs(x: u32, y: u32, subOut: OutParam<u32>, mulOut: OutParam<u32>): u32;
+ addVals(x: any, y: any): any;
+ methodNoArgs(): u32;
+ methodNoArgsNoRetVal(): void;
+ addMany(x1: u32, x2: u32, x3: u32, x4: u32, x5: u32, x6: u32, x7: u32, x8: u32): u32;
+ valProperty: any;
+ uintProperty: u32;
+ methodWithOptionalArgc(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_cenums.idl
+
+} // global
+
+declare namespace nsIXPCTestCEnums {
+
+enum testFlagsExplicit {
+ shouldBe1Explicit = 1,
+ shouldBe2Explicit = 2,
+ shouldBe4Explicit = 4,
+ shouldBe8Explicit = 8,
+ shouldBe12Explicit = 12,
+}
+
+enum testFlagsImplicit {
+ shouldBe0Implicit = 0,
+ shouldBe1Implicit = 1,
+ shouldBe2Implicit = 2,
+ shouldBe3Implicit = 3,
+ shouldBe5Implicit = 5,
+ shouldBe6Implicit = 6,
+ shouldBe2AgainImplicit = 2,
+ shouldBe3AgainImplicit = 3,
+}
+
+}
+
+declare global {
+
+interface nsIXPCTestCEnums extends nsISupports, Enums<typeof nsIXPCTestCEnums.testFlagsExplicit & typeof nsIXPCTestCEnums.testFlagsImplicit> {
+ readonly testConst: 1;
+
+ testCEnumInput(abc: nsIXPCTestCEnums.testFlagsExplicit): void;
+ testCEnumOutput(): nsIXPCTestCEnums.testFlagsExplicit;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_interfaces.idl
+
+interface nsIXPCTestInterfaceA extends nsISupports {
+ name: string;
+}
+
+interface nsIXPCTestInterfaceB extends nsISupports {
+ name: string;
+}
+
+interface nsIXPCTestInterfaceC extends nsISupports {
+ someInteger: i32;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_params.idl
+
+interface nsIXPCTestParams extends nsISupports {
+ testBoolean(a: boolean, b: InOutParam<boolean>): boolean;
+ testOctet(a: u8, b: InOutParam<u8>): u8;
+ testShort(a: i16, b: InOutParam<i16>): i16;
+ testLong(a: i32, b: InOutParam<i32>): i32;
+ testLongLong(a: i64, b: InOutParam<i64>): i64;
+ testUnsignedShort(a: u16, b: InOutParam<u16>): u16;
+ testUnsignedLong(a: u32, b: InOutParam<u32>): u32;
+ testUnsignedLongLong(a: u64, b: InOutParam<u64>): u64;
+ testFloat(a: float, b: InOutParam<float>): float;
+ testDouble(a: double, b: InOutParam<float>): double;
+ testChar(a: string, b: InOutParam<string>): string;
+ testString(a: string, b: InOutParam<string>): string;
+ testWchar(a: string, b: InOutParam<string>): string;
+ testWstring(a: string, b: InOutParam<string>): string;
+ testAString(a: string, b: InOutParam<string>): string;
+ testAUTF8String(a: string, b: InOutParam<string>): string;
+ testACString(a: string, b: InOutParam<string>): string;
+ testJsval(a: any, b: InOutParam<any>): any;
+ testShortSequence(a: i16[], b: InOutParam<i16[]>): i16[];
+ testDoubleSequence(a: double[], b: InOutParam<double[]>): double[];
+ testInterfaceSequence(a: nsIXPCTestInterfaceA[], b: InOutParam<nsIXPCTestInterfaceA[]>): nsIXPCTestInterfaceA[];
+ testAStringSequence(a: string[], b: InOutParam<string[]>): string[];
+ testACStringSequence(a: string[], b: InOutParam<string[]>): string[];
+ testJsvalSequence(a: any[], b: InOutParam<any[]>): any[];
+ testSequenceSequence(a: i16[][], b: InOutParam<i16[][]>): i16[][];
+ testOptionalSequence(arr?: u8[]): u8[];
+ testShortArray(aLength: u32, a: i16[], bLength: InOutParam<u32>, b: InOutParam<i16[]>, rvLength: OutParam<u32>): OutParam<i16[]>;
+ testDoubleArray(aLength: u32, a: double[], bLength: InOutParam<u32>, b: InOutParam<double[]>, rvLength: OutParam<u32>): OutParam<double[]>;
+ testStringArray(aLength: u32, a: string[], bLength: InOutParam<u32>, b: InOutParam<string[]>, rvLength: OutParam<u32>): OutParam<string[]>;
+ testWstringArray(aLength: u32, a: string[], bLength: InOutParam<u32>, b: InOutParam<string[]>, rvLength: OutParam<u32>): OutParam<string[]>;
+ testInterfaceArray(aLength: u32, a: nsIXPCTestInterfaceA[], bLength: InOutParam<u32>, b: InOutParam<nsIXPCTestInterfaceA[]>, rvLength: OutParam<u32>): OutParam<nsIXPCTestInterfaceA[]>;
+ testByteArrayOptionalLength(a: u8[], aLength?: u32): u32;
+ testSizedString(aLength: u32, a: string, bLength: InOutParam<u32>, b: InOutParam<string>, rvLength: OutParam<u32>): OutParam<string>;
+ testSizedWstring(aLength: u32, a: string, bLength: InOutParam<u32>, b: InOutParam<string>, rvLength: OutParam<u32>): OutParam<string>;
+ testJsvalArray(aLength: u32, a: any[], bLength: InOutParam<u32>, b: InOutParam<any[]>, rvLength: OutParam<u32>): OutParam<any[]>;
+ testOutAString(o: OutParam<string>): void;
+ testStringArrayOptionalSize(a: string[], aLength?: u32): string;
+ testOmittedOptionalOut(aJSObj: nsIXPCTestParams, aOut?: OutParam<nsIURI>): void;
+ readonly testNaN: double;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_returncode.idl
+
+interface nsIXPCTestReturnCodeParent extends nsISupports {
+ callChild(childBehavior: i32): nsresult;
+}
+
+interface nsIXPCTestReturnCodeChild extends nsISupports {
+ readonly CHILD_SHOULD_THROW: 0;
+ readonly CHILD_SHOULD_RETURN_SUCCESS: 1;
+ readonly CHILD_SHOULD_RETURN_RESULTCODE: 2;
+ readonly CHILD_SHOULD_NEST_RESULTCODES: 3;
+
+ doIt(behavior: i32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_utils.idl
+
+type nsIXPCTestFunctionInterface = Callable<{
+ echo(arg: string): string;
+}>
+
+interface nsIXPCTestUtils extends nsISupports {
+ doubleWrapFunction(f: nsIXPCTestFunctionInterface): nsIXPCTestFunctionInterface;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/xul/nsIBrowserController.idl
+
+interface nsIBrowserController extends nsISupports {
+ enableDisableCommands(action: string, enabledCommands: string[], disabledCommands: string[]): void;
+}
+
+// https://searchfox.org/mozilla-central/source/dom/xul/nsIController.idl
+
+interface nsIController extends nsISupports {
+ isCommandEnabled(command: string): boolean;
+ supportsCommand(command: string): boolean;
+ doCommand(command: string): void;
+ onEvent(eventName: string): void;
+}
+
+interface nsICommandController extends nsISupports {
+ getCommandStateWithParams(command: string, aCommandParams: nsICommandParams): void;
+ doCommandWithParams(command: string, aCommandParams: nsICommandParams): void;
+ getSupportedCommands(): string[];
+}
+
+// https://searchfox.org/mozilla-central/source/dom/xul/nsIControllers.idl
+
+interface nsIControllers extends nsISupports {
+ getControllerForCommand(command: string): nsIController;
+ insertControllerAt(index: u32, controller: nsIController): void;
+ removeControllerAt(index: u32): nsIController;
+ getControllerAt(index: u32): nsIController;
+ appendController(controller: nsIController): void;
+ removeController(controller: nsIController): void;
+ getControllerId(controller: nsIController): u32;
+ getControllerById(controllerID: u32): nsIController;
+ getControllerCount(): u32;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/xre/nsINativeAppSupport.idl
+
+interface nsINativeAppSupport extends nsISupports {
+ start(): boolean;
+ enable(): void;
+ onLastWindowClosing(): void;
+ ReOpen(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/xre/nsIWinAppHelper.idl
+
+interface nsIWinAppHelper extends nsISupports {
+ readonly userCanElevate: boolean;
+}
+
+// https://searchfox.org/mozilla-central/source/toolkit/xre/nsIXREDirProvider.idl
+
+interface nsIXREDirProvider extends nsISupports {
+ setUserDataDirectory(aFile: nsIFile, aLocal: boolean): void;
+ getInstallHash(): string;
+}
+
+// https://searchfox.org/mozilla-central/source/modules/libjar/zipwriter/nsIZipWriter.idl
+
+interface nsIZipWriter extends nsISupports {
+ readonly COMPRESSION_NONE: 0;
+ readonly COMPRESSION_FASTEST: 1;
+ readonly COMPRESSION_DEFAULT: 6;
+ readonly COMPRESSION_BEST: 9;
+
+ comment: string;
+ readonly inQueue: boolean;
+ readonly file: nsIFile;
+ open(aFile: nsIFile, aIoFlags: i32): void;
+ getEntry(aZipEntry: string): nsIZipEntry;
+ hasEntry(aZipEntry: string): boolean;
+ addEntryDirectory(aZipEntry: string, aModTime: PRTime, aQueue: boolean): void;
+ addEntryFile(aZipEntry: string, aCompression: i32, aFile: nsIFile, aQueue: boolean): void;
+ addEntryChannel(aZipEntry: string, aModTime: PRTime, aCompression: i32, aChannel: nsIChannel, aQueue: boolean): void;
+ addEntryStream(aZipEntry: string, aModTime: PRTime, aCompression: i32, aStream: nsIInputStream, aQueue: boolean): void;
+ removeEntry(aZipEntry: string, aQueue: boolean): void;
+ processQueue(aObserver: nsIRequestObserver, aContext: nsISupports): void;
+ close(): void;
+ alignStoredFiles(aAlignSize: u16): void;
+}
+
+interface nsIXPCComponents_Interfaces {
+ nsIInstalledApplication: nsJSIID<nsIInstalledApplication>;
+ nsIAboutThirdParty: nsJSIID<nsIAboutThirdParty>;
+ nsIAboutWindowsMessages: nsJSIID<nsIAboutWindowsMessages>;
+ nsIAccessibilityService: nsJSIID<nsIAccessibilityService>;
+ nsIAccessible: nsJSIID<nsIAccessible>;
+ nsIAccessibleAnnouncementEvent: nsJSIID<nsIAccessibleAnnouncementEvent>;
+ nsIAccessibleApplication: nsJSIID<nsIAccessibleApplication>;
+ nsIAccessibleCaretMoveEvent: nsJSIID<nsIAccessibleCaretMoveEvent>;
+ nsIAccessibleDocument: nsJSIID<nsIAccessibleDocument>;
+ nsIAccessibleEditableText: nsJSIID<nsIAccessibleEditableText>;
+ nsIAccessibleEvent: nsJSIID<nsIAccessibleEvent>;
+ nsIAccessibleHideEvent: nsJSIID<nsIAccessibleHideEvent>;
+ nsIAccessibleHyperLink: nsJSIID<nsIAccessibleHyperLink>;
+ nsIAccessibleHyperText: nsJSIID<nsIAccessibleHyperText>;
+ nsIAccessibleImage: nsJSIID<nsIAccessibleImage>;
+ nsIAccessibleObjectAttributeChangedEvent: nsJSIID<nsIAccessibleObjectAttributeChangedEvent>;
+ nsIAccessiblePivot: nsJSIID<nsIAccessiblePivot>;
+ nsIAccessibleTraversalRule: nsJSIID<nsIAccessibleTraversalRule>;
+ nsIAccessibleRelation: nsJSIID<nsIAccessibleRelation>;
+ nsIAccessibleRole: nsJSIID<nsIAccessibleRole>;
+ nsIAccessibleScrollingEvent: nsJSIID<nsIAccessibleScrollingEvent>;
+ nsIAccessibleSelectable: nsJSIID<nsIAccessibleSelectable>;
+ nsIAccessibleStateChangeEvent: nsJSIID<nsIAccessibleStateChangeEvent>;
+ nsIAccessibleStates: nsJSIID<nsIAccessibleStates>;
+ nsIAccessibleTable: nsJSIID<nsIAccessibleTable>;
+ nsIAccessibleTableCell: nsJSIID<nsIAccessibleTableCell>;
+ nsIAccessibleTableChangeEvent: nsJSIID<nsIAccessibleTableChangeEvent>;
+ nsIAccessibleText: nsJSIID<nsIAccessibleText>;
+ nsIAccessibleTextChangeEvent: nsJSIID<nsIAccessibleTextChangeEvent>;
+ nsIAccessibleTextLeafPoint: nsJSIID<nsIAccessibleTextLeafPoint>;
+ nsIAccessibleTextRange: nsJSIID<nsIAccessibleTextRange>;
+ nsIAccessibleTextSelectionChangeEvent: nsJSIID<nsIAccessibleTextSelectionChangeEvent>;
+ nsIAccessibleScrollType: nsJSIID<nsIAccessibleScrollType>;
+ nsIAccessibleCoordinateType: nsJSIID<nsIAccessibleCoordinateType>;
+ nsIAccessibleValue: nsJSIID<nsIAccessibleValue>;
+ nsIAlertNotificationImageListener: nsJSIID<nsIAlertNotificationImageListener>;
+ nsIAlertAction: nsJSIID<nsIAlertAction>;
+ nsIAlertNotification: nsJSIID<nsIAlertNotification>;
+ nsIAlertsService: nsJSIID<nsIAlertsService>;
+ nsIAlertsDoNotDisturb: nsJSIID<nsIAlertsDoNotDisturb>;
+ nsIAlertsIconData: nsJSIID<nsIAlertsIconData>;
+ nsIAlertsIconURI: nsJSIID<nsIAlertsIconURI>;
+ nsIWindowsAlertNotification: nsJSIID<nsIWindowsAlertNotification, typeof nsIWindowsAlertNotification.ImagePlacement>;
+ nsIWindowsAlertsService: nsJSIID<nsIWindowsAlertsService>;
+ nsIAppShellService: nsJSIID<nsIAppShellService>;
+ nsIAppWindow: nsJSIID<nsIAppWindow>;
+ nsIWindowMediator: nsJSIID<nsIWindowMediator>;
+ nsIWindowMediatorListener: nsJSIID<nsIWindowMediatorListener>;
+ nsIWindowlessBrowser: nsJSIID<nsIWindowlessBrowser>;
+ nsIXULBrowserWindow: nsJSIID<nsIXULBrowserWindow>;
+ nsIAppStartup: nsJSIID<nsIAppStartup, typeof nsIAppStartup.IDLShutdownPhase>;
+ nsIAutoCompleteController: nsJSIID<nsIAutoCompleteController>;
+ nsIAutoCompleteInput: nsJSIID<nsIAutoCompleteInput>;
+ nsIAutoCompletePopup: nsJSIID<nsIAutoCompletePopup>;
+ nsIAutoCompleteResult: nsJSIID<nsIAutoCompleteResult>;
+ nsIAutoCompleteSearch: nsJSIID<nsIAutoCompleteSearch>;
+ nsIAutoCompleteObserver: nsJSIID<nsIAutoCompleteObserver>;
+ nsIAutoCompleteSearchDescriptor: nsJSIID<nsIAutoCompleteSearchDescriptor>;
+ nsIAutoCompleteSimpleResult: nsJSIID<nsIAutoCompleteSimpleResult>;
+ nsIAutoCompleteSimpleResultListener: nsJSIID<nsIAutoCompleteSimpleResultListener>;
+ nsIAutoCompleteSimpleSearch: nsJSIID<nsIAutoCompleteSimpleSearch>;
+ nsIAutoplay: nsJSIID<nsIAutoplay>;
+ nsIHangDetails: nsJSIID<nsIHangDetails>;
+ nsIBits: nsJSIID<nsIBits>;
+ nsIBitsNewRequestCallback: nsJSIID<nsIBitsNewRequestCallback>;
+ nsIBitsRequest: nsJSIID<nsIBitsRequest>;
+ nsIBitsCallback: nsJSIID<nsIBitsCallback>;
+ nsIAboutNewTabService: nsJSIID<nsIAboutNewTabService>;
+ nsIBrowserHandler: nsJSIID<nsIBrowserHandler>;
+ nsIAddonPolicyService: nsJSIID<nsIAddonPolicyService>;
+ nsIAddonContentPolicy: nsJSIID<nsIAddonContentPolicy>;
+ nsIDomainPolicy: nsJSIID<nsIDomainPolicy>;
+ nsIDomainSet: nsJSIID<nsIDomainSet>;
+ nsIPrincipal: nsJSIID<nsIPrincipal>;
+ nsIScriptSecurityManager: nsJSIID<nsIScriptSecurityManager>;
+ nsICaptivePortalCallback: nsJSIID<nsICaptivePortalCallback>;
+ nsICaptivePortalDetector: nsJSIID<nsICaptivePortalDetector>;
+ nsICascadeFilter: nsJSIID<nsICascadeFilter>;
+ nsIChromeRegistry: nsJSIID<nsIChromeRegistry>;
+ nsIXULChromeRegistry: nsJSIID<nsIXULChromeRegistry>;
+ nsIToolkitChromeRegistry: nsJSIID<nsIToolkitChromeRegistry>;
+ nsICommandManager: nsJSIID<nsICommandManager>;
+ nsICommandParams: nsJSIID<nsICommandParams>;
+ nsIControllerCommand: nsJSIID<nsIControllerCommand>;
+ nsIControllerCommandTable: nsJSIID<nsIControllerCommandTable>;
+ nsIControllerContext: nsJSIID<nsIControllerContext>;
+ nsICommandLine: nsJSIID<nsICommandLine>;
+ nsICommandLineHandler: nsJSIID<nsICommandLineHandler>;
+ nsICommandLineValidator: nsJSIID<nsICommandLineValidator>;
+ nsIEditingSession: nsJSIID<nsIEditingSession>;
+ nsIEventListenerChange: nsJSIID<nsIEventListenerChange>;
+ nsIListenerChangeListener: nsJSIID<nsIListenerChangeListener>;
+ nsIEventListenerInfo: nsJSIID<nsIEventListenerInfo>;
+ nsIEventListenerService: nsJSIID<nsIEventListenerService>;
+ mozIGeckoMediaPluginChromeService: nsJSIID<mozIGeckoMediaPluginChromeService>;
+ mozIGeckoMediaPluginService: nsJSIID<mozIGeckoMediaPluginService>;
+ nsIDefaultAgent: nsJSIID<nsIDefaultAgent>;
+ nsIWindowsMutex: nsJSIID<nsIWindowsMutex>;
+ nsIWindowsMutexFactory: nsJSIID<nsIWindowsMutexFactory>;
+ nsIDocShell: nsJSIID<nsIDocShell, typeof nsIDocShell.DocShellEnumeratorDirection & typeof nsIDocShell.AppType & typeof nsIDocShell.BusyFlags & typeof nsIDocShell.LoadCommand & typeof nsIDocShell.MetaViewportOverride>;
+ nsIDocShellTreeItem: nsJSIID<nsIDocShellTreeItem>;
+ nsIDocShellTreeOwner: nsJSIID<nsIDocShellTreeOwner>;
+ nsIDocumentLoaderFactory: nsJSIID<nsIDocumentLoaderFactory>;
+ nsIDocumentViewer: nsJSIID<nsIDocumentViewer, typeof nsIDocumentViewer.PermitUnloadAction & typeof nsIDocumentViewer.PermitUnloadResult>;
+ nsIDocumentViewerEdit: nsJSIID<nsIDocumentViewerEdit>;
+ nsILoadContext: nsJSIID<nsILoadContext>;
+ nsILoadURIDelegate: nsJSIID<nsILoadURIDelegate>;
+ nsIPrivacyTransitionObserver: nsJSIID<nsIPrivacyTransitionObserver>;
+ nsIReflowObserver: nsJSIID<nsIReflowObserver>;
+ nsIRefreshURI: nsJSIID<nsIRefreshURI>;
+ nsITooltipListener: nsJSIID<nsITooltipListener>;
+ nsITooltipTextProvider: nsJSIID<nsITooltipTextProvider>;
+ nsIURIFixupInfo: nsJSIID<nsIURIFixupInfo>;
+ nsIURIFixup: nsJSIID<nsIURIFixup>;
+ nsIWebNavigation: nsJSIID<nsIWebNavigation>;
+ nsIWebNavigationInfo: nsJSIID<nsIWebNavigationInfo>;
+ nsIWebPageDescriptor: nsJSIID<nsIWebPageDescriptor>;
+ mozIDOMWindow: nsJSIID<mozIDOMWindow>;
+ mozIDOMWindowProxy: nsJSIID<mozIDOMWindowProxy>;
+ nsIContentPolicy: nsJSIID<nsIContentPolicy, typeof nsIContentPolicy.nsContentPolicyType>;
+ nsIDroppedLinkItem: nsJSIID<nsIDroppedLinkItem>;
+ nsIDroppedLinkHandler: nsJSIID<nsIDroppedLinkHandler>;
+ nsIEventSourceEventListener: nsJSIID<nsIEventSourceEventListener>;
+ nsIEventSourceEventService: nsJSIID<nsIEventSourceEventService>;
+ nsIImageLoadingContent: nsJSIID<nsIImageLoadingContent>;
+ nsIMessageSender: nsJSIID<nsIMessageSender>;
+ nsIObjectLoadingContent: nsJSIID<nsIObjectLoadingContent>;
+ nsIScriptableContentIterator: nsJSIID<nsIScriptableContentIterator, typeof nsIScriptableContentIterator.IteratorType>;
+ nsISelectionController: nsJSIID<nsISelectionController>;
+ nsISelectionDisplay: nsJSIID<nsISelectionDisplay>;
+ nsISelectionListener: nsJSIID<nsISelectionListener>;
+ nsISlowScriptDebugCallback: nsJSIID<nsISlowScriptDebugCallback>;
+ nsISlowScriptDebuggerStartupCallback: nsJSIID<nsISlowScriptDebuggerStartupCallback>;
+ nsISlowScriptDebugRemoteCallback: nsJSIID<nsISlowScriptDebugRemoteCallback>;
+ nsISlowScriptDebug: nsJSIID<nsISlowScriptDebug>;
+ nsIConsoleAPIStorage: nsJSIID<nsIConsoleAPIStorage>;
+ mozIRemoteLazyInputStream: nsJSIID<mozIRemoteLazyInputStream>;
+ nsIDOMProcessChild: nsJSIID<nsIDOMProcessChild>;
+ nsIDOMProcessParent: nsJSIID<nsIDOMProcessParent>;
+ nsIHangReport: nsJSIID<nsIHangReport>;
+ nsILoginDetectionService: nsJSIID<nsILoginDetectionService>;
+ nsISuspendedTypes: nsJSIID<nsISuspendedTypes>;
+ nsIBrowser: nsJSIID<nsIBrowser>;
+ nsIBrowserChild: nsJSIID<nsIBrowserChild>;
+ nsIOpenURIInFrameParams: nsJSIID<nsIOpenURIInFrameParams>;
+ nsIBrowserDOMWindow: nsJSIID<nsIBrowserDOMWindow>;
+ nsIBrowserUsage: nsJSIID<nsIBrowserUsage>;
+ nsIContentPermissionType: nsJSIID<nsIContentPermissionType>;
+ nsIContentPermissionRequest: nsJSIID<nsIContentPermissionRequest>;
+ nsIContentPermissionPrompt: nsJSIID<nsIContentPermissionPrompt>;
+ nsIContentPrefObserver: nsJSIID<nsIContentPrefObserver>;
+ nsIContentPrefService2: nsJSIID<nsIContentPrefService2>;
+ nsIContentPrefCallback2: nsJSIID<nsIContentPrefCallback2>;
+ nsIContentPref: nsJSIID<nsIContentPref>;
+ nsIContentProcessInfo: nsJSIID<nsIContentProcessInfo>;
+ nsIContentProcessProvider: nsJSIID<nsIContentProcessProvider>;
+ nsIDOMGlobalPropertyInitializer: nsJSIID<nsIDOMGlobalPropertyInitializer>;
+ nsIDOMWindow: nsJSIID<nsIDOMWindow>;
+ nsIDOMWindowUtils: nsJSIID<nsIDOMWindowUtils>;
+ nsITranslationNodeList: nsJSIID<nsITranslationNodeList>;
+ nsIJSRAIIHelper: nsJSIID<nsIJSRAIIHelper>;
+ nsIFocusManager: nsJSIID<nsIFocusManager>;
+ nsIPermissionDelegateHandler: nsJSIID<nsIPermissionDelegateHandler>;
+ nsIQueryContentEventResult: nsJSIID<nsIQueryContentEventResult>;
+ nsIRemoteTab: nsJSIID<nsIRemoteTab, typeof nsIRemoteTab.NavigationType>;
+ nsIServiceWorkerUnregisterCallback: nsJSIID<nsIServiceWorkerUnregisterCallback>;
+ nsIServiceWorkerInfo: nsJSIID<nsIServiceWorkerInfo>;
+ nsIServiceWorkerRegistrationInfoListener: nsJSIID<nsIServiceWorkerRegistrationInfoListener>;
+ nsIServiceWorkerRegistrationInfo: nsJSIID<nsIServiceWorkerRegistrationInfo>;
+ nsIServiceWorkerManagerListener: nsJSIID<nsIServiceWorkerManagerListener>;
+ nsIServiceWorkerManager: nsJSIID<nsIServiceWorkerManager>;
+ nsIStructuredCloneContainer: nsJSIID<nsIStructuredCloneContainer>;
+ nsITextInputProcessor: nsJSIID<nsITextInputProcessor>;
+ nsITextInputProcessorNotification: nsJSIID<nsITextInputProcessorNotification>;
+ nsITextInputProcessorCallback: nsJSIID<nsITextInputProcessorCallback>;
+ nsIScriptErrorNote: nsJSIID<nsIScriptErrorNote>;
+ nsIScriptError: nsJSIID<nsIScriptError>;
+ nsIDOMGeoPosition: nsJSIID<nsIDOMGeoPosition>;
+ nsIDOMGeoPositionCallback: nsJSIID<nsIDOMGeoPositionCallback>;
+ nsIDOMGeoPositionCoords: nsJSIID<nsIDOMGeoPositionCoords>;
+ nsIDOMGeoPositionErrorCallback: nsJSIID<nsIDOMGeoPositionErrorCallback>;
+ nsIIdentityCredentialPromptService: nsJSIID<nsIIdentityCredentialPromptService>;
+ nsIIdentityCredentialStorageService: nsJSIID<nsIIdentityCredentialStorageService>;
+ nsIIDBPermissionsRequest: nsJSIID<nsIIDBPermissionsRequest>;
+ nsILocalStorageManager: nsJSIID<nsILocalStorageManager>;
+ nsIAudioDeviceInfo: nsJSIID<nsIAudioDeviceInfo>;
+ nsIMediaDevice: nsJSIID<nsIMediaDevice>;
+ nsIMediaManagerService: nsJSIID<nsIMediaManagerService>;
+ nsITCPSocketCallback: nsJSIID<nsITCPSocketCallback>;
+ nsIUDPSocketInternal: nsJSIID<nsIUDPSocketInternal>;
+ nsINotificationStorageCallback: nsJSIID<nsINotificationStorageCallback>;
+ nsINotificationStorage: nsJSIID<nsINotificationStorage>;
+ nsIPaymentResponseData: nsJSIID<nsIPaymentResponseData>;
+ nsIGeneralResponseData: nsJSIID<nsIGeneralResponseData>;
+ nsIBasicCardResponseData: nsJSIID<nsIBasicCardResponseData>;
+ nsIPaymentActionResponse: nsJSIID<nsIPaymentActionResponse>;
+ nsIPaymentCanMakeActionResponse: nsJSIID<nsIPaymentCanMakeActionResponse>;
+ nsIPaymentShowActionResponse: nsJSIID<nsIPaymentShowActionResponse>;
+ nsIPaymentAbortActionResponse: nsJSIID<nsIPaymentAbortActionResponse>;
+ nsIPaymentCompleteActionResponse: nsJSIID<nsIPaymentCompleteActionResponse>;
+ nsIMethodChangeDetails: nsJSIID<nsIMethodChangeDetails>;
+ nsIGeneralChangeDetails: nsJSIID<nsIGeneralChangeDetails>;
+ nsIBasicCardChangeDetails: nsJSIID<nsIBasicCardChangeDetails>;
+ nsIPaymentAddress: nsJSIID<nsIPaymentAddress>;
+ nsIPaymentMethodData: nsJSIID<nsIPaymentMethodData>;
+ nsIPaymentCurrencyAmount: nsJSIID<nsIPaymentCurrencyAmount>;
+ nsIPaymentItem: nsJSIID<nsIPaymentItem>;
+ nsIPaymentDetailsModifier: nsJSIID<nsIPaymentDetailsModifier>;
+ nsIPaymentShippingOption: nsJSIID<nsIPaymentShippingOption>;
+ nsIPaymentDetails: nsJSIID<nsIPaymentDetails>;
+ nsIPaymentOptions: nsJSIID<nsIPaymentOptions>;
+ nsIPaymentRequest: nsJSIID<nsIPaymentRequest>;
+ nsIPaymentRequestService: nsJSIID<nsIPaymentRequestService>;
+ nsIPaymentUIService: nsJSIID<nsIPaymentUIService>;
+ nsIDOMMozWakeLockListener: nsJSIID<nsIDOMMozWakeLockListener>;
+ nsIPowerManagerService: nsJSIID<nsIPowerManagerService>;
+ nsIWakeLock: nsJSIID<nsIWakeLock>;
+ nsIPushErrorReporter: nsJSIID<nsIPushErrorReporter>;
+ nsIPushNotifier: nsJSIID<nsIPushNotifier>;
+ nsIPushData: nsJSIID<nsIPushData>;
+ nsIPushMessage: nsJSIID<nsIPushMessage>;
+ nsIPushSubscription: nsJSIID<nsIPushSubscription>;
+ nsIPushSubscriptionCallback: nsJSIID<nsIPushSubscriptionCallback>;
+ nsIUnsubscribeResultCallback: nsJSIID<nsIUnsubscribeResultCallback>;
+ nsIPushClearResultCallback: nsJSIID<nsIPushClearResultCallback>;
+ nsIPushService: nsJSIID<nsIPushService>;
+ nsIPushQuotaManager: nsJSIID<nsIPushQuotaManager>;
+ nsIQuotaUsageCallback: nsJSIID<nsIQuotaUsageCallback>;
+ nsIQuotaCallback: nsJSIID<nsIQuotaCallback>;
+ nsIQuotaManagerService: nsJSIID<nsIQuotaManagerService>;
+ nsIQuotaRequestBase: nsJSIID<nsIQuotaRequestBase>;
+ nsIQuotaUsageRequest: nsJSIID<nsIQuotaUsageRequest>;
+ nsIQuotaRequest: nsJSIID<nsIQuotaRequest>;
+ nsIQuotaFullOriginMetadataResult: nsJSIID<nsIQuotaFullOriginMetadataResult>;
+ nsIQuotaUsageResult: nsJSIID<nsIQuotaUsageResult>;
+ nsIQuotaOriginUsageResult: nsJSIID<nsIQuotaOriginUsageResult>;
+ nsIQuotaEstimateResult: nsJSIID<nsIQuotaEstimateResult>;
+ nsIContentSecurityManager: nsJSIID<nsIContentSecurityManager>;
+ nsIContentSecurityPolicy: nsJSIID<nsIContentSecurityPolicy, typeof nsIContentSecurityPolicy.CSPDirective>;
+ nsICSPEventListener: nsJSIID<nsICSPEventListener>;
+ nsIReferrerInfo: nsJSIID<nsIReferrerInfo, typeof nsIReferrerInfo.ReferrerPolicyIDL>;
+ nsIHttpsOnlyModePermission: nsJSIID<nsIHttpsOnlyModePermission>;
+ nsIDocumentEncoderNodeFixup: nsJSIID<nsIDocumentEncoderNodeFixup>;
+ nsIDocumentEncoder: nsJSIID<nsIDocumentEncoder>;
+ nsIWebProtocolHandlerRegistrar: nsJSIID<nsIWebProtocolHandlerRegistrar>;
+ nsISDBCallback: nsJSIID<nsISDBCallback>;
+ nsISDBCloseCallback: nsJSIID<nsISDBCloseCallback>;
+ nsISDBConnection: nsJSIID<nsISDBConnection>;
+ nsISDBRequest: nsJSIID<nsISDBRequest>;
+ nsISDBResult: nsJSIID<nsISDBResult>;
+ nsIDOMStorageManager: nsJSIID<nsIDOMStorageManager>;
+ nsIStorageActivityService: nsJSIID<nsIStorageActivityService>;
+ nsISessionStorageService: nsJSIID<nsISessionStorageService>;
+ nsIOSPermissionRequest: nsJSIID<nsIOSPermissionRequest>;
+ nsICredentialParameters: nsJSIID<nsICredentialParameters>;
+ nsIWebAuthnAutoFillEntry: nsJSIID<nsIWebAuthnAutoFillEntry>;
+ nsIWebAuthnService: nsJSIID<nsIWebAuthnService>;
+ nsISpeechTaskCallback: nsJSIID<nsISpeechTaskCallback>;
+ nsISpeechTask: nsJSIID<nsISpeechTask>;
+ nsISpeechService: nsJSIID<nsISpeechService>;
+ nsISynthVoiceRegistry: nsJSIID<nsISynthVoiceRegistry>;
+ nsIWorkerChannelLoadInfo: nsJSIID<nsIWorkerChannelLoadInfo>;
+ nsIWorkerChannelInfo: nsJSIID<nsIWorkerChannelInfo>;
+ nsIWorkerDebuggerListener: nsJSIID<nsIWorkerDebuggerListener>;
+ nsIWorkerDebugger: nsJSIID<nsIWorkerDebugger>;
+ nsIWorkerDebuggerManagerListener: nsJSIID<nsIWorkerDebuggerManagerListener>;
+ nsIWorkerDebuggerManager: nsJSIID<nsIWorkerDebuggerManager>;
+ txIEXSLTFunctions: nsJSIID<txIEXSLTFunctions>;
+ nsIDOMXULButtonElement: nsJSIID<nsIDOMXULButtonElement>;
+ nsIDOMXULCommandDispatcher: nsJSIID<nsIDOMXULCommandDispatcher>;
+ nsIDOMXULContainerItemElement: nsJSIID<nsIDOMXULContainerItemElement>;
+ nsIDOMXULContainerElement: nsJSIID<nsIDOMXULContainerElement>;
+ nsIDOMXULControlElement: nsJSIID<nsIDOMXULControlElement>;
+ nsIDOMXULMenuListElement: nsJSIID<nsIDOMXULMenuListElement>;
+ nsIDOMXULMultiSelectControlElement: nsJSIID<nsIDOMXULMultiSelectControlElement>;
+ nsIDOMXULRadioGroupElement: nsJSIID<nsIDOMXULRadioGroupElement>;
+ nsIDOMXULRelatedElement: nsJSIID<nsIDOMXULRelatedElement>;
+ nsIDOMXULSelectControlElement: nsJSIID<nsIDOMXULSelectControlElement>;
+ nsIDOMXULSelectControlItemElement: nsJSIID<nsIDOMXULSelectControlItemElement>;
+ mozIDownloadPlatform: nsJSIID<mozIDownloadPlatform>;
+ nsIDocumentStateListener: nsJSIID<nsIDocumentStateListener>;
+ nsIEditActionListener: nsJSIID<nsIEditActionListener>;
+ nsIEditor: nsJSIID<nsIEditor>;
+ nsIEditorMailSupport: nsJSIID<nsIEditorMailSupport>;
+ nsIEditorSpellCheck: nsJSIID<nsIEditorSpellCheck>;
+ nsIEditorSpellCheckCallback: nsJSIID<nsIEditorSpellCheckCallback>;
+ nsIHTMLAbsPosEditor: nsJSIID<nsIHTMLAbsPosEditor>;
+ nsIHTMLEditor: nsJSIID<nsIHTMLEditor>;
+ nsIHTMLInlineTableEditor: nsJSIID<nsIHTMLInlineTableEditor>;
+ nsIHTMLObjectResizer: nsJSIID<nsIHTMLObjectResizer>;
+ nsITableEditor: nsJSIID<nsITableEditor>;
+ nsIEnterprisePolicies: nsJSIID<nsIEnterprisePolicies>;
+ amIAddonManagerStartup: nsJSIID<amIAddonManagerStartup>;
+ amIWebInstallPrompt: nsJSIID<amIWebInstallPrompt>;
+ nsIContentDispatchChooser: nsJSIID<nsIContentDispatchChooser>;
+ nsIExternalHelperAppService: nsJSIID<nsIExternalHelperAppService>;
+ nsPIExternalAppLauncher: nsJSIID<nsPIExternalAppLauncher>;
+ nsIHelperAppLauncher: nsJSIID<nsIHelperAppLauncher>;
+ nsIExternalProtocolService: nsJSIID<nsIExternalProtocolService>;
+ nsIHandlerService: nsJSIID<nsIHandlerService>;
+ nsIHelperAppLauncherDialog: nsJSIID<nsIHelperAppLauncherDialog>;
+ nsISharingHandlerApp: nsJSIID<nsISharingHandlerApp>;
+ nsITypeAheadFind: nsJSIID<nsITypeAheadFind>;
+ nsIFOG: nsJSIID<nsIFOG>;
+ nsIGleanPingTestCallback: nsJSIID<nsIGleanPingTestCallback>;
+ nsIGleanPing: nsJSIID<nsIGleanPing>;
+ nsIFontEnumerator: nsJSIID<nsIFontEnumerator>;
+ nsIParserUtils: nsJSIID<nsIParserUtils>;
+ nsIExpatSink: nsJSIID<nsIExpatSink>;
+ nsISFVBareItem: nsJSIID<nsISFVBareItem>;
+ nsISFVInteger: nsJSIID<nsISFVInteger>;
+ nsISFVString: nsJSIID<nsISFVString>;
+ nsISFVBool: nsJSIID<nsISFVBool>;
+ nsISFVDecimal: nsJSIID<nsISFVDecimal>;
+ nsISFVToken: nsJSIID<nsISFVToken>;
+ nsISFVByteSeq: nsJSIID<nsISFVByteSeq>;
+ nsISFVParams: nsJSIID<nsISFVParams>;
+ nsISFVParametrizable: nsJSIID<nsISFVParametrizable>;
+ nsISFVItemOrInnerList: nsJSIID<nsISFVItemOrInnerList>;
+ nsISFVSerialize: nsJSIID<nsISFVSerialize>;
+ nsISFVItem: nsJSIID<nsISFVItem>;
+ nsISFVInnerList: nsJSIID<nsISFVInnerList>;
+ nsISFVList: nsJSIID<nsISFVList>;
+ nsISFVDictionary: nsJSIID<nsISFVDictionary>;
+ nsISFVService: nsJSIID<nsISFVService>;
+ imgICache: nsJSIID<imgICache>;
+ imgIContainer: nsJSIID<imgIContainer, typeof imgIContainer.DecodeResult>;
+ imgIContainerDebug: nsJSIID<imgIContainerDebug>;
+ imgIEncoder: nsJSIID<imgIEncoder>;
+ imgILoader: nsJSIID<imgILoader>;
+ imgINotificationObserver: nsJSIID<imgINotificationObserver>;
+ imgIRequest: nsJSIID<imgIRequest>;
+ imgIScriptedNotificationObserver: nsJSIID<imgIScriptedNotificationObserver>;
+ imgITools: nsJSIID<imgITools>;
+ imgIContainerCallback: nsJSIID<imgIContainerCallback>;
+ nsIMozIconURI: nsJSIID<nsIMozIconURI>;
+ inIDeepTreeWalker: nsJSIID<inIDeepTreeWalker>;
+ nsIStringBundle: nsJSIID<nsIStringBundle>;
+ nsIStringBundleService: nsJSIID<nsIStringBundleService>;
+ nsIJARChannel: nsJSIID<nsIJARChannel>;
+ nsIJARURI: nsJSIID<nsIJARURI>;
+ nsIZipEntry: nsJSIID<nsIZipEntry>;
+ nsIZipReader: nsJSIID<nsIZipReader>;
+ nsIZipReaderCache: nsJSIID<nsIZipReaderCache>;
+ IJSDebugger: nsJSIID<IJSDebugger>;
+ nsIJSInspector: nsJSIID<nsIJSInspector>;
+ nsIKeyValueService: nsJSIID<nsIKeyValueService, typeof nsIKeyValueService.RecoveryStrategy>;
+ nsIKeyValueDatabase: nsJSIID<nsIKeyValueDatabase>;
+ nsIKeyValuePair: nsJSIID<nsIKeyValuePair>;
+ nsIKeyValueEnumerator: nsJSIID<nsIKeyValueEnumerator>;
+ nsIKeyValueDatabaseCallback: nsJSIID<nsIKeyValueDatabaseCallback>;
+ nsIKeyValueEnumeratorCallback: nsJSIID<nsIKeyValueEnumeratorCallback>;
+ nsIKeyValuePairCallback: nsJSIID<nsIKeyValuePairCallback>;
+ nsIKeyValueVariantCallback: nsJSIID<nsIKeyValueVariantCallback>;
+ nsIKeyValueVoidCallback: nsJSIID<nsIKeyValueVoidCallback>;
+ nsILayoutHistoryState: nsJSIID<nsILayoutHistoryState>;
+ nsIPreloadedStyleSheet: nsJSIID<nsIPreloadedStyleSheet>;
+ nsIStyleSheetService: nsJSIID<nsIStyleSheetService>;
+ nsITreeSelection: nsJSIID<nsITreeSelection>;
+ nsITreeView: nsJSIID<nsITreeView>;
+ mozILocaleService: nsJSIID<mozILocaleService>;
+ mozIOSPreferences: nsJSIID<mozIOSPreferences>;
+ nsILoginAutoCompleteSearch: nsJSIID<nsILoginAutoCompleteSearch>;
+ nsILoginInfo: nsJSIID<nsILoginInfo>;
+ nsILoginSearchCallback: nsJSIID<nsILoginSearchCallback>;
+ nsILoginManager: nsJSIID<nsILoginManager>;
+ nsILoginManagerAuthPrompter: nsJSIID<nsILoginManagerAuthPrompter>;
+ nsILoginManagerCrypto: nsJSIID<nsILoginManagerCrypto>;
+ nsILoginManagerPrompter: nsJSIID<nsILoginManagerPrompter>;
+ nsILoginMetaInfo: nsJSIID<nsILoginMetaInfo>;
+ nsIPromptInstance: nsJSIID<nsIPromptInstance>;
+ nsIEdgeMigrationUtils: nsJSIID<nsIEdgeMigrationUtils>;
+ nsIMIMEHeaderParam: nsJSIID<nsIMIMEHeaderParam>;
+ nsIHandlerInfo: nsJSIID<nsIHandlerInfo>;
+ nsIMIMEInfo: nsJSIID<nsIMIMEInfo>;
+ nsIHandlerApp: nsJSIID<nsIHandlerApp>;
+ nsILocalHandlerApp: nsJSIID<nsILocalHandlerApp>;
+ nsIWebHandlerApp: nsJSIID<nsIWebHandlerApp>;
+ nsIDBusHandlerApp: nsJSIID<nsIDBusHandlerApp>;
+ nsIMIMEService: nsJSIID<nsIMIMEService>;
+ nsIFind: nsJSIID<nsIFind>;
+ nsIFindService: nsJSIID<nsIFindService>;
+ nsIWebBrowserFind: nsJSIID<nsIWebBrowserFind>;
+ nsIWebBrowserFindInFrames: nsJSIID<nsIWebBrowserFindInFrames>;
+ mozIMozIntl: nsJSIID<mozIMozIntl>;
+ mozIMozIntlHelper: nsJSIID<mozIMozIntlHelper>;
+ mozIThirdPartyUtil: nsJSIID<mozIThirdPartyUtil>;
+ nsIArrayBufferInputStream: nsJSIID<nsIArrayBufferInputStream>;
+ nsIAsyncStreamCopier: nsJSIID<nsIAsyncStreamCopier>;
+ nsIAsyncStreamCopier2: nsJSIID<nsIAsyncStreamCopier2>;
+ nsIAsyncVerifyRedirectCallback: nsJSIID<nsIAsyncVerifyRedirectCallback>;
+ nsIAuthInformation: nsJSIID<nsIAuthInformation>;
+ nsIAuthPrompt: nsJSIID<nsIAuthPrompt>;
+ nsIAuthPrompt2: nsJSIID<nsIAuthPrompt2>;
+ nsIAuthPromptAdapterFactory: nsJSIID<nsIAuthPromptAdapterFactory>;
+ nsIAuthPromptCallback: nsJSIID<nsIAuthPromptCallback>;
+ nsIAuthPromptProvider: nsJSIID<nsIAuthPromptProvider>;
+ nsIBackgroundFileSaver: nsJSIID<nsIBackgroundFileSaver>;
+ nsIBackgroundFileSaverObserver: nsJSIID<nsIBackgroundFileSaverObserver>;
+ nsIBufferedInputStream: nsJSIID<nsIBufferedInputStream>;
+ nsIBufferedOutputStream: nsJSIID<nsIBufferedOutputStream>;
+ nsIByteRangeRequest: nsJSIID<nsIByteRangeRequest>;
+ nsIInputStreamReceiver: nsJSIID<nsIInputStreamReceiver>;
+ nsICacheInfoChannel: nsJSIID<nsICacheInfoChannel, typeof nsICacheInfoChannel.PreferredAlternativeDataDeliveryType>;
+ nsICachingChannel: nsJSIID<nsICachingChannel>;
+ nsICancelable: nsJSIID<nsICancelable>;
+ nsICaptivePortalServiceCallback: nsJSIID<nsICaptivePortalServiceCallback>;
+ nsICaptivePortalService: nsJSIID<nsICaptivePortalService>;
+ nsIChannel: nsJSIID<nsIChannel>;
+ nsIIdentChannel: nsJSIID<nsIIdentChannel>;
+ nsIChannelEventSink: nsJSIID<nsIChannelEventSink>;
+ nsIChildChannel: nsJSIID<nsIChildChannel>;
+ nsIClassOfService: nsJSIID<nsIClassOfService>;
+ nsIClassifiedChannel: nsJSIID<nsIClassifiedChannel, typeof nsIClassifiedChannel.ClassificationFlags>;
+ nsIContentSniffer: nsJSIID<nsIContentSniffer>;
+ nsIDHCPClient: nsJSIID<nsIDHCPClient>;
+ nsINetDashboardCallback: nsJSIID<nsINetDashboardCallback>;
+ nsIDashboard: nsJSIID<nsIDashboard>;
+ nsIDownloader: nsJSIID<nsIDownloader>;
+ nsIDownloadObserver: nsJSIID<nsIDownloadObserver>;
+ nsIEncodedChannel: nsJSIID<nsIEncodedChannel>;
+ nsIExternalProtocolHandler: nsJSIID<nsIExternalProtocolHandler>;
+ nsIFileInputStream: nsJSIID<nsIFileInputStream>;
+ nsIFileOutputStream: nsJSIID<nsIFileOutputStream>;
+ nsIFileRandomAccessStream: nsJSIID<nsIFileRandomAccessStream>;
+ nsIFileMetadata: nsJSIID<nsIFileMetadata>;
+ nsIAsyncFileMetadata: nsJSIID<nsIAsyncFileMetadata>;
+ nsIFileMetadataCallback: nsJSIID<nsIFileMetadataCallback>;
+ nsIFileURL: nsJSIID<nsIFileURL>;
+ nsIFileURLMutator: nsJSIID<nsIFileURLMutator>;
+ nsIFormPOSTActionChannel: nsJSIID<nsIFormPOSTActionChannel>;
+ nsIHttpPushListener: nsJSIID<nsIHttpPushListener>;
+ nsIIOService: nsJSIID<nsIIOService>;
+ nsIIncrementalDownload: nsJSIID<nsIIncrementalDownload>;
+ nsIIncrementalStreamLoaderObserver: nsJSIID<nsIIncrementalStreamLoaderObserver>;
+ nsIIncrementalStreamLoader: nsJSIID<nsIIncrementalStreamLoader>;
+ nsIInputStreamChannel: nsJSIID<nsIInputStreamChannel>;
+ nsIInputStreamPump: nsJSIID<nsIInputStreamPump>;
+ nsIInterceptionInfo: nsJSIID<nsIInterceptionInfo>;
+ nsILoadContextInfo: nsJSIID<nsILoadContextInfo>;
+ nsILoadContextInfoFactory: nsJSIID<nsILoadContextInfoFactory>;
+ nsILoadGroup: nsJSIID<nsILoadGroup>;
+ nsILoadGroupChild: nsJSIID<nsILoadGroupChild>;
+ nsILoadInfo: nsJSIID<nsILoadInfo, typeof nsILoadInfo.StoragePermissionState & typeof nsILoadInfo.CrossOriginOpenerPolicy & typeof nsILoadInfo.CrossOriginEmbedderPolicy>;
+ nsIMIMEInputStream: nsJSIID<nsIMIMEInputStream>;
+ nsIMultiPartChannel: nsJSIID<nsIMultiPartChannel>;
+ nsIMultiPartChannelListener: nsJSIID<nsIMultiPartChannelListener>;
+ nsINestedURI: nsJSIID<nsINestedURI>;
+ nsINestedURIMutator: nsJSIID<nsINestedURIMutator>;
+ nsINestedAboutURIMutator: nsJSIID<nsINestedAboutURIMutator>;
+ nsIJSURIMutator: nsJSIID<nsIJSURIMutator>;
+ nsINetAddr: nsJSIID<nsINetAddr>;
+ nsINetUtil: nsJSIID<nsINetUtil>;
+ nsINetworkConnectivityService: nsJSIID<nsINetworkConnectivityService, typeof nsINetworkConnectivityService.ConnectivityState>;
+ nsIListNetworkAddressesListener: nsJSIID<nsIListNetworkAddressesListener>;
+ nsIGetHostnameListener: nsJSIID<nsIGetHostnameListener>;
+ nsINetworkInfoService: nsJSIID<nsINetworkInfoService>;
+ nsIInterceptedBodyCallback: nsJSIID<nsIInterceptedBodyCallback>;
+ nsIInterceptedChannel: nsJSIID<nsIInterceptedChannel>;
+ nsINetworkInterceptController: nsJSIID<nsINetworkInterceptController>;
+ nsINetworkLinkService: nsJSIID<nsINetworkLinkService>;
+ nsINetworkPredictor: nsJSIID<nsINetworkPredictor>;
+ nsINetworkPredictorVerifier: nsJSIID<nsINetworkPredictorVerifier>;
+ nsINullChannel: nsJSIID<nsINullChannel>;
+ nsIParentChannel: nsJSIID<nsIParentChannel>;
+ nsIParentRedirectingChannel: nsJSIID<nsIParentRedirectingChannel>;
+ nsIPermission: nsJSIID<nsIPermission>;
+ nsIPermissionManager: nsJSIID<nsIPermissionManager>;
+ nsIPrivateBrowsingChannel: nsJSIID<nsIPrivateBrowsingChannel>;
+ nsIProgressEventSink: nsJSIID<nsIProgressEventSink>;
+ nsIPrompt: nsJSIID<nsIPrompt>;
+ nsIProtocolHandlerWithDynamicFlags: nsJSIID<nsIProtocolHandlerWithDynamicFlags>;
+ nsIProtocolHandler: nsJSIID<nsIProtocolHandler>;
+ nsIProtocolProxyCallback: nsJSIID<nsIProtocolProxyCallback>;
+ nsIProxyProtocolFilterResult: nsJSIID<nsIProxyProtocolFilterResult>;
+ nsIProtocolProxyFilter: nsJSIID<nsIProtocolProxyFilter>;
+ nsIProtocolProxyChannelFilter: nsJSIID<nsIProtocolProxyChannelFilter>;
+ nsIProxyConfigChangedCallback: nsJSIID<nsIProxyConfigChangedCallback>;
+ nsIProtocolProxyService: nsJSIID<nsIProtocolProxyService>;
+ nsIProtocolProxyService2: nsJSIID<nsIProtocolProxyService2>;
+ nsIProxiedChannel: nsJSIID<nsIProxiedChannel>;
+ nsIProxiedProtocolHandler: nsJSIID<nsIProxiedProtocolHandler>;
+ nsIProxyInfo: nsJSIID<nsIProxyInfo>;
+ nsIRandomGenerator: nsJSIID<nsIRandomGenerator>;
+ nsIRedirectChannelRegistrar: nsJSIID<nsIRedirectChannelRegistrar>;
+ nsIRedirectHistoryEntry: nsJSIID<nsIRedirectHistoryEntry>;
+ nsIRedirectResultListener: nsJSIID<nsIRedirectResultListener>;
+ nsIRequest: nsJSIID<nsIRequest, typeof nsIRequest.TRRMode>;
+ nsIRequestObserver: nsJSIID<nsIRequestObserver>;
+ nsIRequestObserverProxy: nsJSIID<nsIRequestObserverProxy>;
+ nsIResumableChannel: nsJSIID<nsIResumableChannel>;
+ nsISecCheckWrapChannel: nsJSIID<nsISecCheckWrapChannel>;
+ nsISecureBrowserUI: nsJSIID<nsISecureBrowserUI>;
+ nsISensitiveInfoHiddenURI: nsJSIID<nsISensitiveInfoHiddenURI>;
+ nsISerializationHelper: nsJSIID<nsISerializationHelper>;
+ nsIServerSocket: nsJSIID<nsIServerSocket>;
+ nsIServerSocketListener: nsJSIID<nsIServerSocketListener>;
+ nsISimpleStreamListener: nsJSIID<nsISimpleStreamListener>;
+ nsISimpleURIMutator: nsJSIID<nsISimpleURIMutator>;
+ nsISocketTransport: nsJSIID<nsISocketTransport>;
+ nsISTSShutdownObserver: nsJSIID<nsISTSShutdownObserver>;
+ nsISocketTransportService: nsJSIID<nsISocketTransportService>;
+ nsIRoutedSocketTransportService: nsJSIID<nsIRoutedSocketTransportService>;
+ nsISpeculativeConnect: nsJSIID<nsISpeculativeConnect>;
+ nsIStandardURL: nsJSIID<nsIStandardURL>;
+ nsIStandardURLMutator: nsJSIID<nsIStandardURLMutator>;
+ nsIStreamListener: nsJSIID<nsIStreamListener>;
+ nsIStreamListenerTee: nsJSIID<nsIStreamListenerTee>;
+ nsIStreamLoaderObserver: nsJSIID<nsIStreamLoaderObserver>;
+ nsIStreamLoader: nsJSIID<nsIStreamLoader>;
+ nsIStreamTransportService: nsJSIID<nsIStreamTransportService>;
+ nsISyncStreamListener: nsJSIID<nsISyncStreamListener>;
+ nsISystemProxySettings: nsJSIID<nsISystemProxySettings>;
+ nsITLSServerSocket: nsJSIID<nsITLSServerSocket>;
+ nsITLSClientStatus: nsJSIID<nsITLSClientStatus>;
+ nsITLSServerConnectionInfo: nsJSIID<nsITLSServerConnectionInfo>;
+ nsITLSServerSecurityObserver: nsJSIID<nsITLSServerSecurityObserver>;
+ nsIThreadRetargetableStreamListener: nsJSIID<nsIThreadRetargetableStreamListener>;
+ nsIInputChannelThrottleQueue: nsJSIID<nsIInputChannelThrottleQueue>;
+ nsIThrottledInputChannel: nsJSIID<nsIThrottledInputChannel>;
+ nsIServerTiming: nsJSIID<nsIServerTiming>;
+ nsITimedChannel: nsJSIID<nsITimedChannel>;
+ nsITraceableChannel: nsJSIID<nsITraceableChannel>;
+ nsITransport: nsJSIID<nsITransport>;
+ nsITransportEventSink: nsJSIID<nsITransportEventSink>;
+ nsIUDPSocket: nsJSIID<nsIUDPSocket>;
+ nsIUDPSocketListener: nsJSIID<nsIUDPSocketListener>;
+ nsIUDPMessage: nsJSIID<nsIUDPMessage>;
+ nsIURI: nsJSIID<nsIURI>;
+ nsIURISetSpec: nsJSIID<nsIURISetSpec>;
+ nsIURISetters: nsJSIID<nsIURISetters>;
+ nsIURIMutator: nsJSIID<nsIURIMutator>;
+ nsIURIWithSpecialOrigin: nsJSIID<nsIURIWithSpecialOrigin>;
+ nsIURL: nsJSIID<nsIURL>;
+ nsIURLMutator: nsJSIID<nsIURLMutator>;
+ nsIURLParser: nsJSIID<nsIURLParser>;
+ nsIUploadChannel: nsJSIID<nsIUploadChannel>;
+ nsIUploadChannel2: nsJSIID<nsIUploadChannel2>;
+ nsPISocketTransportService: nsJSIID<nsPISocketTransportService>;
+ nsIAboutModule: nsJSIID<nsIAboutModule>;
+ nsICacheEntry: nsJSIID<nsICacheEntry>;
+ nsICacheEntryMetaDataVisitor: nsJSIID<nsICacheEntryMetaDataVisitor>;
+ nsICacheEntryDoomCallback: nsJSIID<nsICacheEntryDoomCallback>;
+ nsICacheEntryOpenCallback: nsJSIID<nsICacheEntryOpenCallback>;
+ nsICachePurgeLock: nsJSIID<nsICachePurgeLock>;
+ nsICacheStorage: nsJSIID<nsICacheStorage>;
+ nsICacheStorageService: nsJSIID<nsICacheStorageService>;
+ nsICacheStorageConsumptionObserver: nsJSIID<nsICacheStorageConsumptionObserver>;
+ nsICacheStorageVisitor: nsJSIID<nsICacheStorageVisitor>;
+ nsICacheTesting: nsJSIID<nsICacheTesting>;
+ nsICookie: nsJSIID<nsICookie, typeof nsICookie.schemeType>;
+ nsICookieJarSettings: nsJSIID<nsICookieJarSettings>;
+ nsICookieManager: nsJSIID<nsICookieManager>;
+ nsICookieNotification: nsJSIID<nsICookieNotification, typeof nsICookieNotification.Action>;
+ nsICookiePermission: nsJSIID<nsICookiePermission>;
+ nsICookieTransactionCallback: nsJSIID<nsICookieTransactionCallback>;
+ nsICookieService: nsJSIID<nsICookieService>;
+ nsIDNSAdditionalInfo: nsJSIID<nsIDNSAdditionalInfo>;
+ nsIDNSByTypeRecord: nsJSIID<nsIDNSByTypeRecord>;
+ nsIDNSTXTRecord: nsJSIID<nsIDNSTXTRecord>;
+ nsISVCParam: nsJSIID<nsISVCParam>;
+ nsISVCParamAlpn: nsJSIID<nsISVCParamAlpn>;
+ nsISVCParamNoDefaultAlpn: nsJSIID<nsISVCParamNoDefaultAlpn>;
+ nsISVCParamPort: nsJSIID<nsISVCParamPort>;
+ nsISVCParamIPv4Hint: nsJSIID<nsISVCParamIPv4Hint>;
+ nsISVCParamEchConfig: nsJSIID<nsISVCParamEchConfig>;
+ nsISVCParamIPv6Hint: nsJSIID<nsISVCParamIPv6Hint>;
+ nsISVCParamODoHConfig: nsJSIID<nsISVCParamODoHConfig>;
+ nsISVCBRecord: nsJSIID<nsISVCBRecord>;
+ nsIDNSHTTPSSVCRecord: nsJSIID<nsIDNSHTTPSSVCRecord>;
+ nsIDNSListener: nsJSIID<nsIDNSListener>;
+ nsIDNSRecord: nsJSIID<nsIDNSRecord>;
+ nsIDNSAddrRecord: nsJSIID<nsIDNSAddrRecord>;
+ nsIDNSService: nsJSIID<nsIDNSService, typeof nsIDNSService.ResolveType & typeof nsIDNSService.ResolverMode & typeof nsIDNSService.DNSFlags & typeof nsIDNSService.ConfirmationState>;
+ nsIEffectiveTLDService: nsJSIID<nsIEffectiveTLDService>;
+ nsIIDNService: nsJSIID<nsIIDNService>;
+ nsINativeDNSResolverOverride: nsJSIID<nsINativeDNSResolverOverride>;
+ nsITRRSkipReason: nsJSIID<nsITRRSkipReason, typeof nsITRRSkipReason.value>;
+ nsPIDNSService: nsJSIID<nsPIDNSService>;
+ nsIFileChannel: nsJSIID<nsIFileChannel>;
+ nsIFileProtocolHandler: nsJSIID<nsIFileProtocolHandler>;
+ nsIBinaryHttpRequest: nsJSIID<nsIBinaryHttpRequest>;
+ nsIBinaryHttpResponse: nsJSIID<nsIBinaryHttpResponse>;
+ nsIBinaryHttp: nsJSIID<nsIBinaryHttp>;
+ nsIEarlyHintObserver: nsJSIID<nsIEarlyHintObserver>;
+ nsIHttpActivityObserver: nsJSIID<nsIHttpActivityObserver>;
+ nsIHttpActivityDistributor: nsJSIID<nsIHttpActivityDistributor>;
+ nsIHttpAuthManager: nsJSIID<nsIHttpAuthManager>;
+ nsIHttpChannel: nsJSIID<nsIHttpChannel>;
+ nsIHttpUpgradeListener: nsJSIID<nsIHttpUpgradeListener>;
+ nsIHttpChannelInternal: nsJSIID<nsIHttpChannelInternal>;
+ nsIHttpHeaderVisitor: nsJSIID<nsIHttpHeaderVisitor>;
+ nsIHttpProtocolHandler: nsJSIID<nsIHttpProtocolHandler>;
+ nsIObliviousHttpClientResponse: nsJSIID<nsIObliviousHttpClientResponse>;
+ nsIObliviousHttpClientRequest: nsJSIID<nsIObliviousHttpClientRequest>;
+ nsIObliviousHttpServerResponse: nsJSIID<nsIObliviousHttpServerResponse>;
+ nsIObliviousHttpServer: nsJSIID<nsIObliviousHttpServer>;
+ nsIObliviousHttp: nsJSIID<nsIObliviousHttp>;
+ nsIObliviousHttpService: nsJSIID<nsIObliviousHttpService>;
+ nsIObliviousHttpChannel: nsJSIID<nsIObliviousHttpChannel>;
+ nsIRaceCacheWithNetwork: nsJSIID<nsIRaceCacheWithNetwork>;
+ nsIWellKnownOpportunisticUtils: nsJSIID<nsIWellKnownOpportunisticUtils>;
+ nsICompressConvStats: nsJSIID<nsICompressConvStats>;
+ nsIResProtocolHandler: nsJSIID<nsIResProtocolHandler>;
+ nsISubstitutingProtocolHandler: nsJSIID<nsISubstitutingProtocolHandler>;
+ nsINamedPipeDataObserver: nsJSIID<nsINamedPipeDataObserver>;
+ nsINamedPipeService: nsJSIID<nsINamedPipeService>;
+ nsISocketProvider: nsJSIID<nsISocketProvider>;
+ nsISocketProviderService: nsJSIID<nsISocketProviderService>;
+ mozITXTToHTMLConv: nsJSIID<mozITXTToHTMLConv>;
+ nsIDirIndex: nsJSIID<nsIDirIndex>;
+ nsIDirIndexListener: nsJSIID<nsIDirIndexListener>;
+ nsIDirIndexParser: nsJSIID<nsIDirIndexParser>;
+ nsIStreamConverter: nsJSIID<nsIStreamConverter>;
+ nsIStreamConverterService: nsJSIID<nsIStreamConverterService>;
+ nsITXTToHTMLConv: nsJSIID<nsITXTToHTMLConv>;
+ nsITransportProvider: nsJSIID<nsITransportProvider>;
+ nsIWebSocketChannel: nsJSIID<nsIWebSocketChannel>;
+ nsIWebSocketFrame: nsJSIID<nsIWebSocketFrame>;
+ nsIWebSocketEventListener: nsJSIID<nsIWebSocketEventListener>;
+ nsIWebSocketEventService: nsJSIID<nsIWebSocketEventService>;
+ nsIWebSocketImpl: nsJSIID<nsIWebSocketImpl>;
+ nsIWebSocketListener: nsJSIID<nsIWebSocketListener>;
+ nsIWebTransport: nsJSIID<nsIWebTransport, typeof nsIWebTransport.WebTransportError>;
+ WebTransportSessionEventListener: nsJSIID<WebTransportSessionEventListener, typeof WebTransportSessionEventListener.DatagramOutcome>;
+ nsIWebTransportStreamCallback: nsJSIID<nsIWebTransportStreamCallback>;
+ nsIWebTransportHash: nsJSIID<nsIWebTransportHash>;
+ nsIWebTransportSendStreamStats: nsJSIID<nsIWebTransportSendStreamStats>;
+ nsIWebTransportReceiveStreamStats: nsJSIID<nsIWebTransportReceiveStreamStats>;
+ nsIWebTransportStreamStatsCallback: nsJSIID<nsIWebTransportStreamStatsCallback>;
+ nsIWebTransportReceiveStream: nsJSIID<nsIWebTransportReceiveStream>;
+ nsIWebTransportSendStream: nsJSIID<nsIWebTransportSendStream>;
+ nsIWebTransportBidirectionalStream: nsJSIID<nsIWebTransportBidirectionalStream>;
+ nsIWifiAccessPoint: nsJSIID<nsIWifiAccessPoint>;
+ nsIWifiListener: nsJSIID<nsIWifiListener>;
+ nsIWifiMonitor: nsJSIID<nsIWifiMonitor>;
+ nsIParentalControlsService: nsJSIID<nsIParentalControlsService>;
+ IPeerConnectionObserver: nsJSIID<IPeerConnectionObserver>;
+ IPeerConnection: nsJSIID<IPeerConnection>;
+ nsICertOverride: nsJSIID<nsICertOverride>;
+ nsICertOverrideService: nsJSIID<nsICertOverrideService>;
+ nsICertStorageCallback: nsJSIID<nsICertStorageCallback>;
+ nsIRevocationState: nsJSIID<nsIRevocationState>;
+ nsIIssuerAndSerialRevocationState: nsJSIID<nsIIssuerAndSerialRevocationState>;
+ nsISubjectAndPubKeyRevocationState: nsJSIID<nsISubjectAndPubKeyRevocationState>;
+ nsICRLiteCoverage: nsJSIID<nsICRLiteCoverage>;
+ nsICertInfo: nsJSIID<nsICertInfo>;
+ nsICertStorage: nsJSIID<nsICertStorage>;
+ nsICertTreeItem: nsJSIID<nsICertTreeItem>;
+ nsICertTree: nsJSIID<nsICertTree>;
+ nsICertificateDialogs: nsJSIID<nsICertificateDialogs>;
+ nsIClientAuthDialogCallback: nsJSIID<nsIClientAuthDialogCallback>;
+ nsIClientAuthDialogService: nsJSIID<nsIClientAuthDialogService>;
+ nsIClientAuthRememberRecord: nsJSIID<nsIClientAuthRememberRecord>;
+ nsIClientAuthRememberService: nsJSIID<nsIClientAuthRememberService>;
+ nsIContentSignatureVerifier: nsJSIID<nsIContentSignatureVerifier>;
+ nsICryptoHash: nsJSIID<nsICryptoHash>;
+ nsIDataStorageManager: nsJSIID<nsIDataStorageManager, typeof nsIDataStorageManager.DataStorage>;
+ nsIDataStorage: nsJSIID<nsIDataStorage, typeof nsIDataStorage.DataType>;
+ nsIDataStorageItem: nsJSIID<nsIDataStorageItem>;
+ nsINSSComponent: nsJSIID<nsINSSComponent>;
+ nsINSSErrorsService: nsJSIID<nsINSSErrorsService>;
+ nsINSSVersion: nsJSIID<nsINSSVersion>;
+ nsIOSKeyStore: nsJSIID<nsIOSKeyStore>;
+ nsIOSReauthenticator: nsJSIID<nsIOSReauthenticator>;
+ nsIPK11Token: nsJSIID<nsIPK11Token>;
+ nsIPK11TokenDB: nsJSIID<nsIPK11TokenDB>;
+ nsIPKCS11Module: nsJSIID<nsIPKCS11Module>;
+ nsIPKCS11ModuleDB: nsJSIID<nsIPKCS11ModuleDB>;
+ nsIPKCS11Slot: nsJSIID<nsIPKCS11Slot>;
+ nsIPublicKeyPinningService: nsJSIID<nsIPublicKeyPinningService>;
+ nsISecretDecoderRing: nsJSIID<nsISecretDecoderRing>;
+ nsISecurityUITelemetry: nsJSIID<nsISecurityUITelemetry>;
+ nsISiteSecurityService: nsJSIID<nsISiteSecurityService, typeof nsISiteSecurityService.ResetStateBy>;
+ nsITLSSocketControl: nsJSIID<nsITLSSocketControl>;
+ nsITokenPasswordDialogs: nsJSIID<nsITokenPasswordDialogs>;
+ nsITransportSecurityInfo: nsJSIID<nsITransportSecurityInfo, typeof nsITransportSecurityInfo.OverridableErrorCategory>;
+ nsIX509Cert: nsJSIID<nsIX509Cert>;
+ nsIAppSignatureInfo: nsJSIID<nsIAppSignatureInfo, typeof nsIAppSignatureInfo.SignatureAlgorithm>;
+ nsIOpenSignedAppFileCallback: nsJSIID<nsIOpenSignedAppFileCallback>;
+ nsIAsyncBoolCallback: nsJSIID<nsIAsyncBoolCallback>;
+ nsICertVerificationCallback: nsJSIID<nsICertVerificationCallback>;
+ nsIX509CertDB: nsJSIID<nsIX509CertDB>;
+ nsIX509CertValidity: nsJSIID<nsIX509CertValidity>;
+ mozIVisitInfo: nsJSIID<mozIVisitInfo>;
+ mozIPlaceInfo: nsJSIID<mozIPlaceInfo>;
+ mozIVisitInfoCallback: nsJSIID<mozIVisitInfoCallback>;
+ mozIVisitedStatusCallback: nsJSIID<mozIVisitedStatusCallback>;
+ mozIAsyncHistory: nsJSIID<mozIAsyncHistory>;
+ mozIPlacesAutoComplete: nsJSIID<mozIPlacesAutoComplete>;
+ mozIPlacesPendingOperation: nsJSIID<mozIPlacesPendingOperation>;
+ mozISyncedBookmarksMirrorProgressListener: nsJSIID<mozISyncedBookmarksMirrorProgressListener>;
+ mozISyncedBookmarksMirrorCallback: nsJSIID<mozISyncedBookmarksMirrorCallback>;
+ mozISyncedBookmarksMirrorLogger: nsJSIID<mozISyncedBookmarksMirrorLogger>;
+ mozISyncedBookmarksMerger: nsJSIID<mozISyncedBookmarksMerger>;
+ nsIFaviconService: nsJSIID<nsIFaviconService>;
+ nsIFaviconDataCallback: nsJSIID<nsIFaviconDataCallback>;
+ nsINavBookmarksService: nsJSIID<nsINavBookmarksService>;
+ nsINavHistoryResultNode: nsJSIID<nsINavHistoryResultNode>;
+ nsINavHistoryContainerResultNode: nsJSIID<nsINavHistoryContainerResultNode>;
+ nsINavHistoryQueryResultNode: nsJSIID<nsINavHistoryQueryResultNode>;
+ nsINavHistoryResultObserver: nsJSIID<nsINavHistoryResultObserver>;
+ nsINavHistoryResult: nsJSIID<nsINavHistoryResult>;
+ nsINavHistoryQuery: nsJSIID<nsINavHistoryQuery>;
+ nsINavHistoryQueryOptions: nsJSIID<nsINavHistoryQueryOptions>;
+ nsINavHistoryService: nsJSIID<nsINavHistoryService>;
+ nsIPlacesPreviewsHelperService: nsJSIID<nsIPlacesPreviewsHelperService>;
+ nsITaggingService: nsJSIID<nsITaggingService>;
+ nsIPrefBranch: nsJSIID<nsIPrefBranch>;
+ nsIPrefLocalizedString: nsJSIID<nsIPrefLocalizedString>;
+ nsIPrefStatsCallback: nsJSIID<nsIPrefStatsCallback>;
+ nsIPrefObserver: nsJSIID<nsIPrefObserver>;
+ nsIPrefService: nsJSIID<nsIPrefService>;
+ nsIRelativeFilePref: nsJSIID<nsIRelativeFilePref>;
+ nsIPrefetchService: nsJSIID<nsIPrefetchService>;
+ nsIProfilerStartParams: nsJSIID<nsIProfilerStartParams>;
+ nsIProfiler: nsJSIID<nsIProfiler>;
+ nsIRddProcessTest: nsJSIID<nsIRddProcessTest>;
+ nsIMarionette: nsJSIID<nsIMarionette>;
+ nsIRemoteAgent: nsJSIID<nsIRemoteAgent>;
+ nsIApplicationReputationService: nsJSIID<nsIApplicationReputationService>;
+ nsIApplicationReputationQuery: nsJSIID<nsIApplicationReputationQuery>;
+ nsIApplicationReputationCallback: nsJSIID<nsIApplicationReputationCallback>;
+ mozISandboxSettings: nsJSIID<mozISandboxSettings>;
+ nsIFormAutoComplete: nsJSIID<nsIFormAutoComplete>;
+ nsIFormAutoCompleteObserver: nsJSIID<nsIFormAutoCompleteObserver>;
+ nsIFormFillController: nsJSIID<nsIFormFillController>;
+ mozIAppServicesLogger: nsJSIID<mozIAppServicesLogger>;
+ mozIBridgedSyncEngineCallback: nsJSIID<mozIBridgedSyncEngineCallback>;
+ mozIBridgedSyncEngineApplyCallback: nsJSIID<mozIBridgedSyncEngineApplyCallback>;
+ mozIBridgedSyncEngine: nsJSIID<mozIBridgedSyncEngine>;
+ mozIInterruptible: nsJSIID<mozIInterruptible>;
+ mozIServicesLogSink: nsJSIID<mozIServicesLogSink>;
+ nsISessionStoreFunctions: nsJSIID<nsISessionStoreFunctions>;
+ nsISessionStoreRestoreData: nsJSIID<nsISessionStoreRestoreData>;
+ nsIShellService: nsJSIID<nsIShellService>;
+ nsIWindowsShellService: nsJSIID<nsIWindowsShellService>;
+ nsIBFCacheEntry: nsJSIID<nsIBFCacheEntry>;
+ nsISHEntry: nsJSIID<nsISHEntry>;
+ nsISHistory: nsJSIID<nsISHistory>;
+ nsISHistoryListener: nsJSIID<nsISHistoryListener>;
+ mozIPersonalDictionary: nsJSIID<mozIPersonalDictionary>;
+ mozISpellCheckingEngine: nsJSIID<mozISpellCheckingEngine>;
+ nsIStartupCacheInfo: nsJSIID<nsIStartupCacheInfo>;
+ mozIStorageAsyncConnection: nsJSIID<mozIStorageAsyncConnection>;
+ mozIStorageAsyncStatement: nsJSIID<mozIStorageAsyncStatement>;
+ mozIStorageBaseStatement: nsJSIID<mozIStorageBaseStatement>;
+ mozIStorageBindingParams: nsJSIID<mozIStorageBindingParams>;
+ mozIStorageBindingParamsArray: nsJSIID<mozIStorageBindingParamsArray>;
+ mozIStorageCompletionCallback: nsJSIID<mozIStorageCompletionCallback>;
+ mozIStorageConnection: nsJSIID<mozIStorageConnection>;
+ mozIStorageError: nsJSIID<mozIStorageError>;
+ mozIStorageFunction: nsJSIID<mozIStorageFunction>;
+ mozIStoragePendingStatement: nsJSIID<mozIStoragePendingStatement>;
+ mozIStorageProgressHandler: nsJSIID<mozIStorageProgressHandler>;
+ mozIStorageResultSet: nsJSIID<mozIStorageResultSet>;
+ mozIStorageRow: nsJSIID<mozIStorageRow>;
+ mozIStorageService: nsJSIID<mozIStorageService>;
+ mozIStorageStatement: nsJSIID<mozIStorageStatement>;
+ mozIStorageStatementCallback: nsJSIID<mozIStorageStatementCallback>;
+ mozIStorageVacuumParticipant: nsJSIID<mozIStorageVacuumParticipant>;
+ mozIStorageValueArray: nsJSIID<mozIStorageValueArray>;
+ nsIWinTaskSchedulerService: nsJSIID<nsIWinTaskSchedulerService>;
+ nsIFetchTelemetryDataCallback: nsJSIID<nsIFetchTelemetryDataCallback>;
+ nsITelemetry: nsJSIID<nsITelemetry>;
+ nsIDAPTelemetry: nsJSIID<nsIDAPTelemetry>;
+ nsIHttpServer: nsJSIID<nsIHttpServer>;
+ nsIHttpServerStoppedCallback: nsJSIID<nsIHttpServerStoppedCallback>;
+ nsIHttpServerIdentity: nsJSIID<nsIHttpServerIdentity>;
+ nsIHttpRequestHandler: nsJSIID<nsIHttpRequestHandler>;
+ nsIHttpRequest: nsJSIID<nsIHttpRequest>;
+ nsIHttpResponse: nsJSIID<nsIHttpResponse>;
+ nsIPageThumbsStorageService: nsJSIID<nsIPageThumbsStorageService>;
+ nsIProfileStartup: nsJSIID<nsIProfileStartup>;
+ nsIProfileMigrator: nsJSIID<nsIProfileMigrator>;
+ nsIProfileUnlocker: nsJSIID<nsIProfileUnlocker>;
+ nsIProfileLock: nsJSIID<nsIProfileLock>;
+ nsIToolkitProfile: nsJSIID<nsIToolkitProfile>;
+ nsIToolkitProfileService: nsJSIID<nsIToolkitProfileService, typeof nsIToolkitProfileService.downgradeUIFlags & typeof nsIToolkitProfileService.downgradeUIChoice & typeof nsIToolkitProfileService.profileManagerResult>;
+ nsIBounceTrackingProtection: nsJSIID<nsIBounceTrackingProtection>;
+ nsIContentBlockingAllowList: nsJSIID<nsIContentBlockingAllowList>;
+ nsIPartitioningExceptionListObserver: nsJSIID<nsIPartitioningExceptionListObserver>;
+ nsIPartitioningExceptionListService: nsJSIID<nsIPartitioningExceptionListService>;
+ nsIPurgeTrackerService: nsJSIID<nsIPurgeTrackerService>;
+ nsITrackingDBService: nsJSIID<nsITrackingDBService>;
+ nsIURLDecorationAnnotationsService: nsJSIID<nsIURLDecorationAnnotationsService>;
+ nsIURLQueryStringStripper: nsJSIID<nsIURLQueryStringStripper>;
+ nsIURLQueryStrippingListObserver: nsJSIID<nsIURLQueryStrippingListObserver>;
+ nsIURLQueryStrippingListService: nsJSIID<nsIURLQueryStrippingListService>;
+ nsIAsyncShutdownBlocker: nsJSIID<nsIAsyncShutdownBlocker>;
+ nsIAsyncShutdownClient: nsJSIID<nsIAsyncShutdownClient>;
+ nsIAsyncShutdownCompletionCallback: nsJSIID<nsIAsyncShutdownCompletionCallback>;
+ nsIAsyncShutdownBarrier: nsJSIID<nsIAsyncShutdownBarrier>;
+ nsIAsyncShutdownService: nsJSIID<nsIAsyncShutdownService>;
+ nsIBackgroundTasks: nsJSIID<nsIBackgroundTasks>;
+ nsIBackgroundTasksManager: nsJSIID<nsIBackgroundTasksManager>;
+ nsIBackgroundTasksRunner: nsJSIID<nsIBackgroundTasksRunner>;
+ nsIClearDataService: nsJSIID<nsIClearDataService>;
+ nsIClearDataCallback: nsJSIID<nsIClearDataCallback>;
+ nsIContentAnalysisAcknowledgement: nsJSIID<nsIContentAnalysisAcknowledgement, typeof nsIContentAnalysisAcknowledgement.Result & typeof nsIContentAnalysisAcknowledgement.FinalAction>;
+ nsIContentAnalysisResponse: nsJSIID<nsIContentAnalysisResponse, typeof nsIContentAnalysisResponse.Action>;
+ nsIClientDownloadResource: nsJSIID<nsIClientDownloadResource>;
+ nsIContentAnalysisRequest: nsJSIID<nsIContentAnalysisRequest, typeof nsIContentAnalysisRequest.AnalysisType & typeof nsIContentAnalysisRequest.OperationType>;
+ nsIContentAnalysisResult: nsJSIID<nsIContentAnalysisResult>;
+ nsIContentAnalysisCallback: nsJSIID<nsIContentAnalysisCallback>;
+ nsIContentAnalysis: nsJSIID<nsIContentAnalysis>;
+ nsIClickRule: nsJSIID<nsIClickRule, typeof nsIClickRule.RunContext>;
+ nsICookieBannerListService: nsJSIID<nsICookieBannerListService>;
+ nsICookieBannerRule: nsJSIID<nsICookieBannerRule>;
+ nsICookieBannerService: nsJSIID<nsICookieBannerService, typeof nsICookieBannerService.Modes>;
+ nsICookieRule: nsJSIID<nsICookieRule>;
+ nsICrashService: nsJSIID<nsICrashService>;
+ nsIFinalizationWitnessService: nsJSIID<nsIFinalizationWitnessService>;
+ nsIVisibleTab: nsJSIID<nsIVisibleTab>;
+ nsIBrowserWindowTracker: nsJSIID<nsIBrowserWindowTracker>;
+ nsIRegion: nsJSIID<nsIRegion>;
+ nsIProcessToolsService: nsJSIID<nsIProcessToolsService>;
+ nsIFingerprintingOverride: nsJSIID<nsIFingerprintingOverride>;
+ nsIFingerprintingWebCompatService: nsJSIID<nsIFingerprintingWebCompatService>;
+ nsIRFPService: nsJSIID<nsIRFPService>;
+ nsISearchSubmission: nsJSIID<nsISearchSubmission>;
+ nsISearchEngine: nsJSIID<nsISearchEngine>;
+ nsISearchParseSubmissionResult: nsJSIID<nsISearchParseSubmissionResult>;
+ nsISearchService: nsJSIID<nsISearchService>;
+ nsIToolkitShellService: nsJSIID<nsIToolkitShellService>;
+ nsIXULStore: nsJSIID<nsIXULStore>;
+ nsITransaction: nsJSIID<nsITransaction>;
+ nsITransactionManager: nsJSIID<nsITransactionManager>;
+ nsIInlineSpellChecker: nsJSIID<nsIInlineSpellChecker>;
+ nsIScriptableUnicodeConverter: nsJSIID<nsIScriptableUnicodeConverter>;
+ nsITextToSubURI: nsJSIID<nsITextToSubURI>;
+ nsIUpdateTimerManager: nsJSIID<nsIUpdateTimerManager>;
+ nsIUpdatePatch: nsJSIID<nsIUpdatePatch>;
+ nsIUpdate: nsJSIID<nsIUpdate>;
+ nsIUpdateCheckResult: nsJSIID<nsIUpdateCheckResult>;
+ nsIUpdateCheck: nsJSIID<nsIUpdateCheck>;
+ nsIUpdateChecker: nsJSIID<nsIUpdateChecker>;
+ nsIApplicationUpdateService: nsJSIID<nsIApplicationUpdateService>;
+ nsIUpdateProcessor: nsJSIID<nsIUpdateProcessor>;
+ nsIUpdateSyncManager: nsJSIID<nsIUpdateSyncManager>;
+ nsIUpdateManager: nsJSIID<nsIUpdateManager>;
+ nsIContentHandler: nsJSIID<nsIContentHandler>;
+ nsIDocumentLoader: nsJSIID<nsIDocumentLoader>;
+ nsITransfer: nsJSIID<nsITransfer>;
+ nsIURIContentListener: nsJSIID<nsIURIContentListener>;
+ nsIURILoader: nsJSIID<nsIURILoader>;
+ nsIWebProgress: nsJSIID<nsIWebProgress>;
+ nsIWebProgressListener: nsJSIID<nsIWebProgressListener>;
+ nsIWebProgressListener2: nsJSIID<nsIWebProgressListener2>;
+ nsIUrlClassifierBlockedChannel: nsJSIID<nsIUrlClassifierBlockedChannel>;
+ nsIChannelClassifierService: nsJSIID<nsIChannelClassifierService>;
+ nsIURIClassifierCallback: nsJSIID<nsIURIClassifierCallback>;
+ nsIURIClassifier: nsJSIID<nsIURIClassifier>;
+ nsIUrlClassifierExceptionListObserver: nsJSIID<nsIUrlClassifierExceptionListObserver>;
+ nsIUrlClassifierExceptionListService: nsJSIID<nsIUrlClassifierExceptionListService>;
+ nsIUrlClassifierFeature: nsJSIID<nsIUrlClassifierFeature, typeof nsIUrlClassifierFeature.listType & typeof nsIUrlClassifierFeature.URIType>;
+ nsIUrlClassifierFeatureResult: nsJSIID<nsIUrlClassifierFeatureResult>;
+ nsIUrlClassifierFeatureCallback: nsJSIID<nsIUrlClassifierFeatureCallback>;
+ IUrlClassifierUITelemetry: nsJSIID<IUrlClassifierUITelemetry>;
+ nsIUrlClassifierCallback: nsJSIID<nsIUrlClassifierCallback>;
+ nsIUrlClassifierUpdateObserver: nsJSIID<nsIUrlClassifierUpdateObserver>;
+ nsIUrlClassifierDBService: nsJSIID<nsIUrlClassifierDBService>;
+ nsIFullHashMatch: nsJSIID<nsIFullHashMatch>;
+ nsIUrlClassifierHashCompleterCallback: nsJSIID<nsIUrlClassifierHashCompleterCallback>;
+ nsIUrlClassifierHashCompleter: nsJSIID<nsIUrlClassifierHashCompleter>;
+ nsIUrlClassifierPositiveCacheEntry: nsJSIID<nsIUrlClassifierPositiveCacheEntry>;
+ nsIUrlClassifierCacheEntry: nsJSIID<nsIUrlClassifierCacheEntry>;
+ nsIUrlClassifierCacheInfo: nsJSIID<nsIUrlClassifierCacheInfo>;
+ nsIUrlClassifierGetCacheCallback: nsJSIID<nsIUrlClassifierGetCacheCallback>;
+ nsIUrlClassifierInfo: nsJSIID<nsIUrlClassifierInfo>;
+ nsIUrlClassifierPrefixSet: nsJSIID<nsIUrlClassifierPrefixSet>;
+ nsIUrlClassifierRemoteSettingsService: nsJSIID<nsIUrlClassifierRemoteSettingsService>;
+ nsIUrlClassifierStreamUpdater: nsJSIID<nsIUrlClassifierStreamUpdater>;
+ nsIUrlClassifierParseFindFullHashCallback: nsJSIID<nsIUrlClassifierParseFindFullHashCallback>;
+ nsIUrlClassifierUtils: nsJSIID<nsIUrlClassifierUtils>;
+ nsIUrlListManager: nsJSIID<nsIUrlListManager>;
+ nsIURLFormatter: nsJSIID<nsIURLFormatter>;
+ nsIUtilityProcessTest: nsJSIID<nsIUtilityProcessTest>;
+ nsIWebBrowserPersist: nsJSIID<nsIWebBrowserPersist>;
+ nsIWebBrowserPersistURIMap: nsJSIID<nsIWebBrowserPersistURIMap>;
+ nsIWebBrowserPersistDocument: nsJSIID<nsIWebBrowserPersistDocument>;
+ nsIWebBrowserPersistResourceVisitor: nsJSIID<nsIWebBrowserPersistResourceVisitor>;
+ nsIWebBrowserPersistWriteCompletion: nsJSIID<nsIWebBrowserPersistWriteCompletion>;
+ nsIWebBrowserPersistDocumentReceiver: nsJSIID<nsIWebBrowserPersistDocumentReceiver>;
+ nsIWebBrowser: nsJSIID<nsIWebBrowser>;
+ nsIWebBrowserChrome: nsJSIID<nsIWebBrowserChrome>;
+ nsIWebBrowserChromeFocus: nsJSIID<nsIWebBrowserChromeFocus>;
+ nsIWebBrowserPrint: nsJSIID<nsIWebBrowserPrint>;
+ mozIExtensionStorageArea: nsJSIID<mozIExtensionStorageArea>;
+ mozIConfigurableExtensionStorageArea: nsJSIID<mozIConfigurableExtensionStorageArea>;
+ mozISyncedExtensionStorageArea: nsJSIID<mozISyncedExtensionStorageArea>;
+ mozIExtensionStorageListener: nsJSIID<mozIExtensionStorageListener>;
+ mozIExtensionStorageCallback: nsJSIID<mozIExtensionStorageCallback>;
+ extIWebNavigation: nsJSIID<extIWebNavigation>;
+ mozIExtensionServiceWorkerInfo: nsJSIID<mozIExtensionServiceWorkerInfo>;
+ mozIExtensionListenerCallOptions: nsJSIID<mozIExtensionListenerCallOptions, typeof mozIExtensionListenerCallOptions.APIObjectType & typeof mozIExtensionListenerCallOptions.CallbackType>;
+ mozIExtensionEventListener: nsJSIID<mozIExtensionEventListener>;
+ mozIExtensionAPIRequest: nsJSIID<mozIExtensionAPIRequest, typeof mozIExtensionAPIRequest.RequestType>;
+ mozIExtensionAPIRequestResult: nsJSIID<mozIExtensionAPIRequestResult, typeof mozIExtensionAPIRequestResult.ResultType>;
+ mozIExtensionAPIRequestHandler: nsJSIID<mozIExtensionAPIRequestHandler>;
+ mozIExtensionProcessScript: nsJSIID<mozIExtensionProcessScript>;
+ nsIWebVTTListener: nsJSIID<nsIWebVTTListener>;
+ nsIWebVTTParserWrapper: nsJSIID<nsIWebVTTParserWrapper>;
+ nsIBaseWindow: nsJSIID<nsIBaseWindow>;
+ nsIBidiKeyboard: nsJSIID<nsIBidiKeyboard>;
+ nsIAsyncSetClipboardData: nsJSIID<nsIAsyncSetClipboardData>;
+ nsIAsyncClipboardRequestCallback: nsJSIID<nsIAsyncClipboardRequestCallback>;
+ nsIAsyncGetClipboardData: nsJSIID<nsIAsyncGetClipboardData>;
+ nsIAsyncClipboardGetCallback: nsJSIID<nsIAsyncClipboardGetCallback>;
+ nsIClipboard: nsJSIID<nsIClipboard>;
+ nsIClipboardHelper: nsJSIID<nsIClipboardHelper, typeof nsIClipboardHelper.SensitiveData>;
+ nsIClipboardOwner: nsJSIID<nsIClipboardOwner>;
+ nsIColorPickerShownCallback: nsJSIID<nsIColorPickerShownCallback>;
+ nsIColorPicker: nsJSIID<nsIColorPicker>;
+ nsIDisplayInfo: nsJSIID<nsIDisplayInfo>;
+ nsIDragService: nsJSIID<nsIDragService>;
+ nsIDragSession: nsJSIID<nsIDragSession>;
+ nsIFilePicker: nsJSIID<nsIFilePicker, typeof nsIFilePicker.Mode & typeof nsIFilePicker.ResultCode & typeof nsIFilePicker.CaptureTarget>;
+ nsIFilePickerShownCallback: nsJSIID<nsIFilePickerShownCallback>;
+ nsIFormatConverter: nsJSIID<nsIFormatConverter>;
+ nsIGfxInfo: nsJSIID<nsIGfxInfo, typeof nsIGfxInfo.FontVisibilityDeviceDetermination>;
+ nsIGfxInfoDebug: nsJSIID<nsIGfxInfoDebug>;
+ nsIJumpListBuilder: nsJSIID<nsIJumpListBuilder>;
+ nsILegacyJumpListCommittedCallback: nsJSIID<nsILegacyJumpListCommittedCallback>;
+ nsILegacyJumpListBuilder: nsJSIID<nsILegacyJumpListBuilder>;
+ nsILegacyJumpListItem: nsJSIID<nsILegacyJumpListItem>;
+ nsILegacyJumpListSeparator: nsJSIID<nsILegacyJumpListSeparator>;
+ nsILegacyJumpListLink: nsJSIID<nsILegacyJumpListLink>;
+ nsILegacyJumpListShortcut: nsJSIID<nsILegacyJumpListShortcut>;
+ nsIPaper: nsJSIID<nsIPaper>;
+ nsIPaperMargin: nsJSIID<nsIPaperMargin>;
+ nsIPrintDialogService: nsJSIID<nsIPrintDialogService>;
+ nsIPrintSettings: nsJSIID<nsIPrintSettings, typeof nsIPrintSettings.OutputDestinationType>;
+ nsIPrintSettingsService: nsJSIID<nsIPrintSettingsService>;
+ nsIPrinterInfo: nsJSIID<nsIPrinterInfo>;
+ nsIPrinter: nsJSIID<nsIPrinter>;
+ nsIPrinterList: nsJSIID<nsIPrinterList>;
+ nsIScreen: nsJSIID<nsIScreen>;
+ nsIScreenManager: nsJSIID<nsIScreenManager>;
+ nsISharePicker: nsJSIID<nsISharePicker>;
+ nsISound: nsJSIID<nsISound>;
+ nsISystemStatusBar: nsJSIID<nsISystemStatusBar>;
+ nsITaskbarOverlayIconController: nsJSIID<nsITaskbarOverlayIconController>;
+ nsITaskbarPreview: nsJSIID<nsITaskbarPreview>;
+ nsITaskbarPreviewButton: nsJSIID<nsITaskbarPreviewButton>;
+ nsITaskbarPreviewCallback: nsJSIID<nsITaskbarPreviewCallback>;
+ nsITaskbarPreviewController: nsJSIID<nsITaskbarPreviewController>;
+ nsITaskbarProgress: nsJSIID<nsITaskbarProgress>;
+ nsITaskbarTabPreview: nsJSIID<nsITaskbarTabPreview>;
+ nsITaskbarWindowPreview: nsJSIID<nsITaskbarWindowPreview>;
+ nsIFlavorDataProvider: nsJSIID<nsIFlavorDataProvider>;
+ nsITransferable: nsJSIID<nsITransferable>;
+ nsIUserIdleService: nsJSIID<nsIUserIdleService>;
+ nsIUserIdleServiceInternal: nsJSIID<nsIUserIdleServiceInternal>;
+ nsIWinTaskbar: nsJSIID<nsIWinTaskbar>;
+ nsIWindowsUIUtils: nsJSIID<nsIWindowsUIUtils>;
+ nsIWindowCreator: nsJSIID<nsIWindowCreator>;
+ nsIWindowProvider: nsJSIID<nsIWindowProvider>;
+ nsIWindowsPackageManager: nsJSIID<nsIWindowsPackageManager>;
+ nsIDialogParamBlock: nsJSIID<nsIDialogParamBlock>;
+ nsIOpenWindowInfo: nsJSIID<nsIOpenWindowInfo>;
+ nsIPromptCollection: nsJSIID<nsIPromptCollection>;
+ nsIPromptFactory: nsJSIID<nsIPromptFactory>;
+ nsIPromptService: nsJSIID<nsIPromptService>;
+ nsIWindowWatcher: nsJSIID<nsIWindowWatcher>;
+ nsIScriptableOK: nsJSIID<nsIScriptableOK>;
+ nsIScriptableWithNotXPCOM: nsJSIID<nsIScriptableWithNotXPCOM>;
+ nsITabUnloader: nsJSIID<nsITabUnloader>;
+ nsIAvailableMemoryWatcherBase: nsJSIID<nsIAvailableMemoryWatcherBase>;
+ nsIConsoleListener: nsJSIID<nsIConsoleListener>;
+ nsIConsoleMessage: nsJSIID<nsIConsoleMessage>;
+ nsIConsoleService: nsJSIID<nsIConsoleService, typeof nsIConsoleService.OutputMode>;
+ nsICycleCollectorHandler: nsJSIID<nsICycleCollectorHandler>;
+ nsICycleCollectorLogSink: nsJSIID<nsICycleCollectorLogSink>;
+ nsICycleCollectorListener: nsJSIID<nsICycleCollectorListener>;
+ nsIDebug2: nsJSIID<nsIDebug2>;
+ nsIStackFrame: nsJSIID<nsIStackFrame>;
+ nsIException: nsJSIID<nsIException>;
+ nsIInterfaceRequestor: nsJSIID<nsIInterfaceRequestor>;
+ nsIFinishDumpingCallback: nsJSIID<nsIFinishDumpingCallback>;
+ nsIDumpGCAndCCLogsCallback: nsJSIID<nsIDumpGCAndCCLogsCallback>;
+ nsIMemoryInfoDumper: nsJSIID<nsIMemoryInfoDumper>;
+ nsIHandleReportCallback: nsJSIID<nsIHandleReportCallback>;
+ nsIMemoryReporter: nsJSIID<nsIMemoryReporter>;
+ nsIFinishReportingCallback: nsJSIID<nsIFinishReportingCallback>;
+ nsIHeapAllocatedCallback: nsJSIID<nsIHeapAllocatedCallback>;
+ nsIMemoryReporterManager: nsJSIID<nsIMemoryReporterManager>;
+ nsISupports: nsJSIID<nsISupports>;
+ nsIUUIDGenerator: nsJSIID<nsIUUIDGenerator>;
+ nsIVersionComparator: nsJSIID<nsIVersionComparator>;
+ nsIWeakReference: nsJSIID<nsIWeakReference>;
+ nsISupportsWeakReference: nsJSIID<nsISupportsWeakReference>;
+ nsICategoryEntry: nsJSIID<nsICategoryEntry>;
+ nsICategoryManager: nsJSIID<nsICategoryManager>;
+ nsIClassInfo: nsJSIID<nsIClassInfo>;
+ nsIComponentManager: nsJSIID<nsIComponentManager>;
+ nsIComponentRegistrar: nsJSIID<nsIComponentRegistrar>;
+ nsIFactory: nsJSIID<nsIFactory>;
+ nsIServiceManager: nsJSIID<nsIServiceManager>;
+ nsIArray: nsJSIID<nsIArray>;
+ nsIArrayExtensions: nsJSIID<nsIArrayExtensions>;
+ nsIINIParser: nsJSIID<nsIINIParser>;
+ nsIINIParserWriter: nsJSIID<nsIINIParserWriter>;
+ nsIINIParserFactory: nsJSIID<nsIINIParserFactory>;
+ nsIMutableArray: nsJSIID<nsIMutableArray>;
+ nsIObserver: nsJSIID<nsIObserver>;
+ nsIObserverService: nsJSIID<nsIObserverService>;
+ nsIPropertyElement: nsJSIID<nsIPropertyElement>;
+ nsIPersistentProperties: nsJSIID<nsIPersistentProperties>;
+ nsIProperties: nsJSIID<nsIProperties>;
+ nsIProperty: nsJSIID<nsIProperty>;
+ nsIPropertyBag: nsJSIID<nsIPropertyBag>;
+ nsIPropertyBag2: nsJSIID<nsIPropertyBag2>;
+ nsISerializable: nsJSIID<nsISerializable>;
+ nsIJSEnumerator: nsJSIID<nsIJSEnumerator>;
+ nsISimpleEnumeratorBase: nsJSIID<nsISimpleEnumeratorBase>;
+ nsISimpleEnumerator: nsJSIID<nsISimpleEnumerator>;
+ nsIStringEnumeratorBase: nsJSIID<nsIStringEnumeratorBase>;
+ nsIStringEnumerator: nsJSIID<nsIStringEnumerator>;
+ nsIUTF8StringEnumerator: nsJSIID<nsIUTF8StringEnumerator>;
+ nsIOutputIterator: nsJSIID<nsIOutputIterator>;
+ nsIInputIterator: nsJSIID<nsIInputIterator>;
+ nsIForwardIterator: nsJSIID<nsIForwardIterator>;
+ nsIBidirectionalIterator: nsJSIID<nsIBidirectionalIterator>;
+ nsIRandomAccessIterator: nsJSIID<nsIRandomAccessIterator>;
+ nsISupportsPrimitive: nsJSIID<nsISupportsPrimitive>;
+ nsISupportsID: nsJSIID<nsISupportsID>;
+ nsISupportsCString: nsJSIID<nsISupportsCString>;
+ nsISupportsString: nsJSIID<nsISupportsString>;
+ nsISupportsPRBool: nsJSIID<nsISupportsPRBool>;
+ nsISupportsPRUint8: nsJSIID<nsISupportsPRUint8>;
+ nsISupportsPRUint16: nsJSIID<nsISupportsPRUint16>;
+ nsISupportsPRUint32: nsJSIID<nsISupportsPRUint32>;
+ nsISupportsPRUint64: nsJSIID<nsISupportsPRUint64>;
+ nsISupportsPRTime: nsJSIID<nsISupportsPRTime>;
+ nsISupportsChar: nsJSIID<nsISupportsChar>;
+ nsISupportsPRInt16: nsJSIID<nsISupportsPRInt16>;
+ nsISupportsPRInt32: nsJSIID<nsISupportsPRInt32>;
+ nsISupportsPRInt64: nsJSIID<nsISupportsPRInt64>;
+ nsISupportsFloat: nsJSIID<nsISupportsFloat>;
+ nsISupportsDouble: nsJSIID<nsISupportsDouble>;
+ nsISupportsInterfacePointer: nsJSIID<nsISupportsInterfacePointer>;
+ nsIVariant: nsJSIID<nsIVariant>;
+ nsIWritableVariant: nsJSIID<nsIWritableVariant>;
+ nsIWindowsRegKey: nsJSIID<nsIWindowsRegKey>;
+ nsIWritablePropertyBag: nsJSIID<nsIWritablePropertyBag>;
+ nsIWritablePropertyBag2: nsJSIID<nsIWritablePropertyBag2>;
+ nsIAsyncInputStream: nsJSIID<nsIAsyncInputStream>;
+ nsIInputStreamCallback: nsJSIID<nsIInputStreamCallback>;
+ nsIAsyncOutputStream: nsJSIID<nsIAsyncOutputStream>;
+ nsIOutputStreamCallback: nsJSIID<nsIOutputStreamCallback>;
+ nsIBinaryInputStream: nsJSIID<nsIBinaryInputStream>;
+ nsIBinaryOutputStream: nsJSIID<nsIBinaryOutputStream>;
+ nsICloneableInputStream: nsJSIID<nsICloneableInputStream>;
+ nsICloneableInputStreamWithRange: nsJSIID<nsICloneableInputStreamWithRange>;
+ nsIConverterInputStream: nsJSIID<nsIConverterInputStream>;
+ nsIConverterOutputStream: nsJSIID<nsIConverterOutputStream>;
+ nsIDirectoryEnumerator: nsJSIID<nsIDirectoryEnumerator>;
+ nsIDirectoryServiceProvider: nsJSIID<nsIDirectoryServiceProvider>;
+ nsIDirectoryServiceProvider2: nsJSIID<nsIDirectoryServiceProvider2>;
+ nsIDirectoryService: nsJSIID<nsIDirectoryService>;
+ nsIFile: nsJSIID<nsIFile>;
+ nsIIOUtil: nsJSIID<nsIIOUtil>;
+ nsIInputStream: nsJSIID<nsIInputStream>;
+ nsIInputStreamPriority: nsJSIID<nsIInputStreamPriority>;
+ nsIInputStreamTee: nsJSIID<nsIInputStreamTee>;
+ nsILineInputStream: nsJSIID<nsILineInputStream>;
+ nsILocalFileWin: nsJSIID<nsILocalFileWin>;
+ nsIMultiplexInputStream: nsJSIID<nsIMultiplexInputStream>;
+ nsIObjectInputStream: nsJSIID<nsIObjectInputStream>;
+ nsIObjectOutputStream: nsJSIID<nsIObjectOutputStream>;
+ nsIOutputStream: nsJSIID<nsIOutputStream>;
+ nsIPipe: nsJSIID<nsIPipe>;
+ nsISearchableInputStream: nsJSIID<nsISearchableInputStream>;
+ nsIRandomAccessStream: nsJSIID<nsIRandomAccessStream>;
+ nsISafeOutputStream: nsJSIID<nsISafeOutputStream>;
+ nsIScriptableBase64Encoder: nsJSIID<nsIScriptableBase64Encoder>;
+ nsIScriptableInputStream: nsJSIID<nsIScriptableInputStream>;
+ nsISeekableStream: nsJSIID<nsISeekableStream>;
+ nsIStorageStream: nsJSIID<nsIStorageStream>;
+ nsIStreamBufferAccess: nsJSIID<nsIStreamBufferAccess>;
+ nsIStringInputStream: nsJSIID<nsIStringInputStream>;
+ nsITellableStream: nsJSIID<nsITellableStream>;
+ nsIUnicharInputStream: nsJSIID<nsIUnicharInputStream>;
+ nsIUnicharLineInputStream: nsJSIID<nsIUnicharLineInputStream>;
+ nsIUnicharOutputStream: nsJSIID<nsIUnicharOutputStream>;
+ nsIBlocklistService: nsJSIID<nsIBlocklistService>;
+ nsICrashReporter: nsJSIID<nsICrashReporter>;
+ nsIDeviceSensorData: nsJSIID<nsIDeviceSensorData>;
+ nsIDeviceSensors: nsJSIID<nsIDeviceSensors>;
+ nsIGIOMimeApp: nsJSIID<nsIGIOMimeApp>;
+ nsIGIOService: nsJSIID<nsIGIOService>;
+ nsIGSettingsCollection: nsJSIID<nsIGSettingsCollection>;
+ nsIGSettingsService: nsJSIID<nsIGSettingsService>;
+ nsIGeolocationUpdate: nsJSIID<nsIGeolocationUpdate>;
+ nsIGeolocationProvider: nsJSIID<nsIGeolocationProvider>;
+ nsIHapticFeedback: nsJSIID<nsIHapticFeedback>;
+ nsIPlatformInfo: nsJSIID<nsIPlatformInfo>;
+ nsISystemInfo: nsJSIID<nsISystemInfo>;
+ nsIXULAppInfo: nsJSIID<nsIXULAppInfo>;
+ nsIXULRuntime: nsJSIID<nsIXULRuntime, typeof nsIXULRuntime.ExperimentStatus & typeof nsIXULRuntime.ContentWin32kLockdownState & typeof nsIXULRuntime.FissionDecisionStatus>;
+ nsIEnvironment: nsJSIID<nsIEnvironment>;
+ nsIEventTarget: nsJSIID<nsIEventTarget>;
+ nsINamed: nsJSIID<nsINamed>;
+ nsIProcess: nsJSIID<nsIProcess>;
+ nsIRunnable: nsJSIID<nsIRunnable>;
+ nsIRunnablePriority: nsJSIID<nsIRunnablePriority>;
+ nsISerialEventTarget: nsJSIID<nsISerialEventTarget>;
+ nsISupportsPriority: nsJSIID<nsISupportsPriority>;
+ nsIThread: nsJSIID<nsIThread, typeof nsIThread.QoSPriority>;
+ nsIThreadInternal: nsJSIID<nsIThreadInternal>;
+ nsINestedEventLoopCondition: nsJSIID<nsINestedEventLoopCondition>;
+ nsIThreadManager: nsJSIID<nsIThreadManager>;
+ nsIThreadShutdown: nsJSIID<nsIThreadShutdown>;
+ nsITimerCallback: nsJSIID<nsITimerCallback>;
+ nsITimer: nsJSIID<nsITimer>;
+ nsITimerManager: nsJSIID<nsITimerManager>;
+ mozIJSSubScriptLoader: nsJSIID<mozIJSSubScriptLoader>;
+ xpcIJSWeakReference: nsJSIID<xpcIJSWeakReference>;
+ nsIXPCComponents_Classes: nsJSIID<nsIXPCComponents_Classes>;
+ nsIXPCComponents_Results: nsJSIID<nsIXPCComponents_Results>;
+ nsIXPCComponents_ID: nsJSIID<nsIXPCComponents_ID>;
+ nsIXPCComponents_Exception: nsJSIID<nsIXPCComponents_Exception>;
+ nsIXPCComponents_Constructor: nsJSIID<nsIXPCComponents_Constructor>;
+ nsIXPCComponents_utils_Sandbox: nsJSIID<nsIXPCComponents_utils_Sandbox>;
+ nsIScheduledGCCallback: nsJSIID<nsIScheduledGCCallback>;
+ nsIXPCComponents_Utils: nsJSIID<nsIXPCComponents_Utils>;
+ nsIXPCComponents: nsJSIID<nsIXPCComponents>;
+ nsIXPCTestObjectReadOnly: nsJSIID<nsIXPCTestObjectReadOnly>;
+ nsIXPCTestObjectReadWrite: nsJSIID<nsIXPCTestObjectReadWrite>;
+ nsIXPCTestBug809674: nsJSIID<nsIXPCTestBug809674>;
+ nsIXPCTestCEnums: nsJSIID<nsIXPCTestCEnums, typeof nsIXPCTestCEnums.testFlagsExplicit & typeof nsIXPCTestCEnums.testFlagsImplicit>;
+ nsIXPCTestInterfaceA: nsJSIID<nsIXPCTestInterfaceA>;
+ nsIXPCTestInterfaceB: nsJSIID<nsIXPCTestInterfaceB>;
+ nsIXPCTestInterfaceC: nsJSIID<nsIXPCTestInterfaceC>;
+ nsIXPCTestParams: nsJSIID<nsIXPCTestParams>;
+ nsIXPCTestReturnCodeParent: nsJSIID<nsIXPCTestReturnCodeParent>;
+ nsIXPCTestReturnCodeChild: nsJSIID<nsIXPCTestReturnCodeChild>;
+ nsIXPCTestFunctionInterface: nsJSIID<nsIXPCTestFunctionInterface>;
+ nsIXPCTestUtils: nsJSIID<nsIXPCTestUtils>;
+ nsIBrowserController: nsJSIID<nsIBrowserController>;
+ nsIController: nsJSIID<nsIController>;
+ nsICommandController: nsJSIID<nsICommandController>;
+ nsIControllers: nsJSIID<nsIControllers>;
+ nsINativeAppSupport: nsJSIID<nsINativeAppSupport>;
+ nsIWinAppHelper: nsJSIID<nsIWinAppHelper>;
+ nsIXREDirProvider: nsJSIID<nsIXREDirProvider>;
+ nsIZipWriter: nsJSIID<nsIZipWriter>;
+}
+
+} // global
+
+// Typedefs from xpidl.
+type AccessibleTextBoundary = i32;
+type AppTrustedRoot = u32;
+type COSEAlgorithmIdentifier = i32;
+type CSPDirective = nsIContentSecurityPolicy.CSPDirective;
+type DOMHighResTimeStamp = double;
+type DOMTimeStamp = u64;
+type EpochTimeStamp = u64;
+type PRTime = i64;
+type PivotMoveReason = i16;
+type PredictorLearnReason = u32;
+type PredictorPredictReason = u32;
+type char16_t = u16;
+type nsBitsErrorAction = i32;
+type nsBitsErrorStage = i32;
+type nsBitsErrorType = i32;
+type nsContentPolicyType = nsIContentPolicy.nsContentPolicyType;
+type nsCookieAccess = i32;
+type nsCookiePolicy = i32;
+type nsCookieStatus = i32;
+type nsHandlerInfoAction = i32;
+type nsLoadFlags = u32;
+type nsProxyUsage = i32;
+type nsSecurityFlags = u32;
+type nsServerSocketFlag = u32;
+type nsSuspendedTypes = u32;
+type nsTaskbarProgressState = i32;
+type nsViewID = u64;
+type nsresult = u32;
+
+/**
+ * Gecko XPCOM builtins and utility types.
+ */
+
+/**
+ * Generic IDs are created by most code which passes a nsID to js.
+ * https://searchfox.org/mozilla-central/source/js/xpconnect/src/XPCJSID.cpp#24
+ */
+interface nsID<uuid = string> {
+ readonly number: uuid;
+}
+
+/**
+ * In addition to nsID, interface IIDs support instanceof type guards,
+ * and expose constants defined on the class, including variants from enums.
+ * https://searchfox.org/mozilla-central/source/js/xpconnect/src/XPCJSID.cpp#44
+ */
+type nsJSIID<iface, enums = {}> = nsID & Constants<iface> & enums & {
+ new (_: never): void;
+ prototype: iface;
+}
+
+/** A union of all known IIDs. */
+type nsIID = nsIXPCComponents_Interfaces[keyof nsIXPCComponents_Interfaces];
+
+/** A generic to resolve QueryInterface return type from a nsID (or nsIID). */
+export type nsQIResult<iid> = iid extends { prototype: infer U } ? U : never;
+
+/** XPCOM inout param is passed in as a js object with a value property. */
+type InOutParam<T> = { value: T };
+
+/** XPCOM out param is written to the passed in object's value property. */
+type OutParam<T> = { value?: T };
+
+/** A named type for interfaces to inherit from enums. */
+type Enums<enums> = enums;
+
+/** Callable accepts either form of a [function] interface. */
+type Callable<iface> = iface | Extract<iface[keyof iface], Function>
+
+/** Picks only const number properties from T. */
+type Constants<T> = { [K in keyof T as IfConst<K, T[K]>]: T[K] };
+
+/** Resolves only for keys K whose corresponding type T is a narrow number. */
+type IfConst<K, T> = T extends number ? (number extends T ? never : K) : never;
+
+declare global {
+ // Until we have [ChromeOnly] webidl.
+ interface BrowsingContext {}
+ interface ContentFrameMessageManager {}
+ interface DOMRequest {}
+ interface FrameLoader {}
+ interface JSProcessActorChild {}
+ interface JSProcessActorParent {}
+ interface TreeColumn {}
+ interface WebExtensionContentScript {}
+ interface WebExtensionPolicy {}
+ interface WindowGlobalParent {}
+ interface WindowContext {}
+ interface XULTreeElement {}
+}
+
+// Non-scriptable interfaces referenced from scriptable ones.
+interface nsIAsyncVerifyRedirectReadyCallback {}
+interface nsICRLiteTimestamp {}
+interface nsIInputAvailableCallback {}
+interface nsIScriptElement {}
+interface nsIThreadObserver {}
+interface nsIUDPSocketSyncListener {}
+interface nsIWebAuthnRegisterArgs {}
+interface nsIWebAuthnRegisterPromise {}
+interface nsIWebAuthnSignArgs {}
+interface nsIWebAuthnSignPromise {}
+interface nsIXPCScriptable {}
+
+// Typedefs useful as a quick reference in method signatures.
+type double = number;
+type float = number;
+type i16 = number;
+type i32 = number;
+type i64 = number;
+type u16 = number;
+type u32 = number;
+type u64 = number;
+type u8 = number;
diff --git a/tools/@types/package.json b/tools/@types/package.json
new file mode 100644
index 0000000000..9c702b147d
--- /dev/null
+++ b/tools/@types/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "@types/gecko",
+ "version": "1.0.0",
+ "description": "TypeScript definitions for gecko dom and xpcom.",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/mozilla/gecko-dev.git"
+ },
+ "keywords": [
+ "dom",
+ "gecko",
+ "mozilla",
+ "types",
+ "typescript",
+ "webidl",
+ "xpcom"
+ ],
+ "author": "Tomislav Jovanovic",
+ "license": "MPL-2.0",
+ "types": "./index.d.ts",
+ "bugs": {
+ "url": "https://bugzilla.mozilla.org/enter_bug.cgi?product=Developer+Infrastructure&component=Lint+and+Formatting"
+ },
+ "homepage": "https://firefox-source-docs.mozilla.org/code-quality/",
+ "private": true
+}
diff --git a/tools/crashreporter/injector/moz.build b/tools/crashreporter/injector/moz.build
index d16300fbfb..534177b77e 100644
--- a/tools/crashreporter/injector/moz.build
+++ b/tools/crashreporter/injector/moz.build
@@ -19,9 +19,14 @@ UNIFIED_SOURCES += [
"/toolkit/crashreporter/breakpad-client/linux/minidump_writer/linux_ptrace_dumper.cc",
"/toolkit/crashreporter/breakpad-client/linux/minidump_writer/minidump_writer.cc",
"/toolkit/crashreporter/breakpad-client/minidump_file_writer.cc",
+ "/toolkit/crashreporter/linux_utils.cc",
"injector.cc",
]
+LOCAL_INCLUDES += [
+ "/toolkit/crashreporter/",
+]
+
USE_LIBS += [
"breakpad_common_s",
"breakpad_linux_common_s",
diff --git a/tools/esmify/is-esmified.js b/tools/esmify/is-esmified.js
index 872b4cd877..978e804f4b 100644
--- a/tools/esmify/is-esmified.js
+++ b/tools/esmify/is-esmified.js
@@ -34,7 +34,7 @@ function generateESMURIMap(jsm_map) {
function isESMifiedSlow(resourceURI) {
if (!(resourceURI in uri_map)) {
- console.log(`WARNING: Unknown module: ${resourceURI}`);
+ console.warn(`WARNING: Unknown module: ${resourceURI}`);
return { result: false, jsms: [] };
}
diff --git a/tools/esmify/map.json b/tools/esmify/map.json
index 14491bdb07..04a790d406 100644
--- a/tools/esmify/map.json
+++ b/tools/esmify/map.json
@@ -470,8 +470,6 @@
"resource://gre/modules/BookmarkHTMLUtils.jsm": "toolkit/components/places/BookmarkHTMLUtils.jsm",
"resource://gre/modules/BookmarkJSONUtils.jsm": "toolkit/components/places/BookmarkJSONUtils.jsm",
"resource://gre/modules/Bookmarks.jsm": "toolkit/components/places/Bookmarks.jsm",
- "resource://gre/modules/BrowserElementParent.jsm": "dom/browser-element/BrowserElementParent.jsm",
- "resource://gre/modules/BrowserElementPromptService.jsm": "dom/browser-element/BrowserElementPromptService.jsm",
"resource://gre/modules/BrowserTelemetryUtils.jsm": "toolkit/modules/BrowserTelemetryUtils.jsm",
"resource://gre/modules/BrowserUtils.jsm": "toolkit/modules/BrowserUtils.jsm",
"resource://gre/modules/CSV.js": "toolkit/components/passwordmgr/CSV.js",
diff --git a/tools/esmify/utils.js b/tools/esmify/utils.js
index 801aab62af..386d4d6673 100644
--- a/tools/esmify/utils.js
+++ b/tools/esmify/utils.js
@@ -8,7 +8,7 @@
function warnForPath(inputFile, path, message) {
const loc = path.node.loc;
- console.log(
+ console.warn(
`WARNING: ${inputFile}:${loc.start.line}:${loc.start.column} : ${message}`
);
}
diff --git a/tools/fuzzing/ipc/IPCFuzzController.cpp b/tools/fuzzing/ipc/IPCFuzzController.cpp
index 54856e9f2c..7eee9102c0 100644
--- a/tools/fuzzing/ipc/IPCFuzzController.cpp
+++ b/tools/fuzzing/ipc/IPCFuzzController.cpp
@@ -895,14 +895,12 @@ NS_IMETHODIMP IPCFuzzController::IPCFuzzLoop::Run() {
uint8_t portIndex = controlData[0];
uint8_t actorIndex = controlData[1];
uint16_t typeOffset = *(uint16_t*)(&controlData[2]);
- bool isSync = controlData[4] > 127;
uint8_t portInstanceIndex = controlData[5];
UniquePtr<IPC::Message> msg(new IPC::Message(ipcMsgData, ipcMsgLen));
if (preserveHeader) {
isConstructor = msg->is_constructor();
- isSync = msg->is_sync();
msgType = msg->header()->type;
if (!msgType) {
@@ -941,7 +939,7 @@ NS_IMETHODIMP IPCFuzzController::IPCFuzzLoop::Run() {
msg->header()->flags.SetConstructor();
}
- if (!isConstructor && isSync) {
+ if (IPC::IPCMessageTypeIsSync(msgType)) {
MOZ_FUZZING_NYX_DEBUG("INFO: Sending sync message...\n");
msg->header()->flags.SetSync();
}
diff --git a/tools/lint/cpp/mingw-capitalization.py b/tools/lint/cpp/mingw-capitalization.py
index b5a4b07c6a..04980494a9 100644
--- a/tools/lint/cpp/mingw-capitalization.py
+++ b/tools/lint/cpp/mingw-capitalization.py
@@ -18,7 +18,7 @@ class MinGWCapitalization(LineType):
super(MinGWCapitalization, self).__init__(*args, **kwargs)
with open(HEADERS_FILE, "r") as fh:
self.headers = fh.read().strip().splitlines()
- self.regex = re.compile("^#include\s*<(" + "|".join(self.headers) + ")>")
+ self.regex = re.compile(r"^#include\s*<(" + "|".join(self.headers) + ")>")
def condition(self, payload, line, config):
if not line.startswith("#include"):
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/browser-test.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/browser-test.js
index 08747a3f88..f21cd8d15a 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/browser-test.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/browser-test.js
@@ -57,6 +57,19 @@ module.exports = {
waitForFocus: false,
},
+ overrides: [
+ {
+ // Some directories have multiple kinds of tests, and some rules
+ // don't work well for plain mochitests, so disable those.
+ files: ["*.html", "*.xhtml"],
+ // plain/chrome mochitests don't automatically include Assert, so
+ // autofixing `ok()` to Assert.something is bad.
+ rules: {
+ "mozilla/no-comparison-or-assignment-inside-ok": "off",
+ },
+ },
+ ],
+
plugins: ["mozilla", "@microsoft/sdl"],
rules: {
@@ -66,6 +79,7 @@ module.exports = {
{
exceptions: [
"^http:\\/\\/mochi\\.test?.*",
+ "^http:\\/\\/mochi\\.xorigin-test?.*",
"^http:\\/\\/localhost?.*",
"^http:\\/\\/127\\.0\\.0\\.1?.*",
// Exempt xmlns urls
@@ -83,6 +97,7 @@ module.exports = {
"mozilla/mark-test-function-used": "error",
"mozilla/no-addtask-setup": "error",
"mozilla/no-arbitrary-setTimeout": "error",
+ "mozilla/no-comparison-or-assignment-inside-ok": "error",
"mozilla/no-redeclare-with-import-autofix": [
"error",
{ errorForNonImports: false },
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/chrome-test.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/chrome-test.js
index 3b5bbc06e2..a236118909 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/chrome-test.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/chrome-test.js
@@ -39,6 +39,7 @@ module.exports = {
{
exceptions: [
"^http:\\/\\/mochi\\.test?.*",
+ "^http:\\/\\/mochi\\.xorigin-test?.*",
"^http:\\/\\/localhost?.*",
"^http:\\/\\/127\\.0\\.0\\.1?.*",
// Exempt xmlns urls
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/general-test.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/general-test.js
new file mode 100644
index 0000000000..2ed45ff621
--- /dev/null
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/general-test.js
@@ -0,0 +1,17 @@
+// Parent config file for all xpcshell files.
+"use strict";
+
+module.exports = {
+ rules: {
+ "mozilla/import-headjs-globals": "error",
+ "mozilla/mark-test-function-used": "error",
+ "mozilla/no-arbitrary-setTimeout": "error",
+
+ // Bug 1883707 - Turn off no-console in tests at the moment.
+ "no-console": "off",
+ // Turn off no-unsanitized for tests, as we do want to be able to use
+ // these for testing.
+ "no-unsanitized/method": "off",
+ "no-unsanitized/property": "off",
+ },
+};
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js
index db7a0dc731..c4d28594b5 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/recommended.js
@@ -18,6 +18,14 @@
* require-atomic-updates - bug 1551829.
* - This generates too many false positives that are not easy to work
* around, and false positives seem to be inherent in the rule.
+ * no-inner-declarations - bug 1487642.
+ * - Would be interested if this could apply to just vars, but at the moment
+ * it doesn't.
+ * max-depth
+ * - Don't enforce the maximum depth that blocks can be nested. The
+ * complexity rule is a better rule to check this.
+ * no-useless-escape - bug 1881262.
+ * - This doesn't reveal any actual errors, and is a lot of work to address.
*/
module.exports = {
env: {
@@ -42,7 +50,7 @@ module.exports = {
// environment for them.
env: {
browser: false,
- "mozilla/jsm": true,
+ "mozilla/sysmjs": true,
},
files: ["**/*.sys.mjs", "**/*.jsm"],
rules: {
@@ -149,10 +157,6 @@ module.exports = {
// Functions must always return something or nothing
"consistent-return": "error",
- // XXX This rule line should be removed to enable it. See bug 1487642.
- // Require super() calls in constructors
- "constructor-super": "off",
-
// Require braces around blocks that start a new line
curly: ["error", "all"],
@@ -163,14 +167,6 @@ module.exports = {
// No credentials submitted with fetch calls
"fetch-options/no-fetch-credentials": "off",
- // XXX This rule line should be removed to enable it. See bug 1487642.
- // Enforce return statements in getters
- "getter-return": "off",
-
- // Don't enforce the maximum depth that blocks can be nested. The complexity
- // rule is a better rule to check this.
- "max-depth": "off",
-
// Maximum depth callbacks can be nested.
"max-nested-callbacks": ["error", 10],
@@ -212,28 +208,24 @@ module.exports = {
// Disallow use of arguments.caller or arguments.callee.
"no-caller": "error",
- // XXX Bug 1487642 - decide if we want to enable this or not.
- // Disallow lexical declarations in case clauses
- "no-case-declarations": "off",
-
- // XXX Bug 1487642 - decide if we want to enable this or not.
- // Disallow the use of console
- "no-console": "off",
+ // Disallow the use of console, except for errors and warnings.
+ "no-console": ["error", { allow: ["createInstance", "error", "warn"] }],
// Disallows expressions where the operation doesn't affect the value.
// TODO: This is enabled by default in ESLint's v9 recommended configuration.
"no-constant-binary-expression": "error",
- // XXX Bug 1487642 - decide if we want to enable this or not.
- // Disallow constant expressions in conditions
- "no-constant-condition": "off",
-
// If an if block ends with a return no need for an else block
"no-else-return": "error",
// No empty statements
"no-empty": ["error", { allowEmptyCatch: true }],
+ // Disallow empty static blocks.
+ // This rule will be a recommended rule in ESLint v9 so may be removed
+ // when we upgrade to that.
+ "no-empty-static-block": "error",
+
// Disallow eval and setInteral/setTimeout with strings
"no-eval": "error",
@@ -256,8 +248,7 @@ module.exports = {
// Disallow eval and setInteral/setTimeout with strings
"no-implied-eval": "error",
- // This has been superseded since we're using ES6.
- // Disallow variable or function declarations in nested blocks
+ // See explicit decisions at top of file.
"no-inner-declarations": "off",
// Disallow the use of the __iterator__ property
@@ -275,6 +266,11 @@ module.exports = {
// Nested ternary statements are confusing
"no-nested-ternary": "error",
+ // Disallow new operators with global non-constructor functions.
+ // This rule will be a recommended rule in ESLint v9 so may be removed
+ // when we upgrade to that.
+ "no-new-native-nonconstructor": "error",
+
// Disallow use of new wrappers
"no-new-wrappers": "error",
@@ -312,6 +308,11 @@ module.exports = {
"no-unsanitized/method": "error",
"no-unsanitized/property": "error",
+ // Disallow unused private class members.
+ // This rule will be a recommended rule in ESLint v9 so may be removed
+ // when we upgrade to that.
+ "no-unused-private-class-members": "error",
+
// No declaring variables that are never used
"no-unused-vars": [
"error",
@@ -331,8 +332,7 @@ module.exports = {
// lines)
"no-useless-concat": "error",
- // XXX Bug 1487642 - decide if we want to enable this or not.
- // Disallow unnecessary escape characters
+ // See explicit decisions at top of file.
"no-useless-escape": "off",
// Disallow redundant return statements
@@ -343,9 +343,5 @@ module.exports = {
// This may conflict with prettier, so turn it off.
"prefer-arrow-callback": "off",
-
- // XXX Bug 1487642 - decide if we want to enable this or not.
- // Require generator functions to contain yield
- "require-yield": "off",
},
};
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/xpcshell-test.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/xpcshell-test.js
index 6a4d572911..d3c983999a 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/xpcshell-test.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/configs/xpcshell-test.js
@@ -10,6 +10,16 @@ module.exports = {
overrides: [
{
+ // Some directories have multiple kinds of tests, and some rules
+ // don't work well for plain mochitests, so disable those.
+ files: ["*.html", "*.xhtml"],
+ // plain/chrome mochitests don't automatically include Assert, so
+ // autofixing `ok()` to Assert.something is bad.
+ rules: {
+ "mozilla/no-comparison-or-assignment-inside-ok": "off",
+ },
+ },
+ {
// If it is a head file, we turn off global unused variable checks, as it
// would require searching the other test files to know if they are used or not.
// This would be expensive and slow, and it isn't worth it for head files.
@@ -44,6 +54,7 @@ module.exports = {
"mozilla/import-headjs-globals": "error",
"mozilla/mark-test-function-used": "error",
"mozilla/no-arbitrary-setTimeout": "error",
+ "mozilla/no-comparison-or-assignment-inside-ok": "error",
"mozilla/no-useless-run-test": "error",
"no-shadow": "error",
// Turn off no-unsanitized for tests, as we do want to be able to use
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/privileged.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/privileged.js
index c517de6209..7e6437ce7a 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/privileged.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/privileged.js
@@ -142,7 +142,6 @@ module.exports = {
DOMRect: false,
DOMRectList: false,
DOMRectReadOnly: false,
- DOMRequest: false,
DOMStringList: false,
DOMStringMap: false,
DOMTokenList: false,
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/jsm.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/sysmjs.js
index 30d8e0eb9c..03fe80e5c4 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/jsm.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/environments/sysmjs.js
@@ -1,5 +1,5 @@
/**
- * @fileoverview Defines the environment for jsm files.
+ * @fileoverview Defines the environment for sys module files.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -10,7 +10,7 @@
module.exports = {
globals: {
- // These globals are hard-coded and available in .jsm scopes.
+ // These globals are hard-coded and available in .sys.mjs scopes.
// https://searchfox.org/mozilla-central/rev/dcb0cfb66e4ed3b9c7fbef1e80572426ff5f3c3a/js/xpconnect/loader/mozJSModuleLoader.cpp#222-223
// Although `debug` is allowed for jsm files, this is non-standard and something
// we don't want to allow in mjs files. Hence it is not included here.
@@ -18,8 +18,8 @@ module.exports = {
btoa: false,
dump: false,
// The WebAssembly global is available in most (if not all) contexts where
- // JS can run. It's definitely available in JSMs. So even if this is not
- // the perfect place to add it, it's not wrong, and we can move it later.
+ // JS can run. It's definitely available in system modules. So even if this
+ // is not the perfect place to add it, it's not wrong, and we can move it later.
WebAssembly: false,
},
};
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/globals.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/globals.js
index 25c149fa9f..bbc1f9bed8 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/globals.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/globals.js
@@ -634,7 +634,7 @@ module.exports = {
let globalScope;
let parser = {
- Program(node) {
+ Program() {
globalScope = context.getScope();
},
};
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/helpers.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/helpers.js
index dc4106631a..9ab51df37e 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/helpers.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/helpers.js
@@ -191,13 +191,13 @@ module.exports = {
let parents = [];
estraverse.traverse(ast, {
- enter(node, parent) {
+ enter(node) {
listener(node.type, node, parents);
parents.push(node);
},
- leave(node, parent) {
+ leave() {
if (!parents.length) {
throw new Error("Left more nodes than entered.");
}
@@ -285,7 +285,7 @@ module.exports = {
* @return {Object}
* Espree compatible permissive config.
*/
- getPermissiveConfig({ useBabel = true } = {}) {
+ getPermissiveConfig() {
return {
range: true,
loc: true,
@@ -511,7 +511,7 @@ module.exports = {
manifest,
});
} catch (e) {
- console.log(
+ console.error(
"TOML ERROR: " +
e.message +
" @line: " +
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/index.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/index.js
index 0801958597..2ef516b526 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/index.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/index.js
@@ -15,6 +15,7 @@ module.exports = {
configs: {
"browser-test": require("../lib/configs/browser-test"),
"chrome-test": require("../lib/configs/chrome-test"),
+ "general-test": require("../lib/configs/general-test"),
"mochitest-test": require("../lib/configs/mochitest-test"),
recommended: require("../lib/configs/recommended"),
"require-jsdoc": require("../lib/configs/require-jsdoc"),
@@ -26,7 +27,7 @@ module.exports = {
"chrome-script": require("../lib/environments/chrome-script.js"),
"chrome-worker": require("../lib/environments/chrome-worker.js"),
"frame-script": require("../lib/environments/frame-script.js"),
- jsm: require("../lib/environments/jsm.js"),
+ sysmjs: require("../lib/environments/sysmjs.js"),
privileged: require("../lib/environments/privileged.js"),
"process-script": require("../lib/environments/process-script.js"),
"remote-page": require("../lib/environments/remote-page.js"),
@@ -58,6 +59,7 @@ module.exports = {
"no-comparison-or-assignment-inside-ok": require("../lib/rules/no-comparison-or-assignment-inside-ok"),
"no-cu-reportError": require("../lib/rules/no-cu-reportError"),
"no-define-cc-etc": require("../lib/rules/no-define-cc-etc"),
+ "no-more-globals": require("../lib/rules/no-more-globals"),
"no-redeclare-with-import-autofix": require("../lib/rules/no-redeclare-with-import-autofix"),
"no-throw-cr-literal": require("../lib/rules/no-throw-cr-literal"),
"no-useless-parameters": require("../lib/rules/no-useless-parameters"),
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-browser-window-globals.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-browser-window-globals.js
index 7a099ba340..daa327f916 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-browser-window-globals.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-browser-window-globals.js
@@ -26,7 +26,7 @@ module.exports = {
create(context) {
return {
- Program(node) {
+ Program() {
let filePath = helpers.getAbsoluteFilePath(context);
let relativePath = path.relative(helpers.rootDir, filePath);
// We need to translate the path on Windows, due to the change
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-content-task-globals.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-content-task-globals.js
index e2b66ce8b0..c27ef25ce1 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-content-task-globals.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-content-task-globals.js
@@ -29,7 +29,7 @@ module.exports = {
create(context) {
return {
"CallExpression[callee.object.name='ContentTask'][callee.property.name='spawn']":
- function (node) {
+ function () {
// testing/mochitest/BrowserTestUtils/content/content-task.js
// This script is loaded as a sub script into a frame script.
for (let [name, value] of Object.entries(frameScriptEnv.globals)) {
@@ -37,7 +37,7 @@ module.exports = {
}
},
"CallExpression[callee.object.name='SpecialPowers'][callee.property.name='spawn']":
- function (node) {
+ function () {
for (let [name, value] of Object.entries(sandboxEnv.globals)) {
helpers.addVarToScope(name, context.getScope(), value);
}
@@ -54,7 +54,7 @@ module.exports = {
}
},
"CallExpression[callee.object.name='SpecialPowers'][callee.property.name='spawnChrome']":
- function (node) {
+ function () {
for (let [name, value] of Object.entries(sandboxEnv.globals)) {
helpers.addVarToScope(name, context.getScope(), value);
}
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-headjs-globals.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-headjs-globals.js
index d4fa484b99..0405d9cd78 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-headjs-globals.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/import-headjs-globals.js
@@ -13,7 +13,7 @@ var fs = require("fs");
var helpers = require("../helpers");
var globals = require("../globals");
-function importHead(context, path, node) {
+function importHead(context, path) {
try {
let stats = fs.statSync(path);
if (!stats.isFile()) {
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/mark-exported-symbols-as-used.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/mark-exported-symbols-as-used.js
index 5d0e57e4c8..3664374053 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/mark-exported-symbols-as-used.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/mark-exported-symbols-as-used.js
@@ -49,7 +49,7 @@ module.exports = {
create(context) {
return {
- AssignmentExpression(node, parents) {
+ AssignmentExpression(node) {
if (
node.operator === "=" &&
node.left.type === "MemberExpression" &&
@@ -61,7 +61,7 @@ module.exports = {
}
},
- VariableDeclaration(node, parents) {
+ VariableDeclaration(node) {
if (!isGlobalScope(context)) {
return;
}
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/no-more-globals.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/no-more-globals.js
new file mode 100644
index 0000000000..921ead67bd
--- /dev/null
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/no-more-globals.js
@@ -0,0 +1,69 @@
+/**
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+"use strict";
+
+const globals = require("../globals");
+
+const fs = require("fs");
+
+module.exports = {
+ meta: {
+ docs: {
+ url: "https://firefox-source-docs.mozilla.org/code-quality/lint/linters/eslint-plugin-mozilla/rules/no-more-globals.html",
+ },
+ messages: {
+ newGlobal:
+ "The global {{ name }} was not previously in this file, where new global variables are not permitted.",
+ removedGlobal:
+ "The global {{ name }} was expected to be defined in this file but isn't. Please remove it from the .globals file.",
+ missingGlobalsFile:
+ "This file has mozilla/no-more-globals enabled but has no .globals sibling file. Please create one.",
+ },
+ schema: [],
+ type: "problem",
+ },
+
+ create(context) {
+ return {
+ Program(node) {
+ let filename = context.filename;
+ let code = context.sourceCode.getText();
+ let currentGlobals = globals.getGlobalsForCode(code, {}, false);
+ let knownGlobals;
+ try {
+ knownGlobals = new Set(
+ JSON.parse(fs.readFileSync(filename + ".globals"))
+ );
+ } catch (ex) {
+ context.report({
+ node,
+ messageId: "missingGlobalsFile",
+ });
+ return;
+ }
+ for (let { name } of currentGlobals) {
+ if (!knownGlobals.has(name)) {
+ context.report({
+ node,
+ messageId: "newGlobal",
+ data: { name },
+ });
+ }
+ }
+ for (let known of knownGlobals) {
+ if (!currentGlobals.some(n => n.name == known)) {
+ context.report({
+ node,
+ messageId: "removedGlobal",
+ data: { name: known },
+ });
+ }
+ }
+ },
+ };
+ },
+};
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/reject-globalThis-modification.js b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/reject-globalThis-modification.js
index 13052db80c..f14fdcd795 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/reject-globalThis-modification.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/reject-globalThis-modification.js
@@ -42,7 +42,7 @@ module.exports = {
create(context) {
return {
- AssignmentExpression(node, parents) {
+ AssignmentExpression(node) {
let target = node.left;
while (target.type === "MemberExpression") {
target = target.object;
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/lib/services.json b/tools/lint/eslint/eslint-plugin-mozilla/lib/services.json
index 476c6bf784..7077542fe8 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/services.json
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/services.json
@@ -16,9 +16,8 @@
"nsICookieService": "cookies",
"nsICrashReporter": "appinfo",
"nsIDAPTelemetry": "DAPTelemetry",
- "nsIDOMRequestService": "DOMRequest",
- "nsIDOMStorageManager": "domStorageManager",
"nsIDNSService": "dns",
+ "nsIDOMStorageManager": "domStorageManager",
"nsIDirectoryService": "dirsvc",
"nsIDroppedLinkHandler": "droppedLinkHandler",
"nsIEffectiveTLDService": "eTLD",
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/manifest.tt b/tools/lint/eslint/eslint-plugin-mozilla/manifest.tt
index 47ca98109b..c33cc36e38 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/manifest.tt
+++ b/tools/lint/eslint/eslint-plugin-mozilla/manifest.tt
@@ -1,9 +1,9 @@
[
{
"filename": "eslint-plugin-mozilla.tar.gz",
- "size": 5546844,
+ "size": 5593447,
"algorithm": "sha512",
- "digest": "7df05ad96a7e892f04079570e7847cef71048e3d96e7a338f7e5aa431d5bf34225196200fffc42a630678f2bb074b806dd24d76da25827fbfc16d0ae5e8e6cd5",
+ "digest": "ba1f9719d64200e0488003d76f75a189bf4103aa7e653b0aaa0b1053543c5349e3d272eaac006b98f1a3a6530cc0fcfd3aaedc62ce1df6050f737c4865f49d69",
"unpack": true,
"visibility": "public"
}
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/package-lock.json b/tools/lint/eslint/eslint-plugin-mozilla/package-lock.json
index 8265c41a94..c4c36118d2 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/package-lock.json
+++ b/tools/lint/eslint/eslint-plugin-mozilla/package-lock.json
@@ -1,23 +1,23 @@
{
"name": "eslint-plugin-mozilla",
- "version": "3.7.0",
- "lockfileVersion": 2,
+ "version": "3.7.1",
+ "lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "eslint-plugin-mozilla",
- "version": "3.7.0",
+ "version": "3.7.1",
"license": "MPL-2.0",
"dependencies": {
"eslint-scope": "^7.2.2",
"eslint-visitor-keys": "^3.4.3",
"espree": "^9.6.1",
"estraverse": "^5.3.0",
- "htmlparser2": "^8.0.1",
+ "htmlparser2": "^9.1.0",
"toml-eslint-parser": "0.9.3"
},
"devDependencies": {
- "eslint": "8.56.0",
+ "eslint": "8.57.0",
"mocha": "10.2.0"
},
"engines": {
@@ -28,7 +28,7 @@
"eslint": "^7.23.0 || ^8.0.0",
"eslint-config-prettier": "^8.0.0 || ^9.0.0",
"eslint-plugin-fetch-options": "^0.0.5",
- "eslint-plugin-html": "^7.0.0",
+ "eslint-plugin-html": "^7.0.0 || ^8.0.0",
"eslint-plugin-json": "^3.1.0",
"eslint-plugin-no-unsanitized": "^4.0.0"
}
@@ -86,9 +86,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.56.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz",
- "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
+ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
@@ -261,13 +261,16 @@
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/array-buffer-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
- "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "is-array-buffer": "^3.0.1"
+ "call-bind": "^1.0.5",
+ "is-array-buffer": "^3.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -329,30 +332,31 @@
}
},
"node_modules/array.prototype.tosorted": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz",
- "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz",
+ "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0",
- "get-intrinsic": "^1.2.1"
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.1.0",
+ "es-shim-unscopables": "^1.0.2"
}
},
"node_modules/arraybuffer.prototype.slice": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz",
- "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
"peer": true,
"dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
- "is-array-buffer": "^3.0.2",
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.2.1",
+ "get-intrinsic": "^1.2.3",
+ "is-array-buffer": "^3.0.4",
"is-shared-array-buffer": "^1.0.2"
},
"engines": {
@@ -363,10 +367,13 @@
}
},
"node_modules/available-typed-arrays": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz",
- "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
"peer": true,
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
"engines": {
"node": ">= 0.4"
},
@@ -416,14 +423,19 @@
"dev": true
},
"node_modules/call-bind": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
- "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
"peer": true,
"dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.1",
- "set-function-length": "^1.1.1"
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -582,17 +594,20 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
},
"node_modules/define-data-property": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
- "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"peer": true,
"dependencies": {
- "get-intrinsic": "^1.2.1",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/define-properties": {
@@ -701,50 +716,52 @@
}
},
"node_modules/es-abstract": {
- "version": "1.22.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
- "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
- "peer": true,
- "dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "arraybuffer.prototype.slice": "^1.0.2",
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.5",
- "es-set-tostringtag": "^2.0.1",
+ "version": "1.22.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz",
+ "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==",
+ "peer": true,
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "arraybuffer.prototype.slice": "^1.0.3",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.3",
"es-to-primitive": "^1.2.1",
"function.prototype.name": "^1.1.6",
- "get-intrinsic": "^1.2.2",
- "get-symbol-description": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "get-symbol-description": "^1.0.2",
"globalthis": "^1.0.3",
"gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "has-proto": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
"has-symbols": "^1.0.3",
- "hasown": "^2.0.0",
- "internal-slot": "^1.0.5",
- "is-array-buffer": "^3.0.2",
+ "hasown": "^2.0.1",
+ "internal-slot": "^1.0.7",
+ "is-array-buffer": "^3.0.4",
"is-callable": "^1.2.7",
- "is-negative-zero": "^2.0.2",
+ "is-negative-zero": "^2.0.3",
"is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
+ "is-shared-array-buffer": "^1.0.3",
"is-string": "^1.0.7",
- "is-typed-array": "^1.1.12",
+ "is-typed-array": "^1.1.13",
"is-weakref": "^1.0.2",
"object-inspect": "^1.13.1",
"object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.5.1",
- "safe-array-concat": "^1.0.1",
- "safe-regex-test": "^1.0.0",
+ "object.assign": "^4.1.5",
+ "regexp.prototype.flags": "^1.5.2",
+ "safe-array-concat": "^1.1.0",
+ "safe-regex-test": "^1.0.3",
"string.prototype.trim": "^1.2.8",
"string.prototype.trimend": "^1.0.7",
"string.prototype.trimstart": "^1.0.7",
- "typed-array-buffer": "^1.0.0",
- "typed-array-byte-length": "^1.0.0",
- "typed-array-byte-offset": "^1.0.0",
- "typed-array-length": "^1.0.4",
+ "typed-array-buffer": "^1.0.2",
+ "typed-array-byte-length": "^1.0.1",
+ "typed-array-byte-offset": "^1.0.2",
+ "typed-array-length": "^1.0.5",
"unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.13"
+ "which-typed-array": "^1.1.14"
},
"engines": {
"node": ">= 0.4"
@@ -753,15 +770,36 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "peer": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "peer": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/es-set-tostringtag": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
- "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
"peer": true,
"dependencies": {
- "get-intrinsic": "^1.2.2",
- "has-tostringtag": "^1.0.0",
- "hasown": "^2.0.0"
+ "get-intrinsic": "^1.2.4",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -794,9 +832,9 @@
}
},
"node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
"dev": true,
"engines": {
"node": ">=6"
@@ -814,15 +852,15 @@
}
},
"node_modules/eslint": {
- "version": "8.56.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz",
- "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
+ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.56.0",
- "@humanwhocodes/config-array": "^0.11.13",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"@ungap/structured-clone": "^1.2.0",
@@ -908,12 +946,15 @@
}
},
"node_modules/eslint-plugin-html": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-7.1.0.tgz",
- "integrity": "sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-8.0.0.tgz",
+ "integrity": "sha512-NINLBAXM3mLa3k5Ezr/kNLHAJJwbot6lS7Ro+SUftDw4cA51KMmcDuCf98GP6Q6kTVPY1hIggzskxAdxfUPXSA==",
"peer": true,
"dependencies": {
- "htmlparser2": "^8.0.1"
+ "htmlparser2": "^9.1.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
}
},
"node_modules/eslint-plugin-json": {
@@ -1145,9 +1186,9 @@
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
},
"node_modules/fastq": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz",
- "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==",
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
"dependencies": {
"reusify": "^1.0.4"
}
@@ -1213,9 +1254,9 @@
}
},
"node_modules/flatted": {
- "version": "3.2.9",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
- "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ=="
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw=="
},
"node_modules/for-each": {
"version": "0.3.3",
@@ -1291,28 +1332,33 @@
}
},
"node_modules/get-intrinsic": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
- "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
"peer": true,
"dependencies": {
+ "es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
"hasown": "^2.0.0"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-symbol-description": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
- "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
+ "call-bind": "^1.0.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4"
},
"engines": {
"node": ">= 0.4"
@@ -1415,21 +1461,21 @@
}
},
"node_modules/has-property-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
- "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"peer": true,
"dependencies": {
- "get-intrinsic": "^1.2.2"
+ "es-define-property": "^1.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
"peer": true,
"engines": {
"node": ">= 0.4"
@@ -1451,12 +1497,12 @@
}
},
"node_modules/has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"peer": true,
"dependencies": {
- "has-symbols": "^1.0.2"
+ "has-symbols": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
@@ -1466,9 +1512,9 @@
}
},
"node_modules/hasown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
- "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
+ "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
"peer": true,
"dependencies": {
"function-bind": "^1.1.2"
@@ -1487,9 +1533,9 @@
}
},
"node_modules/htmlparser2": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
- "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz",
+ "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==",
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
{
@@ -1500,8 +1546,8 @@
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
- "domutils": "^3.0.1",
- "entities": "^4.4.0"
+ "domutils": "^3.1.0",
+ "entities": "^4.5.0"
}
},
"node_modules/ignore": {
@@ -1550,12 +1596,12 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/internal-slot": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz",
- "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
"peer": true,
"dependencies": {
- "get-intrinsic": "^1.2.2",
+ "es-errors": "^1.3.0",
"hasown": "^2.0.0",
"side-channel": "^1.0.4"
},
@@ -1564,14 +1610,16 @@
}
},
"node_modules/is-array-buffer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
- "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
"peer": true,
"dependencies": {
"call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.0",
- "is-typed-array": "^1.1.10"
+ "get-intrinsic": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -1685,9 +1733,9 @@
}
},
"node_modules/is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
"peer": true,
"engines": {
"node": ">= 0.4"
@@ -1754,12 +1802,15 @@
}
},
"node_modules/is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.2"
+ "call-bind": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -1796,12 +1847,12 @@
}
},
"node_modules/is-typed-array": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
- "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
"peer": true,
"dependencies": {
- "which-typed-array": "^1.1.11"
+ "which-typed-array": "^1.1.14"
},
"engines": {
"node": ">= 0.4"
@@ -2306,6 +2357,15 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
+ "node_modules/possible-typed-array-names": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+ "peer": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -2380,14 +2440,15 @@
}
},
"node_modules/regexp.prototype.flags": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
- "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
+ "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "set-function-name": "^2.0.0"
+ "call-bind": "^1.0.6",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -2544,13 +2605,13 @@
}
},
"node_modules/safe-regex-test": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz",
- "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
+ "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.5",
- "get-intrinsic": "^1.2.2",
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
"is-regex": "^1.1.4"
},
"engines": {
@@ -2579,14 +2640,15 @@
}
},
"node_modules/set-function-length": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz",
- "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz",
+ "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
"peer": true,
"dependencies": {
- "define-data-property": "^1.1.1",
+ "define-data-property": "^1.1.2",
+ "es-errors": "^1.3.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.2",
+ "get-intrinsic": "^1.2.3",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.1"
},
@@ -2595,14 +2657,15 @@
}
},
"node_modules/set-function-name": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
- "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
"peer": true,
"dependencies": {
- "define-data-property": "^1.0.1",
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
"functions-have-names": "^1.2.3",
- "has-property-descriptors": "^1.0.0"
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -2628,14 +2691,18 @@
}
},
"node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -2819,29 +2886,30 @@
}
},
"node_modules/typed-array-buffer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
- "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.1",
- "is-typed-array": "^1.1.10"
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.13"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/typed-array-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
- "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
- "has-proto": "^1.0.1",
- "is-typed-array": "^1.1.10"
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
},
"engines": {
"node": ">= 0.4"
@@ -2851,16 +2919,17 @@
}
},
"node_modules/typed-array-byte-offset": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
- "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+ "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
"peer": true,
"dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
- "has-proto": "^1.0.1",
- "is-typed-array": "^1.1.10"
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
},
"engines": {
"node": ">= 0.4"
@@ -2870,14 +2939,20 @@
}
},
"node_modules/typed-array-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
- "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz",
+ "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==",
"peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
- "is-typed-array": "^1.1.9"
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -2974,16 +3049,16 @@
}
},
"node_modules/which-typed-array": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
- "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz",
+ "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==",
"peer": true,
"dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.4",
+ "available-typed-arrays": "^1.0.6",
+ "call-bind": "^1.0.5",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0"
+ "has-tostringtag": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -3082,2168 +3157,5 @@
"url": "https://github.com/sponsors/sindresorhus"
}
}
- },
- "dependencies": {
- "@aashutoshrathi/word-wrap": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
- "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA=="
- },
- "@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
- "requires": {
- "eslint-visitor-keys": "^3.3.0"
- }
- },
- "@eslint-community/regexpp": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
- "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA=="
- },
- "@eslint/eslintrc": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
- "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
- "requires": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.6.0",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- }
- },
- "@eslint/js": {
- "version": "8.56.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz",
- "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A=="
- },
- "@humanwhocodes/config-array": {
- "version": "0.11.14",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
- "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
- "requires": {
- "@humanwhocodes/object-schema": "^2.0.2",
- "debug": "^4.3.1",
- "minimatch": "^3.0.5"
- }
- },
- "@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="
- },
- "@humanwhocodes/object-schema": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
- "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw=="
- },
- "@microsoft/eslint-plugin-sdl": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@microsoft/eslint-plugin-sdl/-/eslint-plugin-sdl-0.2.2.tgz",
- "integrity": "sha512-TiBepeQMSxHpvIbKA03TbO9nZqRrKR1th47wGdjY1sH2SSer+JgKlSF3S8GURGA8/zp2T/HwSiAJelclJ3hEvg==",
- "peer": true,
- "requires": {
- "eslint-plugin-node": "11.1.0",
- "eslint-plugin-react": "7.33.0",
- "eslint-plugin-security": "1.4.0"
- }
- },
- "@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "requires": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- }
- },
- "@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
- },
- "@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "requires": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- }
- },
- "@ungap/structured-clone": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
- },
- "acorn": {
- "version": "8.11.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
- "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg=="
- },
- "acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "requires": {}
- },
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "ansi-colors": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
- "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
- "dev": true
- },
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- }
- },
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "array-buffer-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
- "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "is-array-buffer": "^3.0.1"
- }
- },
- "array-includes": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
- "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
- "is-string": "^1.0.7"
- }
- },
- "array.prototype.flat": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
- "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
- }
- },
- "array.prototype.flatmap": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
- "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
- }
- },
- "array.prototype.tosorted": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz",
- "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0",
- "get-intrinsic": "^1.2.1"
- }
- },
- "arraybuffer.prototype.slice": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz",
- "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==",
- "peer": true,
- "requires": {
- "array-buffer-byte-length": "^1.0.0",
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
- "is-array-buffer": "^3.0.2",
- "is-shared-array-buffer": "^1.0.2"
- }
- },
- "available-typed-arrays": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz",
- "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==",
- "peer": true
- },
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "browser-stdout": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
- "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
- "dev": true
- },
- "call-bind": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz",
- "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==",
- "peer": true,
- "requires": {
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.1",
- "set-function-length": "^1.1.1"
- }
- },
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
- },
- "camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
- "requires": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "fsevents": "~2.3.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "dependencies": {
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.1"
- }
- }
- }
- },
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
- },
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "decamelize": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
- "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
- "dev": true
- },
- "deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
- },
- "define-data-property": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
- "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
- "peer": true,
- "requires": {
- "get-intrinsic": "^1.2.1",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0"
- }
- },
- "define-properties": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
- "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
- "peer": true,
- "requires": {
- "define-data-property": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- },
- "diff": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
- "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
- "dev": true
- },
- "doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "dom-serializer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
- "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
- "requires": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "entities": "^4.2.0"
- }
- },
- "domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
- },
- "domhandler": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
- "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
- "requires": {
- "domelementtype": "^2.3.0"
- }
- },
- "domutils": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
- "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
- "requires": {
- "dom-serializer": "^2.0.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3"
- }
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "entities": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
- },
- "es-abstract": {
- "version": "1.22.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
- "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
- "peer": true,
- "requires": {
- "array-buffer-byte-length": "^1.0.0",
- "arraybuffer.prototype.slice": "^1.0.2",
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.5",
- "es-set-tostringtag": "^2.0.1",
- "es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.6",
- "get-intrinsic": "^1.2.2",
- "get-symbol-description": "^1.0.0",
- "globalthis": "^1.0.3",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0",
- "internal-slot": "^1.0.5",
- "is-array-buffer": "^3.0.2",
- "is-callable": "^1.2.7",
- "is-negative-zero": "^2.0.2",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
- "is-string": "^1.0.7",
- "is-typed-array": "^1.1.12",
- "is-weakref": "^1.0.2",
- "object-inspect": "^1.13.1",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.5.1",
- "safe-array-concat": "^1.0.1",
- "safe-regex-test": "^1.0.0",
- "string.prototype.trim": "^1.2.8",
- "string.prototype.trimend": "^1.0.7",
- "string.prototype.trimstart": "^1.0.7",
- "typed-array-buffer": "^1.0.0",
- "typed-array-byte-length": "^1.0.0",
- "typed-array-byte-offset": "^1.0.0",
- "typed-array-length": "^1.0.4",
- "unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.13"
- }
- },
- "es-set-tostringtag": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
- "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
- "peer": true,
- "requires": {
- "get-intrinsic": "^1.2.2",
- "has-tostringtag": "^1.0.0",
- "hasown": "^2.0.0"
- }
- },
- "es-shim-unscopables": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
- "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
- "peer": true,
- "requires": {
- "hasown": "^2.0.0"
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "peer": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
- },
- "eslint": {
- "version": "8.56.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz",
- "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
- "requires": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.56.0",
- "@humanwhocodes/config-array": "^0.11.13",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "@ungap/structured-clone": "^1.2.0",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.2",
- "eslint-visitor-keys": "^3.4.3",
- "espree": "^9.6.1",
- "esquery": "^1.4.2",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
- }
- },
- "eslint-config-prettier": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
- "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
- "peer": true,
- "requires": {}
- },
- "eslint-plugin-es": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
- "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
- "peer": true,
- "requires": {
- "eslint-utils": "^2.0.0",
- "regexpp": "^3.0.0"
- }
- },
- "eslint-plugin-fetch-options": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/eslint-plugin-fetch-options/-/eslint-plugin-fetch-options-0.0.5.tgz",
- "integrity": "sha512-ZMxrccsOAZ7uMQ4nMvPJLqLg6oyLF96YOEwTKWAIbDHpwWUp1raXALZom8ikKucaEnhqWSRuBWI8jBXveFwkJg==",
- "peer": true
- },
- "eslint-plugin-html": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-7.1.0.tgz",
- "integrity": "sha512-fNLRraV/e6j8e3XYOC9xgND4j+U7b1Rq+OygMlLcMg+wI/IpVbF+ubQa3R78EjKB9njT6TQOlcK5rFKBVVtdfg==",
- "peer": true,
- "requires": {
- "htmlparser2": "^8.0.1"
- }
- },
- "eslint-plugin-json": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz",
- "integrity": "sha512-MrlG2ynFEHe7wDGwbUuFPsaT2b1uhuEFhJ+W1f1u+1C2EkXmTYJp4B1aAdQQ8M+CC3t//N/oRKiIVw14L2HR1g==",
- "peer": true,
- "requires": {
- "lodash": "^4.17.21",
- "vscode-json-languageservice": "^4.1.6"
- }
- },
- "eslint-plugin-no-unsanitized": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-4.0.2.tgz",
- "integrity": "sha512-Pry0S9YmHoz8NCEMRQh7N0Yexh2MYCNPIlrV52hTmS7qXnTghWsjXouF08bgsrrZqaW9tt1ZiK3j5NEmPE+EjQ==",
- "peer": true,
- "requires": {}
- },
- "eslint-plugin-node": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
- "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
- "peer": true,
- "requires": {
- "eslint-plugin-es": "^3.0.0",
- "eslint-utils": "^2.0.0",
- "ignore": "^5.1.1",
- "minimatch": "^3.0.4",
- "resolve": "^1.10.1",
- "semver": "^6.1.0"
- }
- },
- "eslint-plugin-react": {
- "version": "7.33.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.0.tgz",
- "integrity": "sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw==",
- "peer": true,
- "requires": {
- "array-includes": "^3.1.6",
- "array.prototype.flatmap": "^1.3.1",
- "array.prototype.tosorted": "^1.1.1",
- "doctrine": "^2.1.0",
- "estraverse": "^5.3.0",
- "jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "minimatch": "^3.1.2",
- "object.entries": "^1.1.6",
- "object.fromentries": "^2.0.6",
- "object.hasown": "^1.1.2",
- "object.values": "^1.1.6",
- "prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.4",
- "semver": "^6.3.1",
- "string.prototype.matchall": "^4.0.8"
- },
- "dependencies": {
- "doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "peer": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "resolve": {
- "version": "2.0.0-next.5",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
- "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
- "peer": true,
- "requires": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- }
- }
- }
- },
- "eslint-plugin-security": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.4.0.tgz",
- "integrity": "sha512-xlS7P2PLMXeqfhyf3NpqbvbnW04kN8M9NtmhpR3XGyOvt/vNKS7XPXT5EDbwKW9vCjWH4PpfQvgD/+JgN0VJKA==",
- "peer": true,
- "requires": {
- "safe-regex": "^1.1.0"
- }
- },
- "eslint-scope": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- }
- },
- "eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
- "peer": true,
- "requires": {
- "eslint-visitor-keys": "^1.1.0"
- },
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "peer": true
- }
- }
- },
- "eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="
- },
- "espree": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
- "requires": {
- "acorn": "^8.9.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
- }
- },
- "esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
- "requires": {
- "estraverse": "^5.1.0"
- }
- },
- "esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "requires": {
- "estraverse": "^5.2.0"
- }
- },
- "estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
- },
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
- },
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
- },
- "fastq": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz",
- "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==",
- "requires": {
- "reusify": "^1.0.4"
- }
- },
- "file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
- "requires": {
- "flat-cache": "^3.0.4"
- }
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "requires": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "dev": true
- },
- "flat-cache": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
- "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
- "requires": {
- "flatted": "^3.2.9",
- "keyv": "^4.5.3",
- "rimraf": "^3.0.2"
- }
- },
- "flatted": {
- "version": "3.2.9",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
- "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ=="
- },
- "for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
- "peer": true,
- "requires": {
- "is-callable": "^1.1.3"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
- },
- "fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "optional": true
- },
- "function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "peer": true
- },
- "function.prototype.name": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
- "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "functions-have-names": "^1.2.3"
- }
- },
- "functions-have-names": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
- "peer": true
- },
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true
- },
- "get-intrinsic": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz",
- "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==",
- "peer": true,
- "requires": {
- "function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
- }
- },
- "get-symbol-description": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
- "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
- }
- },
- "glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "requires": {
- "is-glob": "^4.0.3"
- }
- },
- "globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
- "requires": {
- "type-fest": "^0.20.2"
- }
- },
- "globalthis": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
- "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
- "peer": true,
- "requires": {
- "define-properties": "^1.1.3"
- }
- },
- "gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "peer": true,
- "requires": {
- "get-intrinsic": "^1.1.3"
- }
- },
- "graphemer": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
- },
- "has-bigints": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
- "peer": true
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "has-property-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
- "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
- "peer": true,
- "requires": {
- "get-intrinsic": "^1.2.2"
- }
- },
- "has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
- "peer": true
- },
- "has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "peer": true
- },
- "has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
- "peer": true,
- "requires": {
- "has-symbols": "^1.0.2"
- }
- },
- "hasown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
- "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
- "peer": true,
- "requires": {
- "function-bind": "^1.1.2"
- }
- },
- "he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true
- },
- "htmlparser2": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
- "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
- "requires": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3",
- "domutils": "^3.0.1",
- "entities": "^4.4.0"
- }
- },
- "ignore": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw=="
- },
- "import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "requires": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- }
- },
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "internal-slot": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz",
- "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==",
- "peer": true,
- "requires": {
- "get-intrinsic": "^1.2.2",
- "hasown": "^2.0.0",
- "side-channel": "^1.0.4"
- }
- },
- "is-array-buffer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
- "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.0",
- "is-typed-array": "^1.1.10"
- }
- },
- "is-bigint": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
- "peer": true,
- "requires": {
- "has-bigints": "^1.0.1"
- }
- },
- "is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "requires": {
- "binary-extensions": "^2.0.0"
- }
- },
- "is-boolean-object": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
- "peer": true
- },
- "is-core-module": {
- "version": "2.13.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
- "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
- "peer": true,
- "requires": {
- "hasown": "^2.0.0"
- }
- },
- "is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
- "peer": true,
- "requires": {
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
- "peer": true
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
- },
- "is-number-object": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
- "peer": true,
- "requires": {
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
- },
- "is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
- "dev": true
- },
- "is-regex": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2"
- }
- },
- "is-string": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
- "peer": true,
- "requires": {
- "has-tostringtag": "^1.0.0"
- }
- },
- "is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
- "peer": true,
- "requires": {
- "has-symbols": "^1.0.2"
- }
- },
- "is-typed-array": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
- "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
- "peer": true,
- "requires": {
- "which-typed-array": "^1.1.11"
- }
- },
- "is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true
- },
- "is-weakref": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2"
- }
- },
- "isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "peer": true
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "peer": true
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
- },
- "json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
- },
- "jsonc-parser": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
- "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==",
- "peer": true
- },
- "jsx-ast-utils": {
- "version": "3.3.5",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
- "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
- "peer": true,
- "requires": {
- "array-includes": "^3.1.6",
- "array.prototype.flat": "^1.3.1",
- "object.assign": "^4.1.4",
- "object.values": "^1.1.6"
- }
- },
- "keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
- "requires": {
- "json-buffer": "3.0.1"
- }
- },
- "levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "requires": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- }
- },
- "locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "requires": {
- "p-locate": "^5.0.0"
- }
- },
- "lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "peer": true
- },
- "lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
- },
- "log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dev": true,
- "requires": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- }
- },
- "loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "peer": true,
- "requires": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- }
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "mocha": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz",
- "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==",
- "dev": true,
- "requires": {
- "ansi-colors": "4.1.1",
- "browser-stdout": "1.3.1",
- "chokidar": "3.5.3",
- "debug": "4.3.4",
- "diff": "5.0.0",
- "escape-string-regexp": "4.0.0",
- "find-up": "5.0.0",
- "glob": "7.2.0",
- "he": "1.2.0",
- "js-yaml": "4.1.0",
- "log-symbols": "4.1.0",
- "minimatch": "5.0.1",
- "ms": "2.1.3",
- "nanoid": "3.3.3",
- "serialize-javascript": "6.0.0",
- "strip-json-comments": "3.1.1",
- "supports-color": "8.1.1",
- "workerpool": "6.2.1",
- "yargs": "16.2.0",
- "yargs-parser": "20.2.4",
- "yargs-unparser": "2.0.0"
- },
- "dependencies": {
- "brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "requires": {
- "balanced-match": "^1.0.0"
- }
- },
- "minimatch": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
- "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
- "dev": true,
- "requires": {
- "brace-expansion": "^2.0.1"
- }
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
- "supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "nanoid": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz",
- "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==",
- "dev": true
- },
- "natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "peer": true
- },
- "object-inspect": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
- "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
- "peer": true
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "peer": true
- },
- "object.assign": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
- "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.5",
- "define-properties": "^1.2.1",
- "has-symbols": "^1.0.3",
- "object-keys": "^1.1.1"
- }
- },
- "object.entries": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz",
- "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- }
- },
- "object.fromentries": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
- "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- }
- },
- "object.hasown": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz",
- "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==",
- "peer": true,
- "requires": {
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- }
- },
- "object.values": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
- "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- }
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "requires": {
- "wrappy": "1"
- }
- },
- "optionator": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
- "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
- "requires": {
- "@aashutoshrathi/word-wrap": "^1.2.3",
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0"
- }
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "requires": {
- "p-limit": "^3.0.2"
- }
- },
- "parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "requires": {
- "callsites": "^3.0.0"
- }
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
- },
- "path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "peer": true
- },
- "picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true
- },
- "prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
- },
- "prop-types": {
- "version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
- "peer": true,
- "requires": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.13.1"
- }
- },
- "punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="
- },
- "queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
- },
- "randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "dev": true,
- "requires": {
- "safe-buffer": "^5.1.0"
- }
- },
- "react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "peer": true
- },
- "readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "requires": {
- "picomatch": "^2.2.1"
- }
- },
- "regexp.prototype.flags": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
- "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "set-function-name": "^2.0.0"
- }
- },
- "regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
- "peer": true
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true
- },
- "resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
- "peer": true,
- "requires": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- }
- },
- "resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
- },
- "ret": {
- "version": "0.1.15",
- "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
- "peer": true
- },
- "reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "requires": {
- "queue-microtask": "^1.2.2"
- }
- },
- "safe-array-concat": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
- "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.5",
- "get-intrinsic": "^1.2.2",
- "has-symbols": "^1.0.3",
- "isarray": "^2.0.5"
- }
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true
- },
- "safe-regex": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
- "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
- "peer": true,
- "requires": {
- "ret": "~0.1.10"
- }
- },
- "safe-regex-test": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz",
- "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.5",
- "get-intrinsic": "^1.2.2",
- "is-regex": "^1.1.4"
- }
- },
- "semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "peer": true
- },
- "serialize-javascript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
- "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
- "dev": true,
- "requires": {
- "randombytes": "^2.1.0"
- }
- },
- "set-function-length": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz",
- "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==",
- "peer": true,
- "requires": {
- "define-data-property": "^1.1.1",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.2",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.1"
- }
- },
- "set-function-name": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
- "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
- "peer": true,
- "requires": {
- "define-data-property": "^1.0.1",
- "functions-have-names": "^1.2.3",
- "has-property-descriptors": "^1.0.0"
- }
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
- },
- "side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- }
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "string.prototype.matchall": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz",
- "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "get-intrinsic": "^1.2.1",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.5",
- "regexp.prototype.flags": "^1.5.0",
- "set-function-name": "^2.0.0",
- "side-channel": "^1.0.4"
- }
- },
- "string.prototype.trim": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
- "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- }
- },
- "string.prototype.trimend": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz",
- "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- }
- },
- "string.prototype.trimstart": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz",
- "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1"
- }
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "peer": true
- },
- "text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
- },
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "requires": {
- "is-number": "^7.0.0"
- }
- },
- "toml-eslint-parser": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/toml-eslint-parser/-/toml-eslint-parser-0.9.3.tgz",
- "integrity": "sha512-moYoCvkNUAPCxSW9jmHmRElhm4tVJpHL8ItC/+uYD0EpPSFXbck7yREz9tNdJVTSpHVod8+HoipcpbQ0oE6gsw==",
- "requires": {
- "eslint-visitor-keys": "^3.0.0"
- }
- },
- "type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "requires": {
- "prelude-ls": "^1.2.1"
- }
- },
- "type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
- },
- "typed-array-buffer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
- "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.1",
- "is-typed-array": "^1.1.10"
- }
- },
- "typed-array-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
- "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "has-proto": "^1.0.1",
- "is-typed-array": "^1.1.10"
- }
- },
- "typed-array-byte-offset": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
- "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
- "peer": true,
- "requires": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "has-proto": "^1.0.1",
- "is-typed-array": "^1.1.10"
- }
- },
- "typed-array-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
- "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "is-typed-array": "^1.1.9"
- }
- },
- "unbox-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
- "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
- "peer": true,
- "requires": {
- "call-bind": "^1.0.2",
- "has-bigints": "^1.0.2",
- "has-symbols": "^1.0.3",
- "which-boxed-primitive": "^1.0.2"
- }
- },
- "uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "vscode-json-languageservice": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.2.1.tgz",
- "integrity": "sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==",
- "peer": true,
- "requires": {
- "jsonc-parser": "^3.0.0",
- "vscode-languageserver-textdocument": "^1.0.3",
- "vscode-languageserver-types": "^3.16.0",
- "vscode-nls": "^5.0.0",
- "vscode-uri": "^3.0.3"
- }
- },
- "vscode-languageserver-textdocument": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz",
- "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==",
- "peer": true
- },
- "vscode-languageserver-types": {
- "version": "3.17.5",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
- "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==",
- "peer": true
- },
- "vscode-nls": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz",
- "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==",
- "peer": true
- },
- "vscode-uri": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz",
- "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==",
- "peer": true
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
- "peer": true,
- "requires": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
- }
- },
- "which-typed-array": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz",
- "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==",
- "peer": true,
- "requires": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.4",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0"
- }
- },
- "workerpool": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
- "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
- "dev": true
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
- },
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true
- },
- "yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "requires": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- }
- },
- "yargs-parser": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
- "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
- "dev": true
- },
- "yargs-unparser": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
- "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
- "dev": true,
- "requires": {
- "camelcase": "^6.0.0",
- "decamelize": "^4.0.0",
- "flat": "^5.0.2",
- "is-plain-obj": "^2.1.0"
- }
- },
- "yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
- }
}
}
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/package.json b/tools/lint/eslint/eslint-plugin-mozilla/package.json
index 9d4a111dd2..5d54e8b387 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/package.json
+++ b/tools/lint/eslint/eslint-plugin-mozilla/package.json
@@ -1,6 +1,6 @@
{
"name": "eslint-plugin-mozilla",
- "version": "3.7.0",
+ "version": "3.7.1",
"description": "A collection of rules that help enforce JavaScript coding standard in the Mozilla project.",
"keywords": [
"eslint",
@@ -24,11 +24,11 @@
"eslint-visitor-keys": "^3.4.3",
"espree": "^9.6.1",
"estraverse": "^5.3.0",
- "htmlparser2": "^8.0.1",
+ "htmlparser2": "^9.1.0",
"toml-eslint-parser": "0.9.3"
},
"devDependencies": {
- "eslint": "8.56.0",
+ "eslint": "8.57.0",
"mocha": "10.2.0"
},
"peerDependencies": {
@@ -36,7 +36,7 @@
"eslint": "^7.23.0 || ^8.0.0",
"eslint-config-prettier": "^8.0.0 || ^9.0.0",
"eslint-plugin-fetch-options": "^0.0.5",
- "eslint-plugin-html": "^7.0.0",
+ "eslint-plugin-html": "^7.0.0 || ^8.0.0",
"eslint-plugin-json": "^3.1.0",
"eslint-plugin-no-unsanitized": "^4.0.0"
},
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/reporters/mozilla-format.js b/tools/lint/eslint/eslint-plugin-mozilla/reporters/mozilla-format.js
index a3f96e7bef..56b6dd06f0 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/reporters/mozilla-format.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/reporters/mozilla-format.js
@@ -8,6 +8,9 @@
* mach itself.
*/
+// This is a non-production file that needs to log.
+/* eslint-disable no-console */
+
"use strict";
var mocha = require("mocha");
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/scripts/createExports.js b/tools/lint/eslint/eslint-plugin-mozilla/scripts/createExports.js
index 7f839edfba..3b89f31cce 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/scripts/createExports.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/scripts/createExports.js
@@ -4,6 +4,10 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
+
+// This is a non-production script.
+/* eslint-disable no-console */
+
"use strict";
var fs = require("fs");
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/tests/avoid-Date-timing.js b/tools/lint/eslint/eslint-plugin-mozilla/tests/avoid-Date-timing.js
index 37fc424617..54cf29ab68 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/tests/avoid-Date-timing.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/tests/avoid-Date-timing.js
@@ -16,7 +16,7 @@ const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: "latest" } });
// Tests
// ------------------------------------------------------------------------------
-function invalidCode(code, type, message) {
+function invalidCode(code, type) {
return { code, errors: [{ messageId: "usePerfNow", type }] };
}
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/tests/helper-no-more-globals.js.globals b/tools/lint/eslint/eslint-plugin-mozilla/tests/helper-no-more-globals.js.globals
new file mode 100644
index 0000000000..029ed81ce0
--- /dev/null
+++ b/tools/lint/eslint/eslint-plugin-mozilla/tests/helper-no-more-globals.js.globals
@@ -0,0 +1 @@
+["foo"]
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/tests/no-comparison-or-assignment-inside-ok.js b/tools/lint/eslint/eslint-plugin-mozilla/tests/no-comparison-or-assignment-inside-ok.js
index 3c43e5879f..59e31d7361 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/tests/no-comparison-or-assignment-inside-ok.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/tests/no-comparison-or-assignment-inside-ok.js
@@ -16,7 +16,7 @@ const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: "latest" } });
// Tests
// ------------------------------------------------------------------------------
-function invalidCode(code, output, messageId, options = []) {
+function invalidCode(code, output, messageId) {
let rv = {
code,
errors: [{ messageId }],
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/tests/no-more-globals.js b/tools/lint/eslint/eslint-plugin-mozilla/tests/no-more-globals.js
new file mode 100644
index 0000000000..5b4b560e3c
--- /dev/null
+++ b/tools/lint/eslint/eslint-plugin-mozilla/tests/no-more-globals.js
@@ -0,0 +1,38 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+// ------------------------------------------------------------------------------
+// Requirements
+// ------------------------------------------------------------------------------
+
+var rule = require("../lib/rules/no-more-globals");
+var RuleTester = require("eslint").RuleTester;
+
+const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: "latest" } });
+
+function makeTest(code, errors = []) {
+ return {
+ code,
+ errors,
+ filename: __dirname + "/helper-no-more-globals.js",
+ };
+}
+
+ruleTester.run("no-more-globals", rule, {
+ valid: [
+ makeTest("function foo() {}"),
+ makeTest("var foo = 5;"),
+ makeTest("let foo = 42;"),
+ ],
+ invalid: [
+ makeTest("console.log('hello');", [
+ { messageId: "removedGlobal", data: { name: "foo" } },
+ ]),
+ makeTest("let bar = 42;", [
+ { messageId: "newGlobal", data: { name: "bar" } },
+ { messageId: "removedGlobal", data: { name: "foo" } },
+ ]),
+ ],
+});
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/tests/reject-top-level-await.js b/tools/lint/eslint/eslint-plugin-mozilla/tests/reject-top-level-await.js
index 4416b42abb..537deb9ac8 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/tests/reject-top-level-await.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/tests/reject-top-level-await.js
@@ -18,7 +18,7 @@ const ruleTester = new RuleTester({
// Tests
// ------------------------------------------------------------------------------
-function invalidCode(code, messageId) {
+function invalidCode(code) {
return { code, errors: [{ messageId: "rejectTopLevelAwait" }] };
}
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/tests/rejects-requires-await.js b/tools/lint/eslint/eslint-plugin-mozilla/tests/rejects-requires-await.js
index a7e95769c1..2be1beccf8 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/tests/rejects-requires-await.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/tests/rejects-requires-await.js
@@ -16,7 +16,7 @@ const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: "latest" } });
// Tests
// ------------------------------------------------------------------------------
-function invalidCode(code, messageId) {
+function invalidCode(code) {
return { code, errors: [{ messageId: "rejectRequiresAwait" }] };
}
diff --git a/tools/lint/eslint/eslint-plugin-mozilla/tests/use-static-import.js b/tools/lint/eslint/eslint-plugin-mozilla/tests/use-static-import.js
index 656e83e0e9..08b667cba9 100644
--- a/tools/lint/eslint/eslint-plugin-mozilla/tests/use-static-import.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/tests/use-static-import.js
@@ -41,7 +41,7 @@ ruleTester.run("use-static-import", rule, {
},
{
// importESModule with two args cannot be converted.
- code: 'const { f } = ChromeUtils.importESModule("some/module.sys.mjs", { loadInDevToolsLoader : true });',
+ code: 'const { f } = ChromeUtils.importESModule("some/module.sys.mjs", { global : "shared" });',
filename: "test.sys.mjs",
},
{
diff --git a/tools/lint/eslint/manifest.tt b/tools/lint/eslint/manifest.tt
index c1ec658b0e..bee00211ab 100644
--- a/tools/lint/eslint/manifest.tt
+++ b/tools/lint/eslint/manifest.tt
@@ -1,9 +1,9 @@
[
{
"filename": "eslint.tar.gz",
- "size": 22086762,
+ "size": 22159369,
"algorithm": "sha512",
- "digest": "abf5caa29669e1f8f889459b7af074f2744c7ba7e51901a1b3ad3e504c3f331d360616a0d9c1f0114034dce33874ca7ed3971a8ae7f38f21ae2a6b4514a0e5eb",
+ "digest": "683b12e0c7463c4e5ba0ec47d680744d7eb870438822963557526d490c36a6a7929d9d0471fbac9dd6f549953285ac734f25a9e0cb1b3651c38350e5582cce5e",
"unpack": true,
"visibility": "public"
}
diff --git a/tools/lint/ignorefile.yml b/tools/lint/ignorefile.yml
new file mode 100644
index 0000000000..5ae3b282a5
--- /dev/null
+++ b/tools/lint/ignorefile.yml
@@ -0,0 +1,10 @@
+---
+ignorefile:
+ description: Linter for .gitignore and .hgignore files
+ include:
+ - '.gitignore'
+ - '.hgignore'
+ support-files:
+ - 'tools/lint/ignorefile**'
+ type: external
+ payload: ignorefile:lint
diff --git a/tools/lint/ignorefile/__init__.py b/tools/lint/ignorefile/__init__.py
new file mode 100644
index 0000000000..2b8ed8301f
--- /dev/null
+++ b/tools/lint/ignorefile/__init__.py
@@ -0,0 +1,162 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at https://mozilla.org/MPL/2.0/.
+
+import pathlib
+import re
+
+from mozlint import result
+from mozlint.pathutils import expand_exclusions
+
+validReasons = [
+ "git-only",
+ "hg-only",
+ "syntax-difference",
+]
+
+
+class IgnorePattern:
+ """A class that represents single pattern in .gitignore or .hgignore, and
+ provides rough comparison, and also hashing for SequenceMatcher."""
+
+ def __init__(self, pattern, lineno):
+ self.pattern = pattern
+ self.lineno = lineno
+
+ self.simplePattern = self.removePunctuation(pattern)
+ self.hash = hash(self.pattern)
+
+ @staticmethod
+ def removePunctuation(s):
+ # Remove special characters.
+ # '.' is also removed because .hgignore uses regular expression.
+ s = re.sub(r"[^A-Za-z0-9_~/]", "", s)
+
+ # '/' is kept, except for the following cases:
+ # * leading '/' in .gitignore to specify top-level file,
+ # which is represented as '^' in .hgignore
+ # * leading '(^|/)' in .hgignore to specify filename
+ # (characters except for '/' are removed above)
+ # * leading '[^/]*' in .hgignore
+ # (characters except for '/' are removed above)
+ s = re.sub(r"^/", "", s)
+
+ return s
+
+ def __eq__(self, other):
+ return self.simplePattern == other.simplePattern
+
+ def __hash__(self):
+ return self.hash
+
+
+def parseFile(results, path, config):
+ patterns = []
+ ignoreNextLine = False
+
+ lineno = 0
+ with open(path, "r") as f:
+ for line in f:
+ line = line.rstrip("\n")
+ lineno += 1
+
+ if ignoreNextLine:
+ ignoreNextLine = False
+ continue
+
+ m = re.match(r"^# lint-ignore-next-line: (.+)", line)
+ if m:
+ reason = m.group(1)
+ if reason not in validReasons:
+ res = {
+ "path": str(path),
+ "lineno": lineno,
+ "message": f'Unknown lint rule: "{reason}"',
+ "level": "error",
+ }
+ results.append(result.from_config(config, **res))
+ continue
+
+ ignoreNextLine = True
+ continue
+
+ m = line.startswith("#")
+ if m:
+ continue
+
+ if line == "":
+ continue
+
+ patterns.append(IgnorePattern(line, lineno))
+
+ return patterns
+
+
+def getLineno(patterns, index):
+ if index >= len(patterns):
+ return patterns[-1].lineno
+
+ return patterns[index].lineno
+
+
+def doLint(results, path1, config):
+ if path1.name == ".gitignore":
+ path2 = path1.parent / ".hgignore"
+ elif path1.name == ".hgignore":
+ path2 = path1.parent / ".gitignore"
+ else:
+ res = {
+ "path": str(path1),
+ "lineno": 0,
+ "message": "Unsupported file",
+ "level": "error",
+ }
+ results.append(result.from_config(config, **res))
+ return
+
+ patterns1 = parseFile(results, path1, config)
+ patterns2 = parseFile(results, path2, config)
+
+ # Comparison for each line is done via IgnorePattern.__eq__, which
+ # ignores punctuations.
+ if patterns1 == patterns2:
+ return
+
+ # Report minimal differences.
+ from difflib import SequenceMatcher
+
+ s = SequenceMatcher(None, patterns1, patterns2)
+ for tag, index1, _, index2, _ in s.get_opcodes():
+ if tag == "replace":
+ res = {
+ "path": str(path1),
+ "lineno": getLineno(patterns1, index1),
+ "message": f'Pattern mismatch: "{patterns1[index1].pattern}" in {path1.name} vs "{patterns2[index2].pattern}" in {path2.name}',
+ "level": "error",
+ }
+ results.append(result.from_config(config, **res))
+ elif tag == "delete":
+ res = {
+ "path": str(path1),
+ "lineno": getLineno(patterns1, index1),
+ "message": f'Pattern "{patterns1[index1].pattern}" not found in {path2.name}',
+ "level": "error",
+ }
+ results.append(result.from_config(config, **res))
+ elif tag == "insert":
+ res = {
+ "path": str(path1),
+ "lineno": getLineno(patterns1, index1),
+ "message": f'Pattern "{patterns2[index2].pattern}" not found in {path1.name}',
+ "level": "error",
+ }
+ results.append(result.from_config(config, **res))
+
+
+def lint(paths, config, fix=None, **lintargs):
+ results = []
+
+ for path in expand_exclusions(paths, config, lintargs["root"]):
+ doLint(results, pathlib.Path(path), config)
+
+ return {"results": results, "fixed": 0}
diff --git a/tools/lint/mach_commands.py b/tools/lint/mach_commands.py
index c9778e28a0..9b5648d9b0 100644
--- a/tools/lint/mach_commands.py
+++ b/tools/lint/mach_commands.py
@@ -23,7 +23,7 @@ if os.path.exists(thunderbird_excludes):
GLOBAL_EXCLUDES = ["**/node_modules", "tools/lint/test/files", ".hg", ".git"]
-VALID_FORMATTERS = {"black", "clang-format", "rustfmt", "isort"}
+VALID_FORMATTERS = {"black", "clang-format", "rustfmt"}
VALID_ANDROID_FORMATTERS = {"android-format"}
# Code-review bot must index issues from the whole codebase when pushing
@@ -56,7 +56,7 @@ def get_global_excludes(**lintargs):
]
)
- if lintargs.get("include_thirdparty"):
+ if lintargs.get("include_third-party"):
# For some linters, we want to include the thirdparty code too.
# Example: trojan-source linter should run also on third party code.
return excludes
diff --git a/tools/lint/perfdocs/framework_gatherers.py b/tools/lint/perfdocs/framework_gatherers.py
index 4c2ca585ad..75a6371731 100644
--- a/tools/lint/perfdocs/framework_gatherers.py
+++ b/tools/lint/perfdocs/framework_gatherers.py
@@ -258,6 +258,8 @@ class RaptorGatherer(FrameworkGatherer):
result += f" {idx+1}. **{description['name']}**\n\n"
if "owner" in description.keys():
result += f" **Owner**: {description['owner']}\n\n"
+ if test_description:
+ result += f" **Description**: {test_description}\n\n"
for key in sorted(description.keys()):
if key in ["owner", "name", "manifest", "metrics"]:
@@ -265,8 +267,8 @@ class RaptorGatherer(FrameworkGatherer):
sub_title = key.replace("_", " ")
if key == "test_url":
if "<" in description[key] or ">" in description[key]:
- description[key] = description[key].replace("<", "\<")
- description[key] = description[key].replace(">", "\>")
+ description[key] = description[key].replace("<", r"\<")
+ description[key] = description[key].replace(">", r"\>")
result += f" * **{sub_title}**: `<{description[key]}>`__\n"
elif key == "secondary_url":
result += f" * **{sub_title}**: `<{description[key]}>`__\n"
diff --git a/tools/lint/perfdocs/verifier.py b/tools/lint/perfdocs/verifier.py
index 6603b9acce..0f39e3a047 100644
--- a/tools/lint/perfdocs/verifier.py
+++ b/tools/lint/perfdocs/verifier.py
@@ -101,7 +101,7 @@ class Verifier(object):
):
"""Determine if a target name (from a YAML) matches with a test."""
tb = os.path.basename(target_test_name)
- tb = re.sub("\..*", "", tb)
+ tb = re.sub(r"\..*", "", tb)
if test_name == tb:
# Found an exact match for the test_name
return True
@@ -169,7 +169,7 @@ class Verifier(object):
for test_name, test_info in test_list.items():
manifest_path = test_info.get("path", test_info.get("manifest", ""))
tb = os.path.basename(manifest_path)
- tb = re.sub("\..*", "", tb)
+ tb = re.sub(r"\..*", "", tb)
if (
stests.get(tb, None) is not None
or stests.get(test_name, None) is not None
diff --git a/tools/lint/rejected-words.yml b/tools/lint/rejected-words.yml
index 5b5d3d696a..d45bcf5d08 100644
--- a/tools/lint/rejected-words.yml
+++ b/tools/lint/rejected-words.yml
@@ -41,7 +41,6 @@ avoid-blacklist-and-whitelist:
- browser/base/content/test/protectionsUI/browser_protectionsUI_cryptominers.js
- browser/base/content/test/protectionsUI/browser_protectionsUI_fingerprinters.js
- browser/base/content/test/protectionsUI/browser_protectionsUI_pbmode_exceptions.js
- - browser/base/content/test/protectionsUI/browser_protectionsUI_report_breakage.js
- browser/base/content/test/protectionsUI/browser_protectionsUI_socialtracking.js
- browser/base/content/test/protectionsUI/browser_protectionsUI_state.js
- browser/base/content/test/protectionsUI/browser_protectionsUI_subview_shim.js
diff --git a/tools/lint/test/python.toml b/tools/lint/test/python.toml
index 65036449a8..2f010c9043 100644
--- a/tools/lint/test/python.toml
+++ b/tools/lint/test/python.toml
@@ -26,6 +26,8 @@ skip-if = ["os == 'win'"]
["test_fluent_lint.py"]
+["test_ignorefile.py"]
+
["test_lintpref.py"]
["test_manifest_alpha.py"]
diff --git a/tools/lint/test/test_ignorefile.py b/tools/lint/test/test_ignorefile.py
new file mode 100644
index 0000000000..502096c5b9
--- /dev/null
+++ b/tools/lint/test/test_ignorefile.py
@@ -0,0 +1,170 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import mozunit
+
+LINTER = "ignorefile"
+
+
+def test_same(lint, create_temp_file):
+ hgContents = """
+\\.pyc$
+\\.pyo$
+ """
+ gitContents = """
+*.pyc
+*.pyo
+ """
+
+ path = create_temp_file(hgContents, ".hgignore")
+ create_temp_file(gitContents, ".gitignore")
+
+ results = lint([path])
+
+ assert len(results) == 0
+
+
+def test_replace(lint, create_temp_file):
+ hgContents = """
+\\.pyc$
+\\.pyo$
+ """
+ gitContents = """
+*.pyc
+*.pyp
+ """
+
+ path = create_temp_file(hgContents, ".hgignore")
+ path2 = create_temp_file(gitContents, ".gitignore")
+
+ results = lint([path])
+
+ assert len(results) == 1
+ assert results[0].level == "error"
+ assert results[0].lineno == 3
+ assert (
+ results[0].message
+ == 'Pattern mismatch: "\\.pyo$" in .hgignore vs "*.pyp" in .gitignore'
+ )
+
+ results = lint([path2])
+
+ assert len(results) == 1
+ assert results[0].level == "error"
+ assert results[0].lineno == 3
+ assert (
+ results[0].message
+ == 'Pattern mismatch: "*.pyp" in .gitignore vs "\\.pyo$" in .hgignore'
+ )
+
+
+def test_insert(lint, create_temp_file):
+ hgContents = """
+\\.pyc$
+\\.pyo$
+ """
+ gitContents = """
+*.pyc
+foo
+*.pyo
+ """
+
+ path = create_temp_file(hgContents, ".hgignore")
+ create_temp_file(gitContents, ".gitignore")
+
+ results = lint([path])
+
+ assert len(results) == 1
+ assert results[0].level == "error"
+ assert results[0].lineno == 3
+ assert results[0].message == 'Pattern "foo" not found in .hgignore'
+
+
+def test_delete(lint, create_temp_file):
+ hgContents = """
+\\.pyc$
+foo
+\\.pyo$
+ """
+ gitContents = """
+*.pyc
+*.pyo
+ """
+
+ path = create_temp_file(hgContents, ".hgignore")
+ create_temp_file(gitContents, ".gitignore")
+
+ results = lint([path])
+
+ assert len(results) == 1
+ assert results[0].level == "error"
+ assert results[0].lineno == 3
+ assert results[0].message == 'Pattern "foo" not found in .gitignore'
+
+
+def test_ignore(lint, create_temp_file):
+ hgContents = """
+\\.pyc$
+# lint-ignore-next-line: hg-only
+foo
+\\.pyo$
+# lint-ignore-next-line: syntax-difference
+(file1|file2)
+diff1
+ """
+ gitContents = """
+*.pyc
+*.pyo
+# lint-ignore-next-line: git-only
+bar
+# lint-ignore-next-line: syntax-difference
+file1
+# lint-ignore-next-line: syntax-difference
+file2
+diff2
+ """
+
+ path = create_temp_file(hgContents, ".hgignore")
+ create_temp_file(gitContents, ".gitignore")
+
+ results = lint([path])
+
+ # Only the line without lint-ignore-next-line should be reported
+ assert len(results) == 1
+ assert results[0].level == "error"
+ assert results[0].lineno == 8
+ assert (
+ results[0].message
+ == 'Pattern mismatch: "diff1" in .hgignore vs "diff2" in .gitignore'
+ )
+
+
+def test_invalid_syntax(lint, create_temp_file):
+ hgContents = """
+\\.pyc$
+# lint-ignore-next-line: random
+foo
+\\.pyo$
+ """
+ gitContents = """
+*.pyc
+*.pyo
+ """
+
+ path = create_temp_file(hgContents, ".hgignore")
+ create_temp_file(gitContents, ".gitignore")
+
+ results = lint([path])
+
+ assert len(results) == 2
+ assert results[0].level == "error"
+ assert results[0].lineno == 3
+ assert results[0].message == 'Unknown lint rule: "random"'
+ assert results[1].level == "error"
+ assert results[1].lineno == 4
+ assert results[1].message == 'Pattern "foo" not found in .gitignore'
+
+
+if __name__ == "__main__":
+ mozunit.main()
diff --git a/tools/lint/trojan-source.yml b/tools/lint/trojan-source.yml
index 9b25962b2e..611ab660f5 100644
--- a/tools/lint/trojan-source.yml
+++ b/tools/lint/trojan-source.yml
@@ -10,7 +10,12 @@ trojan-source:
- modules/freetype2/builds/amiga/include/config/ftconfig.h
- modules/freetype2/builds/amiga/include/config/ftmodule.h
- modules/freetype2/builds/amiga/src/base/ftsystem.c
+ - third_party/aom/test/dr_prediction_test.cc
+ - third_party/python/arrow/arrow/locales.py
- third_party/rust/chardetng/src/data.rs
+ - third_party/rust/clap_builder/src/output/textwrap/core.rs
+ - third_party/rust/icu_provider/src/hello_world.rs
+ - third_party/rust/uniffi-example-rondpoint/tests/bindings/test_rondpoint.py
- third_party/rust/error-chain/tests/tests.rs
- third_party/rust/unicode-width/src/tests.rs
- security/nss/gtests/mozpkix_gtest/pkixnames_tests.cpp
diff --git a/tools/lint/yamllint_/__init__.py b/tools/lint/yamllint_/__init__.py
index 2244fabd3f..d0087fbbc4 100644
--- a/tools/lint/yamllint_/__init__.py
+++ b/tools/lint/yamllint_/__init__.py
@@ -15,7 +15,9 @@ from mozlint import result
from mozlint.pathutils import get_ancestors_by_name
from mozlint.util.implementation import LintProcess
-YAMLLINT_FORMAT_REGEX = re.compile("(.*):(.*):(.*): \[(error|warning)\] (.*) \((.*)\)$")
+YAMLLINT_FORMAT_REGEX = re.compile(
+ r"(.*):(.*):(.*): \[(error|warning)\] (.*) \((.*)\)$"
+)
results = []
diff --git a/tools/profiler/core/ETWTools.cpp b/tools/profiler/core/ETWTools.cpp
index b8fab9b316..50b5588392 100644
--- a/tools/profiler/core/ETWTools.cpp
+++ b/tools/profiler/core/ETWTools.cpp
@@ -11,13 +11,24 @@
namespace ETW {
std::atomic<ULONGLONG> gETWCollectionMask = 0;
-// Define a handle to a TraceLogging provider
+// Define a handle to a TraceLogging provider.
+//
+// > All ETW providers are identified by both provider name and provider ID.
+// > [...]
+// > Microsoft recommends generating the provider ID from the provider name
+// > using the ETW name-hashing algorithm described below. This provides
+// > several benefits: it's easier to remember just the name; the ID and the
+// > name are automatically linked; tools such as tracelog, traceview,
+// > EventSource, and WPR have special support for providers that use IDs
+// > generated using this algorithm.
+//
+// https://learn.microsoft.com/en-us/windows/win32/api/traceloggingprovider/nf-traceloggingprovider-tracelogging_define_provider
+//
+// The GUID generated for "Mozilla.FirefoxTraceLogger" is:
+// {c923f508-96e4-5515-e32c-7539d1b10504}
TRACELOGGING_DEFINE_PROVIDER(kFirefoxTraceLoggingProvider,
"Mozilla.FirefoxTraceLogger",
- // This GUID is a hash generated based on the
- // above string.
- // {c923f508-96e4-5515-e32c-7539d1b10504}
- (0xc923f508, 0x96e4, 0x5515, 0xe3, 0x3c, 0x75,
+ (0xc923f508, 0x96e4, 0x5515, 0xe3, 0x2c, 0x75,
0x39, 0xd1, 0xb1, 0x05, 0x04));
static void NTAPI ETWEnableCallback(LPCGUID aSourceId, ULONG aIsEnabled,
diff --git a/tools/profiler/core/ProfileBuffer.cpp b/tools/profiler/core/ProfileBuffer.cpp
index bc6314fa32..d785cf7956 100644
--- a/tools/profiler/core/ProfileBuffer.cpp
+++ b/tools/profiler/core/ProfileBuffer.cpp
@@ -193,9 +193,10 @@ void ProfileBufferCollector::CollectJitReturnAddr(void* aAddr) {
mBuf.AddEntry(ProfileBufferEntry::JitReturnAddr(aAddr));
}
-void ProfileBufferCollector::CollectWasmFrame(const char* aLabel) {
+void ProfileBufferCollector::CollectWasmFrame(
+ JS::ProfilingCategoryPair aCategory, const char* aLabel) {
mBuf.CollectCodeLocation("", aLabel, 0, 0, Nothing(), Nothing(),
- Some(JS::ProfilingCategoryPair::JS_Wasm));
+ Some(aCategory));
}
void ProfileBufferCollector::CollectProfilingStackFrame(
diff --git a/tools/profiler/core/ProfileBuffer.h b/tools/profiler/core/ProfileBuffer.h
index 5da34909cc..383c7b16d6 100644
--- a/tools/profiler/core/ProfileBuffer.h
+++ b/tools/profiler/core/ProfileBuffer.h
@@ -247,7 +247,8 @@ class ProfileBufferCollector final : public ProfilerStackCollector {
virtual void CollectNativeLeafAddr(void* aAddr) override;
virtual void CollectJitReturnAddr(void* aAddr) override;
- virtual void CollectWasmFrame(const char* aLabel) override;
+ virtual void CollectWasmFrame(JS::ProfilingCategoryPair aCategory,
+ const char* aLabel) override;
virtual void CollectProfilingStackFrame(
const js::ProfilingStackFrame& aFrame) override;
diff --git a/tools/profiler/core/platform-macos.cpp b/tools/profiler/core/platform-macos.cpp
index 356d9f803e..78f000c470 100644
--- a/tools/profiler/core/platform-macos.cpp
+++ b/tools/profiler/core/platform-macos.cpp
@@ -15,7 +15,6 @@
#include <semaphore.h>
#include <signal.h>
#include <libkern/OSAtomic.h>
-#include <libproc.h>
#include <mach/mach.h>
#include <mach/semaphore.h>
#include <mach/task.h>
@@ -83,13 +82,12 @@ static RunningTimes GetProcessRunningTimesDiff(
{
AUTO_PROFILER_STATS(GetProcessRunningTimes_task_info);
- static const auto pid = getpid();
- struct proc_taskinfo pti;
- if ((unsigned long)proc_pidinfo(pid, PROC_PIDTASKINFO, 0, &pti,
- PROC_PIDTASKINFO_SIZE) >=
- PROC_PIDTASKINFO_SIZE) {
- newRunningTimes.SetThreadCPUDelta(pti.pti_total_user +
- pti.pti_total_system);
+ task_power_info_data_t task_power_info;
+ mach_msg_type_number_t count = TASK_POWER_INFO_COUNT;
+ if (task_info(mach_task_self(), TASK_POWER_INFO,
+ (task_info_t)&task_power_info, &count) == KERN_SUCCESS) {
+ newRunningTimes.SetThreadCPUDelta(task_power_info.total_user +
+ task_power_info.total_system);
}
newRunningTimes.SetPostMeasurementTimeStamp(TimeStamp::Now());
};
diff --git a/tools/profiler/core/platform.cpp b/tools/profiler/core/platform.cpp
index e4af84ed4c..8ce029402b 100644
--- a/tools/profiler/core/platform.cpp
+++ b/tools/profiler/core/platform.cpp
@@ -114,7 +114,7 @@
# include "mozilla/jni/Refs.h"
#endif
-#if defined(GP_OS_darwin)
+#if defined(XP_MACOSX)
# include "nsCocoaFeatures.h"
#endif
@@ -275,7 +275,7 @@ class GeckoJavaSampler
featureStringArray.length());
// 128 * 1024 * 1024 is the entries preset that is given in
- // devtools/client/performance-new/shared/background.jsm.js
+ // devtools/client/performance-new/shared/background.sys.mjs
profiler_start(PowerOfTwo32(128 * 1024 * 1024), 5.0, features,
filtersTemp.begin(), filtersTemp.length(), 0, Nothing());
}
@@ -2055,8 +2055,10 @@ static void MergeStacks(
// the buffer, nsRefreshDriver would now be holding on to a backtrace
// with stale JIT code return addresses.
if (aIsSynchronous ||
- jsFrame.kind == JS::ProfilingFrameIterator::Frame_Wasm) {
- aCollector.CollectWasmFrame(jsFrame.label);
+ jsFrame.kind == JS::ProfilingFrameIterator::Frame_WasmIon ||
+ jsFrame.kind == JS::ProfilingFrameIterator::Frame_WasmBaseline ||
+ jsFrame.kind == JS::ProfilingFrameIterator::Frame_WasmOther) {
+ aCollector.CollectWasmFrame(jsFrame.profilingCategory(), jsFrame.label);
} else if (jsFrame.kind ==
JS::ProfilingFrameIterator::Frame_BaselineInterpreter) {
// Materialize a ProfilingStackFrame similar to the C++ Interpreter. We
@@ -2803,7 +2805,7 @@ static PreRecordedMetaInformation PreRecordMetaInformation(
!NS_FAILED(res) && http) {
Unused << http->GetPlatform(info.mHttpPlatform);
-#if defined(GP_OS_darwin)
+#if defined(XP_MACOSX)
// On Mac, the http "oscpu" is capped at 10.15, so we need to get the real
// OS version directly.
int major = 0;
diff --git a/tools/profiler/docs/markers-guide.rst b/tools/profiler/docs/markers-guide.rst
index 86744c523c..ed18b35867 100644
--- a/tools/profiler/docs/markers-guide.rst
+++ b/tools/profiler/docs/markers-guide.rst
@@ -319,7 +319,7 @@ A marker type must have a unique name, it is used to keep track of the type of
markers in the profiler storage, and to identify them uniquely on profiler.firefox.com.
(It does not need to be the same as the ``struct``'s name.)
-This name is defined in a special static data member ``Name``:
+This type name is defined in a special static data member ``Name``:
.. code-block:: cpp
@@ -333,6 +333,14 @@ In addition you must add a description of your marker in a special static data m
// …
static constexpr const char* Description = "This is my marker!";
+If you expect users to be passing unique names for individual instances of the marker,
+you may want to add the following to ensure those names get stored when using ETW:
+
+.. code-block:: cpp
+
+ // …
+ static constexpr bool StoreName = true;
+
Marker Type Data
^^^^^^^^^^^^^^^^
diff --git a/tools/profiler/gecko/ChildProfilerController.cpp b/tools/profiler/gecko/ChildProfilerController.cpp
index f51cb9437d..864e45f683 100644
--- a/tools/profiler/gecko/ChildProfilerController.cpp
+++ b/tools/profiler/gecko/ChildProfilerController.cpp
@@ -77,9 +77,9 @@ void ChildProfilerController::ShutdownAndMaybeGrabShutdownProfileFirst(
}
if (profilerChildThread) {
if (profiler_is_active()) {
- CrashReporter::AnnotateCrashReport(
+ CrashReporter::RecordAnnotationCString(
CrashReporter::Annotation::ProfilerChildShutdownPhase,
- "Profiling - Dispatching ShutdownProfilerChild"_ns);
+ "Profiling - Dispatching ShutdownProfilerChild");
profilerChildThread->Dispatch(
NewRunnableMethod<ProfileAndAdditionalInformation*>(
"ChildProfilerController::ShutdownProfilerChild", this,
@@ -90,9 +90,9 @@ void ChildProfilerController::ShutdownAndMaybeGrabShutdownProfileFirst(
// (including the ShutdownProfilerChild runnable) have been processed.
profilerChildThread->Shutdown();
} else {
- CrashReporter::AnnotateCrashReport(
+ CrashReporter::RecordAnnotationCString(
CrashReporter::Annotation::ProfilerChildShutdownPhase,
- "Not profiling - Running ShutdownProfilerChild"_ns);
+ "Not profiling - Running ShutdownProfilerChild");
// If we're not profiling, this operation will be very quick, so it can be
// done synchronously. This avoids having to manually shutdown the thread,
// which runs a risky inner event loop, see bug 1613798.
@@ -148,23 +148,24 @@ void ChildProfilerController::ShutdownProfilerChild(
ProfileAndAdditionalInformation* aOutShutdownProfileInformation) {
const bool isProfiling = profiler_is_active();
if (aOutShutdownProfileInformation) {
- CrashReporter::AnnotateCrashReport(
+ CrashReporter::RecordAnnotationCString(
CrashReporter::Annotation::ProfilerChildShutdownPhase,
- isProfiling ? "Profiling - GrabShutdownProfile"_ns
- : "Not profiling - GrabShutdownProfile"_ns);
+ isProfiling ? "Profiling - GrabShutdownProfile"
+ : "Not profiling - GrabShutdownProfile");
*aOutShutdownProfileInformation = mProfilerChild->GrabShutdownProfile();
}
- CrashReporter::AnnotateCrashReport(
+ CrashReporter::RecordAnnotationCString(
CrashReporter::Annotation::ProfilerChildShutdownPhase,
- isProfiling ? "Profiling - Destroying ProfilerChild"_ns
- : "Not profiling - Destroying ProfilerChild"_ns);
+ isProfiling ? "Profiling - Destroying ProfilerChild"
+ : "Not profiling - Destroying ProfilerChild");
mProfilerChild->Destroy();
mProfilerChild = nullptr;
- CrashReporter::AnnotateCrashReport(
+ CrashReporter::RecordAnnotationCString(
CrashReporter::Annotation::ProfilerChildShutdownPhase,
- isProfiling
- ? "Profiling - ShutdownProfilerChild complete, waiting for thread shutdown"_ns
- : "Not Profiling - ShutdownProfilerChild complete, waiting for thread shutdown"_ns);
+ isProfiling ? "Profiling - ShutdownProfilerChild complete, waiting for "
+ "thread shutdown"
+ : "Not Profiling - ShutdownProfilerChild complete, waiting "
+ "for thread shutdown");
}
} // namespace mozilla
diff --git a/tools/profiler/public/ETWTools.h b/tools/profiler/public/ETWTools.h
index a1d986a6fd..cbd73004ba 100644
--- a/tools/profiler/public/ETWTools.h
+++ b/tools/profiler/public/ETWTools.h
@@ -22,6 +22,8 @@ namespace ETW {
extern std::atomic<ULONGLONG> gETWCollectionMask;
+constexpr const char* kNameKey = "MarkerName";
+
// Forward-declare the g_hMyComponentProvider variable that you will use for
// tracing in this component
TRACELOGGING_DECLARE_PROVIDER(kFirefoxTraceLoggingProvider);
@@ -29,32 +31,46 @@ TRACELOGGING_DECLARE_PROVIDER(kFirefoxTraceLoggingProvider);
void Init();
void Shutdown();
+template <typename T, typename = void>
+struct MarkerHasPayload : std::false_type {};
+template <typename T>
+struct MarkerHasPayload<T, std::void_t<decltype(T::PayloadFields)>>
+ : std::true_type {};
+
// This describes the base fields for all markers (information extracted from
// MarkerOptions.
struct BaseMarkerDescription {
+ static constexpr bool StoreName = false;
using MS = mozilla::MarkerSchema;
static constexpr MS::PayloadField PayloadFields[] = {
{"StartTime", MS::InputType::TimeStamp, "Start Time"},
{"EndTime", MS::InputType::TimeStamp, "End Time"},
+ {"Phase", MS::InputType::Uint8, "Phase"},
{"InnerWindowId", MS::InputType::Uint64, "Inner Window ID"},
{"CategoryPair", MS::InputType::Uint32, "Category Pair"}};
};
// This is the MarkerType object for markers with no statically declared type,
// their name is written dynamically.
-struct SimpleMarkerType {
+struct SimpleMarkerType : public mozilla::BaseMarkerType<SimpleMarkerType> {
using MS = mozilla::MarkerSchema;
+
static constexpr const char* Name = "SimpleMarker";
- static constexpr MS::PayloadField PayloadFields[] = {
- {"MarkerName", MS::InputType::CString, "Simple Marker Name"}};
+ static constexpr bool StoreName = true;
};
// This gets the space required in the Tlg static struct to pack the fields.
template <typename T>
constexpr std::size_t GetPackingSpace() {
size_t length = 0;
- for (size_t i = 0; i < std::size(T::PayloadFields); i++) {
- length += std::string_view{T::PayloadFields[i].Key}.size() + 1;
+ if constexpr (MarkerHasPayload<T>::value) {
+ for (size_t i = 0; i < std::size(T::PayloadFields); i++) {
+ length += std::string_view{T::PayloadFields[i].Key}.size() + 1;
+ length += sizeof(uint8_t);
+ }
+ }
+ if (T::StoreName) {
+ length += std::string_view{kNameKey}.size() + 1;
length += sizeof(uint8_t);
}
return length;
@@ -65,6 +81,7 @@ constexpr uint8_t GetTlgInputType(mozilla::MarkerSchema::InputType aInput) {
using InputType = mozilla::MarkerSchema::InputType;
switch (aInput) {
case InputType::Boolean:
+ case InputType::Uint8:
return TlgInUINT8;
case InputType::Uint32:
return TlgInUINT32;
@@ -121,12 +138,20 @@ struct StaticMetaData {
fieldStorage[pos++] =
GetTlgInputType(BaseMarkerDescription::PayloadFields[i].InputTy);
}
- for (uint32_t i = 0; i < std::size(T::PayloadFields); i++) {
- for (size_t c = 0;
- c < std::string_view{T::PayloadFields[i].Key}.size() + 1; c++) {
- fieldStorage[pos++] = T::PayloadFields[i].Key[c];
+ if (T::StoreName) {
+ for (size_t c = 0; c < std::string_view{kNameKey}.size() + 1; c++) {
+ fieldStorage[pos++] = kNameKey[c];
+ }
+ fieldStorage[pos++] = TlgInANSISTRING;
+ }
+ if constexpr (MarkerHasPayload<T>::value) {
+ for (uint32_t i = 0; i < std::size(T::PayloadFields); i++) {
+ for (size_t c = 0;
+ c < std::string_view{T::PayloadFields[i].Key}.size() + 1; c++) {
+ fieldStorage[pos++] = T::PayloadFields[i].Key[c];
+ }
+ fieldStorage[pos++] = GetTlgInputType(T::PayloadFields[i].InputTy);
}
- fieldStorage[pos++] = GetTlgInputType(T::PayloadFields[i].InputTy);
}
}
};
@@ -146,10 +171,11 @@ struct PayloadBuffer {
// Theoretically we could probably avoid these assignments when passed a POD
// variable we know is going to be alive but that would require some more
// template magic.
+
template <typename T>
-static void CreateDataDescForPayload(PayloadBuffer& aBuffer,
- EVENT_DATA_DESCRIPTOR& aDescriptor,
- const T& aPayload) {
+void CreateDataDescForPayloadPOD(PayloadBuffer& aBuffer,
+ EVENT_DATA_DESCRIPTOR& aDescriptor,
+ const T& aPayload) {
static_assert(std::is_pod<T>::value,
"Writing a non-POD payload requires template specialization.");
@@ -164,16 +190,22 @@ static void CreateDataDescForPayload(PayloadBuffer& aBuffer,
EventDataDescCreate(&aDescriptor, storedValue, sizeof(T));
}
-template <>
-inline void CreateDataDescForPayload<mozilla::ProfilerString8View>(
+static inline void CreateDataDescForPayloadNonPOD(
PayloadBuffer& aBuffer, EVENT_DATA_DESCRIPTOR& aDescriptor,
const mozilla::ProfilerString8View& aPayload) {
EventDataDescCreate(&aDescriptor, aPayload.StringView().data(),
aPayload.StringView().size() + 1);
}
-template <>
-inline void CreateDataDescForPayload<mozilla::TimeStamp>(
+template <typename T>
+static inline void CreateDataDescForPayloadNonPOD(
+ PayloadBuffer& aBuffer, EVENT_DATA_DESCRIPTOR& aDescriptor,
+ const mozilla::detail::nsTStringRepr<T>& aPayload) {
+ EventDataDescCreate(&aDescriptor, aPayload.BeginReading(),
+ (aPayload.Length() + 1) * sizeof(T));
+}
+
+static inline void CreateDataDescForPayloadNonPOD(
PayloadBuffer& aBuffer, EVENT_DATA_DESCRIPTOR& aDescriptor,
const mozilla::TimeStamp& aPayload) {
if (aPayload.RawQueryPerformanceCounterValue().isNothing()) {
@@ -182,32 +214,25 @@ inline void CreateDataDescForPayload<mozilla::TimeStamp>(
return;
}
- CreateDataDescForPayload(aBuffer, aDescriptor,
- aPayload.RawQueryPerformanceCounterValue().value());
+ CreateDataDescForPayloadPOD(
+ aBuffer, aDescriptor, aPayload.RawQueryPerformanceCounterValue().value());
}
-template <>
-inline void CreateDataDescForPayload<mozilla::TimeDuration>(
+static inline void CreateDataDescForPayloadNonPOD(
PayloadBuffer& aBuffer, EVENT_DATA_DESCRIPTOR& aDescriptor,
const mozilla::TimeDuration& aPayload) {
- CreateDataDescForPayload(aBuffer, aDescriptor, aPayload.ToMilliseconds());
+ CreateDataDescForPayloadPOD(aBuffer, aDescriptor, aPayload.ToMilliseconds());
}
-// For reasons that are beyond me if this isn't marked inline it generates an
-// unused function warning despite being a template specialization.
-template <typename T>
-inline void CreateDataDescForPayload(PayloadBuffer& aBuffer,
- EVENT_DATA_DESCRIPTOR& aDescriptor,
- const nsTString<T>& aPayload) {
- EventDataDescCreate(&aDescriptor, aPayload.BeginReading(),
- (aPayload.Length() + 1) * sizeof(T));
-}
template <typename T>
-inline void CreateDataDescForPayload(PayloadBuffer& aBuffer,
- EVENT_DATA_DESCRIPTOR& aDescriptor,
- const nsTSubstring<T>& aPayload) {
- EventDataDescCreate(&aDescriptor, aPayload.BeginReading(),
- (aPayload.Length() + 1) * sizeof(T));
+static inline void CreateDataDescForPayload(PayloadBuffer& aBuffer,
+ EVENT_DATA_DESCRIPTOR& aDescriptor,
+ const T& aPayload) {
+ if constexpr (std::is_pod<T>::value) {
+ CreateDataDescForPayloadPOD(aBuffer, aDescriptor, aPayload);
+ } else {
+ CreateDataDescForPayloadNonPOD(aBuffer, aDescriptor, aPayload);
+ }
}
// Template specialization that writes out empty data descriptors for an empty
@@ -223,11 +248,17 @@ void CreateDataDescForPayload(PayloadBuffer& aBuffer,
}
}
+template <size_t N>
+void CreateDataDescForPayload(PayloadBuffer& aBuffer,
+ EVENT_DATA_DESCRIPTOR& aDescriptor,
+ const char (&aPayload)[N]) {
+ EventDataDescCreate(&aDescriptor, aPayload, N + 1);
+}
+
template <typename T, typename = void>
struct MarkerSupportsETW : std::false_type {};
template <typename T>
-struct MarkerSupportsETW<T, std::void_t<decltype(T::PayloadFields)>>
- : std::true_type {};
+struct MarkerSupportsETW<T, std::void_t<decltype(T::Name)>> : std::true_type {};
template <typename T, typename = void>
struct MarkerHasTranslator : std::false_type {};
@@ -239,6 +270,7 @@ struct MarkerHasTranslator<
struct BaseEventStorage {
uint64_t mStartTime;
uint64_t mEndTime;
+ uint8_t mPhase;
uint64_t mWindowID;
uint32_t mCategoryPair;
};
@@ -247,11 +279,16 @@ static inline void StoreBaseEventDataDesc(
BaseEventStorage& aStorage, EVENT_DATA_DESCRIPTOR* aDescriptors,
const mozilla::MarkerCategory& aCategory,
const mozilla::MarkerOptions& aOptions) {
- if (!aOptions.IsTimingUnspecified()) {
+ if (aOptions.IsTimingUnspecified()) {
+ aStorage.mStartTime =
+ mozilla::TimeStamp::Now().RawQueryPerformanceCounterValue().value();
+ aStorage.mPhase = 0;
+ } else {
aStorage.mStartTime =
aOptions.Timing().StartTime().RawQueryPerformanceCounterValue().value();
aStorage.mEndTime =
aOptions.Timing().EndTime().RawQueryPerformanceCounterValue().value();
+ aStorage.mPhase = uint8_t(aOptions.Timing().MarkerPhase());
}
if (!aOptions.InnerWindowId().IsUnspecified()) {
aStorage.mWindowID = aOptions.InnerWindowId().Id();
@@ -259,37 +296,22 @@ static inline void StoreBaseEventDataDesc(
aStorage.mCategoryPair = uint32_t(aCategory.CategoryPair());
EventDataDescCreate(&aDescriptors[2], &aStorage.mStartTime, sizeof(uint64_t));
EventDataDescCreate(&aDescriptors[3], &aStorage.mEndTime, sizeof(uint64_t));
- EventDataDescCreate(&aDescriptors[4], &aStorage.mWindowID, sizeof(uint64_t));
- EventDataDescCreate(&aDescriptors[5], &aStorage.mCategoryPair,
+ EventDataDescCreate(&aDescriptors[4], &aStorage.mPhase, sizeof(uint8_t));
+ EventDataDescCreate(&aDescriptors[5], &aStorage.mWindowID, sizeof(uint64_t));
+ EventDataDescCreate(&aDescriptors[6], &aStorage.mCategoryPair,
sizeof(uint32_t));
}
-// This is used for markers with no explicit type or markers which have not
-// been converted to the updated schema yet.
-static inline void EmitETWMarker(const mozilla::ProfilerString8View& aName,
- const mozilla::MarkerCategory& aCategory,
- const mozilla::MarkerOptions& aOptions = {}) {
- if (!(gETWCollectionMask &
- uint64_t(mozilla::MarkerSchema::ETWMarkerGroup::Generic))) {
- return;
+template <typename MarkerType>
+constexpr size_t GetETWDescriptorCount() {
+ size_t count = 2 + std::size(BaseMarkerDescription::PayloadFields);
+ if (MarkerType::StoreName) {
+ count++;
}
-
- static const __declspec(allocate(_tlgSegMetadataEvents)) __declspec(
- align(1)) constexpr StaticMetaData<SimpleMarkerType>
- staticData;
-
- std::array<EVENT_DATA_DESCRIPTOR, 7> descriptors = {};
-
- // This is storage space allocated on the stack for POD values.
- BaseEventStorage dataStorage = {};
-
- StoreBaseEventDataDesc(dataStorage, descriptors.data(), aCategory,
- std::move(aOptions));
-
- EventDataDescCreate(&descriptors[6], aName.StringView().data(),
- aName.StringView().size() + 1);
- _tlgWriteTransfer(kFirefoxTraceLoggingProvider, &staticData.metaData.Channel,
- NULL, NULL, descriptors.size(), descriptors.data());
+ if constexpr (MarkerHasPayload<MarkerType>::value) {
+ count += std::size(MarkerType::PayloadFields);
+ }
+ return count;
}
template <typename MarkerType, typename... PayloadArguments>
@@ -301,7 +323,7 @@ static inline void EmitETWMarker(const mozilla::ProfilerString8View& aName,
// If our MarkerType has not been made to support ETW, emit only the base
// event. Avoid attempting to compile the rest of the function.
if constexpr (!MarkerSupportsETW<MarkerType>::value) {
- return EmitETWMarker(aName, aCategory, aOptions);
+ return EmitETWMarker(aName, aCategory, aOptions, SimpleMarkerType{});
} else {
if (!(gETWCollectionMask & uint64_t(MarkerType::Group))) {
return;
@@ -312,9 +334,7 @@ static inline void EmitETWMarker(const mozilla::ProfilerString8View& aName,
staticData;
// Allocate the exact amount of descriptors required by this event.
- std::array<EVENT_DATA_DESCRIPTOR,
- 2 + std::size(MarkerType::PayloadFields) +
- std::size(BaseMarkerDescription::PayloadFields)>
+ std::array<EVENT_DATA_DESCRIPTOR, GetETWDescriptorCount<MarkerType>()>
descriptors = {};
// Memory allocated on the stack for storing intermediate values.
@@ -324,23 +344,33 @@ static inline void EmitETWMarker(const mozilla::ProfilerString8View& aName,
StoreBaseEventDataDesc(dataStorage, descriptors.data(), aCategory,
aOptions);
- if constexpr (MarkerHasTranslator<MarkerType>::value) {
- // When this function is implemented the arguments are passed back to the
- // MarkerType object which is expected to call OutputMarkerSchema with
- // the correct argument format.
- buffer.mDescriptors = descriptors.data() + 2 +
- std::size(BaseMarkerDescription::PayloadFields);
- MarkerType::TranslateMarkerInputToSchema(&buffer, aPayloadArguments...);
- } else {
- const size_t argCount = sizeof...(PayloadArguments);
- static_assert(
- argCount == std::size(MarkerType::PayloadFields),
- "Number and type of fields must be equal to number and type of "
- "payload arguments. If this is not the case a "
- "TranslateMarkerInputToSchema function must be defined.");
- size_t i = 2 + std::size(BaseMarkerDescription::PayloadFields);
- (CreateDataDescForPayload(buffer, descriptors[i++], aPayloadArguments),
- ...);
+ if constexpr (MarkerType::StoreName) {
+ EventDataDescCreate(&descriptors[7], aName.StringView().data(),
+ aName.StringView().size() + 1);
+ }
+
+ if constexpr (MarkerHasPayload<MarkerType>::value) {
+ if constexpr (MarkerHasTranslator<MarkerType>::value) {
+ // When this function is implemented the arguments are passed back to
+ // the MarkerType object which is expected to call OutputMarkerSchema
+ // with the correct argument format.
+ buffer.mDescriptors = descriptors.data() + 2 +
+ std::size(BaseMarkerDescription::PayloadFields) +
+ (MarkerType::StoreName ? 1 : 0);
+
+ MarkerType::TranslateMarkerInputToSchema(&buffer, aPayloadArguments...);
+ } else {
+ const size_t argCount = sizeof...(PayloadArguments);
+ static_assert(
+ argCount == std::size(MarkerType::PayloadFields),
+ "Number and type of fields must be equal to number and type of "
+ "payload arguments. If this is not the case a "
+ "TranslateMarkerInputToSchema function must be defined.");
+ size_t i = 2 + std::size(BaseMarkerDescription::PayloadFields) +
+ (MarkerType::StoreName ? 1 : 0);
+ (CreateDataDescForPayload(buffer, descriptors[i++], aPayloadArguments),
+ ...);
+ }
}
_tlgWriteTransfer(kFirefoxTraceLoggingProvider,
@@ -372,9 +402,6 @@ void OutputMarkerSchema(void* aContext, MarkerType aMarkerType,
namespace ETW {
static inline void Init() {}
static inline void Shutdown() {}
-static inline void EmitETWMarker(const mozilla::ProfilerString8View& aName,
- const mozilla::MarkerCategory& aCategory,
- const mozilla::MarkerOptions& aOptions = {}) {}
template <typename MarkerType, typename... PayloadArguments>
static inline void EmitETWMarker(const mozilla::ProfilerString8View& aName,
const mozilla::MarkerCategory& aCategory,
diff --git a/tools/profiler/public/GeckoProfiler.h b/tools/profiler/public/GeckoProfiler.h
index f7c045297e..6b819addd8 100644
--- a/tools/profiler/public/GeckoProfiler.h
+++ b/tools/profiler/public/GeckoProfiler.h
@@ -269,7 +269,8 @@ class ProfilerStackCollector {
virtual void CollectJitReturnAddr(void* aAddr) = 0;
- virtual void CollectWasmFrame(const char* aLabel) = 0;
+ virtual void CollectWasmFrame(JS::ProfilingCategoryPair aCategory,
+ const char* aLabel) = 0;
virtual void CollectProfilingStackFrame(
const js::ProfilingStackFrame& aFrame) = 0;
diff --git a/tools/profiler/public/GeckoTraceEvent.h b/tools/profiler/public/GeckoTraceEvent.h
index 75affaf9c8..0887f74ac5 100644
--- a/tools/profiler/public/GeckoTraceEvent.h
+++ b/tools/profiler/public/GeckoTraceEvent.h
@@ -627,7 +627,18 @@
# else
# define MOZ_INTERNAL_UPROFILER_SIMPLE_EVENT(phase, category_enabled, name, \
id, num_args, arg_names, \
- arg_types, arg_values, flags)
+ arg_types, arg_values, flags) \
+ do { \
+ (void)phase; \
+ (void)category_enabled; \
+ (void)name; \
+ (void)id; \
+ (void)num_args; \
+ (void)arg_names; \
+ (void)arg_types; \
+ (void)arg_values; \
+ (void)flags; \
+ } while (0);
# endif
// Notes regarding the following definitions:
diff --git a/tools/profiler/public/ProfilerMarkers.h b/tools/profiler/public/ProfilerMarkers.h
index b1ba8c762f..cddb0fc307 100644
--- a/tools/profiler/public/ProfilerMarkers.h
+++ b/tools/profiler/public/ProfilerMarkers.h
@@ -389,34 +389,10 @@ extern template mozilla::ProfileBufferBlockIndex profiler_add_marker_impl(
#endif // MOZ_GECKO_PROFILER
namespace mozilla {
-
namespace detail {
-// GCC doesn't allow this to live inside the class.
-template <typename PayloadType>
-static void StreamPayload(baseprofiler::SpliceableJSONWriter& aWriter,
- const Span<const char> aKey,
- const PayloadType& aPayload) {
- aWriter.StringProperty(aKey, aPayload);
-}
-
-template <typename PayloadType>
-inline void StreamPayload(baseprofiler::SpliceableJSONWriter& aWriter,
- const Span<const char> aKey,
- const Maybe<PayloadType>& aPayload) {
- if (aPayload.isSome()) {
- StreamPayload(aWriter, aKey, *aPayload);
- } else {
- aWriter.NullProperty(aKey);
- }
-}
-
-template <>
-inline void StreamPayload<bool>(baseprofiler::SpliceableJSONWriter& aWriter,
- const Span<const char> aKey,
- const bool& aPayload) {
- aWriter.BoolProperty(aKey, aPayload);
-}
+// Implement this here to prevent BaseProfilerMarkersPrerequisites from pulling
+// in nsString.h
template <>
inline void StreamPayload<ProfilerString16View>(
baseprofiler::SpliceableJSONWriter& aWriter, const Span<const char> aKey,
@@ -424,86 +400,6 @@ inline void StreamPayload<ProfilerString16View>(
aWriter.StringProperty(aKey, NS_ConvertUTF16toUTF8(aPayload));
}
-template <>
-inline void StreamPayload<ProfilerString8View>(
- baseprofiler::SpliceableJSONWriter& aWriter, const Span<const char> aKey,
- const ProfilerString8View& aPayload) {
- aWriter.StringProperty(aKey, aPayload);
-}
} // namespace detail
-
-// This helper class is used by MarkerTypes that want to support the general
-// MarkerType object schema. When using this the markers will also transmit
-// their payload to the ETW tracer as well as requiring less inline code.
-// This is a curiously recurring template, the template argument is the child
-// class itself.
-template <typename T>
-struct BaseMarkerType {
- static constexpr const char* AllLabels = nullptr;
- static constexpr const char* ChartLabel = nullptr;
- static constexpr const char* TableLabel = nullptr;
- static constexpr const char* TooltipLabel = nullptr;
-
- static constexpr MarkerSchema::ETWMarkerGroup Group =
- MarkerSchema::ETWMarkerGroup::Generic;
-
- static MarkerSchema MarkerTypeDisplay() {
- using MS = MarkerSchema;
- MS schema{T::Locations, std::size(T::Locations)};
- if (T::AllLabels) {
- schema.SetAllLabels(T::AllLabels);
- }
- if (T::ChartLabel) {
- schema.SetChartLabel(T::ChartLabel);
- }
- if (T::TableLabel) {
- schema.SetTableLabel(T::TableLabel);
- }
- if (T::TooltipLabel) {
- schema.SetTooltipLabel(T::TooltipLabel);
- }
- for (const MS::PayloadField field : T::PayloadFields) {
- if (field.Label) {
- if (uint32_t(field.Flags) & uint32_t(MS::PayloadFlags::Searchable)) {
- schema.AddKeyLabelFormatSearchable(field.Key, field.Label, field.Fmt,
- MS::Searchable::Searchable);
- } else {
- schema.AddKeyLabelFormat(field.Key, field.Label, field.Fmt);
- }
- } else {
- if (uint32_t(field.Flags) & uint32_t(MS::PayloadFlags::Searchable)) {
- schema.AddKeyFormatSearchable(field.Key, field.Fmt,
- MS::Searchable::Searchable);
- } else {
- schema.AddKeyFormat(field.Key, field.Fmt);
- }
- }
- }
- if (T::Description) {
- schema.AddStaticLabelValue("Description", T::Description);
- }
- return schema;
- }
-
- static constexpr Span<const char> MarkerTypeName() {
- return MakeStringSpan(T::Name);
- }
-
- // This is called by the child class since the child class version of this
- // function is used to infer the argument types by the profile buffer and
- // allows the child to do any special data conversion it needs to do.
- // Optionally the child can opt not to use this at all and write the data
- // out itself.
- template <typename... PayloadArguments>
- static void StreamJSONMarkerDataImpl(
- baseprofiler::SpliceableJSONWriter& aWriter,
- const PayloadArguments&... aPayloadArguments) {
- size_t i = 0;
- (detail::StreamPayload(aWriter, MakeStringSpan(T::PayloadFields[i++].Key),
- aPayloadArguments),
- ...);
- }
-};
-
} // namespace mozilla
#endif // ProfilerMarkers_h
diff --git a/tools/profiler/public/ProfilerThreadRegistrationInfo.h b/tools/profiler/public/ProfilerThreadRegistrationInfo.h
index e116c3059e..18a1c8fbaf 100644
--- a/tools/profiler/public/ProfilerThreadRegistrationInfo.h
+++ b/tools/profiler/public/ProfilerThreadRegistrationInfo.h
@@ -46,7 +46,10 @@ class ThreadRegistrationInfo {
private:
static TimeStamp ExistingRegisterTimeOrNow() {
- TimeStamp registerTime = baseprofiler::detail::GetThreadRegistrationTime();
+ TimeStamp registerTime;
+#ifdef MOZ_GECKO_PROFILER
+ registerTime = baseprofiler::detail::GetThreadRegistrationTime();
+#endif
if (!registerTime) {
registerTime = TimeStamp::Now();
}
diff --git a/tools/profiler/tests/browser/browser.toml b/tools/profiler/tests/browser/browser.toml
index 57d8ad0875..fdbdd7c7ce 100644
--- a/tools/profiler/tests/browser/browser.toml
+++ b/tools/profiler/tests/browser/browser.toml
@@ -15,14 +15,12 @@ support-files = ["do_work_500ms.html"]
support-files = ["do_work_500ms.html"]
["browser_test_marker_network_cancel.js"]
-https_first_disabled = true
support-files = ["simple.html"]
["browser_test_marker_network_private_browsing.js"]
support-files = ["simple.html"]
["browser_test_marker_network_redirect.js"]
-https_first_disabled = true
support-files = [
"redirect.sjs",
"simple.html",
@@ -67,7 +65,6 @@ support-files = [
]
["browser_test_marker_network_simple.js"]
-https_first_disabled = true
support-files = ["simple.html"]
["browser_test_marker_network_sts.js"]
@@ -81,24 +78,20 @@ support-files = ["simple.html"]
support-files = ["single_frame.html"]
["browser_test_profile_capture_by_pid.js"]
-https_first_disabled = true
support-files = ["single_frame.html"]
["browser_test_profile_fission.js"]
support-files = ["single_frame.html"]
["browser_test_profile_multi_frame_page_info.js"]
-https_first_disabled = true
support-files = [
"multi_frame.html",
"single_frame.html",
]
["browser_test_profile_single_frame_page_info.js"]
-https_first_disabled = true
support-files = ["single_frame.html"]
["browser_test_profile_slow_capture.js"]
-https_first_disabled = true
support-files = ["single_frame.html"]
skip-if = ["!debug"]
diff --git a/tools/profiler/tests/browser/browser_test_marker_network_cancel.js b/tools/profiler/tests/browser/browser_test_marker_network_cancel.js
index df3de2b99a..4e144ba700 100644
--- a/tools/profiler/tests/browser/browser_test_marker_network_cancel.js
+++ b/tools/profiler/tests/browser/browser_test_marker_network_cancel.js
@@ -13,7 +13,7 @@ add_task(async function test_network_markers_early_cancel() {
startProfilerForMarkerTests();
- const url = BASE_URL + "simple.html?cacheBust=" + Math.random();
+ const url = BASE_URL_HTTPS + "simple.html?cacheBust=" + Math.random();
const options = {
gBrowser,
url: "about:blank",
diff --git a/tools/profiler/tests/browser/browser_test_marker_network_redirect.js b/tools/profiler/tests/browser/browser_test_marker_network_redirect.js
index 28478c2b3b..f5597e97e7 100644
--- a/tools/profiler/tests/browser/browser_test_marker_network_redirect.js
+++ b/tools/profiler/tests/browser/browser_test_marker_network_redirect.js
@@ -28,10 +28,10 @@ add_task(async function test_network_markers_redirect_simple() {
const targetFileNameWithCacheBust = "simple.html";
const url =
- BASE_URL +
+ BASE_URL_HTTPS +
"redirect.sjs?" +
encodeURIComponent(targetFileNameWithCacheBust);
- const targetUrl = BASE_URL + targetFileNameWithCacheBust;
+ const targetUrl = BASE_URL_HTTPS + targetFileNameWithCacheBust;
await BrowserTestUtils.withNewTab(url, async contentBrowser => {
const contentPid = await SpecialPowers.spawn(
@@ -149,7 +149,8 @@ add_task(async function test_network_markers_redirect_resources() {
startProfilerForMarkerTests();
- const url = BASE_URL + "page_with_resources.html?cacheBust=" + Math.random();
+ const url =
+ BASE_URL_HTTPS + "page_with_resources.html?cacheBust=" + Math.random();
await BrowserTestUtils.withNewTab(url, async contentBrowser => {
const contentPid = await SpecialPowers.spawn(
contentBrowser,
@@ -225,6 +226,9 @@ add_task(async function test_network_markers_redirect_resources() {
id: Expect.number(),
pri: Expect.number(),
innerWindowID: Expect.number(),
+ requestStart: Expect.number(),
+ responseStart: Expect.number(),
+ responseEnd: Expect.number(),
};
// These properties are present when a connection is fully opened. This is
@@ -239,9 +243,6 @@ add_task(async function test_network_markers_redirect_resources() {
connectStart: Expect.number(),
tcpConnectEnd: Expect.number(),
connectEnd: Expect.number(),
- requestStart: Expect.number(),
- responseStart: Expect.number(),
- responseEnd: Expect.number(),
};
const expectedPropertiesForStopMarker = {
@@ -250,7 +251,6 @@ add_task(async function test_network_markers_redirect_resources() {
const expectedDataPropertiesForStopMarker = {
...expectedCommonDataProperties,
- ...expectedConnectionProperties,
status: "STATUS_STOP",
URI: Expect.stringContains("/firefox-logo-nightly.svg"),
contentType: "image/svg+xml",
@@ -280,6 +280,7 @@ add_task(async function test_network_markers_redirect_resources() {
);
Assert.objectContainsOnly(parentFirstStopMarker.data, {
...expectedDataPropertiesForStopMarker,
+ ...expectedConnectionProperties,
// The cache information is missing from the content marker, it's only part
// of the parent marker. See Bug 1544821.
// Also, because the request races with the cache, these 2 values are valid:
@@ -292,10 +293,10 @@ add_task(async function test_network_markers_redirect_resources() {
contentFirstStopMarker,
expectedPropertiesForStopMarker
);
- Assert.objectContainsOnly(
- contentFirstStopMarker.data,
- expectedDataPropertiesForStopMarker
- );
+ Assert.objectContainsOnly(contentFirstStopMarker.data, {
+ ...expectedDataPropertiesForStopMarker,
+ ...expectedConnectionProperties,
+ });
Assert.objectContains(
parentRedirectMarker,
@@ -321,7 +322,11 @@ add_task(async function test_network_markers_redirect_resources() {
parentSecondStopMarker,
expectedPropertiesForStopMarker
);
- Assert.objectContainsOnly(parentSecondStopMarker.data, {
+ // In Test-Verify mode, sometimes the properties from
+ // `expectedConnectionProperties` are missing. That's why they're not
+ // included here, and objectContains is used instead of objectContainsOnly
+ // like above.
+ Assert.objectContains(parentSecondStopMarker.data, {
...expectedDataPropertiesForStopMarker,
// The "count" property is absent from the content marker.
count: Expect.number(),
@@ -333,7 +338,7 @@ add_task(async function test_network_markers_redirect_resources() {
contentSecondStopMarker,
expectedPropertiesForStopMarker
);
- Assert.objectContainsOnly(
+ Assert.objectContains(
contentSecondStopMarker.data,
expectedDataPropertiesForStopMarker
);
diff --git a/tools/profiler/tests/browser/browser_test_marker_network_simple.js b/tools/profiler/tests/browser/browser_test_marker_network_simple.js
index 15894305a7..01f68216ee 100644
--- a/tools/profiler/tests/browser/browser_test_marker_network_simple.js
+++ b/tools/profiler/tests/browser/browser_test_marker_network_simple.js
@@ -13,7 +13,7 @@ add_task(async function test_network_markers() {
startProfilerForMarkerTests();
- const url = BASE_URL + "simple.html?cacheBust=" + Math.random();
+ const url = BASE_URL_HTTPS + "simple.html?cacheBust=" + Math.random();
await BrowserTestUtils.withNewTab(url, async contentBrowser => {
const contentPid = await SpecialPowers.spawn(
contentBrowser,
diff --git a/tools/profiler/tests/browser/browser_test_markers_parent_process.js b/tools/profiler/tests/browser/browser_test_markers_parent_process.js
index 28b82f8054..939271ee66 100644
--- a/tools/profiler/tests/browser/browser_test_markers_parent_process.js
+++ b/tools/profiler/tests/browser/browser_test_markers_parent_process.js
@@ -26,12 +26,13 @@ add_task(async function test_markers_parent_process() {
);
ok(domEventStart, "A start DOMEvent was generated");
ok(domEventEnd, "An end DOMEvent was generated");
- ok(
- domEventEnd.data.latency > 0,
+ Assert.greater(
+ domEventEnd.data.latency,
+ 0,
"DOMEvent had a a latency value generated."
);
- ok(domEventEnd.data.type === "DOMEvent");
- ok(domEventEnd.name === "DOMEvent");
+ Assert.strictEqual(domEventEnd.data.type, "DOMEvent");
+ Assert.strictEqual(domEventEnd.name, "DOMEvent");
}
// Add more marker tests.
});
diff --git a/tools/profiler/tests/browser/browser_test_profile_capture_by_pid.js b/tools/profiler/tests/browser/browser_test_profile_capture_by_pid.js
index 14d76dbcaf..0d206a7148 100644
--- a/tools/profiler/tests/browser/browser_test_profile_capture_by_pid.js
+++ b/tools/profiler/tests/browser/browser_test_profile_capture_by_pid.js
@@ -26,7 +26,7 @@ async function test_with_filter(fnFilterWithContentId) {
await Services.profiler.ClearAllPages();
info("Open a tab with single_frame.html in it.");
- const url = BASE_URL + "single_frame.html";
+ const url = BASE_URL_HTTPS + "single_frame.html";
return BrowserTestUtils.withNewTab(url, async function (contentBrowser) {
const contentPid = await SpecialPowers.spawn(contentBrowser, [], () => {
return Services.appinfo.processID;
@@ -107,7 +107,7 @@ add_task(async function browser_test_profile_capture_along_with_content_pid() {
add_task(async function browser_test_profile_capture_along_with_other_pid() {
const parentPid = Services.appinfo.processID;
const { contentPid, pidsWithSamplerThread, profile } = await test_with_filter(
- contentPid => ["GeckoMain", "pid:" + parentPid]
+ () => ["GeckoMain", "pid:" + parentPid]
);
Assert.greater(
@@ -174,9 +174,9 @@ add_task(async function browser_test_profile_capture_by_only_content_pid() {
add_task(async function browser_test_profile_capture_by_only_parent_pid() {
const parentPid = Services.appinfo.processID;
- const { pidsWithSamplerThread, profile } = await test_with_filter(
- contentPid => ["pid:" + parentPid]
- );
+ const { pidsWithSamplerThread, profile } = await test_with_filter(() => [
+ "pid:" + parentPid,
+ ]);
Assert.deepEqual(
pidsWithSamplerThread,
diff --git a/tools/profiler/tests/browser/browser_test_profile_multi_frame_page_info.js b/tools/profiler/tests/browser/browser_test_profile_multi_frame_page_info.js
index 854587678d..b1dfbb60c3 100644
--- a/tools/profiler/tests/browser/browser_test_profile_multi_frame_page_info.js
+++ b/tools/profiler/tests/browser/browser_test_profile_multi_frame_page_info.js
@@ -23,7 +23,7 @@ add_task(async function test_profile_multi_frame_page_info() {
info("Open a tab with multi_frame.html in it.");
// multi_frame.html embeds single_frame.html inside an iframe.
- const url = BASE_URL + "multi_frame.html";
+ const url = BASE_URL_HTTPS + "multi_frame.html";
await BrowserTestUtils.withNewTab(url, async function (contentBrowser) {
const contentPid = await SpecialPowers.spawn(contentBrowser, [], () => {
return Services.appinfo.processID;
@@ -63,8 +63,8 @@ add_task(async function test_profile_multi_frame_page_info() {
for (const page of contentProcess.pages) {
// Child page (iframe)
- if (page.url == BASE_URL + "single_frame.html") {
- Assert.equal(page.url, BASE_URL + "single_frame.html");
+ if (page.url == BASE_URL_HTTPS + "single_frame.html") {
+ Assert.equal(page.url, BASE_URL_HTTPS + "single_frame.html");
Assert.equal(typeof page.tabID, "number");
Assert.equal(page.tabID, activeTabID);
Assert.equal(typeof page.innerWindowID, "number");
diff --git a/tools/profiler/tests/browser/browser_test_profile_single_frame_page_info.js b/tools/profiler/tests/browser/browser_test_profile_single_frame_page_info.js
index 0385413c16..3249e728b7 100644
--- a/tools/profiler/tests/browser/browser_test_profile_single_frame_page_info.js
+++ b/tools/profiler/tests/browser/browser_test_profile_single_frame_page_info.js
@@ -22,7 +22,7 @@ add_task(async function test_profile_single_frame_page_info() {
await startProfiler();
info("Open a tab with single_frame.html in it.");
- const url = BASE_URL + "single_frame.html";
+ const url = BASE_URL_HTTPS + "single_frame.html";
await BrowserTestUtils.withNewTab(url, async function (contentBrowser) {
const contentPid = await SpecialPowers.spawn(contentBrowser, [], () => {
return Services.appinfo.processID;
diff --git a/tools/profiler/tests/browser/browser_test_profile_slow_capture.js b/tools/profiler/tests/browser/browser_test_profile_slow_capture.js
index 4a675b84d1..16684a35dd 100644
--- a/tools/profiler/tests/browser/browser_test_profile_slow_capture.js
+++ b/tools/profiler/tests/browser/browser_test_profile_slow_capture.js
@@ -13,7 +13,7 @@ add_task(async function browser_test_profile_slow_capture() {
await startProfiler({ threads: ["GeckoMain", "test-debug-child-slow-json"] });
info("Open a tab with single_frame.html in it.");
- const url = BASE_URL + "single_frame.html";
+ const url = BASE_URL_HTTPS + "single_frame.html";
await BrowserTestUtils.withNewTab(url, async function (contentBrowser) {
const contentPid = await SpecialPowers.spawn(contentBrowser, [], () => {
return Services.appinfo.processID;
@@ -78,7 +78,7 @@ add_task(async function browser_test_profile_very_slow_capture() {
});
info("Open a tab with single_frame.html in it.");
- const url = BASE_URL + "single_frame.html";
+ const url = BASE_URL_HTTPS + "single_frame.html";
await BrowserTestUtils.withNewTab(url, async function (contentBrowser) {
const contentPid = await SpecialPowers.spawn(contentBrowser, [], () => {
return Services.appinfo.processID;
diff --git a/tools/profiler/tests/browser/serviceworkers/serviceworker_no_fetch_handler.js b/tools/profiler/tests/browser/serviceworkers/serviceworker_no_fetch_handler.js
index f656665ca0..7a8ed91d28 100644
--- a/tools/profiler/tests/browser/serviceworkers/serviceworker_no_fetch_handler.js
+++ b/tools/profiler/tests/browser/serviceworkers/serviceworker_no_fetch_handler.js
@@ -1,4 +1,4 @@
-self.addEventListener("install", event => {
+self.addEventListener("install", () => {
performance.mark("__serviceworker_event");
console.log("[SW]:", "Install event");
});
diff --git a/tools/profiler/tests/browser/serviceworkers/serviceworker_no_respondWith_in_fetch_handler.js b/tools/profiler/tests/browser/serviceworkers/serviceworker_no_respondWith_in_fetch_handler.js
index 255c8269a1..ba0610665b 100644
--- a/tools/profiler/tests/browser/serviceworkers/serviceworker_no_respondWith_in_fetch_handler.js
+++ b/tools/profiler/tests/browser/serviceworkers/serviceworker_no_respondWith_in_fetch_handler.js
@@ -1,4 +1,4 @@
-self.addEventListener("install", event => {
+self.addEventListener("install", () => {
performance.mark("__serviceworker_event");
console.log("[SW]:", "Install event");
});
diff --git a/tools/profiler/tests/browser/serviceworkers/serviceworker_synthetized_response.js b/tools/profiler/tests/browser/serviceworkers/serviceworker_synthetized_response.js
index 891b679a5f..13c529d0d3 100644
--- a/tools/profiler/tests/browser/serviceworkers/serviceworker_synthetized_response.js
+++ b/tools/profiler/tests/browser/serviceworkers/serviceworker_synthetized_response.js
@@ -1,4 +1,4 @@
-self.addEventListener("install", event => {
+self.addEventListener("install", () => {
performance.mark("__serviceworker_event");
dump("[SW]:", "Install event\n");
});
diff --git a/tools/profiler/tests/gtest/GeckoProfiler.cpp b/tools/profiler/tests/gtest/GeckoProfiler.cpp
index 79ed7cb52a..c9a26250db 100644
--- a/tools/profiler/tests/gtest/GeckoProfiler.cpp
+++ b/tools/profiler/tests/gtest/GeckoProfiler.cpp
@@ -140,8 +140,10 @@ TEST(GeckoProfiler, ThreadRegistrationInfo)
EXPECT_STREQ(trInfoHere.Name(), "Here");
EXPECT_NE(trInfoHere.Name(), "Here")
<< "ThreadRegistrationInfo should keep its own copy of the name";
- TimeStamp baseRegistrationTime =
- baseprofiler::detail::GetThreadRegistrationTime();
+ TimeStamp baseRegistrationTime;
+#ifdef MOZ_GECKO_PROFILER
+ baseRegistrationTime = baseprofiler::detail::GetThreadRegistrationTime();
+#endif
if (baseRegistrationTime) {
EXPECT_EQ(trInfoHere.RegisterTime(), baseRegistrationTime);
} else {
@@ -3228,12 +3230,14 @@ TEST(GeckoProfiler, Markers)
EXPECT_EQ(display[0u].asString(), "marker-chart");
EXPECT_EQ(display[1u].asString(), "marker-table");
- ASSERT_EQ(data.size(), 1u);
+ ASSERT_EQ(data.size(), 2u);
ASSERT_TRUE(data[0u].isObject());
EXPECT_EQ_JSON(data[0u]["key"], String, "name");
EXPECT_EQ_JSON(data[0u]["label"], String, "Details");
EXPECT_EQ_JSON(data[0u]["format"], String, "string");
+ EXPECT_EQ_JSON(data[1u]["label"], String, "Description");
+ EXPECT_EQ_JSON(data[1u]["value"], String, "Generic text marker");
} else if (nameString == "NoPayloadUserData") {
// TODO: Remove this when bug 1646714 lands.
@@ -3252,12 +3256,14 @@ TEST(GeckoProfiler, Markers)
EXPECT_EQ(display[1u].asString(), "marker-table");
EXPECT_EQ(display[2u].asString(), "timeline-overview");
- ASSERT_EQ(data.size(), 1u);
+ ASSERT_EQ(data.size(), 2u);
ASSERT_TRUE(data[0u].isObject());
EXPECT_EQ_JSON(data[0u]["key"], String, "category");
EXPECT_EQ_JSON(data[0u]["label"], String, "Type");
EXPECT_EQ_JSON(data[0u]["format"], String, "string");
+ EXPECT_EQ_JSON(data[1u]["label"], String, "Description");
+ EXPECT_EQ_JSON(data[1u]["value"], String, "Generic tracing marker");
} else if (nameString == "BHR-detected hang") {
EXPECT_EQ(display.size(), 2u);
@@ -3913,7 +3919,10 @@ class GTestStackCollector final : public ProfilerStackCollector {
virtual void CollectNativeLeafAddr(void* aAddr) { mFrames++; }
virtual void CollectJitReturnAddr(void* aAddr) { mFrames++; }
- virtual void CollectWasmFrame(const char* aLabel) { mFrames++; }
+ virtual void CollectWasmFrame(JS::ProfilingCategoryPair aCategory,
+ const char* aLabel) {
+ mFrames++;
+ }
virtual void CollectProfilingStackFrame(
const js::ProfilingStackFrame& aFrame) {
mFrames++;
diff --git a/tools/profiler/tests/shared-head.js b/tools/profiler/tests/shared-head.js
index d1b2f6868a..b01ef6ed25 100644
--- a/tools/profiler/tests/shared-head.js
+++ b/tools/profiler/tests/shared-head.js
@@ -547,7 +547,7 @@ Object.assign(Assert, {
const Expect = {
any:
() =>
- actual => {} /* We don't check anything more than the presence of this property. */,
+ () => {} /* We don't check anything more than the presence of this property. */,
};
/* These functions are part of the Assert object, and we want to reuse them. */
diff --git a/tools/profiler/tests/xpcshell/test_feature_cpufreq.js b/tools/profiler/tests/xpcshell/test_feature_cpufreq.js
index 1d8e0d9a36..4bab2d1019 100644
--- a/tools/profiler/tests/xpcshell/test_feature_cpufreq.js
+++ b/tools/profiler/tests/xpcshell/test_feature_cpufreq.js
@@ -87,7 +87,7 @@ function getInflatedCPUFreqMarkers(thread) {
* schema: MarkerSchema;
* }}
*/
-async function runProfilerWithCPUSpeed(features, filename) {
+async function runProfilerWithCPUSpeed(features) {
const entries = 10000;
const interval = 10;
const threads = [];
diff --git a/tools/profiler/tests/xpcshell/xpcshell.toml b/tools/profiler/tests/xpcshell/xpcshell.toml
index a04dcd6789..5c094899a4 100644
--- a/tools/profiler/tests/xpcshell/xpcshell.toml
+++ b/tools/profiler/tests/xpcshell/xpcshell.toml
@@ -39,6 +39,7 @@ skip-if = ["tsan"] # Times out on TSan, bug 1612707
skip-if = [
"release_or_beta",
"os == 'win' && socketprocess_networking",
+ "tsan", # bug 1885381
]
["test_feature_nativeallocations.js"]
diff --git a/tools/rb/fix_stacks.py b/tools/rb/fix_stacks.py
index f30aa9944a..29aa396219 100755
--- a/tools/rb/fix_stacks.py
+++ b/tools/rb/fix_stacks.py
@@ -16,7 +16,7 @@ from subprocess import PIPE, Popen
# Matches lines produced by MozFormatCodeAddress(), e.g.
# `#01: ???[tests/example +0x43a0]`.
-line_re = re.compile("#\d+: .+\[.+ \+0x[0-9A-Fa-f]+\]")
+line_re = re.compile(r"#\d+: .+\[.+ \+0x[0-9A-Fa-f]+\]")
fix_stacks = None
@@ -35,9 +35,6 @@ def autobootstrap():
)
moz_configure = os.path.join(buildconfig.topsrcdir, "build", "moz.configure")
sandbox.include_file(os.path.join(moz_configure, "init.configure"))
- # bootstrap_search_path_order has a dependency on developer_options, which
- # is not defined in init.configure. Its value doesn't matter for us, though.
- sandbox["developer_options"] = sandbox["always"]
sandbox.include_file(os.path.join(moz_configure, "bootstrap.configure"))
# Expand the `bootstrap_path` template for "fix-stacks", and execute the
# expanded function via `_value_for`, which will trigger autobootstrap.
diff --git a/tools/rewriting/Generated.txt b/tools/rewriting/Generated.txt
index 1fa9b6dffc..b921cf71d0 100644
--- a/tools/rewriting/Generated.txt
+++ b/tools/rewriting/Generated.txt
@@ -7,8 +7,8 @@ browser/components/aboutwelcome/node_modules/
browser/components/asrouter/node_modules/
browser/components/asrouter/content/asrouter-admin.bundle.js
browser/components/asrouter/logs/
-browser/components/newtab/content-src/asrouter/schemas/BackgroundTaskMessagingExperiment.schema.json
-browser/components/newtab/content-src/asrouter/schemas/MessagingExperiment.schema.json
+browser/components/asrouter/content-src/schemas/BackgroundTaskMessagingExperiment.schema.json
+browser/components/asrouter/content-src/schemas/MessagingExperiment.schema.json
browser/components/newtab/logs/
browser/components/newtab/node_modules/
browser/components/storybook/storybook-static/
@@ -36,4 +36,6 @@ toolkit/components/uniffi-js/UniFFIFixtureScaffolding.cpp
toolkit/components/uniffi-bindgen-gecko-js/fixtures/generated
tools/browsertime/package.json
tools/browsertime/package-lock.json
+tools/ts/error_list.json
try_task_config.json
+xpcom/idl-parser/xpidl/fixtures/xpctest.d.json
diff --git a/tools/rewriting/ThirdPartyPaths.txt b/tools/rewriting/ThirdPartyPaths.txt
index 5b0309c3e5..2f07ead2ea 100644
--- a/tools/rewriting/ThirdPartyPaths.txt
+++ b/tools/rewriting/ThirdPartyPaths.txt
@@ -156,7 +156,7 @@ security/nss/
security/sandbox/chromium/
security/sandbox/chromium-shim/
services/common/kinto-http-client.sys.mjs
-services/common/kinto-offline-client.js
+services/common/kinto-offline-client.sys.mjs
testing/gtest/gmock/
testing/gtest/gtest/
testing/mochitest/MochiKit/
@@ -188,7 +188,7 @@ toolkit/components/translation/cld2/
toolkit/components/translations/bergamot-translator/thirdparty
toolkit/components/translations/bergamot-translator/bergamot-translator.js
toolkit/components/url-classifier/chromium/
-toolkit/components/utils/mozjexl.js
+toolkit/components/utils/mozjexl.sys.mjs
toolkit/components/viaduct/fetch_msg_types.pb.cc
toolkit/components/viaduct/fetch_msg_types.pb.h
toolkit/content/widgets/vendor/lit.all.mjs
diff --git a/tools/rusttests/config/mozconfigs/win32/rusttests b/tools/rusttests/config/mozconfigs/win32/rusttests
index d953f9c0df..ae98836576 100644
--- a/tools/rusttests/config/mozconfigs/win32/rusttests
+++ b/tools/rusttests/config/mozconfigs/win32/rusttests
@@ -1,3 +1,3 @@
ac_add_options --target=i686-pc-windows-msvc
-. "$topsrcdir/build/win32/mozconfig.vs-latest"
+. "$topsrcdir/build/mozconfig.clang-cl"
. "$topsrcdir/tools/rusttests/config/mozconfigs/windows-common"
diff --git a/tools/rusttests/config/mozconfigs/win64/rusttests b/tools/rusttests/config/mozconfigs/win64/rusttests
index ed81e3b767..a166390d79 100644
--- a/tools/rusttests/config/mozconfigs/win64/rusttests
+++ b/tools/rusttests/config/mozconfigs/win64/rusttests
@@ -1,3 +1,3 @@
ac_add_options --target=x86_64-pc-windows-msvc
-. "$topsrcdir/build/win64/mozconfig.vs-latest"
+. "$topsrcdir/build/mozconfig.clang-cl"
. "$topsrcdir/tools/rusttests/config/mozconfigs/windows-common"
diff --git a/tools/rusttests/moz.configure b/tools/rusttests/moz.configure
index 520989a8cf..959aa4eafe 100644
--- a/tools/rusttests/moz.configure
+++ b/tools/rusttests/moz.configure
@@ -2,4 +2,6 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+imply_option("MOZ_PLACES", True)
+
include("../../toolkit/moz.configure")
diff --git a/tools/sanitizer/docs/tsan.rst b/tools/sanitizer/docs/tsan.rst
index 77fb6c89d7..af7ebc0b2b 100644
--- a/tools/sanitizer/docs/tsan.rst
+++ b/tools/sanitizer/docs/tsan.rst
@@ -167,6 +167,23 @@ After the build has completed, ``./mach run`` with the usual options for
running in a debugger (``gdb``, ``lldb``, ``rr``, etc.) work fine, as do
the ``--disable-e10s`` and other options.
+While running Firefox, ensure that it's not in safe mode since it might cause
+some tsan failures during startup. You can use a different profile or add
+``--temp-profile`` to use a temporary one.
+
+Firefox might crash on startup if you have an NVIDIA GPU with proprietary
+drivers. To fix this, disable the graphics acceleration by changing the following
+prefs:
+
+- ``gfx.x11-egl.force-disabled=true``
+- ``gfx.webrender.software.opengl=true``
+- ``layers.acceleration.disabled=true``
+
+You can either do this by passing these prefs to your ``./mach run`` command
+like this: ``./mach run --setpref "gfx.x11-egl.force-disabled=true" --setpref "gfx.webrender.software.opengl=true" --setpref "layers.acceleration.disabled=true"``
+or you can add them to your ``machrc`` file. Learn more about mach settings
+:ref:`here<mach_settings>`.
+
Building only the JavaScript shell
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/tools/signing/macos/mach_commands.py b/tools/signing/macos/mach_commands.py
new file mode 100644
index 0000000000..543faca2ea
--- /dev/null
+++ b/tools/signing/macos/mach_commands.py
@@ -0,0 +1,675 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, # You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import glob
+import logging
+import os
+import os.path
+import plistlib
+import subprocess
+import sys
+import tempfile
+
+import yaml
+from mach.decorators import (
+ Command,
+ CommandArgument,
+ CommandArgumentGroup,
+)
+from mozbuild.base import MachCommandConditions as conditions
+
+
+@Command(
+ "macos-sign",
+ category="misc",
+ description="Sign a built and packaged (./mach build package) Firefox "
+ "bundle on macOS. Limitations: 1) macos-sign doesn't support building "
+ "the .app built in the object dir in-place (for now) because it contains "
+ 'symlinks. First use "./mach build package" to build a .dmg containing a '
+ "bundled .app. Then extract the .app from the dmg to a readable/writable "
+ "directory. The bundled app can be signed with macos-sign (using the -a "
+ "argument). 2) The signing configuration (which maps files in the .app "
+ "to entitlement files in the tree to be used when signing) is loaded from "
+ "the build configuration in the local repo. For example, when signing a "
+ "Release 120 build using mach from a revision of mozilla-central, "
+ "macos-sign will use the bundle ID to determine the signing should use the "
+ "Release channel entitlements, but the configuration used will be the "
+ "Release configuration as defined in the repo working directory, not the "
+ "configuration from the revision of the earlier 120 build.",
+ conditions=[conditions.is_firefox],
+)
+@CommandArgument(
+ "-v",
+ "--verbose",
+ default=False,
+ action="store_true",
+ dest="verbose_arg",
+ help="Verbose output including the commands executed.",
+)
+# The app path could be a required positional argument, but let's reserve that
+# for the future where the default will be to sign the locally built .app
+# in-place in the object dir.
+@CommandArgument(
+ "-a",
+ "--app-path",
+ required=True,
+ type=str,
+ dest="app_arg",
+ help="Path to the .app bundle to sign. This can not be the .app built "
+ "in the object dir because it contains symlinks and is unbundled. Use "
+ "an app generated with ./mach build package.",
+)
+@CommandArgument(
+ "-s",
+ "--signing-identity",
+ metavar="SIGNING_IDENTITY",
+ default=None,
+ type=str,
+ dest="signing_identity_arg",
+ help="The codesigning identity to be used when signing with the macOS "
+ "native codesign tool. By default ad-hoc self-signing will be used. ",
+)
+@CommandArgument(
+ "-e",
+ "--entitlements",
+ default="developer",
+ choices=["developer", "production", "production-without-restricted"],
+ type=str,
+ dest="entitlements_arg",
+ help="Whether to sign the build for development or production use. "
+ "By default, a developer signing is performed. This does not require "
+ "a certificate to be configured. Developer entitlements are limited "
+ "to be compatible with self-signing and to allow debugging. Production "
+ "entitlements require a valid Apple Developer ID certificate issued from "
+ "the organization's Apple Developer account (without one, signing will "
+ "succeed, but the build will not be usable) and a provisioning profile to "
+ "be added to the bundle or installed in macOS System Preferences. The "
+ "certificate may be a 'development' certificate issued by the account. The "
+ "Apple Developer account must have the necessary restricted entitlements "
+ "granted in order for the signed build to work correctly. Use "
+ "production-without-restricted if you have a Developer ID certificate "
+ "not associated with an account approved for the restricted entitlements.",
+)
+@CommandArgument(
+ "-c",
+ "--channel",
+ default="auto",
+ choices=["auto", "nightly", "devedition", "beta", "release"],
+ dest="channel_arg",
+ type=str,
+ help="Which channel build is being signed.",
+)
+@CommandArgumentGroup("rcodesign")
+@CommandArgument(
+ "-r",
+ "--use_rcodesign",
+ group="rcodesign",
+ default=False,
+ dest="use_rcodesign_arg",
+ action="store_true",
+ help="Enables signing with rcodesign instead of codesign. With rcodesign, "
+ "only ad-hoc and pkcs12 signing is supported. To use a signing identity, "
+ "specify a pkcs12 file and password file. See rcodesign documentation for "
+ "more information.",
+)
+@CommandArgument(
+ "-f",
+ "--rcodesign-p12-file",
+ group="rcodesign",
+ metavar="RCODESIGN_P12_FILE_PATH",
+ default=None,
+ type=str,
+ dest="p12_file_arg",
+ help="The rcodesign pkcs12 file, passed to rcodesign without validation.",
+)
+@CommandArgument(
+ "-p",
+ "--rcodesign-p12-password-file",
+ group="rcodesign",
+ metavar="RCODESIGN_P12_PASSWORD_FILE_PATH",
+ default=None,
+ type=str,
+ dest="p12_password_file_arg",
+ help="The rcodesign pkcs12 password file, passed to rcodesign without "
+ "validation.",
+)
+def macos_sign(
+ command_context,
+ app_arg,
+ signing_identity_arg,
+ entitlements_arg,
+ channel_arg,
+ use_rcodesign_arg,
+ p12_file_arg,
+ p12_password_file_arg,
+ verbose_arg,
+):
+ """Signs a .app build with entitlements from the repo
+
+ Validates all the command line options, reads the signing config from
+ the repo to determine which entitlement files to use, signs the build
+ using either the native macOS codesign or rcodesign, and finally validates
+ the .app using codesign.
+ """
+ command_context._set_log_level(verbose_arg)
+
+ # Check appdir and remove trailing slasshes
+ if not os.path.isdir(app_arg):
+ command_context.log(
+ logging.ERROR,
+ "macos-sign",
+ {"app": app_arg},
+ "ERROR: {app} is not a directory",
+ )
+ sys.exit(1)
+ app = os.path.realpath(app_arg)
+
+ # With rcodesign, either both a p12 file and p12 password file should be
+ # provided or neither. If neither, the signing identity must be either '-'
+ # for ad-hoc or None.
+ rcodesign_p12_provided = False
+ if use_rcodesign_arg:
+ if p12_file_arg is None and p12_password_file_arg is not None:
+ command_context.log(
+ logging.ERROR,
+ "macos-sign",
+ {},
+ "ERROR: p12 password file with no p12 file, " "use both or neither",
+ )
+ sys.exit(1)
+ if p12_file_arg is not None and p12_password_file_arg is None:
+ command_context.log(
+ logging.ERROR,
+ "macos-sign",
+ {},
+ "ERROR: p12 file with no p12 password file, " "use both or neither",
+ )
+ sys.exit(1)
+ if p12_file_arg is not None and p12_password_file_arg is not None:
+ rcodesign_p12_provided = True
+
+ # Only rcodesign supports pkcs12 args
+ if not use_rcodesign_arg and (
+ p12_password_file_arg is not None or p12_file_arg is not None
+ ):
+ command_context.log(
+ logging.ERROR,
+ "macos-sign",
+ {},
+ "ERROR: pkcs12 signing not supported with "
+ "native codesign, only rcodesign",
+ )
+ sys.exit(1)
+
+ # Check the user didn't ask for a codesigning identity with rcodesign.
+ # Check the user didn't ask for ad-hoc signing AND rcodesign pkcs12 signing.
+ # Check the user didn't ask for ad-hoc signing with production entitlements.
+ # Self-signing and ad-hoc signing are both incompatible with production
+ # entitlements. (Library loading entitlements depend on the codesigning
+ # team ID which is not set on self-signed/ad-hoc signatures and requires an
+ # Apple-issued cert. Signing succeeds, but the bundle will not be
+ # launchable.)
+ if use_rcodesign_arg:
+ # With rcodesign, only accept "-s -" or no -s argument.
+ if not rcodesign_p12_provided:
+ if signing_identity_arg is not None and signing_identity_arg != "-s":
+ command_context.log(
+ logging.ERROR,
+ "macos-sign",
+ {},
+ "ERROR: rcodesign requires pkcs12 or " "ad-hoc signing",
+ )
+ sys.exit(1)
+
+ # Did the user request a signing identity string and pkcs12 signing?
+ if rcodesign_p12_provided and signing_identity_arg is not None:
+ command_context.log(
+ logging.ERROR,
+ "macos-sign",
+ {},
+ "ERROR: both ad-hoc and pkcs12 signing " "requested",
+ )
+ sys.exit(1)
+
+ # Is ad-hoc signing with production entitlements requested?
+ if (
+ (not rcodesign_p12_provided)
+ and (signing_identity_arg is None or signing_identity_arg == "-")
+ and (entitlements_arg != "developer")
+ ):
+ command_context.log(
+ logging.ERROR,
+ "macos-sign",
+ {},
+ "ERROR: " "Production entitlements and self-signing are " "not compatible",
+ )
+ sys.exit(1)
+
+ # By default, use ad-hoc
+ signing_identity = None
+ signing_identity_label = None
+ if use_rcodesign_arg and rcodesign_p12_provided:
+ # signing_identity will not be used
+ signing_identity_label = "pkcs12"
+ elif signing_identity_arg is None or signing_identity_arg == "-":
+ signing_identity = "-"
+ signing_identity_label = "ad-hoc"
+ else:
+ signing_identity = signing_identity_arg
+ signing_identity_label = signing_identity_arg
+
+ command_context.log(
+ logging.INFO,
+ "macos-sign",
+ {"id": signing_identity_label},
+ "Using {id} signing identity",
+ )
+
+ # Which channel are we signing? Set 'channel' based on 'channel_arg'.
+ channel = None
+ if channel_arg == "auto":
+ channel = auto_detect_channel(command_context, app)
+ else:
+ channel = channel_arg
+ command_context.log(
+ logging.INFO,
+ "macos-sign",
+ {"channel": channel},
+ "Using {channel} channel signing configuration",
+ )
+
+ # Do we want production or developer entitlements? Set 'entitlements_key'
+ # based on 'entitlements_arg'. In the buildconfig, developer entitlements
+ # are labeled as "default".
+ entitlements_key = None
+ if entitlements_arg == "production":
+ entitlements_key = "production"
+ elif entitlements_arg == "developer":
+ entitlements_key = "default"
+ elif entitlements_arg == "production-without-restricted":
+ # We'll strip out restricted entitlements below.
+ entitlements_key = "production"
+
+ command_context.log(
+ logging.INFO,
+ "macos-sign",
+ {"ent": entitlements_arg},
+ "Using {ent} entitlements",
+ )
+
+ # Get a path to the config file which maps files in the .app
+ # bundle to their entitlement files in the tree (if any) to use
+ # when signing. There is a set of mappings for each combination
+ # of ({developer, production}, {nightly, devedition, release}).
+ # i.e., depending on the entitlements argument (production or dev)
+ # and the channel argument (nightly, devedition, or release) we'll
+ # use different entitlements.
+ sourcedir = command_context.topsrcdir
+ buildconfigpath = sourcedir + "/taskcluster/ci/config.yml"
+
+ command_context.log(
+ logging.INFO,
+ "macos-sign",
+ {"yaml": buildconfigpath},
+ "Reading build config file {yaml}",
+ )
+
+ with open(buildconfigpath, "r") as buildconfigfile:
+ parsedconfig = yaml.safe_load(buildconfigfile)
+
+ # Store all the mappings
+ signing_groups = parsedconfig["mac-signing"]["hardened-sign-config"][
+ "by-hardened-signing-type"
+ ][entitlements_key]
+
+ command_context.log(
+ logging.INFO, "macos-sign", {}, "Stripping existing xattrs and signatures"
+ )
+
+ # Remove extended attributes. Per Apple "Technical Note TN2206",
+ # code signing uses extended attributes to store signatures for
+ # non-Mach-O executables such as script files. We want to avoid
+ # any complications that might be caused by existing extended
+ # attributes.
+ xattr_cmd = ["xattr", "-cr", app]
+ run(command_context, xattr_cmd, capture_output=not verbose_arg)
+
+ # Remove existing signatures. The codesign command only replaces
+ # signatures if the --force option used. Remove all signatures so
+ # subsequent signing commands with different options will result
+ # in re-signing without requiring --force.
+ cs_reset_cmd = ["find", app, "-exec", "codesign", "--remove-signature", "{}", ";"]
+ run(command_context, cs_reset_cmd, capture_output=not verbose_arg)
+
+ if use_rcodesign_arg is True:
+ sign_with_rcodesign(
+ command_context,
+ verbose_arg,
+ signing_groups,
+ entitlements_arg,
+ channel,
+ app,
+ p12_file_arg,
+ p12_password_file_arg,
+ )
+ else:
+ sign_with_codesign(
+ command_context,
+ verbose_arg,
+ signing_groups,
+ signing_identity,
+ entitlements_arg,
+ channel,
+ app,
+ )
+
+ verify_result(command_context, app, verbose_arg)
+
+
+def auto_detect_channel(ctx, app):
+ """Detects the channel of the provided app (nightly, release, etc.)
+
+ Reads the CFBundleIdentifier from the provided apps Info.plist and
+ returns the appropriate channel string. Release and Beta builds use
+ org.mozilla.firefox for the CFBundleIdentifier. Nightly channel builds use
+ org.mozilla.nightly.
+ """
+ # The bundle IDs for different channels. We use these strings to
+ # auto-detect the channel being signed. Different channels use
+ # different entitlement files.
+ NIGHTLY_BUNDLEID = "org.mozilla.nightly"
+ DEVEDITION_BUNDLEID = "org.mozilla.firefoxdeveloperedition"
+ # BETA uses the same bundle ID as Release
+ RELEASE_BUNDLEID = "org.mozilla.firefox"
+
+ info_plist = os.path.join(app, "Contents/Info.plist")
+
+ ctx.log(
+ logging.DEBUG, "macos-sign", {"plist": info_plist}, "Reading {plist} bundle ID"
+ )
+
+ process = subprocess.Popen(
+ ["defaults", "read", info_plist, "CFBundleIdentifier"],
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ )
+ out, err = process.communicate()
+ bundleid = out.decode("utf-8").strip()
+
+ ctx.log(
+ logging.DEBUG,
+ "macos-sign",
+ {"bundleid": bundleid},
+ "Found bundle ID {bundleid}",
+ )
+
+ if bundleid == NIGHTLY_BUNDLEID:
+ return "nightly"
+ elif bundleid == DEVEDITION_BUNDLEID:
+ return "devedition"
+ elif bundleid == RELEASE_BUNDLEID:
+ return "release"
+ else:
+ # Couldn't determine the channel from <info_plist>.
+ # Unrecognized bundle ID <bundleID>.
+ # Use the channel argument.
+ ctx.log(
+ logging.ERROR,
+ "macos-sign",
+ {"plist": info_plist},
+ "Couldn't read bundle ID from {plist}",
+ )
+ sys.exit(1)
+
+
+def sign_with_codesign(
+ ctx, verbose_arg, signing_groups, signing_identity, entitlements_arg, channel, app
+):
+ # Signing with codesign:
+ #
+ # For each signing_group in signing_groups, invoke codesign with the
+ # options and paths specified in the signging_group.
+ ctx.log(logging.INFO, "macos-sign", {}, "Signing with codesign")
+
+ for signing_group in signing_groups:
+ cs_cmd = ["codesign"]
+ cs_cmd.append("--sign")
+ cs_cmd.append(signing_identity)
+
+ if "deep" in signing_group and signing_group["deep"]:
+ cs_cmd.append("--deep")
+ if "force" in signing_group and signing_group["force"]:
+ cs_cmd.append("--force")
+ if "runtime" in signing_group and signing_group["runtime"]:
+ cs_cmd.append("--options")
+ cs_cmd.append("runtime")
+
+ entitlement_file = None
+ temp_files_to_cleanup = []
+
+ if "entitlements" in signing_group:
+ # This signing group has an entitlement file
+ cs_cmd.append("--entitlements")
+
+ # Given the type of build (dev, prod, or prod without restricted
+ # entitlements) and the channel we're going to sign, get the path
+ # to the entitlement file from the config.
+ if isinstance(signing_group["entitlements"], str):
+ # If the 'entitlements' key in the signing group maps to
+ # a string, it's a simple lookup.
+ entitlement_file = signing_group["entitlements"]
+ elif isinstance(signing_group["entitlements"], dict):
+ # If the 'entitlements' key in the signing group maps to
+ # a dict, the mapping from key to entitlement file is
+ # different for each channel:
+ if channel == "nightly":
+ entitlement_file = signing_group["entitlements"][
+ "by-build-platform"
+ ]["default"]["by-project"]["mozilla-central"]
+ elif channel == "devedition":
+ entitlement_file = signing_group["entitlements"][
+ "by-build-platform"
+ ][".*devedition.*"]
+ elif channel == "release" or channel == "beta":
+ entitlement_file = signing_group["entitlements"][
+ "by-build-platform"
+ ]["default"]["by-project"]["default"]
+ else:
+ raise ("Unexpected channel")
+
+ # We now have an entitlement file for this signing group.
+ # If we are signing using production-without-restricted, strip out
+ # restricted entitlements and save the result in a temporary file.
+ if entitlements_arg == "production-without-restricted":
+ temp_ent_file = strip_restricted_entitlements(entitlement_file)
+ temp_files_to_cleanup.append(temp_ent_file)
+ cs_cmd.append(temp_ent_file)
+ else:
+ cs_cmd.append(entitlement_file)
+
+ for pathglob in signing_group["globs"]:
+ binary_paths = glob.glob(
+ os.path.join(app, pathglob.strip("/")), recursive=True
+ )
+ for binary_path in binary_paths:
+ cs_cmd.append(binary_path)
+
+ run(ctx, cs_cmd, capture_output=not verbose_arg, check=True)
+
+ for temp_file in temp_files_to_cleanup:
+ os.remove(temp_file)
+
+
+def run(ctx, cmd, **kwargs):
+ cmd_as_str = " ".join(cmd)
+ ctx.log(logging.DEBUG, "macos-sign", {"cmd": cmd_as_str}, "[{cmd}]")
+ try:
+ subprocess.run(cmd, **kwargs)
+ except subprocess.CalledProcessError as e:
+ ctx.log(
+ logging.ERROR,
+ "macos-sign",
+ {"rc": e.returncode, "cmd": cmd_as_str, "prog": cmd[0]},
+ "{prog} subprocess failed with exit code {rc}. "
+ "See (-v) verbose output for command output. "
+ "Failing command: [{cmd}]",
+ )
+ sys.exit(e.returncode)
+
+
+def verify_result(ctx, app, verbose_arg):
+ # Verbosely verify validity of signed app
+ cs_verify_cmd = ["codesign", "-vv", app]
+ try:
+ run(ctx, cs_verify_cmd, capture_output=not verbose_arg, check=True)
+ ctx.log(
+ logging.INFO,
+ "macos-sign",
+ {"app": app},
+ "Verification of signed app {app} OK",
+ )
+ except subprocess.CalledProcessError as e:
+ ctx.log(
+ logging.ERROR,
+ "macos-sign",
+ {"rc": e.returncode, "app": app},
+ "Verification of {app} failed with exit code {rc}",
+ )
+ sys.exit(e.returncode)
+
+
+def sign_with_rcodesign(
+ ctx,
+ verbose_arg,
+ signing_groups,
+ entitlements_arg,
+ channel,
+ app,
+ p12_file_arg,
+ p12_password_file_arg,
+):
+ # Signing with rcodesign:
+ #
+ # The rcodesign sign is a single rcodesign invocation with all necessary
+ # arguments included. rcodesign accepts signing options to be applied to
+ # an input path (the .app in this case). For inner bundle resources that
+ # have different codesigning settings, signing options are passed as
+ # scoped arguments in the form --option <relative-path>:<value>. For
+ # example, a different entitlement file is specified for the nested
+ # plugin-container.app with the following:
+ #
+ # --entitlements-xml-path \
+ # Contents/MacOS/plugin-container.app:/path/to/plugin-container.xml
+ #
+ # We iterate through the signing group and generate scoped arguments
+ # for each path to be signed. If the path is '/', it is the main signing
+ # input path and its options are specified as standard arguments.
+ ctx.log(logging.INFO, "macos-sign", {}, "Signing with rcodesign")
+
+ cs_cmd = ["rcodesign", "sign"]
+ if p12_file_arg is not None:
+ cs_cmd.append("--p12-file")
+ cs_cmd.append(p12_file_arg)
+ if p12_password_file_arg is not None:
+ cs_cmd.append("--p12-password-file")
+ cs_cmd.append(p12_password_file_arg)
+
+ temp_files_to_cleanup = []
+
+ for signing_group in signing_groups:
+ # Ignore the 'deep' and 'force' setting for rcodesign
+ group_runtime = "runtime" in signing_group and signing_group["runtime"]
+
+ entitlement_file = None
+
+ if "entitlements" in signing_group:
+ # Given the type of build (dev, prod, or prod without restricted
+ # entitlements) and the channel we're going to sign, get the path
+ # to the entitlement file from the config.
+ if isinstance(signing_group["entitlements"], str):
+ # If the 'entitlements' key in the signing group maps to
+ # a string, it's a simple lookup.
+ entitlement_file = signing_group["entitlements"]
+ elif isinstance(signing_group["entitlements"], dict):
+ # If the 'entitlements' key in the signing group maps to
+ # a dict, the mapping from key to entitlement file is
+ # different for each channel:
+ if channel == "nightly":
+ entitlement_file = signing_group["entitlements"][
+ "by-build-platform"
+ ]["default"]["by-project"]["mozilla-central"]
+ elif channel == "devedition":
+ entitlement_file = signing_group["entitlements"][
+ "by-build-platform"
+ ][".*devedition.*"]
+ elif channel == "release" or channel == "beta":
+ entitlement_file = signing_group["entitlements"][
+ "by-build-platform"
+ ]["default"]["by-project"]["default"]
+ else:
+ raise ("Unexpected channel")
+
+ # We now have an entitlement file for this signing group.
+ # If we are signing using production-without-restricted, strip out
+ # restricted entitlements and save the result in a temporary file.
+ if entitlements_arg == "production-without-restricted":
+ entitlement_file = strip_restricted_entitlements(entitlement_file)
+ temp_files_to_cleanup.append(entitlement_file)
+
+ for pathglob in signing_group["globs"]:
+ binary_paths = glob.glob(
+ os.path.join(app, pathglob.strip("/")), recursive=True
+ )
+ for binary_path in binary_paths:
+ if pathglob == "/":
+ # This is the root of the app. Use these signing options
+ # without argument scoping.
+ if group_runtime:
+ cs_cmd.append("--code-signature-flags")
+ cs_cmd.append("runtime")
+ if entitlement_file is not None:
+ cs_cmd.append("--entitlements-xml-path")
+ cs_cmd.append(entitlement_file)
+ cs_cmd.append(binary_path)
+ continue
+
+ # This is not the root of the app. Paths are convered to
+ # relative paths and signing options are specified as scoped
+ # arguments.
+ binary_path_relative = os.path.relpath(binary_path, app)
+ if group_runtime:
+ cs_cmd.append("--code-signature-flags")
+ scoped_arg = binary_path_relative + ":runtime"
+ cs_cmd.append(scoped_arg)
+ if entitlement_file is not None:
+ cs_cmd.append("--entitlements-xml-path")
+ scoped_arg = binary_path_relative + ":" + entitlement_file
+ cs_cmd.append(scoped_arg)
+
+ run(ctx, cs_cmd, capture_output=not verbose_arg, check=True)
+
+ for temp_file in temp_files_to_cleanup:
+ os.remove(temp_file)
+
+
+def strip_restricted_entitlements(plist_file):
+ # Not a complete set. Update as needed. This is
+ # the set of restricted entitlements we use to date.
+ restricted_entitlements = [
+ "com.apple.developer.web-browser.public-key-credential",
+ "com.apple.application-identifier",
+ ]
+
+ plist_file_obj = open(plist_file, "rb")
+ plist_data = plistlib.load(plist_file_obj, fmt=plistlib.FMT_XML)
+ for entitlement in restricted_entitlements:
+ if entitlement in plist_data:
+ del plist_data[entitlement]
+
+ _, temp_file_path = tempfile.mkstemp(prefix="mach-macos-sign.")
+ with open(temp_file_path, "wb") as temp_file_obj:
+ plistlib.dump(plist_data, temp_file_obj)
+ temp_file_obj.close()
+
+ return temp_file_path
diff --git a/tools/tryselect/docs/img/treeherder-trigger-symbols.png b/tools/tryselect/docs/img/treeherder-trigger-symbols.png
new file mode 100644
index 0000000000..6c799c0bf0
--- /dev/null
+++ b/tools/tryselect/docs/img/treeherder-trigger-symbols.png
Binary files differ
diff --git a/tools/tryselect/docs/index.rst b/tools/tryselect/docs/index.rst
index 8978a72eaf..c42b7fbfb8 100644
--- a/tools/tryselect/docs/index.rst
+++ b/tools/tryselect/docs/index.rst
@@ -56,6 +56,41 @@ line instead, such as by using ``curl``:
.. _attach-job-review:
+Profiler symbols for try builds
+-------------------------------
+
+When profiling a tryserver build, you don't get symbols by default. You have to trigger
+an additional `upload-symbols` job on your try push so that the symbols are available
+on the symbol server.
+
+You can trigger this job manually in the Treeherder UI, using "Add new jobs (Search)...".
+
+Assuming you want to profile a "shippable" build (recommended), follow these steps:
+
+ 1. On the treeherder push, click the dropdown triangle in the top right corner.
+ 2. Select "Add new jobs (Search)..."
+ 3. Enter "shippable sym" in the search box and press enter.
+ 4. Important: Check the "Use full job list" checkbox.
+ 5. Pick the job for your try build. For Windows 64 bit builds, the job name is ``build-win64-shippable/opt-upload-symbols`` (this was written in February 2024).
+ 6. Click "Add selected", scroll down, and click "Trigger (1) Selected Jobs".
+
+Around ten minutes later, the symbols will be available on the symbol server, and profile symbolication will succeed.
+
+For other build types, choose the corresponding job for your build type. The job names all
+end in ``-upload-symbols``, and share a prefix with the build job.
+
+.. image:: img/treeherder-trigger-symbols.png
+
+If you've already captured a profile from a try build before the symbols were available, you can
+fix up the collected profile once the symbols are available. To do so, in the Firefox Profiler UI,
+click the "Profile Info" button in the top right corner, and then click the "Re-symbolicate profile"
+button in the panel.
+
+If you want to trigger the upload-symbol job when pushing to try, you can pick it in the list
+when running ``./mach try fuzzy --full`` - the ``--full`` part is necessary.
+The ``-upload-symbols`` task has a dependency on the build task, so you don't have to trigger
+the build task separately if you do this.
+
Adding Try jobs to a Phabricator patch
--------------------------------------
diff --git a/tools/tryselect/docs/selectors/index.rst b/tools/tryselect/docs/selectors/index.rst
index be618202d6..6aba6838d9 100644
--- a/tools/tryselect/docs/selectors/index.rst
+++ b/tools/tryselect/docs/selectors/index.rst
@@ -16,6 +16,7 @@ These are the currently implemented try selectors:
* :doc:`release <release>`: Prepare a tree for doing a staging release.
* :doc:`scriptworker <scriptworker>`: Run scriptworker tasks against a recent release.
* :doc:`compare <compare>`: Push two identical try jobs, one on your current commit and another of your choice
+* :ref:`perf <Mach Try Perf>`: Select categories of performance tests to run, and produce a before/after compare view link.
You can run them with:
@@ -42,3 +43,4 @@ See selector specific options by running:
Syntax <syntax>
Release <release>
Scriptworker <scriptworker>
+ Perf </testing/perfdocs/mach-try-perf>
diff --git a/tools/tryselect/selectors/chooser/templates/chooser.html b/tools/tryselect/selectors/chooser/templates/chooser.html
index 4e009d94ac..1c3df39327 100644
--- a/tools/tryselect/selectors/chooser/templates/chooser.html
+++ b/tools/tryselect/selectors/chooser/templates/chooser.html
@@ -40,6 +40,17 @@
{% else %}
<div class="tab-pane" id="{{ section.name }}" role="tabpanel" aria-labelledby="{{ section.name }}-tab">
{% endif %}
+ {% if section.name == "perf" %}
+ <div>
+ <p style="color:red">
+ WARNING: The try chooser is no longer supported for selecting performance tests.
+ Please use
+ <a href="https://firefox-source-docs.mozilla.org/testing/perfdocs/mach-try-perf.html">
+ ./mach try perf
+ </a>.
+ </p>
+ </div>
+ {% endif %}
{% for label, meta in section.labels|dictsort %}
<label class="multiselect filter-label" for={{ label }}>
<span>
diff --git a/tools/tryselect/selectors/fuzzy.py b/tools/tryselect/selectors/fuzzy.py
index 7a9bccc4b7..a9b139fa6f 100644
--- a/tools/tryselect/selectors/fuzzy.py
+++ b/tools/tryselect/selectors/fuzzy.py
@@ -12,7 +12,7 @@ from mach.util import get_state_dir
from ..cli import BaseTryParser
from ..push import check_working_directory, generate_try_task_config, push_to_try
-from ..tasks import filter_tasks_by_paths, generate_tasks
+from ..tasks import filter_tasks_by_paths, filter_tasks_by_worker_type, generate_tasks
from ..util.fzf import (
FZF_NOT_FOUND,
PREVIEW_SCRIPT,
@@ -182,6 +182,11 @@ def run(
if filter_by_uncommon_try_tasks(task_name)
}
+ if try_config_params.get("try_task_config", {}).get("worker-types", []):
+ all_tasks = filter_tasks_by_worker_type(all_tasks, try_config_params)
+ if not all_tasks:
+ return 1
+
if test_paths:
all_tasks = filter_tasks_by_paths(all_tasks, test_paths)
if not all_tasks:
diff --git a/tools/tryselect/selectors/perf.py b/tools/tryselect/selectors/perf.py
index 3c59e5949c..261905d5a3 100644
--- a/tools/tryselect/selectors/perf.py
+++ b/tools/tryselect/selectors/perf.py
@@ -336,6 +336,15 @@ class PerfParser(CompareParser):
"help": "Use PerfCompare Beta instead of CompareView.",
},
],
+ [
+ ["--non-pgo"],
+ {
+ "action": "store_true",
+ "default": False,
+ "help": "Use opt/non-pgo builds instead of shippable/pgo builds. "
+ "Setting this flag will result in faster try runs.",
+ },
+ ],
]
def get_tasks(base_cmd, queries, query_arg=None, candidate_tasks=None):
@@ -715,7 +724,7 @@ class PerfParser(CompareParser):
PerfParser.variants[variant.value]["query"]
)
- def _build_categories(category, category_info, category_matrix):
+ def _build_categories(category, category_info, category_matrix, **kwargs):
"""Builds the categories to display."""
categories = {}
@@ -745,6 +754,16 @@ class PerfParser(CompareParser):
for suite in category_info["suites"]
}
+ if kwargs.get("non_pgo"):
+ for key, query_list in platform_queries.items():
+ updated_query_list = []
+ for query in query_list:
+ updated_query = query.replace(
+ "'shippable", "!shippable !nightlyasrelease"
+ )
+ updated_query_list.append(updated_query)
+ platform_queries[key] = updated_query_list
+
platform_category_name = f"{category} {platform.value}"
platform_category_info = {
"queries": platform_queries,
@@ -931,7 +950,7 @@ class PerfParser(CompareParser):
for category, category_matrix in category_decision_matrix.items():
categories.update(
PerfParser._build_categories(
- category, PerfParser.categories[category], category_matrix
+ category, PerfParser.categories[category], category_matrix, **kwargs
)
)
diff --git a/tools/tryselect/task_config.py b/tools/tryselect/task_config.py
index f7a78cbfbf..58e8beeda4 100644
--- a/tools/tryselect/task_config.py
+++ b/tools/tryselect/task_config.py
@@ -80,7 +80,7 @@ class TryConfig(ParameterConfig):
def get_parameters(self, **kwargs):
result = self.try_config(**kwargs)
- if result is None:
+ if not result:
return None
return {"try_task_config": result}
@@ -579,9 +579,18 @@ class WorkerOverrides(TryConfig):
),
},
],
+ [
+ ["--worker-type"],
+ {
+ "action": "append",
+ "dest": "worker_types",
+ "default": [],
+ "help": "Select tasks that only run on the specified worker.",
+ },
+ ],
]
- def try_config(self, worker_overrides, worker_suffixes, **kwargs):
+ def try_config(self, worker_overrides, worker_suffixes, worker_types, **kwargs):
from gecko_taskgraph.util.workertypes import get_worker_type
from taskgraph.config import load_graph_config
@@ -621,8 +630,13 @@ class WorkerOverrides(TryConfig):
provisioner=provisioner, worker_type=worker_type, suffix=suffix
)
+ retVal = {}
+ if worker_types:
+ retVal["worker-types"] = list(overrides.keys()) + worker_types
+
if overrides:
- return {"worker-overrides": overrides}
+ retVal["worker-overrides"] = overrides
+ return retVal
all_task_configs = {
diff --git a/tools/tryselect/tasks.py b/tools/tryselect/tasks.py
index fa3eebc161..701d1c1ade 100644
--- a/tools/tryselect/tasks.py
+++ b/tools/tryselect/tasks.py
@@ -152,6 +152,17 @@ def generate_tasks(params=None, full=False, disable_target_task_filter=False):
return tg_target
+def filter_tasks_by_worker_type(tasks, params):
+ worker_types = params.get("try_task_config", {}).get("worker-types", [])
+ if worker_types:
+ retVal = {}
+ for t in tasks:
+ if tasks[t].task["workerType"] in worker_types:
+ retVal[t] = tasks[t]
+ return retVal
+ return tasks
+
+
def filter_tasks_by_paths(tasks, paths):
resolver = TestResolver.from_environment(cwd=here, loader_cls=TestManifestLoader)
run_suites, run_tests = resolver.resolve_metadata(paths)
diff --git a/tools/tryselect/test/test_fuzzy.py b/tools/tryselect/test/test_fuzzy.py
index 9ff1b386af..e68365c923 100644
--- a/tools/tryselect/test/test_fuzzy.py
+++ b/tools/tryselect/test/test_fuzzy.py
@@ -98,7 +98,7 @@ def test_query_paths_variants(run_mach, capfd, variant):
index = output.find(delim)
result = json.loads(output[index + len(delim) :])
tasks = result["parameters"]["try_task_config"]["tasks"]
- assert tasks == expected
+ assert sorted(tasks) == sorted(expected)
@pytest.mark.skipif(os.name == "nt", reason="fzf not installed on host")
diff --git a/tools/tryselect/test/test_perf.py b/tools/tryselect/test/test_perf.py
index 0db45df83e..c4e3b6b5fa 100644
--- a/tools/tryselect/test/test_perf.py
+++ b/tools/tryselect/test/test_perf.py
@@ -815,6 +815,34 @@ def test_category_expansion(
@pytest.mark.parametrize(
+ "category_options, call_counts",
+ [
+ (
+ {},
+ 0,
+ ),
+ (
+ {"non_pgo": True},
+ 58,
+ ),
+ ],
+)
+def test_category_expansion_with_non_pgo_flag(category_options, call_counts):
+ PerfParser.categories = TEST_CATEGORIES
+ PerfParser.variants = TEST_VARIANTS
+
+ expanded_cats = PerfParser.get_categories(**category_options)
+
+ non_shippable_count = 0
+ for cat_name in expanded_cats:
+ queries = str(expanded_cats[cat_name].get("queries", None))
+ if "!shippable !nightlyasrelease" in queries and "'shippable" not in queries:
+ non_shippable_count += 1
+
+ assert non_shippable_count == call_counts
+
+
+@pytest.mark.parametrize(
"options, call_counts, log_ind, expected_log_message",
[
(
diff --git a/tools/tryselect/test/test_tasks.py b/tools/tryselect/test/test_tasks.py
index 2e99c72d8b..ecf5849741 100644
--- a/tools/tryselect/test/test_tasks.py
+++ b/tools/tryselect/test/test_tasks.py
@@ -6,7 +6,103 @@ import os
import mozunit
import pytest
-from tryselect.tasks import cache_key, filter_tasks_by_paths, resolve_tests_by_suite
+from tryselect.tasks import (
+ cache_key,
+ filter_tasks_by_paths,
+ filter_tasks_by_worker_type,
+ resolve_tests_by_suite,
+)
+
+
+class task:
+ def __init__(self, workerType):
+ self.workerType = workerType
+
+ @property
+ def task(self):
+ return {"workerType": self.workerType}
+
+
+@pytest.mark.parametrize(
+ "tasks, params, expected",
+ (
+ pytest.param(
+ {
+ "foobar/xpcshell-1": task("t-unittest-314"),
+ "foobar/mochitest": task("t-unittest-157"),
+ "foobar/xpcshell-gpu": task("t-unittest-314-gpu"),
+ "foobar/xpcshell": task("t-unittest-314"),
+ },
+ {"try_task_config": {"worker-types": ["t-unittest-314"]}},
+ [
+ "foobar/xpcshell-1",
+ "foobar/xpcshell",
+ ],
+ id="single worker",
+ ),
+ pytest.param(
+ {
+ "foobar/xpcshell-1": task("t-unittest-314"),
+ "foobar/mochitest": task("t-unittest-157"),
+ "foobar/xpcshell-gpu": task("t-unittest-314-gpu"),
+ "foobar/xpcshell": task("t-unittest-314"),
+ },
+ {
+ "try_task_config": {
+ "worker-types": ["t-unittest-314", "t-unittest-314-gpu"]
+ }
+ },
+ [
+ "foobar/xpcshell-1",
+ "foobar/xpcshell-gpu",
+ "foobar/xpcshell",
+ ],
+ id="multiple workers worker",
+ ),
+ pytest.param(
+ {
+ "foobar/xpcshell-1": task("t-unittest-314"),
+ "foobar/mochitest": task("t-unittest-157"),
+ "foobar/xpcshell-gpu": task("t-unittest-314-gpu"),
+ "foobar/xpcshell": task("t-unittest-314"),
+ },
+ {"try_task_config": {"worker-types": ["t-unittest-157"]}},
+ [
+ "foobar/mochitest",
+ ],
+ id="single task",
+ ),
+ pytest.param(
+ {
+ "foobar/xpcshell-1": task("t-unittest-314"),
+ "foobar/mochitest": task("t-unittest-157"),
+ "foobar/xpcshell-gpu": task("t-unittest-314-gpu"),
+ "foobar/xpcshell": task("t-unittest-314"),
+ },
+ {"try_task_config": {"worker-types": []}},
+ [
+ "foobar/xpcshell-1",
+ "foobar/mochitest",
+ "foobar/xpcshell-gpu",
+ "foobar/xpcshell",
+ ],
+ id="no worker",
+ ),
+ pytest.param(
+ {
+ "foobar/xpcshell-1": task("t-unittest-314"),
+ "foobar/mochitest": task("t-unittest-157"),
+ "foobar/xpcshell-gpu": task("t-unittest-314-gpu"),
+ "foobar/xpcshell": task("t-unittest-314"),
+ },
+ {"try_task_config": {"worker-types": ["fake-worker"]}},
+ [],
+ id="invalid worker",
+ ),
+ ),
+)
+def test_filter_tasks_by_worker_type(patch_resolver, tasks, params, expected):
+ assert list(filter_tasks_by_worker_type(tasks, params)) == expected
def test_filter_tasks_by_paths(patch_resolver):
diff --git a/tools/tryselect/try_presets.yml b/tools/tryselect/try_presets.yml
index ebdc94aa03..680d318dc6 100644
--- a/tools/tryselect/try_presets.yml
+++ b/tools/tryselect/try_presets.yml
@@ -9,6 +9,14 @@
# yamllint disable rule:line-length
+android-components:
+ selector: fuzzy
+ description: >-
+ Run android-components builds and tests.
+ query:
+ - "'build-components"
+ - "'test-components"
+
builds:
selector: fuzzy
description: >-
@@ -83,6 +91,50 @@ devtools-linux:
- "'mochitest-devtools-chrome | 'mochitest-chrome-1proc 'linux '64-qr/ !swr"
- "'xpcshell 'linux !nofis '64-qr/"
+fenix:
+ selector: fuzzy
+ description: >-
+ Run Fenix builds and tests.
+ query:
+ - "'build-apk-fenix-debug"
+ - "'signing-apk-fenix-debug"
+ - "'build-apk-fenix-android-test-debug"
+ - "'signing-apk-fenix-android-test-debug"
+ - "'test-apk-fenix-debug"
+ - "'ui-test-apk-fenix-arm-debug"
+
+firefox-android:
+ selector: fuzzy
+ description: >-
+ Run android-components, Focus, and Fenix builds and tests.
+ query:
+ - "'build-components"
+ - "'test-components"
+ - "'build-apk-fenix-debug"
+ - "'signing-apk-fenix-debug"
+ - "'build-apk-fenix-android-test-debug"
+ - "'signing-apk-fenix-android-test-debug"
+ - "'test-apk-fenix-debug"
+ - "'ui-test-apk-fenix-arm-debug"
+ - "'build-apk-focus-debug"
+ - "'signing-apk-focus-debug"
+ - "'build-apk-focus-android-test-debug"
+ - "'signing-apk-focus-android-test-debug"
+ - "'test-apk-focus-debug"
+ - "'ui-test-apk-focus-arm-debug"
+
+focus:
+ selector: fuzzy
+ description: >-
+ Run Focus builds and tests.
+ query:
+ - "'build-apk-focus-debug"
+ - "'signing-apk-focus-debug"
+ - "'build-apk-focus-android-test-debug"
+ - "'signing-apk-focus-android-test-debug"
+ - "'test-apk-focus-debug"
+ - "'ui-test-apk-focus-arm-debug"
+
fpush-linux-android:
selector: fuzzy
description: >-
diff --git a/tools/ts/.eslintrc.js b/tools/ts/.eslintrc.js
new file mode 100644
index 0000000000..a4a77efad7
--- /dev/null
+++ b/tools/ts/.eslintrc.js
@@ -0,0 +1,18 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+module.exports = {
+ plugins: ["eslint-plugin"],
+ extends: ["plugin:eslint-plugin/recommended"],
+ env: {
+ browser: false,
+ node: true,
+ },
+ rules: {
+ "no-console": "off",
+ strict: ["error", "global"],
+ },
+};
diff --git a/tools/ts/build_nsresult.js b/tools/ts/build_nsresult.js
new file mode 100644
index 0000000000..6926d87bf2
--- /dev/null
+++ b/tools/ts/build_nsresult.js
@@ -0,0 +1,56 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+/**
+ * Build: <objdir>/dist/@types/lib.gecko.nsresult.d.ts,
+ *
+ * from: <srcdir>/js/xpconnect/src/xpc.msg and
+ * <srcdir>/tools/ts/error_list.json,
+ * generated manually for now.
+ */
+
+const fs = require("fs");
+const peggy = require("peggy");
+
+const HEADER = `/**
+ * NOTE: Do not modify this file by hand.
+ * Content was generated from xpc.msg and error_list.json.
+ */
+`;
+
+const XPC_MSG_GRAMMAR = `
+ File = Header @( Comment / Definition / NL )*
+ Header = '/*' (!'*/' .)* '*/' NL
+ Comment = '/*' @$(!'*/' !NL .)* '*/' NL
+ Definition = 'XPC_MSG_DEF(' @$[A-Z0-9_]+ [ ]* ', "' @$[^"]+ '")' NL
+ NL = @$[ ]* '\\n'
+`;
+
+function main(lib_dts, xpc_msg, errors_json) {
+ let parser = peggy.generate(XPC_MSG_GRAMMAR);
+
+ let messages = parser.parse(fs.readFileSync(xpc_msg, "utf8"));
+ let errors = JSON.parse(fs.readFileSync(errors_json, "utf8"));
+
+ let lines = messages.map(line => {
+ if (!Array.isArray(line)) {
+ return line ? ` // ${line.trim()}` : "";
+ }
+ let [name, msg] = line;
+ return `\n /** ${msg} */\n ${name}: 0x${errors[name].toString(16)};`;
+ });
+
+ let dts = [
+ HEADER,
+ "interface nsIXPCComponents_Results {",
+ lines.join("\n").replaceAll("\n\n\n", "\n\n"),
+ "}\n",
+ ].join("\n");
+
+ console.log(`[INFO] ${lib_dts} (${dts.length.toLocaleString()} bytes)`);
+ fs.writeFileSync(lib_dts, dts);
+}
+
+main(...process.argv.slice(2));
diff --git a/tools/ts/build_services.js b/tools/ts/build_services.js
new file mode 100644
index 0000000000..397eff7074
--- /dev/null
+++ b/tools/ts/build_services.js
@@ -0,0 +1,47 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+/**
+ * Build: <objdir>/dist/@types/lib.gecko.services.d.ts,
+ *
+ * from: <objdir>/xpcom/components/services.json,
+ * generated by a previous build step.
+ */
+
+const fs = require("fs");
+
+const HEADER = `/**
+ * NOTE: Do not modify this file by hand.
+ * Content was generated from services.json.
+ */
+`;
+
+const SERVICES = {
+ cpmm: ["ContentProcessMessageManager"],
+ mm: ["ChromeMessageBroadcaster"],
+ ppmm: ["ParentProcessMessageManager"],
+};
+
+function main(lib_dts, services_json) {
+ let interfaces = JSON.parse(fs.readFileSync(services_json, "utf8"));
+
+ for (let [iface, svc] of Object.entries(interfaces)) {
+ SERVICES[svc] = SERVICES[svc] ?? [];
+ SERVICES[svc].push(iface);
+ }
+
+ let lines = [HEADER];
+ lines.push("interface JSServices {");
+ for (let [svc, ifaces] of Object.entries(SERVICES).sort()) {
+ lines.push(` ${svc}: ${ifaces.join(" & ")};`);
+ }
+ lines.push("}\n");
+
+ let dts = lines.join("\n");
+ console.log(`[INFO] ${lib_dts} (${dts.length.toLocaleString()} bytes)`);
+ fs.writeFileSync(lib_dts, dts);
+}
+
+main(...process.argv.slice(2));
diff --git a/tools/ts/build_xpcom.js b/tools/ts/build_xpcom.js
new file mode 100644
index 0000000000..d09b18fb69
--- /dev/null
+++ b/tools/ts/build_xpcom.js
@@ -0,0 +1,139 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+/**
+ * Build: <objdir>/dist/@types/lib.gecko.xpcom.d.ts,
+ *
+ * from: <objdir>/config/makefiles/xpidl/*.d.json type definition files,
+ * generated by a previous build step.
+ */
+
+const fs = require("fs");
+const URL = "https://searchfox.org/mozilla-central/source/";
+
+const HEADER = `/**
+ * NOTE: Do not modify this file by hand.
+ * Content was generated from source XPCOM .idl files.
+ */
+`;
+
+// Emit a typescript interface, along with any related enums.
+function ts_interface(iface) {
+ let lines = [];
+ let base = iface.base;
+ iface.class = iface.id;
+
+ // Make QueryInterface optional, enable plain objects to pass as nsISupports.
+ let partial = iface.id === "nsISupports" ? "?" : "";
+
+ let enums = iface.enums.map(e => `typeof ${iface.id}.${e.id}`).join(" & ");
+ if (enums) {
+ base += `, Enums<${enums}>`;
+ iface.class += `, ${enums}`;
+
+ // Close the global scope, avoid polluting it with the namespace value.
+ lines.push("} // global\n");
+ lines.push(`declare namespace ${iface.id} {\n`);
+
+ for (let e of iface.enums) {
+ lines.push(`enum ${e.id} {`);
+ for (let v of e.variants) {
+ lines.push(` ${v.name} = ${v.value},`);
+ }
+ lines.push("}\n");
+ }
+
+ lines.push("}\n");
+ lines.push("declare global {\n");
+ }
+
+ // Handle [function] interfaces.
+ if (iface.callable) {
+ lines.push(`type ${iface.id} = Callable<{`);
+ } else {
+ lines.push(`interface ${iface.id} ${base ? `extends ${base} ` : ""}{`);
+ }
+
+ for (let c of iface.consts) {
+ lines.push(` readonly ${c.name}: ${c.value};`);
+ }
+
+ if (iface.consts.length && iface.members.length) {
+ // For style points.
+ lines.push("");
+ }
+
+ for (let m of iface.members) {
+ if (!m.args) {
+ lines.push(` ${m.readonly ? "readonly " : ""}${m.name}: ${m.type};`);
+ } else {
+ let args = [];
+ for (let arg of m.args) {
+ // If this is the generic parameter, adjust its type.
+ let type = arg.name === m.iid_is ? "T" : arg.type;
+ args.push(`${arg.name}${arg.optional ? "?" : ""}: ${type}`);
+ }
+ let type = `(${args.join(", ")}): ${m.type}`;
+ // Adjust signature if this is a generic method.
+ let signature = m.iid_is ? `<T extends nsIID>${type}<T>` : type;
+ lines.push(` ${m.name}${partial}${signature};`);
+ }
+ }
+
+ lines.push(iface.callable ? "}>\n" : "}\n");
+ return lines;
+}
+
+// Link all generated .d.json files into a self-contained ts typelib.
+function ts_link(dir, files) {
+ let lines = [HEADER, "declare global {\n"];
+ let typedefs = {};
+ let iids = [];
+
+ for (let djson of files) {
+ let modules = JSON.parse(fs.readFileSync(`${dir}/${djson}`, "utf8"));
+
+ for (let mod of modules) {
+ lines.push(`// ${URL}${mod.path}\n`);
+ Object.assign(typedefs, Object.fromEntries(mod.typedefs ?? []));
+
+ for (let iface of mod.interfaces ?? []) {
+ if (iface.id !== "nsIXPCComponents_Interfaces") {
+ lines = lines.concat(ts_interface(iface));
+ iids.push(` ${iface.id}: nsJSIID<${iface.class}>;`);
+ }
+ }
+ }
+ }
+
+ lines.push("interface nsIXPCComponents_Interfaces {");
+ lines = lines.concat(iids);
+ lines.push("}\n");
+
+ lines.push("} // global\n");
+
+ lines.push("// Typedefs from xpidl.");
+ for (let [id, type] of Object.entries(typedefs).sort()) {
+ lines.push(`type ${id} = ${type};`);
+ }
+ lines.push("");
+
+ // Include xpcom builtins.
+ lines.push(fs.readFileSync(`${__dirname}/fixtures/intrinsics.d.ts`, "utf8"));
+ return lines;
+}
+
+// For testing.
+module.exports = { ts_link };
+
+function main(lib_dts, djson_dir, ...djson_files) {
+ let dts = ts_link(djson_dir, djson_files).join("\n");
+ console.log(`[INFO] ${lib_dts} (${dts.length.toLocaleString()} bytes)`);
+ fs.writeFileSync(lib_dts, dts);
+}
+
+if (require.main === module) {
+ main(...process.argv.slice(2));
+}
diff --git a/tools/ts/error_list.json b/tools/ts/error_list.json
new file mode 100644
index 0000000000..0a9fe2fa3d
--- /dev/null
+++ b/tools/ts/error_list.json
@@ -0,0 +1,535 @@
+{
+ "NS_OK": 0,
+ "NS_ERROR_BASE": 3253927936,
+ "NS_ERROR_NOT_INITIALIZED": 3253927937,
+ "NS_ERROR_ALREADY_INITIALIZED": 3253927938,
+ "NS_ERROR_NOT_IMPLEMENTED": 2147500033,
+ "NS_NOINTERFACE": 2147500034,
+ "NS_ERROR_NO_INTERFACE": 2147500034,
+ "NS_ERROR_ABORT": 2147500036,
+ "NS_ERROR_FAILURE": 2147500037,
+ "NS_ERROR_UNEXPECTED": 2147549183,
+ "NS_ERROR_OUT_OF_MEMORY": 2147942414,
+ "NS_ERROR_ILLEGAL_VALUE": 2147942487,
+ "NS_ERROR_INVALID_ARG": 2147942487,
+ "NS_ERROR_INVALID_POINTER": 2147942487,
+ "NS_ERROR_NULL_POINTER": 2147942487,
+ "NS_ERROR_NOT_AVAILABLE": 2147746065,
+ "NS_ERROR_FACTORY_NOT_REGISTERED": 2147746132,
+ "NS_ERROR_FACTORY_REGISTER_AGAIN": 2147746133,
+ "NS_ERROR_FACTORY_NOT_LOADED": 2147746296,
+ "NS_ERROR_FACTORY_NO_SIGNATURE_SUPPORT": 3253928193,
+ "NS_ERROR_FACTORY_EXISTS": 3253928192,
+ "NS_ERROR_CANNOT_CONVERT_DATA": 2152071169,
+ "NS_ERROR_OBJECT_IS_IMMUTABLE": 2152071170,
+ "NS_ERROR_LOSS_OF_SIGNIFICANT_DATA": 2152071171,
+ "NS_ERROR_NOT_SAME_THREAD": 2152071172,
+ "NS_ERROR_ILLEGAL_DURING_SHUTDOWN": 2152071198,
+ "NS_ERROR_SERVICE_NOT_AVAILABLE": 2152071190,
+ "NS_SUCCESS_LOSS_OF_INSIGNIFICANT_DATA": 4587521,
+ "NS_SUCCESS_INTERRUPTED_TRAVERSE": 4587522,
+ "NS_BASE_STREAM_CLOSED": 2152136706,
+ "NS_BASE_STREAM_OSERROR": 2152136707,
+ "NS_BASE_STREAM_ILLEGAL_ARGS": 2152136708,
+ "NS_BASE_STREAM_NO_CONVERTER": 2152136709,
+ "NS_BASE_STREAM_BAD_CONVERSION": 2152136710,
+ "NS_BASE_STREAM_WOULD_BLOCK": 2152136711,
+ "NS_ERROR_GFX_PRINTER_NO_PRINTER_AVAILABLE": 2152202241,
+ "NS_ERROR_GFX_PRINTER_NAME_NOT_FOUND": 2152202242,
+ "NS_ERROR_GFX_PRINTER_COULD_NOT_OPEN_FILE": 2152202243,
+ "NS_ERROR_GFX_PRINTER_STARTDOC": 2152202244,
+ "NS_ERROR_GFX_PRINTER_ENDDOC": 2152202245,
+ "NS_ERROR_GFX_PRINTER_STARTPAGE": 2152202246,
+ "NS_ERROR_GFX_PRINTER_DOC_IS_BUSY": 2152202247,
+ "NS_ERROR_GFX_CMAP_MALFORMED": 2152202291,
+ "NS_SUCCESS_EVENT_CONSUMED": 4784129,
+ "NS_BINDING_SUCCEEDED": 0,
+ "NS_BINDING_FAILED": 2152398849,
+ "NS_BINDING_ABORTED": 2152398850,
+ "NS_BINDING_REDIRECTED": 2152398851,
+ "NS_BINDING_RETARGETED": 2152398852,
+ "NS_ERROR_MALFORMED_URI": 2152398858,
+ "NS_ERROR_IN_PROGRESS": 2152398863,
+ "NS_ERROR_NO_CONTENT": 2152398865,
+ "NS_ERROR_UNKNOWN_PROTOCOL": 2152398866,
+ "NS_ERROR_INVALID_CONTENT_ENCODING": 2152398875,
+ "NS_ERROR_CORRUPTED_CONTENT": 2152398877,
+ "NS_ERROR_INVALID_SIGNATURE": 2152398906,
+ "NS_ERROR_FIRST_HEADER_FIELD_COMPONENT_EMPTY": 2152398882,
+ "NS_ERROR_ALREADY_OPENED": 2152398921,
+ "NS_ERROR_ALREADY_CONNECTED": 2152398859,
+ "NS_ERROR_NOT_CONNECTED": 2152398860,
+ "NS_ERROR_CONNECTION_REFUSED": 2152398861,
+ "NS_ERROR_NET_TIMEOUT": 2152398862,
+ "NS_ERROR_OFFLINE": 2152398864,
+ "NS_ERROR_PORT_ACCESS_NOT_ALLOWED": 2152398867,
+ "NS_ERROR_NET_RESET": 2152398868,
+ "NS_ERROR_NET_INTERRUPT": 2152398919,
+ "NS_ERROR_PROXY_CONNECTION_REFUSED": 2152398920,
+ "NS_ERROR_NET_PARTIAL_TRANSFER": 2152398924,
+ "NS_ERROR_NET_INADEQUATE_SECURITY": 2152398930,
+ "NS_ERROR_NET_HTTP2_SENT_GOAWAY": 2152398931,
+ "NS_ERROR_NET_HTTP3_PROTOCOL_ERROR": 2152398932,
+ "NS_ERROR_NET_TIMEOUT_EXTERNAL": 2152398933,
+ "NS_ERROR_HTTPS_ONLY": 2152398934,
+ "NS_ERROR_WEBSOCKET_CONNECTION_REFUSED": 2152398935,
+ "NS_ERROR_NON_LOCAL_CONNECTION_REFUSED": 2152398936,
+ "NS_ERROR_BAD_HSTS_CERT": 2152398937,
+ "NS_ERROR_PARSING_HTTP_STATUS_LINE": 2152398938,
+ "NS_ERROR_SUPERFLUOS_AUTH": 2152398939,
+ "NS_ERROR_NOT_RESUMABLE": 2152398873,
+ "NS_ERROR_REDIRECT_LOOP": 2152398879,
+ "NS_ERROR_ENTITY_CHANGED": 2152398880,
+ "NS_ERROR_UNSAFE_CONTENT_TYPE": 2152398922,
+ "NS_ERROR_LOAD_SHOWED_ERRORPAGE": 2152398925,
+ "NS_ERROR_DOCSHELL_DYING": 2152398926,
+ "NS_ERROR_UNKNOWN_HOST": 2152398878,
+ "NS_ERROR_DNS_LOOKUP_QUEUE_FULL": 2152398881,
+ "NS_ERROR_UNKNOWN_PROXY_HOST": 2152398890,
+ "NS_ERROR_DEFINITIVE_UNKNOWN_HOST": 2152398891,
+ "NS_ERROR_UNKNOWN_SOCKET_TYPE": 2152398899,
+ "NS_ERROR_SOCKET_CREATE_FAILED": 2152398900,
+ "NS_ERROR_SOCKET_ADDRESS_NOT_SUPPORTED": 2152398901,
+ "NS_ERROR_SOCKET_ADDRESS_IN_USE": 2152398902,
+ "NS_ERROR_CACHE_KEY_NOT_FOUND": 2152398909,
+ "NS_ERROR_CACHE_DATA_IS_STREAM": 2152398910,
+ "NS_ERROR_CACHE_DATA_IS_NOT_STREAM": 2152398911,
+ "NS_ERROR_CACHE_WAIT_FOR_VALIDATION": 2152398912,
+ "NS_ERROR_CACHE_ENTRY_DOOMED": 2152398913,
+ "NS_ERROR_CACHE_READ_ACCESS_DENIED": 2152398914,
+ "NS_ERROR_CACHE_WRITE_ACCESS_DENIED": 2152398915,
+ "NS_ERROR_CACHE_IN_USE": 2152398916,
+ "NS_ERROR_DOCUMENT_NOT_CACHED": 2152398918,
+ "NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS": 2152398928,
+ "NS_ERROR_HOST_IS_IP_ADDRESS": 2152398929,
+ "NS_SUCCESS_ADOPTED_DATA": 4915290,
+ "NS_SUCCESS_AUTH_FINISHED": 4915240,
+ "NS_NET_STATUS_READING": 4915208,
+ "NS_NET_STATUS_WRITING": 4915209,
+ "NS_NET_STATUS_RESOLVING_HOST": 4915203,
+ "NS_NET_STATUS_RESOLVED_HOST": 4915211,
+ "NS_NET_STATUS_CONNECTING_TO": 4915207,
+ "NS_NET_STATUS_CONNECTED_TO": 4915204,
+ "NS_NET_STATUS_TLS_HANDSHAKE_STARTING": 4915212,
+ "NS_NET_STATUS_TLS_HANDSHAKE_ENDED": 4915213,
+ "NS_NET_STATUS_SENDING_TO": 4915205,
+ "NS_NET_STATUS_WAITING_FOR": 4915210,
+ "NS_NET_STATUS_RECEIVING_FROM": 4915206,
+ "NS_ERROR_INTERCEPTION_FAILED": 2152398948,
+ "NS_ERROR_WEBTRANSPORT_CODE_BASE": 2152399048,
+ "NS_ERROR_WEBTRANSPORT_CODE_END": 2152399303,
+ "NS_ERROR_PROXY_CODE_BASE": 2152399848,
+ "NS_ERROR_PROXY_MULTIPLE_CHOICES": 2152400148,
+ "NS_ERROR_PROXY_MOVED_PERMANENTLY": 2152400149,
+ "NS_ERROR_PROXY_FOUND": 2152400150,
+ "NS_ERROR_PROXY_SEE_OTHER": 2152400151,
+ "NS_ERROR_PROXY_NOT_MODIFIED": 2152400152,
+ "NS_ERROR_PROXY_TEMPORARY_REDIRECT": 2152400155,
+ "NS_ERROR_PROXY_PERMANENT_REDIRECT": 2152400156,
+ "NS_ERROR_PROXY_BAD_REQUEST": 2152400248,
+ "NS_ERROR_PROXY_UNAUTHORIZED": 2152400249,
+ "NS_ERROR_PROXY_PAYMENT_REQUIRED": 2152400250,
+ "NS_ERROR_PROXY_FORBIDDEN": 2152400251,
+ "NS_ERROR_PROXY_NOT_FOUND": 2152400252,
+ "NS_ERROR_PROXY_METHOD_NOT_ALLOWED": 2152400253,
+ "NS_ERROR_PROXY_NOT_ACCEPTABLE": 2152400254,
+ "NS_ERROR_PROXY_AUTHENTICATION_FAILED": 2152400255,
+ "NS_ERROR_PROXY_REQUEST_TIMEOUT": 2152400256,
+ "NS_ERROR_PROXY_CONFLICT": 2152400257,
+ "NS_ERROR_PROXY_GONE": 2152400258,
+ "NS_ERROR_PROXY_LENGTH_REQUIRED": 2152400259,
+ "NS_ERROR_PROXY_PRECONDITION_FAILED": 2152400260,
+ "NS_ERROR_PROXY_REQUEST_ENTITY_TOO_LARGE": 2152400261,
+ "NS_ERROR_PROXY_REQUEST_URI_TOO_LONG": 2152400262,
+ "NS_ERROR_PROXY_UNSUPPORTED_MEDIA_TYPE": 2152400263,
+ "NS_ERROR_PROXY_REQUESTED_RANGE_NOT_SATISFIABLE": 2152400264,
+ "NS_ERROR_PROXY_EXPECTATION_FAILED": 2152400265,
+ "NS_ERROR_PROXY_MISDIRECTED_REQUEST": 2152400269,
+ "NS_ERROR_PROXY_TOO_EARLY": 2152400273,
+ "NS_ERROR_PROXY_UPGRADE_REQUIRED": 2152400274,
+ "NS_ERROR_PROXY_PRECONDITION_REQUIRED": 2152400276,
+ "NS_ERROR_PROXY_TOO_MANY_REQUESTS": 2152400277,
+ "NS_ERROR_PROXY_REQUEST_HEADER_FIELDS_TOO_LARGE": 2152400279,
+ "NS_ERROR_PROXY_UNAVAILABLE_FOR_LEGAL_REASONS": 2152400299,
+ "NS_ERROR_PROXY_INTERNAL_SERVER_ERROR": 2152400348,
+ "NS_ERROR_PROXY_NOT_IMPLEMENTED": 2152400349,
+ "NS_ERROR_PROXY_BAD_GATEWAY": 2152400350,
+ "NS_ERROR_PROXY_SERVICE_UNAVAILABLE": 2152400351,
+ "NS_ERROR_PROXY_GATEWAY_TIMEOUT": 2152400352,
+ "NS_ERROR_PROXY_VERSION_NOT_SUPPORTED": 2152400353,
+ "NS_ERROR_PROXY_VARIANT_ALSO_NEGOTIATES": 2152400354,
+ "NS_ERROR_PROXY_NOT_EXTENDED": 2152400358,
+ "NS_ERROR_PROXY_NETWORK_AUTHENTICATION_REQUIRED": 2152400359,
+ "NS_ERROR_PLUGINS_PLUGINSNOTCHANGED": 2152465384,
+ "NS_ERROR_PLUGIN_DISABLED": 2152465385,
+ "NS_ERROR_PLUGIN_BLOCKLISTED": 2152465386,
+ "NS_ERROR_PLUGIN_TIME_RANGE_NOT_SUPPORTED": 2152465387,
+ "NS_ERROR_PLUGIN_CLICKTOPLAY": 2152465388,
+ "NS_OK_PARSE_SHEET": 5046273,
+ "NS_ERROR_HTMLPARSER_CONTINUE": 0,
+ "NS_ERROR_HTMLPARSER_EOF": 2152596456,
+ "NS_ERROR_HTMLPARSER_UNKNOWN": 2152596457,
+ "NS_ERROR_HTMLPARSER_CANTPROPAGATE": 2152596458,
+ "NS_ERROR_HTMLPARSER_CONTEXTMISMATCH": 2152596459,
+ "NS_ERROR_HTMLPARSER_BADFILENAME": 2152596460,
+ "NS_ERROR_HTMLPARSER_BADURL": 2152596461,
+ "NS_ERROR_HTMLPARSER_INVALIDPARSERCONTEXT": 2152596462,
+ "NS_ERROR_HTMLPARSER_INTERRUPTED": 2152596463,
+ "NS_ERROR_HTMLPARSER_BLOCK": 2152596464,
+ "NS_ERROR_HTMLPARSER_BADTOKENIZER": 2152596465,
+ "NS_ERROR_HTMLPARSER_BADATTRIBUTE": 2152596466,
+ "NS_ERROR_HTMLPARSER_UNRESOLVEDDTD": 2152596467,
+ "NS_ERROR_HTMLPARSER_MISPLACEDTABLECONTENT": 2152596468,
+ "NS_ERROR_HTMLPARSER_BADDTD": 2152596469,
+ "NS_ERROR_HTMLPARSER_BADCONTEXT": 2152596470,
+ "NS_ERROR_HTMLPARSER_STOPPARSING": 2152596471,
+ "NS_ERROR_HTMLPARSER_UNTERMINATEDSTRINGLITERAL": 2152596472,
+ "NS_ERROR_HTMLPARSER_HIERARCHYTOODEEP": 2152596473,
+ "NS_ERROR_HTMLPARSER_FAKE_ENDTAG": 2152596474,
+ "NS_ERROR_HTMLPARSER_INVALID_COMMENT": 2152596475,
+ "NS_RDF_ASSERTION_ACCEPTED": 0,
+ "NS_RDF_NO_VALUE": 5177346,
+ "NS_RDF_ASSERTION_REJECTED": 5177347,
+ "NS_RDF_STOP_VISIT": 5177348,
+ "NS_ERROR_UCONV_NOCONV": 2152726529,
+ "NS_ERROR_UDEC_ILLEGALINPUT": 2152726542,
+ "NS_OK_HAD_REPLACEMENTS": 5242883,
+ "NS_OK_UDEC_MOREINPUT": 5242892,
+ "NS_OK_UDEC_MOREOUTPUT": 5242893,
+ "NS_OK_UENC_MOREOUTPUT": 5242914,
+ "NS_ERROR_UENC_NOMAPPING": 5242915,
+ "NS_ERROR_ILLEGAL_INPUT": 2152726542,
+ "NS_ERROR_FILE_UNRECOGNIZED_PATH": 2152857601,
+ "NS_ERROR_FILE_UNRESOLVABLE_SYMLINK": 2152857602,
+ "NS_ERROR_FILE_EXECUTION_FAILED": 2152857603,
+ "NS_ERROR_FILE_UNKNOWN_TYPE": 2152857604,
+ "NS_ERROR_FILE_DESTINATION_NOT_DIR": 2152857605,
+ "NS_ERROR_FILE_COPY_OR_MOVE_FAILED": 2152857607,
+ "NS_ERROR_FILE_ALREADY_EXISTS": 2152857608,
+ "NS_ERROR_FILE_INVALID_PATH": 2152857609,
+ "NS_ERROR_FILE_CORRUPTED": 2152857611,
+ "NS_ERROR_FILE_NOT_DIRECTORY": 2152857612,
+ "NS_ERROR_FILE_IS_DIRECTORY": 2152857613,
+ "NS_ERROR_FILE_IS_LOCKED": 2152857614,
+ "NS_ERROR_FILE_TOO_BIG": 2152857615,
+ "NS_ERROR_FILE_NO_DEVICE_SPACE": 2152857616,
+ "NS_ERROR_FILE_NAME_TOO_LONG": 2152857617,
+ "NS_ERROR_FILE_NOT_FOUND": 2152857618,
+ "NS_ERROR_FILE_READ_ONLY": 2152857619,
+ "NS_ERROR_FILE_DIR_NOT_EMPTY": 2152857620,
+ "NS_ERROR_FILE_ACCESS_DENIED": 2152857621,
+ "NS_ERROR_FILE_FS_CORRUPTED": 2152857622,
+ "NS_ERROR_FILE_DEVICE_FAILURE": 2152857623,
+ "NS_ERROR_FILE_DEVICE_TEMPORARY_FAILURE": 2152857624,
+ "NS_ERROR_FILE_INVALID_HANDLE": 2152857625,
+ "NS_SUCCESS_FILE_DIRECTORY_EMPTY": 5373953,
+ "NS_SUCCESS_AGGREGATE_RESULT": 5373954,
+ "NS_ERROR_DOM_INDEX_SIZE_ERR": 2152923137,
+ "NS_ERROR_DOM_HIERARCHY_REQUEST_ERR": 2152923139,
+ "NS_ERROR_DOM_WRONG_DOCUMENT_ERR": 2152923140,
+ "NS_ERROR_DOM_INVALID_CHARACTER_ERR": 2152923141,
+ "NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR": 2152923143,
+ "NS_ERROR_DOM_NOT_FOUND_ERR": 2152923144,
+ "NS_ERROR_DOM_NOT_SUPPORTED_ERR": 2152923145,
+ "NS_ERROR_DOM_INUSE_ATTRIBUTE_ERR": 2152923146,
+ "NS_ERROR_DOM_INVALID_STATE_ERR": 2152923147,
+ "NS_ERROR_DOM_SYNTAX_ERR": 2152923148,
+ "NS_ERROR_DOM_INVALID_MODIFICATION_ERR": 2152923149,
+ "NS_ERROR_DOM_NAMESPACE_ERR": 2152923150,
+ "NS_ERROR_DOM_INVALID_ACCESS_ERR": 2152923151,
+ "NS_ERROR_DOM_TYPE_MISMATCH_ERR": 2152923153,
+ "NS_ERROR_DOM_SECURITY_ERR": 2152923154,
+ "NS_ERROR_DOM_NETWORK_ERR": 2152923155,
+ "NS_ERROR_DOM_ABORT_ERR": 2152923156,
+ "NS_ERROR_DOM_URL_MISMATCH_ERR": 2152923157,
+ "NS_ERROR_DOM_QUOTA_EXCEEDED_ERR": 2152923158,
+ "NS_ERROR_DOM_TIMEOUT_ERR": 2152923159,
+ "NS_ERROR_DOM_INVALID_NODE_TYPE_ERR": 2152923160,
+ "NS_ERROR_DOM_DATA_CLONE_ERR": 2152923161,
+ "NS_ERROR_DOM_ENCODING_NOT_SUPPORTED_ERR": 2152923164,
+ "NS_ERROR_DOM_UNKNOWN_ERR": 2152923166,
+ "NS_ERROR_DOM_DATA_ERR": 2152923167,
+ "NS_ERROR_DOM_OPERATION_ERR": 2152923168,
+ "NS_ERROR_DOM_NOT_ALLOWED_ERR": 2152923169,
+ "NS_ERROR_DOM_WRONG_TYPE_ERR": 2152924138,
+ "NS_ERROR_DOM_NOT_NUMBER_ERR": 2152924141,
+ "NS_ERROR_DOM_PROP_ACCESS_DENIED": 2152924146,
+ "NS_ERROR_DOM_XPCONNECT_ACCESS_DENIED": 2152924147,
+ "NS_ERROR_DOM_BAD_URI": 2152924148,
+ "NS_ERROR_DOM_RETVAL_UNDEFINED": 2152924149,
+ "NS_ERROR_UNCATCHABLE_EXCEPTION": 2152924151,
+ "NS_ERROR_DOM_MALFORMED_URI": 2152924152,
+ "NS_ERROR_DOM_INVALID_HEADER_NAME": 2152924153,
+ "NS_ERROR_DOM_INVALID_STATE_XHR_HAS_INVALID_CONTEXT": 2152924154,
+ "NS_ERROR_DOM_JS_DECODING_ERROR": 2152924162,
+ "NS_ERROR_DOM_IMAGE_INACTIVE_DOCUMENT": 2152924163,
+ "NS_ERROR_DOM_IMAGE_INVALID_REQUEST": 2152924164,
+ "NS_ERROR_DOM_IMAGE_BROKEN": 2152924165,
+ "NS_ERROR_DOM_CORP_FAILED": 2152924172,
+ "NS_ERROR_DOM_BAD_CROSS_ORIGIN_URI": 2152924173,
+ "NS_ERROR_RECURSIVE_DOCUMENT_LOAD": 2152924174,
+ "NS_ERROR_DOM_WEBEXT_CONTENT_SCRIPT_URI": 2152924175,
+ "NS_ERROR_DOM_COEP_FAILED": 2152924176,
+ "NS_ERROR_DOM_COOP_FAILED": 2152924177,
+ "NS_ERROR_DOM_INVALID_HEADER_VALUE": 2152924178,
+ "NS_SUCCESS_DOM_NO_OPERATION": 5439489,
+ "NS_SUCCESS_DOM_SCRIPT_EVALUATION_THREW": 5439490,
+ "NS_SUCCESS_DOM_SCRIPT_EVALUATION_THREW_UNCATCHABLE": 5439491,
+ "NS_IMAGELIB_ERROR_FAILURE": 2152988677,
+ "NS_IMAGELIB_ERROR_NO_DECODER": 2152988678,
+ "NS_IMAGELIB_ERROR_NOT_FINISHED": 2152988679,
+ "NS_IMAGELIB_ERROR_NO_ENCODER": 2152988681,
+ "NS_ERROR_EDITOR_DESTROYED": 2153119745,
+ "NS_ERROR_EDITOR_UNEXPECTED_DOM_TREE": 2153119746,
+ "NS_ERROR_EDITOR_ACTION_CANCELED": 2153119747,
+ "NS_ERROR_EDITOR_NO_EDITABLE_RANGE": 2153119748,
+ "NS_SUCCESS_EDITOR_ELEMENT_NOT_FOUND": 5636097,
+ "NS_SUCCESS_EDITOR_FOUND_TARGET": 5636098,
+ "NS_SUCCESS_EDITOR_BUT_IGNORED_TRIVIAL_ERROR": 5636099,
+ "NS_ERROR_XPC_NOT_ENOUGH_ARGS": 2153185281,
+ "NS_ERROR_XPC_NEED_OUT_OBJECT": 2153185282,
+ "NS_ERROR_XPC_CANT_SET_OUT_VAL": 2153185283,
+ "NS_ERROR_XPC_NATIVE_RETURNED_FAILURE": 2153185284,
+ "NS_ERROR_XPC_CANT_GET_INTERFACE_INFO": 2153185285,
+ "NS_ERROR_XPC_CANT_GET_PARAM_IFACE_INFO": 2153185286,
+ "NS_ERROR_XPC_CANT_GET_METHOD_INFO": 2153185287,
+ "NS_ERROR_XPC_UNEXPECTED": 2153185288,
+ "NS_ERROR_XPC_BAD_CONVERT_JS": 2153185289,
+ "NS_ERROR_XPC_BAD_CONVERT_NATIVE": 2153185290,
+ "NS_ERROR_XPC_BAD_CONVERT_JS_NULL_REF": 2153185291,
+ "NS_ERROR_XPC_BAD_OP_ON_WN_PROTO": 2153185292,
+ "NS_ERROR_XPC_CANT_CONVERT_WN_TO_FUN": 2153185293,
+ "NS_ERROR_XPC_CANT_DEFINE_PROP_ON_WN": 2153185294,
+ "NS_ERROR_XPC_CANT_WATCH_WN_STATIC": 2153185295,
+ "NS_ERROR_XPC_CANT_EXPORT_WN_STATIC": 2153185296,
+ "NS_ERROR_XPC_SCRIPTABLE_CALL_FAILED": 2153185297,
+ "NS_ERROR_XPC_SCRIPTABLE_CTOR_FAILED": 2153185298,
+ "NS_ERROR_XPC_CANT_CALL_WO_SCRIPTABLE": 2153185299,
+ "NS_ERROR_XPC_CANT_CTOR_WO_SCRIPTABLE": 2153185300,
+ "NS_ERROR_XPC_CI_RETURNED_FAILURE": 2153185301,
+ "NS_ERROR_XPC_GS_RETURNED_FAILURE": 2153185302,
+ "NS_ERROR_XPC_BAD_CID": 2153185303,
+ "NS_ERROR_XPC_BAD_IID": 2153185304,
+ "NS_ERROR_XPC_CANT_CREATE_WN": 2153185305,
+ "NS_ERROR_XPC_JS_THREW_EXCEPTION": 2153185306,
+ "NS_ERROR_XPC_JS_THREW_NATIVE_OBJECT": 2153185307,
+ "NS_ERROR_XPC_JS_THREW_JS_OBJECT": 2153185308,
+ "NS_ERROR_XPC_JS_THREW_NULL": 2153185309,
+ "NS_ERROR_XPC_JS_THREW_STRING": 2153185310,
+ "NS_ERROR_XPC_JS_THREW_NUMBER": 2153185311,
+ "NS_ERROR_XPC_JAVASCRIPT_ERROR": 2153185312,
+ "NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS": 2153185313,
+ "NS_ERROR_XPC_CANT_CONVERT_PRIMITIVE_TO_ARRAY": 2153185314,
+ "NS_ERROR_XPC_CANT_CONVERT_OBJECT_TO_ARRAY": 2153185315,
+ "NS_ERROR_XPC_NOT_ENOUGH_ELEMENTS_IN_ARRAY": 2153185316,
+ "NS_ERROR_XPC_CANT_GET_ARRAY_INFO": 2153185317,
+ "NS_ERROR_XPC_NOT_ENOUGH_CHARS_IN_STRING": 2153185318,
+ "NS_ERROR_XPC_SECURITY_MANAGER_VETO": 2153185319,
+ "NS_ERROR_XPC_INTERFACE_NOT_SCRIPTABLE": 2153185320,
+ "NS_ERROR_XPC_INTERFACE_NOT_FROM_NSISUPPORTS": 2153185321,
+ "NS_ERROR_XPC_CANT_SET_READ_ONLY_CONSTANT": 2153185323,
+ "NS_ERROR_XPC_CANT_SET_READ_ONLY_ATTRIBUTE": 2153185324,
+ "NS_ERROR_XPC_CANT_SET_READ_ONLY_METHOD": 2153185325,
+ "NS_ERROR_XPC_CANT_ADD_PROP_TO_WRAPPED_NATIVE": 2153185326,
+ "NS_ERROR_XPC_CALL_TO_SCRIPTABLE_FAILED": 2153185327,
+ "NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED": 2153185328,
+ "NS_ERROR_XPC_BAD_ID_STRING": 2153185329,
+ "NS_ERROR_XPC_BAD_INITIALIZER_NAME": 2153185330,
+ "NS_ERROR_XPC_HAS_BEEN_SHUTDOWN": 2153185331,
+ "NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN": 2153185332,
+ "NS_ERROR_XPC_BAD_CONVERT_JS_ZERO_ISNOT_NULL": 2153185333,
+ "NS_ERROR_LAUNCHED_CHILD_PROCESS": 2153251016,
+ "NS_ERROR_SHOW_PROFILE_MANAGER": 2153251017,
+ "NS_ERROR_DATABASE_CHANGED": 2153251018,
+ "NS_ERROR_XFO_VIOLATION": 2153381984,
+ "NS_ERROR_CSP_FORM_ACTION_VIOLATION": 2153381985,
+ "NS_ERROR_CSP_FRAME_ANCESTOR_VIOLATION": 2153381986,
+ "NS_ERROR_SRI_CORRUPT": 2153382088,
+ "NS_ERROR_SRI_NOT_ELIGIBLE": 2153382089,
+ "NS_ERROR_SRI_UNEXPECTED_HASH_TYPE": 2153382090,
+ "NS_ERROR_SRI_IMPORT": 2153382091,
+ "NS_ERROR_CMS_VERIFY_NOT_SIGNED": 2153382912,
+ "NS_ERROR_CMS_VERIFY_NO_CONTENT_INFO": 2153382913,
+ "NS_ERROR_CMS_VERIFY_BAD_DIGEST": 2153382914,
+ "NS_ERROR_CMS_VERIFY_NOCERT": 2153382916,
+ "NS_ERROR_CMS_VERIFY_UNTRUSTED": 2153382917,
+ "NS_ERROR_CMS_VERIFY_ERROR_UNVERIFIED": 2153382919,
+ "NS_ERROR_CMS_VERIFY_ERROR_PROCESSING": 2153382920,
+ "NS_ERROR_CMS_VERIFY_BAD_SIGNATURE": 2153382921,
+ "NS_ERROR_CMS_VERIFY_DIGEST_MISMATCH": 2153382922,
+ "NS_ERROR_CMS_VERIFY_UNKNOWN_ALGO": 2153382923,
+ "NS_ERROR_CMS_VERIFY_UNSUPPORTED_ALGO": 2153382924,
+ "NS_ERROR_CMS_VERIFY_MALFORMED_SIGNATURE": 2153382925,
+ "NS_ERROR_CMS_VERIFY_HEADER_MISMATCH": 2153382926,
+ "NS_ERROR_CMS_VERIFY_NOT_YET_ATTEMPTED": 2153382927,
+ "NS_ERROR_CMS_VERIFY_CERT_WITHOUT_ADDRESS": 2153382928,
+ "NS_ERROR_CMS_ENCRYPT_NO_BULK_ALG": 2153382944,
+ "NS_ERROR_CMS_ENCRYPT_INCOMPLETE": 2153382945,
+ "NS_ERROR_WONT_HANDLE_CONTENT": 2153578497,
+ "NS_ERROR_MALWARE_URI": 2153578526,
+ "NS_ERROR_PHISHING_URI": 2153578527,
+ "NS_ERROR_TRACKING_URI": 2153578530,
+ "NS_ERROR_UNWANTED_URI": 2153578531,
+ "NS_ERROR_BLOCKED_URI": 2153578533,
+ "NS_ERROR_HARMFUL_URI": 2153578534,
+ "NS_ERROR_FINGERPRINTING_URI": 2153578537,
+ "NS_ERROR_CRYPTOMINING_URI": 2153578538,
+ "NS_ERROR_SOCIALTRACKING_URI": 2153578539,
+ "NS_ERROR_EMAILTRACKING_URI": 2153578540,
+ "NS_ERROR_SAVE_LINK_AS_TIMEOUT": 2153578528,
+ "NS_ERROR_PARSED_DATA_CACHED": 2153578529,
+ "NS_BINDING_CANCELLED_OLD_LOAD": 2153578535,
+ "NS_ERROR_CONTENT_BLOCKED": 2153644038,
+ "NS_ERROR_CONTENT_BLOCKED_SHOW_ALT": 2153644039,
+ "NS_PROPTABLE_PROP_NOT_THERE": 2153644042,
+ "NS_ERROR_CONTENT_CRASHED": 2153644048,
+ "NS_ERROR_FRAME_CRASHED": 2153644046,
+ "NS_ERROR_BUILDID_MISMATCH": 2153644049,
+ "NS_PROPTABLE_PROP_OVERWRITTEN": 6160395,
+ "NS_FINDBROADCASTER_NOT_FOUND": 6160396,
+ "NS_FINDBROADCASTER_FOUND": 6160397,
+ "NS_ERROR_XPATH_INVALID_ARG": 2147942487,
+ "NS_ERROR_XSLT_PARSE_FAILURE": 2153775105,
+ "NS_ERROR_XPATH_PARSE_FAILURE": 2153775106,
+ "NS_ERROR_XSLT_ALREADY_SET": 2153775107,
+ "NS_ERROR_XSLT_EXECUTION_FAILURE": 2153775108,
+ "NS_ERROR_XPATH_UNKNOWN_FUNCTION": 2153775109,
+ "NS_ERROR_XSLT_BAD_RECURSION": 2153775110,
+ "NS_ERROR_XSLT_BAD_VALUE": 2153775111,
+ "NS_ERROR_XSLT_NODESET_EXPECTED": 2153775112,
+ "NS_ERROR_XSLT_ABORTED": 2153775113,
+ "NS_ERROR_XSLT_NETWORK_ERROR": 2153775114,
+ "NS_ERROR_XSLT_WRONG_MIME_TYPE": 2153775115,
+ "NS_ERROR_XSLT_LOAD_RECURSION": 2153775116,
+ "NS_ERROR_XPATH_BAD_ARGUMENT_COUNT": 2153775117,
+ "NS_ERROR_XPATH_BAD_EXTENSION_FUNCTION": 2153775118,
+ "NS_ERROR_XPATH_PAREN_EXPECTED": 2153775119,
+ "NS_ERROR_XPATH_INVALID_AXIS": 2153775120,
+ "NS_ERROR_XPATH_NO_NODE_TYPE_TEST": 2153775121,
+ "NS_ERROR_XPATH_BRACKET_EXPECTED": 2153775122,
+ "NS_ERROR_XPATH_INVALID_VAR_NAME": 2153775123,
+ "NS_ERROR_XPATH_UNEXPECTED_END": 2153775124,
+ "NS_ERROR_XPATH_OPERATOR_EXPECTED": 2153775125,
+ "NS_ERROR_XPATH_UNCLOSED_LITERAL": 2153775126,
+ "NS_ERROR_XPATH_BAD_COLON": 2153775127,
+ "NS_ERROR_XPATH_BAD_BANG": 2153775128,
+ "NS_ERROR_XPATH_ILLEGAL_CHAR": 2153775129,
+ "NS_ERROR_XPATH_BINARY_EXPECTED": 2153775130,
+ "NS_ERROR_XSLT_LOAD_BLOCKED_ERROR": 2153775131,
+ "NS_ERROR_XPATH_INVALID_EXPRESSION_EVALUATED": 2153775132,
+ "NS_ERROR_XPATH_UNBALANCED_CURLY_BRACE": 2153775133,
+ "NS_ERROR_XSLT_BAD_NODE_NAME": 2153775134,
+ "NS_ERROR_XSLT_VAR_ALREADY_SET": 2153775135,
+ "NS_ERROR_XSLT_CALL_TO_KEY_NOT_ALLOWED": 2153775136,
+ "NS_XSLT_GET_NEW_HANDLER": 6291457,
+ "NS_ERROR_TRANSPORT_INIT": 2153840641,
+ "NS_ERROR_DUPLICATE_HANDLE": 2153840642,
+ "NS_ERROR_BRIDGE_OPEN_PARENT": 2153840643,
+ "NS_ERROR_BRIDGE_OPEN_CHILD": 2153840644,
+ "NS_ERROR_STORAGE_BUSY": 2153971713,
+ "NS_ERROR_STORAGE_IOERR": 2153971714,
+ "NS_ERROR_STORAGE_CONSTRAINT": 2153971715,
+ "NS_ERROR_DOM_FILE_NOT_FOUND_ERR": 2154102784,
+ "NS_ERROR_DOM_FILE_NOT_READABLE_ERR": 2154102785,
+ "NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR": 2154168321,
+ "NS_ERROR_DOM_INDEXEDDB_NOT_FOUND_ERR": 2154168323,
+ "NS_ERROR_DOM_INDEXEDDB_CONSTRAINT_ERR": 2154168324,
+ "NS_ERROR_DOM_INDEXEDDB_DATA_ERR": 2154168325,
+ "NS_ERROR_DOM_INDEXEDDB_NOT_ALLOWED_ERR": 2154168326,
+ "NS_ERROR_DOM_INDEXEDDB_TRANSACTION_INACTIVE_ERR": 2154168327,
+ "NS_ERROR_DOM_INDEXEDDB_ABORT_ERR": 2154168328,
+ "NS_ERROR_DOM_INDEXEDDB_READ_ONLY_ERR": 2154168329,
+ "NS_ERROR_DOM_INDEXEDDB_QUOTA_ERR": 2154168331,
+ "NS_ERROR_DOM_INDEXEDDB_VERSION_ERR": 2154168332,
+ "NS_ERROR_DOM_INDEXEDDB_KEY_ERR": 2154169322,
+ "NS_ERROR_DOM_INDEXEDDB_RENAME_OBJECT_STORE_ERR": 2154169323,
+ "NS_ERROR_DOM_INDEXEDDB_RENAME_INDEX_ERR": 2154169324,
+ "NS_ERROR_DOM_FILEHANDLE_UNKNOWN_ERR": 2154233857,
+ "NS_ERROR_DOM_FILEHANDLE_NOT_ALLOWED_ERR": 2154233858,
+ "NS_ERROR_DOM_FILEHANDLE_INACTIVE_ERR": 2154233859,
+ "NS_ERROR_DOM_FILEHANDLE_ABORT_ERR": 2154233860,
+ "NS_ERROR_DOM_FILEHANDLE_READ_ONLY_ERR": 2154233861,
+ "NS_ERROR_DOM_FILEHANDLE_QUOTA_ERR": 2154233862,
+ "NS_ERROR_SIGNED_JAR_NOT_SIGNED": 2154299393,
+ "NS_ERROR_SIGNED_JAR_MODIFIED_ENTRY": 2154299394,
+ "NS_ERROR_SIGNED_JAR_UNSIGNED_ENTRY": 2154299395,
+ "NS_ERROR_SIGNED_JAR_ENTRY_MISSING": 2154299396,
+ "NS_ERROR_SIGNED_JAR_WRONG_SIGNATURE": 2154299397,
+ "NS_ERROR_SIGNED_JAR_ENTRY_TOO_LARGE": 2154299398,
+ "NS_ERROR_SIGNED_JAR_ENTRY_INVALID": 2154299399,
+ "NS_ERROR_SIGNED_JAR_MANIFEST_INVALID": 2154299400,
+ "NS_ERROR_DOM_FILESYSTEM_INVALID_PATH_ERR": 2154364929,
+ "NS_ERROR_DOM_FILESYSTEM_INVALID_MODIFICATION_ERR": 2154364930,
+ "NS_ERROR_DOM_FILESYSTEM_NO_MODIFICATION_ALLOWED_ERR": 2154364931,
+ "NS_ERROR_DOM_FILESYSTEM_PATH_EXISTS_ERR": 2154364932,
+ "NS_ERROR_DOM_FILESYSTEM_TYPE_MISMATCH_ERR": 2154364933,
+ "NS_ERROR_DOM_FILESYSTEM_UNKNOWN_ERR": 2154364934,
+ "NS_ERROR_SIGNED_APP_MANIFEST_INVALID": 2154496001,
+ "NS_ERROR_DOM_PUSH_DENIED_ERR": 2154627074,
+ "NS_ERROR_DOM_PUSH_ABORT_ERR": 2154627075,
+ "NS_ERROR_DOM_PUSH_SERVICE_UNREACHABLE": 2154627076,
+ "NS_ERROR_DOM_PUSH_INVALID_KEY_ERR": 2154627077,
+ "NS_ERROR_DOM_PUSH_MISMATCHED_KEY_ERR": 2154627078,
+ "NS_ERROR_DOM_MEDIA_ABORT_ERR": 2154692609,
+ "NS_ERROR_DOM_MEDIA_NOT_ALLOWED_ERR": 2154692610,
+ "NS_ERROR_DOM_MEDIA_NOT_SUPPORTED_ERR": 2154692611,
+ "NS_ERROR_DOM_MEDIA_DECODE_ERR": 2154692612,
+ "NS_ERROR_DOM_MEDIA_FATAL_ERR": 2154692613,
+ "NS_ERROR_DOM_MEDIA_METADATA_ERR": 2154692614,
+ "NS_ERROR_DOM_MEDIA_OVERFLOW_ERR": 2154692615,
+ "NS_ERROR_DOM_MEDIA_END_OF_STREAM": 2154692616,
+ "NS_ERROR_DOM_MEDIA_WAITING_FOR_DATA": 2154692617,
+ "NS_ERROR_DOM_MEDIA_CANCELED": 2154692618,
+ "NS_ERROR_DOM_MEDIA_MEDIASINK_ERR": 2154692619,
+ "NS_ERROR_DOM_MEDIA_DEMUXER_ERR": 2154692620,
+ "NS_ERROR_DOM_MEDIA_CDM_ERR": 2154692621,
+ "NS_ERROR_DOM_MEDIA_NEED_NEW_DECODER": 2154692622,
+ "NS_ERROR_DOM_MEDIA_INITIALIZING_DECODER": 2154692623,
+ "NS_ERROR_DOM_MEDIA_REMOTE_DECODER_CRASHED_RDD_OR_GPU_ERR": 2154692624,
+ "NS_ERROR_DOM_MEDIA_REMOTE_DECODER_CRASHED_UTILITY_ERR": 2154692625,
+ "NS_ERROR_DOM_MEDIA_REMOTE_DECODER_CRASHED_MF_CDM_ERR": 2154692626,
+ "NS_ERROR_DOM_MEDIA_KEY_QUOTA_EXCEEDED_ERR": 2154692638,
+ "NS_ERROR_DOM_MEDIA_SOURCE_MAX_BUFFER_QUOTA_EXCEEDED_ERR": 2154692639,
+ "NS_ERROR_DOM_MEDIA_SOURCE_FULL_BUFFER_QUOTA_EXCEEDED_ERR": 2154692640,
+ "NS_ERROR_DOM_MEDIA_CDM_NO_SESSION_ERR": 2154692658,
+ "NS_ERROR_DOM_MEDIA_CDM_SESSION_OPERATION_ERR": 2154692659,
+ "NS_ERROR_DOM_MEDIA_CDM_HDCP_NOT_SUPPORT": 2154692660,
+ "NS_ERROR_DOM_MEDIA_CUBEB_INITIALIZATION_ERR": 2154692709,
+ "NS_ERROR_DOM_MEDIA_EXTERNAL_ENGINE_NOT_SUPPORTED_ERR": 2154692710,
+ "NS_ERROR_DOM_MEDIA_CDM_PROXY_NOT_SUPPORTED_ERR": 2154692711,
+ "NS_ERROR_DOM_MEDIA_DENIED_IN_NON_UTILITY": 2154692712,
+ "NS_ERROR_UC_UPDATE_UNKNOWN": 2154758145,
+ "NS_ERROR_UC_UPDATE_DUPLICATE_PREFIX": 2154758146,
+ "NS_ERROR_UC_UPDATE_INFINITE_LOOP": 2154758147,
+ "NS_ERROR_UC_UPDATE_WRONG_REMOVAL_INDICES": 2154758148,
+ "NS_ERROR_UC_UPDATE_CHECKSUM_MISMATCH": 2154758149,
+ "NS_ERROR_UC_UPDATE_MISSING_CHECKSUM": 2154758150,
+ "NS_ERROR_UC_UPDATE_SHUTDOWNING": 2154758151,
+ "NS_ERROR_UC_UPDATE_TABLE_NOT_FOUND": 2154758152,
+ "NS_ERROR_UC_UPDATE_BUILD_PREFIX_FAILURE": 2154758153,
+ "NS_ERROR_UC_UPDATE_FAIL_TO_WRITE_DISK": 2154758154,
+ "NS_ERROR_UC_UPDATE_UNEXPECTED_VERSION": 2154758155,
+ "NS_ERROR_UC_PARSER_MISSING_PARAM": 2154758156,
+ "NS_ERROR_UC_PARSER_DECODE_FAILURE": 2154758157,
+ "NS_ERROR_UC_PARSER_UNKNOWN_THREAT": 2154758158,
+ "NS_ERROR_UC_PARSER_MISSING_VALUE": 2154758159,
+ "NS_ERROR_INTERNAL_ERRORRESULT_JS_EXCEPTION": 2154823681,
+ "NS_ERROR_INTERNAL_ERRORRESULT_DOMEXCEPTION": 2154823682,
+ "NS_ERROR_INTERNAL_ERRORRESULT_EXCEPTION_ON_JSCONTEXT": 2154823683,
+ "NS_ERROR_INTERNAL_ERRORRESULT_TYPEERROR": 2154823684,
+ "NS_ERROR_INTERNAL_ERRORRESULT_RANGEERROR": 2154823685,
+ "NS_ERROR_WDBA_NO_PROGID": 2154954753,
+ "NS_ERROR_WDBA_HASH_CHECK": 2154954754,
+ "NS_ERROR_WDBA_REJECTED": 2154954755,
+ "NS_ERROR_WDBA_BUILD": 2154954756,
+ "NS_ERROR_DOWNLOAD_COMPLETE": 2155347969,
+ "NS_ERROR_DOWNLOAD_NOT_PARTIAL": 2155347970,
+ "NS_ERROR_UNORM_MOREOUTPUT": 2155348001,
+ "NS_ERROR_DOCSHELL_REQUEST_REJECTED": 2155348969,
+ "NS_ERROR_DOCUMENT_IS_PRINTMODE": 2155349969,
+ "NS_SUCCESS_DONT_FIXUP": 7864321,
+ "NS_SUCCESS_RESTART_APP": 7864321,
+ "NS_ERROR_NOT_IN_TREE": 2155348006,
+ "NS_OK_NO_NAME_CLAUSE_HANDLED": 7864354,
+ "NS_ERROR_BLOCKED_BY_POLICY": 2155347971
+} \ No newline at end of file
diff --git a/tools/ts/fixtures/intrinsics.d.ts b/tools/ts/fixtures/intrinsics.d.ts
new file mode 100644
index 0000000000..7a0b45ee52
--- /dev/null
+++ b/tools/ts/fixtures/intrinsics.d.ts
@@ -0,0 +1,85 @@
+/**
+ * Gecko XPCOM builtins and utility types.
+ */
+
+/**
+ * Generic IDs are created by most code which passes a nsID to js.
+ * https://searchfox.org/mozilla-central/source/js/xpconnect/src/XPCJSID.cpp#24
+ */
+interface nsID<uuid = string> {
+ readonly number: uuid;
+}
+
+/**
+ * In addition to nsID, interface IIDs support instanceof type guards,
+ * and expose constants defined on the class, including variants from enums.
+ * https://searchfox.org/mozilla-central/source/js/xpconnect/src/XPCJSID.cpp#44
+ */
+type nsJSIID<iface, enums = {}> = nsID & Constants<iface> & enums & {
+ new (_: never): void;
+ prototype: iface;
+}
+
+/** A union of all known IIDs. */
+type nsIID = nsIXPCComponents_Interfaces[keyof nsIXPCComponents_Interfaces];
+
+/** A generic to resolve QueryInterface return type from a nsID (or nsIID). */
+export type nsQIResult<iid> = iid extends { prototype: infer U } ? U : never;
+
+/** XPCOM inout param is passed in as a js object with a value property. */
+type InOutParam<T> = { value: T };
+
+/** XPCOM out param is written to the passed in object's value property. */
+type OutParam<T> = { value?: T };
+
+/** A named type for interfaces to inherit from enums. */
+type Enums<enums> = enums;
+
+/** Callable accepts either form of a [function] interface. */
+type Callable<iface> = iface | Extract<iface[keyof iface], Function>
+
+/** Picks only const number properties from T. */
+type Constants<T> = { [K in keyof T as IfConst<K, T[K]>]: T[K] };
+
+/** Resolves only for keys K whose corresponding type T is a narrow number. */
+type IfConst<K, T> = T extends number ? (number extends T ? never : K) : never;
+
+declare global {
+ // Until we have [ChromeOnly] webidl.
+ interface BrowsingContext {}
+ interface ContentFrameMessageManager {}
+ interface DOMRequest {}
+ interface FrameLoader {}
+ interface JSProcessActorChild {}
+ interface JSProcessActorParent {}
+ interface TreeColumn {}
+ interface WebExtensionContentScript {}
+ interface WebExtensionPolicy {}
+ interface WindowGlobalParent {}
+ interface WindowContext {}
+ interface XULTreeElement {}
+}
+
+// Non-scriptable interfaces referenced from scriptable ones.
+interface nsIAsyncVerifyRedirectReadyCallback {}
+interface nsICRLiteTimestamp {}
+interface nsIInputAvailableCallback {}
+interface nsIScriptElement {}
+interface nsIThreadObserver {}
+interface nsIUDPSocketSyncListener {}
+interface nsIWebAuthnRegisterArgs {}
+interface nsIWebAuthnRegisterPromise {}
+interface nsIWebAuthnSignArgs {}
+interface nsIWebAuthnSignPromise {}
+interface nsIXPCScriptable {}
+
+// Typedefs useful as a quick reference in method signatures.
+type double = number;
+type float = number;
+type i16 = number;
+type i32 = number;
+type i64 = number;
+type u16 = number;
+type u32 = number;
+type u64 = number;
+type u8 = number;
diff --git a/tools/ts/fixtures/xpctest.d.ts b/tools/ts/fixtures/xpctest.d.ts
new file mode 100644
index 0000000000..6b2863a656
--- /dev/null
+++ b/tools/ts/fixtures/xpctest.d.ts
@@ -0,0 +1,275 @@
+/**
+ * NOTE: Do not modify this file by hand.
+ * Content was generated from source XPCOM .idl files.
+ */
+
+declare global {
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_attributes.idl
+
+interface nsIXPCTestObjectReadOnly extends nsISupports {
+ readonly strReadOnly: string;
+ readonly boolReadOnly: boolean;
+ readonly shortReadOnly: i16;
+ readonly longReadOnly: i32;
+ readonly floatReadOnly: float;
+ readonly charReadOnly: string;
+ readonly timeReadOnly: PRTime;
+}
+
+interface nsIXPCTestObjectReadWrite extends nsISupports {
+ stringProperty: string;
+ booleanProperty: boolean;
+ shortProperty: i16;
+ longProperty: i32;
+ floatProperty: float;
+ charProperty: string;
+ timeProperty: PRTime;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_bug809674.idl
+
+interface nsIXPCTestBug809674 extends nsISupports {
+ addArgs(x: u32, y: u32): u32;
+ addSubMulArgs(x: u32, y: u32, subOut: OutParam<u32>, mulOut: OutParam<u32>): u32;
+ addVals(x: any, y: any): any;
+ methodNoArgs(): u32;
+ methodNoArgsNoRetVal(): void;
+ addMany(x1: u32, x2: u32, x3: u32, x4: u32, x5: u32, x6: u32, x7: u32, x8: u32): u32;
+ valProperty: any;
+ uintProperty: u32;
+ methodWithOptionalArgc(): void;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_cenums.idl
+
+} // global
+
+declare namespace nsIXPCTestCEnums {
+
+enum testFlagsExplicit {
+ shouldBe1Explicit = 1,
+ shouldBe2Explicit = 2,
+ shouldBe4Explicit = 4,
+ shouldBe8Explicit = 8,
+ shouldBe12Explicit = 12,
+}
+
+enum testFlagsImplicit {
+ shouldBe0Implicit = 0,
+ shouldBe1Implicit = 1,
+ shouldBe2Implicit = 2,
+ shouldBe3Implicit = 3,
+ shouldBe5Implicit = 5,
+ shouldBe6Implicit = 6,
+ shouldBe2AgainImplicit = 2,
+ shouldBe3AgainImplicit = 3,
+}
+
+}
+
+declare global {
+
+interface nsIXPCTestCEnums extends nsISupports, Enums<typeof nsIXPCTestCEnums.testFlagsExplicit & typeof nsIXPCTestCEnums.testFlagsImplicit> {
+ readonly testConst: 1;
+
+ testCEnumInput(abc: nsIXPCTestCEnums.testFlagsExplicit): void;
+ testCEnumOutput(): nsIXPCTestCEnums.testFlagsExplicit;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_interfaces.idl
+
+interface nsIXPCTestInterfaceA extends nsISupports {
+ name: string;
+}
+
+interface nsIXPCTestInterfaceB extends nsISupports {
+ name: string;
+}
+
+interface nsIXPCTestInterfaceC extends nsISupports {
+ someInteger: i32;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_params.idl
+
+interface nsIXPCTestParams extends nsISupports {
+ testBoolean(a: boolean, b: InOutParam<boolean>): boolean;
+ testOctet(a: u8, b: InOutParam<u8>): u8;
+ testShort(a: i16, b: InOutParam<i16>): i16;
+ testLong(a: i32, b: InOutParam<i32>): i32;
+ testLongLong(a: i64, b: InOutParam<i64>): i64;
+ testUnsignedShort(a: u16, b: InOutParam<u16>): u16;
+ testUnsignedLong(a: u32, b: InOutParam<u32>): u32;
+ testUnsignedLongLong(a: u64, b: InOutParam<u64>): u64;
+ testFloat(a: float, b: InOutParam<float>): float;
+ testDouble(a: double, b: InOutParam<float>): double;
+ testChar(a: string, b: InOutParam<string>): string;
+ testString(a: string, b: InOutParam<string>): string;
+ testWchar(a: string, b: InOutParam<string>): string;
+ testWstring(a: string, b: InOutParam<string>): string;
+ testAString(a: string, b: InOutParam<string>): string;
+ testAUTF8String(a: string, b: InOutParam<string>): string;
+ testACString(a: string, b: InOutParam<string>): string;
+ testJsval(a: any, b: InOutParam<any>): any;
+ testShortSequence(a: i16[], b: InOutParam<i16[]>): i16[];
+ testDoubleSequence(a: double[], b: InOutParam<double[]>): double[];
+ testInterfaceSequence(a: nsIXPCTestInterfaceA[], b: InOutParam<nsIXPCTestInterfaceA[]>): nsIXPCTestInterfaceA[];
+ testAStringSequence(a: string[], b: InOutParam<string[]>): string[];
+ testACStringSequence(a: string[], b: InOutParam<string[]>): string[];
+ testJsvalSequence(a: any[], b: InOutParam<any[]>): any[];
+ testSequenceSequence(a: i16[][], b: InOutParam<i16[][]>): i16[][];
+ testOptionalSequence(arr?: u8[]): u8[];
+ testShortArray(aLength: u32, a: i16[], bLength: InOutParam<u32>, b: InOutParam<i16[]>, rvLength: OutParam<u32>): OutParam<i16[]>;
+ testDoubleArray(aLength: u32, a: double[], bLength: InOutParam<u32>, b: InOutParam<double[]>, rvLength: OutParam<u32>): OutParam<double[]>;
+ testStringArray(aLength: u32, a: string[], bLength: InOutParam<u32>, b: InOutParam<string[]>, rvLength: OutParam<u32>): OutParam<string[]>;
+ testWstringArray(aLength: u32, a: string[], bLength: InOutParam<u32>, b: InOutParam<string[]>, rvLength: OutParam<u32>): OutParam<string[]>;
+ testInterfaceArray(aLength: u32, a: nsIXPCTestInterfaceA[], bLength: InOutParam<u32>, b: InOutParam<nsIXPCTestInterfaceA[]>, rvLength: OutParam<u32>): OutParam<nsIXPCTestInterfaceA[]>;
+ testByteArrayOptionalLength(a: u8[], aLength?: u32): u32;
+ testSizedString(aLength: u32, a: string, bLength: InOutParam<u32>, b: InOutParam<string>, rvLength: OutParam<u32>): OutParam<string>;
+ testSizedWstring(aLength: u32, a: string, bLength: InOutParam<u32>, b: InOutParam<string>, rvLength: OutParam<u32>): OutParam<string>;
+ testJsvalArray(aLength: u32, a: any[], bLength: InOutParam<u32>, b: InOutParam<any[]>, rvLength: OutParam<u32>): OutParam<any[]>;
+ testOutAString(o: OutParam<string>): void;
+ testStringArrayOptionalSize(a: string[], aLength?: u32): string;
+ testOmittedOptionalOut(aJSObj: nsIXPCTestParams, aOut?: OutParam<nsIURI>): void;
+ readonly testNaN: double;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_returncode.idl
+
+interface nsIXPCTestReturnCodeParent extends nsISupports {
+ callChild(childBehavior: i32): nsresult;
+}
+
+interface nsIXPCTestReturnCodeChild extends nsISupports {
+ readonly CHILD_SHOULD_THROW: 0;
+ readonly CHILD_SHOULD_RETURN_SUCCESS: 1;
+ readonly CHILD_SHOULD_RETURN_RESULTCODE: 2;
+ readonly CHILD_SHOULD_NEST_RESULTCODES: 3;
+
+ doIt(behavior: i32): void;
+}
+
+// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_utils.idl
+
+type nsIXPCTestFunctionInterface = Callable<{
+ echo(arg: string): string;
+}>
+
+interface nsIXPCTestUtils extends nsISupports {
+ doubleWrapFunction(f: nsIXPCTestFunctionInterface): nsIXPCTestFunctionInterface;
+}
+
+interface nsIXPCTestNoScriptMembers extends nsISupports {
+ exposedProp: i32;
+ exposedMethod(arg: i32): void;
+}
+
+interface nsIXPCComponents_Interfaces {
+ nsIXPCTestObjectReadOnly: nsJSIID<nsIXPCTestObjectReadOnly>;
+ nsIXPCTestObjectReadWrite: nsJSIID<nsIXPCTestObjectReadWrite>;
+ nsIXPCTestBug809674: nsJSIID<nsIXPCTestBug809674>;
+ nsIXPCTestCEnums: nsJSIID<nsIXPCTestCEnums, typeof nsIXPCTestCEnums.testFlagsExplicit & typeof nsIXPCTestCEnums.testFlagsImplicit>;
+ nsIXPCTestInterfaceA: nsJSIID<nsIXPCTestInterfaceA>;
+ nsIXPCTestInterfaceB: nsJSIID<nsIXPCTestInterfaceB>;
+ nsIXPCTestInterfaceC: nsJSIID<nsIXPCTestInterfaceC>;
+ nsIXPCTestParams: nsJSIID<nsIXPCTestParams>;
+ nsIXPCTestReturnCodeParent: nsJSIID<nsIXPCTestReturnCodeParent>;
+ nsIXPCTestReturnCodeChild: nsJSIID<nsIXPCTestReturnCodeChild>;
+ nsIXPCTestFunctionInterface: nsJSIID<nsIXPCTestFunctionInterface>;
+ nsIXPCTestUtils: nsJSIID<nsIXPCTestUtils>;
+ nsIXPCTestNoScriptMembers: nsJSIID<nsIXPCTestNoScriptMembers>;
+}
+
+} // global
+
+// Typedefs from xpidl.
+type PRTime = i64;
+type char16_t = u16;
+type nsresult = u32;
+
+/**
+ * Gecko XPCOM builtins and utility types.
+ */
+
+/**
+ * Generic IDs are created by most code which passes a nsID to js.
+ * https://searchfox.org/mozilla-central/source/js/xpconnect/src/XPCJSID.cpp#24
+ */
+interface nsID<uuid = string> {
+ readonly number: uuid;
+}
+
+/**
+ * In addition to nsID, interface IIDs support instanceof type guards,
+ * and expose constants defined on the class, including variants from enums.
+ * https://searchfox.org/mozilla-central/source/js/xpconnect/src/XPCJSID.cpp#44
+ */
+type nsJSIID<iface, enums = {}> = nsID & Constants<iface> & enums & {
+ new (_: never): void;
+ prototype: iface;
+}
+
+/** A union of all known IIDs. */
+type nsIID = nsIXPCComponents_Interfaces[keyof nsIXPCComponents_Interfaces];
+
+/** A generic to resolve QueryInterface return type from a nsID (or nsIID). */
+export type nsQIResult<iid> = iid extends { prototype: infer U } ? U : never;
+
+/** XPCOM inout param is passed in as a js object with a value property. */
+type InOutParam<T> = { value: T };
+
+/** XPCOM out param is written to the passed in object's value property. */
+type OutParam<T> = { value?: T };
+
+/** A named type for interfaces to inherit from enums. */
+type Enums<enums> = enums;
+
+/** Callable accepts either form of a [function] interface. */
+type Callable<iface> = iface | Extract<iface[keyof iface], Function>
+
+/** Picks only const number properties from T. */
+type Constants<T> = { [K in keyof T as IfConst<K, T[K]>]: T[K] };
+
+/** Resolves only for keys K whose corresponding type T is a narrow number. */
+type IfConst<K, T> = T extends number ? (number extends T ? never : K) : never;
+
+declare global {
+ // Until we have [ChromeOnly] webidl.
+ interface BrowsingContext {}
+ interface ContentFrameMessageManager {}
+ interface DOMRequest {}
+ interface FrameLoader {}
+ interface JSProcessActorChild {}
+ interface JSProcessActorParent {}
+ interface TreeColumn {}
+ interface WebExtensionContentScript {}
+ interface WebExtensionPolicy {}
+ interface WindowGlobalParent {}
+ interface WindowContext {}
+ interface XULTreeElement {}
+}
+
+// Non-scriptable interfaces referenced from scriptable ones.
+interface nsIAsyncVerifyRedirectReadyCallback {}
+interface nsICRLiteTimestamp {}
+interface nsIInputAvailableCallback {}
+interface nsIScriptElement {}
+interface nsIThreadObserver {}
+interface nsIUDPSocketSyncListener {}
+interface nsIWebAuthnRegisterArgs {}
+interface nsIWebAuthnRegisterPromise {}
+interface nsIWebAuthnSignArgs {}
+interface nsIWebAuthnSignPromise {}
+interface nsIXPCScriptable {}
+
+// Typedefs useful as a quick reference in method signatures.
+type double = number;
+type float = number;
+type i16 = number;
+type i32 = number;
+type i64 = number;
+type u16 = number;
+type u32 = number;
+type u64 = number;
+type u8 = number;
diff --git a/tools/ts/mach_commands.py b/tools/ts/mach_commands.py
new file mode 100644
index 0000000000..5e933b463b
--- /dev/null
+++ b/tools/ts/mach_commands.py
@@ -0,0 +1,114 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import json
+import os
+
+import mozpack.path as mozpath
+from mach.decorators import Command, CommandArgument, SubCommand
+
+
+@Command("ts", category="misc", description="Run TypeScript and related commands.")
+def ts(ctx):
+ """
+ TypeScript related commands to build/update typelibs and type-check js.
+
+ Example:
+ # Use tsc to check types in extensions framework code:
+ $ ./mach ts check toolkit/components/extensions
+ """
+ ctx._sub_mach(["help", "ts"])
+ return 1
+
+
+@SubCommand("ts", "build", description="Build typelibs.")
+@CommandArgument("lib", choices=["nsresult", "services", "xpcom"])
+def buld(ctx, lib):
+ """Command to build one of the typelibs."""
+
+ types_dir = mozpath.join(ctx.distdir, "@types")
+ lib_dts = mozpath.join(types_dir, f"lib.gecko.{lib}.d.ts")
+ if not os.path.exists(types_dir):
+ os.makedirs(types_dir)
+
+ if lib == "nsresult":
+ xpc_msg = mozpath.join(ctx.topsrcdir, "js/xpconnect/src/xpc.msg")
+ errors_json = mozpath.join(ctx.topsrcdir, "tools/ts/error_list.json")
+ return node(ctx, "build_nsresult", lib_dts, xpc_msg, errors_json)
+
+ if lib == "services":
+ services_json = mozpath.join(ctx.topobjdir, "xpcom/components/services.json")
+ if not os.path.isfile(services_json):
+ return build_required(lib, services_json)
+ return node(ctx, "build_services", lib_dts, services_json)
+
+ if lib == "xpcom":
+ # When we hook this up to be part of the build, we'll have
+ # an explicit list of files. For now, just get all of them.
+ dir = mozpath.join(ctx.topobjdir, "config/makefiles/xpidl")
+ if not os.path.isdir(dir):
+ return build_required(lib, dir)
+
+ files = [f for f in os.listdir(dir) if f.endswith(".d.json")]
+ if not len(files):
+ return build_required(lib, f"*.d.json files in {dir}")
+
+ return node(ctx, "build_xpcom", lib_dts, dir, *files)
+
+ raise ValueError(f"Unknown typelib: {lib}")
+
+
+@SubCommand("ts", "check", description="Check types in a project using tsc.")
+@CommandArgument("paths", nargs="+", help="Path to a (dir with) tsconfig.json.")
+def check(ctx, paths):
+ for p in paths:
+ rv = node(ctx, "node_modules/typescript/bin/tsc", "--project", p)
+ if rv:
+ return rv
+ return 0
+
+
+@SubCommand("ts", "setup", description="Install TypeScript and other dependencies.")
+def setup(ctx):
+ # Install locally under tools/ts/node_modules, to avoid any conflicts for now.
+ os.chdir(mozpath.dirname(__file__))
+ return ctx._sub_mach(["npm", "ci"])
+
+
+@SubCommand("ts", "update", description="Update tools/@types lib references.")
+def update(ctx):
+ types_dir = mozpath.join(ctx.distdir, "@types")
+ index_dts = mozpath.join(ctx.topsrcdir, "tools/@types/index.d.ts")
+ return node(ctx, "update_refs", index_dts, types_dir)
+
+
+def node(ctx, script, *args):
+ maybe_setup(ctx)
+ path = mozpath.join(mozpath.dirname(__file__), script)
+ return ctx._sub_mach(["node", path, *args])
+
+
+def maybe_setup(ctx):
+ """Check if npm modules are installed, and run setup if needed."""
+ dir = mozpath.dirname(__file__)
+ package_json = json.load(open(mozpath.join(dir, "package.json")))
+ needs_setup = False
+
+ # TODO: Use proper version checking from tools/lint/eslint/setup_helper.py.
+ for module in package_json.get("devDependencies", {}):
+ path = mozpath.join(dir, "node_modules", module, "package.json")
+ if not os.path.isfile(path):
+ print(f"Missing node module {path}.")
+ needs_setup = True
+ break
+
+ if needs_setup:
+ print("Running npm install.")
+ setup(ctx)
+
+
+def build_required(lib, item):
+ print(f"Missing {item}.")
+ print(f"Building {lib} typelib requires a full Firefox build.")
+ return 1
diff --git a/tools/ts/package-lock.json b/tools/ts/package-lock.json
new file mode 100644
index 0000000000..e131bca31b
--- /dev/null
+++ b/tools/ts/package-lock.json
@@ -0,0 +1,6400 @@
+{
+ "name": "ts",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "devDependencies": {
+ "jest": "^29.7.0",
+ "peggy": "^3.0.2",
+ "typescript": "^5.3.3"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
+ "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.23.4",
+ "chalk": "^2.4.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz",
+ "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz",
+ "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
+ "dev": true,
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helpers": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz",
+ "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.23.6",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+ "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "browserslist": "^4.22.2",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.22.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+ "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz",
+ "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
+ "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
+ "dev": true,
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-bigint": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz",
+ "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-top-level-await": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz",
+ "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz",
+ "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz",
+ "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz",
+ "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.23.4",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+ "dev": true
+ },
+ "node_modules/@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/console": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
+ "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/core": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
+ "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^29.7.0",
+ "@jest/reporters": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-changed-files": "^29.7.0",
+ "jest-config": "^29.7.0",
+ "jest-haste-map": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-resolve-dependencies": "^29.7.0",
+ "jest-runner": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "jest-watcher": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@jest/environment": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
+ "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/expect": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
+ "dev": true,
+ "dependencies": {
+ "expect": "^29.7.0",
+ "jest-snapshot": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/expect-utils": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
+ "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
+ "dev": true,
+ "dependencies": {
+ "jest-get-type": "^29.6.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/fake-timers": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
+ "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/globals": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
+ "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/expect": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "jest-mock": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/reporters": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
+ "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
+ "dev": true,
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^6.0.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.1",
+ "strip-ansi": "^6.0.0",
+ "v8-to-istanbul": "^9.0.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "dev": true,
+ "dependencies": {
+ "@sinclair/typebox": "^0.27.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/source-map": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
+ "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/test-result": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
+ "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/test-sequencer": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
+ "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/test-result": "^29.7.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/transform": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
+ "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/types": "^29.6.3",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^2.0.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^4.0.2"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/types": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
+ "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
+ "dev": true
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
+ "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
+ "dev": true
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "dev": true,
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
+ "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.0"
+ }
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.6.8",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
+ "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz",
+ "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.20.7"
+ }
+ },
+ "node_modules/@types/graceful-fs": {
+ "version": "4.1.9",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
+ "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
+ "dev": true
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "dev": true,
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "20.11.16",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz",
+ "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
+ "dev": true
+ },
+ "node_modules/@types/yargs": {
+ "version": "17.0.32",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz",
+ "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
+ "dev": true,
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
+ "dev": true
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/babel-jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
+ "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/transform": "^29.7.0",
+ "@types/babel__core": "^7.1.14",
+ "babel-plugin-istanbul": "^6.1.1",
+ "babel-preset-jest": "^29.6.3",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.8.0"
+ }
+ },
+ "node_modules/babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-plugin-jest-hoist": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
+ "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
+ "@types/babel__core": "^7.1.14",
+ "@types/babel__traverse": "^7.0.6"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/babel-preset-current-node-syntax": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
+ "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.8.3",
+ "@babel/plugin-syntax-import-meta": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-top-level-await": "^7.8.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/babel-preset-jest": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
+ "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
+ "dev": true,
+ "dependencies": {
+ "babel-plugin-jest-hoist": "^29.6.3",
+ "babel-preset-current-node-syntax": "^1.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.22.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz",
+ "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001580",
+ "electron-to-chromium": "^1.4.648",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/bser": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
+ "dev": true,
+ "dependencies": {
+ "node-int64": "^0.4.0"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001585",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001585.tgz",
+ "integrity": "sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/char-regex": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cjs-module-lexer": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
+ "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==",
+ "dev": true
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "dev": true,
+ "engines": {
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
+ }
+ },
+ "node_modules/collect-v8-coverage": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
+ "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==",
+ "dev": true
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/commander": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true
+ },
+ "node_modules/create-jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
+ "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-config": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "prompts": "^2.0.1"
+ },
+ "bin": {
+ "create-jest": "bin/create-jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/dedent": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz",
+ "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==",
+ "dev": true,
+ "peerDependencies": {
+ "babel-plugin-macros": "^3.1.0"
+ },
+ "peerDependenciesMeta": {
+ "babel-plugin-macros": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/diff-sequences": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
+ "dev": true,
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.662",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.662.tgz",
+ "integrity": "sha512-gfl1XVWTQmPHhqEG0kN77SpUxaqPpMb9r83PT4gvKhg7P3irSxru3lW85RxvK1uI1j2CAcTWPjG/HbE0IP/Rtg==",
+ "dev": true
+ },
+ "node_modules/emittery": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/emittery?sponsor=1"
+ }
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true,
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/expect": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/expect-utils": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "node_modules/fb-watchman": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "dev": true,
+ "dependencies": {
+ "bser": "2.1.1"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-package-type": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
+ "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "dev": true
+ },
+ "node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/import-local": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
+ "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
+ "dev": true,
+ "dependencies": {
+ "pkg-dir": "^4.2.0",
+ "resolve-cwd": "^3.0.0"
+ },
+ "bin": {
+ "import-local-fixture": "fixtures/cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true
+ },
+ "node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dev": true,
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-generator-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "node_modules/istanbul-lib-coverage": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-instrument": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz",
+ "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-instrument/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-instrument/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-instrument/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
+ "dev": true,
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^4.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-source-maps": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-reports": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz",
+ "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==",
+ "dev": true,
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
+ "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/core": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "import-local": "^3.0.2",
+ "jest-cli": "^29.7.0"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-changed-files": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
+ "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
+ "dev": true,
+ "dependencies": {
+ "execa": "^5.0.0",
+ "jest-util": "^29.7.0",
+ "p-limit": "^3.1.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-circus": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
+ "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/expect": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^1.0.0",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^29.7.0",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "p-limit": "^3.1.0",
+ "pretty-format": "^29.7.0",
+ "pure-rand": "^6.0.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-cli": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
+ "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
+ "dev": true,
+ "dependencies": {
+ "@jest/core": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "create-jest": "^29.7.0",
+ "exit": "^0.1.2",
+ "import-local": "^3.0.2",
+ "jest-config": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "yargs": "^17.3.1"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-config": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
+ "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/test-sequencer": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "babel-jest": "^29.7.0",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-circus": "^29.7.0",
+ "jest-environment-node": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-runner": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "parse-json": "^5.2.0",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@types/node": "*",
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-diff": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
+ "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.6.3",
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-docblock": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
+ "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
+ "dev": true,
+ "dependencies": {
+ "detect-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-each": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
+ "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-environment-node": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
+ "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-get-type": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
+ "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
+ "dev": true,
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-haste-map": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
+ "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/graceful-fs": "^4.1.3",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/jest-leak-detector": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
+ "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
+ "dev": true,
+ "dependencies": {
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-matcher-utils": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
+ "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-message-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
+ "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.6.3",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-mock": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
+ "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-pnp-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "jest-resolve": "*"
+ },
+ "peerDependenciesMeta": {
+ "jest-resolve": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-regex-util": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
+ "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
+ "dev": true,
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
+ "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "resolve": "^1.20.0",
+ "resolve.exports": "^2.0.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve-dependencies": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
+ "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
+ "dev": true,
+ "dependencies": {
+ "jest-regex-util": "^29.6.3",
+ "jest-snapshot": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-runner": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
+ "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/console": "^29.7.0",
+ "@jest/environment": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "graceful-fs": "^4.2.9",
+ "jest-docblock": "^29.7.0",
+ "jest-environment-node": "^29.7.0",
+ "jest-haste-map": "^29.7.0",
+ "jest-leak-detector": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-resolve": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-watcher": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "p-limit": "^3.1.0",
+ "source-map-support": "0.5.13"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-runtime": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
+ "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/globals": "^29.7.0",
+ "@jest/source-map": "^29.6.3",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "cjs-module-lexer": "^1.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-snapshot": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
+ "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@babel/generator": "^7.7.2",
+ "@babel/plugin-syntax-jsx": "^7.7.2",
+ "@babel/plugin-syntax-typescript": "^7.7.2",
+ "@babel/types": "^7.3.3",
+ "@jest/expect-utils": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "babel-preset-current-node-syntax": "^1.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^29.7.0",
+ "graceful-fs": "^4.2.9",
+ "jest-diff": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^29.7.0",
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/jest-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
+ "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-validate": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
+ "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
+ "dev": true,
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "leven": "^3.1.0",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-validate/node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jest-watcher": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
+ "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
+ "dev": true,
+ "dependencies": {
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "jest-util": "^29.7.0",
+ "string-length": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+ "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*",
+ "jest-util": "^29.7.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-worker/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
+ "node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/make-dir/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/make-dir/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/makeerror": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
+ "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
+ "dev": true,
+ "dependencies": {
+ "tmpl": "1.0.5"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "node_modules/node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
+ "dev": true
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
+ "dev": true
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-locate/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "node_modules/peggy": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/peggy/-/peggy-3.0.2.tgz",
+ "integrity": "sha512-n7chtCbEoGYRwZZ0i/O3t1cPr6o+d9Xx4Zwy2LYfzv0vjchMBU0tO+qYYyvZloBPcgRgzYvALzGWHe609JjEpg==",
+ "dev": true,
+ "dependencies": {
+ "commander": "^10.0.0",
+ "source-map-generator": "0.8.0"
+ },
+ "bin": {
+ "peggy": "bin/peggy.js"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/pretty-format/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/prompts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "dev": true,
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/pure-rand": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz",
+ "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/dubzzz"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fast-check"
+ }
+ ]
+ },
+ "node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
+ "dev": true
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-cwd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
+ "dev": true,
+ "dependencies": {
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve.exports": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
+ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true
+ },
+ "node_modules/sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+ "dev": true
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-generator": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/source-map-generator/-/source-map-generator-0.8.0.tgz",
+ "integrity": "sha512-psgxdGMwl5MZM9S3FWee4EgsEaIjahYV5AzGnwUvPhWeITz/j6rKpysQHlQ4USdxvINlb8lKfWGIXwfkrgtqkA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+ "dev": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true
+ },
+ "node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/string-length": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
+ "dev": true,
+ "dependencies": {
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "dev": true,
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tmpl": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
+ "dev": true
+ },
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
+ "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "dev": true
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/v8-to-istanbul": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz",
+ "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.12.0"
+ }
+ },
+ "node_modules/walker": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
+ "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
+ "dev": true,
+ "dependencies": {
+ "makeerror": "1.0.12"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "node_modules/write-file-atomic": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
+ "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "dev": true,
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.7"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ },
+ "node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dev": true,
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ },
+ "dependencies": {
+ "@ampproject/remapping": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
+ "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@babel/code-frame": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.23.4",
+ "chalk": "^2.4.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz",
+ "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
+ "dev": true
+ },
+ "@babel/core": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz",
+ "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
+ "dev": true,
+ "requires": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-compilation-targets": "^7.23.6",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helpers": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz",
+ "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.23.6",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "jsesc": "^2.5.1"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.23.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+ "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.23.5",
+ "@babel/helper-validator-option": "^7.23.5",
+ "browserslist": "^4.22.2",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ }
+ },
+ "@babel/helper-environment-visitor": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+ "dev": true
+ },
+ "@babel/helper-function-name": {
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.22.15"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-module-imports": "^7.22.15",
+ "@babel/helper-simple-access": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/helper-validator-identifier": "^7.22.20"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "dev": true
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.22.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.22.5"
+ }
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+ "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
+ "dev": true
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+ "dev": true
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
+ "dev": true
+ },
+ "@babel/helpers": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz",
+ "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@babel/parser": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
+ "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
+ "dev": true
+ },
+ "@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-bigint": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ }
+ },
+ "@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz",
+ "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-top-level-await": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-syntax-typescript": {
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz",
+ "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.22.5"
+ }
+ },
+ "@babel/template": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz",
+ "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz",
+ "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.6",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
+ "@babel/helper-hoist-variables": "^7.22.5",
+ "@babel/helper-split-export-declaration": "^7.22.6",
+ "@babel/parser": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz",
+ "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-string-parser": "^7.23.4",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+ "dev": true
+ },
+ "@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ }
+ },
+ "@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "dev": true
+ },
+ "@jest/console": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
+ "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/core": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
+ "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^29.7.0",
+ "@jest/reporters": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-changed-files": "^29.7.0",
+ "jest-config": "^29.7.0",
+ "jest-haste-map": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-resolve-dependencies": "^29.7.0",
+ "jest-runner": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "jest-watcher": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "@jest/environment": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
+ "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
+ "dev": true,
+ "requires": {
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0"
+ }
+ },
+ "@jest/expect": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
+ "dev": true,
+ "requires": {
+ "expect": "^29.7.0",
+ "jest-snapshot": "^29.7.0"
+ }
+ },
+ "@jest/expect-utils": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
+ "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
+ "dev": true,
+ "requires": {
+ "jest-get-type": "^29.6.3"
+ }
+ },
+ "@jest/fake-timers": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
+ "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.6.3",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ }
+ },
+ "@jest/globals": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
+ "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^29.7.0",
+ "@jest/expect": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "jest-mock": "^29.7.0"
+ }
+ },
+ "@jest/reporters": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
+ "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
+ "dev": true,
+ "requires": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^6.0.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.1",
+ "strip-ansi": "^6.0.0",
+ "v8-to-istanbul": "^9.0.1"
+ }
+ },
+ "@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "dev": true,
+ "requires": {
+ "@sinclair/typebox": "^0.27.8"
+ }
+ },
+ "@jest/source-map": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
+ "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9"
+ }
+ },
+ "@jest/test-result": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
+ "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ }
+ },
+ "@jest/test-sequencer": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
+ "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
+ "dev": true,
+ "requires": {
+ "@jest/test-result": "^29.7.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "@jest/transform": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
+ "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.11.6",
+ "@jest/types": "^29.6.3",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^2.0.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^4.0.2"
+ }
+ },
+ "@jest/types": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
+ "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
+ "dev": true,
+ "requires": {
+ "@jest/schemas": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@jridgewell/resolve-uri": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
+ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
+ "dev": true
+ },
+ "@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "dev": true
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
+ "dev": true
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.22",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
+ "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
+ "dev": true
+ },
+ "@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@sinonjs/fake-timers": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
+ "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^3.0.0"
+ }
+ },
+ "@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dev": true,
+ "requires": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "@types/babel__generator": {
+ "version": "7.6.8",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
+ "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dev": true,
+ "requires": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "@types/babel__traverse": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz",
+ "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.20.7"
+ }
+ },
+ "@types/graceful-fs": {
+ "version": "4.1.9",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
+ "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
+ "dev": true
+ },
+ "@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/node": {
+ "version": "20.11.16",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz",
+ "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==",
+ "dev": true,
+ "requires": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "@types/stack-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
+ "dev": true
+ },
+ "@types/yargs": {
+ "version": "17.0.32",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz",
+ "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
+ "dev": true,
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.21.3"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "babel-jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
+ "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
+ "dev": true,
+ "requires": {
+ "@jest/transform": "^29.7.0",
+ "@types/babel__core": "^7.1.14",
+ "babel-plugin-istanbul": "^6.1.1",
+ "babel-preset-jest": "^29.6.3",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "slash": "^3.0.0"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "dependencies": {
+ "istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ }
+ }
+ }
+ },
+ "babel-plugin-jest-hoist": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
+ "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
+ "@types/babel__core": "^7.1.14",
+ "@types/babel__traverse": "^7.0.6"
+ }
+ },
+ "babel-preset-current-node-syntax": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
+ "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.8.3",
+ "@babel/plugin-syntax-import-meta": "^7.8.3",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-top-level-await": "^7.8.3"
+ }
+ },
+ "babel-preset-jest": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
+ "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-jest-hoist": "^29.6.3",
+ "babel-preset-current-node-syntax": "^1.0.0"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "browserslist": {
+ "version": "4.22.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz",
+ "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30001580",
+ "electron-to-chromium": "^1.4.648",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
+ }
+ },
+ "bser": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
+ "dev": true,
+ "requires": {
+ "node-int64": "^0.4.0"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001585",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001585.tgz",
+ "integrity": "sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "char-regex": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+ "dev": true
+ },
+ "ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "dev": true
+ },
+ "cjs-module-lexer": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
+ "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==",
+ "dev": true
+ },
+ "cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "dev": true
+ },
+ "collect-v8-coverage": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
+ "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "commander": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true
+ },
+ "create-jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
+ "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-config": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "prompts": "^2.0.1"
+ }
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "dedent": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz",
+ "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==",
+ "dev": true,
+ "requires": {}
+ },
+ "deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "dev": true
+ },
+ "detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "dev": true
+ },
+ "diff-sequences": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.4.662",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.662.tgz",
+ "integrity": "sha512-gfl1XVWTQmPHhqEG0kN77SpUxaqPpMb9r83PT4gvKhg7P3irSxru3lW85RxvK1uI1j2CAcTWPjG/HbE0IP/Rtg==",
+ "dev": true
+ },
+ "emittery": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "escalade": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "dev": true
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
+ },
+ "execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ }
+ },
+ "exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "dev": true
+ },
+ "expect": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
+ "dev": true,
+ "requires": {
+ "@jest/expect-utils": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0"
+ }
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "fb-watchman": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "dev": true,
+ "requires": {
+ "bser": "2.1.1"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true
+ },
+ "gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "get-package-type": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+ "dev": true
+ },
+ "get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true
+ },
+ "graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "hasown": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
+ "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.2"
+ }
+ },
+ "html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "dev": true
+ },
+ "human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "dev": true
+ },
+ "import-local": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
+ "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
+ "dev": true,
+ "requires": {
+ "pkg-dir": "^4.2.0",
+ "resolve-cwd": "^3.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true
+ },
+ "is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
+ "dev": true,
+ "requires": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "is-generator-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "istanbul-lib-coverage": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+ "dev": true
+ },
+ "istanbul-lib-instrument": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz",
+ "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^7.5.4"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^4.0.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ }
+ },
+ "istanbul-reports": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz",
+ "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==",
+ "dev": true,
+ "requires": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ }
+ },
+ "jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
+ "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
+ "dev": true,
+ "requires": {
+ "@jest/core": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "import-local": "^3.0.2",
+ "jest-cli": "^29.7.0"
+ }
+ },
+ "jest-changed-files": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
+ "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
+ "dev": true,
+ "requires": {
+ "execa": "^5.0.0",
+ "jest-util": "^29.7.0",
+ "p-limit": "^3.1.0"
+ }
+ },
+ "jest-circus": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
+ "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^29.7.0",
+ "@jest/expect": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^1.0.0",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^29.7.0",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "p-limit": "^3.1.0",
+ "pretty-format": "^29.7.0",
+ "pure-rand": "^6.0.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-cli": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
+ "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
+ "dev": true,
+ "requires": {
+ "@jest/core": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "create-jest": "^29.7.0",
+ "exit": "^0.1.2",
+ "import-local": "^3.0.2",
+ "jest-config": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "yargs": "^17.3.1"
+ }
+ },
+ "jest-config": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
+ "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.11.6",
+ "@jest/test-sequencer": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "babel-jest": "^29.7.0",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-circus": "^29.7.0",
+ "jest-environment-node": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-runner": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "parse-json": "^5.2.0",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ }
+ },
+ "jest-diff": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
+ "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.6.3",
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ }
+ },
+ "jest-docblock": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
+ "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
+ "dev": true,
+ "requires": {
+ "detect-newline": "^3.0.0"
+ }
+ },
+ "jest-each": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
+ "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "pretty-format": "^29.7.0"
+ }
+ },
+ "jest-environment-node": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
+ "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ }
+ },
+ "jest-get-type": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
+ "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
+ "dev": true
+ },
+ "jest-haste-map": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
+ "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.6.3",
+ "@types/graceful-fs": "^4.1.3",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "fsevents": "^2.3.2",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.8"
+ }
+ },
+ "jest-leak-detector": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
+ "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
+ "dev": true,
+ "requires": {
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ }
+ },
+ "jest-matcher-utils": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
+ "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ }
+ },
+ "jest-message-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
+ "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.6.3",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ }
+ },
+ "jest-mock": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
+ "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-util": "^29.7.0"
+ }
+ },
+ "jest-pnp-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
+ "dev": true,
+ "requires": {}
+ },
+ "jest-regex-util": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
+ "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
+ "dev": true
+ },
+ "jest-resolve": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
+ "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "resolve": "^1.20.0",
+ "resolve.exports": "^2.0.0",
+ "slash": "^3.0.0"
+ }
+ },
+ "jest-resolve-dependencies": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
+ "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
+ "dev": true,
+ "requires": {
+ "jest-regex-util": "^29.6.3",
+ "jest-snapshot": "^29.7.0"
+ }
+ },
+ "jest-runner": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
+ "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^29.7.0",
+ "@jest/environment": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "graceful-fs": "^4.2.9",
+ "jest-docblock": "^29.7.0",
+ "jest-environment-node": "^29.7.0",
+ "jest-haste-map": "^29.7.0",
+ "jest-leak-detector": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-resolve": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-watcher": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "p-limit": "^3.1.0",
+ "source-map-support": "0.5.13"
+ }
+ },
+ "jest-runtime": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
+ "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/globals": "^29.7.0",
+ "@jest/source-map": "^29.6.3",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "cjs-module-lexer": "^1.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0"
+ }
+ },
+ "jest-snapshot": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
+ "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.11.6",
+ "@babel/generator": "^7.7.2",
+ "@babel/plugin-syntax-jsx": "^7.7.2",
+ "@babel/plugin-syntax-typescript": "^7.7.2",
+ "@babel/types": "^7.3.3",
+ "@jest/expect-utils": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "babel-preset-current-node-syntax": "^1.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^29.7.0",
+ "graceful-fs": "^4.2.9",
+ "jest-diff": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^29.7.0",
+ "semver": "^7.5.3"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "jest-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
+ "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ }
+ },
+ "jest-validate": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
+ "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^29.6.3",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "leven": "^3.1.0",
+ "pretty-format": "^29.7.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true
+ }
+ }
+ },
+ "jest-watcher": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
+ "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
+ "dev": true,
+ "requires": {
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "jest-util": "^29.7.0",
+ "string-length": "^4.0.1"
+ }
+ },
+ "jest-worker": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+ "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*",
+ "jest-util": "^29.7.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
+ "json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true
+ },
+ "kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "dev": true
+ },
+ "leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "dev": true
+ },
+ "lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "make-dir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
+ "dev": true,
+ "requires": {
+ "semver": "^7.5.3"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ }
+ }
+ },
+ "makeerror": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
+ "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
+ "dev": true,
+ "requires": {
+ "tmpl": "1.0.5"
+ }
+ },
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
+ "dev": true
+ },
+ "node-releases": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
+ "dev": true
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ },
+ "dependencies": {
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ }
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "peggy": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/peggy/-/peggy-3.0.2.tgz",
+ "integrity": "sha512-n7chtCbEoGYRwZZ0i/O3t1cPr6o+d9Xx4Zwy2LYfzv0vjchMBU0tO+qYYyvZloBPcgRgzYvALzGWHe609JjEpg==",
+ "dev": true,
+ "requires": {
+ "commander": "^10.0.0",
+ "source-map-generator": "0.8.0"
+ }
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "pirates": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ },
+ "pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dev": true,
+ "requires": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true
+ }
+ }
+ },
+ "prompts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "dev": true,
+ "requires": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ }
+ },
+ "pure-rand": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz",
+ "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==",
+ "dev": true
+ },
+ "react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
+ "dev": true
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "resolve-cwd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
+ "dev": true,
+ "requires": {
+ "resolve-from": "^5.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true
+ },
+ "resolve.exports": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
+ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
+ "dev": true
+ },
+ "semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true
+ },
+ "sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "source-map-generator": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/source-map-generator/-/source-map-generator-0.8.0.tgz",
+ "integrity": "sha512-psgxdGMwl5MZM9S3FWee4EgsEaIjahYV5AzGnwUvPhWeITz/j6rKpysQHlQ4USdxvINlb8lKfWGIXwfkrgtqkA==",
+ "dev": true
+ },
+ "source-map-support": {
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true
+ },
+ "stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "^2.0.0"
+ }
+ },
+ "string-length": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
+ "dev": true,
+ "requires": {
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-bom": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
+ "dev": true
+ },
+ "strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true
+ },
+ "strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true
+ },
+ "test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "dev": true,
+ "requires": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ }
+ },
+ "tmpl": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "dev": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true
+ },
+ "typescript": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
+ "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+ "dev": true
+ },
+ "undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "dev": true
+ },
+ "update-browserslist-db": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+ "dev": true,
+ "requires": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ }
+ },
+ "v8-to-istanbul": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz",
+ "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^2.0.0"
+ }
+ },
+ "walker": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
+ "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
+ "dev": true,
+ "requires": {
+ "makeerror": "1.0.12"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "write-file-atomic": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
+ "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.7"
+ }
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dev": true,
+ "requires": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ }
+ },
+ "yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true
+ },
+ "yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true
+ }
+ }
+}
diff --git a/tools/ts/package.json b/tools/ts/package.json
new file mode 100644
index 0000000000..9139e9b21f
--- /dev/null
+++ b/tools/ts/package.json
@@ -0,0 +1,10 @@
+{
+ "devDependencies": {
+ "jest": "^29.7.0",
+ "peggy": "^3.0.2",
+ "typescript": "^5.3.3"
+ },
+ "scripts": {
+ "test": "jest"
+ }
+}
diff --git a/tools/ts/tests/xpcom.test.js b/tools/ts/tests/xpcom.test.js
new file mode 100644
index 0000000000..bdea3e843e
--- /dev/null
+++ b/tools/ts/tests/xpcom.test.js
@@ -0,0 +1,18 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/* eslint-env node, jest */
+"use strict";
+
+const fs = require("fs");
+const path = require("path");
+const { ts_link } = require("../build_xpcom.js");
+
+const test_dts = path.join(__dirname, "../fixtures/xpctest.d.ts");
+const dir = path.join(__dirname, "../../../xpcom/idl-parser/xpidl/fixtures/");
+const files = ["xpctest.d.json"];
+
+test("xpctest.d.json produces expected baseline d.ts", () => {
+ let dts = ts_link(dir, files).join("\n");
+ expect(dts).toEqual(fs.readFileSync(test_dts, "utf8"));
+});
diff --git a/tools/ts/update_refs.js b/tools/ts/update_refs.js
new file mode 100644
index 0000000000..7b74d63bc8
--- /dev/null
+++ b/tools/ts/update_refs.js
@@ -0,0 +1,35 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+"use strict";
+
+/**
+ * Update: <srcdir>/tools/@types/index.d.ts,
+ *
+ * reference: <objdir>/dist/@types/lib.gecko.*.d.json,
+ * generated by a ts build lib step.
+ */
+
+const fs = require("fs");
+const libs = ["dom", "nsresult", "services", "xpcom"];
+
+function main(index_dts, lib_dir) {
+ let index = fs.readFileSync(index_dts, "utf8");
+
+ for (let lib of libs) {
+ let file = `lib.gecko.${lib}.d.ts`;
+ let path = `${lib_dir}/${file}`;
+ let found = fs.existsSync(path);
+ console.log(`[INFO] ${path} (found: ${found})`);
+
+ if (found) {
+ let re = RegExp(` types=".+/${file}" />`);
+ index = index.replace(re, ` types="${path}" />`);
+ }
+ }
+
+ console.log(`[INFO] ${index_dts} (${index.length.toLocaleString()} bytes)`);
+ fs.writeFileSync(index_dts, index);
+}
+
+main(...process.argv.slice(2));
diff --git a/tools/update-programs/moz.configure b/tools/update-programs/moz.configure
index 1ce4a4ade9..23192c8a25 100644
--- a/tools/update-programs/moz.configure
+++ b/tools/update-programs/moz.configure
@@ -11,7 +11,7 @@ def js_standalone():
@depends(target)
def fold_libs(target):
- return target.os in ("WINNT", "OSX", "Android")
+ return target.os in ("WINNT", "OSX", "iOS", "Android")
set_config("MOZ_FOLD_LIBS", fold_libs)